From 58ebb39d8161236f015175231cc858bbbb57b738 Mon Sep 17 00:00:00 2001 From: "Ricardo (XenGi) Band" Date: Mon, 4 Oct 2021 21:13:01 +0200 Subject: [PATCH 001/255] mkbd65 added --- keyboards/mkbd65/README.md | 17 ++ keyboards/mkbd65/config.h | 158 +++++++++++ keyboards/mkbd65/info.json | 310 +++++++++++++++++++++ keyboards/mkbd65/keymaps/default/README.md | 52 ++++ keyboards/mkbd65/keymaps/default/config.h | 19 ++ keyboards/mkbd65/keymaps/default/keymap.c | 45 +++ keyboards/mkbd65/mkbd65.c | 43 +++ keyboards/mkbd65/mkbd65.h | 56 ++++ keyboards/mkbd65/rules.mk | 80 ++++++ 9 files changed, 780 insertions(+) create mode 100644 keyboards/mkbd65/README.md create mode 100644 keyboards/mkbd65/config.h create mode 100644 keyboards/mkbd65/info.json create mode 100644 keyboards/mkbd65/keymaps/default/README.md create mode 100644 keyboards/mkbd65/keymaps/default/config.h create mode 100644 keyboards/mkbd65/keymaps/default/keymap.c create mode 100644 keyboards/mkbd65/mkbd65.c create mode 100644 keyboards/mkbd65/mkbd65.h create mode 100644 keyboards/mkbd65/rules.mk diff --git a/keyboards/mkbd65/README.md b/keyboards/mkbd65/README.md new file mode 100644 index 0000000000..b9946cfd26 --- /dev/null +++ b/keyboards/mkbd65/README.md @@ -0,0 +1,17 @@ +# mkbd65 + +![mkbd65](https://gitlab.com/mkbd65/pcb/raw/master/mkbd65.png) + +A mobile keyboard addon for smartphones. + +Keyboard Maintainer: [XenGi](https://xengi.de) +Hardware Supported: [mkbd65 PCB](https://gitlab.com/mkbd65) +Hardware Availability: - + +Make example for this keyboard (after setting up your build environment): + +``` +make mkbd65: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). diff --git a/keyboards/mkbd65/config.h b/keyboards/mkbd65/config.h new file mode 100644 index 0000000000..704fe8f4dc --- /dev/null +++ b/keyboards/mkbd65/config.h @@ -0,0 +1,158 @@ +/* +Copyright 2018 XenGi + +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 "config_common.h" + +/* USB Device descriptor parameter */ +#define VENDOR_ID 0xDEAD +#define PRODUCT_ID 0xBEAF +#define DEVICE_VER 0x0001 +#define MANUFACTURER XenGi +#define PRODUCT mkbd65 +#define DESCRIPTION Custom keyboard addon for smartphones + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 12 + +/* + * Keyboard Matrix Assignments + * + * Change this to how you wired your keyboard + * COLS: AVR pins used for columns, left to right + * ROWS: AVR pins used for rows, top to bottom + * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) + * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) + * +*/ +#define MATRIX_ROW_PINS { D4, D6, D7, B4, B5 } +#define MATRIX_COL_PINS { D5, C7, C6, D3, D2, D1, D0, B7, B3, B2, B1, B0 } +#define UNUSED_PINS { E6, F0, F1, F4, F5, F6, F7 } + +/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ +#define DIODE_DIRECTION COL2ROW + +#define BACKLIGHT_PIN B6 +#define BACKLIGHT_BREATHING +#define BACKLIGHT_LEVELS 3 + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCING_DELAY 5 + +/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ +// #define LOCKING_SUPPORT_ENABLE +/* Locking resynchronize hack */ +// #define LOCKING_RESYNC_ENABLE + +/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. + * This is userful for the Windows task manager shortcut (ctrl+shift+esc). + */ +#define GRAVE_ESC_CTRL_OVERRIDE + +/* + * Force NKRO + * + * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved + * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the + * makefile for this to work.) + * + * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) + * until the next keyboard reset. + * + * NKRO may prevent your keystrokes from being detected in the BIOS, but it is + * fully operational during normal computer usage. + * + * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) + * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by + * bootmagic, NKRO mode will always be enabled until it is toggled again during a + * power-up. + * + */ +//#define FORCE_NKRO + +/* + * Magic Key Options + * + * Magic keys are hotkey commands that allow control over firmware functions of + * the keyboard. They are best used in combination with the HID Listen program, + * found here: https://www.pjrc.com/teensy/hid_listen.html + * + * The options below allow the magic key functionality to be changed. This is + * useful if your keyboard/keypad is missing keys and you want magic key support. + * + */ + +/* key combination for magic key command */ +#define IS_COMMAND() ( \ + keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ +) + +/* control how magic key switches layers */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false + +/* override magic key keymap */ +//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS +//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM +//#define MAGIC_KEY_HELP1 H +//#define MAGIC_KEY_HELP2 SLASH +//#define MAGIC_KEY_DEBUG D +//#define MAGIC_KEY_DEBUG_MATRIX X +//#define MAGIC_KEY_DEBUG_KBD K +//#define MAGIC_KEY_DEBUG_MOUSE M +//#define MAGIC_KEY_VERSION V +//#define MAGIC_KEY_STATUS S +//#define MAGIC_KEY_CONSOLE C +//#define MAGIC_KEY_LAYER0_ALT1 ESC +//#define MAGIC_KEY_LAYER0_ALT2 GRAVE +//#define MAGIC_KEY_LAYER0 0 +//#define MAGIC_KEY_LAYER1 1 +//#define MAGIC_KEY_LAYER2 2 +//#define MAGIC_KEY_LAYER3 3 +//#define MAGIC_KEY_LAYER4 4 +//#define MAGIC_KEY_LAYER5 5 +//#define MAGIC_KEY_LAYER6 6 +//#define MAGIC_KEY_LAYER7 7 +//#define MAGIC_KEY_LAYER8 8 +//#define MAGIC_KEY_LAYER9 9 +//#define MAGIC_KEY_BOOTLOADER PAUSE +//#define MAGIC_KEY_LOCK CAPS +//#define MAGIC_KEY_EEPROM E +//#define MAGIC_KEY_NKRO N +//#define MAGIC_KEY_SLEEP_LED Z + +/* + * Feature disable options + * These options are also useful to firmware size reduction. + */ + +/* disable debug print */ +//#define NO_DEBUG + +/* disable print */ +//#define NO_PRINT + +/* disable action features */ +//#define NO_ACTION_LAYER +//#define NO_ACTION_TAPPING +//#define NO_ACTION_ONESHOT +//#define NO_ACTION_MACRO +//#define NO_ACTION_FUNCTION diff --git a/keyboards/mkbd65/info.json b/keyboards/mkbd65/info.json new file mode 100644 index 0000000000..a63e1f9a43 --- /dev/null +++ b/keyboards/mkbd65/info.json @@ -0,0 +1,310 @@ +{ + "keyboard_name": "MKBD65", + "url": "https://gitlab.com/xengi/mkbd65", + "maintainer": "XenGi", + "width": 12, + "height": 5, + "layouts": { + "LAYOUT": { + "key_count": 58, + "layout": [ + { + "label": "Esc", + "x": 0, + "y": 0 + }, + { + "label": "1", + "x": 1, + "y": 0 + }, + { + "label": "2", + "x": 2, + "y": 0 + }, + { + "label": "3", + "x": 3, + "y": 0 + }, + { + "label": "4", + "x": 4, + "y": 0 + }, + { + "label": "5", + "x": 5, + "y": 0 + }, + { + "label": "6", + "x": 6, + "y": 0 + }, + { + "label": "7", + "x": 7, + "y": 0 + }, + { + "label": "8", + "x": 8, + "y": 0 + }, + { + "label": "9", + "x": 9, + "y": 0 + }, + { + "label": "0", + "x": 10, + "y": 0 + }, + { + "label": "Delete", + "x": 11, + "y": 0 + }, + { + "label": "Q", + "x": 0, + "y": 1 + }, + { + "label": "W", + "x": 1, + "y": 1 + }, + { + "label": "E", + "x": 2, + "y": 1 + }, + { + "label": "R", + "x": 3, + "y": 1 + }, + { + "label": "T", + "x": 4, + "y": 1 + }, + { + "label": "Y", + "x": 5, + "y": 1 + }, + { + "label": "U", + "x": 6, + "y": 1 + }, + { + "label": "I", + "x": 7, + "y": 1 + }, + { + "label": "O", + "x": 8, + "y": 1 + }, + { + "label": "P", + "x": 9, + "y": 1 + }, + { + "label": "{", + "x": 10, + "y": 1 + }, + { + "label": "}", + "x": 11, + "y": 1 + }, + { + "label": "A", + "x": 0, + "y": 3 + }, + { + "label": "S", + "x": 1, + "y": 3 + }, + { + "label": "D", + "x": 2, + "y": 3 + }, + { + "label": "F", + "x": 3, + "y": 3 + }, + { + "label": "G", + "x": 4, + "y": 3 + }, + { + "label": "H", + "x": 5, + "y": 3 + }, + { + "label": "J", + "x": 6, + "y": 3 + }, + { + "label": "K", + "x": 7, + "y": 3 + }, + { + "label": "L", + "x": 8, + "y": 3 + }, + { + "label": ":", + "x": 9, + "y": 3 + }, + { + "label": "\"", + "x": 10, + "y": 3 + }, + { + "label": "Enter", + "x": 11, + "y": 3, + "w": 2.25 + }, + { + "label": "Z", + "x": 0, + "y": 4 + }, + { + "label": "X", + "x": 1, + "y": 4 + }, + { + "label": "C", + "x": 2, + "y": 4 + }, + { + "label": "V", + "x": 3, + "y": 4 + }, + { + "label": "B", + "x": 4, + "y": 4 + }, + { + "label": "N", + "x": 5, + "y": 4 + }, + { + "label": "M", + "x": 6, + "y": 4 + }, + { + "label": "<", + "x": 7, + "y": 4 + }, + { + "label": ">", + "x": 8, + "y": 4 + }, + { + "label": "?", + "x": 9, + "y": 4 + }, + { + "label": "↑", + "x": 10, + "y": 4 + }, + { + "label": "Shift", + "x": 11, + "y": 4 + }, + { + "label": "Ctrl", + "x": 0, + "y": 5 + }, + { + "label": "Fn", + "x": 1, + "y": 5 + }, + { + "label": "Shift", + "x": 2, + "y": 5 + }, + { + "label": "Alt", + "x": 3, + "y": 5 + }, + { + "label": "|", + "x": 4, + "y": 5 + }, + { + "x": 5, + "y": 5, + "w": 2 + }, + { + "label": "_", + "x": 7, + "y": 5 + }, + { + "label": "+", + "x": 8, + "y": 5 + }, + { + "label": "←", + "x": 9, + "y": 5 + }, + { + "label": "↓", + "x": 10, + "y": 5 + }, + { + "label": "→", + "x": 11, + "y": 5 + } + ] + } + } +} diff --git a/keyboards/mkbd65/keymaps/default/README.md b/keyboards/mkbd65/keymaps/default/README.md new file mode 100644 index 0000000000..2f7e9c220f --- /dev/null +++ b/keyboards/mkbd65/keymaps/default/README.md @@ -0,0 +1,52 @@ +# The default keymap for mkbd65 + +``` +0: no mod +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╗ +║ ESC║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║BKSP║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ +║ q ║ w ║ e ║ r ║ t ║ y ║ u ║ i ║ o ║ p ║ [ ║ ] ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ +║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ; ║ ' ║ RET║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ +║ z ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ / ║ ▲ ║SHFT║ +╠════╬════╬════╬════╬════╬════╩════╬════╬════╬════╬════╬════╣ +║CTRL║ FN ║SHFT║ ALT║ \ ║ SPACE ║ - ║ = ║ ◀ ║ ▼ ║ ▶ ║ +╚════╩════╩════╩════╩════╩═════════╩════╩════╩════╩════╩════╝ +1: mod shift +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╗ +║ ~ ║ ! ║ @ ║ # ║ $ ║ % ║ ^ ║ & ║ * ║ ( ║ ) ║BKSP║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ +║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ { ║ } ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ +║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ : ║ " ║ RET║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ +║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ < ║ > ║ ? ║ ▲ ║░░░░║ +╠════╬════╬════╬════╬════╬════╩════╬════╬════╬════╬════╬════╣ +║CTRL║ FN ║░░░░║ ALT║ | ║ SPACE ║ _ ║ + ║ ◀ ║ ▼ ║ ▶ ║ +╚════╩════╩════╩════╩════╩═════════╩════╩════╩════╩════╩════╝ +2: mod alt +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╗ +║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║BKSP║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ +║ ä ║ ║ ║ ║ ║ ü ║ ║ ║ ║ ö ║ « ║ » ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ +║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ RET║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ +║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ▲ ║SHFT║ +╠════╬════╬════╬════╬════╬════╩════╬════╬════╬════╬════╬════╣ +║CTRL║ FN ║SHFT║░░░░║ ║ SPACE ║ ║ ║ ◀ ║ ▼ ║ ▶ ║ +╚════╩════╩════╩════╩════╩═════════╩════╩════╩════╩════╩════╝ +3: mod fn +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╗ +║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Del║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║SUPR║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║SHFT║ +╠════╬════╬════╬════╬════╬════╩════╬════╬════╬════╬════╬════╣ +║CTRL║░░░░║SHFT║ ALT║ ║ Tab ║ ║ ` ║Pos1║PgDn║ End║ +╚════╩════╩════╩════╩════╩═════════╩════╩════╩════╩════╩════╝ +``` diff --git a/keyboards/mkbd65/keymaps/default/config.h b/keyboards/mkbd65/keymaps/default/config.h new file mode 100644 index 0000000000..d08c67c094 --- /dev/null +++ b/keyboards/mkbd65/keymaps/default/config.h @@ -0,0 +1,19 @@ +/* Copyright 2018 XenGi + * + * 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 + +// place overrides here diff --git a/keyboards/mkbd65/keymaps/default/keymap.c b/keyboards/mkbd65/keymaps/default/keymap.c new file mode 100644 index 0000000000..f57e6871fb --- /dev/null +++ b/keyboards/mkbd65/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2018 XenGi + * + * 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 layer */ + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + 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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, + KC_LCTL, MO(1), KC_LSFT, KC_RALT, KC_BSLS, KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT( /* Function layer */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_GRV, KC_LGUI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END + ), +}; + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +} + +void led_set_user(uint8_t usb_led) { +} + diff --git a/keyboards/mkbd65/mkbd65.c b/keyboards/mkbd65/mkbd65.c new file mode 100644 index 0000000000..ab03178a44 --- /dev/null +++ b/keyboards/mkbd65/mkbd65.c @@ -0,0 +1,43 @@ +/* Copyright 2018 XenGi + * + * 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 "mkbd65.h" + +void matrix_init_kb(void) { + // put your keyboard start-up code here + // runs once when the firmware starts up + + matrix_init_user(); +} + +void matrix_scan_kb(void) { + // put your looping keyboard code here + // runs every cycle (a lot) + + matrix_scan_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + // put your per-action keyboard code here + // runs for every action, just before processing by the firmware + + return process_record_user(keycode, record); +} + +void led_set_kb(uint8_t usb_led) { + // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here + + led_set_user(usb_led); +} diff --git a/keyboards/mkbd65/mkbd65.h b/keyboards/mkbd65/mkbd65.h new file mode 100644 index 0000000000..b9437d02b3 --- /dev/null +++ b/keyboards/mkbd65/mkbd65.h @@ -0,0 +1,56 @@ +/* Copyright 2018 XenGi + * + * 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 . + */ +#ifndef MKBD65_H +#define MKBD65_H + +#include "quantum.h" + +/* LAYOUT + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┼───┤ + * │ │ │ │ │ │ 2.0U │ │ │ │ │ │ + * └───┴───┴───┴───┴───┴───────┴───┴───┴───┴───┴───┘ + * This a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, \ + K40, K41, K42, K43, K44, K45, K47, K48, K49, K410, K411 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311 }, \ + { K40, K41, K42, K43, K44, K45, KC_NO, K47, K48, K49, K410, K411 } \ +} + +#endif diff --git a/keyboards/mkbd65/rules.mk b/keyboards/mkbd65/rules.mk new file mode 100644 index 0000000000..0187f822d3 --- /dev/null +++ b/keyboards/mkbd65/rules.mk @@ -0,0 +1,80 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency. +# This will define a symbol, F_CPU, in all source code files equal to the +# processor frequency in Hz. You can then use this symbol in your source code to +# calculate timings. Do NOT tack on a 'UL' at the end, this will be done +# automatically to create a 32-bit value in your source code. +# +# This will be an integer division of F_USB below, as it is sourced by +# F_USB after it has run through any CPU prescalers. Note that this value +# does not *change* the processor frequency - it should merely be updated to +# reflect the processor speed set externally so that the code can use accurate +# software delays. +F_CPU = 16000000 + + +# +# LUFA specific +# +# Target architecture (see library "Board Types" documentation). +ARCH = AVR8 + +# Input clock frequency. +# This will define a symbol, F_USB, in all source code files equal to the +# input clock frequency (before any prescaling is performed) in Hz. This value may +# differ from F_CPU if prescaling is used on the latter, and is required as the +# raw input clock is fed directly to the PLL sections of the AVR for high speed +# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' +# at the end, this will be done automatically to create a 32-bit value in your +# source code. +# +# If no clock division is performed on the input clock inside the AVR (via the +# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. +F_USB = $(F_CPU) + +# Interrupt driven control endpoint task(+60) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT + + +# Bootloader selection +# Teensy halfkay +# Pro Micro caterina +# Atmel DFU atmel-dfu +# LUFA DFU lufa-dfu +# QMK DFU qmk-dfu +# atmega32a bootloadHID +BOOTLOADER = halfkay + + +# If you don't know the bootloader type, then you can specify the +# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line +# Teensy halfKay 512 +# Teensy++ halfKay 1024 +# Atmel DFU loader 4096 +# LUFA bootloader 4096 +# USBaspLoader 2048 +# OPT_DEFS += -DBOOTLOADER_SIZE=4096 + + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) +MOUSEKEY_ENABLE = no # Mouse keys(+4700) +EXTRAKEY_ENABLE = yes # Audio control and System control(+450) +CONSOLE_ENABLE = yes # Console for debug(+400) +COMMAND_ENABLE = yes # Commands for debug and configuration +# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE +SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend +# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work +NKRO_ENABLE = no # USB Nkey Rollover +BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) +UNICODE_ENABLE = no # Unicode +BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID +AUDIO_ENABLE = no # Audio output on port C6 +FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches +HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) From d7ebb14089b49446dfdbbdd293290288eaec615c Mon Sep 17 00:00:00 2001 From: XenGi Date: Thu, 4 Nov 2021 17:45:28 +0000 Subject: [PATCH 002/255] Update README.md --- keyboards/mkbd65/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/mkbd65/README.md b/keyboards/mkbd65/README.md index b9946cfd26..887aa2a795 100644 --- a/keyboards/mkbd65/README.md +++ b/keyboards/mkbd65/README.md @@ -2,11 +2,11 @@ ![mkbd65](https://gitlab.com/mkbd65/pcb/raw/master/mkbd65.png) -A mobile keyboard addon for smartphones. +A mobile keyboard addon for modern smartphones. -Keyboard Maintainer: [XenGi](https://xengi.de) -Hardware Supported: [mkbd65 PCB](https://gitlab.com/mkbd65) -Hardware Availability: - +- Keyboard Maintainer: [XenGi](https://xengi.de) +- Hardware Supported: [mkbd65 PCB](https://gitlab.com/mkbd65/pcb) +- Hardware Availability: - Make example for this keyboard (after setting up your build environment): From 822e0caf42e190d846d4ef2496a740f1af625ef2 Mon Sep 17 00:00:00 2001 From: XenGi Date: Thu, 4 Nov 2021 17:48:29 +0000 Subject: [PATCH 003/255] Update keyboards/mkbd65/mkbd65.png, keyboards/mkbd65/README.md --- keyboards/mkbd65/README.md | 2 +- keyboards/mkbd65/mkbd65.png | Bin 0 -> 812 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 keyboards/mkbd65/mkbd65.png diff --git a/keyboards/mkbd65/README.md b/keyboards/mkbd65/README.md index 887aa2a795..08852e8fc2 100644 --- a/keyboards/mkbd65/README.md +++ b/keyboards/mkbd65/README.md @@ -1,6 +1,6 @@ # mkbd65 -![mkbd65](https://gitlab.com/mkbd65/pcb/raw/master/mkbd65.png) +![mkbd65](https://gitlab.com/mkbd65/qmk-firmware/-/raw/mkbd65/keyboards/mkbd65/mkbd65.png?inline=false) A mobile keyboard addon for modern smartphones. diff --git a/keyboards/mkbd65/mkbd65.png b/keyboards/mkbd65/mkbd65.png new file mode 100644 index 0000000000000000000000000000000000000000..b873771c748a467ea808d6c7f91220fe7642e11c GIT binary patch literal 812 zcmeAS@N?(olHy`uVBq!ia0y~yVDMsKU@+%kVqjoU;q$g+U|?*?baoE#baqxKD9TUE z%t>Wn(3n^|(bnUzgUr$R%UwZQO}ZM7CM>jy6c8=Eq9wA>X@zK1slm=K+_OwnboKh0 zvJW2YKf0>9d-FQJbxjIC7#}@*w&aD9>OXzWEgc^p?2v!|&i36sMyJJROtcO7GODin zs6I+k+pSf$U#WxPm*BC6GdjtBlO}zTiU0oL<5#_7oA;dmYgu)5&QXT>9yX_WHhb-H zwAmYJYVls!Jt8oy^L*!VpIr(cm9L9Vzi%NfBUX`i#Ao@lPURy>3!A6%rMU(x&r|AK zHOud()3Ma4pT*MG#w4$;{v_U3^y`$-^-MnHMpqrjCJt89DFJSxhEb(KI!iL_-#wHs z`XjVcq-g4a6B`@2OiuL4|KYDI&wi?|erHL5%!{gxZ~FxoREuX^%l-ZP#HAX4HWh(Z*iu2j;oqsWVlfw@&j&(ct zZv9sHi($#i)lYZ}3OIViG^+1DzH2*o@89ZWSMT$y&MWHZ6T5Pofq{Xuz$3Dlfk96h zgc&QA+LtjfFtC?+`ns||EZzkx!g~flkEm$e^vd7w~p1<#LG+X z*IfVhA#h>pBrff{Vawkv`gAnB?yBC`poGZxYvVRQS74qSe0$f27ImAh88;6swplmr z+l&v>$^!TQ5Wg?M;Zo6ZGT&?A$+H{^h3@A9WQsy!D$hO4KNXqFv;By~|DTgsa@wO} ztLrr0dRAYW_surb|JLMhOKdaW`)?_K8Q@~Md`tPVy$Al9uk*e5KsMk`{ULjX`!&i( VH6?xTGcYhPc)I$ztaD0e0s!C_ZHNE> literal 0 HcmV?d00001 From 706bbd9228da354a6a653421b4030b5f72e7fc19 Mon Sep 17 00:00:00 2001 From: "Ricardo (XenGi) Band" Date: Wed, 5 Jan 2022 00:59:33 +0100 Subject: [PATCH 004/255] support new PCB and ANSI and ISO layout --- keyboards/mkbd65/README.md | 11 ++- keyboards/mkbd65/config.h | 19 ++-- keyboards/mkbd65/info.json | 2 +- .../keymaps/{default => ansi}/README.md | 92 ++++++++++--------- .../mkbd65/keymaps/{default => ansi}/config.h | 2 +- keyboards/mkbd65/keymaps/ansi/keymap.c | 45 +++++++++ keyboards/mkbd65/keymaps/default | 1 + keyboards/mkbd65/keymaps/iso/README.md | 54 +++++++++++ keyboards/mkbd65/keymaps/iso/config.h | 19 ++++ .../mkbd65/keymaps/{default => iso}/keymap.c | 14 +-- keyboards/mkbd65/mkbd65.c | 2 +- keyboards/mkbd65/mkbd65.h | 78 +++++++++++----- 12 files changed, 248 insertions(+), 91 deletions(-) rename keyboards/mkbd65/keymaps/{default => ansi}/README.md (52%) rename keyboards/mkbd65/keymaps/{default => ansi}/config.h (96%) create mode 100644 keyboards/mkbd65/keymaps/ansi/keymap.c create mode 120000 keyboards/mkbd65/keymaps/default create mode 100644 keyboards/mkbd65/keymaps/iso/README.md create mode 100644 keyboards/mkbd65/keymaps/iso/config.h rename keyboards/mkbd65/keymaps/{default => iso}/keymap.c (78%) diff --git a/keyboards/mkbd65/README.md b/keyboards/mkbd65/README.md index 08852e8fc2..045589252f 100644 --- a/keyboards/mkbd65/README.md +++ b/keyboards/mkbd65/README.md @@ -1,7 +1,7 @@ -# mkbd65 - ![mkbd65](https://gitlab.com/mkbd65/qmk-firmware/-/raw/mkbd65/keyboards/mkbd65/mkbd65.png?inline=false) +# mkbd65 + A mobile keyboard addon for modern smartphones. - Keyboard Maintainer: [XenGi](https://xengi.de) @@ -14,4 +14,11 @@ Make example for this keyboard (after setting up your build environment): make mkbd65:default ``` +Available layouts: + + - ansi (default) + - iso (upright `Enter` key) + +_Don't forget to connect the correct solder joints on the PCB to switch the layout._ + 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/mkbd65/config.h b/keyboards/mkbd65/config.h index 704fe8f4dc..6b4e2fbe05 100644 --- a/keyboards/mkbd65/config.h +++ b/keyboards/mkbd65/config.h @@ -1,5 +1,5 @@ /* -Copyright 2018 XenGi +Copyright 2022 XenGi 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 @@ -20,8 +20,8 @@ along with this program. If not, see . #include "config_common.h" /* USB Device descriptor parameter */ -#define VENDOR_ID 0xDEAD -#define PRODUCT_ID 0xBEAF +#define VENDOR_ID 0x1209 +#define PRODUCT_ID 0x4803 #define DEVICE_VER 0x0001 #define MANUFACTURER XenGi #define PRODUCT mkbd65 @@ -29,7 +29,7 @@ along with this program. If not, see . /* key matrix size */ #define MATRIX_ROWS 5 -#define MATRIX_COLS 12 +#define MATRIX_COLS 13 /* * Keyboard Matrix Assignments @@ -41,16 +41,17 @@ along with this program. If not, see . * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) * */ -#define MATRIX_ROW_PINS { D4, D6, D7, B4, B5 } -#define MATRIX_COL_PINS { D5, C7, C6, D3, D2, D1, D0, B7, B3, B2, B1, B0 } -#define UNUSED_PINS { E6, F0, F1, F4, F5, F6, F7 } +#define MATRIX_COL_PINS { D4, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, F1, F0 } +#define MATRIX_ROW_PINS { D5, D3, D2, D1, D0 } +#define UNUSED_PINS { B3, B2, B1, B0, E6 } /* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ -#define DIODE_DIRECTION COL2ROW +#define DIODE_DIRECTION ROW2COL -#define BACKLIGHT_PIN B6 +#define BACKLIGHT_PIN B7 #define BACKLIGHT_BREATHING #define BACKLIGHT_LEVELS 3 +#define BACKLIGHT_ON_STATE 1 /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCING_DELAY 5 diff --git a/keyboards/mkbd65/info.json b/keyboards/mkbd65/info.json index a63e1f9a43..dd4edfcd06 100644 --- a/keyboards/mkbd65/info.json +++ b/keyboards/mkbd65/info.json @@ -1,6 +1,6 @@ { "keyboard_name": "MKBD65", - "url": "https://gitlab.com/xengi/mkbd65", + "url": "https://gitlab.com/mkbd65", "maintainer": "XenGi", "width": 12, "height": 5, diff --git a/keyboards/mkbd65/keymaps/default/README.md b/keyboards/mkbd65/keymaps/ansi/README.md similarity index 52% rename from keyboards/mkbd65/keymaps/default/README.md rename to keyboards/mkbd65/keymaps/ansi/README.md index 2f7e9c220f..00feeefc77 100644 --- a/keyboards/mkbd65/keymaps/default/README.md +++ b/keyboards/mkbd65/keymaps/ansi/README.md @@ -1,52 +1,54 @@ -# The default keymap for mkbd65 +# The ANSI keymap for mkbd65 + +This is the default layout. ``` 0: no mod -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╗ -║ ESC║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║BKSP║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ q ║ w ║ e ║ r ║ t ║ y ║ u ║ i ║ o ║ p ║ [ ║ ] ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ; ║ ' ║ RET║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ z ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ / ║ ▲ ║SHFT║ -╠════╬════╬════╬════╬════╬════╩════╬════╬════╬════╬════╬════╣ -║CTRL║ FN ║SHFT║ ALT║ \ ║ SPACE ║ - ║ = ║ ◀ ║ ▼ ║ ▶ ║ -╚════╩════╩════╩════╩════╩═════════╩════╩════╩════╩════╩════╝ +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ Esc║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║Backspace║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ q ║ w ║ e ║ r ║ t ║ y ║ u ║ i ║ o ║ p ║ [ ║ ] ║ \ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ; ║ ' ║ Return ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ +║ z ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ / ║ ▲ ║ Shift ║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║Ctrl║ Fn ║Shft║AltG║ Space ║ - ║ = ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ 1: mod shift -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╗ -║ ~ ║ ! ║ @ ║ # ║ $ ║ % ║ ^ ║ & ║ * ║ ( ║ ) ║BKSP║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ { ║ } ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ : ║ " ║ RET║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ < ║ > ║ ? ║ ▲ ║░░░░║ -╠════╬════╬════╬════╬════╬════╩════╬════╬════╬════╬════╬════╣ -║CTRL║ FN ║░░░░║ ALT║ | ║ SPACE ║ _ ║ + ║ ◀ ║ ▼ ║ ▶ ║ -╚════╩════╩════╩════╩════╩═════════╩════╩════╩════╩════╩════╝ +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ ~ ║ ! ║ @ ║ # ║ $ ║ % ║ ^ ║ & ║ * ║ ( ║ ) ║Backspace║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ { ║ } ║ | ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ : ║ " ║ Return ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ +║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ < ║ > ║ ? ║ ▲ ║░░░░░░░░░║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║Ctrl║ Fn ║░░░░║AltG║ Space ║ _ ║ + ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ 2: mod alt -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╗ -║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║BKSP║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ ä ║ ║ ║ ║ ║ ü ║ ║ ║ ║ ö ║ « ║ » ║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ RET║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ▲ ║SHFT║ -╠════╬════╬════╬════╬════╬════╩════╬════╬════╬════╬════╬════╣ -║CTRL║ FN ║SHFT║░░░░║ ║ SPACE ║ ║ ║ ◀ ║ ▼ ║ ▶ ║ -╚════╩════╩════╩════╩════╩═════════╩════╩════╩════╩════╩════╝ +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║Backspace║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ ä ║ ║ ║ ║ ║ ü ║ ║ ║ ║ ö ║ « ║ » ║ ¬ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ Return ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ +║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ▲ ║ Shift ║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║Ctrl║ Fn ║Shft║░░░░║ Space ║ ║ ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ 3: mod fn -╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╗ -║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Del║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║SUPR║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║SHFT║ -╠════╬════╬════╬════╬════╬════╩════╬════╬════╬════╬════╬════╣ -║CTRL║░░░░║SHFT║ ALT║ ║ Tab ║ ║ ` ║Pos1║PgDn║ End║ -╚════╩════╩════╩════╩════╩═════════╩════╩════╩════╩════╩════╝ +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Delete ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ Super ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ Shift ║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║Ctrl║░░░░║Shft║AltG║ Tab ║ ║ ` ║Pos1║PgDn║ End║Ctrl║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ ``` diff --git a/keyboards/mkbd65/keymaps/default/config.h b/keyboards/mkbd65/keymaps/ansi/config.h similarity index 96% rename from keyboards/mkbd65/keymaps/default/config.h rename to keyboards/mkbd65/keymaps/ansi/config.h index d08c67c094..b0d0727509 100644 --- a/keyboards/mkbd65/keymaps/default/config.h +++ b/keyboards/mkbd65/keymaps/ansi/config.h @@ -1,4 +1,4 @@ -/* Copyright 2018 XenGi +/* Copyright 2022 XenGi * * 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 diff --git a/keyboards/mkbd65/keymaps/ansi/keymap.c b/keyboards/mkbd65/keymaps/ansi/keymap.c new file mode 100644 index 0000000000..4b7b3520a4 --- /dev/null +++ b/keyboards/mkbd65/keymaps/ansi/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2022 XenGi + * + * 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_ANSI( /* Base layer */ + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + 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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, + KC_LCTL, MO(1), KC_LSFT, KC_RALT, KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL, + ), + + [1] = LAYOUT_ANSI( /* Function layer */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_GRV, KC_LGUI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______, + ), +}; + +void matrix_init_user(void) { +} + +void matrix_scan_user(void) { +} + +void led_set_user(uint8_t usb_led) { +} + diff --git a/keyboards/mkbd65/keymaps/default b/keyboards/mkbd65/keymaps/default new file mode 120000 index 0000000000..44ad4f4f7e --- /dev/null +++ b/keyboards/mkbd65/keymaps/default @@ -0,0 +1 @@ +ansi \ No newline at end of file diff --git a/keyboards/mkbd65/keymaps/iso/README.md b/keyboards/mkbd65/keymaps/iso/README.md new file mode 100644 index 0000000000..d08f8c1b9e --- /dev/null +++ b/keyboards/mkbd65/keymaps/iso/README.md @@ -0,0 +1,54 @@ +# The iso-like keymap for mkbd65 + +It's actually just ANSI but with an upright `Enter` key. + +``` +0: no mod +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ Esc║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║Backspace║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ q ║ w ║ e ║ r ║ t ║ y ║ u ║ i ║ o ║ p ║ [ ║ ] ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ Ret║ +║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ; ║ ' ║ \ ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ z ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ / ║ ▲ ║ Shift ║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║Ctrl║ Fn ║Shft║AltG║ SPACE ║ - ║ = ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +1: mod shift +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ ~ ║ ! ║ @ ║ # ║ $ ║ % ║ ^ ║ & ║ * ║ ( ║ ) ║Backspace║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ { ║ } ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ Ret║ +║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ : ║ " ║ | ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ < ║ > ║ ? ║ ▲ ║░░░░░░░░░║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║Ctrl║ Fn ║░░░░║AltG║ SPACE ║ _ ║ + ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +2: mod alt +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║Backspace║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ ä ║ ║ ║ ║ ║ ü ║ ║ ║ ║ ö ║ « ║ » ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ Ret║ +║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ¬ ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ▲ ║ Shift ║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║Ctrl║ Fn ║Shft║░░░░║ SPACE ║ ║ ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +3: mod fn +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Delete ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣Supr║ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ Shift ║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║Ctrl║░░░░║Shft║AltG║ Tab ║ ║ ` ║Pos1║PgDn║ End║Ctrl║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +``` diff --git a/keyboards/mkbd65/keymaps/iso/config.h b/keyboards/mkbd65/keymaps/iso/config.h new file mode 100644 index 0000000000..b0d0727509 --- /dev/null +++ b/keyboards/mkbd65/keymaps/iso/config.h @@ -0,0 +1,19 @@ +/* Copyright 2022 XenGi + * + * 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 + +// place overrides here diff --git a/keyboards/mkbd65/keymaps/default/keymap.c b/keyboards/mkbd65/keymaps/iso/keymap.c similarity index 78% rename from keyboards/mkbd65/keymaps/default/keymap.c rename to keyboards/mkbd65/keymaps/iso/keymap.c index f57e6871fb..155a2b205b 100644 --- a/keyboards/mkbd65/keymaps/default/keymap.c +++ b/keyboards/mkbd65/keymaps/iso/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2018 XenGi +/* Copyright 2022 XenGi * * 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 @@ -17,20 +17,20 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( /* Base layer */ + [0] = LAYOUT_ISO( /* Base layer */ KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, 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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, - KC_LCTL, MO(1), KC_LSFT, KC_RALT, KC_BSLS, KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT + KC_LCTL, MO(1), KC_LSFT, KC_RALT, KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL, ), - [1] = LAYOUT( /* Function layer */ + [1] = LAYOUT_ISO( /* Function layer */ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_GRV, KC_LGUI, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_GRV, _______, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, - _______, _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END + _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______, ), }; diff --git a/keyboards/mkbd65/mkbd65.c b/keyboards/mkbd65/mkbd65.c index ab03178a44..fae93a8ea5 100644 --- a/keyboards/mkbd65/mkbd65.c +++ b/keyboards/mkbd65/mkbd65.c @@ -1,4 +1,4 @@ -/* Copyright 2018 XenGi +/* Copyright 2022 XenGi * * 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 diff --git a/keyboards/mkbd65/mkbd65.h b/keyboards/mkbd65/mkbd65.h index b9437d02b3..1a53cad69f 100644 --- a/keyboards/mkbd65/mkbd65.h +++ b/keyboards/mkbd65/mkbd65.h @@ -1,4 +1,4 @@ -/* Copyright 2018 XenGi +/* Copyright 2022 XenGi * * 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 @@ -18,19 +18,19 @@ #include "quantum.h" -/* LAYOUT - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ - * │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ - * │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ - * │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├───┼───┼───┼───┼───┼───┴───┼───┼───┼───┼───┼───┤ - * │ │ │ │ │ │ 2.0U │ │ │ │ │ │ - * └───┴───┴───┴───┴───┴───────┴───┴───┴───┴───┴───┘ - * This a shortcut to help you visually see your layout. +/* LAYOUT_ANSI + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┬───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────┤ + * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ + * ├───┼───┼───┼───┼───┴───┴───┼───┼───┼───┼───┼───┬───┤ + * │ │ │ │ │ 3.0U │ │ │ │ │ │ │ + * └───┴───┴───┴───┴───────────┴───┴───┴───┴───┴───┴───┘ + * This is a shortcut to help you visually see your layout. * * The first section contains all of the arguments representing the physical * layout of the board and position of the keys. @@ -38,19 +38,47 @@ * The second converts the arguments into a two-dimensional array which * represents the switch matrix. */ -#define LAYOUT( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, \ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, \ - K40, K41, K42, K43, K44, K45, K47, K48, K49, K410, K411 \ +#define LAYOUT_ANSI( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, \ + K40, K41, K42, K43, K44, K47, K48, K49, K410, K411, K412 \ ) \ { \ - { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011 }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111 }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211 }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311 }, \ - { K40, K41, K42, K43, K44, K45, KC_NO, K47, K48, K49, K410, K411 } \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, KC_NO }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, KC_NO }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, KC_NO }, \ + { K40, K41, K42, K43, K44, KC_NO, KC_NO, K47, K48, K49, K410, K411, K412 } \ +} + +/* LAYOUT_ISO + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ + * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┬───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ │ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ + * ├───┼───┼───┼───┼───┴───┴───┼───┼───┼───┼───┼───┬───┤ + * │ │ │ │ │ 3.0U │ │ │ │ │ │ │ + * └───┴───┴───┴───┴───────────┴───┴───┴───┴───┴───┴───┘ + */ +#define LAYOUT_ISO( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, \ + K40, K41, K42, K43, K44, K47, K48, K49, K410, K411, K412 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, KC_NO }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, KC_NO }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, KC_NO }, \ + { K40, K41, K42, K43, K44, KC_NO, KC_NO, K47, K48, K49, K410, K411, K412 } \ } #endif From ae675071394ce10ae1698f34b4bbae446cf070bc Mon Sep 17 00:00:00 2001 From: "Ricardo (XenGi) Band" Date: Wed, 26 Jan 2022 00:06:05 +0100 Subject: [PATCH 005/255] fix code; first successful flash --- keyboards/mkbd65/README.md | 4 +- keyboards/mkbd65/info.json | 310 ------------------------- keyboards/mkbd65/keymaps/ansi/keymap.c | 6 +- keyboards/mkbd65/rules.mk | 2 +- 4 files changed, 6 insertions(+), 316 deletions(-) delete mode 100644 keyboards/mkbd65/info.json diff --git a/keyboards/mkbd65/README.md b/keyboards/mkbd65/README.md index 045589252f..d130cbf8e2 100644 --- a/keyboards/mkbd65/README.md +++ b/keyboards/mkbd65/README.md @@ -8,10 +8,10 @@ A mobile keyboard addon for modern smartphones. - Hardware Supported: [mkbd65 PCB](https://gitlab.com/mkbd65/pcb) - Hardware Availability: - -Make example for this keyboard (after setting up your build environment): +Flashing this keyboard with ANSI layout (after setting up your build environment): ``` -make mkbd65:default +qmk flash -kb mkbd65 -km ansi ``` Available layouts: diff --git a/keyboards/mkbd65/info.json b/keyboards/mkbd65/info.json deleted file mode 100644 index dd4edfcd06..0000000000 --- a/keyboards/mkbd65/info.json +++ /dev/null @@ -1,310 +0,0 @@ -{ - "keyboard_name": "MKBD65", - "url": "https://gitlab.com/mkbd65", - "maintainer": "XenGi", - "width": 12, - "height": 5, - "layouts": { - "LAYOUT": { - "key_count": 58, - "layout": [ - { - "label": "Esc", - "x": 0, - "y": 0 - }, - { - "label": "1", - "x": 1, - "y": 0 - }, - { - "label": "2", - "x": 2, - "y": 0 - }, - { - "label": "3", - "x": 3, - "y": 0 - }, - { - "label": "4", - "x": 4, - "y": 0 - }, - { - "label": "5", - "x": 5, - "y": 0 - }, - { - "label": "6", - "x": 6, - "y": 0 - }, - { - "label": "7", - "x": 7, - "y": 0 - }, - { - "label": "8", - "x": 8, - "y": 0 - }, - { - "label": "9", - "x": 9, - "y": 0 - }, - { - "label": "0", - "x": 10, - "y": 0 - }, - { - "label": "Delete", - "x": 11, - "y": 0 - }, - { - "label": "Q", - "x": 0, - "y": 1 - }, - { - "label": "W", - "x": 1, - "y": 1 - }, - { - "label": "E", - "x": 2, - "y": 1 - }, - { - "label": "R", - "x": 3, - "y": 1 - }, - { - "label": "T", - "x": 4, - "y": 1 - }, - { - "label": "Y", - "x": 5, - "y": 1 - }, - { - "label": "U", - "x": 6, - "y": 1 - }, - { - "label": "I", - "x": 7, - "y": 1 - }, - { - "label": "O", - "x": 8, - "y": 1 - }, - { - "label": "P", - "x": 9, - "y": 1 - }, - { - "label": "{", - "x": 10, - "y": 1 - }, - { - "label": "}", - "x": 11, - "y": 1 - }, - { - "label": "A", - "x": 0, - "y": 3 - }, - { - "label": "S", - "x": 1, - "y": 3 - }, - { - "label": "D", - "x": 2, - "y": 3 - }, - { - "label": "F", - "x": 3, - "y": 3 - }, - { - "label": "G", - "x": 4, - "y": 3 - }, - { - "label": "H", - "x": 5, - "y": 3 - }, - { - "label": "J", - "x": 6, - "y": 3 - }, - { - "label": "K", - "x": 7, - "y": 3 - }, - { - "label": "L", - "x": 8, - "y": 3 - }, - { - "label": ":", - "x": 9, - "y": 3 - }, - { - "label": "\"", - "x": 10, - "y": 3 - }, - { - "label": "Enter", - "x": 11, - "y": 3, - "w": 2.25 - }, - { - "label": "Z", - "x": 0, - "y": 4 - }, - { - "label": "X", - "x": 1, - "y": 4 - }, - { - "label": "C", - "x": 2, - "y": 4 - }, - { - "label": "V", - "x": 3, - "y": 4 - }, - { - "label": "B", - "x": 4, - "y": 4 - }, - { - "label": "N", - "x": 5, - "y": 4 - }, - { - "label": "M", - "x": 6, - "y": 4 - }, - { - "label": "<", - "x": 7, - "y": 4 - }, - { - "label": ">", - "x": 8, - "y": 4 - }, - { - "label": "?", - "x": 9, - "y": 4 - }, - { - "label": "↑", - "x": 10, - "y": 4 - }, - { - "label": "Shift", - "x": 11, - "y": 4 - }, - { - "label": "Ctrl", - "x": 0, - "y": 5 - }, - { - "label": "Fn", - "x": 1, - "y": 5 - }, - { - "label": "Shift", - "x": 2, - "y": 5 - }, - { - "label": "Alt", - "x": 3, - "y": 5 - }, - { - "label": "|", - "x": 4, - "y": 5 - }, - { - "x": 5, - "y": 5, - "w": 2 - }, - { - "label": "_", - "x": 7, - "y": 5 - }, - { - "label": "+", - "x": 8, - "y": 5 - }, - { - "label": "←", - "x": 9, - "y": 5 - }, - { - "label": "↓", - "x": 10, - "y": 5 - }, - { - "label": "→", - "x": 11, - "y": 5 - } - ] - } - } -} diff --git a/keyboards/mkbd65/keymaps/ansi/keymap.c b/keyboards/mkbd65/keymaps/ansi/keymap.c index 4b7b3520a4..cc7c6018cc 100644 --- a/keyboards/mkbd65/keymaps/ansi/keymap.c +++ b/keyboards/mkbd65/keymaps/ansi/keymap.c @@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, - KC_LCTL, MO(1), KC_LSFT, KC_RALT, KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL, + KC_LCTL, MO(1), KC_LSFT, KC_RALT, KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL ), [1] = LAYOUT_ANSI( /* Function layer */ @@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_GRV, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, - _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______, - ), + _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ + ) }; void matrix_init_user(void) { diff --git a/keyboards/mkbd65/rules.mk b/keyboards/mkbd65/rules.mk index 0187f822d3..a6bdd38bae 100644 --- a/keyboards/mkbd65/rules.mk +++ b/keyboards/mkbd65/rules.mk @@ -45,7 +45,7 @@ OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT # LUFA DFU lufa-dfu # QMK DFU qmk-dfu # atmega32a bootloadHID -BOOTLOADER = halfkay +BOOTLOADER = atmel-dfu # If you don't know the bootloader type, then you can specify the From 7b8e2a8ea070d6bf4b9878788fb52892fef71447 Mon Sep 17 00:00:00 2001 From: XenGi Date: Thu, 27 Jan 2022 19:46:54 +0000 Subject: [PATCH 006/255] Update keyboards/mkbd65/keymaps/ansi/README.md --- keyboards/mkbd65/keymaps/ansi/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/mkbd65/keymaps/ansi/README.md b/keyboards/mkbd65/keymaps/ansi/README.md index 00feeefc77..99bec108a1 100644 --- a/keyboards/mkbd65/keymaps/ansi/README.md +++ b/keyboards/mkbd65/keymaps/ansi/README.md @@ -30,7 +30,7 @@ This is the default layout. 2: mod alt ╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ ║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║Backspace║ -╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +╠════╬════╬════╬════╬════╬════╬════╬════╬══` ══╬════╬════╬════╦════╣ ║ ä ║ ║ ║ ║ ║ ü ║ ║ ║ ║ ö ║ « ║ » ║ ¬ ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ ║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ Return ║ @@ -45,10 +45,10 @@ This is the default layout. ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ Super ║ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ` ║ Super ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ Shift ║ ╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║Ctrl║░░░░║Shft║AltG║ Tab ║ ║ ` ║Pos1║PgDn║ End║Ctrl║ +║Ctrl║░░░░║Shft║AltG║ Tab ║ ║ ║Pos1║PgDn║ End║Ctrl║ ╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ ``` From f0cb73c17581fb40cc5db36d7a182218aaabfb49 Mon Sep 17 00:00:00 2001 From: XenGi Date: Thu, 27 Jan 2022 19:47:25 +0000 Subject: [PATCH 007/255] Update keyboards/mkbd65/keymaps/ansi/README.md --- keyboards/mkbd65/keymaps/ansi/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/keyboards/mkbd65/keymaps/ansi/README.md b/keyboards/mkbd65/keymaps/ansi/README.md index 99bec108a1..87759b323b 100644 --- a/keyboards/mkbd65/keymaps/ansi/README.md +++ b/keyboards/mkbd65/keymaps/ansi/README.md @@ -30,12 +30,12 @@ This is the default layout. 2: mod alt ╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ ║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║Backspace║ -╠════╬════╬════╬════╬════╬════╬════╬════╬══` ══╬════╬════╬════╦════╣ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ ║ ä ║ ║ ║ ║ ║ ü ║ ║ ║ ║ ö ║ « ║ » ║ ¬ ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ ║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ Return ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ▲ ║ Shift ║ +║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ▲ ║ Shift ║ ╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ ║Ctrl║ Fn ║Shft║░░░░║ Space ║ ║ ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ ╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ From acb282080a689bfe8eb64792f15433f8a14501c4 Mon Sep 17 00:00:00 2001 From: "Ricardo (XenGi) Band" Date: Sat, 19 Feb 2022 18:31:46 +0100 Subject: [PATCH 008/255] make AltGr a sticky key, Fixes #1 --- keyboards/mkbd65/config.h | 5 +++-- keyboards/mkbd65/keymaps/ansi/keymap.c | 2 +- keyboards/mkbd65/keymaps/iso/keymap.c | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/keyboards/mkbd65/config.h b/keyboards/mkbd65/config.h index 6b4e2fbe05..8eff7c175d 100644 --- a/keyboards/mkbd65/config.h +++ b/keyboards/mkbd65/config.h @@ -22,9 +22,9 @@ along with this program. If not, see . /* USB Device descriptor parameter */ #define VENDOR_ID 0x1209 #define PRODUCT_ID 0x4803 -#define DEVICE_VER 0x0001 +#define DEVICE_VER 0x0002 #define MANUFACTURER XenGi -#define PRODUCT mkbd65 +#define PRODUCT mkbd65 rev1 #define DESCRIPTION Custom keyboard addon for smartphones /* key matrix size */ @@ -48,6 +48,7 @@ along with this program. If not, see . /* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ #define DIODE_DIRECTION ROW2COL +/* (back)light configuration */ #define BACKLIGHT_PIN B7 #define BACKLIGHT_BREATHING #define BACKLIGHT_LEVELS 3 diff --git a/keyboards/mkbd65/keymaps/ansi/keymap.c b/keyboards/mkbd65/keymaps/ansi/keymap.c index cc7c6018cc..52e6bb289e 100644 --- a/keyboards/mkbd65/keymaps/ansi/keymap.c +++ b/keyboards/mkbd65/keymaps/ansi/keymap.c @@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, - KC_LCTL, MO(1), KC_LSFT, KC_RALT, KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL + KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL ), [1] = LAYOUT_ANSI( /* Function layer */ diff --git a/keyboards/mkbd65/keymaps/iso/keymap.c b/keyboards/mkbd65/keymaps/iso/keymap.c index 155a2b205b..9187478d99 100644 --- a/keyboards/mkbd65/keymaps/iso/keymap.c +++ b/keyboards/mkbd65/keymaps/iso/keymap.c @@ -22,7 +22,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, - KC_LCTL, MO(1), KC_LSFT, KC_RALT, KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL, + KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL, ), [1] = LAYOUT_ISO( /* Function layer */ From 4dcbaafb78c86cdbb7d0bdf70413bcd55db1c8ae Mon Sep 17 00:00:00 2001 From: "Ricardo (XenGi) Band" Date: Sat, 19 Feb 2022 21:58:06 +0100 Subject: [PATCH 009/255] add media controls --- keyboards/mkbd65/keymaps/ansi/keymap.c | 6 +++--- keyboards/mkbd65/keymaps/iso/keymap.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/keyboards/mkbd65/keymaps/ansi/keymap.c b/keyboards/mkbd65/keymaps/ansi/keymap.c index 52e6bb289e..972410b3dd 100644 --- a/keyboards/mkbd65/keymaps/ansi/keymap.c +++ b/keyboards/mkbd65/keymaps/ansi/keymap.c @@ -27,9 +27,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_ANSI( /* Function layer */ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_GRV, KC_LGUI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, KC_APP, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_LGUI, + _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ ) }; diff --git a/keyboards/mkbd65/keymaps/iso/keymap.c b/keyboards/mkbd65/keymaps/iso/keymap.c index 9187478d99..eff19b0c4f 100644 --- a/keyboards/mkbd65/keymaps/iso/keymap.c +++ b/keyboards/mkbd65/keymaps/iso/keymap.c @@ -28,8 +28,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [1] = LAYOUT_ISO( /* Function layer */ RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_GRV, _______, KC_LGUI, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_APP, KC_LGUI, + _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______, ), }; From 9c3912ba8fb9cc211bbe57ee56b08cbb057affa6 Mon Sep 17 00:00:00 2001 From: XenGi Date: Fri, 26 May 2023 11:11:10 +0000 Subject: [PATCH 010/255] Update README.md --- keyboards/mkbd65/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/keyboards/mkbd65/README.md b/keyboards/mkbd65/README.md index d130cbf8e2..6c694a5f92 100644 --- a/keyboards/mkbd65/README.md +++ b/keyboards/mkbd65/README.md @@ -19,6 +19,4 @@ Available layouts: - ansi (default) - iso (upright `Enter` key) -_Don't forget to connect the correct solder joints on the PCB to switch the layout._ - 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 2ba9ed711088e7ccfa0df89fa9948aed6161cae9 Mon Sep 17 00:00:00 2001 From: XenGi Date: Fri, 26 May 2023 11:13:43 +0000 Subject: [PATCH 011/255] Update README.md --- keyboards/mkbd65/README.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/keyboards/mkbd65/README.md b/keyboards/mkbd65/README.md index 6c694a5f92..f30b7c91ea 100644 --- a/keyboards/mkbd65/README.md +++ b/keyboards/mkbd65/README.md @@ -8,15 +8,19 @@ A mobile keyboard addon for modern smartphones. - Hardware Supported: [mkbd65 PCB](https://gitlab.com/mkbd65/pcb) - Hardware Availability: - -Flashing this keyboard with ANSI layout (after setting up your build environment): +Flashing this keyboard with `en-us-intl` layout (after setting up your build environment): ``` -qmk flash -kb mkbd65 -km ansi +qmk flash -kb mkbd65 -km en-us-intl ``` Available layouts: - - ansi (default) - - iso (upright `Enter` key) + - en-us-intl (ansi) + - de-de (iso) + +You can find community provided layouts here: https://gitlab.com/mkbd65/community + +--- 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 1bb2a178572b1fb6416032b5898d956436902aab Mon Sep 17 00:00:00 2001 From: XenGi Date: Fri, 26 May 2023 11:27:32 +0000 Subject: [PATCH 012/255] Update README.md --- keyboards/mkbd65/keymaps/ansi/README.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/keyboards/mkbd65/keymaps/ansi/README.md b/keyboards/mkbd65/keymaps/ansi/README.md index 87759b323b..923a3ccf57 100644 --- a/keyboards/mkbd65/keymaps/ansi/README.md +++ b/keyboards/mkbd65/keymaps/ansi/README.md @@ -1,6 +1,9 @@ -# The ANSI keymap for mkbd65 +# The English US International keymap for mkbd65 by XenGi + +This is the default layout for the mkbd65 keyboard. You can use it as a reference for other layouts. + +It is based on the "English (intl., with AltGr dead keys)" layout. -This is the default layout. ``` 0: no mod From 462077f2dd3d5069986ac9a34ac779c36047c900 Mon Sep 17 00:00:00 2001 From: XenGi Date: Fri, 26 May 2023 11:33:48 +0000 Subject: [PATCH 013/255] Update README.md --- keyboards/mkbd65/keymaps/ansi/README.md | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/keyboards/mkbd65/keymaps/ansi/README.md b/keyboards/mkbd65/keymaps/ansi/README.md index 923a3ccf57..b394d98f2c 100644 --- a/keyboards/mkbd65/keymaps/ansi/README.md +++ b/keyboards/mkbd65/keymaps/ansi/README.md @@ -4,6 +4,7 @@ This is the default layout for the mkbd65 keyboard. You can use it as a referenc It is based on the "English (intl., with AltGr dead keys)" layout. +This is the key matrix (no label means the key from layer 0 will be used): ``` 0: no mod @@ -20,27 +21,27 @@ It is based on the "English (intl., with AltGr dead keys)" layout. ╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ 1: mod shift ╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ ~ ║ ! ║ @ ║ # ║ $ ║ % ║ ^ ║ & ║ * ║ ( ║ ) ║Backspace║ +║ ~ ║ ! ║ @ ║ # ║ $ ║ % ║ ^ ║ & ║ * ║ ( ║ ) ║ ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ ║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ { ║ } ║ | ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ : ║ " ║ Return ║ +║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ : ║ " ║ ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ < ║ > ║ ? ║ ▲ ║░░░░░░░░░║ +║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ < ║ > ║ ? ║ ║░░░░░░░░░║ ╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║Ctrl║ Fn ║░░░░║AltG║ Space ║ _ ║ + ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ +║ ║ ║░░░░║ ║ ║ _ ║ + ║ ║ ║ ║ ║ ╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ -2: mod alt +2: mod altgr ╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ -║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║Backspace║ +║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║ ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ ║ ä ║ ║ ║ ║ ║ ü ║ ║ ║ ║ ö ║ « ║ » ║ ¬ ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ Return ║ +║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ▲ ║ Shift ║ +║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ║ ║ ╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║Ctrl║ Fn ║Shft║░░░░║ Space ║ ║ ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ +║ ║ ║ ║░░░░║ ║ ║ ║ ║ ║ ║ ║ ╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ 3: mod fn ╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ @@ -50,8 +51,8 @@ It is based on the "English (intl., with AltGr dead keys)" layout. ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ` ║ Super ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ Shift ║ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ ║ ╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ -║Ctrl║░░░░║Shft║AltG║ Tab ║ ║ ║Pos1║PgDn║ End║Ctrl║ +║ ║░░░░║ ║ ║ Tab ║ ║ ║Pos1║PgDn║ End║ ║ ╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ ``` From 725bf551684ee117cea6e60208289ecb043c6593 Mon Sep 17 00:00:00 2001 From: "Ricardo (XenGi) Band" Date: Sun, 11 Jun 2023 19:51:12 +0200 Subject: [PATCH 014/255] updated to fit qmk standards --- keyboards/mkbd65/README.md | 21 ++- keyboards/mkbd65/config.h | 159 +----------------- keyboards/mkbd65/info.json | 20 +++ keyboards/mkbd65/keymaps/ansi/README.md | 2 +- keyboards/mkbd65/keymaps/ansi/config.h | 19 --- keyboards/mkbd65/keymaps/ansi/keymap.c | 49 ++---- keyboards/mkbd65/keymaps/de/README.md | 56 ++++++ keyboards/mkbd65/keymaps/de/keymap.c | 23 +++ .../mkbd65/keymaps/{default => en-us-intl} | 0 keyboards/mkbd65/keymaps/iso/README.md | 2 +- keyboards/mkbd65/keymaps/iso/config.h | 19 --- keyboards/mkbd65/keymaps/iso/keymap.c | 27 +-- keyboards/mkbd65/mkbd65.c | 43 ----- keyboards/mkbd65/rev0/info.json | 147 ++++++++++++++++ keyboards/mkbd65/rev0/mkbd65.c | 4 + keyboards/mkbd65/{ => rev0}/mkbd65.h | 48 ++---- keyboards/mkbd65/rev0/rules.mk | 9 + keyboards/mkbd65/rev1/info.json | 157 +++++++++++++++++ keyboards/mkbd65/rev1/mkbd65.c | 4 + keyboards/mkbd65/rev1/mkbd65.h | 42 +++++ keyboards/mkbd65/rev1/rules.mk | 3 + keyboards/mkbd65/rules.mk | 85 +--------- 22 files changed, 530 insertions(+), 409 deletions(-) create mode 100644 keyboards/mkbd65/info.json delete mode 100644 keyboards/mkbd65/keymaps/ansi/config.h create mode 100644 keyboards/mkbd65/keymaps/de/README.md create mode 100644 keyboards/mkbd65/keymaps/de/keymap.c rename keyboards/mkbd65/keymaps/{default => en-us-intl} (100%) delete mode 100644 keyboards/mkbd65/keymaps/iso/config.h delete mode 100644 keyboards/mkbd65/mkbd65.c create mode 100644 keyboards/mkbd65/rev0/info.json create mode 100644 keyboards/mkbd65/rev0/mkbd65.c rename keyboards/mkbd65/{ => rev0}/mkbd65.h (65%) create mode 100644 keyboards/mkbd65/rev0/rules.mk create mode 100644 keyboards/mkbd65/rev1/info.json create mode 100644 keyboards/mkbd65/rev1/mkbd65.c create mode 100644 keyboards/mkbd65/rev1/mkbd65.h create mode 100644 keyboards/mkbd65/rev1/rules.mk diff --git a/keyboards/mkbd65/README.md b/keyboards/mkbd65/README.md index f30b7c91ea..817bde28b3 100644 --- a/keyboards/mkbd65/README.md +++ b/keyboards/mkbd65/README.md @@ -11,16 +11,31 @@ A mobile keyboard addon for modern smartphones. Flashing this keyboard with `en-us-intl` layout (after setting up your build environment): ``` -qmk flash -kb mkbd65 -km en-us-intl +qmk flash -kb mkbd65:rev1 -km en-us-intl ``` Available layouts: - en-us-intl (ansi) - - de-de (iso) + - de (iso) You can find community provided layouts here: https://gitlab.com/mkbd65/community +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). + --- -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). +Copyright 2023 XenGi mkbd65@xengi.de @XenGi + +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 . diff --git a/keyboards/mkbd65/config.h b/keyboards/mkbd65/config.h index 8eff7c175d..4ac3a7eaf5 100644 --- a/keyboards/mkbd65/config.h +++ b/keyboards/mkbd65/config.h @@ -1,160 +1,13 @@ -/* -Copyright 2022 XenGi - -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 . -*/ +// Copyright 2023 XenGi (@XenGi) +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#include "config_common.h" - -/* USB Device descriptor parameter */ -#define VENDOR_ID 0x1209 -#define PRODUCT_ID 0x4803 -#define DEVICE_VER 0x0002 -#define MANUFACTURER XenGi -#define PRODUCT mkbd65 rev1 -#define DESCRIPTION Custom keyboard addon for smartphones - -/* key matrix size */ -#define MATRIX_ROWS 5 -#define MATRIX_COLS 13 - -/* - * Keyboard Matrix Assignments - * - * Change this to how you wired your keyboard - * COLS: AVR pins used for columns, left to right - * ROWS: AVR pins used for rows, top to bottom - * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode) - * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode) - * -*/ -#define MATRIX_COL_PINS { D4, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, F1, F0 } -#define MATRIX_ROW_PINS { D5, D3, D2, D1, D0 } -#define UNUSED_PINS { B3, B2, B1, B0, E6 } - -/* COL2ROW, ROW2COL, or CUSTOM_MATRIX */ -#define DIODE_DIRECTION ROW2COL - -/* (back)light configuration */ -#define BACKLIGHT_PIN B7 -#define BACKLIGHT_BREATHING -#define BACKLIGHT_LEVELS 3 -#define BACKLIGHT_ON_STATE 1 - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCING_DELAY 5 - -/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */ -// #define LOCKING_SUPPORT_ENABLE -/* Locking resynchronize hack */ -// #define LOCKING_RESYNC_ENABLE - -/* If defined, GRAVE_ESC will always act as ESC when CTRL is held. - * This is userful for the Windows task manager shortcut (ctrl+shift+esc). - */ -#define GRAVE_ESC_CTRL_OVERRIDE - -/* - * Force NKRO - * - * Force NKRO (nKey Rollover) to be enabled by default, regardless of the saved - * state in the bootmagic EEPROM settings. (Note that NKRO must be enabled in the - * makefile for this to work.) - * - * If forced on, NKRO can be disabled via magic key (default = LShift+RShift+N) - * until the next keyboard reset. - * - * NKRO may prevent your keystrokes from being detected in the BIOS, but it is - * fully operational during normal computer usage. - * - * For a less heavy-handed approach, enable NKRO via magic key (LShift+RShift+N) - * or via bootmagic (hold SPACE+N while plugging in the keyboard). Once set by - * bootmagic, NKRO mode will always be enabled until it is toggled again during a - * power-up. - * - */ -//#define FORCE_NKRO - -/* - * Magic Key Options - * - * Magic keys are hotkey commands that allow control over firmware functions of - * the keyboard. They are best used in combination with the HID Listen program, - * found here: https://www.pjrc.com/teensy/hid_listen.html - * - * The options below allow the magic key functionality to be changed. This is - * useful if your keyboard/keypad is missing keys and you want magic key support. - * - */ - -/* key combination for magic key command */ -#define IS_COMMAND() ( \ - keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \ -) - -/* control how magic key switches layers */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS true -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM false - -/* override magic key keymap */ -//#define MAGIC_KEY_SWITCH_LAYER_WITH_FKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_NKEYS -//#define MAGIC_KEY_SWITCH_LAYER_WITH_CUSTOM -//#define MAGIC_KEY_HELP1 H -//#define MAGIC_KEY_HELP2 SLASH -//#define MAGIC_KEY_DEBUG D -//#define MAGIC_KEY_DEBUG_MATRIX X -//#define MAGIC_KEY_DEBUG_KBD K -//#define MAGIC_KEY_DEBUG_MOUSE M -//#define MAGIC_KEY_VERSION V -//#define MAGIC_KEY_STATUS S -//#define MAGIC_KEY_CONSOLE C -//#define MAGIC_KEY_LAYER0_ALT1 ESC -//#define MAGIC_KEY_LAYER0_ALT2 GRAVE -//#define MAGIC_KEY_LAYER0 0 -//#define MAGIC_KEY_LAYER1 1 -//#define MAGIC_KEY_LAYER2 2 -//#define MAGIC_KEY_LAYER3 3 -//#define MAGIC_KEY_LAYER4 4 -//#define MAGIC_KEY_LAYER5 5 -//#define MAGIC_KEY_LAYER6 6 -//#define MAGIC_KEY_LAYER7 7 -//#define MAGIC_KEY_LAYER8 8 -//#define MAGIC_KEY_LAYER9 9 -//#define MAGIC_KEY_BOOTLOADER PAUSE -//#define MAGIC_KEY_LOCK CAPS -//#define MAGIC_KEY_EEPROM E -//#define MAGIC_KEY_NKRO N -//#define MAGIC_KEY_SLEEP_LED Z - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ +// disable debugging //#define NO_DEBUG - -/* disable print */ +// disable printing/debugging using hid_listen //#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER +// disable tap dance and other tapping features //#define NO_ACTION_TAPPING +// disable one-shot modifiers //#define NO_ACTION_ONESHOT -//#define NO_ACTION_MACRO -//#define NO_ACTION_FUNCTION diff --git a/keyboards/mkbd65/info.json b/keyboards/mkbd65/info.json new file mode 100644 index 0000000000..aea164d043 --- /dev/null +++ b/keyboards/mkbd65/info.json @@ -0,0 +1,20 @@ +{ + "keyboard_name": "mkbd65", + "manufacturer": "XenGi", + "url": "https://mkbd65.xengi.de", + "maintainer": "XenGi", + "author": ["XenGi"], + "usb": { + "vid": "0x1209", + "pid": "0x4803" + }, + "debounce": 5, + "diode_direction": "ROW2COL", + "bootmagic": { + "enabled": true, + "matrix": [0, 0] + }, + "tags": ["mobile", "65%"], + "description": "A mobile keyboard addon for modern smartphones. Fits any smartphones within some minimal size requirements. Supports any keyboard layout you want, as long as it doesn't need more keys.", + "short": "A mobile keyboard addon for modern smartphones." +} diff --git a/keyboards/mkbd65/keymaps/ansi/README.md b/keyboards/mkbd65/keymaps/ansi/README.md index b394d98f2c..96e8f7bb14 100644 --- a/keyboards/mkbd65/keymaps/ansi/README.md +++ b/keyboards/mkbd65/keymaps/ansi/README.md @@ -1,4 +1,4 @@ -# The English US International keymap for mkbd65 by XenGi +# The English US International keymap for mkbd65 rev0 by XenGi This is the default layout for the mkbd65 keyboard. You can use it as a reference for other layouts. diff --git a/keyboards/mkbd65/keymaps/ansi/config.h b/keyboards/mkbd65/keymaps/ansi/config.h deleted file mode 100644 index b0d0727509..0000000000 --- a/keyboards/mkbd65/keymaps/ansi/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2022 XenGi - * - * 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 - -// place overrides here diff --git a/keyboards/mkbd65/keymaps/ansi/keymap.c b/keyboards/mkbd65/keymaps/ansi/keymap.c index 972410b3dd..ddda2b83bc 100644 --- a/keyboards/mkbd65/keymaps/ansi/keymap.c +++ b/keyboards/mkbd65/keymaps/ansi/keymap.c @@ -1,45 +1,22 @@ -/* Copyright 2022 XenGi - * - * 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 . - */ +// Copyright 2023 XenGi (@XenGi) +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ANSI( /* Base layer */ - KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, - 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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, - KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL + [0] = LAYOUT( /* Base layer */ + KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_BSPC, + 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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, KC_RSFT, + KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_SPC, KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL ), - [1] = LAYOUT_ANSI( /* Function layer */ - RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, + [1] = LAYOUT( /* Function layer */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, KC_APP, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_LGUI, - _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, - _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_LGUI, KC_LGUI, + _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, _______, + _______, _______, _______, _______, KC_TAB, KC_TAB, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ ) }; - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} - -void led_set_user(uint8_t usb_led) { -} - diff --git a/keyboards/mkbd65/keymaps/de/README.md b/keyboards/mkbd65/keymaps/de/README.md new file mode 100644 index 0000000000..f5c29d8e85 --- /dev/null +++ b/keyboards/mkbd65/keymaps/de/README.md @@ -0,0 +1,56 @@ +# The German keymap for mkbd65 rev1 by XenGi + +This is the german layout for the mkbd65 keyboard. You can use it as a reference for other ISO based layouts. + +This is the key matrix (no label means the key from layer 0 will be used): + +``` +0: no mod +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ Esc║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║Backspace║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ q ║ w ║ e ║ r ║ t ║ z ║ u ║ i ║ o ║ p ║ ü ║ + ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ Ret║ +║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ö ║ ä ║ # ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ +║ y ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ - ║ ▲ ║ < ║Shft║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╬════╣ +║Ctrl║ Fn ║Shft║AltG║ Space ║ ß ║ ´ ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +1: mod shift +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ ° ║ ! ║ " ║ § ║ $ ║ % ║ & ║ / ║ ( ║ ) ║ = ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ Ü ║ * ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ ║ +║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ Ö ║ Ä ║ ' ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ +║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ ; ║ : ║ _ ║ ║ > ║░░░░║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╬════╣ +║ ║ ║░░░░║ ║ ║ ? ║ ` ║ ║ ║ ║ ║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +2: mod altgr +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ ║ ¹ ║ ² ║ ³ ║ ║ ║ ║ { ║ [ ║ ] ║ } ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ @ ║ ║ € ║ ║ ║ ║ ║ ║ ║ ║ ║ ~ ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ ║ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ +║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ║ ║ | ║ ║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╬════╣ +║ ║ ║ ║░░░░║ ║ \ ║ ║ ║ ║ ║ ║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +3: mod fn +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Delete ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣Supr║ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ^ ║ ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ ║ ║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╬════╣ +║ ║░░░░║ ║ ║ Tab ║ ║ ║Pos1║PgDn║ End║ ║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +``` diff --git a/keyboards/mkbd65/keymaps/de/keymap.c b/keyboards/mkbd65/keymaps/de/keymap.c new file mode 100644 index 0000000000..1246f1e8bc --- /dev/null +++ b/keyboards/mkbd65/keymaps/de/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 XenGi (@XenGi) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "keymap_german.h" + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( /* Base layer */ + KC_GESC, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, DE_8, DE_9, DE_0, KC_BSPC, KC_BSPC, + DE_Q, DE_W, DE_E, DE_R, DE_T, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UDIA, DE_PLUS, KC_ENT, + DE_A, DE_S, DE_D, DE_F, DE_G, DE_H, DE_J, DE_K, DE_L, DE_ODIA, DE_ADIA, DE_HASH, KC_ENT, + DE_Y, DE_X, DE_C, DE_V, DE_B, DE_N, DE_M, DE_COMM, DE_DOT, DE_MINS, KC_UP, DE_LABK, KC_RSFT, + KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_SPC, KC_SPC, DE_SS, DE_ACUT, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL + ), + + [1] = LAYOUT( /* Function layer */ + RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, KC_APP, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_LGUI, KC_LGUI, + _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, _______, + _______, _______, _______, _______, KC_TAB, KC_TAB, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ + ) +}; diff --git a/keyboards/mkbd65/keymaps/default b/keyboards/mkbd65/keymaps/en-us-intl similarity index 100% rename from keyboards/mkbd65/keymaps/default rename to keyboards/mkbd65/keymaps/en-us-intl diff --git a/keyboards/mkbd65/keymaps/iso/README.md b/keyboards/mkbd65/keymaps/iso/README.md index d08f8c1b9e..beb5cc2783 100644 --- a/keyboards/mkbd65/keymaps/iso/README.md +++ b/keyboards/mkbd65/keymaps/iso/README.md @@ -1,4 +1,4 @@ -# The iso-like keymap for mkbd65 +# The iso-like keymap for mkbd65 rev0 It's actually just ANSI but with an upright `Enter` key. diff --git a/keyboards/mkbd65/keymaps/iso/config.h b/keyboards/mkbd65/keymaps/iso/config.h deleted file mode 100644 index b0d0727509..0000000000 --- a/keyboards/mkbd65/keymaps/iso/config.h +++ /dev/null @@ -1,19 +0,0 @@ -/* Copyright 2022 XenGi - * - * 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 - -// place overrides here diff --git a/keyboards/mkbd65/keymaps/iso/keymap.c b/keyboards/mkbd65/keymaps/iso/keymap.c index eff19b0c4f..2b59ffd0cf 100644 --- a/keyboards/mkbd65/keymaps/iso/keymap.c +++ b/keyboards/mkbd65/keymaps/iso/keymap.c @@ -1,18 +1,5 @@ -/* Copyright 2022 XenGi - * - * 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 . - */ +// Copyright 2023 XenGi (@XenGi) +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H @@ -33,13 +20,3 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______, ), }; - -void matrix_init_user(void) { -} - -void matrix_scan_user(void) { -} - -void led_set_user(uint8_t usb_led) { -} - diff --git a/keyboards/mkbd65/mkbd65.c b/keyboards/mkbd65/mkbd65.c deleted file mode 100644 index fae93a8ea5..0000000000 --- a/keyboards/mkbd65/mkbd65.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright 2022 XenGi - * - * 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 "mkbd65.h" - -void matrix_init_kb(void) { - // put your keyboard start-up code here - // runs once when the firmware starts up - - matrix_init_user(); -} - -void matrix_scan_kb(void) { - // put your looping keyboard code here - // runs every cycle (a lot) - - matrix_scan_user(); -} - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - - return process_record_user(keycode, record); -} - -void led_set_kb(uint8_t usb_led) { - // put your keyboard LED indicator (ex: Caps Lock LED) toggling code here - - led_set_user(usb_led); -} diff --git a/keyboards/mkbd65/rev0/info.json b/keyboards/mkbd65/rev0/info.json new file mode 100644 index 0000000000..cea5523e84 --- /dev/null +++ b/keyboards/mkbd65/rev0/info.json @@ -0,0 +1,147 @@ +{ + "usb": { + "device_version": "0.0.0" + }, + "layouts": { + "LAYOUT_ansi": { + "layout": [ + {"x": 0, "y": 0, "label": "Esc", "matrix": [0, 0]}, + {"x": 1, "y": 0, "label": "1", "matrix": [0, 1]}, + {"x": 2, "y": 0, "label": "2", "matrix": [0, 2]}, + {"x": 3, "y": 0, "label": "3", "matrix": [0, 3]}, + {"x": 4, "y": 0, "label": "4", "matrix": [0, 4]}, + {"x": 5, "y": 0, "label": "5", "matrix": [0, 5]}, + {"x": 6, "y": 0, "label": "6", "matrix": [0, 6]}, + {"x": 7, "y": 0, "label": "7", "matrix": [0, 7]}, + {"x": 8, "y": 0, "label": "8", "matrix": [0, 8]}, + {"x": 9, "y": 0, "label": "9", "matrix": [0, 9]}, + {"x": 10, "y": 0, "label": "0", "matrix": [0, 10]}, + {"x": 11, "y": 0, "w": 2, "label": "Backspace", "matrix": [0, 11]}, + + {"x": 0, "y": 1, "label": "Q", "matrix": [1, 0]}, + {"x": 1, "y": 1, "label": "W", "matrix": [1, 1]}, + {"x": 2, "y": 1, "label": "E", "matrix": [1, 2]}, + {"x": 3, "y": 1, "label": "R", "matrix": [1, 3]}, + {"x": 4, "y": 1, "label": "T", "matrix": [1, 4]}, + {"x": 5, "y": 1, "label": "Y", "matrix": [1, 5]}, + {"x": 6, "y": 1, "label": "U", "matrix": [1, 6]}, + {"x": 7, "y": 1, "label": "I", "matrix": [1, 7]}, + {"x": 8, "y": 1, "label": "O", "matrix": [1, 8]}, + {"x": 9, "y": 1, "label": "P", "matrix": [1, 9]}, + {"x": 10, "y": 1, "label": "[", "matrix": [1, 10]}, + {"x": 11, "y": 1, "label": "]", "matrix": [1, 11]}, + {"x": 12, "y": 1, "label": "\\", "matrix": [1, 12]}, + + {"x": 0, "y": 2, "label": "A", "matrix": [2, 0]}, + {"x": 1, "y": 2, "label": "S", "matrix": [2, 1]}, + {"x": 2, "y": 2, "label": "D", "matrix": [2, 2]}, + {"x": 3, "y": 2, "label": "F", "matrix": [2, 3]}, + {"x": 4, "y": 2, "label": "G", "matrix": [2, 4]}, + {"x": 5, "y": 2, "label": "H", "matrix": [2, 5]}, + {"x": 6, "y": 2, "label": "J", "matrix": [2, 6]}, + {"x": 7, "y": 2, "label": "K", "matrix": [2, 7]}, + {"x": 8, "y": 2, "label": "L", "matrix": [2, 8]}, + {"x": 9, "y": 2, "label": ";", "matrix": [2, 9]}, + {"x": 10, "y": 2, "label": "'", "matrix": [2, 10]}, + {"x": 11, "y": 2, "w": 2, "label": "Enter", "matrix": [2, 11]}, + + {"x": 0, "y": 3, "label": "Z", "matrix": [3, 0]}, + {"x": 1, "y": 3, "label": "X", "matrix": [3, 1]}, + {"x": 2, "y": 3, "label": "C", "matrix": [3, 2]}, + {"x": 3, "y": 3, "label": "V", "matrix": [3, 3]}, + {"x": 4, "y": 3, "label": "B", "matrix": [3, 4]}, + {"x": 5, "y": 3, "label": "N", "matrix": [3, 5]}, + {"x": 6, "y": 3, "label": "M", "matrix": [3, 6]}, + {"x": 7, "y": 3, "label": ",", "matrix": [3, 7]}, + {"x": 8, "y": 3, "label": ".", "matrix": [3, 8]}, + {"x": 9, "y": 3, "label": "/", "matrix": [3, 9]}, + {"x": 10, "y": 3, "label": "Up", "matrix": [3, 10]}, + {"x": 11, "y": 3, "w": 2, "label": "RShift", "matrix": [3, 11]}, + + {"x": 0, "y": 4, "label": "LCtrl", "matrix": [4, 0]}, + {"x": 1, "y": 4, "label": "LShift", "matrix": [4, 1]}, + {"x": 2, "y": 4, "label": "Fn", "matrix": [4, 2]}, + {"x": 3, "y": 4, "label": "AltGr", "matrix": [4, 3]}, + {"x": 4, "y": 4, "w": 3, "label": "Space", "matrix": [4, 4]}, + {"x": 7, "y": 4, "label": "-", "matrix": [4, 7]}, + {"x": 8, "y": 4, "label": "=", "matrix": [4, 8]}, + {"x": 9, "y": 4, "label": "Left", "matrix": [4, 9]}, + {"x": 10, "y": 4, "label": "Down", "matrix": [4, 10]}, + {"x": 11, "y": 4, "label": "Right", "matrix": [4, 11]}, + {"x": 12, "y": 4, "label": "RCtrl", "matrix": [4, 12]} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"x": 0, "y": 0, "label": "Esc", "matrix": [0, 0]}, + {"x": 1, "y": 0, "label": "1", "matrix": [0, 1]}, + {"x": 2, "y": 0, "label": "2", "matrix": [0, 2]}, + {"x": 3, "y": 0, "label": "3", "matrix": [0, 3]}, + {"x": 4, "y": 0, "label": "4", "matrix": [0, 4]}, + {"x": 5, "y": 0, "label": "5", "matrix": [0, 5]}, + {"x": 6, "y": 0, "label": "6", "matrix": [0, 6]}, + {"x": 7, "y": 0, "label": "7", "matrix": [0, 7]}, + {"x": 8, "y": 0, "label": "8", "matrix": [0, 8]}, + {"x": 9, "y": 0, "label": "9", "matrix": [0, 9]}, + {"x": 10, "y": 0, "label": "0", "matrix": [0, 10]}, + {"x": 11, "y": 0, "w": 2, "label": "Backspace", "matrix": [0, 11]}, + + {"x": 0, "y": 1, "label": "Q", "matrix": [1, 0]}, + {"x": 1, "y": 1, "label": "W", "matrix": [1, 1]}, + {"x": 2, "y": 1, "label": "E", "matrix": [1, 2]}, + {"x": 3, "y": 1, "label": "R", "matrix": [1, 3]}, + {"x": 4, "y": 1, "label": "T", "matrix": [1, 4]}, + {"x": 5, "y": 1, "label": "Y", "matrix": [1, 5]}, + {"x": 6, "y": 1, "label": "U", "matrix": [1, 6]}, + {"x": 7, "y": 1, "label": "I", "matrix": [1, 7]}, + {"x": 8, "y": 1, "label": "O", "matrix": [1, 8]}, + {"x": 9, "y": 1, "label": "P", "matrix": [1, 9]}, + {"x": 10, "y": 1, "label": "[", "matrix": [1, 10]}, + {"x": 11, "y": 1, "label": "]", "matrix": [1, 11]}, + + {"x": 0, "y": 2, "label": "A", "matrix": [2, 0]}, + {"x": 1, "y": 2, "label": "S", "matrix": [2, 1]}, + {"x": 2, "y": 2, "label": "D", "matrix": [2, 2]}, + {"x": 3, "y": 2, "label": "F", "matrix": [2, 3]}, + {"x": 4, "y": 2, "label": "G", "matrix": [2, 4]}, + {"x": 5, "y": 2, "label": "H", "matrix": [2, 5]}, + {"x": 6, "y": 2, "label": "J", "matrix": [2, 6]}, + {"x": 7, "y": 2, "label": "K", "matrix": [2, 7]}, + {"x": 8, "y": 2, "label": "L", "matrix": [2, 8]}, + {"x": 9, "y": 2, "label": ";", "matrix": [2, 9]}, + {"x": 10, "y": 2, "label": "'", "matrix": [2, 10]}, + {"x": 11, "y": 2, "label": "\\", "matrix": [2, 11]}, + {"x": 12, "y": 2, "h": 2, "label": "Enter", "matrix": [2, 12]}, + + {"x": 0, "y": 3, "label": "Z", "matrix": [3, 0]}, + {"x": 1, "y": 3, "label": "X", "matrix": [3, 1]}, + {"x": 2, "y": 3, "label": "C", "matrix": [3, 2]}, + {"x": 3, "y": 3, "label": "V", "matrix": [3, 3]}, + {"x": 4, "y": 3, "label": "B", "matrix": [3, 4]}, + {"x": 5, "y": 3, "label": "N", "matrix": [3, 5]}, + {"x": 6, "y": 3, "label": "M", "matrix": [3, 6]}, + {"x": 7, "y": 3, "label": ",", "matrix": [3, 7]}, + {"x": 8, "y": 3, "label": ".", "matrix": [3, 8]}, + {"x": 9, "y": 3, "label": "/", "matrix": [3, 9]}, + {"x": 10, "y": 3, "label": "Up", "matrix": [3, 10]}, + {"x": 11, "y": 3, "w": 2, "label": "RShift", "matrix": [3, 11]}, + + {"x": 0, "y": 4, "label": "LCtrl", "matrix": [4, 0]}, + {"x": 1, "y": 4, "label": "LShift", "matrix": [4, 1]}, + {"x": 2, "y": 4, "label": "Fn", "matrix": [4, 2]}, + {"x": 3, "y": 4, "label": "AltGr", "matrix": [4, 3]}, + {"x": 4, "y": 4, "w": 3, "label": "Space", "matrix": [4, 4]}, + {"x": 7, "y": 4, "label": "-", "matrix": [4, 7]}, + {"x": 8, "y": 4, "label": "=", "matrix": [4, 8]}, + {"x": 9, "y": 4, "label": "Left", "matrix": [4, 9]}, + {"x": 10, "y": 4, "label": "Down", "matrix": [4, 10]}, + {"x": 11, "y": 4, "label": "Right", "matrix": [4, 11]}, + {"x": 12, "y": 4, "label": "RCtrl", "matrix": [4, 12]} + ] + } + }, + "matrix_pins": { + "cols": ["D4", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"], + "rows": ["D5", "D3", "D2", "D1", "D0"] + } +} diff --git a/keyboards/mkbd65/rev0/mkbd65.c b/keyboards/mkbd65/rev0/mkbd65.c new file mode 100644 index 0000000000..baca6508d4 --- /dev/null +++ b/keyboards/mkbd65/rev0/mkbd65.c @@ -0,0 +1,4 @@ +// Copyright 2023 XenGi (@XenGi) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "mkbd65.h" diff --git a/keyboards/mkbd65/mkbd65.h b/keyboards/mkbd65/rev0/mkbd65.h similarity index 65% rename from keyboards/mkbd65/mkbd65.h rename to keyboards/mkbd65/rev0/mkbd65.h index 1a53cad69f..aae0d388fa 100644 --- a/keyboards/mkbd65/mkbd65.h +++ b/keyboards/mkbd65/rev0/mkbd65.h @@ -1,24 +1,12 @@ -/* Copyright 2022 XenGi - * - * 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 . - */ +// Copyright 2023 XenGi (@XenGi) +// SPDX-License-Identifier: GPL-2.0-or-later + #ifndef MKBD65_H #define MKBD65_H #include "quantum.h" -/* LAYOUT_ANSI +/* LAYOUT_ansi * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┬───┤ @@ -38,7 +26,7 @@ * The second converts the arguments into a two-dimensional array which * represents the switch matrix. */ -#define LAYOUT_ANSI( \ +#define LAYOUT_ansi( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, \ @@ -53,20 +41,20 @@ { K40, K41, K42, K43, K44, KC_NO, KC_NO, K47, K48, K49, K410, K411, K412 } \ } -/* LAYOUT_ISO - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ - * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┬───┤ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ │ - * │ │ │ │ │ │ │ │ │ │ │ │ │ │ - * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┤ - * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ - * ├───┼───┼───┼───┼───┴───┴───┼───┼───┼───┼───┼───┬───┤ - * │ │ │ │ │ 3.0U │ │ │ │ │ │ │ - * └───┴───┴───┴───┴───────────┴───┴───┴───┴───┴───┴───┘ +/* LAYOUT_iso + * ╔═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══════╗ + * ║ │ │ │ │ │ │ │ │ │ │ │ 2.0U ║ + * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┬───╢ + * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ + * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┤ ║ + * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ + * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───╢ + * ║ │ │ │ │ │ │ │ │ │ │ │ 2.0U ║ + * ╟───┼───┼───┼───┼───┴───┴───┼───┼───┼───┼───┼───┬───╢ + * ║ │ │ │ │ 3.0U │ │ │ │ │ │ ║ + * ╚═══╧═══╧═══╧═══╧═══════════╧═══╧═══╧═══╧═══╧═══╧═══╝ */ -#define LAYOUT_ISO( \ +#define LAYOUT_iso( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \ diff --git a/keyboards/mkbd65/rev0/rules.mk b/keyboards/mkbd65/rev0/rules.mk new file mode 100644 index 0000000000..94d4ac53b6 --- /dev/null +++ b/keyboards/mkbd65/rev0/rules.mk @@ -0,0 +1,9 @@ +# A list of layouts this keyboard supports. +LAYOUTS = ansi iso + +MCU = atmega32u4 +F_CPU = 16000000 +ARCH = AVR8 +F_USB = $(F_CPU) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT +BOOTLOADER = atmel-dfu diff --git a/keyboards/mkbd65/rev1/info.json b/keyboards/mkbd65/rev1/info.json new file mode 100644 index 0000000000..276775db17 --- /dev/null +++ b/keyboards/mkbd65/rev1/info.json @@ -0,0 +1,157 @@ +{ + "usb": { + "device_version": "1.0.0" + }, + "layouts": { + "LAYOUT_en-us-intl": { + "layout": [ + {"x": 0, "y": 0, "label": "Esc", "matrix": [0, 0]}, + {"x": 1, "y": 0, "label": "1", "matrix": [0, 1]}, + {"x": 2, "y": 0, "label": "2", "matrix": [0, 2]}, + {"x": 3, "y": 0, "label": "3", "matrix": [0, 3]}, + {"x": 4, "y": 0, "label": "4", "matrix": [0, 4]}, + {"x": 5, "y": 0, "label": "5", "matrix": [0, 5]}, + {"x": 6, "y": 0, "label": "6", "matrix": [0, 6]}, + {"x": 7, "y": 0, "label": "7", "matrix": [0, 7]}, + {"x": 8, "y": 0, "label": "8", "matrix": [0, 8]}, + {"x": 9, "y": 0, "label": "9", "matrix": [0, 9]}, + {"x": 10, "y": 0, "label": "0", "matrix": [0, 10]}, + {"x": 11, "y": 0, "label": "Backspace", "matrix": [0, 11]}, + {"x": 12, "y": 0, "label": "Backspace", "matrix": [0, 12]}, + + {"x": 0, "y": 1, "label": "Q", "matrix": [1, 0]}, + {"x": 1, "y": 1, "label": "W", "matrix": [1, 1]}, + {"x": 2, "y": 1, "label": "E", "matrix": [1, 2]}, + {"x": 3, "y": 1, "label": "R", "matrix": [1, 3]}, + {"x": 4, "y": 1, "label": "T", "matrix": [1, 4]}, + {"x": 5, "y": 1, "label": "Y", "matrix": [1, 5]}, + {"x": 6, "y": 1, "label": "U", "matrix": [1, 6]}, + {"x": 7, "y": 1, "label": "I", "matrix": [1, 7]}, + {"x": 8, "y": 1, "label": "O", "matrix": [1, 8]}, + {"x": 9, "y": 1, "label": "P", "matrix": [1, 9]}, + {"x": 10, "y": 1, "label": "[", "matrix": [1, 10]}, + {"x": 11, "y": 1, "label": "]", "matrix": [1, 11]}, + {"x": 12, "y": 1, "label": "\\", "matrix": [1, 12]}, + + {"x": 0, "y": 2, "label": "A", "matrix": [2, 0]}, + {"x": 1, "y": 2, "label": "S", "matrix": [2, 1]}, + {"x": 2, "y": 2, "label": "D", "matrix": [2, 2]}, + {"x": 3, "y": 2, "label": "F", "matrix": [2, 3]}, + {"x": 4, "y": 2, "label": "G", "matrix": [2, 4]}, + {"x": 5, "y": 2, "label": "H", "matrix": [2, 5]}, + {"x": 6, "y": 2, "label": "J", "matrix": [2, 6]}, + {"x": 7, "y": 2, "label": "K", "matrix": [2, 7]}, + {"x": 8, "y": 2, "label": "L", "matrix": [2, 8]}, + {"x": 9, "y": 2, "label": ";", "matrix": [2, 9]}, + {"x": 10, "y": 2, "label": "'", "matrix": [2, 10]}, + {"x": 11, "y": 2, "label": "Enter", "matrix": [2, 11]}, + {"x": 12, "y": 2, "label": "Enter", "matrix": [2, 12]}, + + {"x": 0, "y": 3, "label": "Z", "matrix": [3, 0]}, + {"x": 1, "y": 3, "label": "X", "matrix": [3, 1]}, + {"x": 2, "y": 3, "label": "C", "matrix": [3, 2]}, + {"x": 3, "y": 3, "label": "V", "matrix": [3, 3]}, + {"x": 4, "y": 3, "label": "B", "matrix": [3, 4]}, + {"x": 5, "y": 3, "label": "N", "matrix": [3, 5]}, + {"x": 6, "y": 3, "label": "M", "matrix": [3, 6]}, + {"x": 7, "y": 3, "label": ",", "matrix": [3, 7]}, + {"x": 8, "y": 3, "label": ".", "matrix": [3, 8]}, + {"x": 9, "y": 3, "label": "/", "matrix": [3, 9]}, + {"x": 10, "y": 3, "label": "Up", "matrix": [3, 10]}, + {"x": 11, "y": 3, "label": "RShift", "matrix": [3, 11]}, + {"x": 12, "y": 3, "label": "RShift", "matrix": [3, 12]}, + + {"x": 0, "y": 4, "label": "LCtrl", "matrix": [4, 0]}, + {"x": 1, "y": 4, "label": "LShift", "matrix": [4, 1]}, + {"x": 2, "y": 4, "label": "Fn", "matrix": [4, 2]}, + {"x": 3, "y": 4, "label": "AltGr", "matrix": [4, 3]}, + {"x": 4, "y": 4, "label": "Space", "matrix": [4, 4]}, + {"x": 5, "y": 4, "label": "Space", "matrix": [4, 5]}, + {"x": 6, "y": 4, "label": "Space", "matrix": [4, 6]}, + {"x": 7, "y": 4, "label": "-", "matrix": [4, 7]}, + {"x": 8, "y": 4, "label": "=", "matrix": [4, 8]}, + {"x": 9, "y": 4, "label": "Left", "matrix": [4, 9]}, + {"x": 10, "y": 4, "label": "Down", "matrix": [4, 10]}, + {"x": 11, "y": 4, "label": "Right", "matrix": [4, 11]}, + {"x": 12, "y": 4, "label": "RCtrl", "matrix": [4, 12]} + ] + }, + "LAYOUT_de": { + "layout": [ + {"x": 0, "y": 0, "label": "Esc", "matrix": [0, 0]}, + {"x": 1, "y": 0, "label": "1", "matrix": [0, 1]}, + {"x": 2, "y": 0, "label": "2", "matrix": [0, 2]}, + {"x": 3, "y": 0, "label": "3", "matrix": [0, 3]}, + {"x": 4, "y": 0, "label": "4", "matrix": [0, 4]}, + {"x": 5, "y": 0, "label": "5", "matrix": [0, 5]}, + {"x": 6, "y": 0, "label": "6", "matrix": [0, 6]}, + {"x": 7, "y": 0, "label": "7", "matrix": [0, 7]}, + {"x": 8, "y": 0, "label": "8", "matrix": [0, 8]}, + {"x": 9, "y": 0, "label": "9", "matrix": [0, 9]}, + {"x": 10, "y": 0, "label": "0", "matrix": [0, 10]}, + {"x": 11, "y": 0, "label": "Backspace", "matrix": [0, 11]}, + {"x": 12, "y": 0, "label": "Backspace", "matrix": [0, 12]}, + + {"x": 0, "y": 1, "label": "Q", "matrix": [1, 0]}, + {"x": 1, "y": 1, "label": "W", "matrix": [1, 1]}, + {"x": 2, "y": 1, "label": "E", "matrix": [1, 2]}, + {"x": 3, "y": 1, "label": "R", "matrix": [1, 3]}, + {"x": 4, "y": 1, "label": "T", "matrix": [1, 4]}, + {"x": 5, "y": 1, "label": "Z", "matrix": [1, 5]}, + {"x": 6, "y": 1, "label": "U", "matrix": [1, 6]}, + {"x": 7, "y": 1, "label": "I", "matrix": [1, 7]}, + {"x": 8, "y": 1, "label": "O", "matrix": [1, 8]}, + {"x": 9, "y": 1, "label": "P", "matrix": [1, 9]}, + {"x": 10, "y": 1, "label": "Ü", "matrix": [1, 10]}, + {"x": 11, "y": 1, "label": "+", "matrix": [1, 11]}, + {"x": 12, "y": 1, "label": "Enter", "matrix": [1, 12]}, + + {"x": 0, "y": 2, "label": "A", "matrix": [2, 0]}, + {"x": 1, "y": 2, "label": "S", "matrix": [2, 1]}, + {"x": 2, "y": 2, "label": "D", "matrix": [2, 2]}, + {"x": 3, "y": 2, "label": "F", "matrix": [2, 3]}, + {"x": 4, "y": 2, "label": "G", "matrix": [2, 4]}, + {"x": 5, "y": 2, "label": "H", "matrix": [2, 5]}, + {"x": 6, "y": 2, "label": "J", "matrix": [2, 6]}, + {"x": 7, "y": 2, "label": "K", "matrix": [2, 7]}, + {"x": 8, "y": 2, "label": "L", "matrix": [2, 8]}, + {"x": 9, "y": 2, "label": "Ö", "matrix": [2, 9]}, + {"x": 10, "y": 2, "label": "Ä", "matrix": [2, 10]}, + {"x": 11, "y": 2, "label": "#", "matrix": [2, 11]}, + {"x": 12, "y": 2, "label": "Enter", "matrix": [2, 12]}, + + {"x": 0, "y": 3, "label": "Y", "matrix": [3, 0]}, + {"x": 1, "y": 3, "label": "X", "matrix": [3, 1]}, + {"x": 2, "y": 3, "label": "C", "matrix": [3, 2]}, + {"x": 3, "y": 3, "label": "V", "matrix": [3, 3]}, + {"x": 4, "y": 3, "label": "B", "matrix": [3, 4]}, + {"x": 5, "y": 3, "label": "N", "matrix": [3, 5]}, + {"x": 6, "y": 3, "label": "M", "matrix": [3, 6]}, + {"x": 7, "y": 3, "label": ",", "matrix": [3, 7]}, + {"x": 8, "y": 3, "label": ".", "matrix": [3, 8]}, + {"x": 9, "y": 3, "label": "-", "matrix": [3, 9]}, + {"x": 10, "y": 3, "label": "Up", "matrix": [3, 10]}, + {"x": 11, "y": 3, "label": "<", "matrix": [3, 11]}, + {"x": 12, "y": 3, "label": "RShift", "matrix": [3, 12]}, + + {"x": 0, "y": 4, "label": "LCtrl", "matrix": [4, 0]}, + {"x": 1, "y": 4, "label": "LShift", "matrix": [4, 1]}, + {"x": 2, "y": 4, "label": "Fn", "matrix": [4, 2]}, + {"x": 3, "y": 4, "label": "AltGr", "matrix": [4, 3]}, + {"x": 4, "y": 4, "label": "Space", "matrix": [4, 4]}, + {"x": 5, "y": 4, "label": "Space", "matrix": [4, 5]}, + {"x": 6, "y": 4, "label": "Space", "matrix": [4, 6]}, + {"x": 7, "y": 4, "label": "ß", "matrix": [4, 7]}, + {"x": 8, "y": 4, "label": "´", "matrix": [4, 8]}, + {"x": 9, "y": 4, "label": "Left", "matrix": [4, 9]}, + {"x": 10, "y": 4, "label": "Down", "matrix": [4, 10]}, + {"x": 11, "y": 4, "label": "Right", "matrix": [4, 11]}, + {"x": 12, "y": 4, "label": "RCtrl", "matrix": [4, 12]} + ] + } + }, + "matrix_pins": { + "cols": [], + "rows": [] + } +} diff --git a/keyboards/mkbd65/rev1/mkbd65.c b/keyboards/mkbd65/rev1/mkbd65.c new file mode 100644 index 0000000000..baca6508d4 --- /dev/null +++ b/keyboards/mkbd65/rev1/mkbd65.c @@ -0,0 +1,4 @@ +// Copyright 2023 XenGi (@XenGi) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "mkbd65.h" diff --git a/keyboards/mkbd65/rev1/mkbd65.h b/keyboards/mkbd65/rev1/mkbd65.h new file mode 100644 index 0000000000..0e4293dd98 --- /dev/null +++ b/keyboards/mkbd65/rev1/mkbd65.h @@ -0,0 +1,42 @@ +// Copyright 2023 XenGi (@XenGi) +// SPDX-License-Identifier: GPL-2.0-or-later + +#ifndef MKBD65_H +#define MKBD65_H + +#include "quantum.h" + +/* LAYOUT + * ╔═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╤═══╗ + * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ + * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ + * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ + * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ + * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ + * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ + * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ + * ╟───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───╢ + * ║ │ │ │ │ │ │ │ │ │ │ │ │ ║ + * ╚═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╧═══╝ + * This is a shortcut to help you visually see your layout. + * + * The first section contains all of the arguments representing the physical + * layout of the board and position of the keys. + * + * The second converts the arguments into a two-dimensional array which + * represents the switch matrix. + */ +#define LAYOUT( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, K312, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K410, K411, K412 \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012 }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112 }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212 }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, K312 }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K410, K411, K412 } \ +} diff --git a/keyboards/mkbd65/rev1/rules.mk b/keyboards/mkbd65/rev1/rules.mk new file mode 100644 index 0000000000..84345ec0aa --- /dev/null +++ b/keyboards/mkbd65/rev1/rules.mk @@ -0,0 +1,3 @@ +# A list of layouts this keyboard supports. +LAYOUTS = en-us-intl de + \ No newline at end of file diff --git a/keyboards/mkbd65/rules.mk b/keyboards/mkbd65/rules.mk index a6bdd38bae..8e66f2e4d8 100644 --- a/keyboards/mkbd65/rules.mk +++ b/keyboards/mkbd65/rules.mk @@ -1,80 +1,7 @@ -# MCU name -MCU = atmega32u4 +DEFAULT_FOLDER = rev1 +# Enables Link Time Optimization (LTO) when compiling the keyboard. This makes the process take longer, but it can +# significantly reduce the compiled size (and since the firmware is small, the added time is not noticeable). +LTO_ENABLE = 1 -# Processor frequency. -# This will define a symbol, F_CPU, in all source code files equal to the -# processor frequency in Hz. You can then use this symbol in your source code to -# calculate timings. Do NOT tack on a 'UL' at the end, this will be done -# automatically to create a 32-bit value in your source code. -# -# This will be an integer division of F_USB below, as it is sourced by -# F_USB after it has run through any CPU prescalers. Note that this value -# does not *change* the processor frequency - it should merely be updated to -# reflect the processor speed set externally so that the code can use accurate -# software delays. -F_CPU = 16000000 - - -# -# LUFA specific -# -# Target architecture (see library "Board Types" documentation). -ARCH = AVR8 - -# Input clock frequency. -# This will define a symbol, F_USB, in all source code files equal to the -# input clock frequency (before any prescaling is performed) in Hz. This value may -# differ from F_CPU if prescaling is used on the latter, and is required as the -# raw input clock is fed directly to the PLL sections of the AVR for high speed -# clock generation for the USB and other AVR subsections. Do NOT tack on a 'UL' -# at the end, this will be done automatically to create a 32-bit value in your -# source code. -# -# If no clock division is performed on the input clock inside the AVR (via the -# CPU clock adjust registers or the clock division fuses), this will be equal to F_CPU. -F_USB = $(F_CPU) - -# Interrupt driven control endpoint task(+60) -OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT - - -# Bootloader selection -# Teensy halfkay -# Pro Micro caterina -# Atmel DFU atmel-dfu -# LUFA DFU lufa-dfu -# QMK DFU qmk-dfu -# atmega32a bootloadHID -BOOTLOADER = atmel-dfu - - -# If you don't know the bootloader type, then you can specify the -# Boot Section Size in *bytes* by uncommenting out the OPT_DEFS line -# Teensy halfKay 512 -# Teensy++ halfKay 1024 -# Atmel DFU loader 4096 -# LUFA bootloader 4096 -# USBaspLoader 2048 -# OPT_DEFS += -DBOOTLOADER_SIZE=4096 - - -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Virtual DIP switch configuration(+1000) -MOUSEKEY_ENABLE = no # Mouse keys(+4700) -EXTRAKEY_ENABLE = yes # Audio control and System control(+450) -CONSOLE_ENABLE = yes # Console for debug(+400) -COMMAND_ENABLE = yes # Commands for debug and configuration -# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE -SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend -# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work -NKRO_ENABLE = no # USB Nkey Rollover -BACKLIGHT_ENABLE = yes # Enable keyboard backlight functionality on B7 by default -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -MIDI_ENABLE = no # MIDI support (+2400 to 4200, depending on config) -UNICODE_ENABLE = no # Unicode -BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID -AUDIO_ENABLE = no # Audio output on port C6 -FAUXCLICKY_ENABLE = no # Use buzzer to emulate clicky switches -HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) +BOOTMAGIC_ENABLE = 1 +EXTRAKEY_ENABLE = 1 From f57bc9bdca5a63636cc0e1bff5de00a39dcdd850 Mon Sep 17 00:00:00 2001 From: "Ricardo (XenGi) Band" Date: Sun, 11 Jun 2023 20:22:50 +0200 Subject: [PATCH 015/255] fix layout name --- keyboards/mkbd65/config.h | 4 ++++ keyboards/mkbd65/info.json | 4 ---- keyboards/mkbd65/keymaps/{en-us-intl => en_us_intl} | 0 keyboards/mkbd65/rev0/info.json | 2 ++ keyboards/mkbd65/rev0/rules.mk | 3 +++ keyboards/mkbd65/rev1/info.json | 2 ++ keyboards/mkbd65/rev1/rules.mk | 9 +++++++-- 7 files changed, 18 insertions(+), 6 deletions(-) rename keyboards/mkbd65/keymaps/{en-us-intl => en_us_intl} (100%) diff --git a/keyboards/mkbd65/config.h b/keyboards/mkbd65/config.h index 4ac3a7eaf5..c6367adeab 100644 --- a/keyboards/mkbd65/config.h +++ b/keyboards/mkbd65/config.h @@ -11,3 +11,7 @@ //#define NO_ACTION_TAPPING // disable one-shot modifiers //#define NO_ACTION_ONESHOT + +// disable these deprecated features by default +#define NO_ACTION_MACRO +#define NO_ACTION_FUNCTION \ No newline at end of file diff --git a/keyboards/mkbd65/info.json b/keyboards/mkbd65/info.json index aea164d043..7a2cd0c8f7 100644 --- a/keyboards/mkbd65/info.json +++ b/keyboards/mkbd65/info.json @@ -4,10 +4,6 @@ "url": "https://mkbd65.xengi.de", "maintainer": "XenGi", "author": ["XenGi"], - "usb": { - "vid": "0x1209", - "pid": "0x4803" - }, "debounce": 5, "diode_direction": "ROW2COL", "bootmagic": { diff --git a/keyboards/mkbd65/keymaps/en-us-intl b/keyboards/mkbd65/keymaps/en_us_intl similarity index 100% rename from keyboards/mkbd65/keymaps/en-us-intl rename to keyboards/mkbd65/keymaps/en_us_intl diff --git a/keyboards/mkbd65/rev0/info.json b/keyboards/mkbd65/rev0/info.json index cea5523e84..5d2c940129 100644 --- a/keyboards/mkbd65/rev0/info.json +++ b/keyboards/mkbd65/rev0/info.json @@ -1,5 +1,7 @@ { "usb": { + "vid": "0x1209", + "pid": "0x4803", "device_version": "0.0.0" }, "layouts": { diff --git a/keyboards/mkbd65/rev0/rules.mk b/keyboards/mkbd65/rev0/rules.mk index 94d4ac53b6..2f6c65ff11 100644 --- a/keyboards/mkbd65/rev0/rules.mk +++ b/keyboards/mkbd65/rev0/rules.mk @@ -7,3 +7,6 @@ ARCH = AVR8 F_USB = $(F_CPU) OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT BOOTLOADER = atmel-dfu + +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +EXTRAKEY_ENABLE = yes # Audio control and System control \ No newline at end of file diff --git a/keyboards/mkbd65/rev1/info.json b/keyboards/mkbd65/rev1/info.json index 276775db17..9e3dd7105e 100644 --- a/keyboards/mkbd65/rev1/info.json +++ b/keyboards/mkbd65/rev1/info.json @@ -1,5 +1,7 @@ { "usb": { + "vid": "0x1209", + "pid": "0x4803", "device_version": "1.0.0" }, "layouts": { diff --git a/keyboards/mkbd65/rev1/rules.mk b/keyboards/mkbd65/rev1/rules.mk index 84345ec0aa..ef6c3bb862 100644 --- a/keyboards/mkbd65/rev1/rules.mk +++ b/keyboards/mkbd65/rev1/rules.mk @@ -1,3 +1,8 @@ # A list of layouts this keyboard supports. -LAYOUTS = en-us-intl de - \ No newline at end of file +LAYOUTS = en_us_intl de + +MCU = STM32F072 +BOOTLOADER = stm32-dfu + +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +EXTRAKEY_ENABLE = yes # Audio control and System control \ No newline at end of file From 6f63dca06f1d9c4c9e61725bd5479c0252aad6b7 Mon Sep 17 00:00:00 2001 From: "Ricardo (XenGi) Band" Date: Sun, 11 Jun 2023 20:58:20 +0200 Subject: [PATCH 016/255] rev0 compiles --- keyboards/mkbd65/config.h | 4 -- keyboards/mkbd65/keymaps/ansi/keymap.c | 20 +++---- keyboards/mkbd65/keymaps/de/keymap.c | 4 +- keyboards/mkbd65/keymaps/en_us_intl | 1 - keyboards/mkbd65/keymaps/en_us_intl/README.md | 58 +++++++++++++++++++ keyboards/mkbd65/keymaps/en_us_intl/keymap.c | 22 +++++++ keyboards/mkbd65/keymaps/iso/keymap.c | 12 ++-- keyboards/mkbd65/rev0/rules.mk | 6 -- keyboards/mkbd65/rev1/info.json | 6 +- keyboards/mkbd65/rev1/mkbd65.h | 4 +- keyboards/mkbd65/rev1/rules.mk | 6 -- keyboards/mkbd65/rules.mk | 5 +- 12 files changed, 106 insertions(+), 42 deletions(-) delete mode 120000 keyboards/mkbd65/keymaps/en_us_intl create mode 100644 keyboards/mkbd65/keymaps/en_us_intl/README.md create mode 100644 keyboards/mkbd65/keymaps/en_us_intl/keymap.c diff --git a/keyboards/mkbd65/config.h b/keyboards/mkbd65/config.h index c6367adeab..4ac3a7eaf5 100644 --- a/keyboards/mkbd65/config.h +++ b/keyboards/mkbd65/config.h @@ -11,7 +11,3 @@ //#define NO_ACTION_TAPPING // disable one-shot modifiers //#define NO_ACTION_ONESHOT - -// disable these deprecated features by default -#define NO_ACTION_MACRO -#define NO_ACTION_FUNCTION \ No newline at end of file diff --git a/keyboards/mkbd65/keymaps/ansi/keymap.c b/keyboards/mkbd65/keymaps/ansi/keymap.c index ddda2b83bc..fb5f196098 100644 --- a/keyboards/mkbd65/keymaps/ansi/keymap.c +++ b/keyboards/mkbd65/keymaps/ansi/keymap.c @@ -4,19 +4,19 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( /* Base layer */ - KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_BSPC, + [0] = LAYOUT_ansi( /* Base layer */ + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, 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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, KC_RSFT, - KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_SPC, KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL + 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_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, + KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL ), - [1] = LAYOUT( /* Function layer */ - RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, KC_DEL, + [1] = LAYOUT_ansi( /* Function layer */ + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, KC_APP, - _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_LGUI, KC_LGUI, - _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, _______, - _______, _______, _______, _______, KC_TAB, KC_TAB, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_LGUI, + _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, + _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ ) }; diff --git a/keyboards/mkbd65/keymaps/de/keymap.c b/keyboards/mkbd65/keymaps/de/keymap.c index 1246f1e8bc..6ba90e876f 100644 --- a/keyboards/mkbd65/keymaps/de/keymap.c +++ b/keyboards/mkbd65/keymaps/de/keymap.c @@ -6,7 +6,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( /* Base layer */ - KC_GESC, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, DE_8, DE_9, DE_0, KC_BSPC, KC_BSPC, + QK_GESC, DE_1, DE_2, DE_3, DE_4, DE_5, DE_6, DE_7, DE_8, DE_9, DE_0, KC_BSPC, KC_BSPC, DE_Q, DE_W, DE_E, DE_R, DE_T, DE_Z, DE_U, DE_I, DE_O, DE_P, DE_UDIA, DE_PLUS, KC_ENT, DE_A, DE_S, DE_D, DE_F, DE_G, DE_H, DE_J, DE_K, DE_L, DE_ODIA, DE_ADIA, DE_HASH, KC_ENT, DE_Y, DE_X, DE_C, DE_V, DE_B, DE_N, DE_M, DE_COMM, DE_DOT, DE_MINS, KC_UP, DE_LABK, KC_RSFT, @@ -14,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT( /* Function layer */ - RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, KC_DEL, + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, KC_APP, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_LGUI, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, _______, diff --git a/keyboards/mkbd65/keymaps/en_us_intl b/keyboards/mkbd65/keymaps/en_us_intl deleted file mode 120000 index 44ad4f4f7e..0000000000 --- a/keyboards/mkbd65/keymaps/en_us_intl +++ /dev/null @@ -1 +0,0 @@ -ansi \ No newline at end of file diff --git a/keyboards/mkbd65/keymaps/en_us_intl/README.md b/keyboards/mkbd65/keymaps/en_us_intl/README.md new file mode 100644 index 0000000000..96e8f7bb14 --- /dev/null +++ b/keyboards/mkbd65/keymaps/en_us_intl/README.md @@ -0,0 +1,58 @@ +# The English US International keymap for mkbd65 rev0 by XenGi + +This is the default layout for the mkbd65 keyboard. You can use it as a reference for other layouts. + +It is based on the "English (intl., with AltGr dead keys)" layout. + +This is the key matrix (no label means the key from layer 0 will be used): + +``` +0: no mod +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ Esc║ 1 ║ 2 ║ 3 ║ 4 ║ 5 ║ 6 ║ 7 ║ 8 ║ 9 ║ 0 ║Backspace║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ q ║ w ║ e ║ r ║ t ║ y ║ u ║ i ║ o ║ p ║ [ ║ ] ║ \ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ a ║ s ║ d ║ f ║ g ║ h ║ j ║ k ║ l ║ ; ║ ' ║ Return ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ +║ z ║ x ║ c ║ v ║ b ║ n ║ m ║ , ║ . ║ / ║ ▲ ║ Shift ║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║Ctrl║ Fn ║Shft║AltG║ Space ║ - ║ = ║ ◀ ║ ▼ ║ ▶ ║Ctrl║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +1: mod shift +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ ~ ║ ! ║ @ ║ # ║ $ ║ % ║ ^ ║ & ║ * ║ ( ║ ) ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ Q ║ W ║ E ║ R ║ T ║ Y ║ U ║ I ║ O ║ P ║ { ║ } ║ | ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ A ║ S ║ D ║ F ║ G ║ H ║ J ║ K ║ L ║ : ║ " ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ +║ Z ║ X ║ C ║ V ║ B ║ N ║ M ║ < ║ > ║ ? ║ ║░░░░░░░░░║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║ ║ ║░░░░║ ║ ║ _ ║ + ║ ║ ║ ║ ║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +2: mod altgr +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ ║ ¹ ║ ² ║ ³ ║ ║ € ║ ║ ║ ║ ║ ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ ä ║ ║ ║ ║ ║ ü ║ ║ ║ ║ ö ║ « ║ » ║ ¬ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ +║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ║ ║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║ ║ ║ ║░░░░║ ║ ║ ║ ║ ║ ║ ║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +3: mod fn +╔════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦════╦═════════╗ +║ Esc║ F1 ║ F2 ║ F3 ║ F4 ║ F5 ║ F6 ║ F7 ║ F8 ║ F9 ║ F10║ Delete ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ` ║ Super ║ +╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ ║ +╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ +║ ║░░░░║ ║ ║ Tab ║ ║ ║Pos1║PgDn║ End║ ║ +╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ +``` diff --git a/keyboards/mkbd65/keymaps/en_us_intl/keymap.c b/keyboards/mkbd65/keymaps/en_us_intl/keymap.c new file mode 100644 index 0000000000..96d7855ff8 --- /dev/null +++ b/keyboards/mkbd65/keymaps/en_us_intl/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2023 XenGi (@XenGi) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_all( /* Base layer */ + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, KC_BSPC, + 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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, KC_ENT, + KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, KC_RSFT, + KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_SPC, KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL + ), + + [1] = LAYOUT_all( /* Function layer */ + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, KC_APP, + _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_LGUI, KC_LGUI, + _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, _______, + _______, _______, _______, _______, KC_TAB, KC_TAB, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ + ) +}; diff --git a/keyboards/mkbd65/keymaps/iso/keymap.c b/keyboards/mkbd65/keymaps/iso/keymap.c index 2b59ffd0cf..a7dd99463e 100644 --- a/keyboards/mkbd65/keymaps/iso/keymap.c +++ b/keyboards/mkbd65/keymaps/iso/keymap.c @@ -4,19 +4,19 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_ISO( /* Base layer */ - KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + [0] = LAYOUT_iso( /* Base layer */ + QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, 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_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_BSLS, KC_ENT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_UP, KC_RSFT, - KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL, + KC_LCTL, MO(1), KC_LSFT, OSM(MOD_RALT), KC_SPC, KC_MINS, KC_EQL, KC_LEFT, KC_DOWN, KC_RGHT, KC_RCTL ), - [1] = LAYOUT_ISO( /* Function layer */ - RESET, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, + [1] = LAYOUT_iso( /* Function layer */ + QK_BOOT, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, KC_MSTP, KC_GRV, KC_APP, KC_LGUI, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MUTE, KC_PGUP, _______, - _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______, + _______, _______, _______, _______, KC_TAB, _______, _______, KC_HOME, KC_PGDN, KC_END, _______ ), }; diff --git a/keyboards/mkbd65/rev0/rules.mk b/keyboards/mkbd65/rev0/rules.mk index 2f6c65ff11..2d23977af0 100644 --- a/keyboards/mkbd65/rev0/rules.mk +++ b/keyboards/mkbd65/rev0/rules.mk @@ -1,12 +1,6 @@ -# A list of layouts this keyboard supports. -LAYOUTS = ansi iso - MCU = atmega32u4 F_CPU = 16000000 ARCH = AVR8 F_USB = $(F_CPU) OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT BOOTLOADER = atmel-dfu - -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -EXTRAKEY_ENABLE = yes # Audio control and System control \ No newline at end of file diff --git a/keyboards/mkbd65/rev1/info.json b/keyboards/mkbd65/rev1/info.json index 9e3dd7105e..42ed48f137 100644 --- a/keyboards/mkbd65/rev1/info.json +++ b/keyboards/mkbd65/rev1/info.json @@ -5,7 +5,7 @@ "device_version": "1.0.0" }, "layouts": { - "LAYOUT_en-us-intl": { + "LAYOUT_en_us_intl": { "layout": [ {"x": 0, "y": 0, "label": "Esc", "matrix": [0, 0]}, {"x": 1, "y": 0, "label": "1", "matrix": [0, 1]}, @@ -153,7 +153,7 @@ } }, "matrix_pins": { - "cols": [], - "rows": [] + "cols": ["A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "B2", "B10", "B11"], + "rows": ["B12", "B13", "B14", "B15", "A8"] } } diff --git a/keyboards/mkbd65/rev1/mkbd65.h b/keyboards/mkbd65/rev1/mkbd65.h index 0e4293dd98..759166bbcf 100644 --- a/keyboards/mkbd65/rev1/mkbd65.h +++ b/keyboards/mkbd65/rev1/mkbd65.h @@ -26,7 +26,7 @@ * The second converts the arguments into a two-dimensional array which * represents the switch matrix. */ -#define LAYOUT( \ +#define LAYOUT_all( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K010, K011, K012, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K110, K111, K112, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K210, K211, K212, \ @@ -40,3 +40,5 @@ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K310, K311, K312 }, \ { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K410, K411, K412 } \ } + +#endif diff --git a/keyboards/mkbd65/rev1/rules.mk b/keyboards/mkbd65/rev1/rules.mk index ef6c3bb862..e5116166cc 100644 --- a/keyboards/mkbd65/rev1/rules.mk +++ b/keyboards/mkbd65/rev1/rules.mk @@ -1,8 +1,2 @@ -# A list of layouts this keyboard supports. -LAYOUTS = en_us_intl de - MCU = STM32F072 BOOTLOADER = stm32-dfu - -BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite -EXTRAKEY_ENABLE = yes # Audio control and System control \ No newline at end of file diff --git a/keyboards/mkbd65/rules.mk b/keyboards/mkbd65/rules.mk index 8e66f2e4d8..cc4a04ee68 100644 --- a/keyboards/mkbd65/rules.mk +++ b/keyboards/mkbd65/rules.mk @@ -1,7 +1,6 @@ DEFAULT_FOLDER = rev1 # Enables Link Time Optimization (LTO) when compiling the keyboard. This makes the process take longer, but it can # significantly reduce the compiled size (and since the firmware is small, the added time is not noticeable). -LTO_ENABLE = 1 +LTO_ENABLE = yes -BOOTMAGIC_ENABLE = 1 -EXTRAKEY_ENABLE = 1 +EXTRAKEY_ENABLE = yes # Audio control and System control From 9455c6adec9285438ef63d5b0538505da1b0479f Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sat, 6 Sep 2025 17:57:39 +1000 Subject: [PATCH 017/255] Branch point for 2025q4 breaking changes --- readme.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/readme.md b/readme.md index 62aed12066..e5c0d41b7b 100644 --- a/readme.md +++ b/readme.md @@ -1,3 +1,7 @@ +# THIS IS THE DEVELOP BRANCH + +Warning- This is the `develop` branch of QMK Firmware. You may encounter broken code here. Please see [Breaking Changes](https://docs.qmk.fm/#/breaking_changes) for more information. + # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) From 248d7c1d6d0cc9d5a5403e81e7a59ae6f3ebbea1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Sat, 6 Sep 2025 17:04:42 +0800 Subject: [PATCH 018/255] Simplify tap_code16_delay (#25595) * Replaced for-loop with single wait_ms(delay) call * Improve code consistency with tap_code_delay --- quantum/quantum.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/quantum/quantum.c b/quantum/quantum.c index 09e5fe1dac..128f8fb66d 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -157,9 +157,7 @@ __attribute__((weak)) void unregister_code16(uint16_t code) { */ __attribute__((weak)) void tap_code16_delay(uint16_t code, uint16_t delay) { register_code16(code); - for (uint16_t i = delay; i > 0; i--) { - wait_ms(1); - } + wait_ms(delay); unregister_code16(code); } From d8ce8cd204313a15a600a9d4d3038f76d267f0b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Sun, 7 Sep 2025 05:43:01 +0800 Subject: [PATCH 019/255] Simplify hue calculation in raindrops animation (#25587) --- quantum/rgb_matrix/animations/raindrops_anim.h | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/quantum/rgb_matrix/animations/raindrops_anim.h b/quantum/rgb_matrix/animations/raindrops_anim.h index d4f79adb56..f3656a5c0d 100644 --- a/quantum/rgb_matrix/animations/raindrops_anim.h +++ b/quantum/rgb_matrix/animations/raindrops_anim.h @@ -7,14 +7,9 @@ static void raindrops_set_color(uint8_t i, effect_params_t* params) { hsv_t hsv = rgb_matrix_config.hsv; // Take the shortest path between hues - int16_t deltaH = ((hsv.h + 180) % 360 - hsv.h) / 4; - if (deltaH > 127) { - deltaH -= 256; - } else if (deltaH < -127) { - deltaH += 256; - } - + int8_t deltaH = (int8_t)((hsv.h + 128) - hsv.h) / 4; hsv.h += (deltaH * random8_max(3)); + rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); rgb_matrix_set_color(i, rgb.r, rgb.g, rgb.b); } From 19527e8399184c8496400f4b8f3d79af8a847c36 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 6 Sep 2025 22:48:07 +0100 Subject: [PATCH 020/255] Remove duplication of RP2040 config defaults (#25563) --- keyboards/an_achronism/tetromino/config.h | 31 ------------------- keyboards/archetype/minervalx/config.h | 4 +-- keyboards/boardsource/equals/48/config.h | 3 -- keyboards/boardsource/equals/60/config.h | 3 -- keyboards/boardsource/lulu/rp2040/config.h | 4 +-- keyboards/boardsource/unicorne/config.h | 2 -- keyboards/cannonkeys/ortho48v2/config.h | 3 -- keyboards/cannonkeys/ortho60v2/config.h | 3 -- keyboards/chew/mono/config.h | 8 ----- keyboards/chew/split/config.h | 8 ----- keyboards/cornia/config.h | 3 -- keyboards/fruitykeeb/fruitbar/r2/config.h | 3 -- keyboards/gl516/xr63gl/config.h | 1 - keyboards/handwired/alcor_dactyl/config.h | 20 ------------ .../dactyl_manuform_pi_pico/config.h | 3 +- keyboards/silakka54/config.h | 1 - 16 files changed, 4 insertions(+), 96 deletions(-) delete mode 100644 keyboards/an_achronism/tetromino/config.h delete mode 100644 keyboards/chew/mono/config.h delete mode 100644 keyboards/chew/split/config.h diff --git a/keyboards/an_achronism/tetromino/config.h b/keyboards/an_achronism/tetromino/config.h deleted file mode 100644 index c7087edb88..0000000000 --- a/keyboards/an_achronism/tetromino/config.h +++ /dev/null @@ -1,31 +0,0 @@ -/* -Copyright 2022 an_achronism (@an-achronism) - -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_BOOTLOADER_DOUBLE_TAP_RESET - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT diff --git a/keyboards/archetype/minervalx/config.h b/keyboards/archetype/minervalx/config.h index 3b5eb8e56a..5c99920073 100644 --- a/keyboards/archetype/minervalx/config.h +++ b/keyboards/archetype/minervalx/config.h @@ -16,7 +16,5 @@ #pragma once -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET - #define BACKLIGHT_PWM_DRIVER PWMD5 -#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A \ No newline at end of file +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A diff --git a/keyboards/boardsource/equals/48/config.h b/keyboards/boardsource/equals/48/config.h index 39d114872f..7132189cdd 100644 --- a/keyboards/boardsource/equals/48/config.h +++ b/keyboards/boardsource/equals/48/config.h @@ -2,9 +2,6 @@ // 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 AUDIO_PIN GP29 #define AUDIO_PWM_DRIVER PWMD6 #define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_B diff --git a/keyboards/boardsource/equals/60/config.h b/keyboards/boardsource/equals/60/config.h index 39d114872f..7132189cdd 100644 --- a/keyboards/boardsource/equals/60/config.h +++ b/keyboards/boardsource/equals/60/config.h @@ -2,9 +2,6 @@ // 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 AUDIO_PIN GP29 #define AUDIO_PWM_DRIVER PWMD6 #define AUDIO_PWM_CHANNEL RP2040_PWM_CHANNEL_B diff --git a/keyboards/boardsource/lulu/rp2040/config.h b/keyboards/boardsource/lulu/rp2040/config.h index 2c86e48e6f..5a43521918 100644 --- a/keyboards/boardsource/lulu/rp2040/config.h +++ b/keyboards/boardsource/lulu/rp2040/config.h @@ -1,11 +1,11 @@ // Copyright 2022 jack (@waffle87) // 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 GP0 #define SERIAL_USART_RX_PIN GP1 + #define I2C_DRIVER I2CD1 #define I2C1_SDA_PIN GP22 #define I2C1_SCL_PIN GP23 diff --git a/keyboards/boardsource/unicorne/config.h b/keyboards/boardsource/unicorne/config.h index e79c00f14d..843d377cbe 100644 --- a/keyboards/boardsource/unicorne/config.h +++ b/keyboards/boardsource/unicorne/config.h @@ -2,8 +2,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET - #define I2C_DRIVER I2CD1 #define I2C1_SDA_PIN GP22 #define I2C1_SCL_PIN GP23 diff --git a/keyboards/cannonkeys/ortho48v2/config.h b/keyboards/cannonkeys/ortho48v2/config.h index 2af75a1715..18edaab2ab 100644 --- a/keyboards/cannonkeys/ortho48v2/config.h +++ b/keyboards/cannonkeys/ortho48v2/config.h @@ -16,8 +16,5 @@ along with this program. If not, see . */ #pragma once -#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. - #define BACKLIGHT_PWM_DRIVER PWMD6 #define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A diff --git a/keyboards/cannonkeys/ortho60v2/config.h b/keyboards/cannonkeys/ortho60v2/config.h index 2af75a1715..18edaab2ab 100644 --- a/keyboards/cannonkeys/ortho60v2/config.h +++ b/keyboards/cannonkeys/ortho60v2/config.h @@ -16,8 +16,5 @@ along with this program. If not, see . */ #pragma once -#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. - #define BACKLIGHT_PWM_DRIVER PWMD6 #define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A diff --git a/keyboards/chew/mono/config.h b/keyboards/chew/mono/config.h deleted file mode 100644 index bb047c0adf..0000000000 --- a/keyboards/chew/mono/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 Florent (@FLinguenheld) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Flash */ -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // In ms in which the double tap can occur diff --git a/keyboards/chew/split/config.h b/keyboards/chew/split/config.h deleted file mode 100644 index bb047c0adf..0000000000 --- a/keyboards/chew/split/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2024 Florent (@FLinguenheld) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -/* Flash */ -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET // Activates the double-tap behavior -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U // In ms in which the double tap can occur diff --git a/keyboards/cornia/config.h b/keyboards/cornia/config.h index dbf7031b62..8aff7e6336 100644 --- a/keyboards/cornia/config.h +++ b/keyboards/cornia/config.h @@ -25,6 +25,3 @@ #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/fruitykeeb/fruitbar/r2/config.h b/keyboards/fruitykeeb/fruitbar/r2/config.h index 320889eb91..c1f6f883a6 100644 --- a/keyboards/fruitykeeb/fruitbar/r2/config.h +++ b/keyboards/fruitykeeb/fruitbar/r2/config.h @@ -19,6 +19,3 @@ along with this program. If not, see . #define I2C_DRIVER I2CD1 #define I2C1_SCL_PIN GP27 #define I2C1_SDA_PIN GP26 - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U diff --git a/keyboards/gl516/xr63gl/config.h b/keyboards/gl516/xr63gl/config.h index 928fde7d86..d0af2e5b1d 100644 --- a/keyboards/gl516/xr63gl/config.h +++ b/keyboards/gl516/xr63gl/config.h @@ -23,4 +23,3 @@ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED_MASK 0U diff --git a/keyboards/handwired/alcor_dactyl/config.h b/keyboards/handwired/alcor_dactyl/config.h index 42c45acdbf..3da8cebf4d 100644 --- a/keyboards/handwired/alcor_dactyl/config.h +++ b/keyboards/handwired/alcor_dactyl/config.h @@ -3,26 +3,6 @@ #pragma once - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT - -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U - #define SERIAL_USART_FULL_DUPLEX #define SERIAL_USART_TX_PIN GP10 #define SERIAL_USART_RX_PIN GP9 diff --git a/keyboards/handwired/dactyl_manuform_pi_pico/config.h b/keyboards/handwired/dactyl_manuform_pi_pico/config.h index c622149a4a..9b5e919b1b 100644 --- a/keyboards/handwired/dactyl_manuform_pi_pico/config.h +++ b/keyboards/handwired/dactyl_manuform_pi_pico/config.h @@ -2,8 +2,7 @@ // 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/silakka54/config.h b/keyboards/silakka54/config.h index 220b85cd08..b3d1742042 100644 --- a/keyboards/silakka54/config.h +++ b/keyboards/silakka54/config.h @@ -21,5 +21,4 @@ #define SERIAL_USART_RX_PIN GP1 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 200U #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 From bcc546aa3f32ad68ed0e1ae9ebd3013c6d5399b7 Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 7 Sep 2025 22:05:34 +1000 Subject: [PATCH 021/255] Update USBaspLoader ISP instructions (#25590) --- docs/isp_flashing_guide.md | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/docs/isp_flashing_guide.md b/docs/isp_flashing_guide.md index 6f3f0a8f7d..1eaec3b59d 100644 --- a/docs/isp_flashing_guide.md +++ b/docs/isp_flashing_guide.md @@ -220,14 +220,18 @@ This bootloader is primarily for keyboards originally designed for the PS2AVRGB USBaspLoader is a bootloader based on V-USB that emulates a hardware USBasp device. It runs on ATmega32A and ATmega328P MCUs. -Precompiled `.hex` files are generally not available, but you can compile it yourself by setting up the QMK environment and following Coseyfannitutti's guide for the appropriate MCU: +Precompiled `.hex` files are generally not available, but you can compile it yourself by setting up the QMK environment and cloning the appropriate branch of Coseyfannitutti's USBaspLoader fork: -|MCU |Low |High |Extended|USB ID | -|-------------------------------------------------------------------------------------|------|------|--------|-----------| -|[ATmega32A](https://github.com/coseyfannitutti/discipline/tree/master/doc/bootloader)|`0x1F`|`0xC0`|*n/a* |`16C0:05DC`| -|[ATmega328P](https://github.com/coseyfannitutti/discipad/tree/master/doc/bootloader) |`0xD7`|`0xD0`|`0x04` |`16C0:05DC`| +|MCU |Low |High |Extended|USB ID | +|-----------------------------------------------------------------------------|------|------|--------|-----------| +|[ATmega32A](https://github.com/coseyfannitutti/USBaspLoader/tree/atmega32a) |`0x1F`|`0xC0`|*n/a* |`16C0:05DC`| +|[ATmega328P](https://github.com/coseyfannitutti/USBaspLoader/tree/atmega328p)|`0xD7`|`0xD0`|`0x04` |`16C0:05DC`| -Note that some boards may have their own specialized build of this bootloader in a separate repository. This will usually be linked to in the board's readme. +From there, simply `cd` to the `firmware/` directory and run `make`, which should produce a file called `main.hex`. + +:::tip +Some boards may have their own specialized build of this bootloader in a separate repository. This will usually be linked to in the board's readme. +::: ## Flashing the Bootloader From 4bd5c033c3135576010baded53c44720d8030d32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Sun, 7 Sep 2025 20:34:05 +0800 Subject: [PATCH 022/255] Refactor debounce algorithm with static allocation (#25515) * Refactor debounce counters with direct indexing * Refactor code to use array indexing for debounce_counters * Use global MATRIX_ROW_SHIFTER macro * Refactor debounce algorithm with static allocation * Converted arrays to static allocation * Standardised use of MATRIX_ROWS_PER_HAND for array sizing * Added Doxygen comments for primary debounce functions * Removed debounce_free() * Rewrite sym_defer_pr * Modernise code using sym_defer_pk as template * Format consistency with other current algorithms * Use shorter SPDX-License-Identifier * Remove ChibiOS core memory manager guard * Keep type definition within DEBOUNCE guard * Add change log * Minor optimisation refactor * Pre-calculate row_offset in per-key matrix loops * Add inline compiler hints * Improve readability with blank lines * Limit elapsed time to the maximum debounce value * Apply suggestions from code review Declare counters with "DEBOUNCE_ELAPSED" Co-authored-by: Joel Challis * Update change log to new breaking change date --------- Co-authored-by: Joel Challis --- docs/ChangeLog/20251130/PR25515.md | 3 + quantum/debounce.h | 2 - quantum/debounce/asym_eager_defer_pk.c | 163 ++++++++---------- quantum/debounce/none.c | 2 - quantum/debounce/sym_defer_g.c | 31 +--- quantum/debounce/sym_defer_pk.c | 149 ++++++++-------- quantum/debounce/sym_defer_pr.c | 148 ++++++++++------ quantum/debounce/sym_eager_pk.c | 125 +++++++------- quantum/debounce/sym_eager_pr.c | 136 +++++++-------- .../debounce/tests/debounce_test_common.cpp | 2 - 10 files changed, 369 insertions(+), 392 deletions(-) create mode 100644 docs/ChangeLog/20251130/PR25515.md diff --git a/docs/ChangeLog/20251130/PR25515.md b/docs/ChangeLog/20251130/PR25515.md new file mode 100644 index 0000000000..ccc88e0c64 --- /dev/null +++ b/docs/ChangeLog/20251130/PR25515.md @@ -0,0 +1,3 @@ +# Refactor debounce algorithm with static allocation [#25515](https://github.com/qmk/qmk_firmware/pull/25515) + +Removed dynamic memory allocation (malloc, free) from all debounce implementations for improved efficiency on embedded systems and to avoid runtime allocation overhead. Refactored state arrays to use direct indexing, simplifying code and eliminating pointer arithmetic. Standardized usage of MATRIX_ROWS_PER_HAND throughout the codebase to ensure consistent support for split keyboards. diff --git a/quantum/debounce.h b/quantum/debounce.h index cea1f2b526..30d2621d18 100644 --- a/quantum/debounce.h +++ b/quantum/debounce.h @@ -17,5 +17,3 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed); void debounce_init(uint8_t num_rows); - -void debounce_free(void); diff --git a/quantum/debounce/asym_eager_defer_pk.c b/quantum/debounce/asym_eager_defer_pk.c index b6fcdc3d4e..a385301c90 100644 --- a/quantum/debounce/asym_eager_defer_pk.c +++ b/quantum/debounce/asym_eager_defer_pk.c @@ -1,37 +1,15 @@ -/* - * Copyright 2017 Alex Ong - * Copyright 2020 Andrei Purdea - * Copyright 2021 Simon Arlott - * - * 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 . - */ - -/* -Asymetric per-key algorithm. After pressing a key, it immediately changes state, -with no further inputs accepted until DEBOUNCE milliseconds have occurred. After -releasing a key, that state is pushed after no changes occur for DEBOUNCE milliseconds. -*/ +// Copyright 2017 Alex Ong +// Copyright 2020 Andrei Purdea +// Copyright 2021 Simon Arlott +// SPDX-License-Identifier: GPL-2.0-or-later +// +// Asymetric per-key algorithm. After pressing a key, it immediately changes state, +// with no further inputs accepted until DEBOUNCE milliseconds have occurred. After +// releasing a key, that state is pushed after no changes occur for DEBOUNCE milliseconds. #include "debounce.h" #include "timer.h" -#include - -#ifdef PROTOCOL_CHIBIOS -# if CH_CFG_USE_MEMCORE == FALSE -# error ChibiOS is configured without a memory allocator. Your keyboard may have set `#define CH_CFG_USE_MEMCORE FALSE`, which is incompatible with this debounce algorithm. -# endif -#endif +#include "util.h" #ifndef DEBOUNCE # define DEBOUNCE 5 @@ -43,44 +21,29 @@ releasing a key, that state is pushed after no changes occur for DEBOUNCE millis # define DEBOUNCE 127 #endif -#define ROW_SHIFTER ((matrix_row_t)1) +#define DEBOUNCE_ELAPSED 0 +#if DEBOUNCE > 0 typedef struct { bool pressed : 1; uint8_t time : 7; } debounce_counter_t; -#if DEBOUNCE > 0 -static debounce_counter_t *debounce_counters; -static fast_timer_t last_time; -static bool counters_need_update; -static bool matrix_need_update; -static bool cooked_changed; +// Uses MATRIX_ROWS_PER_HAND instead of MATRIX_ROWS to support split keyboards +static debounce_counter_t debounce_counters[MATRIX_ROWS_PER_HAND * MATRIX_COLS] = {DEBOUNCE_ELAPSED}; +static bool counters_need_update; +static bool matrix_need_update; +static bool cooked_changed; -# define DEBOUNCE_ELAPSED 0 +static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time); +static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]); -static void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, uint8_t elapsed_time); -static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows); - -// we use num_rows rather than MATRIX_ROWS to support split keyboards -void debounce_init(uint8_t num_rows) { - debounce_counters = malloc(num_rows * MATRIX_COLS * sizeof(debounce_counter_t)); - int i = 0; - for (uint8_t r = 0; r < num_rows; r++) { - for (uint8_t c = 0; c < MATRIX_COLS; c++) { - debounce_counters[i++].time = DEBOUNCE_ELAPSED; - } - } -} - -void debounce_free(void) { - free(debounce_counters); - debounce_counters = NULL; -} +void debounce_init(uint8_t num_rows) {} bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { - bool updated_last = false; - cooked_changed = false; + static fast_timer_t last_time; + bool updated_last = false; + cooked_changed = false; if (counters_need_update) { fast_timer_t now = timer_read_fast(); @@ -88,12 +51,10 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool last_time = now; updated_last = true; - if (elapsed_time > UINT8_MAX) { - elapsed_time = UINT8_MAX; - } if (elapsed_time > 0) { - update_debounce_counters_and_transfer_if_expired(raw, cooked, num_rows, elapsed_time); + // Update debounce counters with elapsed timer clamped to 127 (maximum debounce) + update_debounce_counters_and_transfer_if_expired(raw, cooked, MIN(elapsed_time, 127)); } } @@ -102,74 +63,96 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool last_time = timer_read_fast(); } - transfer_matrix_values(raw, cooked, num_rows); + transfer_matrix_values(raw, cooked); } return cooked_changed; } -static void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, uint8_t elapsed_time) { - debounce_counter_t *debounce_pointer = debounce_counters; - +/** + * @brief Processes per-key debounce counters and updates the debounced matrix state. + * + * This function iterates through each key in the matrix and updates its debounce counter + * based on the elapsed time. If the debounce period has expired, the debounced state is + * updated accordingly for key-down (eager) and key-up (defer) events. + * + * @param raw The current raw key state matrix. + * @param cooked The debounced key state matrix to be updated. + * @param elapsed_time The time elapsed since the last debounce update, in milliseconds. + */ +static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time) { counters_need_update = false; matrix_need_update = false; - for (uint8_t row = 0; row < num_rows; row++) { + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { + uint16_t row_offset = row * MATRIX_COLS; + for (uint8_t col = 0; col < MATRIX_COLS; col++) { - matrix_row_t col_mask = (ROW_SHIFTER << col); + uint16_t index = row_offset + col; - if (debounce_pointer->time != DEBOUNCE_ELAPSED) { - if (debounce_pointer->time <= elapsed_time) { - debounce_pointer->time = DEBOUNCE_ELAPSED; + if (debounce_counters[index].time != DEBOUNCE_ELAPSED) { + if (debounce_counters[index].time <= elapsed_time) { + debounce_counters[index].time = DEBOUNCE_ELAPSED; - if (debounce_pointer->pressed) { + if (debounce_counters[index].pressed) { // key-down: eager matrix_need_update = true; } else { // key-up: defer + matrix_row_t col_mask = (MATRIX_ROW_SHIFTER << col); matrix_row_t cooked_next = (cooked[row] & ~col_mask) | (raw[row] & col_mask); cooked_changed |= cooked_next ^ cooked[row]; cooked[row] = cooked_next; } } else { - debounce_pointer->time -= elapsed_time; + debounce_counters[index].time -= elapsed_time; counters_need_update = true; } } - debounce_pointer++; } } } -static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows) { - debounce_counter_t *debounce_pointer = debounce_counters; - +/** + * @brief Applies debounced changes to the matrix state based on per-key counters. + * + * This function compares the raw and cooked key state matrices to detect changes. + * For each key, it updates the debounce counter and the debounced state according + * to the debounce algorithm. Key-down events are handled eagerly, while key-up + * events are deferred until the debounce period has elapsed. + * + * @param raw The current raw key state matrix. + * @param cooked The debounced key state matrix to be updated. + */ +static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]) { matrix_need_update = false; - for (uint8_t row = 0; row < num_rows; row++) { - matrix_row_t delta = raw[row] ^ cooked[row]; + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { + uint16_t row_offset = row * MATRIX_COLS; + matrix_row_t delta = raw[row] ^ cooked[row]; + for (uint8_t col = 0; col < MATRIX_COLS; col++) { - matrix_row_t col_mask = (ROW_SHIFTER << col); + uint16_t index = row_offset + col; + matrix_row_t col_mask = (MATRIX_ROW_SHIFTER << col); if (delta & col_mask) { - if (debounce_pointer->time == DEBOUNCE_ELAPSED) { - debounce_pointer->pressed = (raw[row] & col_mask); - debounce_pointer->time = DEBOUNCE; - counters_need_update = true; + if (debounce_counters[index].time == DEBOUNCE_ELAPSED) { + debounce_counters[index].pressed = (raw[row] & col_mask); + debounce_counters[index].time = DEBOUNCE; + counters_need_update = true; - if (debounce_pointer->pressed) { + if (debounce_counters[index].pressed) { // key-down: eager cooked[row] ^= col_mask; cooked_changed = true; } } - } else if (debounce_pointer->time != DEBOUNCE_ELAPSED) { - if (!debounce_pointer->pressed) { + } else if (debounce_counters[index].time != DEBOUNCE_ELAPSED) { + if (!debounce_counters[index].pressed) { // key-up: defer - debounce_pointer->time = DEBOUNCE_ELAPSED; + debounce_counters[index].time = DEBOUNCE_ELAPSED; } } - debounce_pointer++; } } } diff --git a/quantum/debounce/none.c b/quantum/debounce/none.c index 0a8ccfc4ee..0111dd6e31 100644 --- a/quantum/debounce/none.c +++ b/quantum/debounce/none.c @@ -32,5 +32,3 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool return cooked_changed; } - -void debounce_free(void) {} diff --git a/quantum/debounce/sym_defer_g.c b/quantum/debounce/sym_defer_g.c index d96758fab3..81f351c126 100644 --- a/quantum/debounce/sym_defer_g.c +++ b/quantum/debounce/sym_defer_g.c @@ -1,22 +1,10 @@ -/* -Copyright 2017 Alex Ong -Copyright 2021 Simon Arlott -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 . -*/ +// Copyright 2017 Alex Ong +// Copyright 2021 Simon Arlott +// SPDX-License-Identifier: GPL-2.0-or-later +// +// Basic global debounce algorithm. Used in 99% of keyboards at time of implementation +// When no state changes have occured for DEBOUNCE milliseconds, we push the state. -/* -Basic global debounce algorithm. Used in 99% of keyboards at time of implementation -When no state changes have occured for DEBOUNCE milliseconds, we push the state. -*/ #include "debounce.h" #include "timer.h" #include @@ -31,13 +19,13 @@ When no state changes have occured for DEBOUNCE milliseconds, we push the state. #endif #if DEBOUNCE > 0 -static bool debouncing = false; -static fast_timer_t debouncing_time; void debounce_init(uint8_t num_rows) {} bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { - bool cooked_changed = false; + static fast_timer_t debouncing_time; + static bool debouncing = false; + bool cooked_changed = false; if (changed) { debouncing = true; @@ -54,7 +42,6 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool return cooked_changed; } -void debounce_free(void) {} #else // no debouncing. # include "none.c" #endif diff --git a/quantum/debounce/sym_defer_pk.c b/quantum/debounce/sym_defer_pk.c index 156535a373..063094efe5 100644 --- a/quantum/debounce/sym_defer_pk.c +++ b/quantum/debounce/sym_defer_pk.c @@ -1,33 +1,14 @@ -/* -Copyright 2017 Alex Ong -Copyright 2020 Andrei Purdea -Copyright 2021 Simon Arlott -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 . -*/ - -/* -Basic symmetric per-key algorithm. Uses an 8-bit counter per key. -When no state changes have occured for DEBOUNCE milliseconds, we push the state. -*/ +// Copyright 2017 Alex Ong +// Copyright 2020 Andrei Purdea +// Copyright 2021 Simon Arlott +// SPDX-License-Identifier: GPL-2.0-or-later +// +// Basic symmetric per-key algorithm. Uses an 8-bit counter per key. +// When no state changes have occured for DEBOUNCE milliseconds, we push the state. #include "debounce.h" #include "timer.h" -#include - -#ifdef PROTOCOL_CHIBIOS -# if CH_CFG_USE_MEMCORE == FALSE -# error ChibiOS is configured without a memory allocator. Your keyboard may have set `#define CH_CFG_USE_MEMCORE FALSE`, which is incompatible with this debounce algorithm. -# endif -#endif +#include "util.h" #ifndef DEBOUNCE # define DEBOUNCE 5 @@ -39,40 +20,24 @@ When no state changes have occured for DEBOUNCE milliseconds, we push the state. # define DEBOUNCE UINT8_MAX #endif -#define ROW_SHIFTER ((matrix_row_t)1) - -typedef uint8_t debounce_counter_t; +#define DEBOUNCE_ELAPSED 0 #if DEBOUNCE > 0 -static debounce_counter_t *debounce_counters; -static fast_timer_t last_time; -static bool counters_need_update; -static bool cooked_changed; +typedef uint8_t debounce_counter_t; +// Uses MATRIX_ROWS_PER_HAND instead of MATRIX_ROWS to support split keyboards +static debounce_counter_t debounce_counters[MATRIX_ROWS_PER_HAND * MATRIX_COLS] = {DEBOUNCE_ELAPSED}; +static bool counters_need_update; +static bool cooked_changed; -# define DEBOUNCE_ELAPSED 0 +static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time); +static inline void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[]); -static void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, uint8_t elapsed_time); -static void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows); - -// we use num_rows rather than MATRIX_ROWS to support split keyboards -void debounce_init(uint8_t num_rows) { - debounce_counters = (debounce_counter_t *)malloc(num_rows * MATRIX_COLS * sizeof(debounce_counter_t)); - int i = 0; - for (uint8_t r = 0; r < num_rows; r++) { - for (uint8_t c = 0; c < MATRIX_COLS; c++) { - debounce_counters[i++] = DEBOUNCE_ELAPSED; - } - } -} - -void debounce_free(void) { - free(debounce_counters); - debounce_counters = NULL; -} +void debounce_init(uint8_t num_rows) {} bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { - bool updated_last = false; - cooked_changed = false; + static fast_timer_t last_time; + bool updated_last = false; + cooked_changed = false; if (counters_need_update) { fast_timer_t now = timer_read_fast(); @@ -80,12 +45,10 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool last_time = now; updated_last = true; - if (elapsed_time > UINT8_MAX) { - elapsed_time = UINT8_MAX; - } if (elapsed_time > 0) { - update_debounce_counters_and_transfer_if_expired(raw, cooked, num_rows, elapsed_time); + // Update debounce counters with elapsed timer clamped to UINT8_MAX + update_debounce_counters_and_transfer_if_expired(raw, cooked, MIN(elapsed_time, UINT8_MAX)); } } @@ -94,47 +57,73 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool last_time = timer_read_fast(); } - start_debounce_counters(raw, cooked, num_rows); + start_debounce_counters(raw, cooked); } return cooked_changed; } -static void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, uint8_t elapsed_time) { - counters_need_update = false; - debounce_counter_t *debounce_pointer = debounce_counters; - for (uint8_t row = 0; row < num_rows; row++) { +/** + * @brief Updates debounce counters and transfers debounced key states if the debounce period has expired. + * + * Iterates through each key in the matrix and checks its debounce counter. If the debounce period has expired + * for a key, the debounced state is updated to match the raw state. Otherwise, the debounce counter is decremented + * by the elapsed time and marked for further updates. + * + * @param raw The current raw key state matrix. + * @param cooked The debounced key state matrix to be updated. + * @param elapsed_time The time elapsed since the last debounce update, in milliseconds. + */ +static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time) { + counters_need_update = false; + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { + uint16_t row_offset = row * MATRIX_COLS; + for (uint8_t col = 0; col < MATRIX_COLS; col++) { - if (*debounce_pointer != DEBOUNCE_ELAPSED) { - if (*debounce_pointer <= elapsed_time) { - *debounce_pointer = DEBOUNCE_ELAPSED; - matrix_row_t cooked_next = (cooked[row] & ~(ROW_SHIFTER << col)) | (raw[row] & (ROW_SHIFTER << col)); + uint16_t index = row_offset + col; + + if (debounce_counters[index] != DEBOUNCE_ELAPSED) { + if (debounce_counters[index] <= elapsed_time) { + debounce_counters[index] = DEBOUNCE_ELAPSED; + matrix_row_t col_mask = (MATRIX_ROW_SHIFTER << col); + matrix_row_t cooked_next = (cooked[row] & ~col_mask) | (raw[row] & col_mask); cooked_changed |= cooked[row] ^ cooked_next; cooked[row] = cooked_next; } else { - *debounce_pointer -= elapsed_time; + debounce_counters[index] -= elapsed_time; counters_need_update = true; } } - debounce_pointer++; } } } -static void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows) { - debounce_counter_t *debounce_pointer = debounce_counters; - for (uint8_t row = 0; row < num_rows; row++) { - matrix_row_t delta = raw[row] ^ cooked[row]; +/** + * @brief Initializes debounce counters for keys with changed states. + * + * For each key in the matrix, this function checks if the raw state differs from the debounced state. + * If a change is detected and the debounce counter has elapsed, the counter is set to the debounce period + * and marked for update. Otherwise, the counter is cleared. + * + * @param raw The current raw key state matrix. + * @param cooked The debounced key state matrix. + */ +static inline void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[]) { + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { + uint16_t row_offset = row * MATRIX_COLS; + matrix_row_t delta = raw[row] ^ cooked[row]; + for (uint8_t col = 0; col < MATRIX_COLS; col++) { - if (delta & (ROW_SHIFTER << col)) { - if (*debounce_pointer == DEBOUNCE_ELAPSED) { - *debounce_pointer = DEBOUNCE; - counters_need_update = true; + uint16_t index = row_offset + col; + + if (delta & (MATRIX_ROW_SHIFTER << col)) { + if (debounce_counters[index] == DEBOUNCE_ELAPSED) { + debounce_counters[index] = DEBOUNCE; + counters_need_update = true; } } else { - *debounce_pointer = DEBOUNCE_ELAPSED; + debounce_counters[index] = DEBOUNCE_ELAPSED; } - debounce_pointer++; } } } diff --git a/quantum/debounce/sym_defer_pr.c b/quantum/debounce/sym_defer_pr.c index d6222af5b2..2382fae898 100644 --- a/quantum/debounce/sym_defer_pr.c +++ b/quantum/debounce/sym_defer_pr.c @@ -1,77 +1,117 @@ -/* -Copyright 2021 Chad Austin -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 . -*/ - -/* -Symmetric per-row debounce algorithm. Changes only apply when -DEBOUNCE milliseconds have elapsed since the last change. -*/ +// Copyright 2017 Alex Ong +// Copyright 2020 Andrei Purdea +// Copyright 2021 Simon Arlott +// Copyright @filterpaper +// SPDX-License-Identifier: GPL-2.0-or-later +// +// Basic symmetric per-row algorithm. Uses an 8-bit counter per row. +// When no state changes have occured for DEBOUNCE milliseconds, we push the state. #include "debounce.h" #include "timer.h" -#include +#include "util.h" #ifndef DEBOUNCE # define DEBOUNCE 5 #endif -static uint16_t last_time; -// [row] milliseconds until key's state is considered debounced. -static uint8_t* countdowns; -// [row] -static matrix_row_t* last_raw; +// Maximum debounce: 255ms +#if DEBOUNCE > UINT8_MAX +# undef DEBOUNCE +# define DEBOUNCE UINT8_MAX +#endif -void debounce_init(uint8_t num_rows) { - countdowns = (uint8_t*)calloc(num_rows, sizeof(uint8_t)); - last_raw = (matrix_row_t*)calloc(num_rows, sizeof(matrix_row_t)); +#define DEBOUNCE_ELAPSED 0 - last_time = timer_read(); -} +#if DEBOUNCE > 0 +typedef uint8_t debounce_counter_t; +// Uses MATRIX_ROWS_PER_HAND instead of MATRIX_ROWS to support split keyboards +static debounce_counter_t debounce_counters[MATRIX_ROWS_PER_HAND] = {DEBOUNCE_ELAPSED}; +static bool counters_need_update; +static bool cooked_changed; -void debounce_free(void) { - free(countdowns); - countdowns = NULL; - free(last_raw); - last_raw = NULL; -} +static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time); +static inline void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[]); + +void debounce_init(uint8_t num_rows) {} bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { - uint16_t now = timer_read(); - uint16_t elapsed16 = TIMER_DIFF_16(now, last_time); - last_time = now; - uint8_t elapsed = (elapsed16 > 255) ? 255 : elapsed16; - bool cooked_changed = false; + static fast_timer_t last_time; + bool updated_last = false; + cooked_changed = false; - uint8_t* countdown = countdowns; + if (counters_need_update) { + fast_timer_t now = timer_read_fast(); + fast_timer_t elapsed_time = TIMER_DIFF_FAST(now, last_time); - for (uint8_t row = 0; row < num_rows; ++row, ++countdown) { - matrix_row_t raw_row = raw[row]; + last_time = now; + updated_last = true; - if (raw_row != last_raw[row]) { - *countdown = DEBOUNCE; - last_raw[row] = raw_row; - } else if (*countdown > elapsed) { - *countdown -= elapsed; - } else if (*countdown) { - cooked_changed |= cooked[row] ^ raw_row; - cooked[row] = raw_row; - *countdown = 0; + if (elapsed_time > 0) { + // Update debounce counters with elapsed timer clamped to UINT8_MAX + update_debounce_counters_and_transfer_if_expired(raw, cooked, MIN(elapsed_time, UINT8_MAX)); } } + if (changed) { + if (!updated_last) { + last_time = timer_read_fast(); + } + + start_debounce_counters(raw, cooked); + } + return cooked_changed; } -bool debounce_active(void) { - return true; +/** + * @brief Updates debounce counters and transfers debounced row states if the debounce period has expired. + * + * Iterates through each row in the matrix and checks its debounce counter. If the debounce period has expired + * for a row, the debounced state is updated to match the raw state. Otherwise, the debounce counter is decremented + * by the elapsed time and marked for further updates. + * + * @param raw The current raw key state matrix. + * @param cooked The debounced key state matrix to be updated. + * @param elapsed_time The time elapsed since the last debounce update, in milliseconds. + */ +static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time) { + counters_need_update = false; + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { + if (debounce_counters[row] != DEBOUNCE_ELAPSED) { + if (debounce_counters[row] <= elapsed_time) { + debounce_counters[row] = DEBOUNCE_ELAPSED; + cooked_changed |= cooked[row] ^ raw[row]; + cooked[row] = raw[row]; + } else { + debounce_counters[row] -= elapsed_time; + counters_need_update = true; + } + } + } } + +/** + * @brief Initializes debounce counters for rows with changed states. + * + * For each row in the matrix, this function checks if the raw state differs from the debounced state. + * If a change is detected and the debounce counter has elapsed, the counter is set to the debounce period + * and marked for update. Otherwise, the counter is cleared. + * + * @param raw The current raw key state matrix. + * @param cooked The debounced key state matrix. + */ +static inline void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[]) { + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { + if (raw[row] != cooked[row]) { + debounce_counters[row] = DEBOUNCE; + counters_need_update = true; + } else { + debounce_counters[row] = DEBOUNCE_ELAPSED; + } + } +} + +#else +# include "none.c" +#endif diff --git a/quantum/debounce/sym_eager_pk.c b/quantum/debounce/sym_eager_pk.c index b359e79287..c3a7afde24 100644 --- a/quantum/debounce/sym_eager_pk.c +++ b/quantum/debounce/sym_eager_pk.c @@ -21,13 +21,7 @@ No further inputs are accepted until DEBOUNCE milliseconds have occurred. #include "debounce.h" #include "timer.h" -#include - -#ifdef PROTOCOL_CHIBIOS -# if CH_CFG_USE_MEMCORE == FALSE -# error ChibiOS is configured without a memory allocator. Your keyboard may have set `#define CH_CFG_USE_MEMCORE FALSE`, which is incompatible with this debounce algorithm. -# endif -#endif +#include "util.h" #ifndef DEBOUNCE # define DEBOUNCE 5 @@ -39,41 +33,25 @@ No further inputs are accepted until DEBOUNCE milliseconds have occurred. # define DEBOUNCE UINT8_MAX #endif -#define ROW_SHIFTER ((matrix_row_t)1) - -typedef uint8_t debounce_counter_t; +#define DEBOUNCE_ELAPSED 0 #if DEBOUNCE > 0 -static debounce_counter_t *debounce_counters; -static fast_timer_t last_time; -static bool counters_need_update; -static bool matrix_need_update; -static bool cooked_changed; +typedef uint8_t debounce_counter_t; +// Uses MATRIX_ROWS_PER_HAND instead of MATRIX_ROWS to support split keyboards +static debounce_counter_t debounce_counters[MATRIX_ROWS_PER_HAND * MATRIX_COLS] = {DEBOUNCE_ELAPSED}; +static bool counters_need_update; +static bool matrix_need_update; +static bool cooked_changed; -# define DEBOUNCE_ELAPSED 0 +static inline void update_debounce_counters(uint8_t elapsed_time); +static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]); -static void update_debounce_counters(uint8_t num_rows, uint8_t elapsed_time); -static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows); - -// we use num_rows rather than MATRIX_ROWS to support split keyboards -void debounce_init(uint8_t num_rows) { - debounce_counters = (debounce_counter_t *)malloc(num_rows * MATRIX_COLS * sizeof(debounce_counter_t)); - int i = 0; - for (uint8_t r = 0; r < num_rows; r++) { - for (uint8_t c = 0; c < MATRIX_COLS; c++) { - debounce_counters[i++] = DEBOUNCE_ELAPSED; - } - } -} - -void debounce_free(void) { - free(debounce_counters); - debounce_counters = NULL; -} +void debounce_init(uint8_t num_rows) {} bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { - bool updated_last = false; - cooked_changed = false; + static fast_timer_t last_time; + bool updated_last = false; + cooked_changed = false; if (counters_need_update) { fast_timer_t now = timer_read_fast(); @@ -81,12 +59,10 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool last_time = now; updated_last = true; - if (elapsed_time > UINT8_MAX) { - elapsed_time = UINT8_MAX; - } if (elapsed_time > 0) { - update_debounce_counters(num_rows, elapsed_time); + // Update debounce counters with elapsed timer clamped to UINT8_MAX + update_debounce_counters(MIN(elapsed_time, UINT8_MAX)); } } @@ -95,51 +71,74 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool last_time = timer_read_fast(); } - transfer_matrix_values(raw, cooked, num_rows); + transfer_matrix_values(raw, cooked); } return cooked_changed; } -// If the current time is > debounce counter, set the counter to enable input. -static void update_debounce_counters(uint8_t num_rows, uint8_t elapsed_time) { - counters_need_update = false; - matrix_need_update = false; - debounce_counter_t *debounce_pointer = debounce_counters; - for (uint8_t row = 0; row < num_rows; row++) { +/** + * @brief Updates per-key debounce counters and determines if matrix needs updating. + * + * Iterates through each key in the matrix and checks its debounce counter. If the debounce + * period has elapsed, the counter is reset and the matrix is marked for update. Otherwise, + * the counter is decremented by the elapsed time and marked for further updates if needed. + * + * @param elapsed_time The time elapsed since the last debounce update, in milliseconds. + */ +static inline void update_debounce_counters(uint8_t elapsed_time) { + counters_need_update = false; + matrix_need_update = false; + + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { + uint16_t row_offset = row * MATRIX_COLS; + for (uint8_t col = 0; col < MATRIX_COLS; col++) { - if (*debounce_pointer != DEBOUNCE_ELAPSED) { - if (*debounce_pointer <= elapsed_time) { - *debounce_pointer = DEBOUNCE_ELAPSED; - matrix_need_update = true; + uint16_t index = row_offset + col; + + if (debounce_counters[index] != DEBOUNCE_ELAPSED) { + if (debounce_counters[index] <= elapsed_time) { + debounce_counters[index] = DEBOUNCE_ELAPSED; + matrix_need_update = true; } else { - *debounce_pointer -= elapsed_time; + debounce_counters[index] -= elapsed_time; counters_need_update = true; } } - debounce_pointer++; } } } -// upload from raw_matrix to final matrix; -static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows) { - matrix_need_update = false; - debounce_counter_t *debounce_pointer = debounce_counters; - for (uint8_t row = 0; row < num_rows; row++) { +/** + * @brief Transfers debounced key states from the raw matrix to the cooked matrix. + * + * For each key in the matrix, this function checks if its state has changed and if its + * debounce counter has elapsed. If so, the debounce counter is reset, the cooked matrix + * is updated to reflect the new state, and the matrix is marked for further updates. + * + * @param raw The current raw key state matrix. + * @param cooked The debounced key state matrix to be updated. + */ +static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]) { + matrix_need_update = false; + + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { + uint16_t row_offset = row * MATRIX_COLS; matrix_row_t delta = raw[row] ^ cooked[row]; matrix_row_t existing_row = cooked[row]; + for (uint8_t col = 0; col < MATRIX_COLS; col++) { - matrix_row_t col_mask = (ROW_SHIFTER << col); + uint16_t index = row_offset + col; + + matrix_row_t col_mask = (MATRIX_ROW_SHIFTER << col); if (delta & col_mask) { - if (*debounce_pointer == DEBOUNCE_ELAPSED) { - *debounce_pointer = DEBOUNCE; - counters_need_update = true; + if (debounce_counters[index] == DEBOUNCE_ELAPSED) { + debounce_counters[index] = DEBOUNCE; + counters_need_update = true; existing_row ^= col_mask; // flip the bit. cooked_changed = true; } } - debounce_pointer++; } cooked[row] = existing_row; } diff --git a/quantum/debounce/sym_eager_pr.c b/quantum/debounce/sym_eager_pr.c index 6cd9308aff..5a1e3a1bda 100644 --- a/quantum/debounce/sym_eager_pr.c +++ b/quantum/debounce/sym_eager_pr.c @@ -1,33 +1,14 @@ -/* -Copyright 2019 Alex Ong -Copyright 2021 Simon Arlott -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 . -*/ - -/* -Basic per-row algorithm. Uses an 8-bit counter per row. -After pressing a key, it immediately changes state, and sets a counter. -No further inputs are accepted until DEBOUNCE milliseconds have occurred. -*/ +// Copyright 2017 Alex Ong +// Copyright 2021 Simon Arlott +// SPDX-License-Identifier: GPL-2.0-or-later +// +// Basic per-row algorithm. Uses an 8-bit counter per key. +// After pressing a key, it immediately changes state, and sets a counter. +// No further inputs are accepted until DEBOUNCE milliseconds have occurred. #include "debounce.h" #include "timer.h" -#include - -#ifdef PROTOCOL_CHIBIOS -# if CH_CFG_USE_MEMCORE == FALSE -# error ChibiOS is configured without a memory allocator. Your keyboard may have set `#define CH_CFG_USE_MEMCORE FALSE`, which is incompatible with this debounce algorithm. -# endif -#endif +#include "util.h" #ifndef DEBOUNCE # define DEBOUNCE 5 @@ -39,37 +20,25 @@ No further inputs are accepted until DEBOUNCE milliseconds have occurred. # define DEBOUNCE UINT8_MAX #endif -typedef uint8_t debounce_counter_t; +#define DEBOUNCE_ELAPSED 0 #if DEBOUNCE > 0 -static bool matrix_need_update; +typedef uint8_t debounce_counter_t; +// Uses MATRIX_ROWS_PER_HAND instead of MATRIX_ROWS to support split keyboards +static debounce_counter_t debounce_counters[MATRIX_ROWS_PER_HAND] = {DEBOUNCE_ELAPSED}; +static bool counters_need_update; +static bool matrix_need_update; +static bool cooked_changed; -static debounce_counter_t *debounce_counters; -static fast_timer_t last_time; -static bool counters_need_update; -static bool cooked_changed; +static inline void update_debounce_counters(uint8_t elapsed_time); +static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]); -# define DEBOUNCE_ELAPSED 0 - -static void update_debounce_counters(uint8_t num_rows, uint8_t elapsed_time); -static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows); - -// we use num_rows rather than MATRIX_ROWS to support split keyboards -void debounce_init(uint8_t num_rows) { - debounce_counters = (debounce_counter_t *)malloc(num_rows * sizeof(debounce_counter_t)); - for (uint8_t r = 0; r < num_rows; r++) { - debounce_counters[r] = DEBOUNCE_ELAPSED; - } -} - -void debounce_free(void) { - free(debounce_counters); - debounce_counters = NULL; -} +void debounce_init(uint8_t num_rows) {} bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { - bool updated_last = false; - cooked_changed = false; + static fast_timer_t last_time; + bool updated_last = false; + cooked_changed = false; if (counters_need_update) { fast_timer_t now = timer_read_fast(); @@ -77,12 +46,10 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool last_time = now; updated_last = true; - if (elapsed_time > UINT8_MAX) { - elapsed_time = UINT8_MAX; - } if (elapsed_time > 0) { - update_debounce_counters(num_rows, elapsed_time); + // Update debounce counters with elapsed timer clamped to UINT8_MAX + update_debounce_counters(MIN(elapsed_time, UINT8_MAX)); } } @@ -91,49 +58,64 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool last_time = timer_read_fast(); } - transfer_matrix_values(raw, cooked, num_rows); + transfer_matrix_values(raw, cooked); } return cooked_changed; } -// If the current time is > debounce counter, set the counter to enable input. -static void update_debounce_counters(uint8_t num_rows, uint8_t elapsed_time) { - counters_need_update = false; - matrix_need_update = false; - debounce_counter_t *debounce_pointer = debounce_counters; - for (uint8_t row = 0; row < num_rows; row++) { - if (*debounce_pointer != DEBOUNCE_ELAPSED) { - if (*debounce_pointer <= elapsed_time) { - *debounce_pointer = DEBOUNCE_ELAPSED; - matrix_need_update = true; +/** + * @brief Updates per-row debounce counters and determines if matrix needs updating. + * + * Iterates through each row in the matrix and checks its debounce counter. If the debounce + * period has elapsed, the counter is reset and the matrix is marked for update. Otherwise, + * the counter is decremented by the elapsed time and marked for further updates if needed. + * + * @param elapsed_time The time elapsed since the last debounce update, in milliseconds. + */ +static inline void update_debounce_counters(uint8_t elapsed_time) { + counters_need_update = false; + matrix_need_update = false; + + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { + if (debounce_counters[row] != DEBOUNCE_ELAPSED) { + if (debounce_counters[row] <= elapsed_time) { + debounce_counters[row] = DEBOUNCE_ELAPSED; + matrix_need_update = true; } else { - *debounce_pointer -= elapsed_time; + debounce_counters[row] -= elapsed_time; counters_need_update = true; } } - debounce_pointer++; } } -// upload from raw_matrix to final matrix; -static void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows) { - matrix_need_update = false; - debounce_counter_t *debounce_pointer = debounce_counters; - for (uint8_t row = 0; row < num_rows; row++) { +/** + * @brief Transfers debounced key states from the raw matrix to the cooked matrix. + * + * For each row in the matrix, this function checks if its state has changed and if its + * debounce counter has elapsed. If so, the debounce counter is reset, the cooked matrix + * is updated to reflect the new state, and the matrix is marked for further updates. + * + * @param raw The current raw key state matrix. + * @param cooked The debounced key state matrix + */ +static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]) { + matrix_need_update = false; + + for (uint8_t row = 0; row < MATRIX_ROWS_PER_HAND; row++) { matrix_row_t existing_row = cooked[row]; matrix_row_t raw_row = raw[row]; // determine new value basd on debounce pointer + raw value if (existing_row != raw_row) { - if (*debounce_pointer == DEBOUNCE_ELAPSED) { - *debounce_pointer = DEBOUNCE; + if (debounce_counters[row] == DEBOUNCE_ELAPSED) { + debounce_counters[row] = DEBOUNCE; cooked_changed |= cooked[row] ^ raw_row; cooked[row] = raw_row; counters_need_update = true; } } - debounce_pointer++; } } diff --git a/quantum/debounce/tests/debounce_test_common.cpp b/quantum/debounce/tests/debounce_test_common.cpp index fd4b6f01a6..3782f51411 100644 --- a/quantum/debounce/tests/debounce_test_common.cpp +++ b/quantum/debounce/tests/debounce_test_common.cpp @@ -121,8 +121,6 @@ void DebounceTest::runEventsInternal() { checkCookedMatrix(false, "debounce() modified cooked matrix"); advance_time(1); } - - debounce_free(); } void DebounceTest::runDebounce(bool changed) { From 4b1b83f42fca1ce73ccb1d21b39212f3067241d2 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 02:58:29 -0600 Subject: [PATCH 023/255] Migrate `g_led_config` to DD (B, C) (#25559) --- keyboards/bandominedoni/bandominedoni.c | 52 ---------- keyboards/bandominedoni/keyboard.json | 78 +++++++++++++++ keyboards/blockboy/ac980mini/ac980mini.c | 54 ----------- keyboards/blockboy/ac980mini/keyboard.json | 83 ++++++++++++++++ keyboards/boston_meetup/2019/2019.c | 15 --- keyboards/boston_meetup/2019/keyboard.json | 10 +- keyboards/canary/canary60rgb/v1/keyboard.json | 65 +++++++++++++ keyboards/canary/canary60rgb/v1/v1.c | 22 ----- keyboards/capsunlocked/cu80/v2/ansi/ansi.c | 20 ---- .../capsunlocked/cu80/v2/ansi/keyboard.json | 91 ++++++++++++++++++ keyboards/capsunlocked/cu80/v2/iso/iso.c | 20 ---- .../capsunlocked/cu80/v2/iso/keyboard.json | 92 ++++++++++++++++++ .../checkerboards/quark_lp/keyboard.json | 53 +++++++++++ keyboards/checkerboards/quark_lp/quark_lp.c | 39 -------- keyboards/cherrybstudio/cb87rgb/cb87rgb.c | 34 ------- keyboards/cherrybstudio/cb87rgb/keyboard.json | 94 +++++++++++++++++++ keyboards/concreteflowers/cor_tkl/cor_tkl.c | 16 ---- .../concreteflowers/cor_tkl/keyboard.json | 6 +- 18 files changed, 570 insertions(+), 274 deletions(-) delete mode 100644 keyboards/blockboy/ac980mini/ac980mini.c delete mode 100644 keyboards/capsunlocked/cu80/v2/ansi/ansi.c delete mode 100644 keyboards/capsunlocked/cu80/v2/iso/iso.c delete mode 100644 keyboards/checkerboards/quark_lp/quark_lp.c diff --git a/keyboards/bandominedoni/bandominedoni.c b/keyboards/bandominedoni/bandominedoni.c index 76d9e6cb3b..84c0f27bcd 100644 --- a/keyboards/bandominedoni/bandominedoni.c +++ b/keyboards/bandominedoni/bandominedoni.c @@ -16,58 +16,6 @@ #include "bandominedoni.h" -#ifdef RGB_MATRIX_ENABLE - -led_config_t g_led_config = { - { - { 75, 46, 45, 44, 43, 42, NO_LED }, - { 47, 48, 49, 50, 51, 52, 53 }, - { 60, 59, 58, 57, 56, 55, 54 }, - { 61, 62, 63, 64, 65, 66, 67 }, - { 74, 73, 72, 71, 70, 69, 68 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { 7, 6, 4, 3, 2, 1, 5}, - { 8, 9, 10, 11, 12, 13, 0 }, - { 19, 18, 17, 16, 15, 14, 41 }, - { 20, 21, 22, 23, 24, 25, 40 }, - { 30, 29, 28, 27, 26, 39, 38 }, - { 31, 32, 33, 34, 35, 36, 37 } - }, { - { 145, 6 }, { 157, 5 }, { 153, 14 }, { 149, 22 }, { 145, 32 }, { 136, 35 }, { 139, 48 }, { 134, 61 }, - { 142, 60 }, { 148, 43 }, { 154, 29 }, { 158, 20 }, { 163, 12 }, { 168, 4 }, - { 178, 5 }, { 173, 12 }, { 168, 20 }, { 163, 28 }, { 157, 40 }, { 151, 55 }, - { 160, 52 }, { 166, 39 }, { 172, 28 }, { 177, 20 }, { 182, 13 }, { 188, 7 }, - { 192, 17 }, { 186, 23 }, { 181, 30 }, { 175, 39 }, { 169, 50 }, - { 178, 51 }, { 184, 41 }, { 190, 33 }, { 196, 27 }, - { 199, 37 }, { 193, 45 }, { 187, 53 }, - { 196, 56 }, { 202, 49 }, - { 205, 61 }, - { 202, 4 }, - { 84, 18 }, { 73, 13 }, { 62, 10 }, { 51, 8 }, { 39, 11 }, { 24, 22 }, - { 34, 19 }, { 45, 16 }, { 56, 16 }, { 66, 18 }, { 77, 22 }, { 87, 28 }, - { 92, 40 }, { 81, 32 }, { 71, 27 }, { 61, 24 }, { 51, 24 }, { 41, 24 }, { 30, 28 }, - { 24, 42 }, { 34, 37 }, { 44, 35 }, { 54, 34 }, { 64, 36 }, { 74, 38 }, { 84, 44 }, - { 87, 54 }, { 77, 49 }, { 67, 47 }, { 57, 45 }, { 47, 45 }, { 37, 48 }, { 27, 52 }, { 19, 56 }, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, - 4, 4, - 4, - 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4 - } -}; -#endif - #if defined(SPLIT_HAND_MATRIX_GRID) static uint8_t peek_matrix_intersection(pin_t out_pin, pin_t in_pin) { gpio_set_pin_input_high(in_pin); diff --git a/keyboards/bandominedoni/keyboard.json b/keyboards/bandominedoni/keyboard.json index f6ea0f43c3..7184e2e90c 100644 --- a/keyboards/bandominedoni/keyboard.json +++ b/keyboards/bandominedoni/keyboard.json @@ -20,6 +20,84 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [7, 6], "x": 145, "y": 6, "flags": 4}, + {"matrix": [6, 5], "x": 157, "y": 5, "flags": 4}, + {"matrix": [6, 4], "x": 153, "y": 14, "flags": 4}, + {"matrix": [6, 3], "x": 149, "y": 22, "flags": 4}, + {"matrix": [6, 2], "x": 145, "y": 32, "flags": 4}, + {"matrix": [6, 6], "x": 136, "y": 35, "flags": 4}, + {"matrix": [6, 1], "x": 139, "y": 48, "flags": 4}, + {"matrix": [6, 0], "x": 134, "y": 61, "flags": 4}, + {"matrix": [7, 0], "x": 142, "y": 60, "flags": 4}, + {"matrix": [7, 1], "x": 148, "y": 43, "flags": 4}, + {"matrix": [7, 2], "x": 154, "y": 29, "flags": 4}, + {"matrix": [7, 3], "x": 158, "y": 20, "flags": 4}, + {"matrix": [7, 4], "x": 163, "y": 12, "flags": 4}, + {"matrix": [7, 5], "x": 168, "y": 4, "flags": 4}, + {"matrix": [8, 5], "x": 178, "y": 5, "flags": 4}, + {"matrix": [8, 4], "x": 173, "y": 12, "flags": 4}, + {"matrix": [8, 3], "x": 168, "y": 20, "flags": 4}, + {"matrix": [8, 2], "x": 163, "y": 28, "flags": 4}, + {"matrix": [8, 1], "x": 157, "y": 40, "flags": 4}, + {"matrix": [8, 0], "x": 151, "y": 55, "flags": 4}, + {"matrix": [9, 0], "x": 160, "y": 52, "flags": 4}, + {"matrix": [9, 1], "x": 166, "y": 39, "flags": 4}, + {"matrix": [9, 2], "x": 172, "y": 28, "flags": 4}, + {"matrix": [9, 3], "x": 177, "y": 20, "flags": 4}, + {"matrix": [9, 4], "x": 182, "y": 13, "flags": 4}, + {"matrix": [9, 5], "x": 188, "y": 7, "flags": 4}, + {"matrix": [10, 4], "x": 192, "y": 17, "flags": 4}, + {"matrix": [10, 3], "x": 186, "y": 23, "flags": 4}, + {"matrix": [10, 2], "x": 181, "y": 30, "flags": 4}, + {"matrix": [10, 1], "x": 175, "y": 39, "flags": 4}, + {"matrix": [10, 0], "x": 169, "y": 50, "flags": 4}, + {"matrix": [11, 0], "x": 178, "y": 51, "flags": 4}, + {"matrix": [11, 1], "x": 184, "y": 41, "flags": 4}, + {"matrix": [11, 2], "x": 190, "y": 33, "flags": 4}, + {"matrix": [11, 3], "x": 196, "y": 27, "flags": 4}, + {"matrix": [11, 4], "x": 199, "y": 37, "flags": 4}, + {"matrix": [11, 5], "x": 193, "y": 45, "flags": 4}, + {"matrix": [11, 6], "x": 187, "y": 53, "flags": 4}, + {"matrix": [10, 6], "x": 196, "y": 56, "flags": 4}, + {"matrix": [10, 5], "x": 202, "y": 49, "flags": 4}, + {"matrix": [9, 6], "x": 205, "y": 61, "flags": 4}, + {"matrix": [8, 6], "x": 202, "y": 4, "flags": 4}, + {"matrix": [0, 5], "x": 84, "y": 18, "flags": 4}, + {"matrix": [0, 4], "x": 73, "y": 13, "flags": 4}, + {"matrix": [0, 3], "x": 62, "y": 10, "flags": 4}, + {"matrix": [0, 2], "x": 51, "y": 8, "flags": 4}, + {"matrix": [0, 1], "x": 39, "y": 11, "flags": 4}, + {"matrix": [1, 0], "x": 24, "y": 22, "flags": 4}, + {"matrix": [1, 1], "x": 34, "y": 19, "flags": 4}, + {"matrix": [1, 2], "x": 45, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 18, "flags": 4}, + {"matrix": [1, 5], "x": 77, "y": 22, "flags": 4}, + {"matrix": [1, 6], "x": 87, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 92, "y": 40, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 24, "flags": 4}, + {"matrix": [2, 2], "x": 51, "y": 24, "flags": 4}, + {"matrix": [2, 1], "x": 41, "y": 24, "flags": 4}, + {"matrix": [2, 0], "x": 30, "y": 28, "flags": 4}, + {"matrix": [3, 0], "x": 24, "y": 42, "flags": 4}, + {"matrix": [3, 1], "x": 34, "y": 37, "flags": 4}, + {"matrix": [3, 2], "x": 44, "y": 35, "flags": 4}, + {"matrix": [3, 3], "x": 54, "y": 34, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 36, "flags": 4}, + {"matrix": [3, 5], "x": 74, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 84, "y": 44, "flags": 4}, + {"matrix": [4, 6], "x": 87, "y": 54, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 67, "y": 47, "flags": 4}, + {"matrix": [4, 3], "x": 57, "y": 45, "flags": 4}, + {"matrix": [4, 2], "x": 47, "y": 45, "flags": 4}, + {"matrix": [4, 1], "x": 37, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 27, "y": 52, "flags": 4}, + {"matrix": [0, 0], "x": 19, "y": 56, "flags": 4} + ], "max_brightness": 50, "sleep": true }, diff --git a/keyboards/blockboy/ac980mini/ac980mini.c b/keyboards/blockboy/ac980mini/ac980mini.c deleted file mode 100644 index b6a29f94ea..0000000000 --- a/keyboards/blockboy/ac980mini/ac980mini.c +++ /dev/null @@ -1,54 +0,0 @@ -/* Copyright 2022 rooski15 - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -// LED location configuration -led_config_t g_led_config = { { - - { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80 }, - { 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, NO_LED }, - { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED, 41, 42, 43, 44, 45 }, - { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, NO_LED, 24, 25, 26, 27, 28, NO_LED }, - { 0, 1, 2, NO_LED, NO_LED, 3, NO_LED, NO_LED, NO_LED, 4, 5, 6, 7, 8, 9, 10, 11, 12 } - -},{ - - // Physical X,Y coordinates of each LED, starting with LED 0 above. - { 1 , 64 }, { 16 , 64 }, { 31 , 64 }, { 75 , 64 }, { 123 , 64 }, { 132 , 64 }, { 144 , 64 }, { 159 , 64 }, { 171 , 64 }, { 183 , 64 }, { 198 , 64 }, { 210 , 64 }, { 224 , 64 }, - { 7 , 48 }, { 27 , 48 }, { 39 , 48 }, { 51 , 48 }, { 63 , 48 }, { 75 , 48 }, { 87 , 48 }, { 99 , 48 }, { 111 , 48 }, { 123 , 48 }, { 135 , 48 }, { 151 , 48 }, { 171 , 48 }, { 186 , 48 }, { 198 , 48 }, { 210 , 48 }, - { 4 , 36 }, { 20 , 36 }, { 32 , 36 }, { 44 , 36 }, { 56 , 36 }, { 68 , 36 }, { 80 , 36 }, { 92 , 36 }, { 104 , 36 }, { 116 , 36 }, { 128 , 36 }, { 140 , 36 }, { 160 , 36 }, { 186 , 36 }, { 198 , 36 }, { 210 , 36 }, { 224 , 36 }, - { 3 , 16 }, { 18 , 16 }, { 30 , 16 }, { 42 , 16 }, { 54 , 16 }, { 66 , 16 }, { 78 , 16 }, { 90 , 16 }, { 102 , 16 }, { 114 , 16 }, { 126 , 16 }, { 138 , 16 }, { 150 , 16 }, { 165 , 16 }, { 186 , 16 }, { 198 , 16 }, { 210 , 16 }, - { 0 , 0 }, { 12 , 0 }, { 24 , 0 }, { 36 , 0 }, { 48 , 0 }, { 60 , 0 }, { 72 , 0 }, { 84 , 0 }, { 96 , 0 }, { 108 , 0 }, { 120 , 0 }, { 132 , 0 }, { 144 , 0 }, { 162 , 0 }, { 186 , 0 }, { 198 , 0 }, { 210 , 0 }, { 224 , 0 }, - -},{ - // "Flag Assignment" of each key - // 4 = Alpha - // 1 = Mod - // See https://docs.qmk.fm/#/feature_rgb_matrix?id=flags - // No Caps / Num indicators - 1,1,1, 1, 1,1,1, 1,1,1, 4,4,1, - 1,4,4,4,4,4,4,4,4,4,4,1, 1, 4,4,4, - 1,4,4,4,4,4,4,4,4,4,4,4,1, 4,4,4,1, - 1,4,4,4,4,4,4,4,4,4,4,4,4,4, 4,4,4, - 1,4,4,4,4,4,4,4,4,4,4,4,4,1, 1,1,1,1 - -} }; -/* - -*/ -#endif \ No newline at end of file diff --git a/keyboards/blockboy/ac980mini/keyboard.json b/keyboards/blockboy/ac980mini/keyboard.json index ce261639e2..8df9c03dcc 100644 --- a/keyboards/blockboy/ac980mini/keyboard.json +++ b/keyboards/blockboy/ac980mini/keyboard.json @@ -74,6 +74,89 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [4, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 31, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 75, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 123, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 132, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 144, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 159, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 171, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 183, "y": 64, "flags": 1}, + {"matrix": [4, 15], "x": 198, "y": 64, "flags": 4}, + {"matrix": [4, 16], "x": 210, "y": 64, "flags": 4}, + {"matrix": [4, 17], "x": 224, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 7, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 27, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 39, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 51, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 63, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 87, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 99, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 111, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 123, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 135, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 151, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 171, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 186, "y": 48, "flags": 4}, + {"matrix": [3, 15], "x": 198, "y": 48, "flags": 4}, + {"matrix": [3, 16], "x": 210, "y": 48, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 36, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 36, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 36, "flags": 4}, + {"matrix": [2, 3], "x": 44, "y": 36, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 36, "flags": 4}, + {"matrix": [2, 5], "x": 68, "y": 36, "flags": 4}, + {"matrix": [2, 6], "x": 80, "y": 36, "flags": 4}, + {"matrix": [2, 7], "x": 92, "y": 36, "flags": 4}, + {"matrix": [2, 8], "x": 104, "y": 36, "flags": 4}, + {"matrix": [2, 9], "x": 116, "y": 36, "flags": 4}, + {"matrix": [2, 10], "x": 128, "y": 36, "flags": 4}, + {"matrix": [2, 11], "x": 140, "y": 36, "flags": 4}, + {"matrix": [2, 13], "x": 160, "y": 36, "flags": 1}, + {"matrix": [2, 14], "x": 186, "y": 36, "flags": 4}, + {"matrix": [2, 15], "x": 198, "y": 36, "flags": 4}, + {"matrix": [2, 16], "x": 210, "y": 36, "flags": 4}, + {"matrix": [2, 17], "x": 224, "y": 36, "flags": 1}, + {"matrix": [1, 0], "x": 3, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 18, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 30, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 42, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 54, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 66, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 90, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 102, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 114, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 126, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 138, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 150, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 165, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 186, "y": 16, "flags": 4}, + {"matrix": [1, 15], "x": 198, "y": 16, "flags": 4}, + {"matrix": [1, 16], "x": 210, "y": 16, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 12, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 36, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 72, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 108, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 162, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 186, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 210, "y": 0, "flags": 1}, + {"matrix": [0, 17], "x": 224, "y": 0, "flags": 1} + ], "sat_steps": 8, "val_steps": 8, "max_brightness": 150, diff --git a/keyboards/boston_meetup/2019/2019.c b/keyboards/boston_meetup/2019/2019.c index 1097c58de2..87ce108bc3 100644 --- a/keyboards/boston_meetup/2019/2019.c +++ b/keyboards/boston_meetup/2019/2019.c @@ -15,21 +15,6 @@ */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -#include "rgb_matrix.h" - -led_config_t g_led_config = { { - { 5, NO_LED, NO_LED, 0 }, - { NO_LED, NO_LED, NO_LED, NO_LED }, - { 4, NO_LED, NO_LED, 1 }, - { 3, NO_LED, NO_LED, 2 } -}, { - { 188, 16 }, { 187, 48 }, { 149, 64 }, { 112, 64 }, { 37, 48 }, { 38, 16 } -}, { - 4, 4, 4, 4, 4, 4 -} }; -#endif - #ifdef OLED_ENABLE oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_180; } diff --git a/keyboards/boston_meetup/2019/keyboard.json b/keyboards/boston_meetup/2019/keyboard.json index 4f07e0c631..c56a8f6c06 100644 --- a/keyboards/boston_meetup/2019/keyboard.json +++ b/keyboards/boston_meetup/2019/keyboard.json @@ -20,7 +20,15 @@ "driver": "drv2605l" }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 3], "x": 188, "y": 16, "flags": 4}, + {"matrix": [2, 3], "x": 187, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 149, "y": 64, "flags": 4}, + {"matrix": [3, 0], "x": 112, "y": 64, "flags": 4}, + {"matrix": [2, 0], "x": 37, "y": 48, "flags": 4}, + {"matrix": [0, 0], "x": 38, "y": 16, "flags": 4} + ] }, "matrix_pins": { "cols": ["A7", "A8", "B2", "B10"], diff --git a/keyboards/canary/canary60rgb/v1/keyboard.json b/keyboards/canary/canary60rgb/v1/keyboard.json index a1247769e6..de2daaf00d 100644 --- a/keyboards/canary/canary60rgb/v1/keyboard.json +++ b/keyboards/canary/canary60rgb/v1/keyboard.json @@ -73,6 +73,71 @@ "pixel_rain": true }, "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 208, "y": 48, "flags": 1}, + {"matrix": [3, 10], "x": 186, "y": 48, "flags": 1}, + {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 208, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 192, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 176, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1} + ], "sleep": true }, "matrix_pins": { diff --git a/keyboards/canary/canary60rgb/v1/v1.c b/keyboards/canary/canary60rgb/v1/v1.c index b14878ff22..a6e9dea796 100644 --- a/keyboards/canary/canary60rgb/v1/v1.c +++ b/keyboards/canary/canary60rgb/v1/v1.c @@ -86,28 +86,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW10_CS16, SW11_CS16, SW12_CS16 } }; -led_config_t g_led_config = { - { - { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }, - { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, - { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 }, - { 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, NO_LED, 41 }, - { 62, 61, 60, NO_LED, NO_LED, 59, NO_LED, NO_LED, 58, 57, 56, 55, NO_LED, 54 } - }, { - { 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 }, - { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 }, - { 214, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, - { 224, 48 }, { 208, 48 }, { 186, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 36, 48 }, { 9, 48 }, - { 224, 64 }, { 208, 64 }, { 192, 64 }, { 176, 64 }, { 160, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 } - }, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 4, 1, 1, 1 - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/capsunlocked/cu80/v2/ansi/ansi.c b/keyboards/capsunlocked/cu80/v2/ansi/ansi.c deleted file mode 100644 index 2d4055d984..0000000000 --- a/keyboards/capsunlocked/cu80/v2/ansi/ansi.c +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2021 CapsUnlocked -// SPDX-License-Identifier: GPL-2.0-or-later -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - {0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, - {32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16}, - {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49}, - {62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, NO_LED, NO_LED, NO_LED, NO_LED}, - {63, NO_LED, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, NO_LED, NO_LED, 75, NO_LED}, - {86, 85, 84, NO_LED, NO_LED, 83, NO_LED, NO_LED, NO_LED, 82, 81, 80, 79, 78, NO_LED, 77, 76} - }, { - {0, 0}, {28, 0}, {42, 0}, {56, 0}, {71, 0}, {85, 0}, {99, 0}, {113, 0}, {127, 0}, {141, 0}, {155, 0}, {169, 0}, {184, 0}, {198, 0}, {212, 0}, {226, 0}, {226, 13}, {212, 13}, {198, 13}, {184, 13}, {169, 13}, {155, 13}, {141, 13}, {127, 13}, {113, 13}, {99, 13}, {85, 13}, {71, 13}, {56, 13}, {42, 13}, {28, 13}, {14, 13}, {0, 13}, {0, 26}, {14, 26}, {28, 26}, {42, 26}, {56, 26}, {71, 26}, {85, 26}, {99, 26}, {113, 26}, {127, 26}, {141, 26}, {155, 26}, {169, 26}, {184, 26}, {198, 26}, {212, 26}, {226, 26}, {169, 38}, {155, 38}, {141, 38}, {127, 38}, {113, 38}, {99, 38}, {85, 38}, {71, 38}, {56, 38}, {42, 38}, {28, 38}, {14, 38}, {0, 38}, {0, 51}, {28, 51}, {42, 51}, {56, 51}, {71, 51}, {85, 51}, {99, 51}, {113, 51}, {127, 51}, {141, 51}, {155, 51}, {169, 51}, {212, 51}, {226, 64}, {212, 64}, {184, 64}, {169, 64}, {155, 64}, {141, 64}, {127, 64}, {71, 64}, {28, 64}, {14, 64}, {0, 64} - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 1 - } -}; -#endif diff --git a/keyboards/capsunlocked/cu80/v2/ansi/keyboard.json b/keyboards/capsunlocked/cu80/v2/ansi/keyboard.json index 9dc24b5e40..fe38c3dff8 100644 --- a/keyboards/capsunlocked/cu80/v2/ansi/keyboard.json +++ b/keyboards/capsunlocked/cu80/v2/ansi/keyboard.json @@ -2,5 +2,96 @@ "keyboard_name": "CU80 v2 ANSI", "usb": { "pid": "0x0081" + }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 71, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 85, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 99, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 113, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 127, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 141, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 155, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 169, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 184, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 212, "y": 0, "flags": 8}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 16], "x": 224, "y": 13, "flags": 4}, + {"matrix": [1, 15], "x": 212, "y": 13, "flags": 4}, + {"matrix": [1, 14], "x": 198, "y": 13, "flags": 4}, + {"matrix": [1, 13], "x": 184, "y": 13, "flags": 4}, + {"matrix": [1, 12], "x": 169, "y": 13, "flags": 4}, + {"matrix": [1, 11], "x": 155, "y": 13, "flags": 4}, + {"matrix": [1, 10], "x": 141, "y": 13, "flags": 4}, + {"matrix": [1, 9], "x": 127, "y": 13, "flags": 4}, + {"matrix": [1, 8], "x": 113, "y": 13, "flags": 4}, + {"matrix": [1, 7], "x": 99, "y": 13, "flags": 4}, + {"matrix": [1, 6], "x": 85, "y": 13, "flags": 4}, + {"matrix": [1, 5], "x": 71, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 56, "y": 13, "flags": 4}, + {"matrix": [1, 3], "x": 42, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 28, "y": 13, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 13, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 14, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 28, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 99, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 113, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 127, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 141, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 155, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 184, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 212, "y": 26, "flags": 4}, + {"matrix": [2, 16], "x": 224, "y": 26, "flags": 4}, + {"matrix": [3, 12], "x": 169, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 155, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 141, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 113, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 99, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 85, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 71, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 42, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 28, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 14, "y": 38, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 8}, + {"matrix": [4, 0], "x": 0, "y": 51, "flags": 1}, + {"matrix": [4, 2], "x": 28, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 56, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 71, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 85, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 99, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 113, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 127, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 141, "y": 51, "flags": 4}, + {"matrix": [4, 11], "x": 155, "y": 51, "flags": 4}, + {"matrix": [4, 12], "x": 169, "y": 51, "flags": 1}, + {"matrix": [4, 15], "x": 212, "y": 51, "flags": 4}, + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 4}, + {"matrix": [5, 15], "x": 212, "y": 64, "flags": 4}, + {"matrix": [5, 13], "x": 184, "y": 64, "flags": 4}, + {"matrix": [5, 12], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 155, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 141, "y": 64, "flags": 1}, + {"matrix": [5, 9], "x": 127, "y": 64, "flags": 1}, + {"matrix": [5, 5], "x": 71, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 28, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1} + ] } } diff --git a/keyboards/capsunlocked/cu80/v2/iso/iso.c b/keyboards/capsunlocked/cu80/v2/iso/iso.c deleted file mode 100644 index 0e8e26e5dd..0000000000 --- a/keyboards/capsunlocked/cu80/v2/iso/iso.c +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright 2021 CapsUnlocked -// SPDX-License-Identifier: GPL-2.0-or-later -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - {0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, - {32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16}, - {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49}, - {62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, NO_LED, NO_LED, NO_LED, NO_LED}, - {63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, NO_LED, NO_LED, 76, NO_LED}, - {87, 86, 85, NO_LED, NO_LED, 84, NO_LED, NO_LED, NO_LED, 83, 82, 81, 80, 79, NO_LED, 78, 77} - }, { - {0, 0}, {28, 0}, {42, 0}, {56, 0}, {71, 0}, {85, 0}, {99, 0}, {113, 0}, {127, 0}, {141, 0}, {155, 0}, {169, 0}, {184, 0}, {198, 0}, {212, 0}, {226, 0}, {226, 26}, {212, 26}, {198, 26}, {184, 26}, {169, 26}, {155, 26}, {141, 26}, {127, 26}, {113, 26}, {99, 26}, {85, 26}, {71, 26}, {56, 26}, {42, 26}, {28, 26}, {14, 26}, {0, 26}, {0, 26}, {14, 26}, {28, 26}, {42, 26}, {56, 26}, {71, 26}, {85, 26}, {99, 26}, {113, 26}, {127, 26}, {141, 26}, {155, 26}, {169, 26}, {184, 26}, {198, 26}, {212, 26}, {226, 26}, {169, 38}, {155, 38}, {141, 38}, {127, 38}, {113, 38}, {99, 38}, {85, 38}, {71, 38}, {56, 38}, {42, 38}, {28, 38}, {14, 38}, {0, 38}, {0, 51}, {14, 51}, {28, 51}, {42, 51}, {56, 51}, {71, 51}, {85, 51}, {99, 51}, {113, 51}, {127, 51}, {141, 51}, {155, 51}, {169, 51}, {212, 51}, {226, 64}, {212, 64}, {184, 64}, {169, 64}, {155, 64}, {141, 64}, {127, 64}, {71, 64}, {28, 64}, {14, 64}, {0, 64} - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 1 - } -}; -#endif diff --git a/keyboards/capsunlocked/cu80/v2/iso/keyboard.json b/keyboards/capsunlocked/cu80/v2/iso/keyboard.json index 33d49db64a..b78b8af41e 100644 --- a/keyboards/capsunlocked/cu80/v2/iso/keyboard.json +++ b/keyboards/capsunlocked/cu80/v2/iso/keyboard.json @@ -2,5 +2,97 @@ "keyboard_name": "CU80 v2 ISO", "usb": { "pid": "0x0083" + }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 71, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 85, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 99, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 113, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 127, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 141, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 155, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 169, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 184, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 212, "y": 0, "flags": 8}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 16], "x": 224, "y": 26, "flags": 4}, + {"matrix": [1, 15], "x": 212, "y": 26, "flags": 4}, + {"matrix": [1, 14], "x": 198, "y": 26, "flags": 4}, + {"matrix": [1, 13], "x": 184, "y": 26, "flags": 4}, + {"matrix": [1, 12], "x": 169, "y": 26, "flags": 4}, + {"matrix": [1, 11], "x": 155, "y": 26, "flags": 4}, + {"matrix": [1, 10], "x": 141, "y": 26, "flags": 4}, + {"matrix": [1, 9], "x": 127, "y": 26, "flags": 4}, + {"matrix": [1, 8], "x": 113, "y": 26, "flags": 4}, + {"matrix": [1, 7], "x": 99, "y": 26, "flags": 4}, + {"matrix": [1, 6], "x": 85, "y": 26, "flags": 4}, + {"matrix": [1, 5], "x": 71, "y": 26, "flags": 4}, + {"matrix": [1, 4], "x": 56, "y": 26, "flags": 4}, + {"matrix": [1, 3], "x": 42, "y": 26, "flags": 4}, + {"matrix": [1, 2], "x": 28, "y": 26, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 26, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 26, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 14, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 28, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 99, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 113, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 127, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 141, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 155, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 184, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 212, "y": 26, "flags": 4}, + {"matrix": [2, 16], "x": 224, "y": 26, "flags": 4}, + {"matrix": [3, 12], "x": 169, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 155, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 141, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 113, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 99, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 85, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 71, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 42, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 28, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 14, "y": 38, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 8}, + {"matrix": [4, 0], "x": 0, "y": 51, "flags": 1}, + {"matrix": [4, 1], "x": 14, "y": 51, "flags": 4}, + {"matrix": [4, 2], "x": 28, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 56, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 71, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 85, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 99, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 113, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 127, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 141, "y": 51, "flags": 4}, + {"matrix": [4, 11], "x": 155, "y": 51, "flags": 4}, + {"matrix": [4, 12], "x": 169, "y": 51, "flags": 1}, + {"matrix": [4, 15], "x": 212, "y": 51, "flags": 4}, + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 4}, + {"matrix": [5, 15], "x": 212, "y": 64, "flags": 4}, + {"matrix": [5, 13], "x": 184, "y": 64, "flags": 4}, + {"matrix": [5, 12], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 155, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 141, "y": 64, "flags": 1}, + {"matrix": [5, 9], "x": 127, "y": 64, "flags": 1}, + {"matrix": [5, 5], "x": 71, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 28, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1} + ] } } diff --git a/keyboards/checkerboards/quark_lp/keyboard.json b/keyboards/checkerboards/quark_lp/keyboard.json index 7634a71d3e..59666f8d69 100644 --- a/keyboards/checkerboards/quark_lp/keyboard.json +++ b/keyboards/checkerboards/quark_lp/keyboard.json @@ -32,6 +32,59 @@ "pixel_flow": true }, "driver": "ws2812", + "layout": [ + {"matrix": [3, 11], "x": 224, "y": 64, "flags": 1}, + {"matrix": [3, 10], "x": 204, "y": 64, "flags": 1}, + {"matrix": [3, 9], "x": 183, "y": 64, "flags": 1}, + {"matrix": [3, 8], "x": 163, "y": 64, "flags": 1}, + {"x": 153, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 143, "y": 64, "flags": 1}, + {"x": 133, "y": 64, "flags": 1}, + {"matrix": [3, 6], "x": 123, "y": 64, "flags": 1}, + {"x": 113, "y": 64, "flags": 1}, + {"matrix": [3, 5], "x": 102, "y": 64, "flags": 1}, + {"matrix": [3, 4], "x": 82, "y": 64, "flags": 1}, + {"matrix": [3, 3], "x": 61, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 41, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 43, "flags": 1}, + {"matrix": [2, 1], "x": 21, "y": 43, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 43, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 43, "flags": 4}, + {"matrix": [2, 4], "x": 82, "y": 43, "flags": 4}, + {"matrix": [2, 5], "x": 102, "y": 43, "flags": 4}, + {"matrix": [2, 6], "x": 123, "y": 43, "flags": 4}, + {"matrix": [2, 7], "x": 143, "y": 43, "flags": 4}, + {"matrix": [2, 8], "x": 163, "y": 43, "flags": 4}, + {"matrix": [2, 9], "x": 183, "y": 43, "flags": 4}, + {"matrix": [2, 10], "x": 204, "y": 43, "flags": 4}, + {"matrix": [2, 11], "x": 224, "y": 43, "flags": 1}, + {"matrix": [1, 11], "x": 224, "y": 21, "flags": 1}, + {"matrix": [1, 10], "x": 204, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 163, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 143, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 123, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 102, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 82, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 41, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 21, "y": 21, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 21, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 41, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 82, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 102, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 123, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 143, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 163, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 204, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 224, "y": 0, "flags": 1} + ], "max_brightness": 125, "sat_steps": 8, "val_steps": 8, diff --git a/keyboards/checkerboards/quark_lp/quark_lp.c b/keyboards/checkerboards/quark_lp/quark_lp.c deleted file mode 100644 index 89c685f2b5..0000000000 --- a/keyboards/checkerboards/quark_lp/quark_lp.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2021 Nathan Spears - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50 }, - { 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26 }, - { 14, 13, 12, 11, 10, 9, 7, 5, 3, 2, 1, 0 } -}, { - // LED Index to Physical Position - { 244, 0 }, { 224, 0 }, { 203, 0 }, { 183, 0 }, { 173, 0 }, { 163, 0 }, { 153, 0 }, { 143, 0 }, { 133, 0 }, { 122, 0 }, { 102, 0 }, { 81, 0 }, { 61, 0 }, { 41, 0 }, { 20, 0 }, - { 20, 21 }, { 41, 21 }, { 61, 21 }, { 81, 21 }, { 102, 21 }, { 122, 21 }, { 143, 21 }, { 163, 21 }, { 183, 21 }, { 203, 21 }, { 224, 21 }, { 244, 21 }, - { 244, 43 }, { 224, 43 }, { 203, 43 }, { 183, 43 }, { 163, 43 }, { 143, 43 }, { 122, 43 }, { 102, 43 }, { 81, 43 }, { 61, 43 }, { 41, 43 }, { 20, 43 }, - { 20, 64 }, { 41, 64 }, { 61, 64 }, { 81, 64 }, { 102, 64 }, { 112, 64 }, { 122, 64 }, { 132, 64 }, { 143, 64 }, { 153, 64 }, { 163, 64 }, { 183, 64 } -}, { - // LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1 -} }; -#endif diff --git a/keyboards/cherrybstudio/cb87rgb/cb87rgb.c b/keyboards/cherrybstudio/cb87rgb/cb87rgb.c index 5c2480f3fb..40ef6d6506 100644 --- a/keyboards/cherrybstudio/cb87rgb/cb87rgb.c +++ b/keyboards/cherrybstudio/cb87rgb/cb87rgb.c @@ -13,41 +13,7 @@ along with this program. If not, see . #include "quantum.h" -//x = 224 / (NUMBER_OF_COLS - 1) * COL_POSITION -//y = 64 / (NUMBER_OF_ROWS - 1) * ROW_POSITION - #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, - { 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39 }, - { 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 }, - { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59 }, - { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69 }, - { 70, 71, 72, 73, 74, 75, 76, 77, 78, 79 }, - { 80, 81, 82, 83, 84, 85, 86, 87, 88, 89 }, - { 90, 91, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } -}, { - // LED Index to Physical Position - { 0, 0 }, { 13, 0 }, { 26, 0 }, { 39, 0 }, { 52, 0 }, { 65, 0 }, { 78, 0 }, { 91, 0 }, { 104, 0 }, { 117, 0 }, { 130, 0 }, { 143, 0 }, { 156, 0 }, { 195, 0 }, { 208, 0 }, { 224, 0 }, - { 0, 12 }, { 13, 12 }, { 26, 12 }, { 39, 12 }, { 52, 12 }, { 65, 12 }, { 78, 12 }, { 91, 12 }, { 104, 12 }, { 117, 12 }, { 130, 12 }, { 143, 12 }, { 156, 12 }, { 169, 12 }, { 182, 24 }, { 195, 12 }, { 208, 12 }, { 224, 12 }, - { 0, 24 }, { 13, 24 }, { 26, 24 }, { 39, 24 }, { 52, 24 }, { 65, 24 }, { 78, 24 }, { 91, 24 }, { 104, 24 }, { 117, 24 }, { 130, 24 }, { 143, 24 }, { 156, 24 }, { 169, 24 }, { 195, 24 }, { 208, 24 }, { 224, 24 }, - { 0, 36 }, { 13, 36 }, { 26, 36 }, { 39, 36 }, { 52, 36 }, { 65, 36 }, { 78, 36 }, { 91, 36 }, { 104, 36 }, { 117, 36 }, { 130, 36 }, { 143, 36 }, { 156, 36 }, { 169, 36 }, - { 0, 48 }, { 13, 48 }, { 26, 48 }, { 39, 48 }, { 52, 48 }, { 65, 48 }, { 78, 48 }, { 91, 48 }, { 104, 48 }, { 117, 48 }, { 130, 48 }, { 143, 48 }, { 156, 48 }, { 169, 48 }, { 208, 48 }, - { 0, 64 }, { 13, 64 }, { 26, 64 }, { 78, 64 }, { 130, 64 }, { 143, 64 }, { 156, 64 }, { 169, 64 }, { 195, 64 }, { 208, 64 }, { 224, 64 }, { 182, 0 } -}, { - // LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/cherrybstudio/cb87rgb/keyboard.json b/keyboards/cherrybstudio/cb87rgb/keyboard.json index 1ce2fab78f..710bc2ab50 100644 --- a/keyboards/cherrybstudio/cb87rgb/keyboard.json +++ b/keyboards/cherrybstudio/cb87rgb/keyboard.json @@ -53,6 +53,100 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 13, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 26, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 39, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 65, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 91, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 104, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 117, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 130, "y": 0, "flags": 1}, + {"matrix": [1, 1], "x": 143, "y": 0, "flags": 1}, + {"matrix": [1, 2], "x": 156, "y": 0, "flags": 1}, + {"matrix": [1, 3], "x": 195, "y": 0, "flags": 1}, + {"matrix": [1, 4], "x": 208, "y": 0, "flags": 1}, + {"matrix": [1, 5], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 6], "x": 0, "y": 12, "flags": 1}, + {"matrix": [1, 7], "x": 13, "y": 12, "flags": 1}, + {"matrix": [1, 8], "x": 26, "y": 12, "flags": 1}, + {"matrix": [1, 9], "x": 39, "y": 12, "flags": 1}, + {"matrix": [2, 0], "x": 52, "y": 12, "flags": 1}, + {"matrix": [2, 1], "x": 65, "y": 12, "flags": 1}, + {"matrix": [2, 2], "x": 78, "y": 12, "flags": 1}, + {"matrix": [2, 3], "x": 91, "y": 12, "flags": 1}, + {"matrix": [2, 4], "x": 104, "y": 12, "flags": 1}, + {"matrix": [2, 5], "x": 117, "y": 12, "flags": 1}, + {"matrix": [2, 6], "x": 130, "y": 12, "flags": 1}, + {"matrix": [2, 7], "x": 143, "y": 12, "flags": 1}, + {"matrix": [2, 8], "x": 156, "y": 12, "flags": 1}, + {"matrix": [2, 9], "x": 169, "y": 12, "flags": 1}, + {"matrix": [3, 0], "x": 182, "y": 24, "flags": 1}, + {"matrix": [3, 1], "x": 195, "y": 12, "flags": 1}, + {"matrix": [3, 2], "x": 208, "y": 12, "flags": 1}, + {"matrix": [3, 3], "x": 224, "y": 12, "flags": 1}, + {"matrix": [3, 4], "x": 0, "y": 24, "flags": 1}, + {"matrix": [3, 5], "x": 13, "y": 24, "flags": 1}, + {"matrix": [3, 6], "x": 26, "y": 24, "flags": 1}, + {"matrix": [3, 7], "x": 39, "y": 24, "flags": 1}, + {"matrix": [3, 8], "x": 52, "y": 24, "flags": 1}, + {"matrix": [3, 9], "x": 65, "y": 24, "flags": 1}, + {"matrix": [4, 0], "x": 78, "y": 24, "flags": 1}, + {"matrix": [4, 1], "x": 91, "y": 24, "flags": 1}, + {"matrix": [4, 2], "x": 104, "y": 24, "flags": 1}, + {"matrix": [4, 3], "x": 117, "y": 24, "flags": 1}, + {"matrix": [4, 4], "x": 130, "y": 24, "flags": 1}, + {"matrix": [4, 5], "x": 143, "y": 24, "flags": 1}, + {"matrix": [4, 6], "x": 156, "y": 24, "flags": 1}, + {"matrix": [4, 7], "x": 169, "y": 24, "flags": 1}, + {"matrix": [4, 8], "x": 195, "y": 24, "flags": 1}, + {"matrix": [4, 9], "x": 208, "y": 24, "flags": 1}, + {"matrix": [5, 0], "x": 224, "y": 24, "flags": 1}, + {"matrix": [5, 1], "x": 0, "y": 36, "flags": 1}, + {"matrix": [5, 2], "x": 13, "y": 36, "flags": 1}, + {"matrix": [5, 3], "x": 26, "y": 36, "flags": 1}, + {"matrix": [5, 4], "x": 39, "y": 36, "flags": 1}, + {"matrix": [5, 5], "x": 52, "y": 36, "flags": 1}, + {"matrix": [5, 6], "x": 65, "y": 36, "flags": 1}, + {"matrix": [5, 7], "x": 78, "y": 36, "flags": 1}, + {"matrix": [5, 8], "x": 91, "y": 36, "flags": 1}, + {"matrix": [5, 9], "x": 104, "y": 36, "flags": 1}, + {"matrix": [6, 0], "x": 117, "y": 36, "flags": 1}, + {"matrix": [6, 1], "x": 130, "y": 36, "flags": 1}, + {"matrix": [6, 2], "x": 143, "y": 36, "flags": 1}, + {"matrix": [6, 3], "x": 156, "y": 36, "flags": 1}, + {"matrix": [6, 4], "x": 169, "y": 36, "flags": 1}, + {"matrix": [6, 5], "x": 0, "y": 48, "flags": 1}, + {"matrix": [6, 6], "x": 13, "y": 48, "flags": 1}, + {"matrix": [6, 7], "x": 26, "y": 48, "flags": 1}, + {"matrix": [6, 8], "x": 39, "y": 48, "flags": 1}, + {"matrix": [6, 9], "x": 52, "y": 48, "flags": 1}, + {"matrix": [7, 0], "x": 65, "y": 48, "flags": 1}, + {"matrix": [7, 1], "x": 78, "y": 48, "flags": 1}, + {"matrix": [7, 2], "x": 91, "y": 48, "flags": 1}, + {"matrix": [7, 3], "x": 104, "y": 48, "flags": 1}, + {"matrix": [7, 4], "x": 117, "y": 48, "flags": 1}, + {"matrix": [7, 5], "x": 130, "y": 48, "flags": 1}, + {"matrix": [7, 6], "x": 143, "y": 48, "flags": 1}, + {"matrix": [7, 7], "x": 156, "y": 48, "flags": 1}, + {"matrix": [7, 8], "x": 169, "y": 48, "flags": 1}, + {"matrix": [7, 9], "x": 208, "y": 48, "flags": 1}, + {"matrix": [8, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [8, 1], "x": 13, "y": 64, "flags": 1}, + {"matrix": [8, 2], "x": 26, "y": 64, "flags": 1}, + {"matrix": [8, 3], "x": 78, "y": 64, "flags": 1}, + {"matrix": [8, 4], "x": 130, "y": 64, "flags": 1}, + {"matrix": [8, 5], "x": 143, "y": 64, "flags": 1}, + {"matrix": [8, 6], "x": 156, "y": 64, "flags": 1}, + {"matrix": [8, 7], "x": 169, "y": 64, "flags": 1}, + {"matrix": [8, 8], "x": 195, "y": 64, "flags": 1}, + {"matrix": [8, 9], "x": 208, "y": 64, "flags": 1}, + {"matrix": [9, 0], "x": 224, "y": 64, "flags": 1}, + {"matrix": [9, 1], "x": 182, "y": 0, "flags": 1} + ], "max_brightness": 200, "sleep": true }, diff --git a/keyboards/concreteflowers/cor_tkl/cor_tkl.c b/keyboards/concreteflowers/cor_tkl/cor_tkl.c index d4f0ec0082..a90931439b 100644 --- a/keyboards/concreteflowers/cor_tkl/cor_tkl.c +++ b/keyboards/concreteflowers/cor_tkl/cor_tkl.c @@ -16,22 +16,6 @@ #include "quantum.h" -led_config_t g_led_config = {{ - // Key Matrix to LED Index - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 1, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { 0, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } -}, { - // LED Index to Physical Position - { 5, 40 }, { 211, 0 } -}, { - // LED Index to Flag - LED_FLAG_INDICATOR, LED_FLAG_INDICATOR -}}; - 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; diff --git a/keyboards/concreteflowers/cor_tkl/keyboard.json b/keyboards/concreteflowers/cor_tkl/keyboard.json index d5a293eaa3..ccdd0935fa 100644 --- a/keyboards/concreteflowers/cor_tkl/keyboard.json +++ b/keyboards/concreteflowers/cor_tkl/keyboard.json @@ -32,7 +32,11 @@ "rows": ["GP0", "GP1", "GP2", "GP21", "GP3", "GP4"] }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 8} + ] }, "ws2812": { "pin": "GP19", From 330d195f9a6880ee2212be512ab9e2ae5765f733 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 02:58:45 -0600 Subject: [PATCH 024/255] Migrate `g_led_config` to DD (D) (#25560) --- keyboards/deng/djam/djam.c | 43 --------- keyboards/deng/djam/keyboard.json | 35 +++++++- keyboards/deng/thirty/keyboard.json | 32 +++++++ keyboards/deng/thirty/thirty.c | 32 ------- keyboards/doro67/rgb/keyboard.json | 71 ++++++++++++++- keyboards/doro67/rgb/rgb.c | 46 ---------- keyboards/dotmod/dymium65/dymium65.c | 24 ----- keyboards/dotmod/dymium65/keyboard.json | 68 ++++++++++++++ keyboards/dtisaac/dosa40rgb/dosa40rgb.c | 39 -------- keyboards/dtisaac/dosa40rgb/keyboard.json | 44 ++++++++++ keyboards/dumbpad/v3x/keyboard.json | 18 ++++ keyboards/dumbpad/v3x/v3x.c | 30 ------- keyboards/durgod/dgk6x/galaxy/galaxy.c | 25 +----- keyboards/durgod/dgk6x/galaxy/keyboard.json | 88 +++++++++++++++++++ .../durgod/dgk6x/hades_ansi/hades_ansi.c | 22 +---- .../durgod/dgk6x/hades_ansi/keyboard.json | 72 +++++++++++++++ keyboards/durgod/dgk6x/venus/keyboard.json | 65 ++++++++++++++ keyboards/durgod/dgk6x/venus/venus.c | 20 ----- keyboards/dztech/dz60rgb/dz60rgb.c | 22 ----- keyboards/dztech/dz60rgb/info.json | 67 ++++++++++++++ keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c | 22 ----- keyboards/dztech/dz60rgb_ansi/info.json | 65 ++++++++++++++ keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c | 22 ----- keyboards/dztech/dz60rgb_wkl/info.json | 66 ++++++++++++++ keyboards/dztech/dz64rgb/dz64rgb.c | 23 ----- keyboards/dztech/dz64rgb/keyboard.json | 66 ++++++++++++++ keyboards/dztech/dz65rgb/v1/keyboard.json | 70 +++++++++++++++ keyboards/dztech/dz65rgb/v1/v1.c | 23 ----- keyboards/dztech/dz65rgb/v2/keyboard.json | 70 +++++++++++++++ keyboards/dztech/dz65rgb/v2/v2.c | 23 ----- keyboards/dztech/dz65rgb/v3/keyboard.json | 70 +++++++++++++++ keyboards/dztech/dz65rgb/v3/v3.c | 20 ----- 32 files changed, 967 insertions(+), 436 deletions(-) delete mode 100644 keyboards/deng/djam/djam.c delete mode 100644 keyboards/doro67/rgb/rgb.c delete mode 100644 keyboards/dtisaac/dosa40rgb/dosa40rgb.c diff --git a/keyboards/deng/djam/djam.c b/keyboards/deng/djam/djam.c deleted file mode 100644 index 3514ff050c..0000000000 --- a/keyboards/deng/djam/djam.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright 2022 Leo Deng (@myst729) - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - /* Key Matrix to LED Index */ - { 17, 16, 15, NO_LED, NO_LED, 7, 6, 5 }, - { 21, 17, 16, 15, 7, 6, 5, 1 }, - { 19, 18, 13, 11, 9, 4, 3, NO_LED } - }, - { - /* LED Index to Physical Position */ - // Switch LEDs - {224,14}, {224,24}, {224,33}, {212,57}, {192,57}, {192,38}, {172,38}, {152,38}, - {152,57}, {142,57}, {132,57}, {112,57}, {92,57}, {82,57}, {72,57}, - {72,38}, {52,38}, {32,38}, {32,57}, {12,57}, {0,33}, {0,24}, {0,14}, - // Underglow LEDs - {0,0}, {92,0}, {132,0}, {224,0}, {222,64}, {172,64}, {72,64}, {2,64}, - }, - { - /* LED Index to Flag */ - 2, 4, 2, 4, 4, 4, 4, 4, - 2, 4, 2, 4, 2, 4, 2, - 4, 4, 4, 4, 4, 2, 4, 2, - 2, 2, 2, 2, 2, 2, 2, 2 - } -}; -#endif diff --git a/keyboards/deng/djam/keyboard.json b/keyboards/deng/djam/keyboard.json index a39c234bfa..51b2f45ce7 100644 --- a/keyboards/deng/djam/keyboard.json +++ b/keyboards/deng/djam/keyboard.json @@ -15,7 +15,40 @@ "solid_reactive_multinexus": true, "solid_multisplash": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"x": 224, "y": 14, "flags": 2}, + {"matrix": [1, 7], "x": 224, "y": 24, "flags": 4}, + {"x": 224, "y": 33, "flags": 2}, + {"matrix": [2, 6], "x": 212, "y": 57, "flags": 4}, + {"matrix": [2, 5], "x": 192, "y": 57, "flags": 4}, + {"matrix": [1, 6], "x": 192, "y": 38, "flags": 4}, + {"matrix": [1, 5], "x": 172, "y": 38, "flags": 4}, + {"matrix": [1, 4], "x": 152, "y": 38, "flags": 4}, + {"x": 152, "y": 57, "flags": 2}, + {"matrix": [2, 4], "x": 142, "y": 57, "flags": 4}, + {"x": 132, "y": 57, "flags": 2}, + {"matrix": [2, 3], "x": 112, "y": 57, "flags": 4}, + {"x": 92, "y": 57, "flags": 2}, + {"matrix": [2, 2], "x": 82, "y": 57, "flags": 4}, + {"x": 72, "y": 57, "flags": 2}, + {"matrix": [1, 3], "x": 72, "y": 38, "flags": 4}, + {"matrix": [1, 2], "x": 52, "y": 38, "flags": 4}, + {"matrix": [1, 1], "x": 32, "y": 38, "flags": 4}, + {"matrix": [2, 1], "x": 32, "y": 57, "flags": 4}, + {"matrix": [2, 0], "x": 12, "y": 57, "flags": 4}, + {"x": 0, "y": 33, "flags": 2}, + {"matrix": [1, 0], "x": 0, "y": 24, "flags": 4}, + {"x": 0, "y": 14, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 92, "y": 0, "flags": 2}, + {"x": 132, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 222, "y": 64, "flags": 2}, + {"x": 172, "y": 64, "flags": 2}, + {"x": 72, "y": 64, "flags": 2}, + {"x": 2, "y": 64, "flags": 2} + ] }, "features": { "backlight": true, diff --git a/keyboards/deng/thirty/keyboard.json b/keyboards/deng/thirty/keyboard.json index da36ae19f5..394d7b427b 100644 --- a/keyboards/deng/thirty/keyboard.json +++ b/keyboards/deng/thirty/keyboard.json @@ -57,6 +57,38 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 4, "y": 4, "flags": 4}, + {"matrix": [0, 1], "x": 28, "y": 4, "flags": 4}, + {"matrix": [0, 2], "x": 52, "y": 4, "flags": 4}, + {"matrix": [0, 3], "x": 76, "y": 4, "flags": 4}, + {"matrix": [0, 4], "x": 100, "y": 4, "flags": 4}, + {"matrix": [1, 4], "x": 100, "y": 32, "flags": 4}, + {"matrix": [1, 3], "x": 76, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 52, "y": 32, "flags": 4}, + {"matrix": [1, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 60, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 60, "flags": 4}, + {"matrix": [2, 2], "x": 52, "y": 60, "flags": 4}, + {"matrix": [2, 3], "x": 76, "y": 60, "flags": 4}, + {"matrix": [2, 4], "x": 100, "y": 60, "flags": 4}, + {"matrix": [5, 4], "x": 124, "y": 60, "flags": 4}, + {"matrix": [5, 3], "x": 148, "y": 60, "flags": 4}, + {"matrix": [5, 2], "x": 172, "y": 60, "flags": 4}, + {"matrix": [5, 1], "x": 196, "y": 60, "flags": 4}, + {"matrix": [5, 0], "x": 220, "y": 60, "flags": 4}, + {"matrix": [4, 0], "x": 220, "y": 32, "flags": 4}, + {"matrix": [4, 1], "x": 196, "y": 32, "flags": 4}, + {"matrix": [4, 2], "x": 172, "y": 32, "flags": 4}, + {"matrix": [4, 3], "x": 148, "y": 32, "flags": 4}, + {"matrix": [4, 4], "x": 124, "y": 32, "flags": 4}, + {"matrix": [3, 4], "x": 124, "y": 4, "flags": 4}, + {"matrix": [3, 3], "x": 148, "y": 4, "flags": 4}, + {"matrix": [3, 2], "x": 172, "y": 4, "flags": 4}, + {"matrix": [3, 1], "x": 196, "y": 4, "flags": 4}, + {"matrix": [3, 0], "x": 220, "y": 4, "flags": 4} + ], "max_brightness": 200 }, "matrix_pins": { diff --git a/keyboards/deng/thirty/thirty.c b/keyboards/deng/thirty/thirty.c index 7d49bc1b03..ce7a76c703 100644 --- a/keyboards/deng/thirty/thirty.c +++ b/keyboards/deng/thirty/thirty.c @@ -15,38 +15,6 @@ */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - /* Key Matrix to LED Index */ - { 0, 1, 2, 3, 4 }, - { 9, 8, 7, 6, 5 }, - { 10, 11, 12, 13, 14 }, - { 29, 28, 27, 26, 25 }, - { 20, 21, 22, 23, 24 }, - { 19, 18, 17, 16, 15 }, - }, - { - /* LED Index to Physical Position */ - // Switch LEDs - {4,4}, {28,4}, {52,4}, {76,4}, {100,4}, - {100,32}, {76,32}, {52,32}, {28,32}, {4,32}, - {4,60}, {28,60}, {52,60}, {76,60}, {100,60}, - {124,60}, {148,60}, {172,60}, {196,60}, {220,60}, - {220,32}, {196,32}, {172,32}, {148,32}, {124,32}, - {124,4}, {148,4}, {172,4}, {196,4}, {220,4}, - // Underglow LEDs - }, - { - /* LED Index to Flag */ - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 - } -}; - -#endif - void board_init(void) { // Remap B11 AF to TIM2_CH4 AFIO->MAPR |= AFIO_MAPR_TIM2_REMAP_PARTIALREMAP2; diff --git a/keyboards/doro67/rgb/keyboard.json b/keyboards/doro67/rgb/keyboard.json index de95db63d6..46f1d775ab 100644 --- a/keyboards/doro67/rgb/keyboard.json +++ b/keyboards/doro67/rgb/keyboard.json @@ -51,7 +51,76 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 18, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 30, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 60, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 90, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 105, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 120, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 135, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 150, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 191, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] }, "features": { "bootmagic": true, diff --git a/keyboards/doro67/rgb/rgb.c b/keyboards/doro67/rgb/rgb.c deleted file mode 100644 index 280c1b6774..0000000000 --- a/keyboards/doro67/rgb/rgb.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright 2019 MechMerlin - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include "quantum.h" - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 }, - { 44, NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, - { 58, 59, 60, 61, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 62, 63, NO_LED, 64, 65, 66 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Ins - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, { 225, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , Del - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, { 225, 16 }, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Pgup - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, { 225, 32 }, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Pgdn - { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, { 210, 48 }, { 225, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Ins - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , Del - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Pgup - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Pgdn - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1, 1 -} }; diff --git a/keyboards/dotmod/dymium65/dymium65.c b/keyboards/dotmod/dymium65/dymium65.c index 45eaa0251c..fd3bab633e 100644 --- a/keyboards/dotmod/dymium65/dymium65.c +++ b/keyboards/dotmod/dymium65/dymium65.c @@ -18,30 +18,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - {0, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, NO_LED, NO_LED}, - {28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, NO_LED, NO_LED}, - {29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED, 41, 14, 42}, - {55, NO_LED, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, NO_LED, 44, 43, NO_LED}, - {56, 57, 58, NO_LED, NO_LED, NO_LED, 59, NO_LED, NO_LED, 60, 61, NO_LED, 62, 63, 64, 65} - }, { - {14, 0}, {28, 0}, {42, 0}, {56, 0}, {70, 0}, {84, 0}, {98, 0}, {112, 0}, {126, 0}, {140, 0}, {154, 0}, {168, 0}, {182, 0},{196, 0}, - {224, 16},{196, 16},{182, 16},{168, 16},{154, 16},{140, 16},{126, 16},{112, 16}, {98, 16}, {84, 16}, {70, 16}, {56, 16}, {42, 16} ,{28, 16}, {14, 16}, - {14, 32}, {28, 32}, {42, 32}, {56, 32}, {70, 32}, {84, 32}, {98, 32}, {112, 32}, {126, 32}, {140, 32}, {154, 32}, {168, 32}, {196, 32}, {224, 32}, - {224, 48}, {196, 48},{168, 48},{154, 48},{140, 48},{126, 48},{112, 48}, {98, 48}, {84, 48}, {70, 48}, {56, 48}, {42, 48}, {14, 48}, - {14, 64}, {28, 64}, {42, 64}, {98, 64}, {140, 64}, {154, 64}, {168, 64}, {182, 64},{196, 64}, {224, 64} - }, { - 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 12, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 - } -}; - 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; diff --git a/keyboards/dotmod/dymium65/keyboard.json b/keyboards/dotmod/dymium65/keyboard.json index a76bc91cd6..8ef9587489 100644 --- a/keyboards/dotmod/dymium65/keyboard.json +++ b/keyboards/dotmod/dymium65/keyboard.json @@ -68,6 +68,74 @@ "solid_reactive_nexus": true, "splash": true }, + "layout": [ + {"matrix": [0, 0], "x": 14, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 28, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 42, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 0, "flags": 4}, + {"matrix": [1, 4], "x": 70, "y": 0, "flags": 4}, + {"matrix": [1, 5], "x": 84, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [1, 8], "x": 126, "y": 0, "flags": 4}, + {"matrix": [1, 9], "x": 140, "y": 0, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 0, "flags": 4}, + {"matrix": [1, 11], "x": 168, "y": 0, "flags": 4}, + {"matrix": [1, 12], "x": 182, "y": 0, "flags": 4}, + {"matrix": [1, 13], "x": 196, "y": 0, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 13], "x": 196, "y": 16, "flags": 4}, + {"matrix": [2, 12], "x": 182, "y": 16, "flags": 4}, + {"matrix": [2, 11], "x": 168, "y": 16, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 16, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 16, "flags": 4}, + {"matrix": [2, 8], "x": 126, "y": 16, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [2, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 16, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 16, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [2, 2], "x": 42, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 14, "y": 16, "flags": 4}, + {"matrix": [3, 0], "x": 14, "y": 32, "flags": 12}, + {"matrix": [3, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [3, 2], "x": 42, "y": 32, "flags": 4}, + {"matrix": [3, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 32, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 32, "flags": 4}, + {"matrix": [3, 6], "x": 98, "y": 32, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [3, 8], "x": 126, "y": 32, "flags": 4}, + {"matrix": [3, 9], "x": 140, "y": 32, "flags": 4}, + {"matrix": [3, 10], "x": 154, "y": 32, "flags": 4}, + {"matrix": [3, 11], "x": 168, "y": 32, "flags": 4}, + {"matrix": [3, 13], "x": 196, "y": 32, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 32, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 13], "x": 196, "y": 48, "flags": 4}, + {"matrix": [4, 11], "x": 168, "y": 48, "flags": 4}, + {"matrix": [4, 10], "x": 154, "y": 48, "flags": 4}, + {"matrix": [4, 9], "x": 140, "y": 48, "flags": 4}, + {"matrix": [4, 8], "x": 126, "y": 48, "flags": 4}, + {"matrix": [4, 7], "x": 112, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 98, "y": 48, "flags": 4}, + {"matrix": [4, 5], "x": 84, "y": 48, "flags": 4}, + {"matrix": [4, 4], "x": 70, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 56, "y": 48, "flags": 4}, + {"matrix": [4, 2], "x": 42, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 14, "y": 48, "flags": 4}, + {"matrix": [5, 0], "x": 14, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 28, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 42, "y": 64, "flags": 4}, + {"matrix": [5, 6], "x": 98, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 140, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 154, "y": 64, "flags": 4}, + {"matrix": [5, 12], "x": 168, "y": 64, "flags": 4}, + {"matrix": [5, 13], "x": 182, "y": 64, "flags": 4}, + {"matrix": [5, 14], "x": 196, "y": 64, "flags": 4}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 4} + ], "max_brightness": 200, "react_on_keyup": true }, diff --git a/keyboards/dtisaac/dosa40rgb/dosa40rgb.c b/keyboards/dtisaac/dosa40rgb/dosa40rgb.c deleted file mode 100644 index 35ae8eb018..0000000000 --- a/keyboards/dtisaac/dosa40rgb/dosa40rgb.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2021 DTIsaac - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - //Key Matrix to LED Index - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, - {22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12 }, - {23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33}, - {41, 40, 39, NO_LED, 38, NO_LED, 37, 36, 35, 34, 11} -}, { - //LED Index to Physical Positon - { 0, 0}, { 20, 0}, { 40, 0 }, { 61, 0 }, { 81, 0}, { 101, 0}, { 122, 0}, { 142, 0}, { 162, 0}, { 183, 0}, { 203, 0}, { 224, 0}, - {203, 21}, {183, 21}, {162,21 }, {142, 21}, {122,21}, { 101,21}, { 81 ,21}, { 61 ,21}, { 40 ,21}, { 20 ,21}, { 0 ,21}, - { 0, 42}, { 20, 42}, { 40,42 }, { 61, 42}, { 81,42}, { 101,42}, { 122,42}, { 142,42}, { 162,42}, { 183,42}, { 203,42}, - {203, 64}, {183, 64}, {162,64 }, {122, 64}, { 81,64}, { 40, 64}, { 20, 64}, { 0, 64}, -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, -} }; - -#endif \ No newline at end of file diff --git a/keyboards/dtisaac/dosa40rgb/keyboard.json b/keyboards/dtisaac/dosa40rgb/keyboard.json index 4f5522947a..29a63e80f3 100644 --- a/keyboards/dtisaac/dosa40rgb/keyboard.json +++ b/keyboards/dtisaac/dosa40rgb/keyboard.json @@ -62,6 +62,50 @@ "animation": "cycle_pinwheel" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4}, + {"matrix": [3, 10], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 10], "x": 203, "y": 21, "flags": 1}, + {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4}, + {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4}, + {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4}, + {"matrix": [2, 6], "x": 122, "y": 42, "flags": 4}, + {"matrix": [2, 7], "x": 142, "y": 42, "flags": 4}, + {"matrix": [2, 8], "x": 162, "y": 42, "flags": 4}, + {"matrix": [2, 9], "x": 183, "y": 42, "flags": 4}, + {"matrix": [2, 10], "x": 203, "y": 42, "flags": 1}, + {"matrix": [3, 9], "x": 203, "y": 64, "flags": 1}, + {"matrix": [3, 8], "x": 183, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 162, "y": 64, "flags": 1}, + {"matrix": [3, 6], "x": 122, "y": 64, "flags": 1}, + {"matrix": [3, 4], "x": 81, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 40, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1} + ], "max_brightness": 150, "react_on_keyup": true }, diff --git a/keyboards/dumbpad/v3x/keyboard.json b/keyboards/dumbpad/v3x/keyboard.json index 58b8da5b3a..0e1c5bc791 100644 --- a/keyboards/dumbpad/v3x/keyboard.json +++ b/keyboards/dumbpad/v3x/keyboard.json @@ -36,6 +36,24 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 1], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 149, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 4], "x": 224, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 149, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 75, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 0, "y": 21, "flags": 4}, + {"matrix": [2, 1], "x": 0, "y": 43, "flags": 4}, + {"matrix": [2, 2], "x": 75, "y": 43, "flags": 4}, + {"matrix": [2, 3], "x": 149, "y": 43, "flags": 4}, + {"matrix": [2, 4], "x": 224, "y": 43, "flags": 4}, + {"matrix": [3, 4], "x": 224, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 149, "y": 64, "flags": 4}, + {"matrix": [3, 2], "x": 75, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 0, "y": 64, "flags": 4} + ], "timeout": 300000, "sleep": true }, diff --git a/keyboards/dumbpad/v3x/v3x.c b/keyboards/dumbpad/v3x/v3x.c index 181e9d4a0d..ebc829d91a 100644 --- a/keyboards/dumbpad/v3x/v3x.c +++ b/keyboards/dumbpad/v3x/v3x.c @@ -16,36 +16,6 @@ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = {{// Key Matrix to LED Index - {NO_LED, 0, 1, 2, 3}, - {NO_LED, 7, 6, 5, 4}, - {NO_LED, 8, 9, 10, 11}, - {NO_LED, 15, 14, 13, 12}}, - {// LED Index to Physical Position - {0, 0}, - {75, 0}, - {149, 0}, - {224, 0}, - - {224, 21}, - {149, 21}, - {75, 21}, - {0, 21}, - - {0, 43}, - {75, 43}, - {149, 43}, - {224, 43}, - - {224, 64}, - {149, 64}, - {75, 64}, - {0, 64}}, - {// LED Index to Flag - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}}; -#endif - void keyboard_pre_init_kb(void) { // Set LED IO as outputs gpio_set_pin_output(LED_00); diff --git a/keyboards/durgod/dgk6x/galaxy/galaxy.c b/keyboards/durgod/dgk6x/galaxy/galaxy.c index 5d08163109..a0f5126bf6 100644 --- a/keyboards/durgod/dgk6x/galaxy/galaxy.c +++ b/keyboards/durgod/dgk6x/galaxy/galaxy.c @@ -1,4 +1,4 @@ -/* Copyright 2021 Don Kjer +/* Copyright 2021 Don Kjer * * 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 @@ -116,27 +116,4 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {1, SW6_CS14, SW5_CS14, SW4_CS14}, // Down {1, SW6_CS15, SW5_CS15, SW4_CS15} // Right }; - -led_config_t g_led_config = {{ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, NO_LED }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, NO_LED }, - { 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, NO_LED, 58, 59, NO_LED }, - { 60, NO_LED, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, NO_LED }, - { 74, 75, 76, NO_LED, NO_LED, NO_LED, 77, NO_LED, NO_LED, 78, 79, 80, 81, 82, 83, NO_LED } -}, { - { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 208, 0 }, { 224, 0 }, { 240, 0 }, - { 0, 13 }, { 16, 13 }, { 32, 13 }, { 48, 13 }, { 64, 13 }, { 80, 13 }, { 96, 13 }, { 112, 13 }, { 128, 13 }, { 144, 13 }, { 160, 13 }, { 176, 13 }, { 192, 13 }, { 216, 13 }, { 240, 13 }, - { 4, 26 }, { 24, 26 }, { 40, 26 }, { 56, 26 }, { 72, 26 }, { 88, 26 }, { 104, 26 }, { 120, 26 }, { 136, 26 }, { 152, 26 }, { 168, 26 }, { 184, 26 }, { 200, 26 }, { 220, 26 }, { 240, 26 }, - { 6, 38 }, { 28, 38 }, { 44, 38 }, { 60, 38 }, { 76, 38 }, { 92, 38 }, { 108, 38 }, { 124, 38 }, { 140, 38 }, { 156, 38 }, { 172, 38 }, { 188, 38 }, { 214, 38 }, { 240, 38 }, - { 10, 51 }, { 36, 51 }, { 52, 51 }, { 68, 51 }, { 84, 51 }, { 100, 51 }, { 116, 51 }, { 132, 51 }, { 148, 51 }, { 164, 51 }, { 180, 51 }, { 202, 51 }, { 224, 51 }, { 240, 51 }, - { 2, 64 }, { 22, 64 }, { 42, 64 }, { 101, 64 }, { 160, 64 }, { 176, 64 }, { 192, 64 }, { 208, 64 }, { 224, 64 }, { 240, 64 } -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 4, 4, 4 -}}; #endif /* RGB_MATRIX_ENABLE */ diff --git a/keyboards/durgod/dgk6x/galaxy/keyboard.json b/keyboards/durgod/dgk6x/galaxy/keyboard.json index 4f80ef9d51..7421f70481 100644 --- a/keyboards/durgod/dgk6x/galaxy/keyboard.json +++ b/keyboards/durgod/dgk6x/galaxy/keyboard.json @@ -13,6 +13,94 @@ "rows": ["A0", "A1", "A2", "A3", "A4", "A5"] }, "diode_direction": "ROW2COL", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 195, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 210, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4}, + {"matrix": [1, 1], "x": 15, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 30, "y": 13, "flags": 4}, + {"matrix": [1, 3], "x": 45, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 60, "y": 13, "flags": 4}, + {"matrix": [1, 5], "x": 75, "y": 13, "flags": 4}, + {"matrix": [1, 6], "x": 90, "y": 13, "flags": 4}, + {"matrix": [1, 7], "x": 105, "y": 13, "flags": 4}, + {"matrix": [1, 8], "x": 120, "y": 13, "flags": 4}, + {"matrix": [1, 9], "x": 135, "y": 13, "flags": 4}, + {"matrix": [1, 10], "x": 150, "y": 13, "flags": 4}, + {"matrix": [1, 11], "x": 165, "y": 13, "flags": 4}, + {"matrix": [1, 12], "x": 180, "y": 13, "flags": 4}, + {"matrix": [1, 13], "x": 202, "y": 13, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 13, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 67, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 82, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 97, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 127, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 142, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 157, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 172, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 187, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 205, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 26, "flags": 4}, + {"matrix": [3, 0], "x": 6, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 28, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 43, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 58, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 73, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 88, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 103, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 118, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 133, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 148, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 163, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 178, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 200, "y": 38, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 38, "flags": 4}, + {"matrix": [4, 0], "x": 10, "y": 51, "flags": 1}, + {"matrix": [4, 2], "x": 36, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 51, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 66, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 81, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 111, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 126, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 141, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 156, "y": 51, "flags": 4}, + {"matrix": [4, 11], "x": 171, "y": 51, "flags": 4}, + {"matrix": [4, 12], "x": 192, "y": 51, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 51, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 51, "flags": 4}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 38, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 98, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 149, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 179, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 194, "y": 64, "flags": 4}, + {"matrix": [5, 13], "x": 209, "y": 64, "flags": 4}, + {"matrix": [5, 14], "x": 224, "y": 64, "flags": 4} + ] + }, "community_layouts": ["75_ansi"], "layouts": { "LAYOUT_75_ansi": { diff --git a/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c b/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c index d092310814..d62acf1bc3 100644 --- a/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c +++ b/keyboards/durgod/dgk6x/hades_ansi/hades_ansi.c @@ -1,4 +1,4 @@ -/* Copyright 2021 Jessica Sullivan and Don Kjer +/* Copyright 2021 Jessica Sullivan and Don Kjer * * 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 @@ -100,24 +100,4 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {1, SW3_CS14, SW2_CS14, SW1_CS14}, // DOWN {1, SW3_CS15, SW2_CS15, SW1_CS15} // RIGHT }; - -led_config_t g_led_config = {{ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 } -}, { - { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 216, 0 }, { 240, 0 }, - { 4, 16 }, { 24, 16 }, { 40, 16 }, { 56, 16 }, { 72, 16 }, { 88, 16 }, { 104, 16 }, { 120, 16 }, { 136, 16 }, { 152, 16 }, { 168, 16 }, { 184, 16 }, { 200, 16 }, { 220, 16 }, { 240, 16 }, - { 6, 32 }, { 28, 32 }, { 44, 32 }, { 60, 32 }, { 76, 32 }, { 92, 32 }, { 108, 32 }, { 124, 32 }, { 140, 32 }, { 156, 32 }, { 172, 32 }, { 188, 32 }, { 214, 32 }, { 240, 32 }, - { 10, 48 }, { 36, 48 }, { 52, 48 }, { 68, 48 }, { 84, 48 }, { 100, 48 }, { 116, 48 }, { 132, 48 }, { 148, 48 }, { 164, 48 }, { 180, 48 }, { 202, 48 }, { 224, 48 }, { 240, 48 }, - { 2, 64 }, { 22, 64 }, { 42, 64 }, { 101, 64 }, { 160, 64 }, { 176, 64 }, { 192, 64 }, { 208, 64 }, { 224, 64 }, { 240, 64 } -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 4, 4, 4 -}}; #endif /* RGB_MATRIX_ENABLE */ diff --git a/keyboards/durgod/dgk6x/hades_ansi/keyboard.json b/keyboards/durgod/dgk6x/hades_ansi/keyboard.json index 00cfcdc5f0..7a41352d20 100644 --- a/keyboards/durgod/dgk6x/hades_ansi/keyboard.json +++ b/keyboards/durgod/dgk6x/hades_ansi/keyboard.json @@ -13,6 +13,78 @@ "rows": ["A0", "A1", "A2", "A3", "A4"] }, "diode_direction": "ROW2COL", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 205, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 43, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 58, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 73, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 88, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 103, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 118, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 133, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 148, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 163, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 178, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 200, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 51, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 66, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 81, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 111, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 126, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 141, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 156, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 171, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 192, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 209, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 38, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 98, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 149, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 164, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 179, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 194, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 209, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4} + ] + }, "community_layouts": ["65_ansi"], "layouts": { "LAYOUT_65_ansi": { diff --git a/keyboards/durgod/dgk6x/venus/keyboard.json b/keyboards/durgod/dgk6x/venus/keyboard.json index cc7b321e23..a32a5b1065 100644 --- a/keyboards/durgod/dgk6x/venus/keyboard.json +++ b/keyboards/durgod/dgk6x/venus/keyboard.json @@ -13,6 +13,71 @@ "rows": ["A0", "A1", "A2", "A3", "A4"] }, "diode_direction": "ROW2COL", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"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": 216, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 210, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 162, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 182, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 202, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 222, "y": 64, "flags": 1} + ] + }, "community_layouts": ["60_ansi"], "layouts": { "LAYOUT_60_ansi": { diff --git a/keyboards/durgod/dgk6x/venus/venus.c b/keyboards/durgod/dgk6x/venus/venus.c index 5433266e3b..30735fc80e 100644 --- a/keyboards/durgod/dgk6x/venus/venus.c +++ b/keyboards/durgod/dgk6x/venus/venus.c @@ -92,24 +92,4 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {1, SW3_CS12, SW2_CS12, SW1_CS12}, // RCtrl/Fn2 {1, SW3_CS13, SW2_CS13, SW1_CS13}, // LEFT/RCtrl }; - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, NO_LED, NO_LED }, - { 53, 54, 55, NO_LED, NO_LED, 56, NO_LED, NO_LED, NO_LED, 57, 58, 59, 60, NO_LED } -}, { - { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 216, 0 }, - { 4, 16 }, { 24, 16 }, { 40, 16 }, { 56, 16 }, { 72, 16 }, { 88, 16 }, { 104, 16 }, { 120, 16 }, { 136, 16 }, { 152, 16 }, { 168, 16 }, { 184, 16 }, { 200, 16 }, { 220, 16 }, - { 6, 32 }, { 28, 32 }, { 44, 32 }, { 60, 32 }, { 76, 32 }, { 92, 32 }, { 108, 32 }, { 124, 32 }, { 140, 32 }, { 156, 32 }, { 172, 32 }, { 188, 32 }, { 214, 32 }, - { 10, 48 }, { 36, 48 }, { 52, 48 }, { 68, 48 }, { 84, 48 }, { 100, 48 }, { 116, 48 }, { 132, 48 }, { 148, 48 }, { 164, 48 }, { 180, 48 }, { 210, 48 }, - { 2, 64 }, { 22, 64 }, { 42, 64 }, { 102, 64 }, { 162, 64 }, { 182, 64 }, { 202, 64 }, { 222, 64 }, -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1 -} }; #endif /* RGB_MATRIX_ENABLE */ diff --git a/keyboards/dztech/dz60rgb/dz60rgb.c b/keyboards/dztech/dz60rgb/dz60rgb.c index 207fccd4f9..e729f6d578 100644 --- a/keyboards/dztech/dz60rgb/dz60rgb.c +++ b/keyboards/dztech/dz60rgb/dz60rgb.c @@ -71,28 +71,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW11_CS16, SW10_CS16, SW12_CS16 } }; -led_config_t g_led_config = { - { - { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }, - { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, - { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 }, - { 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, NO_LED, 41 }, - { 62, 61, 60, NO_LED, NO_LED, 59, NO_LED, NO_LED, 58, 57, 56, 55, NO_LED, 54 } - }, { - { 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 }, - { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 }, - { 214, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, - { 224, 48 }, { 208, 48 }, { 186, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 36, 48 }, { 9, 48 }, - { 224, 64 }, { 208, 64 }, { 192, 64 }, { 176, 64 }, { 160, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 } - }, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 4, 1, 1, 1 - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/dztech/dz60rgb/info.json b/keyboards/dztech/dz60rgb/info.json index 1bcc77c605..c4f87c70f0 100644 --- a/keyboards/dztech/dz60rgb/info.json +++ b/keyboards/dztech/dz60rgb/info.json @@ -5,6 +5,73 @@ "usb": { "vid": "0x445A" }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 208, "y": 48, "flags": 1}, + {"matrix": [3, 10], "x": 186, "y": 48, "flags": 1}, + {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 208, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 192, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 176, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c b/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c index cdc5148e11..20dd1a8b95 100644 --- a/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c +++ b/keyboards/dztech/dz60rgb_ansi/dz60rgb_ansi.c @@ -69,28 +69,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW11_CS16, SW10_CS16, SW12_CS16 } }; -led_config_t g_led_config = { - { - { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }, - { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, - { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 }, - { 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, NO_LED, NO_LED }, - { 60, 59, 58, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 56, 55, 54, NO_LED, 53 } - }, { - { 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 }, - { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 }, - { 214, 24 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, - { 210, 48 }, { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 }, - { 222, 64 }, { 202, 64 }, { 182, 64 }, { 162, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 } - }, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 4, 1, 1, 1 - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/dztech/dz60rgb_ansi/info.json b/keyboards/dztech/dz60rgb_ansi/info.json index dddbd47315..b5f962b997 100644 --- a/keyboards/dztech/dz60rgb_ansi/info.json +++ b/keyboards/dztech/dz60rgb_ansi/info.json @@ -5,6 +5,71 @@ "usb": { "vid": "0x445A" }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [2, 13], "x": 214, "y": 24, "flags": 1}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [3, 11], "x": 210, "y": 48, "flags": 1}, + {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 20, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [4, 13], "x": 222, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 202, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 182, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 162, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1} + ] + }, "community_layouts": ["60_ansi"], "layouts": { "LAYOUT_60_ansi": { diff --git a/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c b/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c index b5af34be38..59cbb09a1b 100644 --- a/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c +++ b/keyboards/dztech/dz60rgb_wkl/dz60rgb_wkl.c @@ -70,28 +70,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW11_CS16, SW10_CS16, SW12_CS16 } }; -led_config_t g_led_config = { - { - { 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }, - { 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15 }, - { 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 0, 29 }, - { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, NO_LED, 42 }, - { 61, 60, 59, NO_LED, NO_LED, 58, NO_LED, NO_LED, NO_LED, NO_LED, 57, 56, NO_LED, 55 } - }, { - { 224, 0 }, { 208, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 }, - { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 }, - { 204, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, - { 224, 48 }, { 202, 48 }, { 180, 48 }, { 164, 48 }, { 148, 48 }, { 132, 48 }, { 116, 48 }, { 100, 48 }, { 84, 48 }, { 68, 48 }, { 52, 48 }, { 20, 48 }, { 10, 48 }, - { 218, 64 }, { 198, 64 }, { 178, 64 }, { 112, 64 }, { 46, 64 }, { 26, 64 }, { 6, 64 } - }, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1 - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/dztech/dz60rgb_wkl/info.json b/keyboards/dztech/dz60rgb_wkl/info.json index a4dfb63c7a..d0d66d046c 100644 --- a/keyboards/dztech/dz60rgb_wkl/info.json +++ b/keyboards/dztech/dz60rgb_wkl/info.json @@ -5,6 +5,72 @@ "usb": { "vid": "0x445A" }, + "rgb_matrix": { + "layout": [ + {"matrix": [2, 12], "x": 224, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [2, 13], "x": 204, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 202, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 20, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [4, 13], "x": 218, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 198, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 178, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 46, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 26, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 6, "y": 64, "flags": 1} + ] + }, "community_layouts": ["60_ansi_tsangan_split_bs_rshift"], "layout_aliases": { "LAYOUT_HHKB": "LAYOUT_60_ansi_tsangan_split_bs_rshift", diff --git a/keyboards/dztech/dz64rgb/dz64rgb.c b/keyboards/dztech/dz64rgb/dz64rgb.c index e2512c72a5..788658bdce 100644 --- a/keyboards/dztech/dz64rgb/dz64rgb.c +++ b/keyboards/dztech/dz64rgb/dz64rgb.c @@ -88,29 +88,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW11_CS16, SW10_CS16, SW12_CS16 } }; -led_config_t g_led_config = { - { - { 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 }, - { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, - { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28 }, - { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41 }, - { 63, 62, 61, NO_LED, NO_LED, 60, NO_LED, NO_LED, 59, 58, 57, 56, NO_LED, 55 } - }, { - { 216, 0 }, { 192, 0 }, { 176, 0 }, { 160, 0 }, { 144, 0 }, { 128, 0 }, { 112, 0 }, { 96, 0 }, { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 }, - { 220, 16 }, { 200, 16 }, { 184, 16 }, { 168, 16 }, { 152, 16 }, { 136, 16 }, { 120, 16 }, { 104, 16 }, { 88, 16 }, { 72, 16 }, { 56, 16 }, { 40, 16 }, { 24, 16 }, { 4, 16 }, - { 214, 32 }, { 188, 32 }, { 172, 32 }, { 156, 32 }, { 140, 32 }, { 124, 32 }, { 108, 32 }, { 92, 32 }, { 76, 32 }, { 60, 32 }, { 44, 32 }, { 28, 32 }, { 6, 32 }, - { 224, 48 }, { 218, 48 }, { 192, 48 }, { 176, 48 }, { 160, 48 }, { 144, 48 }, { 128, 48 }, { 112, 48 }, { 96, 48 },{80, 48}, { 64, 48 }, { 48, 48 }, { 32, 48 }, { 8, 48 }, - { 224, 64 }, { 208, 64 }, { 192, 64 }, { 176, 64 }, { 160, 64 }, { 102, 64 }, { 42, 64 }, { 22, 64 }, { 2, 64 } - }, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1 - } -}; - - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/dztech/dz64rgb/keyboard.json b/keyboards/dztech/dz64rgb/keyboard.json index ef95b52400..926721a12e 100644 --- a/keyboards/dztech/dz64rgb/keyboard.json +++ b/keyboards/dztech/dz64rgb/keyboard.json @@ -40,6 +40,72 @@ "animation": "cycle_all" }, "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 218, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 8, "y": 48, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 208, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 192, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 176, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1} + ], "sleep": true }, "matrix_pins": { diff --git a/keyboards/dztech/dz65rgb/v1/keyboard.json b/keyboards/dztech/dz65rgb/v1/keyboard.json index 32b830052d..cdbd9ae10d 100644 --- a/keyboards/dztech/dz65rgb/v1/keyboard.json +++ b/keyboards/dztech/dz65rgb/v1/keyboard.json @@ -39,6 +39,76 @@ "animation": "cycle_all" }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 165, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 180, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "led_process_limit": 4, "led_flush_limit": 26, "max_brightness": 200, diff --git a/keyboards/dztech/dz65rgb/v1/v1.c b/keyboards/dztech/dz65rgb/v1/v1.c index 6e8cf96e4c..e05e35b74b 100644 --- a/keyboards/dztech/dz65rgb/v1/v1.c +++ b/keyboards/dztech/dz65rgb/v1/v1.c @@ -91,29 +91,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { { 0, C9_16, C7_15, C6_15 } }; -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, NO_LED, 66, 67 } - }, { - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 }, - { 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 }, - { 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 }, - { 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 }, - { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 } - }, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/dztech/dz65rgb/v2/keyboard.json b/keyboards/dztech/dz65rgb/v2/keyboard.json index bf7331e101..7c922bc273 100644 --- a/keyboards/dztech/dz65rgb/v2/keyboard.json +++ b/keyboards/dztech/dz65rgb/v2/keyboard.json @@ -39,6 +39,76 @@ "animation": "cycle_all" }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 165, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 180, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "led_process_limit": 4, "led_flush_limit": 26, "max_brightness": 200, diff --git a/keyboards/dztech/dz65rgb/v2/v2.c b/keyboards/dztech/dz65rgb/v2/v2.c index a9f7fc104f..2591a4ddcb 100644 --- a/keyboards/dztech/dz65rgb/v2/v2.c +++ b/keyboards/dztech/dz65rgb/v2/v2.c @@ -91,29 +91,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { { 0, C9_16, C7_15, C6_15 } }; -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, NO_LED, 66, 67 } - }, { - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 }, - { 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 }, - { 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 }, - { 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 }, - { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 } - }, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/dztech/dz65rgb/v3/keyboard.json b/keyboards/dztech/dz65rgb/v3/keyboard.json index 8fef8b3468..6ed8b8c9da 100644 --- a/keyboards/dztech/dz65rgb/v3/keyboard.json +++ b/keyboards/dztech/dz65rgb/v3/keyboard.json @@ -53,6 +53,76 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 165, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 180, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "led_process_limit": 4, "led_flush_limit": 26, "sleep": true diff --git a/keyboards/dztech/dz65rgb/v3/v3.c b/keyboards/dztech/dz65rgb/v3/v3.c index bf54a8cdfc..f5f863de9a 100755 --- a/keyboards/dztech/dz65rgb/v3/v3.c +++ b/keyboards/dztech/dz65rgb/v3/v3.c @@ -93,26 +93,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW7_CS39, SW7_CS38, SW7_CS37} }; -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, NO_LED,55, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 } -}, { - {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0}, - {4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16}, - {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32}, - {9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48}, - { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 } -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { From 6aa85699a5626c084a1cfd4ea2ecca3c14783c33 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 02:59:42 -0600 Subject: [PATCH 025/255] Migrate `g_led_config` to DD (E, F) (#25561) --- keyboards/eek/eek.c | 55 --------- keyboards/eek/info.json | 38 ++++++ keyboards/ein_60/ein_60.c | 31 ----- keyboards/ein_60/keyboard.json | 40 ++++++ keyboards/elephant42/elephant42.c | 66 ---------- keyboards/elephant42/keyboard.json | 56 +++++++++ keyboards/ergodox_ez/ergodox_ez.c | 36 ------ keyboards/ergodox_ez/info.json | 50 ++++++++ keyboards/evyd13/atom47/rev5/keyboard.json | 52 +++++++- keyboards/evyd13/atom47/rev5/rev5.c | 67 ---------- keyboards/exclusive/e6_rgb/e6_rgb.c | 75 ------------ keyboards/exclusive/e6_rgb/keyboard.json | 67 +++++++++- keyboards/feker/ik75/ik75.c | 27 ---- keyboards/feker/ik75/keyboard.json | 129 ++++++++++++++++++++ keyboards/frooastboard/walnut/keyboard.json | 50 ++++++++ keyboards/frooastboard/walnut/walnut.c | 22 ---- 16 files changed, 480 insertions(+), 381 deletions(-) delete mode 100644 keyboards/eek/eek.c delete mode 100644 keyboards/elephant42/elephant42.c diff --git a/keyboards/eek/eek.c b/keyboards/eek/eek.c deleted file mode 100644 index 8e7a19f820..0000000000 --- a/keyboards/eek/eek.c +++ /dev/null @@ -1,55 +0,0 @@ -/* Copyright 2020 klackygears - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - - // Logical Layout - // Columns - // 0 1 2 3 4 - // ROWS - // 4 3 2 1 0 0 - // 5 6 7 8 9 1 - // 14 13 12 11 10 2 - // 15 16 17 3 - - // Logical Layout v1.3 - // Columns - // 0 1 2 3 4 5 6 7 8 9 - // ROWS - // 0 1 2 3 4 5 6 7 8 9 0 - // 19 18 17 16 15 14 13 12 11 10 1 - // 20 21 22 23 24 25 26 27 28 29 2 - // 35 34 33 32 31 30 3 - - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, - { 19, 18, 17, 16, 15, 14, 13, 12, 11, 10 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { NO_LED, NO_LED, 35, 34, 33, 32, 31, 30, NO_LED, NO_LED } -}, { - { 31, 0 }, { 46, 0 }, { 62, 0 }, { 77, 7 }, { 93, 13 }, { 131, 13 }, { 147, 7 }, { 162, 0 }, { 178, 0 }, { 193, 0 }, - { 201, 10 }, { 185, 10 }, { 170, 10 }, { 154, 17 }, { 139, 24 }, { 85, 24 }, { 70, 17 }, { 54, 10 }, { 39, 10 }, { 23, 10 }, - { 15, 20 }, { 31, 20 }, { 46, 20 }, { 62, 27 }, { 77, 34 }, { 147, 34 }, { 162, 27 }, { 178, 20 }, { 193, 20 }, { 209, 20 }, - { 185, 34 }, { 170, 37 }, { 154, 44 }, { 70, 44 }, { 54, 37 }, { 39, 34 }, -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 1, 1, 1, 1, 1, -} }; -#endif diff --git a/keyboards/eek/info.json b/keyboards/eek/info.json index 0e510e282a..eaa68c9b41 100644 --- a/keyboards/eek/info.json +++ b/keyboards/eek/info.json @@ -13,6 +13,44 @@ "val": 150 }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 31, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 46, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 62, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 77, "y": 7, "flags": 4}, + {"matrix": [0, 4], "x": 93, "y": 13, "flags": 4}, + {"matrix": [0, 5], "x": 131, "y": 13, "flags": 4}, + {"matrix": [0, 6], "x": 147, "y": 7, "flags": 4}, + {"matrix": [0, 7], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 178, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 193, "y": 0, "flags": 4}, + {"matrix": [1, 9], "x": 201, "y": 10, "flags": 4}, + {"matrix": [1, 8], "x": 185, "y": 10, "flags": 4}, + {"matrix": [1, 7], "x": 170, "y": 10, "flags": 4}, + {"matrix": [1, 6], "x": 154, "y": 17, "flags": 4}, + {"matrix": [1, 5], "x": 139, "y": 24, "flags": 4}, + {"matrix": [1, 4], "x": 85, "y": 24, "flags": 4}, + {"matrix": [1, 3], "x": 70, "y": 17, "flags": 4}, + {"matrix": [1, 2], "x": 54, "y": 10, "flags": 4}, + {"matrix": [1, 1], "x": 39, "y": 10, "flags": 4}, + {"matrix": [1, 0], "x": 23, "y": 10, "flags": 4}, + {"matrix": [2, 0], "x": 15, "y": 20, "flags": 4}, + {"matrix": [2, 1], "x": 31, "y": 20, "flags": 4}, + {"matrix": [2, 2], "x": 46, "y": 20, "flags": 4}, + {"matrix": [2, 3], "x": 62, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 77, "y": 34, "flags": 4}, + {"matrix": [2, 5], "x": 147, "y": 34, "flags": 4}, + {"matrix": [2, 6], "x": 162, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 178, "y": 20, "flags": 4}, + {"matrix": [2, 8], "x": 193, "y": 20, "flags": 4}, + {"matrix": [2, 9], "x": 209, "y": 20, "flags": 4}, + {"matrix": [3, 7], "x": 185, "y": 34, "flags": 1}, + {"matrix": [3, 6], "x": 170, "y": 37, "flags": 1}, + {"matrix": [3, 5], "x": 154, "y": 44, "flags": 1}, + {"matrix": [3, 4], "x": 70, "y": 44, "flags": 1}, + {"matrix": [3, 3], "x": 54, "y": 37, "flags": 1}, + {"matrix": [3, 2], "x": 39, "y": 34, "flags": 1} + ], "max_brightness": 200 }, "features": { diff --git a/keyboards/ein_60/ein_60.c b/keyboards/ein_60/ein_60.c index af11e48235..8a0e69cee4 100644 --- a/keyboards/ein_60/ein_60.c +++ b/keyboards/ein_60/ein_60.c @@ -15,37 +15,6 @@ */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE - - // Logical Layout - // Columns - // 0 1 2 3 4 5 6 7 8 9 10 11 12 13 - // ROWS - // 37 0 1 2 3 4 5 6 7 8 9 10 11 12 0 - // 36 13 1 - // 35 14 2 - // 34 15 3 - // 33 16 3 - // 32 17 4 - // 31 30 29 28 27 26 25 24 23 22 21 20 19 18 5 - -led_config_t g_led_config = { { - { 36, 1, 2, 3, 4, 5, 5, 6, 7, 8, 9, 10, 13 }, - { 34, 1, 2, 3, 4, 5, NO_LED, 6, 7, 8, 9, 10, 15 }, - { 33, 30, 29, 28, 27, 26, NO_LED, 23, 22, 21, 20, 19, 16 }, - { 32, 30, 29, 28, 27, 26, 24, 23, 22, 21, 20, 19, 17 } -}, { - { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 119, 0 }, { 134, 0 }, { 149, 0 }, { 164, 0 }, { 179, 0 }, { 194, 0 }, { 209, 0 }, { 224, 11 }, - { 224, 21 }, { 224, 32 }, { 224, 43 }, { 224, 53 }, { 209, 64 }, { 194, 64 }, { 179, 64 }, { 164, 64 }, { 149, 64 }, { 134, 64 }, { 119, 64 }, { 105, 64 }, { 90, 64 }, - { 75, 64 }, { 60, 64 }, { 45, 64 }, { 30, 64 }, { 15, 64 }, { 0, 53 }, { 0, 43 }, { 0, 32 }, { 0, 21 }, { 0, 11 }, { 15, 0 }, -}, { - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, -} }; -#endif - #ifdef AUDIO_ENABLE const uint8_t music_map[MATRIX_ROWS][MATRIX_COLS] = { {30, 31, 32, 33, 34, 35, 35, 36, 37, 38, 39, 40, 41}, diff --git a/keyboards/ein_60/keyboard.json b/keyboards/ein_60/keyboard.json index b1e48f1747..99c5040f8d 100644 --- a/keyboards/ein_60/keyboard.json +++ b/keyboards/ein_60/keyboard.json @@ -12,6 +12,46 @@ "val": 150 }, "driver": "ws2812", + "layout": [ + {"x": 30, "y": 0, "flags": 2}, + {"matrix": [1, 1], "x": 45, "y": 0, "flags": 2}, + {"matrix": [1, 2], "x": 60, "y": 0, "flags": 2}, + {"matrix": [1, 3], "x": 75, "y": 0, "flags": 2}, + {"matrix": [1, 4], "x": 90, "y": 0, "flags": 2}, + {"matrix": [1, 5], "x": 105, "y": 0, "flags": 2}, + {"matrix": [1, 7], "x": 119, "y": 0, "flags": 2}, + {"matrix": [1, 8], "x": 134, "y": 0, "flags": 2}, + {"matrix": [1, 9], "x": 149, "y": 0, "flags": 2}, + {"matrix": [1, 10], "x": 164, "y": 0, "flags": 2}, + {"matrix": [1, 11], "x": 179, "y": 0, "flags": 2}, + {"x": 194, "y": 0, "flags": 2}, + {"x": 209, "y": 0, "flags": 2}, + {"matrix": [0, 12], "x": 224, "y": 11, "flags": 1}, + {"x": 224, "y": 21, "flags": 1}, + {"matrix": [1, 12], "x": 224, "y": 32, "flags": 1}, + {"matrix": [2, 12], "x": 224, "y": 43, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 53, "flags": 1}, + {"x": 209, "y": 64, "flags": 1}, + {"matrix": [3, 11], "x": 194, "y": 64, "flags": 1}, + {"matrix": [3, 10], "x": 179, "y": 64, "flags": 1}, + {"matrix": [3, 9], "x": 164, "y": 64, "flags": 1}, + {"matrix": [3, 8], "x": 149, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 134, "y": 64, "flags": 1}, + {"matrix": [3, 6], "x": 119, "y": 64, "flags": 1}, + {"x": 105, "y": 64, "flags": 1}, + {"matrix": [3, 5], "x": 90, "y": 64, "flags": 1}, + {"matrix": [3, 4], "x": 75, "y": 64, "flags": 1}, + {"matrix": [3, 3], "x": 60, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 45, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 30, "y": 64, "flags": 1}, + {"x": 15, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 53, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 43, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 32, "flags": 1}, + {"x": 0, "y": 21, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 11, "flags": 1}, + {"x": 15, "y": 0, "flags": 2} + ], "max_brightness": 200 }, "rgblight": { diff --git a/keyboards/elephant42/elephant42.c b/keyboards/elephant42/elephant42.c deleted file mode 100644 index 1ffb5e8083..0000000000 --- a/keyboards/elephant42/elephant42.c +++ /dev/null @@ -1,66 +0,0 @@ -/* Copyright 2021 illness072 - * - * 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 "quantum.h" - -#if defined(RGB_MATRIX_ENABLE) -led_config_t g_led_config = { - { // keymap to LED number - // left - { 19, 18, 13, 12, 7, 6}, // R3 - { 20, 17, 14, 11, 8, 5}, // R2 - {NO_LED, 16, 15, 10, 9, 4}, // R1 - {NO_LED, NO_LED, 0, 1, 2, 3}, // R0 - // right - { 46, 45, 40, 39, 34, 33}, // R3 - { 47, 44, 41, 38, 35, 32}, // R2 - {NO_LED, 43, 42, 37, 36, 31}, // R1 - {NO_LED, NO_LED, 27, 28, 29, 30}, // R0 - }, - {// phisical LED position, {x, y} : x = 0..224, y = 0..64 - // left-bg [LED_01-21] - {56, 65}, {77, 68}, {95, 79}, {109, 91}, - {87, 46}, {87, 29}, {87, 12}, { 69, 43}, { 69, 26}, { 69, 8}, - {52, 35}, {52, 17}, {52, 0}, { 35, 4}, { 35, 21}, { 35, 38}, - {17, 54}, {17, 36}, {17, 19}, { 0, 26}, { 0, 43}, - // left-ug [LED_22-27] - {25, 49}, {26, 19}, {60, 14}, {106, 33}, {107, 72}, { 70, 66}, - // right-bg [LED_28-48] - {199, 65}, {179, 68}, {160, 79}, {146, 91}, - {168, 46}, {168, 29}, {168, 12}, {186, 43}, {186, 26}, {186, 8}, - {203, 35}, {203, 17}, {203, 0}, {220, 4}, {220, 21}, {220, 38}, - {238, 54}, {238, 36}, {238, 19}, {255, 26}, {255, 43}, - // right-ug [LED_49-54] - {230, 49}, {230, 19}, {195, 14}, {149, 33}, {148, 72}, {185, 66}, - }, - {// LED Index to Flag - // Left-bg [LED_01-21] - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - // left-ug [LED_22-27] - LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, - // right-bg [LED_28-48] - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - // right-ug [LED_49-54] - LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW - } -}; -#endif diff --git a/keyboards/elephant42/keyboard.json b/keyboards/elephant42/keyboard.json index 60b135b086..be0f1c81a0 100644 --- a/keyboards/elephant42/keyboard.json +++ b/keyboards/elephant42/keyboard.json @@ -13,6 +13,62 @@ "sat_steps": 8, "val_steps": 8, "speed_steps": 8, + "layout": [ + {"matrix": [3, 2], "x": 52, "y": 45, "flags": 4}, + {"matrix": [3, 3], "x": 69, "y": 51, "flags": 4}, + {"matrix": [3, 4], "x": 86, "y": 58, "flags": 4}, + {"matrix": [3, 5], "x": 103, "y": 64, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 34, "flags": 4}, + {"matrix": [1, 5], "x": 86, "y": 21, "flags": 4}, + {"matrix": [0, 5], "x": 86, "y": 8, "flags": 4}, + {"matrix": [0, 4], "x": 69, "y": 7, "flags": 4}, + {"matrix": [1, 4], "x": 69, "y": 20, "flags": 4}, + {"matrix": [2, 4], "x": 69, "y": 33, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 26, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 13, "flags": 4}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 34, "y": 6, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 19, "flags": 4}, + {"matrix": [2, 2], "x": 34, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 17, "y": 44, "flags": 4}, + {"matrix": [1, 1], "x": 17, "y": 31, "flags": 4}, + {"matrix": [0, 1], "x": 17, "y": 18, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 24, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 37, "flags": 4}, + {"x": 26, "y": 42, "flags": 2}, + {"x": 26, "y": 19, "flags": 2}, + {"x": 61, "y": 7, "flags": 2}, + {"x": 103, "y": 21, "flags": 2}, + {"x": 103, "y": 51, "flags": 2}, + {"x": 69, "y": 45, "flags": 2}, + {"matrix": [7, 2], "x": 172, "y": 45, "flags": 4}, + {"matrix": [7, 3], "x": 155, "y": 51, "flags": 4}, + {"matrix": [7, 4], "x": 138, "y": 58, "flags": 4}, + {"matrix": [7, 5], "x": 121, "y": 64, "flags": 4}, + {"matrix": [6, 5], "x": 138, "y": 34, "flags": 4}, + {"matrix": [5, 5], "x": 138, "y": 21, "flags": 4}, + {"matrix": [4, 5], "x": 138, "y": 8, "flags": 4}, + {"matrix": [4, 4], "x": 155, "y": 7, "flags": 4}, + {"matrix": [5, 4], "x": 155, "y": 20, "flags": 4}, + {"matrix": [6, 4], "x": 155, "y": 33, "flags": 4}, + {"matrix": [6, 3], "x": 172, "y": 26, "flags": 4}, + {"matrix": [5, 3], "x": 172, "y": 13, "flags": 4}, + {"matrix": [4, 3], "x": 172, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 189, "y": 6, "flags": 4}, + {"matrix": [5, 2], "x": 189, "y": 19, "flags": 4}, + {"matrix": [6, 2], "x": 189, "y": 32, "flags": 4}, + {"matrix": [6, 1], "x": 206, "y": 44, "flags": 4}, + {"matrix": [5, 1], "x": 206, "y": 31, "flags": 4}, + {"matrix": [4, 1], "x": 206, "y": 18, "flags": 4}, + {"matrix": [4, 0], "x": 224, "y": 24, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 37, "flags": 4}, + {"x": 197, "y": 42, "flags": 2}, + {"x": 197, "y": 19, "flags": 2}, + {"x": 163, "y": 7, "flags": 2}, + {"x": 121, "y": 21, "flags": 2}, + {"x": 121, "y": 51, "flags": 2}, + {"x": 155, "y": 45, "flags": 2} + ], "max_brightness": 170, "split_count": [27, 27] }, diff --git a/keyboards/ergodox_ez/ergodox_ez.c b/keyboards/ergodox_ez/ergodox_ez.c index 9fdc814834..d2e89772c6 100644 --- a/keyboards/ergodox_ez/ergodox_ez.c +++ b/keyboards/ergodox_ez/ergodox_ez.c @@ -275,42 +275,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C2_11, C1_11, C3_11}, // LED23 {1, C5_11, C4_11, C6_11} // LED24 }; - - -led_config_t g_led_config = { { - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { 28, 33, 38, 43, 47, NO_LED }, - { 27, 32, 37, 42, 46, NO_LED }, - { 26, 31, 36, 41, 45, NO_LED }, - { 25, 30, 35, 40, 44, NO_LED }, - { 24, 29, 34, 39, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { 0, 5, 10, 15, NO_LED, NO_LED }, - { 1, 6, 11, 16, 20, NO_LED }, - { 2, 7, 12, 17, 21, NO_LED }, - { 3, 8, 13, 18, 22, NO_LED }, - { 4, 9, 14, 19, 23, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } -}, { - { 137, 0 }, { 154, 0 }, { 172, 0 }, { 189, 0 }, { 206, 0 }, { 137, 12 }, - { 154, 12 }, { 172, 12 }, { 189, 12 }, { 206, 12 }, { 137, 25 }, { 154, 25 }, - { 172, 25 }, { 189, 25 }, { 206, 25 }, { 137, 38 }, { 154, 38 }, { 172, 38 }, - { 189, 38 }, { 206, 38 }, { 154, 51 }, { 172, 51 }, { 189, 51 }, { 206, 51 }, - { 86, 0 }, { 68, 0 }, { 51, 0 }, { 34, 0 }, { 17, 0 }, { 86, 12 }, - { 68, 12 }, { 51, 12 }, { 34, 12 }, { 17, 12 }, { 86, 25 }, { 68, 25 }, - { 51, 25 }, { 34, 25 }, { 17, 25 }, { 86, 38 }, { 68, 38 }, { 51, 38 }, - { 34, 38 }, { 17, 38 }, { 68, 51 }, { 51, 51 }, { 34, 51 }, { 17, 51 } -}, { - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 1, 1, 1, 1, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 1, 1, 1, 1 -} }; // clang-format on # ifdef ORYX_CONFIGURATOR diff --git a/keyboards/ergodox_ez/info.json b/keyboards/ergodox_ez/info.json index f7b20b19e0..8ef8ed376d 100644 --- a/keyboards/ergodox_ez/info.json +++ b/keyboards/ergodox_ez/info.json @@ -69,6 +69,56 @@ "pixel_fractal": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [8, 0], "x": 137, "y": 0, "flags": 4}, + {"matrix": [9, 0], "x": 154, "y": 0, "flags": 4}, + {"matrix": [10, 0], "x": 172, "y": 0, "flags": 4}, + {"matrix": [11, 0], "x": 189, "y": 0, "flags": 4}, + {"matrix": [12, 0], "x": 206, "y": 0, "flags": 4}, + {"matrix": [8, 1], "x": 137, "y": 12, "flags": 4}, + {"matrix": [9, 1], "x": 154, "y": 12, "flags": 4}, + {"matrix": [10, 1], "x": 172, "y": 12, "flags": 4}, + {"matrix": [11, 1], "x": 189, "y": 12, "flags": 4}, + {"matrix": [12, 1], "x": 206, "y": 12, "flags": 4}, + {"matrix": [8, 2], "x": 137, "y": 25, "flags": 4}, + {"matrix": [9, 2], "x": 154, "y": 25, "flags": 4}, + {"matrix": [10, 2], "x": 172, "y": 25, "flags": 4}, + {"matrix": [11, 2], "x": 189, "y": 25, "flags": 4}, + {"matrix": [12, 2], "x": 206, "y": 25, "flags": 4}, + {"matrix": [8, 3], "x": 137, "y": 38, "flags": 4}, + {"matrix": [9, 3], "x": 154, "y": 38, "flags": 4}, + {"matrix": [10, 3], "x": 172, "y": 38, "flags": 4}, + {"matrix": [11, 3], "x": 189, "y": 38, "flags": 4}, + {"matrix": [12, 3], "x": 206, "y": 38, "flags": 4}, + {"matrix": [9, 4], "x": 154, "y": 51, "flags": 1}, + {"matrix": [10, 4], "x": 172, "y": 51, "flags": 1}, + {"matrix": [11, 4], "x": 189, "y": 51, "flags": 1}, + {"matrix": [12, 4], "x": 206, "y": 51, "flags": 1}, + {"matrix": [5, 0], "x": 86, "y": 0, "flags": 4}, + {"matrix": [4, 0], "x": 68, "y": 0, "flags": 4}, + {"matrix": [3, 0], "x": 51, "y": 0, "flags": 4}, + {"matrix": [2, 0], "x": 34, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 17, "y": 0, "flags": 4}, + {"matrix": [5, 1], "x": 86, "y": 12, "flags": 4}, + {"matrix": [4, 1], "x": 68, "y": 12, "flags": 4}, + {"matrix": [3, 1], "x": 51, "y": 12, "flags": 4}, + {"matrix": [2, 1], "x": 34, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 17, "y": 12, "flags": 4}, + {"matrix": [5, 2], "x": 86, "y": 25, "flags": 4}, + {"matrix": [4, 2], "x": 68, "y": 25, "flags": 4}, + {"matrix": [3, 2], "x": 51, "y": 25, "flags": 4}, + {"matrix": [2, 2], "x": 34, "y": 25, "flags": 4}, + {"matrix": [1, 2], "x": 17, "y": 25, "flags": 4}, + {"matrix": [5, 3], "x": 86, "y": 38, "flags": 4}, + {"matrix": [4, 3], "x": 68, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 51, "y": 38, "flags": 4}, + {"matrix": [2, 3], "x": 34, "y": 38, "flags": 4}, + {"matrix": [1, 3], "x": 17, "y": 38, "flags": 4}, + {"matrix": [4, 4], "x": 68, "y": 51, "flags": 1}, + {"matrix": [3, 4], "x": 51, "y": 51, "flags": 1}, + {"matrix": [2, 4], "x": 34, "y": 51, "flags": 1}, + {"matrix": [1, 4], "x": 17, "y": 51, "flags": 1} + ], "led_flush_limit": 26, "led_process_limit": 5, "sleep": true diff --git a/keyboards/evyd13/atom47/rev5/keyboard.json b/keyboards/evyd13/atom47/rev5/keyboard.json index 86ff90c19c..daf7e3677f 100644 --- a/keyboards/evyd13/atom47/rev5/keyboard.json +++ b/keyboards/evyd13/atom47/rev5/keyboard.json @@ -39,7 +39,57 @@ "pixel_flow": true, "pixel_fractal": true }, - "driver": "is31fl3733" + "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 0], "x": 9, "y": 8, "flags": 1}, + {"matrix": [0, 1], "x": 26, "y": 8, "flags": 4}, + {"matrix": [0, 2], "x": 43, "y": 8, "flags": 4}, + {"matrix": [0, 3], "x": 60, "y": 8, "flags": 4}, + {"matrix": [0, 4], "x": 78, "y": 8, "flags": 4}, + {"matrix": [0, 5], "x": 95, "y": 8, "flags": 4}, + {"matrix": [0, 6], "x": 112, "y": 8, "flags": 4}, + {"matrix": [0, 7], "x": 129, "y": 8, "flags": 4}, + {"matrix": [0, 8], "x": 146, "y": 8, "flags": 4}, + {"matrix": [0, 9], "x": 164, "y": 8, "flags": 4}, + {"matrix": [0, 10], "x": 181, "y": 8, "flags": 4}, + {"matrix": [0, 11], "x": 198, "y": 8, "flags": 1}, + {"matrix": [0, 12], "x": 215, "y": 8, "flags": 1}, + {"matrix": [1, 0], "x": 11, "y": 24, "flags": 1}, + {"matrix": [1, 1], "x": 30, "y": 24, "flags": 4}, + {"matrix": [1, 2], "x": 47, "y": 24, "flags": 4}, + {"matrix": [1, 3], "x": 64, "y": 24, "flags": 4}, + {"matrix": [1, 4], "x": 82, "y": 24, "flags": 4}, + {"matrix": [1, 5], "x": 99, "y": 24, "flags": 4}, + {"matrix": [1, 6], "x": 116, "y": 24, "flags": 4}, + {"matrix": [1, 7], "x": 134, "y": 24, "flags": 4}, + {"matrix": [1, 8], "x": 151, "y": 24, "flags": 4}, + {"matrix": [1, 9], "x": 168, "y": 24, "flags": 4}, + {"matrix": [1, 10], "x": 185, "y": 24, "flags": 4}, + {"matrix": [1, 12], "x": 209, "y": 24, "flags": 1}, + {"matrix": [2, 0], "x": 15, "y": 40, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 22, "flags": 8}, + {"matrix": [2, 2], "x": 39, "y": 40, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 40, "flags": 4}, + {"matrix": [2, 4], "x": 73, "y": 40, "flags": 4}, + {"matrix": [2, 5], "x": 90, "y": 40, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 40, "flags": 4}, + {"matrix": [2, 7], "x": 125, "y": 40, "flags": 4}, + {"matrix": [2, 8], "x": 142, "y": 40, "flags": 4}, + {"matrix": [2, 9], "x": 159, "y": 40, "flags": 4}, + {"matrix": [2, 10], "x": 177, "y": 40, "flags": 4}, + {"matrix": [2, 11], "x": 196, "y": 40, "flags": 1}, + {"matrix": [2, 12], "x": 215, "y": 40, "flags": 1}, + {"matrix": [3, 0], "x": 11, "y": 56, "flags": 1}, + {"matrix": [3, 1], "x": 30, "y": 56, "flags": 1}, + {"matrix": [3, 2], "x": 47, "y": 56, "flags": 1}, + {"matrix": [3, 3], "x": 64, "y": 56, "flags": 1}, + {"matrix": [3, 5], "x": 88, "y": 56, "flags": 1}, + {"matrix": [3, 7], "x": 127, "y": 56, "flags": 1}, + {"matrix": [3, 9], "x": 159, "y": 56, "flags": 1}, + {"matrix": [3, 10], "x": 177, "y": 56, "flags": 1}, + {"matrix": [3, 11], "x": 194, "y": 56, "flags": 1}, + {"matrix": [3, 12], "x": 213, "y": 56, "flags": 1} + ] }, "matrix_pins": { "cols": ["F0", "F1", "F4", "F5", "F6", "F7", "E6", "D7", "B4", "B5", "B6", "C6", "C7"], diff --git a/keyboards/evyd13/atom47/rev5/rev5.c b/keyboards/evyd13/atom47/rev5/rev5.c index b8ea0688cd..7e9eb6307d 100644 --- a/keyboards/evyd13/atom47/rev5/rev5.c +++ b/keyboards/evyd13/atom47/rev5/rev5.c @@ -77,73 +77,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {0, SW11_CS13, SW12_CS13, SW10_CS13} }; -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }, - { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, NO_LED, 24 }, - { 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37 }, - { 38, 39, 40, 41, NO_LED, 42, NO_LED, 43, NO_LED, 44, 45, 46, 47 } -}, { - // LED Index to Physical Position - { 9, 8 }, - { 26, 8 }, - { 43, 8 }, - { 60, 8 }, - { 78, 8 }, - { 95, 8 }, - { 112, 8 }, - { 129, 8 }, - { 146, 8 }, - { 164, 8 }, - { 181, 8 }, - { 198, 8 }, - { 215, 8 }, - - { 11, 24 }, - { 30, 24 }, - { 47, 24 }, - { 64, 24 }, - { 82, 24 }, - { 99, 24 }, - { 116, 24 }, - { 134, 24 }, - { 151, 24 }, - { 168, 24 }, - { 185, 24 }, - { 209, 24 }, - - { 15, 40 }, - { 20, 22 }, - { 39, 40 }, - { 56, 40 }, - { 73, 40 }, - { 90, 40 }, - { 108, 40 }, - { 125, 40 }, - { 142, 40 }, - { 159, 40 }, - { 177, 40 }, - { 196, 40 }, - { 215, 40 }, - - { 11, 56 }, - { 30, 56 }, - { 47, 56 }, - { 64, 56 }, - { 88, 56 }, - { 127, 56 }, - { 159, 56 }, - { 177, 56 }, - { 194, 56 }, - { 213, 56 }, -}, { - // LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/exclusive/e6_rgb/e6_rgb.c b/keyboards/exclusive/e6_rgb/e6_rgb.c index 9a7856306b..7e3bed8f2f 100644 --- a/keyboards/exclusive/e6_rgb/e6_rgb.c +++ b/keyboards/exclusive/e6_rgb/e6_rgb.c @@ -90,81 +90,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {0, SW5_CS16, SW4_CS16, SW6_CS16}, {0, SW2_CS16, SW1_CS16, SW3_CS16}, }; - -led_config_t g_led_config = { { - { 0, 1, 4, 5, 12, 13, 36, 20, 21, 24, 25, 16, 17, 28 }, - { 2, 6, 7, 14, 15, 37, 38, 22, 23, 26, 27, 18, 19, 30 }, - { 3, 8, 9, 32, 33, 39, 40, 44, 45, 48, 49, 52, 31, NO_LED }, - { 59, 10, 11, 34, 35, 41, 42, 46, 47, 50, 53, 54, 56, NO_LED }, - { 60, 61, 62, NO_LED, NO_LED, 43, 51, 55, 58, 57, NO_LED, NO_LED, NO_LED, NO_LED } -}, { -//cs1 - { 0, 0 }, { 17, 0 }, { 0, 16 }, { 0, 32 }, -//cs2 - { 34, 0 }, { 51, 0 }, { 17, 16 }, { 34, 16 }, -//cs3 - { 17, 32 }, { 34, 32 }, { 17, 48 }, { 34, 48 }, -//cs4 - { 68, 0 }, { 85, 0 }, { 51, 16 }, { 68, 16 }, -//cs5 - { 187, 0 }, { 204, 0 }, { 187, 16 }, { 204, 16 }, -//cs6 - { 119, 0 }, { 136, 0 }, { 119, 16 }, { 136, 16 }, -//cs7 - { 153, 0 }, { 170, 0 }, { 153, 16 }, { 170, 16 }, -//cs8 - { 221, 0 }, { 221, 0 }, { 221, 32 }, { 221, 16 }, -//cs9 - { 51, 32 }, { 68, 32 }, { 51, 48 }, { 68, 48 }, -//cs10 - { 102, 0 }, { 85, 16 }, { 102, 16 }, { 85, 32 }, -//cs11 - { 102, 32 }, { 85, 48 }, { 102, 48 }, { 102, 64 }, -//cs12 - { 119, 32 }, { 136, 32 }, { 119, 48 }, { 136, 48 }, -//cs13 - { 153, 32 }, { 170, 32 }, { 153, 48 }, { 136, 48 }, -//cs14 - { 187, 32 }, { 170, 48 }, { 187, 48 }, { 153, 48 }, -//cs15 - { 221, 48 }, { 221, 64 }, { 204, 64 }, -//cs16 - { 0, 48 }, { 0, 64 }, { 17, 64 }, { 34, 64 } -}, { -//cs1 - 1, 4, 1, 1, -//cs2 - 4, 4, 4, 4, -//cs3 - 4, 4, 4, 4, -//cs4 - 4, 4, 4, 4, -//cs5 - 4, 4, 4, 4, -//cs6 - 4, 4, 4, 4, -//cs7 - 4, 4, 4, 4, -//cs8 - 4, 4, 1, 1, -//cs9 - 4, 4, 4, 4, -//cs10 - 4, 4, 4, 4, -//cs11 - 4, 4, 4, 4, -//cs12 - 4, 4, 4, 4, -//cs13 - 4, 4, 4, 1, -//cs14 - 4, 4, 1, 1, -//cs15 - 1, 1, 1, -//cs16 - 1, 1, 1, 1 -} }; - #endif bool process_record_kb(uint16_t keycode, keyrecord_t *record) { diff --git a/keyboards/exclusive/e6_rgb/keyboard.json b/keyboards/exclusive/e6_rgb/keyboard.json index 52d77dfcaa..d65893cf31 100644 --- a/keyboards/exclusive/e6_rgb/keyboard.json +++ b/keyboards/exclusive/e6_rgb/keyboard.json @@ -8,7 +8,72 @@ "device_version": "0.6.2" }, "rgb_matrix": { - "driver": "is31fl3733" + "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 51, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 17, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 17, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 34, "y": 32, "flags": 4}, + {"matrix": [3, 1], "x": 17, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [0, 4], "x": 68, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 85, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [0, 11], "x": 187, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 204, "y": 0, "flags": 4}, + {"matrix": [1, 11], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 204, "y": 16, "flags": 4}, + {"matrix": [0, 7], "x": 119, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 136, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 119, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [0, 9], "x": 153, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 170, "y": 0, "flags": 4}, + {"matrix": [1, 9], "x": 153, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 170, "y": 16, "flags": 4}, + {"matrix": [0, 13], "x": 221, "y": 0, "flags": 4}, + {"x": 221, "y": 0, "flags": 4}, + {"matrix": [1, 13], "x": 221, "y": 32, "flags": 1}, + {"matrix": [2, 12], "x": 221, "y": 16, "flags": 1}, + {"matrix": [2, 3], "x": 51, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 32, "flags": 4}, + {"matrix": [3, 3], "x": 51, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 68, "y": 48, "flags": 4}, + {"matrix": [0, 6], "x": 102, "y": 0, "flags": 4}, + {"matrix": [1, 5], "x": 85, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 102, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 85, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 102, "y": 32, "flags": 4}, + {"matrix": [3, 5], "x": 85, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 102, "y": 48, "flags": 4}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, + {"matrix": [2, 7], "x": 119, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 136, "y": 32, "flags": 4}, + {"matrix": [3, 7], "x": 119, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 136, "y": 48, "flags": 4}, + {"matrix": [2, 9], "x": 153, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 170, "y": 32, "flags": 4}, + {"matrix": [3, 9], "x": 153, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 136, "y": 48, "flags": 1}, + {"matrix": [2, 11], "x": 187, "y": 32, "flags": 4}, + {"matrix": [3, 10], "x": 170, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 187, "y": 48, "flags": 1}, + {"matrix": [4, 7], "x": 153, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 221, "y": 48, "flags": 1}, + {"matrix": [4, 9], "x": 221, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 204, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 17, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 34, "y": 64, "flags": 1} + ] }, "features": { "bootmagic": true, diff --git a/keyboards/feker/ik75/ik75.c b/keyboards/feker/ik75/ik75.c index c4da77a844..d93de7f2ec 100644 --- a/keyboards/feker/ik75/ik75.c +++ b/keyboards/feker/ik75/ik75.c @@ -161,31 +161,4 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {1, SW10_CS15, SW12_CS15, SW11_CS15}, // 125, Underglow 39 {1, SW10_CS16, SW12_CS16, SW11_CS16}, // 126, Underglow 40 }; - -led_config_t g_led_config = { { - { 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, NO_LED, NO_LED }, - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, NO_LED, 102 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, NO_LED, 105 }, - { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, NO_LED, 44, 103, 106 }, - { 48, NO_LED, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, NO_LED, 59, 45, 101 }, - { 93, 94, 14, NO_LED, NO_LED, NO_LED, 15, NO_LED, NO_LED, 30, 31, NO_LED, 47, 60, 61, 62 } -}, { - {0 , 15}, {14 , 15}, {29 , 15}, {43 , 15}, {58 , 15}, {72 , 15}, {87 , 15}, {101, 15}, {116, 15}, {130, 15}, {145, 15}, {159, 15}, {173, 15}, {195, 15}, {38 , 61}, {92 , 61}, - {4 , 26}, {22 , 26}, {36 , 26}, {51 , 26}, {65 , 26}, {79 , 26}, {94 , 26}, {108, 26}, {123, 26}, {137, 26}, {152, 26}, {166, 26}, {181, 26}, {199, 26}, {173, 61}, {159, 61}, - {5 , 38}, {25 , 38}, {40 , 38}, {54 , 38}, {69 , 38}, {83 , 38}, {98 , 38}, {112, 38}, {126, 38}, {141, 38}, {155, 38}, {170, 38}, {193, 38}, {206, 52}, {210, 12}, {145, 61}, - {9 , 49}, {33 , 49}, {47 , 49}, {61 , 49}, {76 , 49}, {90 , 49}, {105, 49}, {119, 49}, {134, 49}, {148, 49}, {163, 49}, {182, 49}, {191, 64}, {206, 64}, {220, 64}, - {14 , 0}, {28 , 0}, {53 , 0}, {63 , 0}, {74 , 0}, {88 , 0}, {102, 0}, {116, 0}, {130, 0}, {144, 0}, {158, 0}, {172, 0}, {189, 0}, {210, 0}, {224, 0}, {224, 11}, - {0 , 0}, {18 , 0}, {33 , 0}, {47 , 0}, {61 , 0}, {79 , 0}, {94 , 0}, {108, 0}, {123, 0}, {141, 0}, {155, 0}, {170, 0}, {184, 0}, {202, 0}, {2 , 61}, {20 , 61}, - {0 , 0}, {0 , 11}, {0 , 27}, {0 , 37}, {224, 5}, {210, 5}, {217, 0}, {224, 15}, {224, 38}, {210, 18}, {224, 26}, {224, 49}, {224, 56}, {224, 45}, {224, 35}, {224, 24}, - {0 , 48}, {0 , 56}, {0 , 64}, {14 , 64}, {28 , 64}, {49 , 64}, {67 , 64}, {84 , 64}, {98 , 64}, {112, 64}, {126, 64}, {140, 64}, {158, 64}, {172, 64}, {196, 64}, {224, 64}, -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 8, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 2, 2, 2, 2, 1, 1, 4, 4, 4, 8, 4, 4, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 -} }; #endif diff --git a/keyboards/feker/ik75/keyboard.json b/keyboards/feker/ik75/keyboard.json index 03b86e5d8b..c368c188a7 100644 --- a/keyboards/feker/ik75/keyboard.json +++ b/keyboards/feker/ik75/keyboard.json @@ -55,6 +55,135 @@ "solid_multisplash": true }, "driver": "is31fl3733", + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 43, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 58, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 72, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 87, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 101, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 116, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 145, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 159, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 173, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 195, "y": 15, "flags": 1}, + {"matrix": [5, 2], "x": 38, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 92, "y": 61, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 36, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 79, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 94, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 108, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 123, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 137, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 152, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 166, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 181, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 199, "y": 26, "flags": 4}, + {"matrix": [5, 9], "x": 173, "y": 61, "flags": 1}, + {"matrix": [5, 10], "x": 159, "y": 61, "flags": 1}, + {"matrix": [3, 0], "x": 5, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 25, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 54, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 83, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 98, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 126, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 141, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 155, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 170, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 193, "y": 38, "flags": 1}, + {"matrix": [4, 14], "x": 206, "y": 52, "flags": 4}, + {"x": 210, "y": 12, "flags": 8}, + {"matrix": [5, 12], "x": 145, "y": 61, "flags": 1}, + {"matrix": [4, 0], "x": 9, "y": 49, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 47, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 61, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 76, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 90, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 105, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 119, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 134, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 148, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 163, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 182, "y": 49, "flags": 1}, + {"matrix": [5, 13], "x": 191, "y": 64, "flags": 4}, + {"matrix": [5, 14], "x": 206, "y": 64, "flags": 4}, + {"matrix": [5, 15], "x": 220, "y": 64, "flags": 4}, + {"x": 14, "y": 0, "flags": 2}, + {"x": 28, "y": 0, "flags": 2}, + {"x": 53, "y": 0, "flags": 2}, + {"x": 63, "y": 0, "flags": 2}, + {"x": 74, "y": 0, "flags": 2}, + {"x": 88, "y": 0, "flags": 2}, + {"x": 102, "y": 0, "flags": 2}, + {"x": 116, "y": 0, "flags": 2}, + {"x": 130, "y": 0, "flags": 2}, + {"x": 144, "y": 0, "flags": 2}, + {"x": 158, "y": 0, "flags": 2}, + {"x": 172, "y": 0, "flags": 2}, + {"x": 189, "y": 0, "flags": 2}, + {"x": 210, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 11, "flags": 2}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 18, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 47, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 79, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 94, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 108, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 123, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 141, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 155, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 170, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 184, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 2, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 0, "y": 11, "flags": 2}, + {"x": 0, "y": 27, "flags": 2}, + {"x": 0, "y": 37, "flags": 2}, + {"x": 224, "y": 5, "flags": 1}, + {"x": 210, "y": 5, "flags": 1}, + {"matrix": [4, 15], "x": 217, "y": 0, "flags": 4}, + {"matrix": [1, 15], "x": 224, "y": 15, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 38, "flags": 4}, + {"x": 210, "y": 18, "flags": 8}, + {"matrix": [2, 15], "x": 224, "y": 26, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 49, "flags": 4}, + {"x": 224, "y": 56, "flags": 2}, + {"x": 224, "y": 45, "flags": 2}, + {"x": 224, "y": 35, "flags": 2}, + {"x": 224, "y": 24, "flags": 2}, + {"x": 0, "y": 48, "flags": 2}, + {"x": 0, "y": 56, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 14, "y": 64, "flags": 2}, + {"x": 28, "y": 64, "flags": 2}, + {"x": 49, "y": 64, "flags": 2}, + {"x": 67, "y": 64, "flags": 2}, + {"x": 84, "y": 64, "flags": 2}, + {"x": 98, "y": 64, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 126, "y": 64, "flags": 2}, + {"x": 140, "y": 64, "flags": 2}, + {"x": 158, "y": 64, "flags": 2}, + {"x": 172, "y": 64, "flags": 2}, + {"x": 196, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2} + ], "max_brightness": 200 }, "build": { diff --git a/keyboards/frooastboard/walnut/keyboard.json b/keyboards/frooastboard/walnut/keyboard.json index f1958c04a2..923a0e97de 100644 --- a/keyboards/frooastboard/walnut/keyboard.json +++ b/keyboards/frooastboard/walnut/keyboard.json @@ -48,6 +48,56 @@ "speed": 191 }, "driver": "is31fl3737", + "layout": [ + {"x": 0, "y": 62, "flags": 2}, + {"x": 0, "y": 50, "flags": 2}, + {"x": 0, "y": 38, "flags": 2}, + {"x": 0, "y": 26, "flags": 2}, + {"x": 0, "y": 14, "flags": 2}, + {"x": 0, "y": 2, "flags": 2}, + {"x": 0, "y": 2, "flags": 2}, + {"x": 12, "y": 2, "flags": 2}, + {"x": 24, "y": 2, "flags": 2}, + {"x": 36, "y": 2, "flags": 2}, + {"x": 48, "y": 2, "flags": 2}, + {"x": 60, "y": 2, "flags": 2}, + {"x": 72, "y": 2, "flags": 2}, + {"x": 84, "y": 2, "flags": 2}, + {"x": 96, "y": 2, "flags": 2}, + {"x": 108, "y": 2, "flags": 2}, + {"x": 120, "y": 2, "flags": 2}, + {"x": 132, "y": 2, "flags": 2}, + {"x": 144, "y": 2, "flags": 2}, + {"x": 156, "y": 2, "flags": 2}, + {"x": 168, "y": 2, "flags": 2}, + {"x": 180, "y": 2, "flags": 2}, + {"x": 192, "y": 2, "flags": 2}, + {"x": 204, "y": 2, "flags": 2}, + {"x": 204, "y": 2, "flags": 2}, + {"x": 204, "y": 14, "flags": 2}, + {"x": 204, "y": 26, "flags": 2}, + {"x": 204, "y": 38, "flags": 2}, + {"x": 204, "y": 50, "flags": 2}, + {"x": 204, "y": 62, "flags": 2}, + {"x": 204, "y": 62, "flags": 2}, + {"x": 192, "y": 62, "flags": 2}, + {"x": 180, "y": 62, "flags": 2}, + {"x": 168, "y": 62, "flags": 2}, + {"x": 156, "y": 62, "flags": 2}, + {"x": 144, "y": 62, "flags": 2}, + {"x": 132, "y": 62, "flags": 2}, + {"x": 120, "y": 62, "flags": 2}, + {"x": 108, "y": 62, "flags": 2}, + {"x": 96, "y": 62, "flags": 2}, + {"x": 84, "y": 62, "flags": 2}, + {"x": 72, "y": 62, "flags": 2}, + {"x": 60, "y": 62, "flags": 2}, + {"x": 48, "y": 62, "flags": 2}, + {"x": 36, "y": 62, "flags": 2}, + {"x": 24, "y": 62, "flags": 2}, + {"x": 12, "y": 62, "flags": 2}, + {"x": 0, "y": 62, "flags": 2} + ], "max_brightness": 191, "sleep": true }, diff --git a/keyboards/frooastboard/walnut/walnut.c b/keyboards/frooastboard/walnut/walnut.c index 0de3467ae4..448895ec68 100644 --- a/keyboards/frooastboard/walnut/walnut.c +++ b/keyboards/frooastboard/walnut/walnut.c @@ -61,26 +61,4 @@ const is31fl3737_led_t PROGMEM g_is31fl3737_leds[IS31FL3737_LED_COUNT] = { {0, SW2_CS11, SW1_CS11, SW3_CS11}, {0, SW2_CS12, SW1_CS12, SW3_CS12} }; - -led_config_t g_led_config = { - { - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } - }, { - {0, 62}, {0, 50}, {0, 38}, {0, 26}, {0, 14}, {0, 2}, - {0, 2}, {12, 2}, {24, 2}, {36, 2}, {48, 2}, {60, 2}, {72, 2}, {84, 2}, {96, 2}, {108, 2}, {120, 2}, {132, 2}, {144, 2}, {156, 2}, {168, 2}, {180, 2}, {192, 2}, {204, 2}, - {204, 2}, {204, 14}, {204, 26}, {204, 38}, {204, 50}, {204, 62}, - {204, 62}, {192, 62}, {180, 62}, {168, 62}, {156, 62}, {144, 62}, {132, 62}, {120, 62}, {108, 62}, {96, 62}, {84, 62}, {72, 62}, {60, 62}, {48, 62}, {36, 62}, {24, 62}, {12, 62}, {0, 62} - }, { - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 - } -}; - #endif // defined(RGB_MATRIX_ENABLE) From 2d5cb23503d3a2a94a52713f9280b8a80b703385 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 03:00:32 -0600 Subject: [PATCH 026/255] Migrate `g_led_config` to DD (G) (#25598) --- .../geekboards/macropad_v2/keyboard.json | 44 +++++ .../geekboards/macropad_v2/macropad_v2.c | 56 ------- keyboards/geekboards/tester/keyboard.json | 10 ++ keyboards/geekboards/tester/tester.c | 13 -- keyboards/giabalanai/giabalanai.c | 60 ------- keyboards/giabalanai/keyboard.json | 125 ++++++++++++++ keyboards/gizmo_engineering/gk6/gk6.c | 98 ----------- keyboards/gizmo_engineering/gk6/keyboard.json | 65 ++++++++ keyboards/gmmk/gmmk2/p65/ansi/ansi.c | 115 ------------- keyboards/gmmk/gmmk2/p65/ansi/keyboard.json | 91 +++++++++++ keyboards/gmmk/gmmk2/p65/iso/iso.c | 116 ------------- keyboards/gmmk/gmmk2/p65/iso/keyboard.json | 92 +++++++++++ keyboards/gmmk/gmmk2/p96/ansi/ansi.c | 154 ------------------ keyboards/gmmk/gmmk2/p96/ansi/keyboard.json | 123 ++++++++++++++ keyboards/gmmk/gmmk2/p96/iso/iso.c | 149 ----------------- keyboards/gmmk/gmmk2/p96/iso/keyboard.json | 124 ++++++++++++++ keyboards/gmmk/numpad/keyboard.json | 35 +++- keyboards/gmmk/numpad/numpad.c | 48 ------ keyboards/gmmk/pro/rev1/ansi/ansi.c | 118 -------------- keyboards/gmmk/pro/rev1/ansi/keyboard.json | 102 ++++++++++++ keyboards/gmmk/pro/rev1/iso/iso.c | 119 -------------- keyboards/gmmk/pro/rev1/iso/keyboard.json | 103 ++++++++++++ keyboards/gmmk/pro/rev2/ansi/ansi.c | 118 -------------- keyboards/gmmk/pro/rev2/ansi/keyboard.json | 102 ++++++++++++ keyboards/gmmk/pro/rev2/iso/iso.c | 119 -------------- keyboards/gmmk/pro/rev2/iso/keyboard.json | 103 ++++++++++++ keyboards/gopolar/gg86/gg86.c | 35 +--- keyboards/gopolar/gg86/keyboard.json | 102 ++++++++++++ 28 files changed, 1222 insertions(+), 1317 deletions(-) delete mode 100644 keyboards/geekboards/macropad_v2/macropad_v2.c diff --git a/keyboards/geekboards/macropad_v2/keyboard.json b/keyboards/geekboards/macropad_v2/keyboard.json index a34912aee3..2719faa764 100644 --- a/keyboards/geekboards/macropad_v2/keyboard.json +++ b/keyboards/geekboards/macropad_v2/keyboard.json @@ -51,6 +51,50 @@ "val": 192 }, "driver": "ws2812", + "layout": [ + {"matrix": [1, 1], "x": 85, "y": 46, "flags": 4}, + {"x": 85, "y": 64, "flags": 2}, + {"x": 67, "y": 64, "flags": 2}, + {"x": 49, "y": 64, "flags": 2}, + {"x": 31, "y": 64, "flags": 2}, + {"x": 13, "y": 64, "flags": 2}, + {"matrix": [1, 0], "x": 31, "y": 46, "flags": 4}, + {"x": 0, "y": 55, "flags": 2}, + {"x": 0, "y": 46, "flags": 2}, + {"x": 0, "y": 37, "flags": 2}, + {"x": 0, "y": 27, "flags": 2}, + {"x": 0, "y": 18, "flags": 2}, + {"x": 0, "y": 9, "flags": 2}, + {"matrix": [0, 0], "x": 31, "y": 18, "flags": 4}, + {"x": 13, "y": 0, "flags": 2}, + {"x": 31, "y": 0, "flags": 2}, + {"x": 49, "y": 0, "flags": 2}, + {"x": 67, "y": 0, "flags": 2}, + {"x": 85, "y": 0, "flags": 2}, + {"matrix": [0, 1], "x": 85, "y": 18, "flags": 4}, + {"matrix": [0, 2], "x": 139, "y": 18, "flags": 4}, + {"x": 139, "y": 0, "flags": 2}, + {"x": 157, "y": 0, "flags": 2}, + {"x": 175, "y": 0, "flags": 2}, + {"x": 193, "y": 0, "flags": 2}, + {"x": 211, "y": 0, "flags": 2}, + {"matrix": [0, 3], "x": 193, "y": 18, "flags": 4}, + {"x": 224, "y": 9, "flags": 2}, + {"x": 224, "y": 18, "flags": 2}, + {"x": 224, "y": 27, "flags": 2}, + {"x": 224, "y": 37, "flags": 2}, + {"x": 224, "y": 46, "flags": 2}, + {"x": 224, "y": 55, "flags": 2}, + {"matrix": [1, 3], "x": 193, "y": 46, "flags": 4}, + {"x": 211, "y": 64, "flags": 2}, + {"x": 193, "y": 64, "flags": 2}, + {"x": 175, "y": 64, "flags": 2}, + {"x": 157, "y": 64, "flags": 2}, + {"matrix": [1, 2], "x": 139, "y": 46, "flags": 4}, + {"x": 139, "y": 64, "flags": 2}, + {"x": 121, "y": 64, "flags": 2}, + {"x": 103, "y": 64, "flags": 2} + ], "sleep": true }, "processor": "STM32F072", diff --git a/keyboards/geekboards/macropad_v2/macropad_v2.c b/keyboards/geekboards/macropad_v2/macropad_v2.c deleted file mode 100644 index ba65697988..0000000000 --- a/keyboards/geekboards/macropad_v2/macropad_v2.c +++ /dev/null @@ -1,56 +0,0 @@ -/* Copyright 2020 Geekboards ltd. (geekboards.ru / geekboards.de) - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - {13,19,20,26}, {6,0,38,33}, -}, { - // LED Index to Physical Position - {85,46}, - {85,64},{67,64},{49,64},{31,64},{13,64}, - {31,46}, - {0,55},{0,46},{0,37},{0,27},{0,18},{0,9}, - {31,18}, - {13,0},{31,0},{49,0},{67,0},{85,0}, - {85,18},{139,18}, - {139,0},{157,0},{175,0},{193,0},{211,0}, - {193,18}, - {224,9},{224,18},{224,27},{224,37},{224,46},{224,55}, - {193,46}, - {211,64},{193,64},{175,64},{157,64}, - {139,46}, - {139,64},{121,64},{103,64}, -}, { - // LED Index to Flag, 2=backlight, 4=key - 4, - 2, 2, 2, 2, 2, - 4, - 2, 2, 2, 2, 2, 2, - 4, - 2, 2, 2, 2, 2, - 4, 4, - 2, 2, 2, 2, 2, - 4, - 2, 2, 2, 2, 2, 2, - 4, - 2, 2, 2, 2, - 4, - 2, 2, 2 -} }; - -#endif diff --git a/keyboards/geekboards/tester/keyboard.json b/keyboards/geekboards/tester/keyboard.json index 2b85961df8..236c2c697f 100644 --- a/keyboards/geekboards/tester/keyboard.json +++ b/keyboards/geekboards/tester/keyboard.json @@ -50,6 +50,16 @@ "solid_reactive_multinexus": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 151, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [1, 1], "x": 75, "y": 64, "flags": 4}, + {"matrix": [1, 2], "x": 151, "y": 64, "flags": 4}, + {"matrix": [1, 3], "x": 224, "y": 64, "flags": 4} + ], "sleep": true }, "features": { diff --git a/keyboards/geekboards/tester/tester.c b/keyboards/geekboards/tester/tester.c index 4daa4ef062..001fd06e9d 100644 --- a/keyboards/geekboards/tester/tester.c +++ b/keyboards/geekboards/tester/tester.c @@ -16,16 +16,3 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {0, C1_7, C2_7, C3_7}, //A7 {0, C1_8, C2_8, C3_8}, //A8 }; - -led_config_t g_led_config = { -{ - { 0, 1, 2, 3}, - { 4, 5, 6, 7} -}, -{ - { 0, 0 }, { 75, 0 }, { 151, 0 }, { 224, 0 }, { 0, 64 }, { 75, 64 }, { 151, 64 }, { 224, 64 } -}, -{ - 4, 4, 4, 4, 4, 4, 4, 4 -} -}; diff --git a/keyboards/giabalanai/giabalanai.c b/keyboards/giabalanai/giabalanai.c index 6f8e359479..ae6a1547da 100644 --- a/keyboards/giabalanai/giabalanai.c +++ b/keyboards/giabalanai/giabalanai.c @@ -88,66 +88,6 @@ NO_LED, 84, 83, 82, 81, 80, 79, NO_LED, NO_LED, NO_LED # endif #endif // RGBLIGHT_ENABLE -#ifdef RGB_MATRIX_ENABLE - -led_config_t g_led_config = { - { - { 74, 75, 98, 99, 122, 63, 86, 87, 110, 111 }, - { 73, 76, 97, 100, 121, 64, 85, 88, 109, 112 }, - { 72, 77, 96, 101, 120, 65, 84, 89, 108, 113 }, - { 71, 78, 95, 102, 119, 66, 83, 90, 107, 114 }, - { 70, 79, 94, 103, 118, 67, 82, 91, 106, 115 }, - { 69, 80, 93, 104, 117, 68, 81, 92, 105, 116 }, - { 26, 27, 28, 29, 30, 31, 32, NO_LED, NO_LED, NO_LED }, - { 50, 49, 48, 47, 46, 45, 44, NO_LED, NO_LED, NO_LED }, - { 25, 51, 52, 53, 54, 55, 56, NO_LED, NO_LED, NO_LED }, - { NO_LED, 12, 37, 36, 35, 34, 33, NO_LED, NO_LED, NO_LED }, - { NO_LED, 38, 39, 40, 41, 42, 43, NO_LED, NO_LED, NO_LED }, - { NO_LED, 62, 61, 60, 59, 58, 57, NO_LED, NO_LED, NO_LED } - }, { - { 120, 0 }, { 128, 0 }, { 136, 0 }, { 144, 0 }, { 152, 0 }, { 160, 0 }, { 168, 0 }, { 176, 0 }, { 184, 0 }, { 192, 0 }, { 200, 0 }, { 208, 0 }, - { 224, 32 }, - { 212, 16 }, { 204, 16 }, { 196, 16 }, { 188, 16 }, { 180, 16 }, { 172, 16 }, { 164, 16 }, { 156, 16 }, { 148, 16 }, { 140, 16 }, { 132, 16 }, { 124, 16 }, { 116, 16 }, - { 120, 32 }, { 128, 32 }, { 136, 32 }, { 144, 32 }, { 152, 32 }, { 160, 32 }, { 168, 32 }, { 176, 32 }, { 184, 32 }, { 192, 32 }, { 200, 32 }, { 208, 32 }, - { 212, 48 }, { 204, 48 }, { 196, 48 }, { 188, 48 }, { 180, 48 }, { 172, 48 }, { 164, 48 }, { 156, 48 }, { 148, 48 }, { 140, 48 }, { 132, 48 }, { 124, 48 }, { 116, 48 }, - { 120, 64 }, { 128, 64 }, { 136, 64 }, { 144, 64 }, { 152, 64 }, { 160, 64 }, { 168, 64 }, { 176, 64 }, { 184, 64 }, { 192, 64 }, { 200, 64 }, { 208, 64 }, - - { 88, 0 }, { 80, 0 }, { 72, 0 }, { 64, 0 }, { 56, 0 }, { 48, 0 }, { 40, 0 }, { 32, 0 }, { 24, 0 }, { 16, 0 }, { 8, 0 }, { 0, 0 }, - { 4, 16 }, { 12, 16 }, { 20, 16 }, { 28, 16 }, { 36, 16 }, { 44, 16 }, { 52, 16 }, { 60, 16 }, { 68, 16 }, { 76, 16 }, { 84, 16 }, { 92, 16 }, - { 96, 32 }, { 88, 32 }, { 80, 32 }, { 72, 32 }, { 64, 32 }, { 56, 32 }, { 48, 32 }, { 40, 32 }, { 32, 32 }, { 24, 32 }, { 16, 32 }, { 8, 32 }, - { 12, 48 }, { 20, 48 }, { 28, 48 }, { 36, 48 }, { 44, 48 }, { 52, 48 }, { 60, 48 }, { 68, 48 }, { 76, 48 }, { 84, 48 }, { 92, 48 }, { 100, 48 }, - { 104, 64 }, { 96, 64 }, { 88, 64 }, { 80, 64 }, { 72, 64 }, { 64, 64 }, { 56, 64 }, { 48, 64 }, { 40, 64 }, { 32, 64 }, { 24, 64 }, { 16, 64 } - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - -// const uint8_t PROGMEM convert_led_location2number[] = { -// 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, -// 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, -// 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, 88, 87, -// 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, -// 122, 121, 120, 119, 118, 117, 116, 115, 114, 113, 112, 111, -// -// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, -// 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, -// 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 12, -// 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, -// 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62 -// }; -#endif - void my_process_midi4Bass(uint8_t channel, keyrecord_t *record, uint8_t *chord_status, uint8_t chord, uint16_t root_note, bool is_single_bass) { uint8_t velocity = midi_config.velocity; diff --git a/keyboards/giabalanai/keyboard.json b/keyboards/giabalanai/keyboard.json index 2e2357fe4c..9bb6b49336 100644 --- a/keyboards/giabalanai/keyboard.json +++ b/keyboards/giabalanai/keyboard.json @@ -17,6 +17,131 @@ "multisplash": true }, "driver": "ws2812", + "layout": [ + {"x": 120, "y": 0, "flags": 4}, + {"x": 128, "y": 0, "flags": 4}, + {"x": 136, "y": 0, "flags": 4}, + {"x": 144, "y": 0, "flags": 4}, + {"x": 152, "y": 0, "flags": 4}, + {"x": 160, "y": 0, "flags": 4}, + {"x": 168, "y": 0, "flags": 4}, + {"x": 176, "y": 0, "flags": 4}, + {"x": 184, "y": 0, "flags": 4}, + {"x": 192, "y": 0, "flags": 4}, + {"x": 200, "y": 0, "flags": 4}, + {"x": 208, "y": 0, "flags": 4}, + {"matrix": [9, 1], "x": 224, "y": 32, "flags": 4}, + {"x": 212, "y": 16, "flags": 4}, + {"x": 204, "y": 16, "flags": 4}, + {"x": 196, "y": 16, "flags": 4}, + {"x": 188, "y": 16, "flags": 4}, + {"x": 180, "y": 16, "flags": 4}, + {"x": 172, "y": 16, "flags": 4}, + {"x": 164, "y": 16, "flags": 4}, + {"x": 156, "y": 16, "flags": 4}, + {"x": 148, "y": 16, "flags": 4}, + {"x": 140, "y": 16, "flags": 4}, + {"x": 132, "y": 16, "flags": 4}, + {"x": 124, "y": 16, "flags": 4}, + {"matrix": [8, 0], "x": 116, "y": 16, "flags": 4}, + {"matrix": [6, 0], "x": 120, "y": 32, "flags": 4}, + {"matrix": [6, 1], "x": 128, "y": 32, "flags": 4}, + {"matrix": [6, 2], "x": 136, "y": 32, "flags": 4}, + {"matrix": [6, 3], "x": 144, "y": 32, "flags": 4}, + {"matrix": [6, 4], "x": 152, "y": 32, "flags": 4}, + {"matrix": [6, 5], "x": 160, "y": 32, "flags": 4}, + {"matrix": [6, 6], "x": 168, "y": 32, "flags": 4}, + {"matrix": [9, 6], "x": 176, "y": 32, "flags": 4}, + {"matrix": [9, 5], "x": 184, "y": 32, "flags": 4}, + {"matrix": [9, 4], "x": 192, "y": 32, "flags": 4}, + {"matrix": [9, 3], "x": 200, "y": 32, "flags": 4}, + {"matrix": [9, 2], "x": 208, "y": 32, "flags": 4}, + {"matrix": [10, 1], "x": 212, "y": 48, "flags": 4}, + {"matrix": [10, 2], "x": 204, "y": 48, "flags": 4}, + {"matrix": [10, 3], "x": 196, "y": 48, "flags": 4}, + {"matrix": [10, 4], "x": 188, "y": 48, "flags": 4}, + {"matrix": [10, 5], "x": 180, "y": 48, "flags": 4}, + {"matrix": [10, 6], "x": 172, "y": 48, "flags": 4}, + {"matrix": [7, 6], "x": 164, "y": 48, "flags": 4}, + {"matrix": [7, 5], "x": 156, "y": 48, "flags": 4}, + {"matrix": [7, 4], "x": 148, "y": 48, "flags": 4}, + {"matrix": [7, 3], "x": 140, "y": 48, "flags": 4}, + {"matrix": [7, 2], "x": 132, "y": 48, "flags": 4}, + {"matrix": [7, 1], "x": 124, "y": 48, "flags": 4}, + {"matrix": [7, 0], "x": 116, "y": 48, "flags": 4}, + {"matrix": [8, 1], "x": 120, "y": 64, "flags": 4}, + {"matrix": [8, 2], "x": 128, "y": 64, "flags": 4}, + {"matrix": [8, 3], "x": 136, "y": 64, "flags": 4}, + {"matrix": [8, 4], "x": 144, "y": 64, "flags": 4}, + {"matrix": [8, 5], "x": 152, "y": 64, "flags": 4}, + {"matrix": [8, 6], "x": 160, "y": 64, "flags": 4}, + {"matrix": [11, 6], "x": 168, "y": 64, "flags": 4}, + {"matrix": [11, 5], "x": 176, "y": 64, "flags": 4}, + {"matrix": [11, 4], "x": 184, "y": 64, "flags": 4}, + {"matrix": [11, 3], "x": 192, "y": 64, "flags": 4}, + {"matrix": [11, 2], "x": 200, "y": 64, "flags": 4}, + {"matrix": [11, 1], "x": 208, "y": 64, "flags": 4}, + {"matrix": [0, 5], "x": 88, "y": 0, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 0, "flags": 4}, + {"matrix": [3, 5], "x": 64, "y": 0, "flags": 4}, + {"matrix": [4, 5], "x": 56, "y": 0, "flags": 4}, + {"matrix": [5, 5], "x": 48, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 40, "y": 0, "flags": 4}, + {"matrix": [4, 0], "x": 32, "y": 0, "flags": 4}, + {"matrix": [3, 0], "x": 24, "y": 0, "flags": 4}, + {"matrix": [2, 0], "x": 16, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 8, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 12, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 20, "y": 16, "flags": 4}, + {"matrix": [3, 1], "x": 28, "y": 16, "flags": 4}, + {"matrix": [4, 1], "x": 36, "y": 16, "flags": 4}, + {"matrix": [5, 1], "x": 44, "y": 16, "flags": 4}, + {"matrix": [5, 6], "x": 52, "y": 16, "flags": 4}, + {"matrix": [4, 6], "x": 60, "y": 16, "flags": 4}, + {"matrix": [3, 6], "x": 68, "y": 16, "flags": 4}, + {"matrix": [2, 6], "x": 76, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 84, "y": 16, "flags": 4}, + {"matrix": [0, 6], "x": 92, "y": 16, "flags": 4}, + {"matrix": [0, 7], "x": 96, "y": 32, "flags": 4}, + {"matrix": [1, 7], "x": 88, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 80, "y": 32, "flags": 4}, + {"matrix": [3, 7], "x": 72, "y": 32, "flags": 4}, + {"matrix": [4, 7], "x": 64, "y": 32, "flags": 4}, + {"matrix": [5, 7], "x": 56, "y": 32, "flags": 4}, + {"matrix": [5, 2], "x": 48, "y": 32, "flags": 4}, + {"matrix": [4, 2], "x": 40, "y": 32, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 24, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 16, "y": 32, "flags": 4}, + {"matrix": [0, 2], "x": 8, "y": 32, "flags": 4}, + {"matrix": [0, 3], "x": 12, "y": 48, "flags": 4}, + {"matrix": [1, 3], "x": 20, "y": 48, "flags": 4}, + {"matrix": [2, 3], "x": 28, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 36, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 44, "y": 48, "flags": 4}, + {"matrix": [5, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [5, 8], "x": 60, "y": 48, "flags": 4}, + {"matrix": [4, 8], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 76, "y": 48, "flags": 4}, + {"matrix": [2, 8], "x": 84, "y": 48, "flags": 4}, + {"matrix": [1, 8], "x": 92, "y": 48, "flags": 4}, + {"matrix": [0, 8], "x": 100, "y": 48, "flags": 4}, + {"matrix": [0, 9], "x": 104, "y": 64, "flags": 4}, + {"matrix": [1, 9], "x": 96, "y": 64, "flags": 4}, + {"matrix": [2, 9], "x": 88, "y": 64, "flags": 4}, + {"matrix": [3, 9], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 72, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 64, "y": 64, "flags": 4}, + {"matrix": [5, 4], "x": 56, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 48, "y": 64, "flags": 4}, + {"matrix": [3, 4], "x": 40, "y": 64, "flags": 4}, + {"matrix": [2, 4], "x": 32, "y": 64, "flags": 4}, + {"matrix": [1, 4], "x": 24, "y": 64, "flags": 4}, + {"matrix": [0, 4], "x": 16, "y": 64, "flags": 4} + ], "max_brightness": 50 }, "rgblight": { diff --git a/keyboards/gizmo_engineering/gk6/gk6.c b/keyboards/gizmo_engineering/gk6/gk6.c index fe85ecc235..a6f6d93438 100755 --- a/keyboards/gizmo_engineering/gk6/gk6.c +++ b/keyboards/gizmo_engineering/gk6/gk6.c @@ -82,102 +82,4 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C9_15, C8_15, C6_14}, //61 led59 {1, C9_16, C7_15, C6_15}, //62 led60 }; - -led_config_t g_led_config = { { - // Key Matrix to LED Index -// 1, 6, 10, 15, 20, 26, 31, 37, 42, 47, 52, 56 - {0, 5, 10, 15, 20, 26, 31, 37, 43, 48, 53, 58}, -// 2, 7, 11, 16, 21, 27, 32, 37b, 43, 48, 52b, 57 - {1, 6, 11, 16, 21, 27, 32, 38, 44, 49, 54, 59}, -// 3, 7b, 12, 17, 22, 28, 33, 38, 44, 49, 53, 58 - {2, 7, 12, 17, 22, 28, 33, 39, 45, 50, 55, 60}, -// 4, 8, 13, 18, 23, 29, 34, 39, 45, 50, 54, 59 - {3, 8, 13, 18, 23, 29, 34, 40, 46, 51, 56, 61}, -// 5, 9, 14, 19, 25, NO_LED, NO_LED, 41, 46, 51, 55, 60 - {4, 9, 14, 19, 25, NO_LED, NO_LED, 42, 47, 52, 57, 62}, -}, { - // LED Index to Physical Position - {0, 0}, // 0 - {0, 16}, // 1 - {0, 32}, // 2 - {0, 48}, // 3 - {0, 64}, // 4 - - {21, 0}, // 5 - {21, 16}, // 6 - {21, 32}, // 7 - {21, 48}, // 8 - {21, 64}, // 9 - - {41, 0}, // 10 - {41, 16}, // 11 - {41, 32}, // 12 - {41, 48}, // 13 - {41, 64}, // 14 - - {61, 0}, // 15 - {61, 16}, // 16 - {61, 32}, // 17 - {61, 48}, // 18 - {61, 64}, // 19 - - {82, 0}, // 20 - {82, 16}, // 21 - {82, 32}, // 22 - {82, 48}, // 23 - {82, 64}, // 24 - {92, 64}, // 25 - - {102, 0}, // 26 - {102, 16}, // 27 - {102, 32}, // 28 - {102, 48}, // 29 - {102, 64}, // 30 - - {122, 0}, // 31 - {122, 16}, // 32 - {122, 32}, // 33 - {122, 48}, // 34 - {122, 64}, // 35 - {112, 64}, // 36 - - {142, 0}, // 37 - {142, 16}, // 38 - {142, 32}, // 39 - {142, 48}, // 40 - {142, 64}, // 41 - {132, 64}, // 42 - - {163, 0}, // 43 - {163, 16}, // 44 - {163, 32}, // 45 - {163, 48}, // 46 - {163, 64}, // 47 - - {183, 0}, // 48 - {183, 16}, // 49 - {183, 32}, // 50 - {183, 48}, // 51 - {183, 64}, // 52 - - {203, 0}, // 53 - {203, 16}, // 54 - {203, 32}, // 55 - {203, 48}, // 56 - {203, 64}, // 57 - - {224, 0}, // 58 - {224, 16}, // 59 - {224, 32}, // 60 - {224, 48}, // 61 - {224, 64}, // 62 -}, { - // LED Index to Flag - 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, - 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, - 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, - 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, - 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, - 0x04, 0x04, 0x04 -} }; #endif diff --git a/keyboards/gizmo_engineering/gk6/keyboard.json b/keyboards/gizmo_engineering/gk6/keyboard.json index 45e5bf0706..70ab615a7c 100644 --- a/keyboards/gizmo_engineering/gk6/keyboard.json +++ b/keyboards/gizmo_engineering/gk6/keyboard.json @@ -24,6 +24,71 @@ "solid_reactive_multicross": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [0, 1], "x": 21, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 21, "y": 32, "flags": 4}, + {"matrix": [3, 1], "x": 21, "y": 48, "flags": 4}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4}, + {"matrix": [0, 2], "x": 41, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 41, "y": 16, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [3, 2], "x": 41, "y": 48, "flags": 4}, + {"matrix": [4, 2], "x": 41, "y": 64, "flags": 4}, + {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 61, "y": 16, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 32, "flags": 4}, + {"matrix": [3, 3], "x": 61, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 61, "y": 64, "flags": 4}, + {"matrix": [0, 4], "x": 82, "y": 0, "flags": 4}, + {"matrix": [1, 4], "x": 82, "y": 16, "flags": 4}, + {"matrix": [2, 4], "x": 82, "y": 32, "flags": 4}, + {"matrix": [3, 4], "x": 82, "y": 48, "flags": 4}, + {"x": 82, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 92, "y": 64, "flags": 4}, + {"matrix": [0, 5], "x": 102, "y": 0, "flags": 4}, + {"matrix": [1, 5], "x": 102, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 102, "y": 32, "flags": 4}, + {"matrix": [3, 5], "x": 102, "y": 48, "flags": 4}, + {"x": 102, "y": 64, "flags": 4}, + {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 122, "y": 16, "flags": 4}, + {"matrix": [2, 6], "x": 122, "y": 32, "flags": 4}, + {"matrix": [3, 6], "x": 122, "y": 48, "flags": 4}, + {"x": 122, "y": 64, "flags": 4}, + {"x": 112, "y": 64, "flags": 4}, + {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 142, "y": 16, "flags": 4}, + {"matrix": [2, 7], "x": 142, "y": 32, "flags": 4}, + {"matrix": [3, 7], "x": 142, "y": 48, "flags": 4}, + {"x": 142, "y": 64, "flags": 4}, + {"matrix": [4, 7], "x": 132, "y": 64, "flags": 4}, + {"matrix": [0, 8], "x": 163, "y": 0, "flags": 4}, + {"matrix": [1, 8], "x": 163, "y": 16, "flags": 4}, + {"matrix": [2, 8], "x": 163, "y": 32, "flags": 4}, + {"matrix": [3, 8], "x": 163, "y": 48, "flags": 4}, + {"matrix": [4, 8], "x": 163, "y": 64, "flags": 4}, + {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4}, + {"matrix": [1, 9], "x": 183, "y": 16, "flags": 4}, + {"matrix": [2, 9], "x": 183, "y": 32, "flags": 4}, + {"matrix": [3, 9], "x": 183, "y": 48, "flags": 4}, + {"matrix": [4, 9], "x": 183, "y": 64, "flags": 4}, + {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4}, + {"matrix": [1, 10], "x": 203, "y": 16, "flags": 4}, + {"matrix": [2, 10], "x": 203, "y": 32, "flags": 4}, + {"matrix": [3, 10], "x": 203, "y": 48, "flags": 4}, + {"matrix": [4, 10], "x": 203, "y": 64, "flags": 4}, + {"matrix": [0, 11], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 11], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 11], "x": 224, "y": 32, "flags": 4}, + {"matrix": [3, 11], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 11], "x": 224, "y": 64, "flags": 4} + ], "react_on_keyup": true, "sleep": true }, diff --git a/keyboards/gmmk/gmmk2/p65/ansi/ansi.c b/keyboards/gmmk/gmmk2/p65/ansi/ansi.c index b3ac9906db..94aa93d8ea 100644 --- a/keyboards/gmmk/gmmk2/p65/ansi/ansi.c +++ b/keyboards/gmmk/gmmk2/p65/ansi/ansi.c @@ -118,119 +118,4 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {1, SW9_CS16, SW9_CS17, SW9_CS18 }, // 87 LED 19 {1, SW10_CS16, SW10_CS17, SW10_CS18} // 88 LED 20 }; - -#define __ NO_LED - -led_config_t g_led_config = {{ - { 44, 57, __, 64, __, 66, 58, 55}, - { 16, 15, 31, 0, 45, 59, __, 1}, - { 17, 30, 32, 60, 46, 14, 29, 2}, - { 18, 61, 33, 63, 47, 56, 62, 3}, - { 19, 20, 34, 35, 48, 49, 5, 4}, - { 22, 21, 37, 36, 51, 50, 6, 7}, - { 23, 27, 38, __, 52, 43, 12, 8}, - { 24, 13, 39, 65, 53, __, 28, 9}, - { 25, 26, 40, 41, 42, 54, 11, 10} -}, { - {14, 0 }, // 0 Esc - {28, 0 }, // 1 1 - {42, 0 }, // 2 2 - {56, 0 }, // 3 3 - {70, 0 }, // 4 4 - {84, 0 }, // 5 5 - {98, 0 }, // 6 6 - {112, 0 }, // 7 7 - {126, 0 }, // 8 8 - {140, 0 }, // 9 9 - {154, 0 }, // 10 0 - {168, 0 }, // 11 - - {182, 0 }, // 12 = - {196, 0 }, // 13 Backspace - {210, 0 }, // 14 Del - - {14, 16}, // 15 Tab - {28, 16}, // 16 Q - {42, 16}, // 17 W - {56, 16}, // 18 E - {70, 16}, // 19 R - {84, 16}, // 20 T - {98, 16}, // 21 Y - {112, 16}, // 22 U - {126, 16}, // 23 I - {140, 16}, // 24 O - {154, 16}, // 25 P - {168, 16}, // 26 [ - {182, 16}, // 27 ] - {196, 16}, // 28 \| - {210, 16}, // 29 PgUp - - {14, 32}, // 30 Caps Lock - {28, 32}, // 31 A - {42, 32}, // 32 S - {56, 32}, // 33 D - {70, 32}, // 34 F - {84, 32}, // 35 G - {98, 32}, // 36 H - {112, 32}, // 37 J - {126, 32}, // 38 K - {140, 32}, // 39 L - {154, 32}, // 40 ; - {168, 32}, // 41 ' - {196, 32}, // 42 Enter - {210, 32}, // 43 PgDn - - {14, 48}, // 44 Shift_L - {42, 48}, // 45 Z - {56, 48}, // 46 X - {70, 48}, // 47 C - {84, 48}, // 48 V - {98, 48}, // 49 B - {112, 48}, // 50 N - {126, 48}, // 51 M - {140, 48}, // 52 , - {154, 48}, // 53 . - {168, 48}, // 54 / - {182, 48}, // 55 Shift_R - {196, 48}, // 56 Up - {210, 48}, // 57 END - - {14, 64}, // 58 Ctrl_L - {28, 64}, // 59 Win_L - {42, 64}, // 60 Alt_L - {84, 64}, // 61 Space - {126, 64}, // 62 Alt_R - {140, 64}, // 63 FN - {182, 64}, // 64 Left - {196, 64}, // 65 Down - {210, 64}, // 66 Right - - {224, 0 }, // 69 LED 1 - {224, 7 }, // 70 LED 2 - {224, 14}, // 71 LED 3 - {224, 21}, // 72 LED 4 - {224, 28}, // 73 LED 5 - {224, 35}, // 74 LED 6 - {224, 42}, // 75 LED 7 - {224, 49}, // 76 LED 8 - {224, 56}, // 77 LED 9 - {224, 64}, // 78 LED 10 - {0, 0 }, // 79 LED 11 - {0, 7 }, // 80 LED 12 - {0, 14}, // 81 LED 13 - {0, 21}, // 82 LED 14 - {0, 28}, // 83 LED 15 - {0, 35}, // 84 LED 16 - {0, 42}, // 85 LED 17 - {0, 49}, // 86 LED 18 - {0, 56}, // 87 LED 19 - {0, 64}, // 88 LED 20 -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 -} }; #endif diff --git a/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json b/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json index 70c308da5f..14603e0283 100644 --- a/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json +++ b/keyboards/gmmk/gmmk2/p65/ansi/keyboard.json @@ -28,6 +28,97 @@ }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [1, 3], "x": 14, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 28, "y": 0, "flags": 4}, + {"matrix": [2, 7], "x": 42, "y": 0, "flags": 4}, + {"matrix": [3, 7], "x": 56, "y": 0, "flags": 4}, + {"matrix": [4, 7], "x": 70, "y": 0, "flags": 4}, + {"matrix": [4, 6], "x": 84, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 98, "y": 0, "flags": 4}, + {"matrix": [5, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [6, 7], "x": 126, "y": 0, "flags": 4}, + {"matrix": [7, 7], "x": 140, "y": 0, "flags": 4}, + {"matrix": [8, 7], "x": 154, "y": 0, "flags": 4}, + {"matrix": [8, 6], "x": 168, "y": 0, "flags": 4}, + {"matrix": [6, 6], "x": 182, "y": 0, "flags": 4}, + {"matrix": [7, 1], "x": 196, "y": 0, "flags": 4}, + {"matrix": [2, 5], "x": 210, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 28, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 42, "y": 16, "flags": 4}, + {"matrix": [3, 0], "x": 56, "y": 16, "flags": 4}, + {"matrix": [4, 0], "x": 70, "y": 16, "flags": 4}, + {"matrix": [4, 1], "x": 84, "y": 16, "flags": 4}, + {"matrix": [5, 1], "x": 98, "y": 16, "flags": 4}, + {"matrix": [5, 0], "x": 112, "y": 16, "flags": 4}, + {"matrix": [6, 0], "x": 126, "y": 16, "flags": 4}, + {"matrix": [7, 0], "x": 140, "y": 16, "flags": 4}, + {"matrix": [8, 0], "x": 154, "y": 16, "flags": 4}, + {"matrix": [8, 1], "x": 168, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 182, "y": 16, "flags": 4}, + {"matrix": [7, 6], "x": 196, "y": 16, "flags": 4}, + {"matrix": [2, 6], "x": 210, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 14, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 42, "y": 32, "flags": 4}, + {"matrix": [3, 2], "x": 56, "y": 32, "flags": 4}, + {"matrix": [4, 2], "x": 70, "y": 32, "flags": 4}, + {"matrix": [4, 3], "x": 84, "y": 32, "flags": 4}, + {"matrix": [5, 3], "x": 98, "y": 32, "flags": 4}, + {"matrix": [5, 2], "x": 112, "y": 32, "flags": 4}, + {"matrix": [6, 2], "x": 126, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 140, "y": 32, "flags": 4}, + {"matrix": [8, 2], "x": 154, "y": 32, "flags": 4}, + {"matrix": [8, 3], "x": 168, "y": 32, "flags": 4}, + {"matrix": [8, 4], "x": 196, "y": 32, "flags": 4}, + {"matrix": [6, 5], "x": 210, "y": 32, "flags": 4}, + {"matrix": [0, 0], "x": 14, "y": 48, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 48, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 48, "flags": 4}, + {"matrix": [4, 4], "x": 84, "y": 48, "flags": 4}, + {"matrix": [4, 5], "x": 98, "y": 48, "flags": 4}, + {"matrix": [5, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [5, 4], "x": 126, "y": 48, "flags": 4}, + {"matrix": [6, 4], "x": 140, "y": 48, "flags": 4}, + {"matrix": [7, 4], "x": 154, "y": 48, "flags": 4}, + {"matrix": [8, 5], "x": 168, "y": 48, "flags": 4}, + {"matrix": [0, 7], "x": 182, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 196, "y": 48, "flags": 4}, + {"matrix": [0, 1], "x": 210, "y": 48, "flags": 4}, + {"matrix": [0, 6], "x": 14, "y": 64, "flags": 4}, + {"matrix": [1, 5], "x": 28, "y": 64, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 84, "y": 64, "flags": 4}, + {"matrix": [3, 6], "x": 126, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 140, "y": 64, "flags": 4}, + {"matrix": [0, 3], "x": 182, "y": 64, "flags": 4}, + {"matrix": [7, 3], "x": 196, "y": 64, "flags": 4}, + {"matrix": [0, 5], "x": 210, "y": 64, "flags": 4}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 7, "flags": 2}, + {"x": 224, "y": 14, "flags": 2}, + {"x": 224, "y": 21, "flags": 2}, + {"x": 224, "y": 28, "flags": 2}, + {"x": 224, "y": 35, "flags": 2}, + {"x": 224, "y": 42, "flags": 2}, + {"x": 224, "y": 49, "flags": 2}, + {"x": 224, "y": 56, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 0, "y": 7, "flags": 2}, + {"x": 0, "y": 14, "flags": 2}, + {"x": 0, "y": 21, "flags": 2}, + {"x": 0, "y": 28, "flags": 2}, + {"x": 0, "y": 35, "flags": 2}, + {"x": 0, "y": 42, "flags": 2}, + {"x": 0, "y": 49, "flags": 2}, + {"x": 0, "y": 56, "flags": 2}, + {"x": 0, "y": 64, "flags": 2} + ] + }, "layout_aliases": { "LAYOUT": "LAYOUT_65_ansi_blocker" }, diff --git a/keyboards/gmmk/gmmk2/p65/iso/iso.c b/keyboards/gmmk/gmmk2/p65/iso/iso.c index abadaccd34..bc9cfe6a83 100644 --- a/keyboards/gmmk/gmmk2/p65/iso/iso.c +++ b/keyboards/gmmk/gmmk2/p65/iso/iso.c @@ -119,120 +119,4 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {1, SW9_CS16, SW9_CS17, SW9_CS18 }, // 86 LED 19 {1, SW10_CS16, SW10_CS17, SW10_CS18} // 87 LED 20 }; - -#define __ NO_LED - -led_config_t g_led_config = {{ - { 44, 58, 45, 65, __, 67, 59, 56}, - { 16, 15, 31, 0, 46, 60, __, 1}, - { 17, 30, 32, 61, 47, 14, 29, 2}, - { 18, 62, 33, 64, 48, 57, 63, 3}, - { 19, 20, 34, 35, 49, 50, 5, 4}, - { 22, 21, 37, 36, 52, 51, 6, 7}, - { 23, 27, 38, __, 53, 43, 12, 8}, - { 24, 13, 39, 66, 54, 42, __, 9}, - { 25, 26, 40, 41, 28, 55, 11, 10} -}, { - {14, 0 }, // 0 Esc - {28, 0 }, // 1 1 - {42, 0 }, // 2 2 - {56, 0 }, // 3 3 - {70, 0 }, // 4 4 - {84, 0 }, // 5 5 - {98, 0 }, // 6 6 - {112, 0 }, // 7 7 - {126, 0 }, // 8 8 - {140, 0 }, // 9 9 - {154, 0 }, // 10 0 - {168, 0 }, // 11 - - {182, 0 }, // 12 = - {196, 0 }, // 13 Backspace - {210, 0 }, // 14 HOME - - {14, 16}, // 15 Tab - {28, 16}, // 16 Q - {42, 16}, // 17 W - {56, 16}, // 18 E - {70, 16}, // 19 R - {84, 16}, // 20 T - {98, 16}, // 21 Y - {112, 16}, // 22 U - {126, 16}, // 23 I - {140, 16}, // 24 O - {154, 16}, // 25 P - {168, 16}, // 26 [ - {182, 16}, // 27 ] - {196, 16}, // 28 ENTER - {210, 16}, // 29 PgUp - - {14, 32}, // 30 Caps Lock - {28, 32}, // 31 A - {42, 32}, // 32 S - {56, 32}, // 33 D - {70, 32}, // 34 F - {84, 32}, // 35 G - {98, 32}, // 36 H - {112, 32}, // 37 J - {126, 32}, // 38 K - {140, 32}, // 39 L - {154, 32}, // 40 ; - {168, 32}, // 41 ' - {182, 32}, // 42 k42 - {210, 32}, // 43 PgDn - - {14, 48}, // 44 Shift_L - {28, 48}, // 45 k45 - {42, 48}, // 46 Z - {56, 48}, // 47 X - {70, 48}, // 48 C - {84, 48}, // 49 V - {98, 48}, // 50 B - {112, 48}, // 51 N - {126, 48}, // 52 M - {140, 48}, // 53 , - {154, 48}, // 54 . - {168, 48}, // 55 / - {182, 48}, // 56 Shift_R - {196, 48}, // 57 Up - {210, 48}, // 58 END - - {14, 64}, // 59 Ctrl_L - {28, 64}, // 60 Win_L - {42, 64}, // 61 Alt_L - {84, 64}, // 62 Space - {126, 64}, // 63 Alt_R - {140, 64}, // 64 FN - {182, 64}, // 65 Left - {196, 64}, // 66 Down - {210, 64}, // 67 Right - - {224, 0 }, // 68 LED 1 - {224, 7 }, // 69 LED 2 - {224, 14}, // 70 LED 3 - {224, 21}, // 71 LED 4 - {224, 28}, // 72 LED 5 - {224, 35}, // 73 LED 6 - {224, 42}, // 74 LED 7 - {224, 49}, // 75 LED 8 - {224, 56}, // 76 LED 9 - {224, 64}, // 77 LED 10 - {0, 0 }, // 78 LED 11 - {0, 7 }, // 79 LED 12 - {0, 14}, // 80 LED 13 - {0, 21}, // 81 LED 14 - {0, 28}, // 82 LED 15 - {0, 35}, // 83 LED 16 - {0, 42}, // 84 LED 17 - {0, 49}, // 85 LED 18 - {0, 56}, // 86 LED 19 - {0, 64}, // 87 LED 20 -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 -} }; #endif diff --git a/keyboards/gmmk/gmmk2/p65/iso/keyboard.json b/keyboards/gmmk/gmmk2/p65/iso/keyboard.json index 9240268b4f..6a2f848ea6 100644 --- a/keyboards/gmmk/gmmk2/p65/iso/keyboard.json +++ b/keyboards/gmmk/gmmk2/p65/iso/keyboard.json @@ -28,6 +28,98 @@ }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [1, 3], "x": 14, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 28, "y": 0, "flags": 4}, + {"matrix": [2, 7], "x": 42, "y": 0, "flags": 4}, + {"matrix": [3, 7], "x": 56, "y": 0, "flags": 4}, + {"matrix": [4, 7], "x": 70, "y": 0, "flags": 4}, + {"matrix": [4, 6], "x": 84, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 98, "y": 0, "flags": 4}, + {"matrix": [5, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [6, 7], "x": 126, "y": 0, "flags": 4}, + {"matrix": [7, 7], "x": 140, "y": 0, "flags": 4}, + {"matrix": [8, 7], "x": 154, "y": 0, "flags": 4}, + {"matrix": [8, 6], "x": 168, "y": 0, "flags": 4}, + {"matrix": [6, 6], "x": 182, "y": 0, "flags": 4}, + {"matrix": [7, 1], "x": 196, "y": 0, "flags": 4}, + {"matrix": [2, 5], "x": 210, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 28, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 42, "y": 16, "flags": 4}, + {"matrix": [3, 0], "x": 56, "y": 16, "flags": 4}, + {"matrix": [4, 0], "x": 70, "y": 16, "flags": 4}, + {"matrix": [4, 1], "x": 84, "y": 16, "flags": 4}, + {"matrix": [5, 1], "x": 98, "y": 16, "flags": 4}, + {"matrix": [5, 0], "x": 112, "y": 16, "flags": 4}, + {"matrix": [6, 0], "x": 126, "y": 16, "flags": 4}, + {"matrix": [7, 0], "x": 140, "y": 16, "flags": 4}, + {"matrix": [8, 0], "x": 154, "y": 16, "flags": 4}, + {"matrix": [8, 1], "x": 168, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 182, "y": 16, "flags": 4}, + {"matrix": [8, 4], "x": 196, "y": 16, "flags": 4}, + {"matrix": [2, 6], "x": 210, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 14, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 42, "y": 32, "flags": 4}, + {"matrix": [3, 2], "x": 56, "y": 32, "flags": 4}, + {"matrix": [4, 2], "x": 70, "y": 32, "flags": 4}, + {"matrix": [4, 3], "x": 84, "y": 32, "flags": 4}, + {"matrix": [5, 3], "x": 98, "y": 32, "flags": 4}, + {"matrix": [5, 2], "x": 112, "y": 32, "flags": 4}, + {"matrix": [6, 2], "x": 126, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 140, "y": 32, "flags": 4}, + {"matrix": [8, 2], "x": 154, "y": 32, "flags": 4}, + {"matrix": [8, 3], "x": 168, "y": 32, "flags": 4}, + {"matrix": [7, 5], "x": 182, "y": 32, "flags": 4}, + {"matrix": [6, 5], "x": 210, "y": 32, "flags": 4}, + {"matrix": [0, 0], "x": 14, "y": 48, "flags": 4}, + {"matrix": [0, 2], "x": 28, "y": 48, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 48, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 48, "flags": 4}, + {"matrix": [4, 4], "x": 84, "y": 48, "flags": 4}, + {"matrix": [4, 5], "x": 98, "y": 48, "flags": 4}, + {"matrix": [5, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [5, 4], "x": 126, "y": 48, "flags": 4}, + {"matrix": [6, 4], "x": 140, "y": 48, "flags": 4}, + {"matrix": [7, 4], "x": 154, "y": 48, "flags": 4}, + {"matrix": [8, 5], "x": 168, "y": 48, "flags": 4}, + {"matrix": [0, 7], "x": 182, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 196, "y": 48, "flags": 4}, + {"matrix": [0, 1], "x": 210, "y": 48, "flags": 4}, + {"matrix": [0, 6], "x": 14, "y": 64, "flags": 4}, + {"matrix": [1, 5], "x": 28, "y": 64, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 84, "y": 64, "flags": 4}, + {"matrix": [3, 6], "x": 126, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 140, "y": 64, "flags": 4}, + {"matrix": [0, 3], "x": 182, "y": 64, "flags": 4}, + {"matrix": [7, 3], "x": 196, "y": 64, "flags": 4}, + {"matrix": [0, 5], "x": 210, "y": 64, "flags": 4}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 7, "flags": 2}, + {"x": 224, "y": 14, "flags": 2}, + {"x": 224, "y": 21, "flags": 2}, + {"x": 224, "y": 28, "flags": 2}, + {"x": 224, "y": 35, "flags": 2}, + {"x": 224, "y": 42, "flags": 2}, + {"x": 224, "y": 49, "flags": 2}, + {"x": 224, "y": 56, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 0, "y": 7, "flags": 2}, + {"x": 0, "y": 14, "flags": 2}, + {"x": 0, "y": 21, "flags": 2}, + {"x": 0, "y": 28, "flags": 2}, + {"x": 0, "y": 35, "flags": 2}, + {"x": 0, "y": 42, "flags": 2}, + {"x": 0, "y": 49, "flags": 2}, + {"x": 0, "y": 56, "flags": 2}, + {"x": 0, "y": 64, "flags": 2} + ] + }, "community_layouts": ["65_iso_blocker"], "layouts": { "LAYOUT_65_iso_blocker": { diff --git a/keyboards/gmmk/gmmk2/p96/ansi/ansi.c b/keyboards/gmmk/gmmk2/p96/ansi/ansi.c index 5b2b5893f7..dc61fd813f 100644 --- a/keyboards/gmmk/gmmk2/p96/ansi/ansi.c +++ b/keyboards/gmmk/gmmk2/p96/ansi/ansi.c @@ -151,160 +151,6 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {1, SW9_CS16, SW9_CS17, SW9_CS18}, // 119, LED 19 {1, SW10_CS16, SW10_CS17, SW10_CS18} // 120, LED 20 }; - -#define __ NO_LED - -led_config_t g_led_config = {{ - { 0, 18, 36, 54, 70, 87, 14, 94}, - { 1, 19, 37, 55, __, 88, 15, 82}, - { 2, 20, 38, 56, 71, 89, 16, 95}, - { 3, 21, 39, 57, 72, __, 17, 96}, - { 4, 22, 40, 58, 73, __, 32, 97}, - { 5, 23, 41, 59, 74, __, 33, 98}, - { 6, 24, 42, 60, 75, 90, 34, 83}, - { 7, 25, 43, 61, 76, __, 35, 84}, - { 8, 26, 44, 62, 77, __, 50, 85}, - { 9, 27, 45, 63, 78, 91, 51, 86}, - {10, 28, 46, 64, 79, 92, 52, 67}, - {11, 29, 47, 65, 80, __, 53, 68}, - {12, 30, 48, __, __, 93, __, 69}, - {13, 31, 49, 66, 81, __, __, __} -}, { - { 11, 0}, // 0, k00, Esc - { 22, 0}, // 1, k10, F1 - { 33, 0}, // 2, k20, F2 - { 44, 0}, // 3, k30, F3 - { 55, 0}, // 4, k40, F4 - { 66, 0}, // 5, k50, F5 - { 77, 0}, // 6, k60, F6 - { 88, 0}, // 7, k70, F7 - { 99, 0}, // 8, k80, F8 - { 110, 0}, // 9, k90, F9 - { 121, 0}, // 10, ka0, F10 - { 132, 0}, // 11, kb0, F11 - { 143, 0}, // 12, kc0, F12 - { 154, 0}, // 13, kd0, Printscreen - { 165, 0}, // 14, k06, Delete - { 176, 0}, // 15, k16, Insert - { 187, 0}, // 16, k26, Page Up - { 198, 0}, // 17, k36, Page Down - - { 11, 11}, // 18, k01, ` - { 22, 11}, // 19, k11, 1 - { 33, 11}, // 20, k21, 2 - { 44, 11}, // 21, k31, 3 - { 55, 11}, // 22, k41, 4 - { 66, 11}, // 23, k51, 5 - { 77, 11}, // 24, k61, 6 - { 88, 11}, // 25, k71, 7 - { 99, 11}, // 26, k81, 8 - { 110, 11}, // 27, k91, 9 - { 121, 11}, // 28, ka1, 0 - { 132, 11}, // 29, kb1, - - { 143, 11}, // 30, kc1, = - { 154, 11}, // 31, kd1, Backspace - { 165, 11}, // 32, k46, Num Lock - { 176, 11}, // 33, k56, Num / - { 187, 11}, // 34, k66, Num * - { 198, 11}, // 35, k76, Num - - - { 11, 22}, // 36, k02, Tab - { 22, 22}, // 37, k12, Q - { 33, 22}, // 38, k22, W - { 44, 22}, // 39, k32, E - { 55, 22}, // 40, k42, R - { 66, 22}, // 41, k52, T - { 77, 22}, // 42, k62, Y - { 88, 22}, // 43, k72, U - { 99, 22}, // 44, k82, I - { 110, 22}, // 45, k92, O - { 121, 22}, // 46, ka2, P - { 132, 22}, // 47, kb2, [ - { 143, 22}, // 48, kc2, ] - { 154, 22}, // 49, kd3, "\\" - { 165, 22}, // 50, k86, Num 7 - { 176, 22}, // 51, k96, Num 8 - { 187, 22}, // 52, ka6, Num 9 - { 198, 22}, // 53, kb6, Num + - - { 11, 33}, // 54, k03, Caps Lock - { 22, 33}, // 55, k13, A - { 33, 33}, // 56, k23, S - { 44, 33}, // 57, k33, D - { 55, 33}, // 58, k43, F - { 66, 33}, // 59, k53, G - { 77, 33}, // 60, k63, H - { 88, 33}, // 61, k73, J - { 99, 33}, // 62, k83, K - { 110, 33}, // 63, k93, L - { 121, 33}, // 64, ka3, ; - { 132, 33}, // 65, kb3, ' - { 154, 33}, // 66, kc3, Enter - { 165, 33}, // 67, ka7, Num 4 - { 176, 33}, // 68, kb7, Num 5 - { 187, 33}, // 69, kc7, Num 6 - - { 11, 44}, // 70, k04, Shift_L - { 33, 44}, // 71, k24, Z - { 44, 44}, // 72, k34, X - { 55, 44}, // 73, k44, C - { 66, 44}, // 74, k54, V - { 77, 44}, // 75, k64, B - { 88, 44}, // 76, k74, N - { 99, 44}, // 77, k84, M - { 110, 44}, // 78, k94, , - { 121, 44}, // 79, ka4, . - { 132, 44}, // 80, kb4, / - { 143, 44}, // 81, kd4, Shift_R - { 154, 44}, // 82, k17, Up - { 165, 44}, // 83, k67, Num 1 - { 176, 44}, // 84, k77, Num 2 - { 187, 44}, // 85, k87, Num 3 - { 198, 44}, // 86, k97, Enter_R - - { 11, 55}, // 87, k05, Ctrl_L - { 22, 55}, // 88, k15, Win_L - { 33, 55}, // 89, k25, Alt_L - { 77, 55}, // 90, k65, Space - { 110, 55}, // 91, k95, Alt_R - { 121, 55}, // 92, ka5, FN - { 132, 55}, // 93, kc5, Ctrl_R - { 143, 55}, // 94, k07, Left - { 154, 55}, // 95, k27, Down - { 165, 55}, // 96, k37, Right - { 176, 55}, // 97, k47, Num 0 - { 187, 55}, // 98, k57, Num . - - { 0, 0}, // 101, LED 1 - { 0, 6}, // 102, LED 2 - { 0, 12}, // 103, LED 3 - { 0, 18}, // 104, LED 4 - { 0, 24}, // 105, LED 5 - { 0, 30}, // 106, LED 6 - { 0, 36}, // 107, LED 7 - { 0, 42}, // 108, LED 8 - { 0, 48}, // 109, LED 9 - { 0, 54}, // 110, LED 10 - { 209, 0}, // 111, LED 11 - { 209, 6}, // 112, LED 12 - { 209, 12}, // 113, LED 13 - { 209, 18}, // 114, LED 14 - { 209, 24}, // 115, LED 15 - { 209, 30}, // 116, LED 16 - { 209, 36}, // 117, LED 17 - { 209, 42}, // 118, LED 18 - { 209, 48}, // 119, LED 19 - { 209, 54} // 120, LED 20 -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 -} }; #endif #ifdef EEPROM_ENABLE diff --git a/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json b/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json index 0646be8c88..74332b1f84 100644 --- a/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json +++ b/keyboards/gmmk/gmmk2/p96/ansi/keyboard.json @@ -32,6 +32,129 @@ }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 11, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 22, "y": 0, "flags": 4}, + {"matrix": [2, 0], "x": 33, "y": 0, "flags": 4}, + {"matrix": [3, 0], "x": 44, "y": 0, "flags": 4}, + {"matrix": [4, 0], "x": 55, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 66, "y": 0, "flags": 4}, + {"matrix": [6, 0], "x": 77, "y": 0, "flags": 4}, + {"matrix": [7, 0], "x": 88, "y": 0, "flags": 4}, + {"matrix": [8, 0], "x": 99, "y": 0, "flags": 4}, + {"matrix": [9, 0], "x": 110, "y": 0, "flags": 4}, + {"matrix": [10, 0], "x": 121, "y": 0, "flags": 4}, + {"matrix": [11, 0], "x": 132, "y": 0, "flags": 4}, + {"matrix": [12, 0], "x": 143, "y": 0, "flags": 4}, + {"matrix": [13, 0], "x": 154, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 165, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 176, "y": 0, "flags": 4}, + {"matrix": [2, 6], "x": 187, "y": 0, "flags": 4}, + {"matrix": [3, 6], "x": 198, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 11, "y": 11, "flags": 4}, + {"matrix": [1, 1], "x": 22, "y": 11, "flags": 4}, + {"matrix": [2, 1], "x": 33, "y": 11, "flags": 4}, + {"matrix": [3, 1], "x": 44, "y": 11, "flags": 4}, + {"matrix": [4, 1], "x": 55, "y": 11, "flags": 4}, + {"matrix": [5, 1], "x": 66, "y": 11, "flags": 4}, + {"matrix": [6, 1], "x": 77, "y": 11, "flags": 4}, + {"matrix": [7, 1], "x": 88, "y": 11, "flags": 4}, + {"matrix": [8, 1], "x": 99, "y": 11, "flags": 4}, + {"matrix": [9, 1], "x": 110, "y": 11, "flags": 4}, + {"matrix": [10, 1], "x": 121, "y": 11, "flags": 4}, + {"matrix": [11, 1], "x": 132, "y": 11, "flags": 4}, + {"matrix": [12, 1], "x": 143, "y": 11, "flags": 4}, + {"matrix": [13, 1], "x": 154, "y": 11, "flags": 4}, + {"matrix": [4, 6], "x": 165, "y": 11, "flags": 1}, + {"matrix": [5, 6], "x": 176, "y": 11, "flags": 4}, + {"matrix": [6, 6], "x": 187, "y": 11, "flags": 4}, + {"matrix": [7, 6], "x": 198, "y": 11, "flags": 4}, + {"matrix": [0, 2], "x": 11, "y": 22, "flags": 4}, + {"matrix": [1, 2], "x": 22, "y": 22, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 22, "flags": 4}, + {"matrix": [3, 2], "x": 44, "y": 22, "flags": 4}, + {"matrix": [4, 2], "x": 55, "y": 22, "flags": 4}, + {"matrix": [5, 2], "x": 66, "y": 22, "flags": 4}, + {"matrix": [6, 2], "x": 77, "y": 22, "flags": 4}, + {"matrix": [7, 2], "x": 88, "y": 22, "flags": 4}, + {"matrix": [8, 2], "x": 99, "y": 22, "flags": 4}, + {"matrix": [9, 2], "x": 110, "y": 22, "flags": 4}, + {"matrix": [10, 2], "x": 121, "y": 22, "flags": 4}, + {"matrix": [11, 2], "x": 132, "y": 22, "flags": 4}, + {"matrix": [12, 2], "x": 143, "y": 22, "flags": 4}, + {"matrix": [13, 2], "x": 154, "y": 22, "flags": 4}, + {"matrix": [8, 6], "x": 165, "y": 22, "flags": 4}, + {"matrix": [9, 6], "x": 176, "y": 22, "flags": 4}, + {"matrix": [10, 6], "x": 187, "y": 22, "flags": 4}, + {"matrix": [11, 6], "x": 198, "y": 22, "flags": 4}, + {"matrix": [0, 3], "x": 11, "y": 33, "flags": 1}, + {"matrix": [1, 3], "x": 22, "y": 33, "flags": 4}, + {"matrix": [2, 3], "x": 33, "y": 33, "flags": 4}, + {"matrix": [3, 3], "x": 44, "y": 33, "flags": 4}, + {"matrix": [4, 3], "x": 55, "y": 33, "flags": 4}, + {"matrix": [5, 3], "x": 66, "y": 33, "flags": 4}, + {"matrix": [6, 3], "x": 77, "y": 33, "flags": 4}, + {"matrix": [7, 3], "x": 88, "y": 33, "flags": 4}, + {"matrix": [8, 3], "x": 99, "y": 33, "flags": 4}, + {"matrix": [9, 3], "x": 110, "y": 33, "flags": 4}, + {"matrix": [10, 3], "x": 121, "y": 33, "flags": 4}, + {"matrix": [11, 3], "x": 132, "y": 33, "flags": 4}, + {"matrix": [13, 3], "x": 154, "y": 33, "flags": 4}, + {"matrix": [10, 7], "x": 165, "y": 33, "flags": 4}, + {"matrix": [11, 7], "x": 176, "y": 33, "flags": 4}, + {"matrix": [12, 7], "x": 187, "y": 33, "flags": 4}, + {"matrix": [0, 4], "x": 11, "y": 44, "flags": 4}, + {"matrix": [2, 4], "x": 33, "y": 44, "flags": 4}, + {"matrix": [3, 4], "x": 44, "y": 44, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 44, "flags": 4}, + {"matrix": [5, 4], "x": 66, "y": 44, "flags": 4}, + {"matrix": [6, 4], "x": 77, "y": 44, "flags": 4}, + {"matrix": [7, 4], "x": 88, "y": 44, "flags": 4}, + {"matrix": [8, 4], "x": 99, "y": 44, "flags": 4}, + {"matrix": [9, 4], "x": 110, "y": 44, "flags": 4}, + {"matrix": [10, 4], "x": 121, "y": 44, "flags": 4}, + {"matrix": [11, 4], "x": 132, "y": 44, "flags": 4}, + {"matrix": [13, 4], "x": 143, "y": 44, "flags": 4}, + {"matrix": [1, 7], "x": 154, "y": 44, "flags": 4}, + {"matrix": [6, 7], "x": 165, "y": 44, "flags": 4}, + {"matrix": [7, 7], "x": 176, "y": 44, "flags": 4}, + {"matrix": [8, 7], "x": 187, "y": 44, "flags": 4}, + {"matrix": [9, 7], "x": 198, "y": 44, "flags": 4}, + {"matrix": [0, 5], "x": 11, "y": 55, "flags": 4}, + {"matrix": [1, 5], "x": 22, "y": 55, "flags": 4}, + {"matrix": [2, 5], "x": 33, "y": 55, "flags": 4}, + {"matrix": [6, 5], "x": 77, "y": 55, "flags": 4}, + {"matrix": [9, 5], "x": 110, "y": 55, "flags": 4}, + {"matrix": [10, 5], "x": 121, "y": 55, "flags": 4}, + {"matrix": [12, 5], "x": 132, "y": 55, "flags": 4}, + {"matrix": [0, 7], "x": 143, "y": 55, "flags": 4}, + {"matrix": [2, 7], "x": 154, "y": 55, "flags": 4}, + {"matrix": [3, 7], "x": 165, "y": 55, "flags": 4}, + {"matrix": [4, 7], "x": 176, "y": 55, "flags": 4}, + {"matrix": [5, 7], "x": 187, "y": 55, "flags": 4}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 0, "y": 6, "flags": 2}, + {"x": 0, "y": 12, "flags": 2}, + {"x": 0, "y": 18, "flags": 2}, + {"x": 0, "y": 24, "flags": 2}, + {"x": 0, "y": 30, "flags": 2}, + {"x": 0, "y": 36, "flags": 2}, + {"x": 0, "y": 42, "flags": 2}, + {"x": 0, "y": 48, "flags": 2}, + {"x": 0, "y": 54, "flags": 2}, + {"x": 209, "y": 0, "flags": 2}, + {"x": 209, "y": 6, "flags": 2}, + {"x": 209, "y": 12, "flags": 2}, + {"x": 209, "y": 18, "flags": 2}, + {"x": 209, "y": 24, "flags": 2}, + {"x": 209, "y": 30, "flags": 2}, + {"x": 209, "y": 36, "flags": 2}, + {"x": 209, "y": 42, "flags": 2}, + {"x": 209, "y": 48, "flags": 2}, + {"x": 209, "y": 54, "flags": 2} + ] + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gmmk/gmmk2/p96/iso/iso.c b/keyboards/gmmk/gmmk2/p96/iso/iso.c index 9a5c357307..7da63dfae6 100644 --- a/keyboards/gmmk/gmmk2/p96/iso/iso.c +++ b/keyboards/gmmk/gmmk2/p96/iso/iso.c @@ -152,155 +152,6 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {1, SW9_CS16, SW9_CS17, SW9_CS18}, // 119, LED 19 {1, SW10_CS16, SW10_CS17, SW10_CS18} // 120, LED 20 }; - -#define __ NO_LED - -led_config_t g_led_config = {{ - { 0, 18, 36, 54, 70, 88, 14, 95}, - { 1, 19, 37, 55, 71, 89, 15, 83}, - { 2, 20, 38, 56, 72, 90, 16, 96}, - { 3, 21, 39, 57, 73, __, 17, 97}, - { 4, 22, 40, 58, 74, __, 32, 98}, - { 5, 23, 41, 59, 75, __, 33, 99}, - { 6, 24, 42, 60, 76, 91, 34, 84}, - { 7, 25, 43, 61, 77, __, 35, 85}, - { 8, 26, 44, 62, 78, __, 50, 86}, - { 9, 27, 45, 63, 79, 92, 51, 87}, - {10, 28, 46, 64, 80, 93, 52, 67}, - {11, 29, 47, 65, 81, __, 53, 68}, - {12, 30, 48, 66, __, 94, __, 69}, - {13, 31, __, 49, 82, __, __, __} -}, { - { 11, 0}, // 0, k00, Esc - { 22, 0}, // 1, k10, F1 - { 33, 0}, // 2, k20, F2 - { 44, 0}, // 3, k30, F3 - { 55, 0}, // 4, k40, F4 - { 66, 0}, // 5, k50, F5 - { 77, 0}, // 6, k60, F6 - { 88, 0}, // 7, k70, F7 - { 99, 0}, // 8, k80, F8 - { 110, 0}, // 9, k90, F9 - { 121, 0}, // 10, ka0, F10 - { 132, 0}, // 11, kb0, F11 - { 143, 0}, // 12, kc0, F12 - { 154, 0}, // 13, kd0, Printscreen - { 165, 0}, // 14, k06, Delete - { 176, 0}, // 15, k16, Insert - { 187, 0}, // 16, k26, Page Up - { 198, 0}, // 17, k36, Page Down - { 11, 11}, // 18, k01, ` - { 22, 11}, // 19, k11, 1 - { 33, 11}, // 20, k21, 2 - { 44, 11}, // 21, k31, 3 - { 55, 11}, // 22, k41, 4 - { 66, 11}, // 23, k51, 5 - { 77, 11}, // 24, k61, 6 - { 88, 11}, // 25, k71, 7 - { 99, 11}, // 26, k81, 8 - { 110, 11}, // 27, k91, 9 - { 121, 11}, // 28, ka1, 0 - { 132, 11}, // 29, kb1, - - { 143, 11}, // 30, kc1, = - { 154, 11}, // 31, kd1, Backspace - { 165, 11}, // 32, k46, Num Lock - { 176, 11}, // 33, k56, Num / - { 187, 11}, // 34, k66, Num * - { 198, 11}, // 35, k76, Num - - { 11, 22}, // 36, k02, Tab - { 22, 22}, // 37, k12, Q - { 33, 22}, // 38, k22, W - { 44, 22}, // 39, k32, E - { 55, 22}, // 40, k42, R - { 66, 22}, // 41, k52, T - { 77, 22}, // 42, k62, Y - { 88, 22}, // 43, k72, U - { 99, 22}, // 44, k82, I - { 110, 22}, // 45, k92, O - { 121, 22}, // 46, ka2, P - { 132, 22}, // 47, kb2, [ - { 143, 22}, // 48, kc2, ] - { 154, 22}, // 49, kd3, Enter - { 165, 22}, // 50, k86, Num 7 - { 176, 22}, // 51, k96, Num 8 - { 187, 22}, // 52, ka6, Num 9 - { 198, 22}, // 53, kb6, Num + - { 11, 33}, // 54, k03, Caps Lock - { 22, 33}, // 55, k13, A - { 33, 33}, // 56, k23, S - { 44, 33}, // 57, k33, D - { 55, 33}, // 58, k43, F - { 66, 33}, // 59, k53, G - { 77, 33}, // 60, k63, H - { 88, 33}, // 61, k73, J - { 99, 33}, // 62, k83, K - { 110, 33}, // 63, k93, L - { 121, 33}, // 64, ka3, ; - { 132, 33}, // 65, kb3, ' - { 143, 33}, // 66, kc3, # - { 165, 33}, // 67, ka7, Num 4 - { 176, 33}, // 68, kb7, Num 5 - { 187, 33}, // 69, kc7, Num 6 - { 11, 44}, // 70, k04, Shift_L - { 22, 44}, // 71, k14, "\\" - { 33, 44}, // 72, k24, Z - { 44, 44}, // 73, k34, X - { 55, 44}, // 74, k44, C - { 66, 44}, // 75, k54, V - { 77, 44}, // 76, k64, B - { 88, 44}, // 77, k74, N - { 99, 44}, // 78, k84, M - { 110, 44}, // 79, k94, , - { 121, 44}, // 80, ka4, . - { 132, 44}, // 81, kb4, / - { 143, 44}, // 82, kd4, Shift_R - { 154, 44}, // 83, k17, Up - { 165, 44}, // 84, k67, Num 1 - { 176, 44}, // 85, k77, Num 2 - { 187, 44}, // 86, k87, Num 3 - { 198, 44}, // 87, k97, Enter_R - { 11, 55}, // 88, k05, Ctrl_L - { 22, 55}, // 89, k15, Win_L - { 33, 55}, // 90, k25, Alt_L - { 77, 55}, // 91, k65, Space - { 110, 55}, // 92, k95, Alt_R - { 121, 55}, // 93, ka5, FN - { 132, 55}, // 94, kc5, Ctrl_R - { 143, 55}, // 95, k07, Left - { 154, 55}, // 96, k27, Down - { 165, 55}, // 97, k37, Right - { 176, 55}, // 98, k47, Num 0 - { 187, 55}, // 99, k57, Num . - { 0, 0}, // 101, LED 1 - { 0, 6}, // 102, LED 2 - { 0, 12}, // 103, LED 3 - { 0, 18}, // 104, LED 4 - { 0, 24}, // 105, LED 5 - { 0, 30}, // 106, LED 6 - { 0, 36}, // 107, LED 7 - { 0, 42}, // 108, LED 8 - { 0, 48}, // 109, LED 9 - { 0, 54}, // 110, LED 10 - { 209, 0}, // 111, LED 11 - { 209, 6}, // 112, LED 12 - { 209, 12}, // 113, LED 13 - { 209, 18}, // 114, LED 14 - { 209, 24}, // 115, LED 15 - { 209, 30}, // 116, LED 16 - { 209, 36}, // 117, LED 17 - { 209, 42}, // 118, LED 18 - { 209, 48}, // 119, LED 19 - { 209, 54} // 120, LED 20 -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 -} }; #endif #ifdef EEPROM_ENABLE diff --git a/keyboards/gmmk/gmmk2/p96/iso/keyboard.json b/keyboards/gmmk/gmmk2/p96/iso/keyboard.json index 679881a94b..3463293a70 100644 --- a/keyboards/gmmk/gmmk2/p96/iso/keyboard.json +++ b/keyboards/gmmk/gmmk2/p96/iso/keyboard.json @@ -32,6 +32,130 @@ }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 11, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 22, "y": 0, "flags": 4}, + {"matrix": [2, 0], "x": 33, "y": 0, "flags": 4}, + {"matrix": [3, 0], "x": 44, "y": 0, "flags": 4}, + {"matrix": [4, 0], "x": 55, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 66, "y": 0, "flags": 4}, + {"matrix": [6, 0], "x": 77, "y": 0, "flags": 4}, + {"matrix": [7, 0], "x": 88, "y": 0, "flags": 4}, + {"matrix": [8, 0], "x": 99, "y": 0, "flags": 4}, + {"matrix": [9, 0], "x": 110, "y": 0, "flags": 4}, + {"matrix": [10, 0], "x": 121, "y": 0, "flags": 4}, + {"matrix": [11, 0], "x": 132, "y": 0, "flags": 4}, + {"matrix": [12, 0], "x": 143, "y": 0, "flags": 4}, + {"matrix": [13, 0], "x": 154, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 165, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 176, "y": 0, "flags": 4}, + {"matrix": [2, 6], "x": 187, "y": 0, "flags": 4}, + {"matrix": [3, 6], "x": 198, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 11, "y": 11, "flags": 4}, + {"matrix": [1, 1], "x": 22, "y": 11, "flags": 4}, + {"matrix": [2, 1], "x": 33, "y": 11, "flags": 4}, + {"matrix": [3, 1], "x": 44, "y": 11, "flags": 4}, + {"matrix": [4, 1], "x": 55, "y": 11, "flags": 4}, + {"matrix": [5, 1], "x": 66, "y": 11, "flags": 4}, + {"matrix": [6, 1], "x": 77, "y": 11, "flags": 4}, + {"matrix": [7, 1], "x": 88, "y": 11, "flags": 4}, + {"matrix": [8, 1], "x": 99, "y": 11, "flags": 4}, + {"matrix": [9, 1], "x": 110, "y": 11, "flags": 4}, + {"matrix": [10, 1], "x": 121, "y": 11, "flags": 4}, + {"matrix": [11, 1], "x": 132, "y": 11, "flags": 4}, + {"matrix": [12, 1], "x": 143, "y": 11, "flags": 4}, + {"matrix": [13, 1], "x": 154, "y": 11, "flags": 4}, + {"matrix": [4, 6], "x": 165, "y": 11, "flags": 1}, + {"matrix": [5, 6], "x": 176, "y": 11, "flags": 4}, + {"matrix": [6, 6], "x": 187, "y": 11, "flags": 4}, + {"matrix": [7, 6], "x": 198, "y": 11, "flags": 4}, + {"matrix": [0, 2], "x": 11, "y": 22, "flags": 4}, + {"matrix": [1, 2], "x": 22, "y": 22, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 22, "flags": 4}, + {"matrix": [3, 2], "x": 44, "y": 22, "flags": 4}, + {"matrix": [4, 2], "x": 55, "y": 22, "flags": 4}, + {"matrix": [5, 2], "x": 66, "y": 22, "flags": 4}, + {"matrix": [6, 2], "x": 77, "y": 22, "flags": 4}, + {"matrix": [7, 2], "x": 88, "y": 22, "flags": 4}, + {"matrix": [8, 2], "x": 99, "y": 22, "flags": 4}, + {"matrix": [9, 2], "x": 110, "y": 22, "flags": 4}, + {"matrix": [10, 2], "x": 121, "y": 22, "flags": 4}, + {"matrix": [11, 2], "x": 132, "y": 22, "flags": 4}, + {"matrix": [12, 2], "x": 143, "y": 22, "flags": 4}, + {"matrix": [13, 3], "x": 154, "y": 22, "flags": 4}, + {"matrix": [8, 6], "x": 165, "y": 22, "flags": 4}, + {"matrix": [9, 6], "x": 176, "y": 22, "flags": 4}, + {"matrix": [10, 6], "x": 187, "y": 22, "flags": 4}, + {"matrix": [11, 6], "x": 198, "y": 22, "flags": 4}, + {"matrix": [0, 3], "x": 11, "y": 33, "flags": 1}, + {"matrix": [1, 3], "x": 22, "y": 33, "flags": 4}, + {"matrix": [2, 3], "x": 33, "y": 33, "flags": 4}, + {"matrix": [3, 3], "x": 44, "y": 33, "flags": 4}, + {"matrix": [4, 3], "x": 55, "y": 33, "flags": 4}, + {"matrix": [5, 3], "x": 66, "y": 33, "flags": 4}, + {"matrix": [6, 3], "x": 77, "y": 33, "flags": 4}, + {"matrix": [7, 3], "x": 88, "y": 33, "flags": 4}, + {"matrix": [8, 3], "x": 99, "y": 33, "flags": 4}, + {"matrix": [9, 3], "x": 110, "y": 33, "flags": 4}, + {"matrix": [10, 3], "x": 121, "y": 33, "flags": 4}, + {"matrix": [11, 3], "x": 132, "y": 33, "flags": 4}, + {"matrix": [12, 3], "x": 143, "y": 33, "flags": 4}, + {"matrix": [10, 7], "x": 165, "y": 33, "flags": 4}, + {"matrix": [11, 7], "x": 176, "y": 33, "flags": 4}, + {"matrix": [12, 7], "x": 187, "y": 33, "flags": 4}, + {"matrix": [0, 4], "x": 11, "y": 44, "flags": 4}, + {"matrix": [1, 4], "x": 22, "y": 44, "flags": 4}, + {"matrix": [2, 4], "x": 33, "y": 44, "flags": 4}, + {"matrix": [3, 4], "x": 44, "y": 44, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 44, "flags": 4}, + {"matrix": [5, 4], "x": 66, "y": 44, "flags": 4}, + {"matrix": [6, 4], "x": 77, "y": 44, "flags": 4}, + {"matrix": [7, 4], "x": 88, "y": 44, "flags": 4}, + {"matrix": [8, 4], "x": 99, "y": 44, "flags": 4}, + {"matrix": [9, 4], "x": 110, "y": 44, "flags": 4}, + {"matrix": [10, 4], "x": 121, "y": 44, "flags": 4}, + {"matrix": [11, 4], "x": 132, "y": 44, "flags": 4}, + {"matrix": [13, 4], "x": 143, "y": 44, "flags": 4}, + {"matrix": [1, 7], "x": 154, "y": 44, "flags": 4}, + {"matrix": [6, 7], "x": 165, "y": 44, "flags": 4}, + {"matrix": [7, 7], "x": 176, "y": 44, "flags": 4}, + {"matrix": [8, 7], "x": 187, "y": 44, "flags": 4}, + {"matrix": [9, 7], "x": 198, "y": 44, "flags": 4}, + {"matrix": [0, 5], "x": 11, "y": 55, "flags": 4}, + {"matrix": [1, 5], "x": 22, "y": 55, "flags": 4}, + {"matrix": [2, 5], "x": 33, "y": 55, "flags": 4}, + {"matrix": [6, 5], "x": 77, "y": 55, "flags": 4}, + {"matrix": [9, 5], "x": 110, "y": 55, "flags": 4}, + {"matrix": [10, 5], "x": 121, "y": 55, "flags": 4}, + {"matrix": [12, 5], "x": 132, "y": 55, "flags": 4}, + {"matrix": [0, 7], "x": 143, "y": 55, "flags": 4}, + {"matrix": [2, 7], "x": 154, "y": 55, "flags": 4}, + {"matrix": [3, 7], "x": 165, "y": 55, "flags": 4}, + {"matrix": [4, 7], "x": 176, "y": 55, "flags": 4}, + {"matrix": [5, 7], "x": 187, "y": 55, "flags": 4}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 0, "y": 6, "flags": 2}, + {"x": 0, "y": 12, "flags": 2}, + {"x": 0, "y": 18, "flags": 2}, + {"x": 0, "y": 24, "flags": 2}, + {"x": 0, "y": 30, "flags": 2}, + {"x": 0, "y": 36, "flags": 2}, + {"x": 0, "y": 42, "flags": 2}, + {"x": 0, "y": 48, "flags": 2}, + {"x": 0, "y": 54, "flags": 2}, + {"x": 209, "y": 0, "flags": 2}, + {"x": 209, "y": 6, "flags": 2}, + {"x": 209, "y": 12, "flags": 2}, + {"x": 209, "y": 18, "flags": 2}, + {"x": 209, "y": 24, "flags": 2}, + {"x": 209, "y": 30, "flags": 2}, + {"x": 209, "y": 36, "flags": 2}, + {"x": 209, "y": 42, "flags": 2}, + {"x": 209, "y": 48, "flags": 2}, + {"x": 209, "y": 54, "flags": 2} + ] + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gmmk/numpad/keyboard.json b/keyboards/gmmk/numpad/keyboard.json index f5d64bf6cb..23dd46ca1a 100644 --- a/keyboards/gmmk/numpad/keyboard.json +++ b/keyboards/gmmk/numpad/keyboard.json @@ -69,7 +69,40 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "aw20216s" + "driver": "aw20216s", + "layout": [ + {"matrix": [0, 0], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 134, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 179, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 45, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 90, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 134, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 179, "y": 24, "flags": 4}, + {"matrix": [2, 0], "x": 45, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 90, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 134, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 90, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 134, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 179, "y": 56, "flags": 4}, + {"matrix": [4, 0], "x": 67, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 134, "y": 64, "flags": 4}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 0, "y": 11, "flags": 2}, + {"x": 0, "y": 21, "flags": 2}, + {"x": 0, "y": 32, "flags": 2}, + {"x": 0, "y": 43, "flags": 2}, + {"x": 0, "y": 53, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 11, "flags": 2}, + {"x": 224, "y": 21, "flags": 2}, + {"x": 224, "y": 32, "flags": 2}, + {"x": 224, "y": 43, "flags": 2}, + {"x": 224, "y": 53, "flags": 2}, + {"x": 224, "y": 64, "flags": 2} + ] }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", diff --git a/keyboards/gmmk/numpad/numpad.c b/keyboards/gmmk/numpad/numpad.c index 87446d8f49..fa8a28bf8b 100644 --- a/keyboards/gmmk/numpad/numpad.c +++ b/keyboards/gmmk/numpad/numpad.c @@ -59,54 +59,6 @@ const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {0, SW7_CS10, SW7_CS11, SW7_CS12 }, // 30 LED33 }; -led_config_t g_led_config = {{ - { 0, 1, 2, 3 }, - { 4, 5, 6, 7 }, - { 8, 9, 10, NO_LED}, - { 11, 12, 13, 14 }, - { 15, NO_LED, NO_LED, 16 } -}, { - {45, 0 }, // 0 NUM - {90, 0 }, // 1 / - {134, 0 }, // 2 * - {179, 0 }, // 3 - - {45, 16 }, // 4 7 - {90, 16 }, // 5 8 - {134, 16 }, // 6 9 - {179, 24 }, // 7 + - {45, 32 }, // 8 4 - {90, 32 }, // 9 5 - {134, 32 }, // 10 6 - {45, 48 }, // 11 1 - {90, 48 }, // 12 2 - {134, 48 }, // 13 3 - {179, 56 }, // 14 ENTER - {67, 64 }, // 15 0 - {134, 64 }, // 16 . - {0, 0 }, // 17 LED18 - {0, 11 }, // 18 LED19 - {0, 21 }, // 19 LED20 - {0, 32 }, // 20 LED21 - {0, 43 }, // 21 LED22 - {0, 53 }, // 22 LED23 - {0, 64 }, // 23 LED24 - {224, 0 }, // 24 LED27 - {224, 11 }, // 25 LED28 - {224, 21 }, // 26 LED29 - {224, 32 }, // 27 LED30 - {224, 43 }, // 28 LED31 - {224, 53 }, // 29 LED32 - {224, 64 } // 30 LED33 -}, { - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, - 4, 4, 4, 4, - 4, 4, - 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2 -} }; - # ifdef AW20216S_PW_EN_PIN void keyboard_pre_init_kb(void) { diff --git a/keyboards/gmmk/pro/rev1/ansi/ansi.c b/keyboards/gmmk/pro/rev1/ansi/ansi.c index 77e0a8c1a1..05365ee9f9 100644 --- a/keyboards/gmmk/pro/rev1/ansi/ansi.c +++ b/keyboards/gmmk/pro/rev1/ansi/ansi.c @@ -18,124 +18,6 @@ #ifdef RGB_MATRIX_ENABLE // clang-format off -led_config_t g_led_config = {{ - { 4, NO_LED, NO_LED, 95, 65, 79, 5, 28 }, - { 8, 2, 9, 0, 10, 75, 1, 7 }, - { 14, 3, 15, NO_LED, 16, 86, 6, 13 }, - { 20, 18, 21, 23, 22, 94, 12, 19 }, - { 25, 30, 26, 31, 27, 32, 29, 24 }, - { 41, 36, 42, 37, 43, 38, 35, 40 }, - { 46, 89, 47, 34, 48, 72, 78, 45 }, - { 52, 39, 53, 97, 54, 82, 44, 51 }, - { 58, 63, 59, 64, NO_LED, 60, 62, 57 }, - { 11, 90, 55, 17, 33, 49, NO_LED, 69 }, - { NO_LED, 85, 93, 61, 96, 66, 50, 56 } -}, { - {0, 0}, // 0, ESC, k13 - {0, 15}, // 1, ~, k16 - {4, 26}, // 2, Tab, k11 - {5, 38}, // 3, Caps, k21 - {9, 49}, // 4, Sh_L, k00 - {2, 61}, // 5, Ct_L, k06 - {18, 0}, // 6, F1, k26 - {14, 15}, // 7, 1, k17 - {22, 26}, // 8, Q, k10 - {25, 38}, // 9, A, k12 - {33, 49}, // 10, Z, k14 - {20, 61}, // 11, Win_L, k90 - {33, 0}, // 12, F2, k36 - {29, 15}, // 13, 2, k27 - {36, 26}, // 14, W, k20 - {40, 38}, // 15, S, k22 - {47, 49}, // 16, X, k24 - {38, 61}, // 17, Alt_L, k93 - {47, 0}, // 18, F3, k31 - {43, 15}, // 19, 3, k37 - {51, 26}, // 20, E, k30 - {54, 38}, // 21, D, k32 - {61, 49}, // 22, C, k34 - {61, 0}, // 23, F4, k33 - {58, 15}, // 24, 4, k47 - {65, 26}, // 25, R, k40 - {69, 38}, // 26, F, k42 - {76, 49}, // 27, V, k44 - {79, 0}, // 28, F5, k07 - {72, 15}, // 29, 5, k46 - {79, 26}, // 30, T, k41 - {83, 38}, // 31, G, k43 - {90, 49}, // 32, B, k45 - {92, 61}, // 33, SPACE, k94 - {94, 0}, // 34, F6, k63 - {87, 15}, // 35, 6, k56 - {94, 26}, // 36, Y, k51 - {98, 38}, // 37, H, k53 - {105, 49}, // 38, N, k55 - {108, 0}, // 39, F7, k71 - {101, 15}, // 40, 7, k57 - {108, 26}, // 41, U, k50 - {112, 38}, // 42, J, k52 - {119, 49}, // 43, M, k54 - {123, 0}, // 44, F8, k76 - {116, 15}, // 45, 8, k67 - {123, 26}, // 46, I, k60 - {126, 38}, // 47, K, k62 - {134, 49}, // 48, ,, k64 - {145, 61}, // 49, Alt_R, k95 - {141, 0}, // 50, F9, ka6 - {130, 15}, // 51, 9, k77 - {137, 26}, // 52, O, k70 - {141, 38}, // 53, L, k72 - {148, 49}, // 54, ., k74 - {159, 61}, // 55, FN, k92 - {155, 0}, // 56, F10, ka7 - {145, 15}, // 57, 0, k87 - {152, 26}, // 58, P, k80 - {155, 38}, // 59, ;, k82 - {163, 49}, // 60, ?, k85 - {170, 0}, // 61, F11, ka3 - {159, 15}, // 62, -, k86 - {166, 26}, // 63, [, k81 - {170, 38}, // 64, ", k83 - {173, 61}, // 65, Ct_R, k04 - {184, 0}, // 66, F12, ka5 - {0, 8}, // 67, LED, l01 - {224, 8}, // 68, LED, l11 - {202, 0}, // 69, Prt, k97 - {0, 15}, // 70, LED, l02 - {224, 15}, // 71, LED, l12 - {224, 15}, // 72, Del, k65 - {0, 21}, // 73, LED, l03 - {224, 21}, // 74, LED, l13 - {224, 26}, // 75, PgUp, k15 - {0, 28}, // 76, LED, l04 - {224, 28}, // 77, LED, l14 - {173, 15}, // 78, =, k66 - {220, 64}, // 79, Right, k05 - {0, 35}, // 80, LED, l05 - {224, 35}, // 81, LED, l15 - {224, 49}, // 82, End, k75 - {0, 42}, // 83, LED, l06 - {224, 42}, // 84, LED, l16 - {195, 15}, // 85, BSpc, ka1 - {224, 38}, // 86, PgDn, k25 - {0, 48}, // 87, LED, l07 - {224, 48}, // 88, LED, l17 - {181, 26}, // 89, ], k61 - {182, 49}, // 90, Sh_R, k91 - {0, 55}, // 91, LED, l08 - {224, 55}, // 92, LED, l18 - {199, 26}, // 93, \, ka2 - {206, 52}, // 94, Up, k35 - {191, 64}, // 95, Left, k03 - {193, 38}, // 96, Enter, ka4 - {206, 64} // 97, Down, k73 -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2, - 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 -}}; - const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {0, SW1_CS1, SW1_CS2, SW1_CS3}, // 0, ESC, k13 {0, SW1_CS4, SW1_CS5, SW1_CS6}, // 1, ~, k16 diff --git a/keyboards/gmmk/pro/rev1/ansi/keyboard.json b/keyboards/gmmk/pro/rev1/ansi/keyboard.json index fbb9107d16..e7bf3d6a59 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keyboard.json +++ b/keyboards/gmmk/pro/rev1/ansi/keyboard.json @@ -34,6 +34,108 @@ }, "processor": "STM32F303", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [1, 3], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 0, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 4, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 5, "y": 38, "flags": 4}, + {"matrix": [0, 0], "x": 9, "y": 49, "flags": 4}, + {"matrix": [0, 6], "x": 2, "y": 61, "flags": 4}, + {"matrix": [2, 6], "x": 18, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 14, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 22, "y": 26, "flags": 4}, + {"matrix": [1, 2], "x": 25, "y": 38, "flags": 4}, + {"matrix": [1, 4], "x": 33, "y": 49, "flags": 4}, + {"matrix": [9, 0], "x": 20, "y": 61, "flags": 4}, + {"matrix": [3, 6], "x": 33, "y": 0, "flags": 4}, + {"matrix": [2, 7], "x": 29, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 36, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 49, "flags": 4}, + {"matrix": [9, 3], "x": 38, "y": 61, "flags": 4}, + {"matrix": [3, 1], "x": 47, "y": 0, "flags": 4}, + {"matrix": [3, 7], "x": 43, "y": 15, "flags": 4}, + {"matrix": [3, 0], "x": 51, "y": 26, "flags": 4}, + {"matrix": [3, 2], "x": 54, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 61, "y": 49, "flags": 4}, + {"matrix": [3, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [4, 7], "x": 58, "y": 15, "flags": 4}, + {"matrix": [4, 0], "x": 65, "y": 26, "flags": 4}, + {"matrix": [4, 2], "x": 69, "y": 38, "flags": 4}, + {"matrix": [4, 4], "x": 76, "y": 49, "flags": 4}, + {"matrix": [0, 7], "x": 79, "y": 0, "flags": 4}, + {"matrix": [4, 6], "x": 72, "y": 15, "flags": 4}, + {"matrix": [4, 1], "x": 79, "y": 26, "flags": 4}, + {"matrix": [4, 3], "x": 83, "y": 38, "flags": 4}, + {"matrix": [4, 5], "x": 90, "y": 49, "flags": 4}, + {"matrix": [9, 4], "x": 92, "y": 61, "flags": 4}, + {"matrix": [6, 3], "x": 94, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 87, "y": 15, "flags": 4}, + {"matrix": [5, 1], "x": 94, "y": 26, "flags": 4}, + {"matrix": [5, 3], "x": 98, "y": 38, "flags": 4}, + {"matrix": [5, 5], "x": 105, "y": 49, "flags": 4}, + {"matrix": [7, 1], "x": 108, "y": 0, "flags": 4}, + {"matrix": [5, 7], "x": 101, "y": 15, "flags": 4}, + {"matrix": [5, 0], "x": 108, "y": 26, "flags": 4}, + {"matrix": [5, 2], "x": 112, "y": 38, "flags": 4}, + {"matrix": [5, 4], "x": 119, "y": 49, "flags": 4}, + {"matrix": [7, 6], "x": 123, "y": 0, "flags": 4}, + {"matrix": [6, 7], "x": 116, "y": 15, "flags": 4}, + {"matrix": [6, 0], "x": 123, "y": 26, "flags": 4}, + {"matrix": [6, 2], "x": 126, "y": 38, "flags": 4}, + {"matrix": [6, 4], "x": 134, "y": 49, "flags": 4}, + {"matrix": [9, 5], "x": 145, "y": 61, "flags": 4}, + {"matrix": [10, 6], "x": 141, "y": 0, "flags": 4}, + {"matrix": [7, 7], "x": 130, "y": 15, "flags": 4}, + {"matrix": [7, 0], "x": 137, "y": 26, "flags": 4}, + {"matrix": [7, 2], "x": 141, "y": 38, "flags": 4}, + {"matrix": [7, 4], "x": 148, "y": 49, "flags": 4}, + {"matrix": [9, 2], "x": 159, "y": 61, "flags": 4}, + {"matrix": [10, 7], "x": 155, "y": 0, "flags": 4}, + {"matrix": [8, 7], "x": 145, "y": 15, "flags": 4}, + {"matrix": [8, 0], "x": 152, "y": 26, "flags": 4}, + {"matrix": [8, 2], "x": 155, "y": 38, "flags": 4}, + {"matrix": [8, 5], "x": 163, "y": 49, "flags": 4}, + {"matrix": [10, 3], "x": 170, "y": 0, "flags": 4}, + {"matrix": [8, 6], "x": 159, "y": 15, "flags": 4}, + {"matrix": [8, 1], "x": 166, "y": 26, "flags": 4}, + {"matrix": [8, 3], "x": 170, "y": 38, "flags": 4}, + {"matrix": [0, 4], "x": 173, "y": 61, "flags": 4}, + {"matrix": [10, 5], "x": 184, "y": 0, "flags": 4}, + {"x": 0, "y": 8, "flags": 2}, + {"x": 224, "y": 8, "flags": 2}, + {"matrix": [9, 7], "x": 202, "y": 0, "flags": 4}, + {"x": 0, "y": 15, "flags": 2}, + {"x": 224, "y": 15, "flags": 2}, + {"matrix": [6, 5], "x": 224, "y": 15, "flags": 4}, + {"x": 0, "y": 21, "flags": 2}, + {"x": 224, "y": 21, "flags": 2}, + {"matrix": [1, 5], "x": 224, "y": 26, "flags": 4}, + {"x": 0, "y": 28, "flags": 2}, + {"x": 224, "y": 28, "flags": 2}, + {"matrix": [6, 6], "x": 173, "y": 15, "flags": 4}, + {"matrix": [0, 5], "x": 220, "y": 64, "flags": 4}, + {"x": 0, "y": 35, "flags": 2}, + {"x": 224, "y": 35, "flags": 2}, + {"matrix": [7, 5], "x": 224, "y": 49, "flags": 4}, + {"x": 0, "y": 42, "flags": 2}, + {"x": 224, "y": 42, "flags": 2}, + {"matrix": [10, 1], "x": 195, "y": 15, "flags": 4}, + {"matrix": [2, 5], "x": 224, "y": 38, "flags": 4}, + {"x": 0, "y": 48, "flags": 2}, + {"x": 224, "y": 48, "flags": 2}, + {"matrix": [6, 1], "x": 181, "y": 26, "flags": 4}, + {"matrix": [9, 1], "x": 182, "y": 49, "flags": 4}, + {"x": 0, "y": 55, "flags": 2}, + {"x": 224, "y": 55, "flags": 2}, + {"matrix": [10, 2], "x": 199, "y": 26, "flags": 4}, + {"matrix": [3, 5], "x": 206, "y": 52, "flags": 4}, + {"matrix": [0, 3], "x": 191, "y": 64, "flags": 4}, + {"matrix": [10, 4], "x": 193, "y": 38, "flags": 4}, + {"matrix": [7, 3], "x": 206, "y": 64, "flags": 4} + ] + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gmmk/pro/rev1/iso/iso.c b/keyboards/gmmk/pro/rev1/iso/iso.c index 932c6a1f49..1ba3ddc404 100644 --- a/keyboards/gmmk/pro/rev1/iso/iso.c +++ b/keyboards/gmmk/pro/rev1/iso/iso.c @@ -18,125 +18,6 @@ #ifdef RGB_MATRIX_ENABLE // clang-format off -led_config_t g_led_config = {{ - { 4, NO_LED, NO_LED, 96, 65, 80, 5, 28 }, - { 8, 2, 9, 0, 10, 76, 1, 7 }, - { 14, 3, 15, 67, 16, 87, 6, 13 }, - { 20, 18, 21, 23, 22, 94, 12, 19 }, - { 25, 30, 26, 31, 27, 32, 29, 24 }, - { 41, 36, 42, 37, 43, 38, 35, 40 }, - { 46, 90, 47, 34, 48, 73, 79, 45 }, - { 52, 39, 53, 98, 54, 83, 44, 51 }, - { 58, 63, 59, 64, 95, 60, 62, 57 }, - { 11, 91, 55, 17, 33, 49, NO_LED, 70 }, - { NO_LED, 86, NO_LED, 61, 97, 66, 50, 56 } -}, { - {0, 0}, // 0, ESC, k13 - {0, 15}, // 1, `, k16 - {4, 26}, // 2, Tab, k11 - {5, 38}, // 3, Caps, k21 - {2, 49}, // 4, Sh_L, k00 - {2, 61}, // 5, Ct_L, k06 - {18, 0}, // 6, F1, k26 - {14, 15}, // 7, 1, k17 - {22, 26}, // 8, Q, k10 - {25, 38}, // 9, A, k12 - {33, 49}, // 10, Z, k14 - {20, 61}, // 11, Win_L, k90 - {33, 0}, // 12, F2, k36 - {29, 15}, // 13, 2, k27 - {36, 26}, // 14, W, k20 - {40, 38}, // 15, S, k22 - {47, 49}, // 16, X, k24 - {38, 61}, // 17, Alt_L, k93 - {47, 0}, // 18, F3, k31 - {43, 15}, // 19, 3, k37 - {51, 26}, // 20, E, k30 - {54, 38}, // 21, D, k32 - {61, 49}, // 22, C, k34 - {61, 0}, // 23, F4, k33 - {58, 15}, // 24, 4, k47 - {65, 26}, // 25, R, k40 - {69, 38}, // 26, F, k42 - {76, 49}, // 27, V, k44 - {79, 0}, // 28, F5, k07 - {72, 15}, // 29, 5, k46 - {79, 26}, // 30, T, k41 - {83, 38}, // 31, G, k43 - {90, 49}, // 32, B, k45 - {92, 61}, // 33, SPACE, k94 - {94, 0}, // 34, F6, k63 - {87, 15}, // 35, 6, k56 - {94, 26}, // 36, Y, k51 - {98, 38}, // 37, H, k53 - {105, 49}, // 38, N, k55 - {108, 0}, // 39, F7, k71 - {101, 15}, // 40, 7, k57 - {108, 26}, // 41, U, k50 - {112, 38}, // 42, J, k52 - {119, 49}, // 43, M, k54 - {123, 0}, // 44, F8, k76 - {116, 15}, // 45, 8, k67 - {123, 26}, // 46, I, k60 - {126, 38}, // 47, K, k62 - {134, 49}, // 48, ,, k64 - {145, 61}, // 49, Alt_R, k95 - {141, 0}, // 50, F9, ka6 - {130, 15}, // 51, 9, k77 - {137, 26}, // 52, O, k70 - {141, 38}, // 53, L, k72 - {148, 49}, // 54, ., k74 - {159, 61}, // 55, FN, k92 - {155, 0}, // 56, F10, ka7 - {145, 15}, // 57, 0, k87 - {152, 26}, // 58, P, k80 - {155, 38}, // 59, ;, k82 - {163, 49}, // 60, /, k85 - {170, 0}, // 61, F11, ka3 - {159, 15}, // 62, -, k86 - {166, 26}, // 63, [, k81 - {170, 38}, // 64, ", k83 - {173, 61}, // 65, Ct_R, k04 - {184, 0}, // 66, F12, ka5 - {18, 49}, // 67, \, k23 - {0, 8}, // 68, LED, l01 - {224, 8}, // 69, LED, l11 - {202, 0}, // 70, Prt, k97 - {0, 15}, // 71, LED, l02 - {224, 15}, // 72, LED, l12 - {224, 15}, // 73, Del, k65 - {0, 21}, // 74, LED, l03 - {224, 21}, // 75, LED, l13 - {224, 26}, // 76, PgUp, k15 - {0, 28}, // 77, LED, l04 - {224, 28}, // 78, LED, l14 - {173, 15}, // 79, =, k66 - {220, 64}, // 80, Right, k05 - {0, 35}, // 81, LED, l05 - {224, 35}, // 82, LED, l15 - {224, 49}, // 83, End, k75 - {0, 42}, // 84, LED, l06 - {224, 42}, // 85, LED, l16 - {195, 15}, // 86, BSpc, ka1 - {224, 38}, // 87, PgDn, k25 - {0, 48}, // 88, LED, l07 - {224, 48}, // 89, LED, l17 - {181, 26}, // 90, ], k61 - {182, 49}, // 91, Sh_R, k91 - {0, 55}, // 92, LED, l08 - {224, 55}, // 93, LED, l18 - {206, 52}, // 94, Up, k35 - {184, 38}, // 95, #, k84 - {191, 64}, // 96, Left, k03 - {201, 26}, // 97, Enter, ka4 - {206, 64}, // 98, Down, k73 -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, - 2, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 -}}; - const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {0, SW1_CS1, SW1_CS2, SW1_CS3}, // 0, ESC, k13 {0, SW1_CS4, SW1_CS5, SW1_CS6}, // 1, ~, k16 diff --git a/keyboards/gmmk/pro/rev1/iso/keyboard.json b/keyboards/gmmk/pro/rev1/iso/keyboard.json index 7506f8952d..a30e7cbb6d 100644 --- a/keyboards/gmmk/pro/rev1/iso/keyboard.json +++ b/keyboards/gmmk/pro/rev1/iso/keyboard.json @@ -34,6 +34,109 @@ }, "processor": "STM32F303", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [1, 3], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 0, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 4, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 5, "y": 38, "flags": 4}, + {"matrix": [0, 0], "x": 2, "y": 49, "flags": 4}, + {"matrix": [0, 6], "x": 2, "y": 61, "flags": 4}, + {"matrix": [2, 6], "x": 18, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 14, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 22, "y": 26, "flags": 4}, + {"matrix": [1, 2], "x": 25, "y": 38, "flags": 4}, + {"matrix": [1, 4], "x": 33, "y": 49, "flags": 4}, + {"matrix": [9, 0], "x": 20, "y": 61, "flags": 4}, + {"matrix": [3, 6], "x": 33, "y": 0, "flags": 4}, + {"matrix": [2, 7], "x": 29, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 36, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 49, "flags": 4}, + {"matrix": [9, 3], "x": 38, "y": 61, "flags": 4}, + {"matrix": [3, 1], "x": 47, "y": 0, "flags": 4}, + {"matrix": [3, 7], "x": 43, "y": 15, "flags": 4}, + {"matrix": [3, 0], "x": 51, "y": 26, "flags": 4}, + {"matrix": [3, 2], "x": 54, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 61, "y": 49, "flags": 4}, + {"matrix": [3, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [4, 7], "x": 58, "y": 15, "flags": 4}, + {"matrix": [4, 0], "x": 65, "y": 26, "flags": 4}, + {"matrix": [4, 2], "x": 69, "y": 38, "flags": 4}, + {"matrix": [4, 4], "x": 76, "y": 49, "flags": 4}, + {"matrix": [0, 7], "x": 79, "y": 0, "flags": 4}, + {"matrix": [4, 6], "x": 72, "y": 15, "flags": 4}, + {"matrix": [4, 1], "x": 79, "y": 26, "flags": 4}, + {"matrix": [4, 3], "x": 83, "y": 38, "flags": 4}, + {"matrix": [4, 5], "x": 90, "y": 49, "flags": 4}, + {"matrix": [9, 4], "x": 92, "y": 61, "flags": 4}, + {"matrix": [6, 3], "x": 94, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 87, "y": 15, "flags": 4}, + {"matrix": [5, 1], "x": 94, "y": 26, "flags": 4}, + {"matrix": [5, 3], "x": 98, "y": 38, "flags": 4}, + {"matrix": [5, 5], "x": 105, "y": 49, "flags": 4}, + {"matrix": [7, 1], "x": 108, "y": 0, "flags": 4}, + {"matrix": [5, 7], "x": 101, "y": 15, "flags": 4}, + {"matrix": [5, 0], "x": 108, "y": 26, "flags": 4}, + {"matrix": [5, 2], "x": 112, "y": 38, "flags": 4}, + {"matrix": [5, 4], "x": 119, "y": 49, "flags": 4}, + {"matrix": [7, 6], "x": 123, "y": 0, "flags": 4}, + {"matrix": [6, 7], "x": 116, "y": 15, "flags": 4}, + {"matrix": [6, 0], "x": 123, "y": 26, "flags": 4}, + {"matrix": [6, 2], "x": 126, "y": 38, "flags": 4}, + {"matrix": [6, 4], "x": 134, "y": 49, "flags": 4}, + {"matrix": [9, 5], "x": 145, "y": 61, "flags": 4}, + {"matrix": [10, 6], "x": 141, "y": 0, "flags": 4}, + {"matrix": [7, 7], "x": 130, "y": 15, "flags": 4}, + {"matrix": [7, 0], "x": 137, "y": 26, "flags": 4}, + {"matrix": [7, 2], "x": 141, "y": 38, "flags": 4}, + {"matrix": [7, 4], "x": 148, "y": 49, "flags": 4}, + {"matrix": [9, 2], "x": 159, "y": 61, "flags": 4}, + {"matrix": [10, 7], "x": 155, "y": 0, "flags": 4}, + {"matrix": [8, 7], "x": 145, "y": 15, "flags": 4}, + {"matrix": [8, 0], "x": 152, "y": 26, "flags": 4}, + {"matrix": [8, 2], "x": 155, "y": 38, "flags": 4}, + {"matrix": [8, 5], "x": 163, "y": 49, "flags": 4}, + {"matrix": [10, 3], "x": 170, "y": 0, "flags": 4}, + {"matrix": [8, 6], "x": 159, "y": 15, "flags": 4}, + {"matrix": [8, 1], "x": 166, "y": 26, "flags": 4}, + {"matrix": [8, 3], "x": 170, "y": 38, "flags": 4}, + {"matrix": [0, 4], "x": 173, "y": 61, "flags": 4}, + {"matrix": [10, 5], "x": 184, "y": 0, "flags": 4}, + {"matrix": [2, 3], "x": 18, "y": 49, "flags": 4}, + {"x": 0, "y": 8, "flags": 2}, + {"x": 224, "y": 8, "flags": 2}, + {"matrix": [9, 7], "x": 202, "y": 0, "flags": 4}, + {"x": 0, "y": 15, "flags": 2}, + {"x": 224, "y": 15, "flags": 2}, + {"matrix": [6, 5], "x": 224, "y": 15, "flags": 4}, + {"x": 0, "y": 21, "flags": 2}, + {"x": 224, "y": 21, "flags": 2}, + {"matrix": [1, 5], "x": 224, "y": 26, "flags": 4}, + {"x": 0, "y": 28, "flags": 2}, + {"x": 224, "y": 28, "flags": 2}, + {"matrix": [6, 6], "x": 173, "y": 15, "flags": 4}, + {"matrix": [0, 5], "x": 220, "y": 64, "flags": 4}, + {"x": 0, "y": 35, "flags": 2}, + {"x": 224, "y": 35, "flags": 2}, + {"matrix": [7, 5], "x": 224, "y": 49, "flags": 4}, + {"x": 0, "y": 42, "flags": 2}, + {"x": 224, "y": 42, "flags": 2}, + {"matrix": [10, 1], "x": 195, "y": 15, "flags": 4}, + {"matrix": [2, 5], "x": 224, "y": 38, "flags": 4}, + {"x": 0, "y": 48, "flags": 2}, + {"x": 224, "y": 48, "flags": 2}, + {"matrix": [6, 1], "x": 181, "y": 26, "flags": 4}, + {"matrix": [9, 1], "x": 182, "y": 49, "flags": 4}, + {"x": 0, "y": 55, "flags": 2}, + {"x": 224, "y": 55, "flags": 2}, + {"matrix": [3, 5], "x": 206, "y": 52, "flags": 4}, + {"matrix": [8, 4], "x": 184, "y": 38, "flags": 4}, + {"matrix": [0, 3], "x": 191, "y": 64, "flags": 4}, + {"matrix": [10, 4], "x": 201, "y": 26, "flags": 4}, + {"matrix": [7, 3], "x": 206, "y": 64, "flags": 4} + ] + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gmmk/pro/rev2/ansi/ansi.c b/keyboards/gmmk/pro/rev2/ansi/ansi.c index a3f957ef0a..8b7695095f 100644 --- a/keyboards/gmmk/pro/rev2/ansi/ansi.c +++ b/keyboards/gmmk/pro/rev2/ansi/ansi.c @@ -18,124 +18,6 @@ #ifdef RGB_MATRIX_ENABLE // clang-format off -led_config_t g_led_config = {{ - { 4, NO_LED, NO_LED, 95, 65, 79, 5, 28 }, - { 8, 2, 9, 0, 10, 75, 1, 7 }, - { 14, 3, 15, NO_LED, 16, 86, 6, 13 }, - { 20, 18, 21, 23, 22, 94, 12, 19 }, - { 25, 30, 26, 31, 27, 32, 29, 24 }, - { 41, 36, 42, 37, 43, 38, 35, 40 }, - { 46, 89, 47, 34, 48, 72, 78, 45 }, - { 52, 39, 53, 97, 54, 82, 44, 51 }, - { 58, 63, 59, 64, NO_LED, 60, 62, 57 }, - { 11, 90, 55, 17, 33, 49, NO_LED, 69 }, - { NO_LED, 85, 93, 61, 96, 66, 50, 56 } -}, { - {0, 0}, // 0, ESC, k13 - {0, 15}, // 1, ~, k16 - {4, 26}, // 2, Tab, k11 - {5, 38}, // 3, Caps, k21 - {9, 49}, // 4, Sh_L, k00 - {2, 61}, // 5, Ct_L, k06 - {18, 0}, // 6, F1, k26 - {14, 15}, // 7, 1, k17 - {22, 26}, // 8, Q, k10 - {25, 38}, // 9, A, k12 - {33, 49}, // 10, Z, k14 - {20, 61}, // 11, Win_L, k90 - {33, 0}, // 12, F2, k36 - {29, 15}, // 13, 2, k27 - {36, 26}, // 14, W, k20 - {40, 38}, // 15, S, k22 - {47, 49}, // 16, X, k24 - {38, 61}, // 17, Alt_L, k93 - {47, 0}, // 18, F3, k31 - {43, 15}, // 19, 3, k37 - {51, 26}, // 20, E, k30 - {54, 38}, // 21, D, k32 - {61, 49}, // 22, C, k34 - {61, 0}, // 23, F4, k33 - {58, 15}, // 24, 4, k47 - {65, 26}, // 25, R, k40 - {69, 38}, // 26, F, k42 - {76, 49}, // 27, V, k44 - {79, 0}, // 28, F5, k07 - {72, 15}, // 29, 5, k46 - {79, 26}, // 30, T, k41 - {83, 38}, // 31, G, k43 - {90, 49}, // 32, B, k45 - {92, 61}, // 33, SPACE, k94 - {94, 0}, // 34, F6, k63 - {87, 15}, // 35, 6, k56 - {94, 26}, // 36, Y, k51 - {98, 38}, // 37, H, k53 - {105, 49}, // 38, N, k55 - {108, 0}, // 39, F7, k71 - {101, 15}, // 40, 7, k57 - {108, 26}, // 41, U, k50 - {112, 38}, // 42, J, k52 - {119, 49}, // 43, M, k54 - {123, 0}, // 44, F8, k76 - {116, 15}, // 45, 8, k67 - {123, 26}, // 46, I, k60 - {126, 38}, // 47, K, k62 - {134, 49}, // 48, ,, k64 - {145, 61}, // 49, Alt_R, k95 - {141, 0}, // 50, F9, ka6 - {130, 15}, // 51, 9, k77 - {137, 26}, // 52, O, k70 - {141, 38}, // 53, L, k72 - {148, 49}, // 54, ., k74 - {159, 61}, // 55, FN, k92 - {155, 0}, // 56, F10, ka7 - {145, 15}, // 57, 0, k87 - {152, 26}, // 58, P, k80 - {155, 38}, // 59, ;, k82 - {163, 49}, // 60, ?, k85 - {170, 0}, // 61, F11, ka3 - {159, 15}, // 62, -, k86 - {166, 26}, // 63, [, k81 - {170, 38}, // 64, ", k83 - {173, 61}, // 65, Ct_R, k04 - {184, 0}, // 66, F12, ka5 - {0, 8}, // 67, LED, l01 - {224, 8}, // 68, LED, l11 - {202, 0}, // 69, Prt, k97 - {0, 15}, // 70, LED, l02 - {224, 15}, // 71, LED, l12 - {224, 15}, // 72, Del, k65 - {0, 21}, // 73, LED, l03 - {224, 21}, // 74, LED, l13 - {224, 26}, // 75, PgUp, k15 - {0, 28}, // 76, LED, l04 - {224, 28}, // 77, LED, l14 - {173, 15}, // 78, =, k66 - {220, 64}, // 79, Right, k05 - {0, 35}, // 80, LED, l05 - {224, 35}, // 81, LED, l15 - {224, 49}, // 82, End, k75 - {0, 42}, // 83, LED, l06 - {224, 42}, // 84, LED, l16 - {195, 15}, // 85, BSpc, ka1 - {224, 38}, // 86, PgDn, k25 - {0, 48}, // 87, LED, l07 - {224, 48}, // 88, LED, l17 - {181, 26}, // 89, ], k61 - {182, 49}, // 90, Sh_R, k91 - {0, 55}, // 91, LED, l08 - {224, 55}, // 92, LED, l18 - {199, 26}, // 93, \, ka2 - {206, 52}, // 94, Up, k35 - {191, 64}, // 95, Left, k03 - {193, 38}, // 96, Enter, ka4 - {206, 64} // 97, Down, k73 -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, 2, - 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 -}}; - const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {0, SW1_CS1, SW1_CS2, SW1_CS3}, // 0, ESC, k13 {0, SW1_CS4, SW1_CS5, SW1_CS6}, // 1, ~, k16 diff --git a/keyboards/gmmk/pro/rev2/ansi/keyboard.json b/keyboards/gmmk/pro/rev2/ansi/keyboard.json index 4e0fdfccd9..f8eb11f10b 100644 --- a/keyboards/gmmk/pro/rev2/ansi/keyboard.json +++ b/keyboards/gmmk/pro/rev2/ansi/keyboard.json @@ -41,6 +41,108 @@ }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [1, 3], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 0, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 4, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 5, "y": 38, "flags": 4}, + {"matrix": [0, 0], "x": 9, "y": 49, "flags": 4}, + {"matrix": [0, 6], "x": 2, "y": 61, "flags": 4}, + {"matrix": [2, 6], "x": 18, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 14, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 22, "y": 26, "flags": 4}, + {"matrix": [1, 2], "x": 25, "y": 38, "flags": 4}, + {"matrix": [1, 4], "x": 33, "y": 49, "flags": 4}, + {"matrix": [9, 0], "x": 20, "y": 61, "flags": 4}, + {"matrix": [3, 6], "x": 33, "y": 0, "flags": 4}, + {"matrix": [2, 7], "x": 29, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 36, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 49, "flags": 4}, + {"matrix": [9, 3], "x": 38, "y": 61, "flags": 4}, + {"matrix": [3, 1], "x": 47, "y": 0, "flags": 4}, + {"matrix": [3, 7], "x": 43, "y": 15, "flags": 4}, + {"matrix": [3, 0], "x": 51, "y": 26, "flags": 4}, + {"matrix": [3, 2], "x": 54, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 61, "y": 49, "flags": 4}, + {"matrix": [3, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [4, 7], "x": 58, "y": 15, "flags": 4}, + {"matrix": [4, 0], "x": 65, "y": 26, "flags": 4}, + {"matrix": [4, 2], "x": 69, "y": 38, "flags": 4}, + {"matrix": [4, 4], "x": 76, "y": 49, "flags": 4}, + {"matrix": [0, 7], "x": 79, "y": 0, "flags": 4}, + {"matrix": [4, 6], "x": 72, "y": 15, "flags": 4}, + {"matrix": [4, 1], "x": 79, "y": 26, "flags": 4}, + {"matrix": [4, 3], "x": 83, "y": 38, "flags": 4}, + {"matrix": [4, 5], "x": 90, "y": 49, "flags": 4}, + {"matrix": [9, 4], "x": 92, "y": 61, "flags": 4}, + {"matrix": [6, 3], "x": 94, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 87, "y": 15, "flags": 4}, + {"matrix": [5, 1], "x": 94, "y": 26, "flags": 4}, + {"matrix": [5, 3], "x": 98, "y": 38, "flags": 4}, + {"matrix": [5, 5], "x": 105, "y": 49, "flags": 4}, + {"matrix": [7, 1], "x": 108, "y": 0, "flags": 4}, + {"matrix": [5, 7], "x": 101, "y": 15, "flags": 4}, + {"matrix": [5, 0], "x": 108, "y": 26, "flags": 4}, + {"matrix": [5, 2], "x": 112, "y": 38, "flags": 4}, + {"matrix": [5, 4], "x": 119, "y": 49, "flags": 4}, + {"matrix": [7, 6], "x": 123, "y": 0, "flags": 4}, + {"matrix": [6, 7], "x": 116, "y": 15, "flags": 4}, + {"matrix": [6, 0], "x": 123, "y": 26, "flags": 4}, + {"matrix": [6, 2], "x": 126, "y": 38, "flags": 4}, + {"matrix": [6, 4], "x": 134, "y": 49, "flags": 4}, + {"matrix": [9, 5], "x": 145, "y": 61, "flags": 4}, + {"matrix": [10, 6], "x": 141, "y": 0, "flags": 4}, + {"matrix": [7, 7], "x": 130, "y": 15, "flags": 4}, + {"matrix": [7, 0], "x": 137, "y": 26, "flags": 4}, + {"matrix": [7, 2], "x": 141, "y": 38, "flags": 4}, + {"matrix": [7, 4], "x": 148, "y": 49, "flags": 4}, + {"matrix": [9, 2], "x": 159, "y": 61, "flags": 4}, + {"matrix": [10, 7], "x": 155, "y": 0, "flags": 4}, + {"matrix": [8, 7], "x": 145, "y": 15, "flags": 4}, + {"matrix": [8, 0], "x": 152, "y": 26, "flags": 4}, + {"matrix": [8, 2], "x": 155, "y": 38, "flags": 4}, + {"matrix": [8, 5], "x": 163, "y": 49, "flags": 4}, + {"matrix": [10, 3], "x": 170, "y": 0, "flags": 4}, + {"matrix": [8, 6], "x": 159, "y": 15, "flags": 4}, + {"matrix": [8, 1], "x": 166, "y": 26, "flags": 4}, + {"matrix": [8, 3], "x": 170, "y": 38, "flags": 4}, + {"matrix": [0, 4], "x": 173, "y": 61, "flags": 4}, + {"matrix": [10, 5], "x": 184, "y": 0, "flags": 4}, + {"x": 0, "y": 8, "flags": 2}, + {"x": 224, "y": 8, "flags": 2}, + {"matrix": [9, 7], "x": 202, "y": 0, "flags": 4}, + {"x": 0, "y": 15, "flags": 2}, + {"x": 224, "y": 15, "flags": 2}, + {"matrix": [6, 5], "x": 224, "y": 15, "flags": 4}, + {"x": 0, "y": 21, "flags": 2}, + {"x": 224, "y": 21, "flags": 2}, + {"matrix": [1, 5], "x": 224, "y": 26, "flags": 4}, + {"x": 0, "y": 28, "flags": 2}, + {"x": 224, "y": 28, "flags": 2}, + {"matrix": [6, 6], "x": 173, "y": 15, "flags": 4}, + {"matrix": [0, 5], "x": 220, "y": 64, "flags": 4}, + {"x": 0, "y": 35, "flags": 2}, + {"x": 224, "y": 35, "flags": 2}, + {"matrix": [7, 5], "x": 224, "y": 49, "flags": 4}, + {"x": 0, "y": 42, "flags": 2}, + {"x": 224, "y": 42, "flags": 2}, + {"matrix": [10, 1], "x": 195, "y": 15, "flags": 4}, + {"matrix": [2, 5], "x": 224, "y": 38, "flags": 4}, + {"x": 0, "y": 48, "flags": 2}, + {"x": 224, "y": 48, "flags": 2}, + {"matrix": [6, 1], "x": 181, "y": 26, "flags": 4}, + {"matrix": [9, 1], "x": 182, "y": 49, "flags": 4}, + {"x": 0, "y": 55, "flags": 2}, + {"x": 224, "y": 55, "flags": 2}, + {"matrix": [10, 2], "x": 199, "y": 26, "flags": 4}, + {"matrix": [3, 5], "x": 206, "y": 52, "flags": 4}, + {"matrix": [0, 3], "x": 191, "y": 64, "flags": 4}, + {"matrix": [10, 4], "x": 193, "y": 38, "flags": 4}, + {"matrix": [7, 3], "x": 206, "y": 64, "flags": 4} + ] + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gmmk/pro/rev2/iso/iso.c b/keyboards/gmmk/pro/rev2/iso/iso.c index 7a34f2432f..ce211ea47d 100644 --- a/keyboards/gmmk/pro/rev2/iso/iso.c +++ b/keyboards/gmmk/pro/rev2/iso/iso.c @@ -18,125 +18,6 @@ #ifdef RGB_MATRIX_ENABLE // clang-format off -led_config_t g_led_config = {{ - { 4, NO_LED, NO_LED, 96, 65, 80, 5, 28 }, - { 8, 2, 9, 0, 10, 76, 1, 7 }, - { 14, 3, 15, 67, 16, 87, 6, 13 }, - { 20, 18, 21, 23, 22, 94, 12, 19 }, - { 25, 30, 26, 31, 27, 32, 29, 24 }, - { 41, 36, 42, 37, 43, 38, 35, 40 }, - { 46, 90, 47, 34, 48, 73, 79, 45 }, - { 52, 39, 53, 98, 54, 83, 44, 51 }, - { 58, 63, 59, 64, 95, 60, 62, 57 }, - { 11, 91, 55, 17, 33, 49, NO_LED, 70 }, - { NO_LED, 86, NO_LED, 61, 97, 66, 50, 56 } -}, { - {0, 0}, // 0, ESC, k13 - {0, 15}, // 1, `, k16 - {4, 26}, // 2, Tab, k11 - {5, 38}, // 3, Caps, k21 - {2, 49}, // 4, Sh_L, k00 - {2, 61}, // 5, Ct_L, k06 - {18, 0}, // 6, F1, k26 - {14, 15}, // 7, 1, k17 - {22, 26}, // 8, Q, k10 - {25, 38}, // 9, A, k12 - {33, 49}, // 10, Z, k14 - {20, 61}, // 11, Win_L, k90 - {33, 0}, // 12, F2, k36 - {29, 15}, // 13, 2, k27 - {36, 26}, // 14, W, k20 - {40, 38}, // 15, S, k22 - {47, 49}, // 16, X, k24 - {38, 61}, // 17, Alt_L, k93 - {47, 0}, // 18, F3, k31 - {43, 15}, // 19, 3, k37 - {51, 26}, // 20, E, k30 - {54, 38}, // 21, D, k32 - {61, 49}, // 22, C, k34 - {61, 0}, // 23, F4, k33 - {58, 15}, // 24, 4, k47 - {65, 26}, // 25, R, k40 - {69, 38}, // 26, F, k42 - {76, 49}, // 27, V, k44 - {79, 0}, // 28, F5, k07 - {72, 15}, // 29, 5, k46 - {79, 26}, // 30, T, k41 - {83, 38}, // 31, G, k43 - {90, 49}, // 32, B, k45 - {92, 61}, // 33, SPACE, k94 - {94, 0}, // 34, F6, k63 - {87, 15}, // 35, 6, k56 - {94, 26}, // 36, Y, k51 - {98, 38}, // 37, H, k53 - {105, 49}, // 38, N, k55 - {108, 0}, // 39, F7, k71 - {101, 15}, // 40, 7, k57 - {108, 26}, // 41, U, k50 - {112, 38}, // 42, J, k52 - {119, 49}, // 43, M, k54 - {123, 0}, // 44, F8, k76 - {116, 15}, // 45, 8, k67 - {123, 26}, // 46, I, k60 - {126, 38}, // 47, K, k62 - {134, 49}, // 48, ,, k64 - {145, 61}, // 49, Alt_R, k95 - {141, 0}, // 50, F9, ka6 - {130, 15}, // 51, 9, k77 - {137, 26}, // 52, O, k70 - {141, 38}, // 53, L, k72 - {148, 49}, // 54, ., k74 - {159, 61}, // 55, FN, k92 - {155, 0}, // 56, F10, ka7 - {145, 15}, // 57, 0, k87 - {152, 26}, // 58, P, k80 - {155, 38}, // 59, ;, k82 - {163, 49}, // 60, /, k85 - {170, 0}, // 61, F11, ka3 - {159, 15}, // 62, -, k86 - {166, 26}, // 63, [, k81 - {170, 38}, // 64, ", k83 - {173, 61}, // 65, Ct_R, k04 - {184, 0}, // 66, F12, ka5 - {18, 49}, // 67, \, k23 - {0, 8}, // 68, LED, l01 - {224, 8}, // 69, LED, l11 - {202, 0}, // 70, Prt, k97 - {0, 15}, // 71, LED, l02 - {224, 15}, // 72, LED, l12 - {224, 15}, // 73, Del, k65 - {0, 21}, // 74, LED, l03 - {224, 21}, // 75, LED, l13 - {224, 26}, // 76, PgUp, k15 - {0, 28}, // 77, LED, l04 - {224, 28}, // 78, LED, l14 - {173, 15}, // 79, =, k66 - {220, 64}, // 80, Right, k05 - {0, 35}, // 81, LED, l05 - {224, 35}, // 82, LED, l15 - {224, 49}, // 83, End, k75 - {0, 42}, // 84, LED, l06 - {224, 42}, // 85, LED, l16 - {195, 15}, // 86, BSpc, ka1 - {224, 38}, // 87, PgDn, k25 - {0, 48}, // 88, LED, l07 - {224, 48}, // 89, LED, l17 - {181, 26}, // 90, ], k61 - {182, 49}, // 91, Sh_R, k91 - {0, 55}, // 92, LED, l08 - {224, 55}, // 93, LED, l18 - {206, 52}, // 94, Up, k35 - {184, 38}, // 95, #, k84 - {191, 64}, // 96, Left, k03 - {201, 26}, // 97, Enter, ka4 - {206, 64}, // 98, Down, k73 -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 4, 2, 2, 4, 2, - 2, 4, 2, 2, 4, 4, 2, 2, 4, 2, 2, 4, 4, 2, 2, 4, 4, 2, 2, 4, 4, 4, 4, 4 -}}; - const aw20216s_led_t PROGMEM g_aw20216s_leds[AW20216S_LED_COUNT] = { {0, SW1_CS1, SW1_CS2, SW1_CS3}, // 0, ESC, k13 {0, SW1_CS4, SW1_CS5, SW1_CS6}, // 1, ~, k16 diff --git a/keyboards/gmmk/pro/rev2/iso/keyboard.json b/keyboards/gmmk/pro/rev2/iso/keyboard.json index 01db9dc22f..886d9e8c55 100644 --- a/keyboards/gmmk/pro/rev2/iso/keyboard.json +++ b/keyboards/gmmk/pro/rev2/iso/keyboard.json @@ -41,6 +41,109 @@ }, "processor": "WB32F3G71", "bootloader": "wb32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [1, 3], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 0, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 4, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 5, "y": 38, "flags": 4}, + {"matrix": [0, 0], "x": 2, "y": 49, "flags": 4}, + {"matrix": [0, 6], "x": 2, "y": 61, "flags": 4}, + {"matrix": [2, 6], "x": 18, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 14, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 22, "y": 26, "flags": 4}, + {"matrix": [1, 2], "x": 25, "y": 38, "flags": 4}, + {"matrix": [1, 4], "x": 33, "y": 49, "flags": 4}, + {"matrix": [9, 0], "x": 20, "y": 61, "flags": 4}, + {"matrix": [3, 6], "x": 33, "y": 0, "flags": 4}, + {"matrix": [2, 7], "x": 29, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 36, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 49, "flags": 4}, + {"matrix": [9, 3], "x": 38, "y": 61, "flags": 4}, + {"matrix": [3, 1], "x": 47, "y": 0, "flags": 4}, + {"matrix": [3, 7], "x": 43, "y": 15, "flags": 4}, + {"matrix": [3, 0], "x": 51, "y": 26, "flags": 4}, + {"matrix": [3, 2], "x": 54, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 61, "y": 49, "flags": 4}, + {"matrix": [3, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [4, 7], "x": 58, "y": 15, "flags": 4}, + {"matrix": [4, 0], "x": 65, "y": 26, "flags": 4}, + {"matrix": [4, 2], "x": 69, "y": 38, "flags": 4}, + {"matrix": [4, 4], "x": 76, "y": 49, "flags": 4}, + {"matrix": [0, 7], "x": 79, "y": 0, "flags": 4}, + {"matrix": [4, 6], "x": 72, "y": 15, "flags": 4}, + {"matrix": [4, 1], "x": 79, "y": 26, "flags": 4}, + {"matrix": [4, 3], "x": 83, "y": 38, "flags": 4}, + {"matrix": [4, 5], "x": 90, "y": 49, "flags": 4}, + {"matrix": [9, 4], "x": 92, "y": 61, "flags": 4}, + {"matrix": [6, 3], "x": 94, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 87, "y": 15, "flags": 4}, + {"matrix": [5, 1], "x": 94, "y": 26, "flags": 4}, + {"matrix": [5, 3], "x": 98, "y": 38, "flags": 4}, + {"matrix": [5, 5], "x": 105, "y": 49, "flags": 4}, + {"matrix": [7, 1], "x": 108, "y": 0, "flags": 4}, + {"matrix": [5, 7], "x": 101, "y": 15, "flags": 4}, + {"matrix": [5, 0], "x": 108, "y": 26, "flags": 4}, + {"matrix": [5, 2], "x": 112, "y": 38, "flags": 4}, + {"matrix": [5, 4], "x": 119, "y": 49, "flags": 4}, + {"matrix": [7, 6], "x": 123, "y": 0, "flags": 4}, + {"matrix": [6, 7], "x": 116, "y": 15, "flags": 4}, + {"matrix": [6, 0], "x": 123, "y": 26, "flags": 4}, + {"matrix": [6, 2], "x": 126, "y": 38, "flags": 4}, + {"matrix": [6, 4], "x": 134, "y": 49, "flags": 4}, + {"matrix": [9, 5], "x": 145, "y": 61, "flags": 4}, + {"matrix": [10, 6], "x": 141, "y": 0, "flags": 4}, + {"matrix": [7, 7], "x": 130, "y": 15, "flags": 4}, + {"matrix": [7, 0], "x": 137, "y": 26, "flags": 4}, + {"matrix": [7, 2], "x": 141, "y": 38, "flags": 4}, + {"matrix": [7, 4], "x": 148, "y": 49, "flags": 4}, + {"matrix": [9, 2], "x": 159, "y": 61, "flags": 4}, + {"matrix": [10, 7], "x": 155, "y": 0, "flags": 4}, + {"matrix": [8, 7], "x": 145, "y": 15, "flags": 4}, + {"matrix": [8, 0], "x": 152, "y": 26, "flags": 4}, + {"matrix": [8, 2], "x": 155, "y": 38, "flags": 4}, + {"matrix": [8, 5], "x": 163, "y": 49, "flags": 4}, + {"matrix": [10, 3], "x": 170, "y": 0, "flags": 4}, + {"matrix": [8, 6], "x": 159, "y": 15, "flags": 4}, + {"matrix": [8, 1], "x": 166, "y": 26, "flags": 4}, + {"matrix": [8, 3], "x": 170, "y": 38, "flags": 4}, + {"matrix": [0, 4], "x": 173, "y": 61, "flags": 4}, + {"matrix": [10, 5], "x": 184, "y": 0, "flags": 4}, + {"matrix": [2, 3], "x": 18, "y": 49, "flags": 4}, + {"x": 0, "y": 8, "flags": 2}, + {"x": 224, "y": 8, "flags": 2}, + {"matrix": [9, 7], "x": 202, "y": 0, "flags": 4}, + {"x": 0, "y": 15, "flags": 2}, + {"x": 224, "y": 15, "flags": 2}, + {"matrix": [6, 5], "x": 224, "y": 15, "flags": 4}, + {"x": 0, "y": 21, "flags": 2}, + {"x": 224, "y": 21, "flags": 2}, + {"matrix": [1, 5], "x": 224, "y": 26, "flags": 4}, + {"x": 0, "y": 28, "flags": 2}, + {"x": 224, "y": 28, "flags": 2}, + {"matrix": [6, 6], "x": 173, "y": 15, "flags": 4}, + {"matrix": [0, 5], "x": 220, "y": 64, "flags": 4}, + {"x": 0, "y": 35, "flags": 2}, + {"x": 224, "y": 35, "flags": 2}, + {"matrix": [7, 5], "x": 224, "y": 49, "flags": 4}, + {"x": 0, "y": 42, "flags": 2}, + {"x": 224, "y": 42, "flags": 2}, + {"matrix": [10, 1], "x": 195, "y": 15, "flags": 4}, + {"matrix": [2, 5], "x": 224, "y": 38, "flags": 4}, + {"x": 0, "y": 48, "flags": 2}, + {"x": 224, "y": 48, "flags": 2}, + {"matrix": [6, 1], "x": 181, "y": 26, "flags": 4}, + {"matrix": [9, 1], "x": 182, "y": 49, "flags": 4}, + {"x": 0, "y": 55, "flags": 2}, + {"x": 224, "y": 55, "flags": 2}, + {"matrix": [3, 5], "x": 206, "y": 52, "flags": 4}, + {"matrix": [8, 4], "x": 184, "y": 38, "flags": 4}, + {"matrix": [0, 3], "x": 191, "y": 64, "flags": 4}, + {"matrix": [10, 4], "x": 201, "y": 26, "flags": 4}, + {"matrix": [7, 3], "x": 206, "y": 64, "flags": 4} + ] + }, "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/gopolar/gg86/gg86.c b/keyboards/gopolar/gg86/gg86.c index 52e1434f00..3aa1d608a8 100644 --- a/keyboards/gopolar/gg86/gg86.c +++ b/keyboards/gopolar/gg86/gg86.c @@ -25,37 +25,6 @@ #include #include -led_config_t g_led_config = { { - { 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, NO_LED, 74, 73, 72 }, - { 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71 }, - { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38 }, - { 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, NO_LED, 37, NO_LED, NO_LED, NO_LED }, - { 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, NO_LED, 10, NO_LED }, - { 0, 1, 2, NO_LED, NO_LED, 3, NO_LED, NO_LED, NO_LED, NO_LED, 4, 5, 6, NO_LED, 7, 8, 9 } -}, { - // Key matrix (0 -> 87) - {3 , 64}, {19 , 64}, {36 , 64}, {91 , 64}, {146, 64}, {162, 64}, {179, 64}, {198, 64}, {211, 64}, {224, 64}, - {211, 52}, {182, 52}, {170, 52}, {146, 52}, {133, 52}, {120, 52}, {107, 52}, {94 , 52}, {81 , 52}, {68 , 52}, {55 , 52}, {42 , 52}, {29 , 52}, {16 , 52}, {2 , 52}, - {2 , 41}, {23 , 41}, {36 , 41}, {49 , 41}, {62 , 41}, {75 , 41}, {88 , 41}, {101, 41}, {114, 41}, {127, 41}, {140, 41}, {153, 41}, {174, 41}, - {224, 29}, {211, 29}, {198, 29}, {179, 29}, {162, 29}, {149, 29}, {136, 29}, {123, 29}, {110, 29}, {97 , 29}, {84 , 29}, {71 , 29}, {58 , 29}, {45 , 29}, {32 , 29}, {19 , 29}, {3 , 29}, - {0 , 17}, {13 , 17}, {26 , 17}, {39 , 17}, {52 , 17}, {65 , 17}, {78 , 17}, {91 , 17}, {104, 17}, {117, 17}, {130, 17}, {143, 17}, {156, 17}, {175, 17}, {198, 17}, {211, 17}, {224, 17}, - {224, 0}, {211, 0}, {198, 0}, {182, 0}, {169, 0}, {156, 0}, {143, 0}, {123, 0}, {110, 0}, {97 , 0}, {84 , 0}, {65 , 0}, {52 , 0}, {39 , 0}, {26 , 0}, {0 , 0}, - - // Underglow (88 -> 99) - {1 , 6}, {50 , 6}, {89 , 6}, {135, 6}, {176, 6}, {198, 6}, {221, 55}, {192, 58}, {138, 59}, {96 , 61}, {42 , 59}, {7 , 60}, -}, { - // Key matrix (0 -> 87) - 1, 1, 1, 4, 1, 1, 1, 4, 4, 4, - 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, - 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - - // Underglow (88 -> 99) - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 -} }; - bool process_record_kb(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QK_RGB_MATRIX_TOGGLE: @@ -114,7 +83,7 @@ bool rgb_matrix_indicators_kb(void) { #endif #ifdef OLED_ENABLE - uint16_t startup_timer; + uint16_t startup_timer; oled_rotation_t oled_init_kb(oled_rotation_t rotation) { startup_timer = timer_read(); @@ -129,7 +98,7 @@ bool rgb_matrix_indicators_kb(void) { render_logo(); } else { finished_logo = true; - + if (!oled_task_user()) { return false; } diff --git a/keyboards/gopolar/gg86/keyboard.json b/keyboards/gopolar/gg86/keyboard.json index 3412a7c63c..dc182f6977 100644 --- a/keyboards/gopolar/gg86/keyboard.json +++ b/keyboards/gopolar/gg86/keyboard.json @@ -59,6 +59,108 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [5, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 19, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 36, "y": 64, "flags": 1}, + {"matrix": [5, 5], "x": 91, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 146, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 162, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 179, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 4}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 4}, + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 4}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 182, "y": 52, "flags": 1}, + {"matrix": [4, 12], "x": 170, "y": 52, "flags": 1}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 52, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 52, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 41, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 41, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 41, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 41, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 41, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 41, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 41, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 41, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 41, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 41, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 41, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 41, "flags": 4}, + {"matrix": [3, 13], "x": 174, "y": 41, "flags": 1}, + {"matrix": [2, 16], "x": 224, "y": 29, "flags": 4}, + {"matrix": [2, 15], "x": 211, "y": 29, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 29, "flags": 4}, + {"matrix": [2, 13], "x": 179, "y": 29, "flags": 4}, + {"matrix": [2, 12], "x": 162, "y": 29, "flags": 4}, + {"matrix": [2, 11], "x": 149, "y": 29, "flags": 4}, + {"matrix": [2, 10], "x": 136, "y": 29, "flags": 4}, + {"matrix": [2, 9], "x": 123, "y": 29, "flags": 4}, + {"matrix": [2, 8], "x": 110, "y": 29, "flags": 4}, + {"matrix": [2, 7], "x": 97, "y": 29, "flags": 4}, + {"matrix": [2, 6], "x": 84, "y": 29, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 29, "flags": 4}, + {"matrix": [2, 4], "x": 58, "y": 29, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 29, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 29, "flags": 4}, + {"matrix": [2, 1], "x": 19, "y": 29, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 29, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4}, + {"matrix": [1, 1], "x": 13, "y": 17, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 17, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 17, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 17, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 17, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 17, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 17, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 17, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 17, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 17, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 17, "flags": 4}, + {"matrix": [1, 13], "x": 175, "y": 17, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 17, "flags": 4}, + {"matrix": [1, 15], "x": 211, "y": 17, "flags": 4}, + {"matrix": [1, 16], "x": 224, "y": 17, "flags": 4}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 8}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 182, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 169, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 156, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 123, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 65, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 39, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 26, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"x": 1, "y": 6, "flags": 2}, + {"x": 50, "y": 6, "flags": 2}, + {"x": 89, "y": 6, "flags": 2}, + {"x": 135, "y": 6, "flags": 2}, + {"x": 176, "y": 6, "flags": 2}, + {"x": 198, "y": 6, "flags": 2}, + {"x": 221, "y": 55, "flags": 2}, + {"x": 192, "y": 58, "flags": 2}, + {"x": 138, "y": 59, "flags": 2}, + {"x": 96, "y": 61, "flags": 2}, + {"x": 42, "y": 59, "flags": 2}, + {"x": 7, "y": 60, "flags": 2} + ], "max_brightness": 150 }, "matrix_pins": { From 3a29cdbd7d451e470c00b137152794fdfbd8056e Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 03:01:17 -0600 Subject: [PATCH 027/255] Migrate `g_led_config` to DD (K6) (#25607) --- keyboards/keychron/v6/ansi/ansi.c | 30 ----- keyboards/keychron/v6/ansi/keyboard.json | 112 +++++++++++++++++ .../keychron/v6/ansi_encoder/ansi_encoder.c | 33 ----- .../keychron/v6/ansi_encoder/keyboard.json | 116 ++++++++++++++++- keyboards/keychron/v6/iso/iso.c | 33 ----- keyboards/keychron/v6/iso/keyboard.json | 117 +++++++++++++++++- .../keychron/v6/iso_encoder/iso_encoder.c | 33 ----- .../keychron/v6/iso_encoder/keyboard.json | 117 +++++++++++++++++- keyboards/keychron/v7/ansi/ansi.c | 30 ----- keyboards/keychron/v7/ansi/keyboard.json | 76 ++++++++++++ keyboards/keychron/v7/iso/iso.c | 30 ----- keyboards/keychron/v7/iso/keyboard.json | 77 ++++++++++++ keyboards/keychron/v8/ansi/ansi.c | 30 ----- keyboards/keychron/v8/ansi/keyboard.json | 73 +++++++++++ .../keychron/v8/ansi_encoder/ansi_encoder.c | 30 ----- .../keychron/v8/ansi_encoder/keyboard.json | 73 +++++++++++ keyboards/keychron/v8/iso/iso.c | 30 ----- keyboards/keychron/v8/iso/keyboard.json | 74 +++++++++++ .../keychron/v8/iso_encoder/iso_encoder.c | 30 ----- .../keychron/v8/iso_encoder/keyboard.json | 74 +++++++++++ 20 files changed, 900 insertions(+), 318 deletions(-) diff --git a/keyboards/keychron/v6/ansi/ansi.c b/keyboards/keychron/v6/ansi/ansi.c index 2e055e57af..c8dc8c95c6 100644 --- a/keyboards/keychron/v6/ansi/ansi.c +++ b/keyboards/keychron/v6/ansi/ansi.c @@ -139,34 +139,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA12, CB10_CA12, CB11_CA12}, {1, CB12_CA9, CB10_CA9, CB11_CA9}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 18 }, - { 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, __, 73, 60, 77, 76, 74, 75, 19 }, - { 78, __, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, __, 89, 93, 90, 107, 91, 92, __ }, - { 94, 95, 96, __, __, __, 97, __, __, __, 98, 99, 100, 101, 102, 103, 104, 105, 106, __ }, - }, - { - {0,0}, {21,0}, {31,0}, {42,0}, {52,0}, {68,0}, {78,0}, {89,0}, {99,0}, {115,0}, {125,0}, {136,0}, {146,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, - {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, - {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {143,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, - {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {139,40}, {193,40}, {203,40}, {214,40}, {224,34}, - {7,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, - {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, - }, - { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v6/ansi/keyboard.json b/keyboards/keychron/v6/ansi/keyboard.json index e68f3cdec8..6733c196b7 100644 --- a/keyboards/keychron/v6/ansi/keyboard.json +++ b/keyboards/keychron/v6/ansi/keyboard.json @@ -18,6 +18,118 @@ "rgb_matrix": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 21, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 31, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 99, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 115, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 136, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 146, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, + {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1}, + {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1}, + {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1}, + {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, + {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8}, + {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, + {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4}, + {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 143, "y": 27, "flags": 4}, + {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, + {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, + {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 139, "y": 40, "flags": 1}, + {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, + {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, + {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4}, + {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_108": { "layout": [ diff --git a/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c index 1ebf947912..fa08ec41aa 100644 --- a/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v6/ansi_encoder/ansi_encoder.c @@ -141,37 +141,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA12, CB10_CA12, CB11_CA12}, {1, CB12_CA9, CB10_CA9, CB11_CA9}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 18 }, - { 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, __, 73, 60, 77, 76, 74, 75, 19 }, - { 78, __, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, __, 89, 93, 90, 107, 91, 92, __ }, - { 94, 95, 96, __, __, __, 97, __, __, __, 98, 99, 100, 101, 102, 103, 104, 105, 106, __ }, - }, - { - // LED Index to Physical Position - {0,0}, {13,0}, {24,0}, {34,0}, {45,0}, {57,0}, {68,0}, {78,0}, {89,0}, {102,0}, {112,0}, {123,0}, {133,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, - {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, - {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {143,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, - {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {139,40}, {193,40}, {203,40}, {214,40}, {224,34}, - {7,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, - {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v6/ansi_encoder/keyboard.json b/keyboards/keychron/v6/ansi_encoder/keyboard.json index 6ccc6d415b..3427c3e633 100644 --- a/keyboards/keychron/v6/ansi_encoder/keyboard.json +++ b/keyboards/keychron/v6/ansi_encoder/keyboard.json @@ -8,9 +8,6 @@ "pid": "0x0361", "device_version": "1.0.0" }, - "rgb_matrix": { - "driver": "snled27351" - }, "encoder": { "rotary": [ {"pin_a": "C14", "pin_b": "A2"} @@ -27,6 +24,119 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "driver": "snled27351", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 13, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 45, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 57, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 102, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 123, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, + {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1}, + {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1}, + {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1}, + {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, + {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8}, + {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, + {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4}, + {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 143, "y": 27, "flags": 4}, + {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, + {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, + {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 139, "y": 40, "flags": 1}, + {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, + {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, + {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4}, + {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_109": { "layout": [ diff --git a/keyboards/keychron/v6/iso/iso.c b/keyboards/keychron/v6/iso/iso.c index cc9dbd8c23..0675e47a3b 100644 --- a/keyboards/keychron/v6/iso/iso.c +++ b/keyboards/keychron/v6/iso/iso.c @@ -142,37 +142,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA12, CB10_CA12, CB11_CA12}, {1, CB12_CA9, CB10_CA9, CB11_CA9}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 73, 54, 55, 56, 57, 58, 18 }, - { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, __, 72, 59, 77, 76, 74, 75, 19 }, - { 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, __, 90, 94, 91, 108, 92, 93, __ }, - { 95, 96, 97, __, __, __, 98, __, __, __, 99, 100, 101, 102, 103, 104, 105, 106, 107, __ }, - }, - { - // LED Index to Physical Position - {0,0}, {21,0}, {31,0}, {42,0}, {52,0}, {68,0}, {78,0}, {89,0}, {99,0}, {115,0}, {125,0}, {136,0}, {146,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, - {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, - {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, - {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {133,40}, {147,36}, {193,40}, {203,40}, {214,40}, {224,34}, - {1,52}, {13,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, - {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v6/iso/keyboard.json b/keyboards/keychron/v6/iso/keyboard.json index e2f17e4f6e..9310919456 100644 --- a/keyboards/keychron/v6/iso/keyboard.json +++ b/keyboards/keychron/v6/iso/keyboard.json @@ -8,9 +8,6 @@ "pid": "0x0362", "device_version": "1.0.0" }, - "rgb_matrix": { - "driver": "snled27351" - }, "processor": "STM32L432", "bootloader": "stm32-dfu", "features": { @@ -21,6 +18,120 @@ "rgb_matrix": true, "dip_switch": true }, + "rgb_matrix": { + "driver": "snled27351", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 21, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 31, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 99, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 115, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 136, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 146, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, + {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1}, + {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1}, + {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1}, + {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, + {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8}, + {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, + {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4}, + {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, + {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, + {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 133, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 147, "y": 36, "flags": 1}, + {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, + {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 1, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 13, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, + {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4}, + {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_109": { "layout": [ diff --git a/keyboards/keychron/v6/iso_encoder/iso_encoder.c b/keyboards/keychron/v6/iso_encoder/iso_encoder.c index f1a8e18acf..0675e47a3b 100644 --- a/keyboards/keychron/v6/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v6/iso_encoder/iso_encoder.c @@ -142,37 +142,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA12, CB10_CA12, CB11_CA12}, {1, CB12_CA9, CB10_CA9, CB11_CA9}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 73, 54, 55, 56, 57, 58, 18 }, - { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, __, 72, 59, 77, 76, 74, 75, 19 }, - { 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, __, 90, 94, 91, 108, 92, 93, __ }, - { 95, 96, 97, __, __, __, 98, __, __, __, 99, 100, 101, 102, 103, 104, 105, 106, 107, __ }, - }, - { - // LED Index to Physical Position - {0,0}, {13,0}, {24,0}, {34,0}, {45,0}, {57,0}, {68,0}, {78,0}, {89,0}, {102,0}, {112,0}, {123,0}, {133,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, - {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, - {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, - {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {133,40}, {147,36}, {193,40}, {203,40}, {214,40}, {224,34}, - {1,52}, {13,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, - {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v6/iso_encoder/keyboard.json b/keyboards/keychron/v6/iso_encoder/keyboard.json index d7469b54e0..858c33a692 100644 --- a/keyboards/keychron/v6/iso_encoder/keyboard.json +++ b/keyboards/keychron/v6/iso_encoder/keyboard.json @@ -8,9 +8,6 @@ "pid": "0x0363", "device_version": "1.0.0" }, - "rgb_matrix": { - "driver": "snled27351" - }, "encoder": { "rotary": [ {"pin_a": "C14", "pin_b": "A2"} @@ -27,6 +24,120 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "driver": "snled27351", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 13, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 45, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 57, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 102, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 123, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, + {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1}, + {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1}, + {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1}, + {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, + {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8}, + {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, + {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4}, + {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, + {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, + {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 133, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 147, "y": 36, "flags": 1}, + {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, + {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 1, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 13, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, + {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4}, + {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_110": { "layout": [ diff --git a/keyboards/keychron/v7/ansi/ansi.c b/keyboards/keychron/v7/ansi/ansi.c index 4d0bedff09..f246a16910 100644 --- a/keyboards/keychron/v7/ansi/ansi.c +++ b/keyboards/keychron/v7/ansi/ansi.c @@ -104,34 +104,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA15, CB4_CA15, CB5_CA15}, {1, CB6_CA16, CB4_CA16, CB5_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, - { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, __, 44, 45, 46 }, - { 47, __, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, __, 58, 59, 60 }, - { 61, 62, 63, __, __, __, 64, __, __, 65, 66, 67, 68, 69, 70, 71 }, - }, - { - // LED Index to Physical Position - {0,0}, {14,0}, {28,0}, {42,0}, {56,0}, {70,0}, {84,0}, {98,0}, {112,0}, {126,0}, {140,0}, {154,0}, {168,0}, {189,0}, {210,0}, {224,0}, - {4,16}, {21,16}, {35,16}, {49,16}, {63,16}, {77,16}, {91,16}, {105,16}, {119,16}, {133,16}, {147,16}, {161,16}, {175,16}, {192,16}, {210,16}, {224,16}, - {5,32}, {25,32}, {38,32}, {52,32}, {66,32}, {80,32}, {94,32}, {108,32}, {122,32}, {136,32}, {150,32}, {164,32}, {187,32}, {210,32}, {224,32}, - {9,48}, {32,48}, {45,48}, {59,48}, {73,48}, {87,48}, {101,48}, {115,48}, {129,48}, {143,48}, {157,48}, {184,48}, {210,48}, {224,48}, - {2,64}, {19,64}, {37,64}, {89,64}, {140,64}, {154,64}, {168,64}, {182,64}, {196,64}, {210,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v7/ansi/keyboard.json b/keyboards/keychron/v7/ansi/keyboard.json index 503aea5ab6..0fccc7b336 100644 --- a/keyboards/keychron/v7/ansi/keyboard.json +++ b/keyboards/keychron/v7/ansi/keyboard.json @@ -23,6 +23,82 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 70, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 98, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 154, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 168, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 189, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 210, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 35, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 49, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 63, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 77, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 91, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 105, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 119, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 133, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 161, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 175, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 210, "y": 16, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 5, "y": 32, "flags": 8}, + {"matrix": [2, 1], "x": 25, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 38, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 94, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 122, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 136, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 150, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 164, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 187, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 210, "y": 32, "flags": 1}, + {"matrix": [2, 15], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 59, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 73, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 87, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 115, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 129, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 143, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 157, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 184, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 210, "y": 48, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 19, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 37, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 89, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 140, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 154, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 168, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 182, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 196, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 15], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_72": { "layout": [ diff --git a/keyboards/keychron/v7/iso/iso.c b/keyboards/keychron/v7/iso/iso.c index cdd2d97209..0de3fb4894 100644 --- a/keyboards/keychron/v7/iso/iso.c +++ b/keyboards/keychron/v7/iso/iso.c @@ -105,34 +105,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA15, CB4_CA15, CB5_CA15}, {1, CB6_CA16, CB4_CA16, CB5_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 44, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, __, 43, 45, 46 }, - { 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, __, 59, 60, 61 }, - { 62, 63, 64, __, __, __, 65, __, __, 66, 67, 68, 69, 70, 71, 72 }, - }, - { - // LED Index to Physical Position - {0,0}, {14,0}, {28,0}, {42,0}, {56,0}, {70,0}, {84,0}, {98,0}, {112,0}, {126,0}, {140,0}, {154,0}, {168,0}, {189,0}, {210,0}, {224,0}, - {4,16}, {21,16}, {35,16}, {49,16}, {63,16}, {77,16}, {91,16}, {105,16}, {119,16}, {133,16}, {147,16}, {161,16}, {175,16}, {210,16}, {224,16}, - {5,32}, {25,32}, {38,32}, {52,32}, {66,32}, {80,32}, {94,32}, {108,32}, {122,32}, {136,32}, {150,32}, {164,32}, {178,32}, {197,27}, {210,32}, {224,32}, - {2,48}, {18,48}, {32,48}, {45,48}, {59,48}, {73,48}, {87,48}, {101,48}, {115,48}, {129,48}, {143,48}, {157,48}, {184,48}, {210,48}, {224,48}, - {2,64}, {19,64}, {37,64}, {89,64}, {140,64}, {154,64}, {168,64}, {182,64}, {196,64}, {210,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v7/iso/keyboard.json b/keyboards/keychron/v7/iso/keyboard.json index ec4cd06e6b..4e57beb985 100644 --- a/keyboards/keychron/v7/iso/keyboard.json +++ b/keyboards/keychron/v7/iso/keyboard.json @@ -23,6 +23,83 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 70, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 98, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 154, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 168, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 189, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 210, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 35, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 49, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 63, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 77, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 91, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 105, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 119, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 133, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 161, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 175, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 210, "y": 16, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 5, "y": 32, "flags": 8}, + {"matrix": [2, 1], "x": 25, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 38, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 94, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 122, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 136, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 150, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 164, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 178, "y": 32, "flags": 4}, + {"matrix": [1, 13], "x": 197, "y": 27, "flags": 1}, + {"matrix": [2, 14], "x": 210, "y": 32, "flags": 1}, + {"matrix": [2, 15], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 18, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 59, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 73, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 87, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 115, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 129, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 143, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 157, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 184, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 210, "y": 48, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 19, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 37, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 89, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 140, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 154, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 168, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 182, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 196, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 15], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_73": { "layout": [ diff --git a/keyboards/keychron/v8/ansi/ansi.c b/keyboards/keychron/v8/ansi/ansi.c index fcc232511f..82c6e533a1 100644 --- a/keyboards/keychron/v8/ansi/ansi.c +++ b/keyboards/keychron/v8/ansi/ansi.c @@ -102,34 +102,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA2, CB4_CA2, CB5_CA2}, {1, CB6_CA1, CB4_CA1, CB5_CA1} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, __, 36, 37, 38, 39, 40, 41, 42, 43 }, - { 44, __, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, - { 58, 59, 60, 61, __, __, 62, 63, 64, 65, __, __, 66, 67, 68 }, - }, - { - // LED Index to Physical Position - {7,1}, {20,1}, {33,0}, {48,3}, {61,6}, {74,8 }, {87,11}, {106,11}, {119,8}, {132,6}, {145,3}, {160,0}, {173,1}, {193,1}, {220,0}, - {7,14}, {24,14}, {39,14}, {52,17}, {65,20}, {78,22}, {103,25}, {116,22}, {129,20}, {142,17}, {155,14}, {170,14}, {183,14}, {200,14}, {222,16}, - {6,27}, {24,27}, {39,28}, {52,30}, {65,33}, {78,36}, {109,37}, {122,34}, {135,32}, {148,29}, {162,27}, {176,27}, {197,27}, {224,29}, - {7,40}, {28,40}, {43,42}, {56,44}, {69,47}, {82,50}, {102,52}, {115,49}, {128,46}, {141,44}, {154,41}, {169,40}, {187,40}, {209,43}, - {0,53}, {17,53}, {42,55}, {65,60}, {86,64}, {107,64}, {131,59}, {156,54}, {196,56}, {209,56}, {222,56}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 4, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v8/ansi/keyboard.json b/keyboards/keychron/v8/ansi/keyboard.json index 392783e024..9f54c60c3d 100644 --- a/keyboards/keychron/v8/ansi/keyboard.json +++ b/keyboards/keychron/v8/ansi/keyboard.json @@ -23,6 +23,79 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 7, "y": 1, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 1, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 3, "flags": 4}, + {"matrix": [0, 4], "x": 61, "y": 6, "flags": 4}, + {"matrix": [0, 5], "x": 74, "y": 8, "flags": 4}, + {"matrix": [0, 6], "x": 87, "y": 11, "flags": 4}, + {"matrix": [0, 7], "x": 106, "y": 11, "flags": 4}, + {"matrix": [0, 8], "x": 119, "y": 8, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 6, "flags": 4}, + {"matrix": [0, 10], "x": 145, "y": 3, "flags": 4}, + {"matrix": [0, 11], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 173, "y": 1, "flags": 4}, + {"matrix": [0, 13], "x": 193, "y": 1, "flags": 1}, + {"matrix": [0, 14], "x": 220, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 14, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 14, "flags": 4}, + {"matrix": [1, 2], "x": 39, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 65, "y": 20, "flags": 4}, + {"matrix": [1, 5], "x": 78, "y": 22, "flags": 4}, + {"matrix": [1, 6], "x": 103, "y": 25, "flags": 4}, + {"matrix": [1, 7], "x": 116, "y": 22, "flags": 4}, + {"matrix": [1, 8], "x": 129, "y": 20, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 17, "flags": 4}, + {"matrix": [1, 10], "x": 155, "y": 14, "flags": 4}, + {"matrix": [1, 11], "x": 170, "y": 14, "flags": 4}, + {"matrix": [1, 12], "x": 183, "y": 14, "flags": 4}, + {"matrix": [1, 13], "x": 200, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 222, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 27, "flags": 8}, + {"matrix": [2, 1], "x": 24, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 39, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 33, "flags": 4}, + {"matrix": [2, 5], "x": 78, "y": 36, "flags": 4}, + {"matrix": [2, 7], "x": 109, "y": 37, "flags": 4}, + {"matrix": [2, 8], "x": 122, "y": 34, "flags": 4}, + {"matrix": [2, 9], "x": 135, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 148, "y": 29, "flags": 4}, + {"matrix": [2, 11], "x": 162, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 197, "y": 27, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 29, "flags": 1}, + {"matrix": [3, 0], "x": 7, "y": 40, "flags": 1}, + {"matrix": [3, 2], "x": 28, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 43, "y": 42, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 44, "flags": 4}, + {"matrix": [3, 5], "x": 69, "y": 47, "flags": 4}, + {"matrix": [3, 6], "x": 82, "y": 50, "flags": 4}, + {"matrix": [3, 7], "x": 102, "y": 52, "flags": 4}, + {"matrix": [3, 8], "x": 115, "y": 49, "flags": 4}, + {"matrix": [3, 9], "x": 128, "y": 46, "flags": 4}, + {"matrix": [3, 10], "x": 141, "y": 44, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 41, "flags": 4}, + {"matrix": [3, 12], "x": 169, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 187, "y": 40, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 43, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 53, "flags": 1}, + {"matrix": [4, 1], "x": 17, "y": 53, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 55, "flags": 1}, + {"matrix": [4, 3], "x": 65, "y": 60, "flags": 4}, + {"matrix": [4, 6], "x": 86, "y": 64, "flags": 1}, + {"matrix": [4, 7], "x": 107, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 131, "y": 59, "flags": 4}, + {"matrix": [4, 9], "x": 156, "y": 54, "flags": 1}, + {"matrix": [4, 12], "x": 196, "y": 56, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 56, "flags": 1}, + {"matrix": [4, 14], "x": 222, "y": 56, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_69": { "layout": [ diff --git a/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c index fcc232511f..82c6e533a1 100644 --- a/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v8/ansi_encoder/ansi_encoder.c @@ -102,34 +102,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA2, CB4_CA2, CB5_CA2}, {1, CB6_CA1, CB4_CA1, CB5_CA1} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, __, 36, 37, 38, 39, 40, 41, 42, 43 }, - { 44, __, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, - { 58, 59, 60, 61, __, __, 62, 63, 64, 65, __, __, 66, 67, 68 }, - }, - { - // LED Index to Physical Position - {7,1}, {20,1}, {33,0}, {48,3}, {61,6}, {74,8 }, {87,11}, {106,11}, {119,8}, {132,6}, {145,3}, {160,0}, {173,1}, {193,1}, {220,0}, - {7,14}, {24,14}, {39,14}, {52,17}, {65,20}, {78,22}, {103,25}, {116,22}, {129,20}, {142,17}, {155,14}, {170,14}, {183,14}, {200,14}, {222,16}, - {6,27}, {24,27}, {39,28}, {52,30}, {65,33}, {78,36}, {109,37}, {122,34}, {135,32}, {148,29}, {162,27}, {176,27}, {197,27}, {224,29}, - {7,40}, {28,40}, {43,42}, {56,44}, {69,47}, {82,50}, {102,52}, {115,49}, {128,46}, {141,44}, {154,41}, {169,40}, {187,40}, {209,43}, - {0,53}, {17,53}, {42,55}, {65,60}, {86,64}, {107,64}, {131,59}, {156,54}, {196,56}, {209,56}, {222,56}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 4, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v8/ansi_encoder/keyboard.json b/keyboards/keychron/v8/ansi_encoder/keyboard.json index 6d3257feec..9ea3464084 100644 --- a/keyboards/keychron/v8/ansi_encoder/keyboard.json +++ b/keyboards/keychron/v8/ansi_encoder/keyboard.json @@ -29,6 +29,79 @@ }, "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 7, "y": 1, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 1, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 3, "flags": 4}, + {"matrix": [0, 4], "x": 61, "y": 6, "flags": 4}, + {"matrix": [0, 5], "x": 74, "y": 8, "flags": 4}, + {"matrix": [0, 6], "x": 87, "y": 11, "flags": 4}, + {"matrix": [0, 7], "x": 106, "y": 11, "flags": 4}, + {"matrix": [0, 8], "x": 119, "y": 8, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 6, "flags": 4}, + {"matrix": [0, 10], "x": 145, "y": 3, "flags": 4}, + {"matrix": [0, 11], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 173, "y": 1, "flags": 4}, + {"matrix": [0, 13], "x": 193, "y": 1, "flags": 1}, + {"matrix": [0, 14], "x": 220, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 14, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 14, "flags": 4}, + {"matrix": [1, 2], "x": 39, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 65, "y": 20, "flags": 4}, + {"matrix": [1, 5], "x": 78, "y": 22, "flags": 4}, + {"matrix": [1, 6], "x": 103, "y": 25, "flags": 4}, + {"matrix": [1, 7], "x": 116, "y": 22, "flags": 4}, + {"matrix": [1, 8], "x": 129, "y": 20, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 17, "flags": 4}, + {"matrix": [1, 10], "x": 155, "y": 14, "flags": 4}, + {"matrix": [1, 11], "x": 170, "y": 14, "flags": 4}, + {"matrix": [1, 12], "x": 183, "y": 14, "flags": 4}, + {"matrix": [1, 13], "x": 200, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 222, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 27, "flags": 8}, + {"matrix": [2, 1], "x": 24, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 39, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 33, "flags": 4}, + {"matrix": [2, 5], "x": 78, "y": 36, "flags": 4}, + {"matrix": [2, 7], "x": 109, "y": 37, "flags": 4}, + {"matrix": [2, 8], "x": 122, "y": 34, "flags": 4}, + {"matrix": [2, 9], "x": 135, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 148, "y": 29, "flags": 4}, + {"matrix": [2, 11], "x": 162, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 197, "y": 27, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 29, "flags": 1}, + {"matrix": [3, 0], "x": 7, "y": 40, "flags": 1}, + {"matrix": [3, 2], "x": 28, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 43, "y": 42, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 44, "flags": 4}, + {"matrix": [3, 5], "x": 69, "y": 47, "flags": 4}, + {"matrix": [3, 6], "x": 82, "y": 50, "flags": 4}, + {"matrix": [3, 7], "x": 102, "y": 52, "flags": 4}, + {"matrix": [3, 8], "x": 115, "y": 49, "flags": 4}, + {"matrix": [3, 9], "x": 128, "y": 46, "flags": 4}, + {"matrix": [3, 10], "x": 141, "y": 44, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 41, "flags": 4}, + {"matrix": [3, 12], "x": 169, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 187, "y": 40, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 43, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 53, "flags": 1}, + {"matrix": [4, 1], "x": 17, "y": 53, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 55, "flags": 1}, + {"matrix": [4, 3], "x": 65, "y": 60, "flags": 4}, + {"matrix": [4, 6], "x": 86, "y": 64, "flags": 1}, + {"matrix": [4, 7], "x": 107, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 131, "y": 59, "flags": 4}, + {"matrix": [4, 9], "x": 156, "y": 54, "flags": 1}, + {"matrix": [4, 12], "x": 196, "y": 56, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 56, "flags": 1}, + {"matrix": [4, 14], "x": 222, "y": 56, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_69": { "layout": [ diff --git a/keyboards/keychron/v8/iso/iso.c b/keyboards/keychron/v8/iso/iso.c index 4658969a10..8a84081a69 100644 --- a/keyboards/keychron/v8/iso/iso.c +++ b/keyboards/keychron/v8/iso/iso.c @@ -102,34 +102,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA2, CB4_CA2, CB5_CA2}, {1, CB6_CA1, CB4_CA1, CB5_CA1} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 42, 28 }, - { 29, 30, 31, 32, 33, 34, __, 35, 36, 37, 38, 39, 40, 41, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 }, - { 59, 60, 61, 62, __, __, 63, 64, 65, 66, __, __, 67, 68, 69 }, - }, - { - // LED Index to Physical Position - {7,1}, {20,1}, {33,0}, {48,3}, {61,6}, {74,8}, {87,11}, {106,11}, {119,8}, {132,6}, {145,3}, {160,0}, {173,1}, {193,1}, {220,0}, - {7,14}, {24,14}, {39,14}, {52,17}, {65,19}, {78,22}, {103,25}, {116,22}, {129,20}, {142,17}, {155,14}, {172,14}, {186,14}, {222,16}, - {6,27}, {24,27}, {39,27}, {52,30}, {65,33}, {78,35}, {109,37}, {122,34}, {135,31}, {148,29}, {162,27}, {176,27}, {189,27}, {207,22}, {224,29}, - {0,40}, {15,40}, {28,40}, {43,41}, {56,44}, {69,47}, {82,49}, {102,51}, {115,49}, {128,46}, {141,43}, {154,41}, {169,40}, {187,40}, {209,43}, - {0,52}, {17,52}, {42,54}, {65,59}, {86,63}, {104,64}, {129,59}, {153,54}, {196,56}, {209,56}, {222,59}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v8/iso/keyboard.json b/keyboards/keychron/v8/iso/keyboard.json index 0d10662a00..6efda1a4d7 100644 --- a/keyboards/keychron/v8/iso/keyboard.json +++ b/keyboards/keychron/v8/iso/keyboard.json @@ -23,6 +23,80 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 7, "y": 1, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 1, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 3, "flags": 4}, + {"matrix": [0, 4], "x": 61, "y": 6, "flags": 4}, + {"matrix": [0, 5], "x": 74, "y": 8, "flags": 4}, + {"matrix": [0, 6], "x": 87, "y": 11, "flags": 4}, + {"matrix": [0, 7], "x": 106, "y": 11, "flags": 4}, + {"matrix": [0, 8], "x": 119, "y": 8, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 6, "flags": 4}, + {"matrix": [0, 10], "x": 145, "y": 3, "flags": 4}, + {"matrix": [0, 11], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 173, "y": 1, "flags": 4}, + {"matrix": [0, 13], "x": 193, "y": 1, "flags": 1}, + {"matrix": [0, 14], "x": 220, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 14, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 14, "flags": 4}, + {"matrix": [1, 2], "x": 39, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 65, "y": 19, "flags": 4}, + {"matrix": [1, 5], "x": 78, "y": 22, "flags": 4}, + {"matrix": [1, 6], "x": 103, "y": 25, "flags": 4}, + {"matrix": [1, 7], "x": 116, "y": 22, "flags": 4}, + {"matrix": [1, 8], "x": 129, "y": 20, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 17, "flags": 4}, + {"matrix": [1, 10], "x": 155, "y": 14, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 14, "flags": 4}, + {"matrix": [1, 12], "x": 186, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 222, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 27, "flags": 8}, + {"matrix": [2, 1], "x": 24, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 39, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 33, "flags": 4}, + {"matrix": [2, 5], "x": 78, "y": 35, "flags": 4}, + {"matrix": [2, 7], "x": 109, "y": 37, "flags": 4}, + {"matrix": [2, 8], "x": 122, "y": 34, "flags": 4}, + {"matrix": [2, 9], "x": 135, "y": 31, "flags": 4}, + {"matrix": [2, 10], "x": 148, "y": 29, "flags": 4}, + {"matrix": [2, 11], "x": 162, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 189, "y": 27, "flags": 4}, + {"matrix": [1, 13], "x": 207, "y": 22, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 29, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 40, "flags": 1}, + {"matrix": [3, 1], "x": 15, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 28, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 43, "y": 41, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 44, "flags": 4}, + {"matrix": [3, 5], "x": 69, "y": 47, "flags": 4}, + {"matrix": [3, 6], "x": 82, "y": 49, "flags": 4}, + {"matrix": [3, 7], "x": 102, "y": 51, "flags": 4}, + {"matrix": [3, 8], "x": 115, "y": 49, "flags": 4}, + {"matrix": [3, 9], "x": 128, "y": 46, "flags": 4}, + {"matrix": [3, 10], "x": 141, "y": 43, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 41, "flags": 4}, + {"matrix": [3, 12], "x": 169, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 187, "y": 40, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 43, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 17, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 54, "flags": 1}, + {"matrix": [4, 3], "x": 65, "y": 59, "flags": 1}, + {"matrix": [4, 6], "x": 86, "y": 63, "flags": 1}, + {"matrix": [4, 7], "x": 104, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 129, "y": 59, "flags": 1}, + {"matrix": [4, 9], "x": 153, "y": 54, "flags": 1}, + {"matrix": [4, 12], "x": 196, "y": 56, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 56, "flags": 1}, + {"matrix": [4, 14], "x": 222, "y": 59, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_70": { "layout": [ diff --git a/keyboards/keychron/v8/iso_encoder/iso_encoder.c b/keyboards/keychron/v8/iso_encoder/iso_encoder.c index 4658969a10..8a84081a69 100644 --- a/keyboards/keychron/v8/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v8/iso_encoder/iso_encoder.c @@ -102,34 +102,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA2, CB4_CA2, CB5_CA2}, {1, CB6_CA1, CB4_CA1, CB5_CA1} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 42, 28 }, - { 29, 30, 31, 32, 33, 34, __, 35, 36, 37, 38, 39, 40, 41, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 }, - { 59, 60, 61, 62, __, __, 63, 64, 65, 66, __, __, 67, 68, 69 }, - }, - { - // LED Index to Physical Position - {7,1}, {20,1}, {33,0}, {48,3}, {61,6}, {74,8}, {87,11}, {106,11}, {119,8}, {132,6}, {145,3}, {160,0}, {173,1}, {193,1}, {220,0}, - {7,14}, {24,14}, {39,14}, {52,17}, {65,19}, {78,22}, {103,25}, {116,22}, {129,20}, {142,17}, {155,14}, {172,14}, {186,14}, {222,16}, - {6,27}, {24,27}, {39,27}, {52,30}, {65,33}, {78,35}, {109,37}, {122,34}, {135,31}, {148,29}, {162,27}, {176,27}, {189,27}, {207,22}, {224,29}, - {0,40}, {15,40}, {28,40}, {43,41}, {56,44}, {69,47}, {82,49}, {102,51}, {115,49}, {128,46}, {141,43}, {154,41}, {169,40}, {187,40}, {209,43}, - {0,52}, {17,52}, {42,54}, {65,59}, {86,63}, {104,64}, {129,59}, {153,54}, {196,56}, {209,56}, {222,59}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v8/iso_encoder/keyboard.json b/keyboards/keychron/v8/iso_encoder/keyboard.json index d446d213d4..d3db01d61f 100644 --- a/keyboards/keychron/v8/iso_encoder/keyboard.json +++ b/keyboards/keychron/v8/iso_encoder/keyboard.json @@ -29,6 +29,80 @@ }, "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 7, "y": 1, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 1, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 3, "flags": 4}, + {"matrix": [0, 4], "x": 61, "y": 6, "flags": 4}, + {"matrix": [0, 5], "x": 74, "y": 8, "flags": 4}, + {"matrix": [0, 6], "x": 87, "y": 11, "flags": 4}, + {"matrix": [0, 7], "x": 106, "y": 11, "flags": 4}, + {"matrix": [0, 8], "x": 119, "y": 8, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 6, "flags": 4}, + {"matrix": [0, 10], "x": 145, "y": 3, "flags": 4}, + {"matrix": [0, 11], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 173, "y": 1, "flags": 4}, + {"matrix": [0, 13], "x": 193, "y": 1, "flags": 1}, + {"matrix": [0, 14], "x": 220, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 14, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 14, "flags": 4}, + {"matrix": [1, 2], "x": 39, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 65, "y": 19, "flags": 4}, + {"matrix": [1, 5], "x": 78, "y": 22, "flags": 4}, + {"matrix": [1, 6], "x": 103, "y": 25, "flags": 4}, + {"matrix": [1, 7], "x": 116, "y": 22, "flags": 4}, + {"matrix": [1, 8], "x": 129, "y": 20, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 17, "flags": 4}, + {"matrix": [1, 10], "x": 155, "y": 14, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 14, "flags": 4}, + {"matrix": [1, 12], "x": 186, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 222, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 27, "flags": 8}, + {"matrix": [2, 1], "x": 24, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 39, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 33, "flags": 4}, + {"matrix": [2, 5], "x": 78, "y": 35, "flags": 4}, + {"matrix": [2, 7], "x": 109, "y": 37, "flags": 4}, + {"matrix": [2, 8], "x": 122, "y": 34, "flags": 4}, + {"matrix": [2, 9], "x": 135, "y": 31, "flags": 4}, + {"matrix": [2, 10], "x": 148, "y": 29, "flags": 4}, + {"matrix": [2, 11], "x": 162, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 189, "y": 27, "flags": 4}, + {"matrix": [1, 13], "x": 207, "y": 22, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 29, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 40, "flags": 1}, + {"matrix": [3, 1], "x": 15, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 28, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 43, "y": 41, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 44, "flags": 4}, + {"matrix": [3, 5], "x": 69, "y": 47, "flags": 4}, + {"matrix": [3, 6], "x": 82, "y": 49, "flags": 4}, + {"matrix": [3, 7], "x": 102, "y": 51, "flags": 4}, + {"matrix": [3, 8], "x": 115, "y": 49, "flags": 4}, + {"matrix": [3, 9], "x": 128, "y": 46, "flags": 4}, + {"matrix": [3, 10], "x": 141, "y": 43, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 41, "flags": 4}, + {"matrix": [3, 12], "x": 169, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 187, "y": 40, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 43, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 17, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 54, "flags": 1}, + {"matrix": [4, 3], "x": 65, "y": 59, "flags": 1}, + {"matrix": [4, 6], "x": 86, "y": 63, "flags": 1}, + {"matrix": [4, 7], "x": 104, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 129, "y": 59, "flags": 1}, + {"matrix": [4, 9], "x": 153, "y": 54, "flags": 1}, + {"matrix": [4, 12], "x": 196, "y": 56, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 56, "flags": 1}, + {"matrix": [4, 14], "x": 222, "y": 59, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_70": { "layout": [ From ceefde5ec853469895b8877c150548182087b3ed Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 03:02:01 -0600 Subject: [PATCH 028/255] Migrate `g_led_config` to DD (K5) (#25606) --- keyboards/keychron/v3/ansi/ansi.c | 33 ------ keyboards/keychron/v3/ansi/keyboard.json | 91 +++++++++++++++ .../keychron/v3/ansi_encoder/ansi_encoder.c | 33 ------ .../keychron/v3/ansi_encoder/keyboard.json | 91 +++++++++++++++ keyboards/keychron/v3/iso/iso.c | 33 ------ keyboards/keychron/v3/iso/keyboard.json | 92 +++++++++++++++ .../keychron/v3/iso_encoder/iso_encoder.c | 33 ------ .../keychron/v3/iso_encoder/keyboard.json | 92 +++++++++++++++ keyboards/keychron/v3/jis/jis.c | 33 ------ keyboards/keychron/v3/jis/keyboard.json | 95 ++++++++++++++++ .../keychron/v3/jis_encoder/jis_encoder.c | 33 ------ .../keychron/v3/jis_encoder/keyboard.json | 96 ++++++++++++++++ keyboards/keychron/v4/ansi/ansi.c | 30 ----- keyboards/keychron/v4/ansi/keyboard.json | 65 +++++++++++ keyboards/keychron/v4/iso/iso.c | 30 ----- keyboards/keychron/v4/iso/keyboard.json | 66 +++++++++++ keyboards/keychron/v5/ansi/ansi.c | 33 ------ keyboards/keychron/v5/ansi/keyboard.json | 104 +++++++++++++++++ .../keychron/v5/ansi_encoder/ansi_encoder.c | 33 ------ .../keychron/v5/ansi_encoder/keyboard.json | 102 +++++++++++++++++ keyboards/keychron/v5/iso/iso.c | 33 ------ keyboards/keychron/v5/iso/keyboard.json | 105 ++++++++++++++++++ .../keychron/v5/iso_encoder/iso_encoder.c | 33 ------ .../keychron/v5/iso_encoder/keyboard.json | 103 +++++++++++++++++ 24 files changed, 1102 insertions(+), 390 deletions(-) diff --git a/keyboards/keychron/v3/ansi/ansi.c b/keyboards/keychron/v3/ansi/ansi.c index 7c47678619..6f35f14a9a 100644 --- a/keyboards/keychron/v3/ansi/ansi.c +++ b/keyboards/keychron/v3/ansi/ansi.c @@ -118,37 +118,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA16, CB4_CA16, CB5_CA16}, {1, CB3_CA15, CB1_CA15, CB2_CA15}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 }, - { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 49, 62, 15, 32 }, - { 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, __, 74, 86, 75 }, - { 76, 77, 78, __, __, __, 79, __, __, __, 80, 81, 82, 83, 84, 85 }, - }, - { - // LED Index to Physical Position - {0,0}, {26,0}, {39,0}, {52,0}, {65,0}, {85,0}, {98,0}, {111,0}, {124,0}, {143,0}, {156,0}, {169,0}, {182,0}, {198,0}, {211,0}, {224,0}, - {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15}, - {3,28}, {20,28}, {33,28}, {46,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {179,28}, {198,28}, {211,28}, {224,28}, - {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {174,40}, - {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52}, - {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v3/ansi/keyboard.json b/keyboards/keychron/v3/ansi/keyboard.json index d388456227..59a94564d1 100644 --- a/keyboards/keychron/v3/ansi/keyboard.json +++ b/keyboards/keychron/v3/ansi/keyboard.json @@ -18,6 +18,97 @@ }, "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 26, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 39, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 65, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 85, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 98, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 111, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 124, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 156, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 33, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 46, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 13], "x": 179, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1}, + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 174, "y": 40, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_tkl_ansi": { "layout": [ diff --git a/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c index d85708937a..d80b9990c4 100644 --- a/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v3/ansi_encoder/ansi_encoder.c @@ -119,37 +119,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA16, CB4_CA16, CB5_CA16}, {1, CB3_CA15, CB1_CA15, CB2_CA15}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48 }, - { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 49, 62, 15, 32 }, - { 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, __, 74, 86, 75 }, - { 76, 77, 78, __, __, __, 79, __, __, __, 80, 81, 82, 83, 84, 85 }, - }, - { - // LED Index to Physical Position - {0,0}, {16,0}, {29,0}, {42,0}, {55,0}, {71,0}, {84,0}, {97,0}, {110,0}, {126,0}, {139,0}, {152,0}, {165,0}, {198,0}, {211,0}, {224,0}, - {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15}, - {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {179,28}, {198,28}, {211,28}, {224,28}, - {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {174,40}, - {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52}, - {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v3/ansi_encoder/keyboard.json b/keyboards/keychron/v3/ansi_encoder/keyboard.json index 5134b47d7e..47f5bff0aa 100644 --- a/keyboards/keychron/v3/ansi_encoder/keyboard.json +++ b/keyboards/keychron/v3/ansi_encoder/keyboard.json @@ -24,6 +24,97 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 55, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 71, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 139, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 152, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 165, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 13], "x": 179, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1}, + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 174, "y": 40, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_tkl_f13_ansi": { "layout": [ diff --git a/keyboards/keychron/v3/iso/iso.c b/keyboards/keychron/v3/iso/iso.c index 83798392c6..f8d8e22e10 100644 --- a/keyboards/keychron/v3/iso/iso.c +++ b/keyboards/keychron/v3/iso/iso.c @@ -119,37 +119,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA16, CB4_CA16, CB5_CA16}, {1, CB3_CA15, CB1_CA15, CB2_CA15}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 62, 46, 47 }, - { 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 48, 61, 15, 32 }, - { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, __, 75, 87, 76 }, - { 77, 78, 79, __, __, __, 80, __, __, __, 81, 82, 83, 84, 85, 86 }, - }, - { - // LED Index to Physical Position - {0,0}, {26,0}, {39,0}, {52,0}, {65,0}, {84,0}, {97,0}, {111,0}, {124,0}, {143,0}, {156,0}, {169,0}, {182,0}, {198,0}, {211,0}, {224,0}, - {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15}, - {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28}, - {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36}, - {2,52}, {16,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52}, - {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v3/iso/keyboard.json b/keyboards/keychron/v3/iso/keyboard.json index 40a8139ccc..6bae7e1e7e 100644 --- a/keyboards/keychron/v3/iso/keyboard.json +++ b/keyboards/keychron/v3/iso/keyboard.json @@ -19,6 +19,98 @@ }, "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 26, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 39, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 65, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 111, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 124, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 156, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1}, + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 16, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_tkl_iso": { "layout": [ diff --git a/keyboards/keychron/v3/iso_encoder/iso_encoder.c b/keyboards/keychron/v3/iso_encoder/iso_encoder.c index ef0567dbe1..f8d8e22e10 100644 --- a/keyboards/keychron/v3/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v3/iso_encoder/iso_encoder.c @@ -119,37 +119,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA16, CB4_CA16, CB5_CA16}, {1, CB3_CA15, CB1_CA15, CB2_CA15}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 62, 46, 47 }, - { 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 48, 61, 15, 32 }, - { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, __, 75, 87, 76 }, - { 77, 78, 79, __, __, __, 80, __, __, __, 81, 82, 83, 84, 85, 86 }, - }, - { - // LED Index to Physical Position - {0,0}, {16,0}, {29,0}, {42,0}, {55,0}, {71,0}, {84,0}, {97,0}, {110,0}, {126,0}, {139,0}, {152,0}, {165,0}, {198,0}, {211,0}, {224,0}, - {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {176,15}, {198,15}, {211,15}, {224,15}, - {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28}, - {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36}, - {2,52}, {16,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {171,52}, {211,52}, - {2,64}, {18,64}, {34,64}, {83,64}, {131,64}, {148,64}, {164,64}, {180,64}, {198,64}, {211,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v3/iso_encoder/keyboard.json b/keyboards/keychron/v3/iso_encoder/keyboard.json index 8b4f0a9d00..6f039c0dff 100644 --- a/keyboards/keychron/v3/iso_encoder/keyboard.json +++ b/keyboards/keychron/v3/iso_encoder/keyboard.json @@ -24,6 +24,98 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 55, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 71, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 139, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 152, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 165, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1}, + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 16, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 171, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_tkl_f13_iso": { "layout": [ diff --git a/keyboards/keychron/v3/jis/jis.c b/keyboards/keychron/v3/jis/jis.c index c04827dc5d..cec71b83d5 100644 --- a/keyboards/keychron/v3/jis/jis.c +++ b/keyboards/keychron/v3/jis/jis.c @@ -122,37 +122,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA16, CB4_CA16, CB5_CA16}, // Down {1, CB3_CA15, CB1_CA15, CB2_CA15}, // Right }; - -# define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 30, 13, 14 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 31, 32 }, - { 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 63, 47, 48 }, - { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 49, 62, 15, 33 }, - { 64, __, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 90, 77 }, - { 78, 79, 80, 81, __, __, 82, __, __, 83, 84, 85, 86, 87, 88, 89 }, - }, - { - // LED Index to Physical Position - {0,0}, {26,0}, {39,0}, {52,0}, {65,0}, {84,0}, {97,0}, {111,0}, {124,0}, {143,0}, {156,0}, {169,0}, {182,0}, {198,0}, {211,0}, {224,0}, - {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {182,15}, {169,15}, {198,15}, {211,15}, {224,15}, - {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28}, - {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36}, - {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {159,52}, {177,52}, {211,52}, - {2,64}, {16,64}, {31,64}, {45,64}, {81,64}, {119,64}, {135,64}, {151,64}, {166,64}, {180,64}, {198,64}, {211,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // GB_MATRIX_ENABLE diff --git a/keyboards/keychron/v3/jis/keyboard.json b/keyboards/keychron/v3/jis/keyboard.json index 0bc3a43d0e..526a2e9e27 100644 --- a/keyboards/keychron/v3/jis/keyboard.json +++ b/keyboards/keychron/v3/jis/keyboard.json @@ -18,6 +18,101 @@ }, "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 26, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 39, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 65, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 111, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 124, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 156, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 182, "y": 15, "flags": 4}, + {"matrix": [0, 13], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1}, + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 12], "x": 159, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 177, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 16, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 31, "y": 64, "flags": 1}, + {"matrix": [5, 3], "x": 45, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 81, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 119, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 135, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 151, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 166, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_jis_91": { "layout": [ diff --git a/keyboards/keychron/v3/jis_encoder/jis_encoder.c b/keyboards/keychron/v3/jis_encoder/jis_encoder.c index bf2018d86f..6e5b99e1c7 100644 --- a/keyboards/keychron/v3/jis_encoder/jis_encoder.c +++ b/keyboards/keychron/v3/jis_encoder/jis_encoder.c @@ -123,37 +123,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA16, CB4_CA16, CB5_CA16}, // Down {1, CB3_CA15, CB1_CA15, CB2_CA15}, // Right }; - -# define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33 }, - { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 64, 48, 49 }, - { 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 50, 63, 16, 34 }, - { 65, __, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 91, 78 }, - { 79, 80, 81, 82, __, 31, 83, __, __, 84, 85, 86, 87, 88, 89, 90 }, - }, - { - // LED Index to Physical Position - {0,0}, {16,0}, {29,0}, {42,0}, {55,0}, {71,0}, {84,0}, {97,0}, {110,0}, {126,0}, {139,0}, {152,0}, {165,0}, {182,0}, {198,0}, {211,0}, {224,0}, - {0,15}, {13,15}, {26,15}, {39,15}, {52,15}, {65,15}, {78,15}, {91,15}, {104,15}, {117,15}, {130,15}, {143,15}, {156,15}, {169,15}, {182,15}, {198,15}, {211,15}, {224,15}, - {3,28}, {19,28}, {32,28}, {45,28}, {59,28}, {72,28}, {85,28}, {98,28}, {111,28}, {124,28}, {137,28}, {150,28}, {163,28}, {198,28}, {211,28}, {224,28}, - {5,40}, {23,40}, {36,40}, {49,40}, {62,40}, {75,40}, {88,40}, {101,40}, {114,40}, {127,40}, {140,40}, {153,40}, {166,40}, {183,36}, - {8,52}, {29,52}, {42,52}, {55,52}, {68,52}, {81,52}, {94,52}, {107,52}, {120,52}, {133,52}, {146,52}, {159,52}, {177,52}, {211,52}, - {2,64}, {16,64}, {31,64}, {45,64}, {81,64}, {119,64}, {135,64}, {151,64}, {166,64}, {180,64}, {198,64}, {211,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v3/jis_encoder/keyboard.json b/keyboards/keychron/v3/jis_encoder/keyboard.json index ab9d6ab2a7..20613e7672 100644 --- a/keyboards/keychron/v3/jis_encoder/keyboard.json +++ b/keyboards/keychron/v3/jis_encoder/keyboard.json @@ -24,6 +24,102 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 55, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 71, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 139, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 152, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 165, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 169, "y": 15, "flags": 4}, + {"matrix": [5, 5], "x": 182, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 28, "flags": 1}, + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 166, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 183, "y": 36, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 12], "x": 159, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 177, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 16, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 31, "y": 64, "flags": 1}, + {"matrix": [5, 3], "x": 45, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 81, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 119, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 135, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 151, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 166, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_jis_92": { "layout": [ diff --git a/keyboards/keychron/v4/ansi/ansi.c b/keyboards/keychron/v4/ansi/ansi.c index 7368144c8d..4f184c7dd6 100644 --- a/keyboards/keychron/v4/ansi/ansi.c +++ b/keyboards/keychron/v4/ansi/ansi.c @@ -93,34 +93,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {0, CB3_CA15, CB1_CA15, CB2_CA15}, {0, CB3_CA16, CB1_CA16, CB2_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, __, 40 }, - { 41, __, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, __, 52 }, - { 53, 54, 55, __, __, __, 56, __, __, __, 57, 58, 59, 60 }, - }, - { - // LED Index to Physical Position - {0,0}, {16,0}, {32,0}, {48,0}, {64,0}, {81,0}, {97,0}, {113,0}, {129,0}, {145,0}, {161,0}, {177,0}, {193,0}, {218,0}, - {4,16}, {24,16}, {40,16}, {56,16}, {73,16}, {89,16}, {105,16}, {121,16}, {137,16}, {153,16}, {169,16}, {185,16}, {202,16}, {222,16}, - {6,32}, {28,32}, {44,32}, {60,32}, {77,32}, {93,32}, {109,32}, {125,32}, {141,32}, {157,32}, {173,32}, {189,32}, {216,32}, - {10,48}, {36,48}, {52,48}, {69,48}, {85,48}, {101,48}, {117,48}, {133,48}, {149,48}, {165,48}, {181,48}, {212,48}, - {2,64}, {22,64}, {42,64}, {103,64}, {164,64}, {184,64}, {204,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v4/ansi/keyboard.json b/keyboards/keychron/v4/ansi/keyboard.json index 7184e32f27..b80d9d8e25 100644 --- a/keyboards/keychron/v4/ansi/keyboard.json +++ b/keyboards/keychron/v4/ansi/keyboard.json @@ -23,6 +23,71 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"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": 81, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 161, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 177, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 193, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 218, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 73, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 89, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 105, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 121, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 137, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 153, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 169, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 185, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 202, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 222, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 77, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 93, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 109, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 125, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 141, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 157, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 173, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 189, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 216, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 85, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 101, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 117, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 133, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 149, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 181, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 212, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 164, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 184, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 204, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1} + ] + }, "layout_aliases": { "LAYOUT_ansi_61": "LAYOUT_60_ansi" }, diff --git a/keyboards/keychron/v4/iso/iso.c b/keyboards/keychron/v4/iso/iso.c index dc6a0f44d0..ccea440a47 100644 --- a/keyboards/keychron/v4/iso/iso.c +++ b/keyboards/keychron/v4/iso/iso.c @@ -94,34 +94,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {0, CB3_CA15, CB1_CA15, CB2_CA15}, {0, CB3_CA16, CB1_CA16, CB2_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 40 }, - { 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, __, 39 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, __, 53 }, - { 54, 55, 56, __, __, __, 57, __, __, __, 58, 59, 60, 61 }, - }, - { - // LED Index to Physical Position - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {81, 0}, { 97, 0}, {113, 0}, {129, 0}, {145, 0}, {161, 0}, {177, 0}, {193, 0}, {218, 0}, - {4,16}, {24,16}, {40,16}, {56,16}, {73,16}, {89,16}, {105,16}, {121,16}, {137,16}, {153,16}, {169,16}, {185,16}, {202,16}, - {6,32}, {28,32}, {44,32}, {60,32}, {77,32}, {93,32}, {109,32}, {125,32}, {141,32}, {157,32}, {173,32}, {189,32}, {206,32}, {224,24}, - {2,48}, {20,48}, {36,48}, {52,48}, {69,48}, {85,48}, {101,48}, {117,48}, {133,48}, {149,48}, {165,48}, {181,48}, {212,48}, - {2,64}, {22,64}, {42,64}, {103,64}, {164,64}, {184,64}, {204,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v4/iso/keyboard.json b/keyboards/keychron/v4/iso/keyboard.json index 8077844652..0aa111a858 100644 --- a/keyboards/keychron/v4/iso/keyboard.json +++ b/keyboards/keychron/v4/iso/keyboard.json @@ -23,6 +23,72 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"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": 81, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 161, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 177, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 193, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 218, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 73, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 89, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 105, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 121, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 137, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 153, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 169, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 185, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 202, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 77, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 93, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 109, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 125, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 141, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 157, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 173, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 189, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 206, "y": 32, "flags": 4}, + {"matrix": [1, 13], "x": 224, "y": 24, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 20, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 85, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 101, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 117, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 133, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 149, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 181, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 212, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 164, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 184, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 204, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1} + ] + }, "layout_aliases": { "LAYOUT_iso_62": "LAYOUT_60_iso" }, diff --git a/keyboards/keychron/v5/ansi/ansi.c b/keyboards/keychron/v5/ansi/ansi.c index b38d5f508f..9e653f36d1 100644 --- a/keyboards/keychron/v5/ansi/ansi.c +++ b/keyboards/keychron/v5/ansi/ansi.c @@ -133,37 +133,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA2, CB10_CA2, CB11_CA2}, {1, CB12_CA7, CB10_CA7, CB11_CA7} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }, - { 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, __, 33, 34, 35 }, - { 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 70, 51, 52, 53 }, - { 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 18, 66, 36, 67, 68, 69 }, - { 71, __, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, __, 82, 83, 84, 85, 86 }, - { 87, 88, 89, __, __, 99, 90, __, __, __, 91, 92, 93, 94, 95, 96, 97, 98 } - }, - { - // LED Index to Physical Position - {0,0}, {12,0}, {24,0}, {36,0}, {48,0}, {60,0}, {72,0}, {84,0}, {97,0}, {109,0}, {121,0}, {133,0}, {145,0}, {157,0}, {169,0}, {188,0}, {200,0}, {212,0}, {224,0}, - {0,15}, {12,15}, {24,15}, {36,15}, {48,15}, {60,15}, {72,15}, {84,15}, {97,15}, {109,15}, {121,15}, {133,15}, {145,15}, {163,15}, {188,15}, {200,15}, {212,15}, {224,15}, - {3,26}, {18,26}, {30,26}, {42,26}, {54,26}, {66,26}, {78,26}, {91,26}, {103,26}, {115,26}, {127,26}, {139,26}, {151,26}, {166,26}, {188,26}, {200,26}, {212,26}, - {5,38}, {21,38}, {33,38}, {45,38}, {57,38}, {69,38}, {81,38}, {94,38}, {106,38}, {118,38}, {130,38}, {142,38}, {161,38}, {188,38}, {200,38}, {212,38}, {224,32}, - {8,49}, {27,49}, {39,49}, {51,49}, {63,49}, {75,49}, {88,49}, {100,49}, {112,49}, {124,49}, {136,49}, {152,49}, {172,52}, {188,49}, {200,49}, {212,49}, - {1,61}, {17,61}, {32,61}, {77,61}, {121,61}, {133,61}, {145,61}, {160,64}, {172,64}, {184,64}, {200,61}, {212,61}, {224,55}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v5/ansi/keyboard.json b/keyboards/keychron/v5/ansi/keyboard.json index b98302f336..2bf3dfa745 100644 --- a/keyboards/keychron/v5/ansi/keyboard.json +++ b/keyboards/keychron/v5/ansi/keyboard.json @@ -18,6 +18,110 @@ "rgb_matrix": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 12, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 36, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 60, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 72, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 109, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 121, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 145, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 157, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 188, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 200, "y": 0, "flags": 1}, + {"matrix": [0, 17], "x": 212, "y": 0, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 12, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 48, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 60, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 72, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 84, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 97, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 109, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 121, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 133, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 145, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 163, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 188, "y": 15, "flags": 8}, + {"matrix": [1, 16], "x": 200, "y": 15, "flags": 4}, + {"matrix": [1, 17], "x": 212, "y": 15, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 18, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 54, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 78, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 91, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 103, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 115, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 127, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 139, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 151, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 166, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 188, "y": 26, "flags": 4}, + {"matrix": [2, 16], "x": 200, "y": 26, "flags": 4}, + {"matrix": [2, 17], "x": 212, "y": 26, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 21, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 57, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 69, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 81, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 94, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 106, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 118, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 130, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 142, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 161, "y": 38, "flags": 1}, + {"matrix": [3, 15], "x": 188, "y": 38, "flags": 4}, + {"matrix": [3, 16], "x": 200, "y": 38, "flags": 4}, + {"matrix": [3, 17], "x": 212, "y": 38, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [4, 0], "x": 8, "y": 49, "flags": 1}, + {"matrix": [4, 2], "x": 27, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 39, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 51, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 63, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 75, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 88, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 100, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 112, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 124, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 152, "y": 49, "flags": 1}, + {"matrix": [4, 14], "x": 172, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 188, "y": 49, "flags": 4}, + {"matrix": [4, 16], "x": 200, "y": 49, "flags": 4}, + {"matrix": [4, 17], "x": 212, "y": 49, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 17, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 32, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 77, "y": 61, "flags": 1}, + {"matrix": [5, 10], "x": 121, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x": 133, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 145, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x": 160, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 172, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 184, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 200, "y": 61, "flags": 1}, + {"matrix": [5, 17], "x": 212, "y": 61, "flags": 1}, + {"matrix": [5, 5], "x": 224, "y": 55, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_100": { "layout": [ diff --git a/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c index bc68731d7d..e359d85545 100644 --- a/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v5/ansi_encoder/ansi_encoder.c @@ -133,37 +133,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA2, CB10_CA2, CB11_CA2}, {1, CB12_CA7, CB10_CA7, CB11_CA7} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, __, 1, 2, 3, 4, __, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, __, 31, 32, 33 }, - { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 68, 49, 50, 51 }, - { 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 16, 64, 34, 65, 66, 67 }, - { 69, __, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, __, 80, 81, 82, 83, 84 }, - { 85, 86, 87, __, __, 97, 88, __, __, __, 89, 90, 91, 92, 93, 94, 95, 96 } - }, - { - // LED Index to Physical Position - {0,0}, {24,0}, {36,0}, {48,0}, {60,0}, {78,0}, {90,0}, {103,0}, {115,0}, {133,0}, {145,0}, {157,0}, {169,0}, {184,0}, {196,0}, {208,0}, {224,0}, - {0,15}, {12,15}, {24,15}, {36,15}, {48,15}, {60,15}, {72,15}, {85,15}, {97,15}, {109,15}, {121,15}, {133,15}, {145,15}, {163,15}, {188,15}, {200,15}, {212,15}, {224,15}, - {3,26}, {18,26}, {30,26}, {42,26}, {54,26}, {66,26}, {78,26}, {91,26}, {103,26}, {115,26}, {127,26}, {139,26}, {151,26}, {166,26}, {188,26}, {200,26}, {212,26}, - {5,38}, {21,38}, {33,38}, {45,38}, {57,38}, {69,38}, {81,38}, {94,38}, {106,38}, {118,38}, {130,38}, {142,38}, {161,38}, {188,38}, {200,38}, {212,38}, {224,32}, - {8,49}, {27,49}, {39,49}, {51,49}, {63,49}, {75,49}, {88,49}, {100,49}, {112,49}, {124,49}, {136,49}, {152,49}, {172,52}, {188,49}, {200,49}, {212,49}, - {1,61}, {17,61}, {32,61}, {77,61}, {121,61}, {133,61}, {145,61}, {160,64}, {172,64}, {184,64}, {200,61}, {212,61}, {224,55}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 4, 4, 4, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v5/ansi_encoder/keyboard.json b/keyboards/keychron/v5/ansi_encoder/keyboard.json index af61e4a15e..2ed77789e4 100644 --- a/keyboards/keychron/v5/ansi_encoder/keyboard.json +++ b/keyboards/keychron/v5/ansi_encoder/keyboard.json @@ -24,6 +24,108 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 36, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 60, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 90, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 103, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 115, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 145, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 157, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 184, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 196, "y": 0, "flags": 1}, + {"matrix": [0, 17], "x": 208, "y": 0, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 12, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 48, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 60, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 72, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 85, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 97, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 109, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 121, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 133, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 145, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 163, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 188, "y": 15, "flags": 8}, + {"matrix": [1, 16], "x": 200, "y": 15, "flags": 4}, + {"matrix": [1, 17], "x": 212, "y": 15, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 18, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 54, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 78, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 91, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 103, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 115, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 127, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 139, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 151, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 166, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 188, "y": 26, "flags": 4}, + {"matrix": [2, 16], "x": 200, "y": 26, "flags": 4}, + {"matrix": [2, 17], "x": 212, "y": 26, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 21, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 57, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 69, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 81, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 94, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 106, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 118, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 130, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 142, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 161, "y": 38, "flags": 1}, + {"matrix": [3, 15], "x": 188, "y": 38, "flags": 4}, + {"matrix": [3, 16], "x": 200, "y": 38, "flags": 4}, + {"matrix": [3, 17], "x": 212, "y": 38, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [4, 0], "x": 8, "y": 49, "flags": 1}, + {"matrix": [4, 2], "x": 27, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 39, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 51, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 63, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 75, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 88, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 100, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 112, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 124, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 152, "y": 49, "flags": 1}, + {"matrix": [4, 14], "x": 172, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 188, "y": 49, "flags": 4}, + {"matrix": [4, 16], "x": 200, "y": 49, "flags": 4}, + {"matrix": [4, 17], "x": 212, "y": 49, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 17, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 32, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 77, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x": 121, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x": 133, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 145, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x": 160, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 172, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 184, "y": 64, "flags": 4}, + {"matrix": [5, 16], "x": 200, "y": 61, "flags": 4}, + {"matrix": [5, 17], "x": 212, "y": 61, "flags": 4}, + {"matrix": [5, 5], "x": 224, "y": 55, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_98": { "layout": [ diff --git a/keyboards/keychron/v5/iso/iso.c b/keyboards/keychron/v5/iso/iso.c index d8f5ae329c..7b28c70f7e 100644 --- a/keyboards/keychron/v5/iso/iso.c +++ b/keyboards/keychron/v5/iso/iso.c @@ -134,37 +134,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA2, CB10_CA2, CB11_CA2}, {1, CB12_CA7, CB10_CA7, CB11_CA7} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }, - { 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, __, 33, 34, 35 }, - { 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 66, 70, 50, 51, 52 }, - { 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 18, 65, 36, 67, 68, 69 }, - { 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, __, 83, 84, 85, 86, 87 }, - { 88, 89, 90, __, __, 100, 91, __, __, __, 92, 93, 94, 95, 96, 97, 98, 99 }, - }, - { - // LED Index to Physical Position - {0,0}, {12,0}, {24,0}, {36,0}, {48,0}, {60,0}, {72,0}, {85,0}, {97,0}, {109,0}, {121,0}, {133,0}, {145,0}, {157,0}, {169,0}, {188,0}, {200,0}, {212,0}, {224,0}, - {0,15}, {12,15}, {24,15}, {36,15}, {48,15}, {60,15}, {72,15}, {85,15}, {97,15}, {109,15}, {121,15}, {133,15}, {145,15}, {163,15}, {188,15}, {200,15}, {212,15}, {224,15}, - {3,26}, {18,26}, {30,26}, {42,26}, {54,26}, {66,26}, {78,26}, {91,26}, {103,26}, {115,26}, {127,26}, {139,26}, {151,26}, {188,26}, {200,26}, {212,26}, - {5,38}, {21,38}, {33,38}, {45,38}, {57,38}, {69,38}, {81,38}, {94,38}, {106,38}, {118,38}, {130,38}, {142,38}, {154,38}, {170,34}, {188,38}, {200,38}, {212,38}, {224,32}, - {3,49}, {15,49}, {27,49}, {39,49}, {51,49}, {63,49}, {75,49}, {88,49}, {100,49}, {112,49}, {124,49}, {136,49}, {152,49}, {172,52}, {188,49}, {200,49}, {212,49}, - {1,61}, {17,61}, {32,61}, {77,61}, {121,61}, {133,61}, {145,61}, {160,64}, {172,64}, {184,64}, {200,61}, {212,61}, {224,55}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 4, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v5/iso/keyboard.json b/keyboards/keychron/v5/iso/keyboard.json index 7e7280d5ac..c8bc9609f5 100644 --- a/keyboards/keychron/v5/iso/keyboard.json +++ b/keyboards/keychron/v5/iso/keyboard.json @@ -18,6 +18,111 @@ "rgb_matrix": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 12, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 36, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 60, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 72, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 85, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 109, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 121, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 145, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 157, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 188, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 200, "y": 0, "flags": 1}, + {"matrix": [0, 17], "x": 212, "y": 0, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 12, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 48, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 60, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 72, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 85, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 97, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 109, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 121, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 133, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 145, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 163, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 188, "y": 15, "flags": 8}, + {"matrix": [1, 16], "x": 200, "y": 15, "flags": 4}, + {"matrix": [1, 17], "x": 212, "y": 15, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 18, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 54, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 78, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 91, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 103, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 115, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 127, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 139, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 151, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 188, "y": 26, "flags": 4}, + {"matrix": [2, 16], "x": 200, "y": 26, "flags": 4}, + {"matrix": [2, 17], "x": 212, "y": 26, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 21, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 57, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 69, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 81, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 94, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 106, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 118, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 130, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 142, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 154, "y": 38, "flags": 4}, + {"matrix": [2, 13], "x": 170, "y": 34, "flags": 1}, + {"matrix": [3, 15], "x": 188, "y": 38, "flags": 4}, + {"matrix": [3, 16], "x": 200, "y": 38, "flags": 4}, + {"matrix": [3, 17], "x": 212, "y": 38, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [4, 0], "x": 3, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 15, "y": 49, "flags": 4}, + {"matrix": [4, 2], "x": 27, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 39, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 51, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 63, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 75, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 88, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 100, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 112, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 124, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 152, "y": 49, "flags": 1}, + {"matrix": [4, 14], "x": 172, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 188, "y": 49, "flags": 4}, + {"matrix": [4, 16], "x": 200, "y": 49, "flags": 4}, + {"matrix": [4, 17], "x": 212, "y": 49, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 17, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 32, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 77, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x": 121, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x": 133, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 145, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x": 160, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 172, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 184, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 200, "y": 61, "flags": 4}, + {"matrix": [5, 17], "x": 212, "y": 61, "flags": 4}, + {"matrix": [5, 5], "x": 224, "y": 55, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_101": { "layout": [ diff --git a/keyboards/keychron/v5/iso_encoder/iso_encoder.c b/keyboards/keychron/v5/iso_encoder/iso_encoder.c index 2d2a458577..005a73d2f9 100644 --- a/keyboards/keychron/v5/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v5/iso_encoder/iso_encoder.c @@ -132,37 +132,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA2, CB10_CA2, CB11_CA2}, {1, CB12_CA7, CB10_CA7, CB11_CA7} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, __, 1, 2, 3, 4, __, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, __, 31, 32, 33 }, - { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 64, 68, 48, 49, 50 }, - { 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 16, 63, 34, 65, 66, 67 }, - { 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, __, 81, 82, 83, 84, 85 }, - { 86, 87, 88, __, __, 98, 89, __, __, __, 90, 91, 92, 93, 94, 95, 96, 97 }, - }, - { - // LED Index to Physical Position - {0,0}, {24,0}, {36,0}, {48,0}, {60,0}, {78,0}, {90,0}, {103,0}, {115,0}, {133,0}, {145,0}, {157,0}, {169,0}, {184,0}, {196,0}, {208,0}, {224,0}, - {0,15}, {12,15}, {24,15}, {36,15}, {48,15}, {60,15}, {72,15}, {85,15}, {97,15}, {109,15}, {121,15}, {133,15}, {145,15}, {163,15}, {188,15}, {200,15}, {212,15}, {224,15}, - {3,26}, {18,26}, {30,26}, {42,26}, {54,26}, {66,26}, {78,26}, {91,26}, {103,26}, {115,26}, {127,26}, {139,26}, {151,26}, {188,26}, {200,26}, {212,26}, - {5,38}, {21,38}, {33,38}, {45,38}, {57,38}, {69,38}, {81,38}, {94,38}, {106,38}, {118,38}, {130,38}, {142,38}, {154,38}, {170,34}, {188,38}, {200,38}, {212,38}, {224,32}, - {3,49}, {15,49}, {27,49}, {39,49}, {51,49}, {63,49}, {75,49}, {88,49}, {100,49}, {112,49}, {124,49}, {136,49}, {152,49}, {172,52}, {188,49}, {200,49}, {212,49}, - {1,61}, {17,61}, {32,61}, {77,61}, {121,61}, {133,61}, {145,61}, {160,64}, {172,64}, {184,64}, {200,61}, {212,61}, {224,55}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 4, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v5/iso_encoder/keyboard.json b/keyboards/keychron/v5/iso_encoder/keyboard.json index dfef0a7be7..d6f1b69445 100644 --- a/keyboards/keychron/v5/iso_encoder/keyboard.json +++ b/keyboards/keychron/v5/iso_encoder/keyboard.json @@ -24,6 +24,109 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 36, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 60, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 90, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 103, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 115, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 145, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 157, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 184, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 196, "y": 0, "flags": 1}, + {"matrix": [0, 17], "x": 208, "y": 0, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 12, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 48, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 60, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 72, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 85, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 97, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 109, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 121, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 133, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 145, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 163, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 188, "y": 15, "flags": 8}, + {"matrix": [1, 16], "x": 200, "y": 15, "flags": 4}, + {"matrix": [1, 17], "x": 212, "y": 15, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 18, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 30, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 54, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 78, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 91, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 103, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 115, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 127, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 139, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 151, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 188, "y": 26, "flags": 4}, + {"matrix": [2, 16], "x": 200, "y": 26, "flags": 4}, + {"matrix": [2, 17], "x": 212, "y": 26, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 21, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 57, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 69, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 81, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 94, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 106, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 118, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 130, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 142, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 154, "y": 38, "flags": 4}, + {"matrix": [2, 13], "x": 170, "y": 34, "flags": 1}, + {"matrix": [3, 15], "x": 188, "y": 38, "flags": 4}, + {"matrix": [3, 16], "x": 200, "y": 38, "flags": 4}, + {"matrix": [3, 17], "x": 212, "y": 38, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [4, 0], "x": 3, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 15, "y": 49, "flags": 4}, + {"matrix": [4, 2], "x": 27, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 39, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 51, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 63, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 75, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 88, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 100, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 112, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 124, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 152, "y": 49, "flags": 1}, + {"matrix": [4, 14], "x": 172, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 188, "y": 49, "flags": 4}, + {"matrix": [4, 16], "x": 200, "y": 49, "flags": 4}, + {"matrix": [4, 17], "x": 212, "y": 49, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 17, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 32, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 77, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x": 121, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x": 133, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 145, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x": 160, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 172, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 184, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 200, "y": 61, "flags": 4}, + {"matrix": [5, 17], "x": 212, "y": 61, "flags": 4}, + {"matrix": [5, 5], "x": 224, "y": 55, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_99": { "layout": [ From 9cd3080e22097d0679cb15f9757577e2c5728550 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 03:02:15 -0600 Subject: [PATCH 029/255] Migrate `g_led_config` to DD (K4) (#25605) --- keyboards/keychron/v1/ansi/ansi.c | 33 ------- keyboards/keychron/v1/ansi/keyboard.json | 86 ++++++++++++++++++ .../keychron/v1/ansi_encoder/ansi_encoder.c | 33 ------- .../keychron/v1/ansi_encoder/keyboard.json | 86 ++++++++++++++++++ keyboards/keychron/v1/iso/iso.c | 33 ------- keyboards/keychron/v1/iso/keyboard.json | 87 ++++++++++++++++++ .../keychron/v1/iso_encoder/iso_encoder.c | 33 ------- .../keychron/v1/iso_encoder/keyboard.json | 87 ++++++++++++++++++ keyboards/keychron/v1/jis/jis.c | 33 ------- keyboards/keychron/v1/jis/keyboard.json | 90 +++++++++++++++++++ .../keychron/v1/jis_encoder/jis_encoder.c | 33 ------- .../keychron/v1/jis_encoder/keyboard.json | 90 +++++++++++++++++++ keyboards/keychron/v2/ansi/ansi.c | 30 ------- keyboards/keychron/v2/ansi/keyboard.json | 71 +++++++++++++++ .../keychron/v2/ansi_encoder/ansi_encoder.c | 30 ------- .../keychron/v2/ansi_encoder/keyboard.json | 71 +++++++++++++++ keyboards/keychron/v2/iso/iso.c | 30 ------- keyboards/keychron/v2/iso/keyboard.json | 72 +++++++++++++++ .../keychron/v2/iso_encoder/iso_encoder.c | 29 ------ .../keychron/v2/iso_encoder/keyboard.json | 72 +++++++++++++++ keyboards/keychron/v2/jis/jis.c | 30 ------- keyboards/keychron/v2/jis/keyboard.json | 75 ++++++++++++++++ .../keychron/v2/jis_encoder/jis_encoder.c | 30 ------- .../keychron/v2/jis_encoder/keyboard.json | 75 ++++++++++++++++ 24 files changed, 962 insertions(+), 377 deletions(-) diff --git a/keyboards/keychron/v1/ansi/ansi.c b/keyboards/keychron/v1/ansi/ansi.c index a78d5dd4d7..b3b96c26a4 100644 --- a/keyboards/keychron/v1/ansi/ansi.c +++ b/keyboards/keychron/v1/ansi/ansi.c @@ -115,37 +115,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB3_CA15, CB1_CA15, CB2_CA15}, {1, CB3_CA16, CB1_CA16, CB2_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, __, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, __, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, __, 44 }, - { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, __, 57, __, 58 }, - { 59, __, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, __, 70, 71, __ }, - { 72, 73, 74, __, __, __, 75, __, __, __, 76, 77, 78, 79, 80, 81 } - }, - { - // LED Index to Physical Position - {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0}, - {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15}, - {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {202,26}, {224,26}, - {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {196,38}, {224,38}, - {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52}, - {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v1/ansi/keyboard.json b/keyboards/keychron/v1/ansi/keyboard.json index d4bbca78de..09242fb595 100644 --- a/keyboards/keychron/v1/ansi/keyboard.json +++ b/keyboards/keychron/v1/ansi/keyboard.json @@ -18,6 +18,92 @@ "dip_switch": true, "rgb_matrix": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 18, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 62, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 158, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 187, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 206, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 202, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 224, "y": 26, "flags": 1}, + {"matrix": [3, 0], "x": 6, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 196, "y": 38, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 38, "flags": 1}, + {"matrix": [4, 0], "x": 9, "y": 49, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1}, + {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 39, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 94, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x": 147, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x": 162, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 176, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_82": { "layout": [ diff --git a/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c index a78d5dd4d7..b3b96c26a4 100644 --- a/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v1/ansi_encoder/ansi_encoder.c @@ -115,37 +115,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB3_CA15, CB1_CA15, CB2_CA15}, {1, CB3_CA16, CB1_CA16, CB2_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, __, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, __, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, __, 44 }, - { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, __, 57, __, 58 }, - { 59, __, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, __, 70, 71, __ }, - { 72, 73, 74, __, __, __, 75, __, __, __, 76, 77, 78, 79, 80, 81 } - }, - { - // LED Index to Physical Position - {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0}, - {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15}, - {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {202,26}, {224,26}, - {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {196,38}, {224,38}, - {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52}, - {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v1/ansi_encoder/keyboard.json b/keyboards/keychron/v1/ansi_encoder/keyboard.json index 62bbeb9d5d..cd62b128a0 100644 --- a/keyboards/keychron/v1/ansi_encoder/keyboard.json +++ b/keyboards/keychron/v1/ansi_encoder/keyboard.json @@ -24,6 +24,92 @@ "dip_switch": true, "rgb_matrix": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 18, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 62, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 158, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 187, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 206, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 202, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 224, "y": 26, "flags": 1}, + {"matrix": [3, 0], "x": 6, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 196, "y": 38, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 38, "flags": 1}, + {"matrix": [4, 0], "x": 9, "y": 49, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1}, + {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 39, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 94, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x": 147, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x": 162, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 176, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_82": { "layout": [ diff --git a/keyboards/keychron/v1/iso/iso.c b/keyboards/keychron/v1/iso/iso.c index a1095dcc92..4cb877f918 100644 --- a/keyboards/keychron/v1/iso/iso.c +++ b/keyboards/keychron/v1/iso/iso.c @@ -116,37 +116,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB3_CA15, CB1_CA15, CB2_CA15}, {1, CB3_CA16, CB1_CA16, CB2_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, __, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, __, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 57, __, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, __, 58 }, - { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, __, 71, 72, __ }, - { 73, 74, 75, __, __, __, 76, __, __, __, 77, 78, 79, 80, 81, 82 } - }, - { - // LED Index to Physical Position - {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0}, - {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15}, - {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {224,26}, - {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {187,38}, {203,32}, {224,38}, - {2,49}, {18,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52}, - {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v1/iso/keyboard.json b/keyboards/keychron/v1/iso/keyboard.json index 6e307ea4df..43376e3077 100644 --- a/keyboards/keychron/v1/iso/keyboard.json +++ b/keyboards/keychron/v1/iso/keyboard.json @@ -18,6 +18,93 @@ "rgb_matrix": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 18, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 62, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 158, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 187, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 206, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 224, "y": 26, "flags": 1}, + {"matrix": [3, 0], "x": 6, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 187, "y": 38, "flags": 4}, + {"matrix": [2, 13], "x": 203, "y": 32, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 38, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 18, "y": 49, "flags": 4}, + {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1}, + {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 39, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 94, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x": 147, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x": 162, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 176, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_83": { "layout": [ diff --git a/keyboards/keychron/v1/iso_encoder/iso_encoder.c b/keyboards/keychron/v1/iso_encoder/iso_encoder.c index a1095dcc92..4cb877f918 100644 --- a/keyboards/keychron/v1/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v1/iso_encoder/iso_encoder.c @@ -116,37 +116,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB3_CA15, CB1_CA15, CB2_CA15}, {1, CB3_CA16, CB1_CA16, CB2_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, __, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, __, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 57, __, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, __, 58 }, - { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, __, 71, 72, __ }, - { 73, 74, 75, __, __, __, 76, __, __, __, 77, 78, 79, 80, 81, 82 } - }, - { - // LED Index to Physical Position - {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0}, - {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15}, - {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {224,26}, - {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {187,38}, {203,32}, {224,38}, - {2,49}, {18,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52}, - {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v1/iso_encoder/keyboard.json b/keyboards/keychron/v1/iso_encoder/keyboard.json index 077cb045b2..b095d4d436 100644 --- a/keyboards/keychron/v1/iso_encoder/keyboard.json +++ b/keyboards/keychron/v1/iso_encoder/keyboard.json @@ -24,6 +24,93 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 18, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 62, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 158, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 187, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 206, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 184, "y": 26, "flags": 4}, + {"matrix": [2, 15], "x": 224, "y": 26, "flags": 1}, + {"matrix": [3, 0], "x": 6, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 129, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 173, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 187, "y": 38, "flags": 4}, + {"matrix": [2, 13], "x": 203, "y": 32, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 38, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 18, "y": 49, "flags": 4}, + {"matrix": [4, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 151, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 185, "y": 49, "flags": 1}, + {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 20, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 39, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 94, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x": 147, "y": 61, "flags": 1}, + {"matrix": [5, 11], "x": 162, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 176, "y": 61, "flags": 1}, + {"matrix": [5, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_83": { "layout": [ diff --git a/keyboards/keychron/v1/jis/jis.c b/keyboards/keychron/v1/jis/jis.c index d3b3f9aa90..04839ff24a 100644 --- a/keyboards/keychron/v1/jis/jis.c +++ b/keyboards/keychron/v1/jis/jis.c @@ -119,37 +119,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB3_CA15, CB1_CA15, CB2_CA15}, {1, CB3_CA16, CB1_CA16, CB2_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, __, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 58, __, 44 }, - { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, __, 57, __, 59 }, - { 60, __, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, __ }, - { 74, 75, 76, 77, __, __, 78, __, __, 79, 80, 81, 82, 83, 84, 85 }, - }, - { - // LED Index to Physical Position - {0, 0}, {18, 0}, {33, 0}, {48, 0}, {62, 0}, {81, 0}, {95, 0}, {110, 0}, {125, 0}, {143, 0}, {158, 0}, {173, 0}, {187, 0}, {205, 0}, {224, 0}, - {0, 15}, {15, 15}, {29, 15}, {44, 15}, {59, 15}, {73, 15}, {88, 15}, {103, 15}, {117, 15}, {132, 15}, {147, 15}, {161, 15}, {176, 15}, {191, 15}, {205, 15}, {224, 15}, - {4, 28}, {22, 28}, {37, 28}, {51, 28}, {66, 28}, {81, 28}, {95, 28}, {110, 28}, {125, 28}, {139, 28}, {154, 28}, {169, 28}, {183, 28}, {224, 28}, - {6, 40}, {26, 40}, {40, 40}, {55, 40}, {70, 40}, {84, 40}, {99, 40}, {114, 40}, {128, 40}, {143, 40}, {158, 40}, {172, 40}, {187, 40}, {207, 36}, {224, 40}, - {9, 52}, {33, 52}, {48, 52}, {62, 52}, {77, 52}, {92, 52}, {106, 52}, {121, 52}, {136, 52}, {150, 52}, {165, 52}, {180, 52}, {194, 52}, {209, 52}, - {2, 64}, {18, 64}, {35, 64}, {51, 64}, { 92, 64}, {134, 64}, {150, 64}, {165, 64}, {180, 64}, {194, 64}, {209, 64}, {224, 64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v1/jis/keyboard.json b/keyboards/keychron/v1/jis/keyboard.json index a6a43a75da..e02699c03c 100644 --- a/keyboards/keychron/v1/jis/keyboard.json +++ b/keyboards/keychron/v1/jis/keyboard.json @@ -18,6 +18,96 @@ "rgb_matrix": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 18, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 62, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 158, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 187, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 205, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 161, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 191, "y": 15, "flags": 4}, + {"matrix": [1, 14], "x": 205, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 139, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 183, "y": 28, "flags": 4}, + {"matrix": [2, 15], "x": 224, "y": 28, "flags": 1}, + {"matrix": [3, 0], "x": 6, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 26, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 172, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 187, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 207, "y": 36, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 40, "flags": 1}, + {"matrix": [4, 0], "x": 9, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 150, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 52, "flags": 4}, + {"matrix": [4, 12], "x": 180, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 194, "y": 52, "flags": 1}, + {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 35, "y": 64, "flags": 1}, + {"matrix": [5, 3], "x": 51, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 92, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 134, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 150, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 165, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 194, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_jis_86": { "layout": [ diff --git a/keyboards/keychron/v1/jis_encoder/jis_encoder.c b/keyboards/keychron/v1/jis_encoder/jis_encoder.c index d3b3f9aa90..04839ff24a 100644 --- a/keyboards/keychron/v1/jis_encoder/jis_encoder.c +++ b/keyboards/keychron/v1/jis_encoder/jis_encoder.c @@ -119,37 +119,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB3_CA15, CB1_CA15, CB2_CA15}, {1, CB3_CA16, CB1_CA16, CB2_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, __, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 58, __, 44 }, - { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, __, 57, __, 59 }, - { 60, __, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, __ }, - { 74, 75, 76, 77, __, __, 78, __, __, 79, 80, 81, 82, 83, 84, 85 }, - }, - { - // LED Index to Physical Position - {0, 0}, {18, 0}, {33, 0}, {48, 0}, {62, 0}, {81, 0}, {95, 0}, {110, 0}, {125, 0}, {143, 0}, {158, 0}, {173, 0}, {187, 0}, {205, 0}, {224, 0}, - {0, 15}, {15, 15}, {29, 15}, {44, 15}, {59, 15}, {73, 15}, {88, 15}, {103, 15}, {117, 15}, {132, 15}, {147, 15}, {161, 15}, {176, 15}, {191, 15}, {205, 15}, {224, 15}, - {4, 28}, {22, 28}, {37, 28}, {51, 28}, {66, 28}, {81, 28}, {95, 28}, {110, 28}, {125, 28}, {139, 28}, {154, 28}, {169, 28}, {183, 28}, {224, 28}, - {6, 40}, {26, 40}, {40, 40}, {55, 40}, {70, 40}, {84, 40}, {99, 40}, {114, 40}, {128, 40}, {143, 40}, {158, 40}, {172, 40}, {187, 40}, {207, 36}, {224, 40}, - {9, 52}, {33, 52}, {48, 52}, {62, 52}, {77, 52}, {92, 52}, {106, 52}, {121, 52}, {136, 52}, {150, 52}, {165, 52}, {180, 52}, {194, 52}, {209, 52}, - {2, 64}, {18, 64}, {35, 64}, {51, 64}, { 92, 64}, {134, 64}, {150, 64}, {165, 64}, {180, 64}, {194, 64}, {209, 64}, {224, 64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v1/jis_encoder/keyboard.json b/keyboards/keychron/v1/jis_encoder/keyboard.json index 4e39e3d4a8..3a89e69153 100644 --- a/keyboards/keychron/v1/jis_encoder/keyboard.json +++ b/keyboards/keychron/v1/jis_encoder/keyboard.json @@ -24,6 +24,96 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 18, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 62, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 158, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 187, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 205, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 161, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 191, "y": 15, "flags": 4}, + {"matrix": [1, 14], "x": 205, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 139, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 183, "y": 28, "flags": 4}, + {"matrix": [2, 15], "x": 224, "y": 28, "flags": 1}, + {"matrix": [3, 0], "x": 6, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 26, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 172, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 187, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 207, "y": 36, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 40, "flags": 1}, + {"matrix": [4, 0], "x": 9, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 150, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 52, "flags": 4}, + {"matrix": [4, 12], "x": 180, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 194, "y": 52, "flags": 1}, + {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 35, "y": 64, "flags": 1}, + {"matrix": [5, 3], "x": 51, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 92, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 134, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 150, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 165, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 194, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_jis_86": { "layout": [ diff --git a/keyboards/keychron/v2/ansi/ansi.c b/keyboards/keychron/v2/ansi/ansi.c index 722aa27b47..ea92662c59 100644 --- a/keyboards/keychron/v2/ansi/ansi.c +++ b/keyboards/keychron/v2/ansi/ansi.c @@ -99,34 +99,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA15, CB4_CA15, CB5_CA15}, {1, CB6_CA16, CB4_CA16, CB5_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 65, 42, 43 }, - { 44, __, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, __, 55, 56 }, - { 57, 58, 59, __, __, __, 60, __, __, __, 61, 62, 63, 64, 66 } - }, - { - // LED Index to Physical Position - {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0}, // {244,-4} - {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {202,15}, {224,15}, - {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {196,30}, {224,30}, - {9,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49}, - {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v2/ansi/keyboard.json b/keyboards/keychron/v2/ansi/keyboard.json index bc09cb8a27..962bcaee98 100644 --- a/keyboards/keychron/v2/ansi/keyboard.json +++ b/keyboards/keychron/v2/ansi/keyboard.json @@ -23,6 +23,77 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 202, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 30, "flags": 8}, + {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 196, "y": 30, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 45, "flags": 1}, + {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4}, + {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4}, + {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4}, + {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1}, + {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1}, + {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4}, + {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1}, + {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1}, + {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1}, + {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_67": { "layout": [ diff --git a/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c index 6203483285..ea92662c59 100644 --- a/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v2/ansi_encoder/ansi_encoder.c @@ -99,34 +99,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA15, CB4_CA15, CB5_CA15}, {1, CB6_CA16, CB4_CA16, CB5_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 65, 42, 43 }, - { 44, __, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, __, 55, 56 }, - { 57, 58, 59, __, __, __, 60, __, __, __, 61, 62, 63, 64, 66 } - }, - { - // LED Index to Physical Position - {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0}, // {244,-4} - {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {202,15}, {224,15}, - {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {196,30}, {224,30}, - {9,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49}, - {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v2/ansi_encoder/keyboard.json b/keyboards/keychron/v2/ansi_encoder/keyboard.json index 6752d14b15..42b6814781 100644 --- a/keyboards/keychron/v2/ansi_encoder/keyboard.json +++ b/keyboards/keychron/v2/ansi_encoder/keyboard.json @@ -29,6 +29,77 @@ }, "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 202, "y": 15, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 30, "flags": 8}, + {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 196, "y": 30, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 45, "flags": 1}, + {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4}, + {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4}, + {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4}, + {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1}, + {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1}, + {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4}, + {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1}, + {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1}, + {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1}, + {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_67": { "layout": [ diff --git a/keyboards/keychron/v2/iso/iso.c b/keyboards/keychron/v2/iso/iso.c index aca0879838..b5a5193892 100644 --- a/keyboards/keychron/v2/iso/iso.c +++ b/keyboards/keychron/v2/iso/iso.c @@ -100,34 +100,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA15, CB4_CA15, CB5_CA15}, {1, CB6_CA16, CB4_CA16, CB5_CA16} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 42, 28 }, - { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 66, 41, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, 57 }, - { 58, 59, 60, __, __, __, 61, __, __, __, 62, 63, 64, 65, 67 } - }, - { - // LED Index to Physical Position - {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0}, - {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {224,15}, - {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {187,30}, {204,23}, {224,30}, - {2,45}, {18,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49}, - {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v2/iso/keyboard.json b/keyboards/keychron/v2/iso/keyboard.json index 89bdb51a65..f430c50270 100644 --- a/keyboards/keychron/v2/iso/keyboard.json +++ b/keyboards/keychron/v2/iso/keyboard.json @@ -23,6 +23,78 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 30, "flags": 8}, + {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 187, "y": 30, "flags": 4}, + {"matrix": [1, 13], "x": 204, "y": 23, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 45, "flags": 1}, + {"matrix": [3, 1], "x": 18, "y": 45, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4}, + {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4}, + {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4}, + {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1}, + {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1}, + {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4}, + {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1}, + {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1}, + {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1}, + {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_68": { "layout": [ diff --git a/keyboards/keychron/v2/iso_encoder/iso_encoder.c b/keyboards/keychron/v2/iso_encoder/iso_encoder.c index aca0879838..5911f9d9c1 100644 --- a/keyboards/keychron/v2/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v2/iso_encoder/iso_encoder.c @@ -101,33 +101,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA16, CB4_CA16, CB5_CA16} }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 42, 28 }, - { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 66, 41, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, 57 }, - { 58, 59, 60, __, __, __, 61, __, __, __, 62, 63, 64, 65, 67 } - }, - { - // LED Index to Physical Position - {0,0}, {15,0}, {29,0}, {44,0}, {59,0}, {73,0}, {88,0}, {103,0}, {118,0}, {132,0}, {147,0}, {162,0}, {176,0}, {198,0}, {224,0}, - {4,15}, {22,15}, {37,15}, {51,15}, {66,15}, {81,15}, {95,15}, {110,15}, {125,15}, {140,15}, {154,15}, {169,15}, {184,15}, {224,15}, - {6,30}, {26,30}, {40,30}, {55,30}, {70,30}, {84,30}, {99,30}, {114,30}, {129,30}, {143,30}, {158,30}, {173,30}, {187,30}, {204,23}, {224,30}, - {2,45}, {18,45}, {33,45}, {48,45}, {62,45}, {77,45}, {92,45}, {106,45}, {121,45}, {136,45}, {151,45}, {165,45}, {185,45}, {209,49}, - {2,60}, {20,60}, {39,60}, {94,60}, {147,60}, {162,60}, {176,60}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v2/iso_encoder/keyboard.json b/keyboards/keychron/v2/iso_encoder/keyboard.json index 89ce2714f1..4dd36fdda4 100644 --- a/keyboards/keychron/v2/iso_encoder/keyboard.json +++ b/keyboards/keychron/v2/iso_encoder/keyboard.json @@ -29,6 +29,78 @@ }, "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 44, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 88, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 118, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 95, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 110, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 140, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 169, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 184, "y": 15, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 30, "flags": 8}, + {"matrix": [2, 1], "x": 26, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 129, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 143, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 158, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 173, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 187, "y": 30, "flags": 4}, + {"matrix": [1, 13], "x": 204, "y": 23, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 30, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 45, "flags": 1}, + {"matrix": [3, 1], "x": 18, "y": 45, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 45, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 45, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 45, "flags": 4}, + {"matrix": [3, 5], "x": 77, "y": 45, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 45, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 45, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 45, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 45, "flags": 4}, + {"matrix": [3, 10], "x": 151, "y": 45, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 45, "flags": 4}, + {"matrix": [3, 13], "x": 185, "y": 45, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 60, "flags": 1}, + {"matrix": [4, 1], "x": 20, "y": 60, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 60, "flags": 1}, + {"matrix": [4, 6], "x": 94, "y": 60, "flags": 4}, + {"matrix": [4, 10], "x": 147, "y": 60, "flags": 1}, + {"matrix": [4, 11], "x": 162, "y": 60, "flags": 1}, + {"matrix": [4, 12], "x": 176, "y": 60, "flags": 1}, + {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_68": { "layout": [ diff --git a/keyboards/keychron/v2/jis/jis.c b/keyboards/keychron/v2/jis/jis.c index 1269d9b1e6..1664a5f703 100644 --- a/keyboards/keychron/v2/jis/jis.c +++ b/keyboards/keychron/v2/jis/jis.c @@ -101,34 +101,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA15, CB4_CA15, CB5_CA15}, {1, CB6_CA16, CB4_CA16, CB5_CA16} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 43, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 69, 42, 44 }, - { 45, 14, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 }, - { 59, 60, 61, 62, __, __, 63, __, __, 64, 65, 66, 67, 68, 70 } - }, - { - // LED Index to Physical Position - {0,4}, {15,4}, {29,4}, {44,4}, {59,4}, {73,4}, {88,4}, {103,4}, {117,4}, {132,4}, {146,4}, {161,4}, {176,4}, {190,4}, {205,4}, {224,0}, - {4,19}, {22,19}, {37,19}, {51,19}, {66,19}, {81,19}, {95,19}, {110,19}, {125,19}, {139,19}, {154,19}, {168,19}, {183,19}, {224,19}, - {6,34}, {26,34}, {40,34}, {55,34}, {70,34}, {84,34}, {99,34}, {114,34}, {128,34}, {143,34}, {158,34}, {172,34}, {187,34}, {207,29}, {224,34}, - {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {150,49}, {165,49}, {179,49}, {194,49}, {209,49}, - {2,64}, {18,64}, {35,64}, {51,64}, {92,64}, {134,64}, {150,64}, {165,64}, {179,64}, {194,64}, {209,64}, {223,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v2/jis/keyboard.json b/keyboards/keychron/v2/jis/keyboard.json index 01beaf31ac..96b19c7372 100644 --- a/keyboards/keychron/v2/jis/keyboard.json +++ b/keyboards/keychron/v2/jis/keyboard.json @@ -23,6 +23,81 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 4, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 4, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 4, "flags": 4}, + {"matrix": [0, 3], "x": 44, "y": 4, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 4, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 4, "flags": 4}, + {"matrix": [0, 6], "x": 88, "y": 4, "flags": 4}, + {"matrix": [0, 7], "x": 103, "y": 4, "flags": 4}, + {"matrix": [0, 8], "x": 117, "y": 4, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 4, "flags": 4}, + {"matrix": [0, 10], "x": 146, "y": 4, "flags": 4}, + {"matrix": [0, 11], "x": 161, "y": 4, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 4, "flags": 4}, + {"matrix": [0, 13], "x": 190, "y": 4, "flags": 4}, + {"matrix": [3, 1], "x": 205, "y": 4, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 19, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 19, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 19, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 19, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 19, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 19, "flags": 4}, + {"matrix": [1, 6], "x": 95, "y": 19, "flags": 4}, + {"matrix": [1, 7], "x": 110, "y": 19, "flags": 4}, + {"matrix": [1, 8], "x": 125, "y": 19, "flags": 4}, + {"matrix": [1, 9], "x": 139, "y": 19, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 19, "flags": 4}, + {"matrix": [1, 11], "x": 168, "y": 19, "flags": 4}, + {"matrix": [1, 12], "x": 183, "y": 19, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 19, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 34, "flags": 8}, + {"matrix": [2, 1], "x": 26, "y": 34, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 34, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 34, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 34, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 34, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 34, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 34, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 34, "flags": 4}, + {"matrix": [2, 9], "x": 143, "y": 34, "flags": 4}, + {"matrix": [2, 10], "x": 158, "y": 34, "flags": 4}, + {"matrix": [2, 11], "x": 172, "y": 34, "flags": 4}, + {"matrix": [2, 13], "x": 187, "y": 34, "flags": 4}, + {"matrix": [1, 13], "x": 207, "y": 29, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 34, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 49, "flags": 1}, + {"matrix": [3, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 49, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 49, "flags": 4}, + {"matrix": [3, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 49, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 49, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 49, "flags": 4}, + {"matrix": [3, 10], "x": 150, "y": 49, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 49, "flags": 4}, + {"matrix": [3, 12], "x": 179, "y": 49, "flags": 4}, + {"matrix": [3, 13], "x": 194, "y": 49, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 35, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 51, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 92, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 134, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 165, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 179, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 194, "y": 64, "flags": 1}, + {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 223, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_jis_71": { "layout": [ diff --git a/keyboards/keychron/v2/jis_encoder/jis_encoder.c b/keyboards/keychron/v2/jis_encoder/jis_encoder.c index 85aaf165f6..1664a5f703 100644 --- a/keyboards/keychron/v2/jis_encoder/jis_encoder.c +++ b/keyboards/keychron/v2/jis_encoder/jis_encoder.c @@ -101,34 +101,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA15, CB4_CA15, CB5_CA15}, {1, CB6_CA16, CB4_CA16, CB5_CA16} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 43, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 69, 42, 44 }, - { 45, 14, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58 }, - { 59, 60, 61, 62, __, __, 63, __, __, 64, 65, 66, 67, 68, 70 }, - }, - { - // LED Index to Physical Position - {0,4}, {15,4}, {29,4}, {44,4}, {59,4}, {73,4}, {88,4}, {103,4}, {117,4}, {132,4}, {146,4}, {161,4}, {176,4}, {190,4}, {205,4}, {224,0}, - {4,19}, {22,19}, {37,19}, {51,19}, {66,19}, {81,19}, {95,19}, {110,19}, {125,19}, {139,19}, {154,19}, {168,19}, {183,19}, {224,19}, - {6,34}, {26,34}, {40,34}, {55,34}, {70,34}, {84,34}, {99,34}, {114,34}, {128,34}, {143,34}, {158,34}, {172,34}, {187,34}, {207,29}, {224,34}, - {9,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {150,49}, {165,49}, {179,49}, {194,49}, {209,49}, - {2,64}, {18,64}, {35,64}, {51,64}, {92,64}, {134,64}, {150,64}, {165,64}, {179,64}, {194,64}, {209,64}, {223,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v2/jis_encoder/keyboard.json b/keyboards/keychron/v2/jis_encoder/keyboard.json index d8a540953c..105b5b6724 100644 --- a/keyboards/keychron/v2/jis_encoder/keyboard.json +++ b/keyboards/keychron/v2/jis_encoder/keyboard.json @@ -29,6 +29,81 @@ }, "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 4, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 4, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 4, "flags": 4}, + {"matrix": [0, 3], "x": 44, "y": 4, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 4, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 4, "flags": 4}, + {"matrix": [0, 6], "x": 88, "y": 4, "flags": 4}, + {"matrix": [0, 7], "x": 103, "y": 4, "flags": 4}, + {"matrix": [0, 8], "x": 117, "y": 4, "flags": 4}, + {"matrix": [0, 9], "x": 132, "y": 4, "flags": 4}, + {"matrix": [0, 10], "x": 146, "y": 4, "flags": 4}, + {"matrix": [0, 11], "x": 161, "y": 4, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 4, "flags": 4}, + {"matrix": [0, 13], "x": 190, "y": 4, "flags": 4}, + {"matrix": [3, 1], "x": 205, "y": 4, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 19, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 19, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 19, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 19, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 19, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 19, "flags": 4}, + {"matrix": [1, 6], "x": 95, "y": 19, "flags": 4}, + {"matrix": [1, 7], "x": 110, "y": 19, "flags": 4}, + {"matrix": [1, 8], "x": 125, "y": 19, "flags": 4}, + {"matrix": [1, 9], "x": 139, "y": 19, "flags": 4}, + {"matrix": [1, 10], "x": 154, "y": 19, "flags": 4}, + {"matrix": [1, 11], "x": 168, "y": 19, "flags": 4}, + {"matrix": [1, 12], "x": 183, "y": 19, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 19, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 34, "flags": 8}, + {"matrix": [2, 1], "x": 26, "y": 34, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 34, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 34, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 34, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 34, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 34, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 34, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 34, "flags": 4}, + {"matrix": [2, 9], "x": 143, "y": 34, "flags": 4}, + {"matrix": [2, 10], "x": 158, "y": 34, "flags": 4}, + {"matrix": [2, 11], "x": 172, "y": 34, "flags": 4}, + {"matrix": [2, 13], "x": 187, "y": 34, "flags": 4}, + {"matrix": [1, 13], "x": 207, "y": 29, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 34, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 49, "flags": 1}, + {"matrix": [3, 2], "x": 33, "y": 49, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 49, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 49, "flags": 4}, + {"matrix": [3, 5], "x": 77, "y": 49, "flags": 4}, + {"matrix": [3, 6], "x": 92, "y": 49, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 49, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 49, "flags": 4}, + {"matrix": [3, 10], "x": 150, "y": 49, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 49, "flags": 4}, + {"matrix": [3, 12], "x": 179, "y": 49, "flags": 4}, + {"matrix": [3, 13], "x": 194, "y": 49, "flags": 1}, + {"matrix": [3, 14], "x": 209, "y": 49, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 35, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 51, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 92, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 134, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 165, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 179, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 194, "y": 64, "flags": 1}, + {"matrix": [2, 12], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 223, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_jis_71": { "layout": [ From 1e8de37aa05f30819dfa47f775ab007efb41d1a0 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 03:02:29 -0600 Subject: [PATCH 030/255] Migrate `g_led_config` to DD (K3) (#25603) --- keyboards/keychron/q1v1/iso/iso.c | 33 ----- keyboards/keychron/q6/ansi/ansi.c | 33 ----- keyboards/keychron/q6/ansi/keyboard.json | 112 +++++++++++++++++ .../keychron/q6/ansi_encoder/ansi_encoder.c | 32 ----- .../keychron/q6/ansi_encoder/keyboard.json | 112 +++++++++++++++++ keyboards/keychron/q6/iso/iso.c | 33 ----- keyboards/keychron/q6/iso/keyboard.json | 113 ++++++++++++++++++ .../keychron/q6/iso_encoder/iso_encoder.c | 33 ----- .../keychron/q6/iso_encoder/keyboard.json | 113 ++++++++++++++++++ keyboards/keychron/q60/ansi/ansi.c | 30 ----- keyboards/keychron/q60/ansi/keyboard.json | 64 ++++++++++ .../keychron/q65/ansi_encoder/ansi_encoder.c | 30 ----- .../keychron/q65/ansi_encoder/keyboard.json | 76 ++++++++++++ keyboards/keychron/s1/ansi/rgb/keyboard.json | 86 +++++++++++++ keyboards/keychron/s1/ansi/rgb/rgb.c | 33 ----- .../keychron/v10/ansi_encoder/ansi_encoder.c | 33 ----- .../keychron/v10/ansi_encoder/keyboard.json | 92 ++++++++++++++ .../keychron/v10/iso_encoder/iso_encoder.c | 33 ----- .../keychron/v10/iso_encoder/keyboard.json | 93 ++++++++++++++ 19 files changed, 861 insertions(+), 323 deletions(-) diff --git a/keyboards/keychron/q1v1/iso/iso.c b/keyboards/keychron/q1v1/iso/iso.c index ef4f3425af..108ce01542 100644 --- a/keyboards/keychron/q1v1/iso/iso.c +++ b/keyboards/keychron/q1v1/iso/iso.c @@ -113,37 +113,4 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {1, SW6_CS15, SW4_CS15, SW5_CS15}, {1, SW6_CS16, SW4_CS16, SW5_CS16} }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, __, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 57, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 72, 56, 58 }, - { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 81, 71, 13 }, - { 73, 74, 75, __, __, __, 76, __, __, __, 77, 78, 79, 80, 82 } - }, - { - // LED Index to Physical Position - {0,0}, {18,0}, {33,0}, {48,0}, {62,0}, {81,0}, {95,0}, {110,0}, {125,0}, {143,0}, {158,0}, {173,0}, {187,0}, {206,0}, {224,0}, - {0,15}, {15,15}, {29,15}, {44,15}, {59,15}, {73,15}, {88,15}, {103,15}, {118,15}, {132,15}, {147,15}, {162,15}, {176,15}, {198,15}, {224,15}, - {4,26}, {22,26}, {37,26}, {51,26}, {66,26}, {81,26}, {95,26}, {110,26}, {125,26}, {140,26}, {154,26}, {169,26}, {184,26}, {224,26}, - {6,38}, {26,38}, {40,38}, {55,38}, {70,38}, {84,38}, {99,38}, {114,38}, {129,38}, {143,38}, {158,38}, {173,38}, {187,38}, {203,32}, {224,38}, - {2,49}, {18,49}, {33,49}, {48,49}, {62,49}, {77,49}, {92,49}, {106,49}, {121,49}, {136,49}, {151,49}, {165,49}, {185,49}, {209,52}, - {2,61}, {20,61}, {39,61}, {94,61}, {147,61}, {162,61}, {176,61}, {195,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q6/ansi/ansi.c b/keyboards/keychron/q6/ansi/ansi.c index 62a22971e1..bbc467bb49 100644 --- a/keyboards/keychron/q6/ansi/ansi.c +++ b/keyboards/keychron/q6/ansi/ansi.c @@ -141,37 +141,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA12, CB10_CA12, CB11_CA12}, {1, CB12_CA9, CB10_CA9, CB11_CA9}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 18 }, - { 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, __, 73, 60, 77, 76, 74, 75, 19 }, - { 78, __, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, __, 89, 93, 90, 107, 91, 92, __ }, - { 94, 95, 96, __, __, __, 97, __, __, __, 98, 99, 100, 101, 102, 103, 104, 105, 106, __ }, - }, - { - // LED Index to Physical Position - {0,0}, {21,0}, {31,0}, {42,0}, {52,0}, {68,0}, {78,0}, {89,0}, {99,0}, {115,0}, {125,0}, {136,0}, {146,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, - {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, - {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {143,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, - {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {139,40}, {193,40}, {203,40}, {214,40}, {224,34}, - {7,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, - {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q6/ansi/keyboard.json b/keyboards/keychron/q6/ansi/keyboard.json index 664fe87008..10cb586908 100644 --- a/keyboards/keychron/q6/ansi/keyboard.json +++ b/keyboards/keychron/q6/ansi/keyboard.json @@ -21,6 +21,118 @@ "build": { "lto": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 21, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 31, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 99, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 115, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 136, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 146, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, + {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1}, + {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1}, + {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1}, + {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, + {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8}, + {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, + {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4}, + {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 143, "y": 27, "flags": 4}, + {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, + {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, + {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 139, "y": 40, "flags": 1}, + {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, + {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, + {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4}, + {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_108": { "layout": [ diff --git a/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c index b3d8a6bd4c..5897e1be72 100644 --- a/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q6/ansi_encoder/ansi_encoder.c @@ -142,36 +142,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA9, CB10_CA9, CB11_CA9}, }; -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 18 }, - { 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, __, 73, 60, 77, 76, 74, 75, 19 }, - { 78, __, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, __, 89, 93, 90, 107, 91, 92, __ }, - { 94, 95, 96, __, __, __, 97, __, __, __, 98, 99, 100, 101, 102, 103, 104, 105, 106, __ }, - }, - { - // LED Index to Physical Position - {0,0}, {13,0}, {24,0}, {34,0}, {45,0}, {57,0}, {68,0}, {78,0}, {89,0}, {102,0}, {112,0}, {123,0}, {133,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, - {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, - {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {143,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, - {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {139,40}, {193,40}, {203,40}, {214,40}, {224,34}, - {7,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, - {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q6/ansi_encoder/keyboard.json b/keyboards/keychron/q6/ansi_encoder/keyboard.json index a37b68f553..8b3ad779c9 100644 --- a/keyboards/keychron/q6/ansi_encoder/keyboard.json +++ b/keyboards/keychron/q6/ansi_encoder/keyboard.json @@ -27,6 +27,118 @@ "build": { "lto": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 13, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 45, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 57, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 102, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 123, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, + {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1}, + {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1}, + {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1}, + {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, + {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8}, + {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, + {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4}, + {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 143, "y": 27, "flags": 4}, + {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, + {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, + {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 139, "y": 40, "flags": 1}, + {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, + {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 7, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, + {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4}, + {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_109": { "layout": [ diff --git a/keyboards/keychron/q6/iso/iso.c b/keyboards/keychron/q6/iso/iso.c index eb6cab855a..5316273776 100644 --- a/keyboards/keychron/q6/iso/iso.c +++ b/keyboards/keychron/q6/iso/iso.c @@ -142,37 +142,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA12, CB10_CA12, CB11_CA12}, {1, CB12_CA9, CB10_CA9, CB11_CA9}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 73, 54, 55, 56, 57, 58, 18 }, - { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, __, 72, 59, 77, 76, 74, 75, 19 }, - { 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, __, 90, 94, 91, 108, 92, 93, __ }, - { 95, 96, 97, __, __, __, 98, __, __, __, 99, 100, 101, 102, 103, 104, 105, 106, 107, __ }, - }, - { - // LED Index to Physical Position - {0,0}, {21,0}, {31,0}, {42,0}, {52,0}, {68,0}, {78,0}, {89,0}, {99,0}, {115,0}, {125,0}, {136,0}, {146,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, - {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, - {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, - {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {133,40}, {147,36}, {193,40}, {203,40}, {214,40}, {224,34}, - {1,52}, {13,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, - {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q6/iso/keyboard.json b/keyboards/keychron/q6/iso/keyboard.json index 28730b2d74..fae62800a3 100644 --- a/keyboards/keychron/q6/iso/keyboard.json +++ b/keyboards/keychron/q6/iso/keyboard.json @@ -21,6 +21,119 @@ "build": { "lto": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 21, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 31, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 99, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 115, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 136, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 146, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, + {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1}, + {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1}, + {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1}, + {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, + {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8}, + {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, + {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4}, + {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, + {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, + {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 133, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 147, "y": 36, "flags": 1}, + {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, + {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 1, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 13, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, + {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4}, + {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_109": { "layout": [ diff --git a/keyboards/keychron/q6/iso_encoder/iso_encoder.c b/keyboards/keychron/q6/iso_encoder/iso_encoder.c index 439e1cee50..5316273776 100644 --- a/keyboards/keychron/q6/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q6/iso_encoder/iso_encoder.c @@ -142,37 +142,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA12, CB10_CA12, CB11_CA12}, {1, CB12_CA9, CB10_CA9, CB11_CA9}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, __, 13, 14, 15, 39, 40, 16 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 17 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 73, 54, 55, 56, 57, 58, 18 }, - { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, __, 72, 59, 77, 76, 74, 75, 19 }, - { 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, __, 90, 94, 91, 108, 92, 93, __ }, - { 95, 96, 97, __, __, __, 98, __, __, __, 99, 100, 101, 102, 103, 104, 105, 106, 107, __ }, - }, - { - // LED Index to Physical Position - {0,0}, {13,0}, {24,0}, {34,0}, {45,0}, {57,0}, {68,0}, {78,0}, {89,0}, {102,0}, {112,0}, {123,0}, {133,0}, {159,0}, {169,0}, {180,0}, {193,0}, {203,0}, {214,0}, {224,0}, - {0,15}, {10,15}, {21,15}, {31,15}, {42,15}, {52,15}, {63,15}, {73,15}, {83,15}, {94,15}, {104,15}, {115,15}, {125,15}, {141,15}, {159,15}, {169,15}, {180,15}, {193,15}, {203,15}, {214,15}, {224,15}, - {3,27}, {16,27}, {26,27}, {36,27}, {47,27}, {57,27}, {68,27}, {78,27}, {89,27}, {99,27}, {109,27}, {120,27}, {130,27}, {159,27}, {169,27}, {180,27}, {193,27}, {203,27}, {214,27}, - {4,40}, {18,40}, {29,40}, {39,40}, {50,40}, {60,40}, {70,40}, {81,40}, {91,40}, {102,40}, {112,40}, {123,40}, {133,40}, {147,36}, {193,40}, {203,40}, {214,40}, {224,34}, - {1,52}, {13,52}, {23,52}, {34,52}, {44,52}, {55,52}, {65,52}, {76,52}, {86,52}, {96,52}, {107,52}, {117,52}, {137,52}, {169,52}, {193,52}, {203,52}, {214,52}, - {1,64}, {14,64}, {27,64}, {66,64}, {105,64}, {118,64}, {131,64}, {145,64}, {159,64}, {169,64}, {180,64}, {198,64}, {214,64}, {224,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 8, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q6/iso_encoder/keyboard.json b/keyboards/keychron/q6/iso_encoder/keyboard.json index 3fc4ee8f1c..b404e9f50d 100644 --- a/keyboards/keychron/q6/iso_encoder/keyboard.json +++ b/keyboards/keychron/q6/iso_encoder/keyboard.json @@ -27,6 +27,119 @@ "build": { "lto": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 13, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 45, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 57, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 78, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 102, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 123, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 159, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 169, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 180, "y": 0, "flags": 1}, + {"matrix": [0, 19], "x": 193, "y": 0, "flags": 1}, + {"matrix": [1, 19], "x": 203, "y": 0, "flags": 1}, + {"matrix": [2, 19], "x": 214, "y": 0, "flags": 1}, + {"matrix": [3, 19], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 31, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 73, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 94, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 115, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 159, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 169, "y": 15, "flags": 1}, + {"matrix": [1, 16], "x": 180, "y": 15, "flags": 1}, + {"matrix": [1, 17], "x": 193, "y": 15, "flags": 8}, + {"matrix": [1, 18], "x": 203, "y": 15, "flags": 4}, + {"matrix": [0, 17], "x": 214, "y": 15, "flags": 4}, + {"matrix": [0, 18], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 57, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 78, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 99, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 14], "x": 159, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 169, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 180, "y": 27, "flags": 1}, + {"matrix": [2, 17], "x": 193, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 203, "y": 27, "flags": 4}, + {"matrix": [3, 14], "x": 214, "y": 27, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 39, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 81, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 102, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 123, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 133, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 147, "y": 36, "flags": 1}, + {"matrix": [3, 17], "x": 193, "y": 40, "flags": 4}, + {"matrix": [3, 18], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 16], "x": 214, "y": 40, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 1, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 13, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 34, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 76, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 117, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 137, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 169, "y": 52, "flags": 1}, + {"matrix": [4, 17], "x": 193, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 203, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 214, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 27, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 66, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 105, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 118, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 145, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 169, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 17], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 18], "x": 214, "y": 64, "flags": 4}, + {"matrix": [4, 16], "x": 224, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_110": { "layout": [ diff --git a/keyboards/keychron/q60/ansi/ansi.c b/keyboards/keychron/q60/ansi/ansi.c index 8b702eb5a6..b69b303d36 100644 --- a/keyboards/keychron/q60/ansi/ansi.c +++ b/keyboards/keychron/q60/ansi/ansi.c @@ -92,34 +92,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {0, CB9_CA15, CB7_CA15, CB8_CA15}, {0, CB9_CA16, CB7_CA16, CB8_CA16}, }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28 }, - { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, __, 41 }, - { 42, __, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54 }, - { 55, 56, __, __, __, __, 57, __, __, __, 58, 59, 14, __ }, - }, - { - // LED Index to Physical Position - {0,0}, {16,0}, {32,0}, {48,0}, {64,0}, {80,0}, {96,0}, {112,0}, {128,0}, {144,0}, {160,0}, {176,0}, {192,0}, {208,0}, {224,0}, - {4,16}, {24,16}, {40,16}, {56,16}, {72,16}, {88,16}, {104,16}, {120,16}, {136,16}, {152,16}, {168,16}, {184,16}, {200,16}, {220,16}, - {6,32}, {28,32}, {44,32}, {60,32}, {76,32}, {92,32}, {108,32}, {124,32}, {140,32}, {156,32}, {172,32}, {188,32}, {214,32}, - {10,48}, {36,48}, {52,48}, {68,48}, {84,48}, {100,48}, {116,48}, {132,48}, {148,48}, {164,48}, {180,48}, {202,48}, {224,48}, - {24,64}, {44,64}, {112,64}, {180,64}, {200,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q60/ansi/keyboard.json b/keyboards/keychron/q60/ansi/keyboard.json index 83ee57d011..762ef21161 100644 --- a/keyboards/keychron/q60/ansi/keyboard.json +++ b/keyboards/keychron/q60/ansi/keyboard.json @@ -23,6 +23,70 @@ "diode_direction": "ROW2COL", "processor": "STM32L432", "bootloader": "stm32-dfu", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"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": 208, "y": 0, "flags": 1}, + {"matrix": [4, 12], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 180, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 202, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 24, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 44, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 180, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 200, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_60": { "layout": [ diff --git a/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c index 6c4c2abe21..f16cc60424 100644 --- a/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q65/ansi_encoder/ansi_encoder.c @@ -102,34 +102,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA2, CB4_CA2, CB5_CA2}, // Down {1, CB6_CA1, CB4_CA1, CB5_CA1}, // Right }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { __, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, __, 44, 45 }, - { 46, 47, __, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60 }, - { 61, 62, 63, 64, __, __, __, 65, __, __, 66, 67, 68, 69, 70, 71 }, - }, - { - // LED Index to Physical Position - {20,0}, {33,0}, {47,0}, {60,0}, {73,0}, {86,0}, {99,0}, {112,0}, {125,0}, {138,0}, {151,0}, {164,0}, {177,0}, {197,0}, {224,0}, - {0,15}, {24,15}, {40,15}, {53,15}, {66,15}, {79,15}, {92,15}, {105,15}, {119,15}, {132,15}, {145,15}, {158,15}, {171,15}, {184,15}, {200,15}, {224,15}, - {0,30}, {25,30}, {43,30}, {56,30}, {69,30}, {83,30}, {96,30}, {109,30}, {122,30}, {135,30}, {148,30}, {161,30}, {174,30}, {195,30}, {224,30}, - {0,45}, {29,45}, {50,45}, {63,45}, {76,45}, {89,45}, {102,45}, {115,45}, {128,45}, {141,45}, {155,45}, {168,45}, {186,45}, {207,49}, {224,45}, - {0,60}, {22,60}, {38,60}, {55,60}, {104,60}, {151,60}, {164,60}, {177,60}, {194,64}, {207,64}, {220,64}, - }, - { - // RGB LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q65/ansi_encoder/keyboard.json b/keyboards/keychron/q65/ansi_encoder/keyboard.json index 76b17dd5fb..1fef623719 100644 --- a/keyboards/keychron/q65/ansi_encoder/keyboard.json +++ b/keyboards/keychron/q65/ansi_encoder/keyboard.json @@ -27,6 +27,82 @@ "dip_switch": true, "rgb_matrix": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 47, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 86, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 99, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 125, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 138, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 151, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 164, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 177, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 197, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 15, "flags": 1}, + {"matrix": [1, 2], "x": 40, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 79, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 92, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 105, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 119, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 145, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 158, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 171, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 184, "y": 15, "flags": 4}, + {"matrix": [1, 14], "x": 200, "y": 15, "flags": 4}, + {"matrix": [1, 15], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 30, "flags": 1}, + {"matrix": [2, 1], "x": 25, "y": 30, "flags": 9}, + {"matrix": [2, 2], "x": 43, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 69, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 83, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 109, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 122, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 135, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 148, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 161, "y": 30, "flags": 4}, + {"matrix": [2, 12], "x": 174, "y": 30, "flags": 4}, + {"matrix": [2, 14], "x": 195, "y": 30, "flags": 1}, + {"matrix": [2, 15], "x": 224, "y": 30, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 45, "flags": 1}, + {"matrix": [3, 1], "x": 29, "y": 45, "flags": 1}, + {"matrix": [3, 3], "x": 50, "y": 45, "flags": 4}, + {"matrix": [3, 4], "x": 63, "y": 45, "flags": 4}, + {"matrix": [3, 5], "x": 76, "y": 45, "flags": 4}, + {"matrix": [3, 6], "x": 89, "y": 45, "flags": 4}, + {"matrix": [3, 7], "x": 102, "y": 45, "flags": 4}, + {"matrix": [3, 8], "x": 115, "y": 45, "flags": 4}, + {"matrix": [3, 9], "x": 128, "y": 45, "flags": 4}, + {"matrix": [3, 10], "x": 141, "y": 45, "flags": 4}, + {"matrix": [3, 11], "x": 155, "y": 45, "flags": 4}, + {"matrix": [3, 12], "x": 168, "y": 45, "flags": 4}, + {"matrix": [3, 13], "x": 186, "y": 45, "flags": 1}, + {"matrix": [3, 14], "x": 207, "y": 49, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 45, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 60, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 60, "flags": 1}, + {"matrix": [4, 2], "x": 38, "y": 60, "flags": 1}, + {"matrix": [4, 3], "x": 55, "y": 60, "flags": 1}, + {"matrix": [4, 7], "x": 104, "y": 60, "flags": 4}, + {"matrix": [4, 10], "x": 151, "y": 60, "flags": 1}, + {"matrix": [4, 11], "x": 164, "y": 60, "flags": 1}, + {"matrix": [4, 12], "x": 177, "y": 60, "flags": 1}, + {"matrix": [4, 13], "x": 194, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 207, "y": 64, "flags": 1}, + {"matrix": [4, 15], "x": 220, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_73": { "layout": [ diff --git a/keyboards/keychron/s1/ansi/rgb/keyboard.json b/keyboards/keychron/s1/ansi/rgb/keyboard.json index fb52ee6423..2dbc05f2fa 100644 --- a/keyboards/keychron/s1/ansi/rgb/keyboard.json +++ b/keyboards/keychron/s1/ansi/rgb/keyboard.json @@ -33,6 +33,92 @@ "solid_splash": true }, "driver": "snled27351", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 119, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 134, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 149, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 164, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 179, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 194, "y": 0, "flags": 1}, + {"matrix": [3, 12], "x": 209, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 13, "flags": 1}, + {"matrix": [1, 1], "x": 15, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 30, "y": 13, "flags": 4}, + {"matrix": [1, 3], "x": 45, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 60, "y": 13, "flags": 4}, + {"matrix": [1, 5], "x": 75, "y": 13, "flags": 4}, + {"matrix": [1, 6], "x": 90, "y": 13, "flags": 4}, + {"matrix": [1, 7], "x": 105, "y": 13, "flags": 4}, + {"matrix": [1, 8], "x": 119, "y": 13, "flags": 4}, + {"matrix": [1, 9], "x": 134, "y": 13, "flags": 4}, + {"matrix": [1, 10], "x": 149, "y": 13, "flags": 4}, + {"matrix": [1, 11], "x": 164, "y": 13, "flags": 4}, + {"matrix": [1, 12], "x": 179, "y": 13, "flags": 4}, + {"matrix": [1, 13], "x": 202, "y": 13, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 13, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 67, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 82, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 97, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 127, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 142, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 157, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 172, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 187, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 205, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 26, "flags": 1}, + {"matrix": [3, 0], "x": 6, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 26, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 41, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 56, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 71, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 86, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 101, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 116, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 131, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 146, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 175, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 200, "y": 38, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 38, "flags": 1}, + {"matrix": [4, 0], "x": 9, "y": 51, "flags": 1}, + {"matrix": [4, 2], "x": 34, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 63, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 78, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 93, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 108, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 123, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 138, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 153, "y": 51, "flags": 4}, + {"matrix": [4, 11], "x": 168, "y": 51, "flags": 4}, + {"matrix": [4, 12], "x": 189, "y": 51, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 51, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 51, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 95, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 149, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 179, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 194, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 224, "y": 64, "flags": 1} + ] "sleep": true }, "features": { diff --git a/keyboards/keychron/s1/ansi/rgb/rgb.c b/keyboards/keychron/s1/ansi/rgb/rgb.c index af6390f753..a40fdbd7cc 100644 --- a/keyboards/keychron/s1/ansi/rgb/rgb.c +++ b/keyboards/keychron/s1/ansi/rgb/rgb.c @@ -117,37 +117,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA14, CB4_CA14, CB5_CA14}, // down {1, CB6_CA16, CB4_CA16, CB5_CA16}, // right }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45 }, - { 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 14, 58, 59 }, - { 60, __, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73 }, - { 74, 75, 76, __, __, __, 77, __, __, 78, 79, 80, 81, 82, 83 } - }, - { - // LED Index to Physical Position - {0,0}, {15,0}, {30,0}, {45,0}, {60,0}, {75,0}, {90,0}, {105,0}, {119,0}, {134,0}, {149,0}, {164,0}, {179,0}, {194,0}, {209,0}, {224,0}, - {0,13}, {15,13}, {30,13}, {45,13}, {60,13}, {75,13}, {90,13}, {105,13}, {119,13}, {134,13}, {149,13}, {164,13}, {179,13}, {202,13}, {224,13}, - {4,26}, {22,26}, {37,26}, {52,26}, {67,26}, {82,26}, {97,26}, {112,26}, {127,26}, {142,26}, {157,26}, {172,26}, {187,26}, {205,26}, {224,26}, - {6,38}, {26,38}, {41,38}, {56,38}, {71,38}, {86,38}, {101,38}, {116,38}, {131,38}, {146,38}, {160,38}, {175,38}, {200,38}, {224,38}, - {9,51}, {34,51}, {48,51}, {63,51}, {78,51}, {93,51}, {108,51}, {123,51}, {138,51}, {153,51}, {168,51}, {189,51}, {209,51}, {224,51}, - {2,64}, {21,64}, {39,64}, {95,64}, {149,64}, {164,64}, {179,64}, {194,64}, {209,64}, {224,64} - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c b/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c index 7a58d4deef..a9468493d6 100644 --- a/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/v10/ansi_encoder/ansi_encoder.c @@ -121,37 +121,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA2, CB4_CA2, CB5_CA2}, // Down {1, CB6_CA1, CB4_CA1, CB5_CA1}, // Right }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { __, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46 }, - { 47, 48, 49, 50, 51, 52, 53, __, 54, 55, 56, 57, 58, 59, 60, 61 }, - { 62, 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76 }, - { 77, 78, 79, 80, 81, __, __, 82, 83, 84, __, __, __, 85, 86, 87 }, - }, - { - // LED Index to Physical Position - {19,0}, {34,0}, {46,0}, {60,1}, {72,3}, {87,6}, {99,8}, {120,8}, {132,6}, {147,3}, {159,1}, {173,0}, {185,0}, {201,1}, {219,1}, - {5,14}, {24,14}, {36,14}, {48,13}, {62,15}, {74,17}, {86,20}, {98,22}, {115,22}, {127,20}, {139,17}, {151,15}, {165,13}, {177,14}, {195,14}, {220,13}, - {4,24}, {24,24}, {40,24}, {53,24}, {65,27}, {77,29}, {89,31}, {112,33}, {124,31}, {136,29}, {148,27}, {160,24}, {174,24}, {186,24}, {201,24}, {222,25}, - {2,34}, {23,34}, {40,34}, {54,35}, {66,37}, {78,39}, {90,42}, {118,43}, {130,40}, {142,38}, {154,36}, {167,35}, {179,35}, {199,35}, {224,36}, - {0,45}, {24,45}, {44,45}, {57,46}, {69,48}, {81,51}, {93,53}, {111,54}, {123,52}, {135,50}, {147,48}, {159,46}, {173,45}, {190,45}, {210,47}, - {0,55}, {18,55}, {33,55}, {56,57}, {77,61}, {97,64}, {124,63}, {147,59}, {198,58}, {210,58}, {222,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v10/ansi_encoder/keyboard.json b/keyboards/keychron/v10/ansi_encoder/keyboard.json index 825fa65ef8..98a700ab2e 100644 --- a/keyboards/keychron/v10/ansi_encoder/keyboard.json +++ b/keyboards/keychron/v10/ansi_encoder/keyboard.json @@ -27,6 +27,98 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 1], "x": 19, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 46, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 60, "y": 1, "flags": 1}, + {"matrix": [0, 5], "x": 72, "y": 3, "flags": 1}, + {"matrix": [0, 6], "x": 87, "y": 6, "flags": 1}, + {"matrix": [0, 7], "x": 99, "y": 8, "flags": 1}, + {"matrix": [0, 8], "x": 120, "y": 8, "flags": 1}, + {"matrix": [0, 9], "x": 132, "y": 6, "flags": 1}, + {"matrix": [0, 10], "x": 147, "y": 3, "flags": 1}, + {"matrix": [0, 11], "x": 159, "y": 1, "flags": 1}, + {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 185, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 201, "y": 1, "flags": 1}, + {"matrix": [0, 15], "x": 219, "y": 1, "flags": 1}, + {"matrix": [1, 0], "x": 5, "y": 14, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 14, "flags": 1}, + {"matrix": [1, 2], "x": 36, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 62, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 74, "y": 17, "flags": 4}, + {"matrix": [1, 6], "x": 86, "y": 20, "flags": 4}, + {"matrix": [1, 7], "x": 98, "y": 22, "flags": 4}, + {"matrix": [1, 8], "x": 115, "y": 22, "flags": 4}, + {"matrix": [1, 9], "x": 127, "y": 20, "flags": 4}, + {"matrix": [1, 10], "x": 139, "y": 17, "flags": 4}, + {"matrix": [1, 11], "x": 151, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 165, "y": 13, "flags": 4}, + {"matrix": [1, 13], "x": 177, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 195, "y": 14, "flags": 1}, + {"matrix": [1, 15], "x": 220, "y": 13, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 24, "flags": 1}, + {"matrix": [2, 1], "x": 24, "y": 24, "flags": 1}, + {"matrix": [2, 2], "x": 40, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 53, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 77, "y": 29, "flags": 4}, + {"matrix": [2, 6], "x": 89, "y": 31, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 33, "flags": 4}, + {"matrix": [2, 8], "x": 124, "y": 31, "flags": 4}, + {"matrix": [2, 9], "x": 136, "y": 29, "flags": 4}, + {"matrix": [2, 10], "x": 148, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 160, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 174, "y": 24, "flags": 4}, + {"matrix": [2, 13], "x": 186, "y": 24, "flags": 4}, + {"matrix": [2, 14], "x": 201, "y": 24, "flags": 4}, + {"matrix": [2, 15], "x": 222, "y": 25, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 34, "flags": 1}, + {"matrix": [3, 1], "x": 23, "y": 34, "flags": 8}, + {"matrix": [3, 2], "x": 40, "y": 34, "flags": 4}, + {"matrix": [3, 3], "x": 54, "y": 35, "flags": 4}, + {"matrix": [3, 4], "x": 66, "y": 37, "flags": 4}, + {"matrix": [3, 5], "x": 78, "y": 39, "flags": 4}, + {"matrix": [3, 6], "x": 90, "y": 42, "flags": 4}, + {"matrix": [3, 8], "x": 118, "y": 43, "flags": 4}, + {"matrix": [3, 9], "x": 130, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 142, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 36, "flags": 4}, + {"matrix": [3, 12], "x": 167, "y": 35, "flags": 4}, + {"matrix": [3, 13], "x": 179, "y": 35, "flags": 4}, + {"matrix": [3, 14], "x": 199, "y": 35, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 36, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 45, "flags": 1}, + {"matrix": [4, 1], "x": 24, "y": 45, "flags": 1}, + {"matrix": [4, 3], "x": 44, "y": 45, "flags": 4}, + {"matrix": [4, 4], "x": 57, "y": 46, "flags": 4}, + {"matrix": [4, 5], "x": 69, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 93, "y": 53, "flags": 4}, + {"matrix": [4, 8], "x": 111, "y": 54, "flags": 4}, + {"matrix": [4, 9], "x": 123, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 135, "y": 50, "flags": 4}, + {"matrix": [4, 11], "x": 147, "y": 48, "flags": 4}, + {"matrix": [4, 12], "x": 159, "y": 46, "flags": 4}, + {"matrix": [4, 13], "x": 173, "y": 45, "flags": 4}, + {"matrix": [4, 14], "x": 190, "y": 45, "flags": 1}, + {"matrix": [4, 15], "x": 210, "y": 47, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 55, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 55, "flags": 1}, + {"matrix": [5, 2], "x": 33, "y": 55, "flags": 1}, + {"matrix": [5, 3], "x": 56, "y": 57, "flags": 1}, + {"matrix": [5, 4], "x": 77, "y": 61, "flags": 4}, + {"matrix": [5, 7], "x": 97, "y": 64, "flags": 1}, + {"matrix": [5, 8], "x": 124, "y": 63, "flags": 4}, + {"matrix": [5, 9], "x": 147, "y": 59, "flags": 1}, + {"matrix": [5, 13], "x": 198, "y": 58, "flags": 1}, + {"matrix": [5, 14], "x": 210, "y": 58, "flags": 1}, + {"matrix": [5, 15], "x": 222, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_89": { "layout": [ diff --git a/keyboards/keychron/v10/iso_encoder/iso_encoder.c b/keyboards/keychron/v10/iso_encoder/iso_encoder.c index 359646b542..5092a283df 100644 --- a/keyboards/keychron/v10/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/v10/iso_encoder/iso_encoder.c @@ -122,37 +122,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA2, CB4_CA2, CB5_CA2}, // Down {1, CB6_CA1, CB4_CA1, CB5_CA1}, // Right }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { __, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 59, 45 }, - { 46, 47, 48, 49, 50, 51, 52, __, 53, 54, 55, 56, 57, 58, 60, 61 }, - { 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77 }, - { 78, 79, 80, 81, 82, __, __, 83, 84, 85, __, __, __, 86, 87, 88 }, - }, - { - // LED Index to Physical Position - {0,0}, {19,0}, {34,0}, {60,1}, {72,3}, {87,6}, {99,8}, {120,8}, {132,6}, {147,3}, {159,1}, {173,0}, {185,0}, {201,1}, {219,1}, - {5,14}, {24,14}, {36,14}, {48,13}, {62,15}, {74,17}, {86,20}, {98,22}, {115,22}, {127,20}, {139,17}, {151,15}, {165,13}, {177,14}, {195,14}, {220,15}, - {4,24}, {24,24}, {40,24}, {53,24}, {65,27}, {77,29}, {89,31}, {112,33}, {124,31}, {136,29}, {148,27}, {160,24}, {176,24}, {189,24}, {222,25}, - {2,34}, {23,34}, {40,34}, {54,35}, {66,37}, {78,39}, {90,42}, {118,43}, {130,40}, {142,38}, {154,36}, {167,35}, {179,35}, {192,35}, {208,31}, {224,36}, - {0,45}, {18,45}, {31,45}, {44,45}, {57,46}, {69,48}, {81,51}, {93,53}, {111,54}, {123,52}, {135,50}, {147,48}, {159,46}, {173,45}, {190,45}, {210,47}, - {0,55}, {18,55}, {33,55}, {56,57}, {77,61}, {97,64}, {124,63}, {147,59}, {198,58}, {210,58}, {222,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/v10/iso_encoder/keyboard.json b/keyboards/keychron/v10/iso_encoder/keyboard.json index ea2dfb35e2..7880fd6501 100644 --- a/keyboards/keychron/v10/iso_encoder/keyboard.json +++ b/keyboards/keychron/v10/iso_encoder/keyboard.json @@ -27,6 +27,99 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 1], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 19, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 60, "y": 1, "flags": 1}, + {"matrix": [0, 5], "x": 72, "y": 3, "flags": 1}, + {"matrix": [0, 6], "x": 87, "y": 6, "flags": 1}, + {"matrix": [0, 7], "x": 99, "y": 8, "flags": 1}, + {"matrix": [0, 8], "x": 120, "y": 8, "flags": 1}, + {"matrix": [0, 9], "x": 132, "y": 6, "flags": 1}, + {"matrix": [0, 10], "x": 147, "y": 3, "flags": 1}, + {"matrix": [0, 11], "x": 159, "y": 1, "flags": 1}, + {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 185, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 201, "y": 1, "flags": 1}, + {"matrix": [0, 15], "x": 219, "y": 1, "flags": 1}, + {"matrix": [1, 0], "x": 5, "y": 14, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 14, "flags": 1}, + {"matrix": [1, 2], "x": 36, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 62, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 74, "y": 17, "flags": 4}, + {"matrix": [1, 6], "x": 86, "y": 20, "flags": 4}, + {"matrix": [1, 7], "x": 98, "y": 22, "flags": 4}, + {"matrix": [1, 8], "x": 115, "y": 22, "flags": 4}, + {"matrix": [1, 9], "x": 127, "y": 20, "flags": 4}, + {"matrix": [1, 10], "x": 139, "y": 17, "flags": 4}, + {"matrix": [1, 11], "x": 151, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 165, "y": 13, "flags": 4}, + {"matrix": [1, 13], "x": 177, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 195, "y": 14, "flags": 1}, + {"matrix": [1, 15], "x": 220, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 24, "flags": 1}, + {"matrix": [2, 1], "x": 24, "y": 24, "flags": 1}, + {"matrix": [2, 2], "x": 40, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 53, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 77, "y": 29, "flags": 4}, + {"matrix": [2, 6], "x": 89, "y": 31, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 33, "flags": 4}, + {"matrix": [2, 8], "x": 124, "y": 31, "flags": 4}, + {"matrix": [2, 9], "x": 136, "y": 29, "flags": 4}, + {"matrix": [2, 10], "x": 148, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 160, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 24, "flags": 4}, + {"matrix": [2, 13], "x": 189, "y": 24, "flags": 4}, + {"matrix": [2, 15], "x": 222, "y": 25, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 34, "flags": 1}, + {"matrix": [3, 1], "x": 23, "y": 34, "flags": 8}, + {"matrix": [3, 2], "x": 40, "y": 34, "flags": 4}, + {"matrix": [3, 3], "x": 54, "y": 35, "flags": 4}, + {"matrix": [3, 4], "x": 66, "y": 37, "flags": 4}, + {"matrix": [3, 5], "x": 78, "y": 39, "flags": 4}, + {"matrix": [3, 6], "x": 90, "y": 42, "flags": 4}, + {"matrix": [3, 8], "x": 118, "y": 43, "flags": 4}, + {"matrix": [3, 9], "x": 130, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 142, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 36, "flags": 4}, + {"matrix": [3, 12], "x": 167, "y": 35, "flags": 4}, + {"matrix": [3, 13], "x": 179, "y": 35, "flags": 4}, + {"matrix": [2, 14], "x": 192, "y": 35, "flags": 4}, + {"matrix": [3, 14], "x": 208, "y": 31, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 36, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 45, "flags": 1}, + {"matrix": [4, 1], "x": 18, "y": 45, "flags": 1}, + {"matrix": [4, 2], "x": 31, "y": 45, "flags": 4}, + {"matrix": [4, 3], "x": 44, "y": 45, "flags": 4}, + {"matrix": [4, 4], "x": 57, "y": 46, "flags": 4}, + {"matrix": [4, 5], "x": 69, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 93, "y": 53, "flags": 4}, + {"matrix": [4, 8], "x": 111, "y": 54, "flags": 4}, + {"matrix": [4, 9], "x": 123, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 135, "y": 50, "flags": 4}, + {"matrix": [4, 11], "x": 147, "y": 48, "flags": 4}, + {"matrix": [4, 12], "x": 159, "y": 46, "flags": 4}, + {"matrix": [4, 13], "x": 173, "y": 45, "flags": 4}, + {"matrix": [4, 14], "x": 190, "y": 45, "flags": 1}, + {"matrix": [4, 15], "x": 210, "y": 47, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 55, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 55, "flags": 1}, + {"matrix": [5, 2], "x": 33, "y": 55, "flags": 1}, + {"matrix": [5, 3], "x": 56, "y": 57, "flags": 1}, + {"matrix": [5, 4], "x": 77, "y": 61, "flags": 4}, + {"matrix": [5, 7], "x": 97, "y": 64, "flags": 1}, + {"matrix": [5, 8], "x": 124, "y": 63, "flags": 4}, + {"matrix": [5, 9], "x": 147, "y": 59, "flags": 1}, + {"matrix": [5, 13], "x": 198, "y": 58, "flags": 1}, + {"matrix": [5, 14], "x": 210, "y": 58, "flags": 1}, + {"matrix": [5, 15], "x": 222, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_90": { "layout": [ From 0828fc4b6ff126b2466bd92110770ac412a1ad56 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 03:03:13 -0600 Subject: [PATCH 031/255] Migrate `g_led_config` to DD (K2) (#25602) --- keyboards/keebio/bamfk4/bamfk4.c | 37 ------ keyboards/keebio/bamfk4/keyboard.json | 34 ++++++ keyboards/keebio/bdn9/rev2/keyboard.json | 15 ++- keyboards/keebio/bdn9/rev2/rev2.c | 21 ---- keyboards/keebio/iris/rev6/keyboard.json | 70 ++++++++++++ keyboards/keebio/iris/rev6/rev6.c | 51 --------- keyboards/keebio/iris/rev7/keyboard.json | 70 ++++++++++++ keyboards/keebio/iris/rev7/rev7.c | 53 --------- keyboards/keebio/stick/keyboard.json | 16 ++- keyboards/keebio/stick/stick.c | 15 --- keyboards/keybee/keybee65/keybee65.c | 39 ------- keyboards/keybee/keybee65/keyboard.json | 70 ++++++++++++ keyboards/keycapsss/kimiko/kimiko.c | 83 -------------- keyboards/keycapsss/kimiko/rev1/keyboard.json | 65 +++++++++++ .../keychron/q10/ansi_encoder/ansi_encoder.c | 33 ------ .../keychron/q10/ansi_encoder/keyboard.json | 92 +++++++++++++++ .../keychron/q10/iso_encoder/iso_encoder.c | 33 ------ .../keychron/q10/iso_encoder/keyboard.json | 93 +++++++++++++++ .../keychron/q12/ansi_encoder/ansi_encoder.c | 32 ------ .../keychron/q12/ansi_encoder/keyboard.json | 106 +++++++++++++++++ .../keychron/q12/iso_encoder/iso_encoder.c | 32 ------ .../keychron/q12/iso_encoder/keyboard.json | 107 ++++++++++++++++++ 22 files changed, 736 insertions(+), 431 deletions(-) delete mode 100644 keyboards/keebio/bamfk4/bamfk4.c delete mode 100644 keyboards/keybee/keybee65/keybee65.c delete mode 100644 keyboards/keycapsss/kimiko/kimiko.c diff --git a/keyboards/keebio/bamfk4/bamfk4.c b/keyboards/keebio/bamfk4/bamfk4.c deleted file mode 100644 index 757bc03f72..0000000000 --- a/keyboards/keebio/bamfk4/bamfk4.c +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2022 Danny Nguyen (@nooges) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { NO_LED, NO_LED, NO_LED, NO_LED }, -}, { - // LED Index to Physical Position - //through switch - { 26, 10 }, { 4, 10 }, { 3, 49 }, { 23, 49 }, - { 69, 49 }, { 68, 10 }, { 90, 10 }, { 89, 49 }, - { 134, 49 }, { 132, 10 }, { 155, 10 }, { 155, 49 }, - { 199, 49 }, { 199, 10 }, { 219, 10 }, { 219, 49 }, - - //underglow - { 218, 62 }, { 188, 62 }, { 159, 62 }, { 123, 62 }, //bottom right - { 100, 62 }, { 59, 62 }, { 35, 62 }, { 5, 62 }, //bottom left - { 6, 6 }, { 35, 6 }, { 59, 6 }, { 100, 6 }, //top left - { 123, 6 }, { 159, 6 }, { 188, 6 }, { 218, 6 } //top right -}, { - // LED Index to Flag - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, - 2, 2, 2, 2, - 2, 2, 2, 2, - 2, 2, 2, 2, - 2, 2, 2, 2 -} }; - - - -#endif \ No newline at end of file diff --git a/keyboards/keebio/bamfk4/keyboard.json b/keyboards/keebio/bamfk4/keyboard.json index 08b3900766..98ea684637 100644 --- a/keyboards/keebio/bamfk4/keyboard.json +++ b/keyboards/keebio/bamfk4/keyboard.json @@ -50,6 +50,40 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"x": 26, "y": 10, "flags": 4}, + {"x": 4, "y": 10, "flags": 4}, + {"x": 3, "y": 49, "flags": 4}, + {"x": 23, "y": 49, "flags": 4}, + {"x": 69, "y": 49, "flags": 4}, + {"x": 68, "y": 10, "flags": 4}, + {"x": 90, "y": 10, "flags": 4}, + {"x": 89, "y": 49, "flags": 4}, + {"x": 134, "y": 49, "flags": 4}, + {"x": 132, "y": 10, "flags": 4}, + {"x": 155, "y": 10, "flags": 4}, + {"x": 155, "y": 49, "flags": 4}, + {"x": 199, "y": 49, "flags": 4}, + {"x": 199, "y": 10, "flags": 4}, + {"x": 219, "y": 10, "flags": 4}, + {"x": 219, "y": 49, "flags": 4}, + {"x": 218, "y": 62, "flags": 2}, + {"x": 188, "y": 62, "flags": 2}, + {"x": 159, "y": 62, "flags": 2}, + {"x": 123, "y": 62, "flags": 2}, + {"x": 100, "y": 62, "flags": 2}, + {"x": 59, "y": 62, "flags": 2}, + {"x": 35, "y": 62, "flags": 2}, + {"x": 5, "y": 62, "flags": 2}, + {"x": 6, "y": 6, "flags": 2}, + {"x": 35, "y": 6, "flags": 2}, + {"x": 59, "y": 6, "flags": 2}, + {"x": 100, "y": 6, "flags": 2}, + {"x": 123, "y": 6, "flags": 2}, + {"x": 159, "y": 6, "flags": 2}, + {"x": 188, "y": 6, "flags": 2}, + {"x": 218, "y": 6, "flags": 2} + ], "max_brightness": 160, "sleep": true }, diff --git a/keyboards/keebio/bdn9/rev2/keyboard.json b/keyboards/keebio/bdn9/rev2/keyboard.json index a8a0c8d10d..ee1787e169 100644 --- a/keyboards/keebio/bdn9/rev2/keyboard.json +++ b/keyboards/keebio/bdn9/rev2/keyboard.json @@ -71,7 +71,20 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [1, 1], "x": 112, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 224, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [2, 1], "x": 112, "y": 64, "flags": 4}, + {"matrix": [2, 2], "x": 224, "y": 64, "flags": 4}, + {"x": 56, "y": 64, "flags": 2}, + {"x": 168, "y": 64, "flags": 2} + ] }, "encoder": { "rotary": [ diff --git a/keyboards/keebio/bdn9/rev2/rev2.c b/keyboards/keebio/bdn9/rev2/rev2.c index 5c6d940325..70b0b0c4fd 100644 --- a/keyboards/keebio/bdn9/rev2/rev2.c +++ b/keyboards/keebio/bdn9/rev2/rev2.c @@ -1,26 +1,5 @@ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2 }, - { 3, 4, 5 }, - { 6, 7, 8 } -}, { - // LED Index to Physical Position - { 0, 0 }, { 112, 0 }, { 224, 0 }, - { 0, 32 }, { 112, 32 }, { 224, 32 }, - { 0, 64 }, { 112, 64 }, { 224, 64 }, - { 56, 64 }, { 168, 64 }, -}, { - // LED Index to Flag - 4, 4, 4, - 4, 4, 4, - 4, 4, 4, - 2, 2 -} }; -#endif - void eeconfig_init_kb(void) { #ifdef RGBLIGHT_ENABLE rgblight_enable(); // Enable RGB by default diff --git a/keyboards/keebio/iris/rev6/keyboard.json b/keyboards/keebio/iris/rev6/keyboard.json index ef240c5ab9..910c4b35ce 100644 --- a/keyboards/keebio/iris/rev6/keyboard.json +++ b/keyboards/keebio/iris/rev6/keyboard.json @@ -43,6 +43,76 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 5, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 5, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 2, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 2, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 3, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 18, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 18, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 30, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 43, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 42, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 42, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 45, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 45, "flags": 4}, + {"matrix": [4, 2], "x": 56, "y": 47, "flags": 4}, + {"matrix": [4, 3], "x": 72, "y": 58, "flags": 4}, + {"matrix": [4, 4], "x": 90, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 98, "y": 52, "flags": 4}, + {"x": 80, "y": 58, "flags": 2}, + {"x": 40, "y": 50, "flags": 2}, + {"x": 8, "y": 43, "flags": 2}, + {"x": 8, "y": 5, "flags": 2}, + {"x": 40, "y": 1, "flags": 2}, + {"x": 72, "y": 3, "flags": 2}, + {"matrix": [5, 0], "x": 224, "y": 5, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 5, "flags": 4}, + {"matrix": [5, 2], "x": 192, "y": 2, "flags": 4}, + {"matrix": [5, 3], "x": 176, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 160, "y": 2, "flags": 4}, + {"matrix": [5, 5], "x": 144, "y": 3, "flags": 4}, + {"matrix": [6, 5], "x": 144, "y": 18, "flags": 4}, + {"matrix": [6, 4], "x": 160, "y": 18, "flags": 4}, + {"matrix": [6, 3], "x": 176, "y": 15, "flags": 4}, + {"matrix": [6, 2], "x": 192, "y": 13, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 15, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 17, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4}, + {"matrix": [7, 1], "x": 208, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 192, "y": 28, "flags": 4}, + {"matrix": [7, 3], "x": 176, "y": 27, "flags": 4}, + {"matrix": [7, 4], "x": 160, "y": 28, "flags": 4}, + {"matrix": [7, 5], "x": 144, "y": 30, "flags": 4}, + {"matrix": [8, 5], "x": 144, "y": 45, "flags": 4}, + {"matrix": [8, 4], "x": 160, "y": 45, "flags": 4}, + {"matrix": [8, 3], "x": 176, "y": 42, "flags": 4}, + {"matrix": [8, 2], "x": 192, "y": 40, "flags": 4}, + {"matrix": [8, 1], "x": 208, "y": 42, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 43, "flags": 4}, + {"matrix": [9, 2], "x": 168, "y": 47, "flags": 4}, + {"matrix": [9, 3], "x": 152, "y": 58, "flags": 4}, + {"matrix": [9, 4], "x": 134, "y": 64, "flags": 4}, + {"matrix": [9, 5], "x": 126, "y": 52, "flags": 4}, + {"x": 144, "y": 58, "flags": 2}, + {"x": 184, "y": 50, "flags": 2}, + {"x": 216, "y": 43, "flags": 2}, + {"x": 216, "y": 5, "flags": 2}, + {"x": 184, "y": 1, "flags": 2}, + {"x": 152, "y": 3, "flags": 2} + ], "max_brightness": 160, "sleep": true, "split_count": [34, 34] diff --git a/keyboards/keebio/iris/rev6/rev6.c b/keyboards/keebio/iris/rev6/rev6.c index 3d9e18fd01..1547a0a6e8 100644 --- a/keyboards/keebio/iris/rev6/rev6.c +++ b/keyboards/keebio/iris/rev6/rev6.c @@ -13,57 +13,6 @@ along with this program. If not, see . */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - // Left Half - { 0, 1, 2, 3, 4, 5 }, - { 11, 10, 9, 8, 7, 6 }, - { 12, 13, 14, 15, 16, 17 }, - { 23, 22, 21, 20, 19, 18 }, - { NO_LED, NO_LED, 24, 25, 26, 27 }, - // Right Half - { 34, 35, 36, 37, 38, 39 }, - { 45, 44, 43, 42, 41, 40 }, - { 46, 47, 48, 49, 50, 51 }, - { 57, 56, 55, 54, 53, 52 }, - { NO_LED, NO_LED, 58, 59, 60, 61 } -}, { - // LED Index to Physical Position - // Left Half - { 0, 5 }, { 16, 5 }, { 32, 2 }, { 48, 0 }, { 64, 2 }, { 80, 3 }, - { 80, 17 }, { 64, 15 }, { 48, 13 }, { 32, 15 }, { 16, 18 }, { 0, 18 }, - { 0, 32 }, { 16, 32 }, { 32, 28 }, { 48, 27 }, { 64, 28 }, { 80, 30 }, - { 80, 43 }, { 64, 42 }, { 48, 40 }, { 32, 42 }, { 16, 45 }, { 0, 45 }, - { 56, 47 }, { 72, 58 }, { 90, 64 }, { 98, 52 }, - { 80, 58 }, { 40, 50 }, { 8, 43 }, { 8, 5 }, { 40, 1 }, { 72, 3 }, - // Right Half - { 224, 5 }, { 208, 5 }, { 192, 2 }, { 176, 0 }, { 160, 2 }, { 144, 3 }, - { 144, 18 }, { 160, 18 }, { 176, 15 }, { 192, 13 }, { 208, 15 }, { 224, 17 }, - { 224, 32 }, { 208, 32 }, { 192, 28 }, { 176, 27 }, { 160, 28 }, { 144, 30 }, - { 144, 45 }, { 160, 45 }, { 176, 42 }, { 192, 40 }, { 208, 42 }, { 224, 43 }, - { 168, 47 }, { 152, 58 }, { 134, 64 }, { 126, 52 }, - { 144, 58 }, { 184, 50 }, { 216, 43 }, { 216, 5 }, { 184, 1 }, { 152, 3 } -}, { - // LED Index to Flag - // Left Half - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2, - // Right Half - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2 - -} }; -#endif - #ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } diff --git a/keyboards/keebio/iris/rev7/keyboard.json b/keyboards/keebio/iris/rev7/keyboard.json index 79b410cd94..7b58990d18 100644 --- a/keyboards/keebio/iris/rev7/keyboard.json +++ b/keyboards/keebio/iris/rev7/keyboard.json @@ -41,6 +41,76 @@ "multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 5, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 5, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 2, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 2, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 3, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 18, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 18, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 30, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 43, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 42, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 42, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 45, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 45, "flags": 4}, + {"matrix": [4, 2], "x": 56, "y": 47, "flags": 4}, + {"matrix": [4, 3], "x": 72, "y": 58, "flags": 4}, + {"matrix": [4, 4], "x": 90, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 98, "y": 52, "flags": 4}, + {"x": 80, "y": 58, "flags": 2}, + {"x": 40, "y": 50, "flags": 2}, + {"x": 8, "y": 43, "flags": 2}, + {"x": 8, "y": 5, "flags": 2}, + {"x": 40, "y": 1, "flags": 2}, + {"x": 72, "y": 3, "flags": 2}, + {"matrix": [5, 0], "x": 224, "y": 5, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 5, "flags": 4}, + {"matrix": [5, 2], "x": 192, "y": 2, "flags": 4}, + {"matrix": [5, 3], "x": 176, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 160, "y": 2, "flags": 4}, + {"matrix": [5, 5], "x": 144, "y": 3, "flags": 4}, + {"matrix": [6, 5], "x": 144, "y": 18, "flags": 4}, + {"matrix": [6, 4], "x": 160, "y": 18, "flags": 4}, + {"matrix": [6, 3], "x": 176, "y": 15, "flags": 4}, + {"matrix": [6, 2], "x": 192, "y": 13, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 15, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 17, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4}, + {"matrix": [7, 1], "x": 208, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 192, "y": 28, "flags": 4}, + {"matrix": [7, 3], "x": 176, "y": 27, "flags": 4}, + {"matrix": [7, 4], "x": 160, "y": 28, "flags": 4}, + {"matrix": [7, 5], "x": 144, "y": 30, "flags": 4}, + {"matrix": [8, 5], "x": 144, "y": 45, "flags": 4}, + {"matrix": [8, 4], "x": 160, "y": 45, "flags": 4}, + {"matrix": [8, 3], "x": 176, "y": 42, "flags": 4}, + {"matrix": [8, 2], "x": 192, "y": 40, "flags": 4}, + {"matrix": [8, 1], "x": 208, "y": 42, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 43, "flags": 4}, + {"matrix": [9, 2], "x": 168, "y": 47, "flags": 4}, + {"matrix": [9, 3], "x": 152, "y": 58, "flags": 4}, + {"matrix": [9, 4], "x": 134, "y": 64, "flags": 4}, + {"matrix": [9, 5], "x": 126, "y": 52, "flags": 4}, + {"x": 144, "y": 58, "flags": 2}, + {"x": 184, "y": 50, "flags": 2}, + {"x": 216, "y": 43, "flags": 2}, + {"x": 216, "y": 5, "flags": 2}, + {"x": 184, "y": 1, "flags": 2}, + {"x": 152, "y": 3, "flags": 2} + ], "max_brightness": 120, "sleep": true, "split_count": [34, 34] diff --git a/keyboards/keebio/iris/rev7/rev7.c b/keyboards/keebio/iris/rev7/rev7.c index deab7acc8a..197a9dec75 100644 --- a/keyboards/keebio/iris/rev7/rev7.c +++ b/keyboards/keebio/iris/rev7/rev7.c @@ -13,59 +13,6 @@ along with this program. If not, see . */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - // Left Half - { 0, 1, 2, 3, 4, 5 }, - { 11, 10, 9, 8, 7, 6 }, - { 12, 13, 14, 15, 16, 17 }, - { 23, 22, 21, 20, 19, 18 }, - { NO_LED, NO_LED, 24, 25, 26, 27 }, - // Right Half - { 34, 35, 36, 37, 38, 39 }, - { 45, 44, 43, 42, 41, 40 }, - { 46, 47, 48, 49, 50, 51 }, - { 57, 56, 55, 54, 53, 52 }, - { NO_LED, NO_LED, 58, 59, 60, 61 } -}, { - // LED Index to Physical Position - // Left Half - { 0, 5 }, { 16, 5 }, { 32, 2 }, { 48, 0 }, { 64, 2 }, { 80, 3 }, - { 80, 17 }, { 64, 15 }, { 48, 13 }, { 32, 15 }, { 16, 18 }, { 0, 18 }, - { 0, 32 }, { 16, 32 }, { 32, 28 }, { 48, 27 }, { 64, 28 }, { 80, 30 }, - { 80, 43 }, { 64, 42 }, { 48, 40 }, { 32, 42 }, { 16, 45 }, { 0, 45 }, - { 56, 47 }, { 72, 58 }, { 90, 64 }, { 98, 52 }, - { 80, 58 }, { 40, 50 }, { 8, 43 }, { 8, 5 }, { 40, 1 }, { 72, 3 }, - // Right Half - { 224, 5 }, { 208, 5 }, { 192, 2 }, { 176, 0 }, { 160, 2 }, { 144, 3 }, - { 144, 18 }, { 160, 18 }, { 176, 15 }, { 192, 13 }, { 208, 15 }, { 224, 17 }, - { 224, 32 }, { 208, 32 }, { 192, 28 }, { 176, 27 }, { 160, 28 }, { 144, 30 }, - { 144, 45 }, { 160, 45 }, { 176, 42 }, { 192, 40 }, { 208, 42 }, { 224, 43 }, - { 168, 47 }, { 152, 58 }, { 134, 64 }, { 126, 52 }, - { 144, 58 }, { 184, 50 }, { 216, 43 }, { 216, 5 }, { 184, 1 }, { 152, 3 } -}, { - // LED Index to Flag - // Left Half - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2, - // Right Half - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2 - -} }; - - -#endif - #ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } diff --git a/keyboards/keebio/stick/keyboard.json b/keyboards/keebio/stick/keyboard.json index b8d1184ec1..00102c565a 100644 --- a/keyboards/keebio/stick/keyboard.json +++ b/keyboards/keebio/stick/keyboard.json @@ -54,7 +54,21 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 100, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 200, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 220, "y": 0, "flags": 4} + ] }, "encoder": { "rotary": [ diff --git a/keyboards/keebio/stick/stick.c b/keyboards/keebio/stick/stick.c index 6fac145091..e54a0aa09f 100644 --- a/keyboards/keebio/stick/stick.c +++ b/keyboards/keebio/stick/stick.c @@ -17,21 +17,6 @@ along with this program. If not, see . #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 } -}, { - // LED Index to Physical Position - { 0, 0 }, { 20, 0 }, { 40, 0 }, { 60, 0 }, - { 80, 0 }, { 100, 0 }, { 120, 0 }, { 140, 0 }, - { 160, 0 }, { 180, 0 }, { 200, 0 }, { 220, 0 }, -}, { - // LED Index to Flag - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 -} }; -#endif - void eeconfig_init_kb(void) { #ifdef RGBLIGHT_ENABLE rgblight_enable(); // Enable RGB by default diff --git a/keyboards/keybee/keybee65/keybee65.c b/keyboards/keybee/keybee65/keybee65.c deleted file mode 100644 index 6033dbeaaa..0000000000 --- a/keyboards/keybee/keybee65/keybee65.c +++ /dev/null @@ -1,39 +0,0 @@ -/* -Copyright 2020 -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 "quantum.h" - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, NO_LED, 13, 14 }, - { 29, NO_LED, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15 }, - { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 }, - { 57, NO_LED, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, NO_LED, 45, 44 }, - { 58, 59, 60, NO_LED, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 } - }, { - // LED Index to Physical Position - { 6, 2 }, { 20, 2 }, { 35, 11 }, { 49, 11 }, { 64, 11 }, { 78, 11 }, { 92, 11 }, { 107, 11 }, { 120, 11 }, { 135, 11 }, { 148, 11 }, { 164, 11 }, { 177, 11 }, { 198, 11 }, { 220, 11 }, - { 9, 24 }, { 26, 24 }, { 42, 24 }, { 56, 24 }, { 70, 24 }, { 85, 24 }, { 100, 24 }, { 113, 24 }, { 128, 24 }, { 143, 24 }, { 156, 24 }, { 170, 24 }, { 184, 24 }, { 202, 24 }, { 220, 24 }, - { 11, 38 }, { 29, 38 }, { 46, 38 }, { 60, 38 }, { 74, 38 }, { 88, 38 }, { 103, 38 }, { 118, 38 }, { 132, 38 }, { 146, 38 }, { 160, 38 }, { 174, 38 }, { 198, 38 }, { 220, 38 }, - { 16, 53 }, { 37, 53 }, { 52, 53 }, { 66, 53 }, { 80, 53 }, { 96, 53 }, { 110, 53 }, { 125, 53 }, { 140, 53 }, { 153, 53 }, { 168, 53 }, { 187, 53 }, { 207, 53 }, { 220, 53 }, - { 6, 68 }, { 25, 68 }, { 44, 68 }, { 96, 68 }, { 148, 68 }, { 164, 68 }, { 180, 68 }, { 192, 68 }, { 207, 68 }, { 220, 68 } - }, { - // LED Index to Flag - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 - } -}; diff --git a/keyboards/keybee/keybee65/keyboard.json b/keyboards/keybee/keybee65/keyboard.json index a2a4862836..a1f3426dbe 100644 --- a/keyboards/keybee/keybee65/keyboard.json +++ b/keyboards/keybee/keybee65/keyboard.json @@ -12,6 +12,76 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 6, "y": 2, "flags": 4}, + {"matrix": [0, 1], "x": 20, "y": 2, "flags": 4}, + {"matrix": [0, 2], "x": 35, "y": 11, "flags": 4}, + {"matrix": [0, 3], "x": 49, "y": 11, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 11, "flags": 4}, + {"matrix": [0, 5], "x": 78, "y": 11, "flags": 4}, + {"matrix": [0, 6], "x": 92, "y": 11, "flags": 4}, + {"matrix": [0, 7], "x": 107, "y": 11, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 11, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 11, "flags": 4}, + {"matrix": [0, 10], "x": 148, "y": 11, "flags": 4}, + {"matrix": [0, 11], "x": 164, "y": 11, "flags": 4}, + {"matrix": [0, 12], "x": 177, "y": 11, "flags": 4}, + {"matrix": [0, 14], "x": 198, "y": 11, "flags": 4}, + {"matrix": [0, 15], "x": 220, "y": 11, "flags": 4}, + {"matrix": [1, 15], "x": 9, "y": 24, "flags": 4}, + {"matrix": [1, 14], "x": 26, "y": 24, "flags": 4}, + {"matrix": [1, 13], "x": 42, "y": 24, "flags": 4}, + {"matrix": [1, 12], "x": 56, "y": 24, "flags": 4}, + {"matrix": [1, 11], "x": 70, "y": 24, "flags": 4}, + {"matrix": [1, 10], "x": 85, "y": 24, "flags": 4}, + {"matrix": [1, 9], "x": 100, "y": 24, "flags": 4}, + {"matrix": [1, 8], "x": 113, "y": 24, "flags": 4}, + {"matrix": [1, 7], "x": 128, "y": 24, "flags": 4}, + {"matrix": [1, 6], "x": 143, "y": 24, "flags": 4}, + {"matrix": [1, 5], "x": 156, "y": 24, "flags": 4}, + {"matrix": [1, 4], "x": 170, "y": 24, "flags": 4}, + {"matrix": [1, 3], "x": 184, "y": 24, "flags": 4}, + {"matrix": [1, 2], "x": 202, "y": 24, "flags": 4}, + {"matrix": [1, 0], "x": 220, "y": 24, "flags": 4}, + {"matrix": [2, 0], "x": 11, "y": 38, "flags": 4}, + {"matrix": [2, 2], "x": 29, "y": 38, "flags": 4}, + {"matrix": [2, 3], "x": 46, "y": 38, "flags": 4}, + {"matrix": [2, 4], "x": 60, "y": 38, "flags": 4}, + {"matrix": [2, 5], "x": 74, "y": 38, "flags": 4}, + {"matrix": [2, 6], "x": 88, "y": 38, "flags": 4}, + {"matrix": [2, 7], "x": 103, "y": 38, "flags": 4}, + {"matrix": [2, 8], "x": 118, "y": 38, "flags": 4}, + {"matrix": [2, 9], "x": 132, "y": 38, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 38, "flags": 4}, + {"matrix": [2, 11], "x": 160, "y": 38, "flags": 4}, + {"matrix": [2, 12], "x": 174, "y": 38, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 38, "flags": 4}, + {"matrix": [2, 15], "x": 220, "y": 38, "flags": 4}, + {"matrix": [3, 15], "x": 16, "y": 53, "flags": 4}, + {"matrix": [3, 14], "x": 37, "y": 53, "flags": 4}, + {"matrix": [3, 12], "x": 52, "y": 53, "flags": 4}, + {"matrix": [3, 11], "x": 66, "y": 53, "flags": 4}, + {"matrix": [3, 10], "x": 80, "y": 53, "flags": 4}, + {"matrix": [3, 9], "x": 96, "y": 53, "flags": 4}, + {"matrix": [3, 8], "x": 110, "y": 53, "flags": 4}, + {"matrix": [3, 7], "x": 125, "y": 53, "flags": 4}, + {"matrix": [3, 6], "x": 140, "y": 53, "flags": 4}, + {"matrix": [3, 5], "x": 153, "y": 53, "flags": 4}, + {"matrix": [3, 4], "x": 164, "y": 53, "flags": 4}, + {"matrix": [3, 3], "x": 187, "y": 53, "flags": 4}, + {"matrix": [3, 2], "x": 207, "y": 53, "flags": 4}, + {"matrix": [3, 0], "x": 220, "y": 53, "flags": 4}, + {"matrix": [4, 0], "x": 6, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 25, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 44, "y": 64, "flags": 4}, + {"matrix": [4, 7], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 148, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 164, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 180, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 207, "y": 64, "flags": 4}, + {"matrix": [4, 15], "x": 220, "y": 64, "flags": 4} + ], "sleep": true }, "rgblight": { diff --git a/keyboards/keycapsss/kimiko/kimiko.c b/keyboards/keycapsss/kimiko/kimiko.c deleted file mode 100644 index c99a966603..0000000000 --- a/keyboards/keycapsss/kimiko/kimiko.c +++ /dev/null @@ -1,83 +0,0 @@ -/* Copyright 2023 @BenRoe (keycapsss.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 "quantum.h" - -#ifdef KEYBOARD_keycapsss_kimiko_rev1 -#ifdef RGB_MATRIX_ENABLE - -//Thanks to Ben (keycapsss) for helpipng me to create g_led_config - -// Physical LED position -// X 0 16 32 48 64 80 96 112 128 144 160 176 208 224 -// -----------------------------------------------------------| Y -// 5 4 3 2 1 0 0 1 2 3 4 5 | 0 -// 6 7 8 9 10 11 11 10 9 8 7 6 | 16 -// 17 16 15 14 13 12 12 13 14 15 16 17 | 32 -// 18 19 20 21 22 23 24 24 23 22 21 20 19 18 | 48 -// 29 28 27 26 25 25 26 27 28 29 | 64 - -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 5, 4, 3, 2, 1, 0 }, - { 6, 7, 8, 9, 10, 11 }, - { 17, 16, 15, 14, 13, 12 }, - { 18, 19, 20, 21, 22, 23 }, - { 29, 28, 27, 26, 25, 24 }, - { 35, 34, 33, 32, 31, 30 }, - { 36, 37, 38, 39, 40, 41 }, - { 47, 46, 45, 44, 43, 42 }, - { 48, 49, 50, 51, 52, 53 }, - { 59, 58, 57, 56, 55, 54 } -}, { - // LED Index to Physical Position - // Left half - { 80, 0 }, { 64, 0 }, { 48, 0 }, { 32, 0 }, { 16, 0 }, { 0, 0 }, - { 0, 16 }, { 16, 16 }, { 32, 16 }, { 48, 16 }, { 64, 16 }, { 80, 16 }, - { 80, 32 }, { 64, 32 }, { 48, 32 }, { 32, 32 }, { 16, 32 }, { 0, 32 }, - { 0, 48 }, { 16, 48 }, { 32, 48 }, { 48, 48 }, { 64, 48 }, { 80, 48 }, - { 96, 48 }, { 96, 64 }, { 80, 64 }, { 64, 64 }, { 48, 64 }, { 32, 64 }, - // Right half - { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 208, 0 }, { 224, 0 }, - { 224, 16 }, { 208, 16 }, { 176, 16 }, { 160, 16 }, { 144, 16 }, { 128, 16 }, - { 128, 32 }, { 144, 32 }, { 160, 32 }, { 176, 32 }, { 208, 32 }, { 224, 32 }, - { 224, 48 }, { 208, 48 }, { 176, 48 }, { 160, 48 }, { 144, 48 }, { 128, 48 }, - { 112, 48 }, { 112, 64 }, { 128, 64 }, { 144, 64 }, { 160, 64 }, { 176, 64 } - -}, { - // LED Index to Flag - // 0x01 = 1 = modifier key - // 0x02 = 2 = underglow - // 0x04 = 4 = key backlight - // 0x08 = 8 = keyboard state indication - // Left half - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 1, - 4, 4, 4, 4, 4, 1, - 4, 4, 1, 1, 1, 1, - // Right half - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, - 4, 4, 1, 1, 1, 1 -} }; - -#endif // RGB_MATRIX_ENABLE -#endif // KEYBOARD_keycapsss_kimiko_rev1 - - diff --git a/keyboards/keycapsss/kimiko/rev1/keyboard.json b/keyboards/keycapsss/kimiko/rev1/keyboard.json index ae09eb83c8..bf9aa76ed7 100644 --- a/keyboards/keycapsss/kimiko/rev1/keyboard.json +++ b/keyboards/keycapsss/kimiko/rev1/keyboard.json @@ -40,6 +40,71 @@ "led_count": 60, "split_count": [30, 30] }, + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 1}, + {"matrix": [4, 5], "x": 96, "y": 48, "flags": 4}, + {"matrix": [4, 4], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 80, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 64, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 48, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 32, "y": 64, "flags": 1}, + {"matrix": [5, 5], "x": 128, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 144, "y": 0, "flags": 4}, + {"matrix": [5, 3], "x": 160, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 176, "y": 0, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 0, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 16, "flags": 4}, + {"matrix": [6, 2], "x": 176, "y": 16, "flags": 4}, + {"matrix": [6, 3], "x": 160, "y": 16, "flags": 4}, + {"matrix": [6, 4], "x": 144, "y": 16, "flags": 4}, + {"matrix": [6, 5], "x": 128, "y": 16, "flags": 4}, + {"matrix": [7, 5], "x": 128, "y": 32, "flags": 4}, + {"matrix": [7, 4], "x": 144, "y": 32, "flags": 4}, + {"matrix": [7, 3], "x": 160, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 176, "y": 32, "flags": 4}, + {"matrix": [7, 1], "x": 208, "y": 32, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 48, "flags": 1}, + {"matrix": [8, 1], "x": 208, "y": 48, "flags": 4}, + {"matrix": [8, 2], "x": 176, "y": 48, "flags": 4}, + {"matrix": [8, 3], "x": 160, "y": 48, "flags": 4}, + {"matrix": [8, 4], "x": 144, "y": 48, "flags": 4}, + {"matrix": [8, 5], "x": 128, "y": 48, "flags": 4}, + {"matrix": [9, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [9, 4], "x": 112, "y": 64, "flags": 4}, + {"matrix": [9, 3], "x": 128, "y": 64, "flags": 1}, + {"matrix": [9, 2], "x": 144, "y": 64, "flags": 1}, + {"matrix": [9, 1], "x": 160, "y": 64, "flags": 1}, + {"matrix": [9, 0], "x": 176, "y": 64, "flags": 1} + ] + }, "ws2812": { "pin": "D3" }, diff --git a/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c index a4432cd4ce..5359d2b30b 100644 --- a/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q10/ansi_encoder/ansi_encoder.c @@ -121,37 +121,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA2, CB4_CA2, CB5_CA2}, // Down {1, CB6_CA1, CB4_CA1, CB5_CA1}, // Right }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { __, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46 }, - { 47, 48, 49, 50, 51, 52, 53, __, 54, 55, 56, 57, 58, 59, 60, 61 }, - { 62, 63, __, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76 }, - { 77, 78, 79, 80, 81, __, __, 82, 83, 84, __, __, __, 85, 86, 87 }, - }, - { - // LED Index to Physical Position - {19,0}, {34,0}, {46,0}, {60,1}, {72,3}, {87,6}, {99,8}, {120,8}, {132,6}, {147,3}, {159,1}, {173,0}, {185,0}, {201,1}, {219,1}, - {5,14}, {24,14}, {36,14}, {48,13}, {62,15}, {74,17}, {86,20}, {98,22}, {115,22}, {127,20}, {139,17}, {151,15}, {165,13}, {177,14}, {195,14}, {220,13}, - {4,24}, {24,24}, {40,24}, {53,24}, {65,27}, {77,29}, {89,31}, {112,33}, {124,31}, {136,29}, {148,27}, {160,24}, {174,24}, {186,24}, {201,24}, {222,25}, - {2,34}, {23,34}, {40,34}, {54,35}, {66,37}, {78,39}, {90,42}, {118,43}, {130,40}, {142,38}, {154,36}, {167,35}, {179,35}, {199,35}, {224,36}, - {0,45}, {24,45}, {44,45}, {57,46}, {69,48}, {81,51}, {93,53}, {111,54}, {123,52}, {135,50}, {147,48}, {159,46}, {173,45}, {190,45}, {210,47}, - {0,55}, {18,55}, {33,55}, {56,57}, {77,61}, {97,64}, {124,63}, {147,59}, {198,58}, {210,58}, {222,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q10/ansi_encoder/keyboard.json b/keyboards/keychron/q10/ansi_encoder/keyboard.json index f47136edf7..6cfb637b0d 100644 --- a/keyboards/keychron/q10/ansi_encoder/keyboard.json +++ b/keyboards/keychron/q10/ansi_encoder/keyboard.json @@ -27,6 +27,98 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 1], "x": 19, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 46, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 60, "y": 1, "flags": 1}, + {"matrix": [0, 5], "x": 72, "y": 3, "flags": 1}, + {"matrix": [0, 6], "x": 87, "y": 6, "flags": 1}, + {"matrix": [0, 7], "x": 99, "y": 8, "flags": 1}, + {"matrix": [0, 8], "x": 120, "y": 8, "flags": 1}, + {"matrix": [0, 9], "x": 132, "y": 6, "flags": 1}, + {"matrix": [0, 10], "x": 147, "y": 3, "flags": 1}, + {"matrix": [0, 11], "x": 159, "y": 1, "flags": 1}, + {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 185, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 201, "y": 1, "flags": 1}, + {"matrix": [0, 15], "x": 219, "y": 1, "flags": 1}, + {"matrix": [1, 0], "x": 5, "y": 14, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 14, "flags": 1}, + {"matrix": [1, 2], "x": 36, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 62, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 74, "y": 17, "flags": 4}, + {"matrix": [1, 6], "x": 86, "y": 20, "flags": 4}, + {"matrix": [1, 7], "x": 98, "y": 22, "flags": 4}, + {"matrix": [1, 8], "x": 115, "y": 22, "flags": 4}, + {"matrix": [1, 9], "x": 127, "y": 20, "flags": 4}, + {"matrix": [1, 10], "x": 139, "y": 17, "flags": 4}, + {"matrix": [1, 11], "x": 151, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 165, "y": 13, "flags": 4}, + {"matrix": [1, 13], "x": 177, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 195, "y": 14, "flags": 1}, + {"matrix": [1, 15], "x": 220, "y": 13, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 24, "flags": 1}, + {"matrix": [2, 1], "x": 24, "y": 24, "flags": 1}, + {"matrix": [2, 2], "x": 40, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 53, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 77, "y": 29, "flags": 4}, + {"matrix": [2, 6], "x": 89, "y": 31, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 33, "flags": 4}, + {"matrix": [2, 8], "x": 124, "y": 31, "flags": 4}, + {"matrix": [2, 9], "x": 136, "y": 29, "flags": 4}, + {"matrix": [2, 10], "x": 148, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 160, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 174, "y": 24, "flags": 4}, + {"matrix": [2, 13], "x": 186, "y": 24, "flags": 4}, + {"matrix": [2, 14], "x": 201, "y": 24, "flags": 4}, + {"matrix": [2, 15], "x": 222, "y": 25, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 34, "flags": 1}, + {"matrix": [3, 1], "x": 23, "y": 34, "flags": 8}, + {"matrix": [3, 2], "x": 40, "y": 34, "flags": 4}, + {"matrix": [3, 3], "x": 54, "y": 35, "flags": 4}, + {"matrix": [3, 4], "x": 66, "y": 37, "flags": 4}, + {"matrix": [3, 5], "x": 78, "y": 39, "flags": 4}, + {"matrix": [3, 6], "x": 90, "y": 42, "flags": 4}, + {"matrix": [3, 8], "x": 118, "y": 43, "flags": 4}, + {"matrix": [3, 9], "x": 130, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 142, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 36, "flags": 4}, + {"matrix": [3, 12], "x": 167, "y": 35, "flags": 4}, + {"matrix": [3, 13], "x": 179, "y": 35, "flags": 4}, + {"matrix": [3, 14], "x": 199, "y": 35, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 36, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 45, "flags": 1}, + {"matrix": [4, 1], "x": 24, "y": 45, "flags": 1}, + {"matrix": [4, 3], "x": 44, "y": 45, "flags": 4}, + {"matrix": [4, 4], "x": 57, "y": 46, "flags": 4}, + {"matrix": [4, 5], "x": 69, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 93, "y": 53, "flags": 4}, + {"matrix": [4, 8], "x": 111, "y": 54, "flags": 4}, + {"matrix": [4, 9], "x": 123, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 135, "y": 50, "flags": 4}, + {"matrix": [4, 11], "x": 147, "y": 48, "flags": 4}, + {"matrix": [4, 12], "x": 159, "y": 46, "flags": 4}, + {"matrix": [4, 13], "x": 173, "y": 45, "flags": 4}, + {"matrix": [4, 14], "x": 190, "y": 45, "flags": 1}, + {"matrix": [4, 15], "x": 210, "y": 47, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 55, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 55, "flags": 1}, + {"matrix": [5, 2], "x": 33, "y": 55, "flags": 1}, + {"matrix": [5, 3], "x": 56, "y": 57, "flags": 1}, + {"matrix": [5, 4], "x": 77, "y": 61, "flags": 4}, + {"matrix": [5, 7], "x": 97, "y": 64, "flags": 1}, + {"matrix": [5, 8], "x": 124, "y": 63, "flags": 4}, + {"matrix": [5, 9], "x": 147, "y": 59, "flags": 1}, + {"matrix": [5, 13], "x": 198, "y": 58, "flags": 1}, + {"matrix": [5, 14], "x": 210, "y": 58, "flags": 1}, + {"matrix": [5, 15], "x": 222, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_89": { "layout": [ diff --git a/keyboards/keychron/q10/iso_encoder/iso_encoder.c b/keyboards/keychron/q10/iso_encoder/iso_encoder.c index 9ff43263b2..c857c854ac 100644 --- a/keyboards/keychron/q10/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q10/iso_encoder/iso_encoder.c @@ -122,37 +122,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB6_CA2, CB4_CA2, CB5_CA2}, // Down {1, CB6_CA1, CB4_CA1, CB5_CA1}, // Right }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { __, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 59, 45 }, - { 46, 47, 48, 49, 50, 51, 52, __, 53, 54, 55, 56, 57, 58, 60, 61 }, - { 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77 }, - { 78, 79, 80, 81, 82, __, __, 83, 84, 85, __, __, __, 86, 87, 88 }, - }, - { - // LED Index to Physical Position - {0,0}, {19,0}, {34,0}, {60,1}, {72,3}, {87,6}, {99,8}, {120,8}, {132,6}, {147,3}, {159,1}, {173,0}, {185,0}, {201,1}, {219,1}, - {5,14}, {24,14}, {36,14}, {48,13}, {62,15}, {74,17}, {86,20}, {98,22}, {115,22}, {127,20}, {139,17}, {151,15}, {165,13}, {177,14}, {195,14}, {220,15}, - {4,24}, {24,24}, {40,24}, {53,24}, {65,27}, {77,29}, {89,31}, {112,33}, {124,31}, {136,29}, {148,27}, {160,24}, {176,24}, {189,24}, {222,25}, - {2,34}, {23,34}, {40,34}, {54,35}, {66,37}, {78,39}, {90,42}, {118,43}, {130,40}, {142,38}, {154,36}, {167,35}, {179,35}, {192,35}, {208,31}, {224,36}, - {0,45}, {18,45}, {31,45}, {44,45}, {57,46}, {69,48}, {81,51}, {93,53}, {111,54}, {123,52}, {135,50}, {147,48}, {159,46}, {173,45}, {190,45}, {210,47}, - {0,55}, {18,55}, {33,55}, {56,57}, {77,61}, {97,64}, {124,63}, {147,59}, {198,58}, {210,58}, {222,58}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1, - } -}; - #endif // RGB_MATRIX_ENABLE diff --git a/keyboards/keychron/q10/iso_encoder/keyboard.json b/keyboards/keychron/q10/iso_encoder/keyboard.json index 5ec70d1a14..b83015971f 100644 --- a/keyboards/keychron/q10/iso_encoder/keyboard.json +++ b/keyboards/keychron/q10/iso_encoder/keyboard.json @@ -27,6 +27,99 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 1], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 19, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 60, "y": 1, "flags": 1}, + {"matrix": [0, 5], "x": 72, "y": 3, "flags": 1}, + {"matrix": [0, 6], "x": 87, "y": 6, "flags": 1}, + {"matrix": [0, 7], "x": 99, "y": 8, "flags": 1}, + {"matrix": [0, 8], "x": 120, "y": 8, "flags": 1}, + {"matrix": [0, 9], "x": 132, "y": 6, "flags": 1}, + {"matrix": [0, 10], "x": 147, "y": 3, "flags": 1}, + {"matrix": [0, 11], "x": 159, "y": 1, "flags": 1}, + {"matrix": [0, 12], "x": 173, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 185, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 201, "y": 1, "flags": 1}, + {"matrix": [0, 15], "x": 219, "y": 1, "flags": 1}, + {"matrix": [1, 0], "x": 5, "y": 14, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 14, "flags": 1}, + {"matrix": [1, 2], "x": 36, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 62, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 74, "y": 17, "flags": 4}, + {"matrix": [1, 6], "x": 86, "y": 20, "flags": 4}, + {"matrix": [1, 7], "x": 98, "y": 22, "flags": 4}, + {"matrix": [1, 8], "x": 115, "y": 22, "flags": 4}, + {"matrix": [1, 9], "x": 127, "y": 20, "flags": 4}, + {"matrix": [1, 10], "x": 139, "y": 17, "flags": 4}, + {"matrix": [1, 11], "x": 151, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 165, "y": 13, "flags": 4}, + {"matrix": [1, 13], "x": 177, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 195, "y": 14, "flags": 1}, + {"matrix": [1, 15], "x": 220, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 24, "flags": 1}, + {"matrix": [2, 1], "x": 24, "y": 24, "flags": 1}, + {"matrix": [2, 2], "x": 40, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 53, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 77, "y": 29, "flags": 4}, + {"matrix": [2, 6], "x": 89, "y": 31, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 33, "flags": 4}, + {"matrix": [2, 8], "x": 124, "y": 31, "flags": 4}, + {"matrix": [2, 9], "x": 136, "y": 29, "flags": 4}, + {"matrix": [2, 10], "x": 148, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 160, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 24, "flags": 4}, + {"matrix": [2, 13], "x": 189, "y": 24, "flags": 4}, + {"matrix": [2, 15], "x": 222, "y": 25, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 34, "flags": 1}, + {"matrix": [3, 1], "x": 23, "y": 34, "flags": 8}, + {"matrix": [3, 2], "x": 40, "y": 34, "flags": 4}, + {"matrix": [3, 3], "x": 54, "y": 35, "flags": 4}, + {"matrix": [3, 4], "x": 66, "y": 37, "flags": 4}, + {"matrix": [3, 5], "x": 78, "y": 39, "flags": 4}, + {"matrix": [3, 6], "x": 90, "y": 42, "flags": 4}, + {"matrix": [3, 8], "x": 118, "y": 43, "flags": 4}, + {"matrix": [3, 9], "x": 130, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 142, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 36, "flags": 4}, + {"matrix": [3, 12], "x": 167, "y": 35, "flags": 4}, + {"matrix": [3, 13], "x": 179, "y": 35, "flags": 4}, + {"matrix": [2, 14], "x": 192, "y": 35, "flags": 4}, + {"matrix": [3, 14], "x": 208, "y": 31, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 36, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 45, "flags": 1}, + {"matrix": [4, 1], "x": 18, "y": 45, "flags": 1}, + {"matrix": [4, 2], "x": 31, "y": 45, "flags": 4}, + {"matrix": [4, 3], "x": 44, "y": 45, "flags": 4}, + {"matrix": [4, 4], "x": 57, "y": 46, "flags": 4}, + {"matrix": [4, 5], "x": 69, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 93, "y": 53, "flags": 4}, + {"matrix": [4, 8], "x": 111, "y": 54, "flags": 4}, + {"matrix": [4, 9], "x": 123, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 135, "y": 50, "flags": 4}, + {"matrix": [4, 11], "x": 147, "y": 48, "flags": 4}, + {"matrix": [4, 12], "x": 159, "y": 46, "flags": 4}, + {"matrix": [4, 13], "x": 173, "y": 45, "flags": 4}, + {"matrix": [4, 14], "x": 190, "y": 45, "flags": 1}, + {"matrix": [4, 15], "x": 210, "y": 47, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 55, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 55, "flags": 1}, + {"matrix": [5, 2], "x": 33, "y": 55, "flags": 1}, + {"matrix": [5, 3], "x": 56, "y": 57, "flags": 1}, + {"matrix": [5, 4], "x": 77, "y": 61, "flags": 4}, + {"matrix": [5, 7], "x": 97, "y": 64, "flags": 1}, + {"matrix": [5, 8], "x": 124, "y": 63, "flags": 4}, + {"matrix": [5, 9], "x": 147, "y": 59, "flags": 1}, + {"matrix": [5, 13], "x": 198, "y": 58, "flags": 1}, + {"matrix": [5, 14], "x": 210, "y": 58, "flags": 1}, + {"matrix": [5, 15], "x": 222, "y": 58, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_90": { "layout": [ diff --git a/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c index ba32f58fc6..35e8414be6 100644 --- a/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q12/ansi_encoder/ansi_encoder.c @@ -135,36 +135,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA6, CB10_CA6, CB11_CA6}, // Down {1, CB12_CA7, CB10_CA7, CB11_CA7}, // Right }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, __, 0, 1 }, - { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 18, 19, 20 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 37, 38, 39 }, - { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 76, 71, 72, 56, 57, 58 }, - { 77, __, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, __, 88, 89, 73, 74, 75 }, - { 92, 93, 94, __, __, 21, 95, 40, __, 96, 97, 98, 99, 100, 101, 90, 2, 91 }, - }, - { - // LED Index to Physical Position - {11,0}, {23,0}, {34,0}, {49,0}, {63,0}, {75,0}, {86,0}, {98,0}, {112,0}, {123,0}, {135,0}, {146,0}, {161,0}, {172,0}, {184,0}, {195,0}, {209,0}, {224,0}, - {0,15}, {11,15}, {23,15}, {34,15}, {49,15}, {60,15}, {72,15}, {83,15}, {95,15}, {106,15}, {118,15}, {129,15}, {141,15}, {152,15}, {164,15}, {175,15}, {186,15}, {204,15}, {224,15}, - {0,26}, {11,26}, {23,26}, {34,32}, {52,26}, {66,26}, {78,26}, {89,26}, {101,26}, {112,26}, {123,26}, {135,26}, {146,26}, {158,26}, {169,26}, {181,26}, {192,26}, {207,26}, {224,26}, - {0,38}, {11,38}, {23,38}, {53,38}, {69,38}, {81,38}, {92,38}, {103,38}, {115,38}, {126,38}, {138,38}, {149,38}, {161,38}, {172,38}, {184,38}, {202,38}, {224,38}, - {0,49}, {11,49}, {23,49}, {34,55}, {56,49}, {75,49}, {86,49}, {98,49}, {109,49}, {121,49}, {132,49}, {144,49}, {155,49}, {166,49}, {178,49}, {194,49}, {213,52}, - {6,61}, {23,61}, {50,61}, {65,61}, {79,61}, {122,61}, {163,61}, {175,61}, {186,61}, {201,64}, {213,64}, {224,64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 4, 4, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1, - } -}; #endif diff --git a/keyboards/keychron/q12/ansi_encoder/keyboard.json b/keyboards/keychron/q12/ansi_encoder/keyboard.json index d2f90cb8ac..faf8b5527e 100644 --- a/keyboards/keychron/q12/ansi_encoder/keyboard.json +++ b/keyboards/keychron/q12/ansi_encoder/keyboard.json @@ -24,6 +24,112 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 16], "x": 11, "y": 0, "flags": 1}, + {"matrix": [0, 17], "x": 23, "y": 0, "flags": 1}, + {"matrix": [5, 16], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 49, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 63, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 75, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 86, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 98, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 123, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 135, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 146, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 161, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 172, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 184, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 195, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 209, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 15], "x": 0, "y": 15, "flags": 8}, + {"matrix": [1, 16], "x": 11, "y": 15, "flags": 4}, + {"matrix": [1, 17], "x": 23, "y": 15, "flags": 4}, + {"matrix": [5, 5], "x": 34, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 49, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 60, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 72, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 95, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 106, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 118, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 129, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 141, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 164, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 175, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 186, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 204, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 15], "x": 0, "y": 26, "flags": 4}, + {"matrix": [2, 16], "x": 11, "y": 26, "flags": 4}, + {"matrix": [2, 17], "x": 23, "y": 26, "flags": 4}, + {"matrix": [5, 7], "x": 34, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 52, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 78, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 89, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 101, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 112, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 123, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 135, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 146, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 158, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 181, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 207, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 26, "flags": 1}, + {"matrix": [3, 15], "x": 0, "y": 38, "flags": 4}, + {"matrix": [3, 16], "x": 11, "y": 38, "flags": 4}, + {"matrix": [3, 17], "x": 23, "y": 38, "flags": 4}, + {"matrix": [3, 0], "x": 53, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 69, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 81, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 92, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 103, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 115, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 126, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 138, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 149, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 161, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 172, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 184, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 202, "y": 38, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 38, "flags": 1}, + {"matrix": [4, 15], "x": 0, "y": 49, "flags": 4}, + {"matrix": [4, 16], "x": 11, "y": 49, "flags": 4}, + {"matrix": [4, 17], "x": 23, "y": 49, "flags": 4}, + {"matrix": [3, 12], "x": 34, "y": 55, "flags": 4}, + {"matrix": [4, 0], "x": 56, "y": 49, "flags": 1}, + {"matrix": [4, 2], "x": 75, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 86, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 98, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 109, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 121, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 132, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 144, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 155, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 166, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 178, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 194, "y": 49, "flags": 1}, + {"matrix": [4, 14], "x": 213, "y": 52, "flags": 1}, + {"matrix": [5, 15], "x": 6, "y": 61, "flags": 4}, + {"matrix": [5, 17], "x": 23, "y": 61, "flags": 4}, + {"matrix": [5, 0], "x": 50, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 65, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 79, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 122, "y": 61, "flags": 4}, + {"matrix": [5, 9], "x": 163, "y": 61, "flags": 1}, + {"matrix": [5, 10], "x": 175, "y": 61, "flags": 4}, + {"matrix": [5, 11], "x": 186, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 201, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 213, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 224, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_ansi_103": { "layout": [ diff --git a/keyboards/keychron/q12/iso_encoder/iso_encoder.c b/keyboards/keychron/q12/iso_encoder/iso_encoder.c index f9513e7f41..058a5d2ff4 100644 --- a/keyboards/keychron/q12/iso_encoder/iso_encoder.c +++ b/keyboards/keychron/q12/iso_encoder/iso_encoder.c @@ -138,36 +138,4 @@ const snled27351_led_t PROGMEM g_snled27351_leds[SNLED27351_LED_COUNT] = { {1, CB12_CA6, CB10_CA6, CB11_CA6}, // Down {1, CB12_CA7, CB10_CA7, CB11_CA7}, // Right }; - -#define __ NO_LED - -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, __, 0, 1 }, - { 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 18, 19, 20 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 71, 54, 37, 38, 39 }, - { 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 76, 70, 72, 55, 56, 57 }, - { 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, __, 89, 90, 73, 74, 75 }, - { 93, 94, 95, __, __, 21, 96, 40, __, 97, 98, 99, 100, 101, 102, 91, 2, 92 }, - }, - { - // LED Index to Physical Position - {11,0}, {23,0}, {34,0}, {49,0}, {63,0}, {75,0}, {86,0}, {98,0}, {112,0}, {123,0}, {135,0}, {146,0}, {160,0}, {172,0}, {183,0}, {194,0}, {209,0}, {224,0}, - {0,15}, {11,15}, {23,15}, {34,15}, {49,15}, {60,15}, {72,15}, {83,15}, {95,15}, {106,15}, {117,15}, {129,15}, {140,15}, {152,15}, {163,15}, {175,15}, {186,15}, {204,15}, {224,15}, - {0,26}, {11,26}, {23,26}, {34,32}, {52,26}, {66,26}, {77,26}, {89,26}, {100,26}, {112,26}, {123,26}, {135,26}, {146,26}, {158,26}, {169,26}, {180,26}, {192,26}, {224,26}, - {0,38}, {11,38}, {23,38}, {53,38}, {69,38}, {80,38}, {92,38}, {103,38}, {115,38}, {126,38}, {137,38}, {149,38}, {160,38}, {172,38}, {183,38}, {195,38}, {210,34}, {224,38}, - {0,49}, {11,49}, {23,49}, {34,55}, {50,49}, {63,49}, {75,49}, {86,49}, {97,49}, {109,49}, {120,49}, {132,49}, {143,49}, {155,49}, {166,49}, {177,49}, {193,49}, {212,52}, - {6,61}, {23,61}, {50,61}, {65,61}, {79,61}, {122,61}, {163,61}, {174,61}, {186,61}, {201,64}, {212,64}, {223,64}, - }, - { - // RGB LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 4, 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 1, 1, 1, 4, 1, 4, 1, 1, 1, 1, - } -}; #endif diff --git a/keyboards/keychron/q12/iso_encoder/keyboard.json b/keyboards/keychron/q12/iso_encoder/keyboard.json index 29e24a1491..d5105ac2b3 100644 --- a/keyboards/keychron/q12/iso_encoder/keyboard.json +++ b/keyboards/keychron/q12/iso_encoder/keyboard.json @@ -24,6 +24,113 @@ "encoder": true, "dip_switch": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 16], "x": 11, "y": 0, "flags": 1}, + {"matrix": [0, 17], "x": 23, "y": 0, "flags": 1}, + {"matrix": [5, 16], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 49, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 63, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 75, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 86, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 98, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 123, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 135, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 146, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 160, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 172, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 183, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 194, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 209, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 15], "x": 0, "y": 15, "flags": 8}, + {"matrix": [1, 16], "x": 11, "y": 15, "flags": 4}, + {"matrix": [1, 17], "x": 23, "y": 15, "flags": 4}, + {"matrix": [5, 5], "x": 34, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 49, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 60, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 72, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 95, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 106, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 129, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 140, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 163, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 175, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 186, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 204, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 1}, + {"matrix": [2, 15], "x": 0, "y": 26, "flags": 4}, + {"matrix": [2, 16], "x": 11, "y": 26, "flags": 4}, + {"matrix": [2, 17], "x": 23, "y": 26, "flags": 4}, + {"matrix": [5, 7], "x": 34, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 52, "y": 26, "flags": 1}, + {"matrix": [2, 1], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 77, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 89, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 100, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 112, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 123, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 135, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 146, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 158, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 180, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 26, "flags": 1}, + {"matrix": [3, 15], "x": 0, "y": 38, "flags": 4}, + {"matrix": [3, 16], "x": 11, "y": 38, "flags": 4}, + {"matrix": [3, 17], "x": 23, "y": 38, "flags": 4}, + {"matrix": [3, 0], "x": 53, "y": 38, "flags": 8}, + {"matrix": [3, 1], "x": 69, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 80, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 92, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 103, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 115, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 126, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 137, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 149, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 160, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 172, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 183, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 195, "y": 38, "flags": 4}, + {"matrix": [2, 13], "x": 210, "y": 34, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 38, "flags": 1}, + {"matrix": [4, 15], "x": 0, "y": 49, "flags": 4}, + {"matrix": [4, 16], "x": 11, "y": 49, "flags": 4}, + {"matrix": [4, 17], "x": 23, "y": 49, "flags": 4}, + {"matrix": [3, 12], "x": 34, "y": 55, "flags": 4}, + {"matrix": [4, 0], "x": 50, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 63, "y": 49, "flags": 4}, + {"matrix": [4, 2], "x": 75, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 86, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 97, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 109, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 120, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 132, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 143, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 155, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 166, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 177, "y": 49, "flags": 4}, + {"matrix": [4, 13], "x": 193, "y": 49, "flags": 4}, + {"matrix": [4, 14], "x": 212, "y": 52, "flags": 1}, + {"matrix": [5, 15], "x": 6, "y": 61, "flags": 4}, + {"matrix": [5, 17], "x": 23, "y": 61, "flags": 4}, + {"matrix": [5, 0], "x": 50, "y": 61, "flags": 1}, + {"matrix": [5, 1], "x": 65, "y": 61, "flags": 1}, + {"matrix": [5, 2], "x": 79, "y": 61, "flags": 1}, + {"matrix": [5, 6], "x": 122, "y": 61, "flags": 4}, + {"matrix": [5, 9], "x": 163, "y": 61, "flags": 1}, + {"matrix": [5, 10], "x": 174, "y": 61, "flags": 4}, + {"matrix": [5, 11], "x": 186, "y": 61, "flags": 1}, + {"matrix": [5, 12], "x": 201, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 212, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 223, "y": 64, "flags": 1} + ] + }, "layouts": { "LAYOUT_iso_104": { "layout": [ From c1b428bb4e4d2ecf4b904c8e4886d8e8e37602c7 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 03:03:52 -0600 Subject: [PATCH 032/255] Migrate `g_led_config` to DD (JK1) (#25601) --- keyboards/joshajohnson/hub20/hub20.c | 171 ------------------ keyboards/joshajohnson/hub20/keyboard.json | 31 +++- keyboards/junco/rev1/keyboard.json | 76 ++++++++ keyboards/junco/rev1/rev1.c | 103 ----------- keyboards/kapl/rev1/keyboard.json | 90 +++++++++ keyboards/kapl/rev1/rev1.c | 55 ------ .../kbdfans/baguette66/rgb/keyboard.json | 68 +++++++ keyboards/kbdfans/baguette66/rgb/rgb.c | 20 -- keyboards/kbdfans/bella/rgb/keyboard.json | 96 ++++++++++ keyboards/kbdfans/bella/rgb/rgb.c | 30 --- keyboards/kbdfans/bella/rgb_iso/keyboard.json | 97 ++++++++++ keyboards/kbdfans/bella/rgb_iso/rgb_iso.c | 30 --- keyboards/kbdfans/boop65/rgb/keyboard.json | 85 +++++++++ keyboards/kbdfans/boop65/rgb/rgb.c | 23 --- .../kbdfans/kbd67/mkiirgb/v1/keyboard.json | 69 +++++++ keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c | 4 - .../kbdfans/kbd67/mkiirgb/v2/keyboard.json | 69 +++++++ keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c | 21 --- .../kbdfans/kbd67/mkiirgb/v3/keyboard.json | 69 +++++++ keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c | 26 --- .../kbdfans/kbd67/mkiirgb/v4/keyboard.json | 69 +++++++ keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c | 22 --- .../kbdfans/kbd67/mkiirgb_iso/keyboard.json | 70 +++++++ .../kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c | 22 --- keyboards/kbdfans/kbd75rgb/kbd75rgb.c | 23 --- keyboards/kbdfans/kbd75rgb/keyboard.json | 86 +++++++++ keyboards/kbdfans/kbdmini/kbdmini.c | 19 -- keyboards/kbdfans/kbdmini/keyboard.json | 54 ++++++ keyboards/kbdfans/maja/keyboard.json | 69 +++++++ keyboards/kbdfans/maja/maja.c | 20 -- keyboards/kbdfans/odin/rgb/keyboard.json | 106 +++++++++++ keyboards/kbdfans/odin/rgb/rgb.c | 25 --- 32 files changed, 1203 insertions(+), 615 deletions(-) delete mode 100644 keyboards/joshajohnson/hub20/hub20.c delete mode 100644 keyboards/kapl/rev1/rev1.c diff --git a/keyboards/joshajohnson/hub20/hub20.c b/keyboards/joshajohnson/hub20/hub20.c deleted file mode 100644 index 8b1c58e1f7..0000000000 --- a/keyboards/joshajohnson/hub20/hub20.c +++ /dev/null @@ -1,171 +0,0 @@ -/* Copyright 2020 joshajohnson 2021 peepeetee - * - * 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 "quantum.h" - - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - {NO_LED,NO_LED,NO_LED,NO_LED}, - { 7, 8, 9, 10}, - { 11, 12, 13, 14}, - { 15, 16, 17, 18}, - { 19, 20, 21, 22}, - { 23, 24, 25, 26} - //todo: assign leds to keys differently for the different layouts -}, { - // LED Index to Physical Position - { 190, 50}, { 111, 50}, { 35, 50}, {38, 0}, {38, 35}, {186, 35}, {186, 0}, // UNDERGLOW - //todo: underglow location needs to be recalculated. The top row is above row 4, and for now they have the same y value 0 - { 0, 0}, {75, 0}, {150, 0}, {225, 0}, // row 4 - { 0, 16}, {75, 16}, {150, 16}, {225, 16}, // row 3 - { 0, 32}, {75, 32}, {150, 32}, {225, 32}, // row 2 - { 0, 48}, {75, 48}, {150, 48}, {225, 48}, // row 1 - { 0, 64}, {75, 64}, {150, 64}, {225, 64} // row 0 - -}, { - // LED Index to Flag - LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, LED_FLAG_UNDERGLOW, // UNDERGLOW - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // row 4 - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // row 3 - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // row 2 - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, // row 1 - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT // row 0 - -} }; -#endif - - - -// #if LED_MERGE_NUMPAD_LEFT_HANDED_ENTER && LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO -// #error lower left enter conflicts with lower left zero -// #endif - -// #if LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER && LED_MERGE_NUMPAD_LEFT_HANDED_ZERO -// #error lower right enter conflicts with lower right zero -// #endif - -// /* LAYOUT_left_handed - - -// * ┌───┬───┐ -// * │01 │02 │ -// * ┌───┼───┼───┼───┐ -// * │10 │11 │12 │13 │ -// * ├───┼───┼───┼───┤ -// * │ │21 │22 │23 │ -// * │20 ├───┼───┼───┤ -// * │ │31 │32 │33 │ -// * ├───┼───┼───┼───┤ -// * │ │41 │42 │43 │ -// * │40 ├───┼───┴───┤ -// * │ │51 │ 52 │ -// * └───┴───┴───────┘ -// */ - -// #ifndef LED_MERGE_NUMPAD_LEFT_HANDED_PLUS //key 20 -// #define LED_MERGE_NUMPAD_LEFT_HANDED_PLUS FALSE -// #endif // LED_MERGE_NUMPAD_LEFT_HANDED_PLUS - -// #ifndef LED_MERGE_NUMPAD_LEFT_HANDED_ENTER //key 40 -// #define LED_MERGE_NUMPAD_LEFT_HANDED_ENTER FALSE -// #endif // LED_MERGE_NUMPAD_LEFT_HANDED_ENTER - -// #ifndef LED_MERGE_NUMPAD_LEFT_HANDED_ZERO //key 52 -// #define LED_MERGE_NUMPAD_LEFT_HANDED_ZERO FALSE -// #endif // LED_MERGE_NUMPAD_LEFT_HANDED_ZERO - - -// /* LAYOUT_right_handed - - -// * ┌───┬───┐ -// * │01 │02 │ -// * ┌───┼───┼───┼───┐ -// * │10 │11 │12 │13 │ -// * ├───┼───┼───┼───┤ -// * │20 │21 │22 │ │ -// * ├───┼───┼───┤23 │ -// * │30 │31 │32 │ │ -// * ├───┼───┼───┼───┤ -// * │40 │41 │42 │ │ -// * ├───┴───┼───┤43 │ -// * │ 50 │52 │ │ -// * └───────┴───┴───┘ -// */ -// //LOCATION OF bottom row 0 NOT TESTED, WAITING ENDORSEMENT FROM MANUFACTURER - -// #ifndef LED_MERGE_NUMPAD_RIGHT_HANDED_PLUS // key 23 -// #define LED_MERGE_NUMPAD_RIGHT_HANDED_PLUS FALSE -// #endif // LED_MERGE_NUMPAD_RIGHT_HANDED_PLUS - -// #ifndef LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER // key 43 -// #define LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER FALSE -// #endif // LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER - -// #ifndef LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO // key 50 (confirm with manufacturer) -// #define LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO FALSE -// #endif // LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO - -// uint8_t rgb_matrix_map_row_column_to_led_kb(uint8_t row, uint8_t column, uint8_t *led_i) { -// // Keys here have 2 leds. Here we add the led that is not bound to the key -// // and the default led would be added -// // by the default code that runs after this in rgb_matrix_map_row_column_to_led - -// uint8_t counter = 0; - -// #if LED_MERGE_NUMPAD_LEFT_HANDED_PLUS //key 20, leds 7 and 11, 7 already bound - -// if (row == 2 && column == 0) { -// led_i[counter] = 11; -// counter ++; -// } -// #endif -// #if LED_MERGE_NUMPAD_LEFT_HANDED_ENTER //key 40, leds 19 and 23, 23 already bound -// if (row == 4 && column == 0) { -// led_i[counter] = 23; -// counter ++; -// } -// #endif -// #if LED_MERGE_NUMPAD_LEFT_HANDED_ZERO //key 52, leds 25 and 26, 26 already bound -// if (row == 5 && column == 2) { -// led_i[counter] = 26; -// counter ++; -// } -// #endif - -// #if LED_MERGE_NUMPAD_RIGHT_HANDED_PLUS // key 23, led 14 and 18, 14 already bound -// if (row == 2 && column == 3) { -// led_i[counter] = 18; -// counter ++; -// } -// #endif -// #if LED_MERGE_NUMPAD_RIGHT_HANDED_ENTER // key 43, led 22 and 26, 22 already bound -// if (row == 4 && column == 3) { -// led_i[counter] = 26; -// counter ++; -// } -// #endif -// #if LED_MERGE_NUMPAD_RIGHT_HANDED_ZERO // key 50 (confirm with manufacturer) -// // LED 23 and 24, 23(?) already bound -// if (row == 5 && column == 0) { -// led_i[counter] = 24; -// counter ++; -// } -// #endif -// return counter; -// } diff --git a/keyboards/joshajohnson/hub20/keyboard.json b/keyboards/joshajohnson/hub20/keyboard.json index 0d557c58b5..c26a25de3c 100644 --- a/keyboards/joshajohnson/hub20/keyboard.json +++ b/keyboards/joshajohnson/hub20/keyboard.json @@ -28,7 +28,36 @@ "solid_reactive_simple": true, "solid_reactive": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"x": 190, "y": 50, "flags": 2}, + {"x": 111, "y": 50, "flags": 2}, + {"x": 35, "y": 50, "flags": 2}, + {"x": 38, "y": 0, "flags": 2}, + {"x": 38, "y": 35, "flags": 2}, + {"x": 186, "y": 35, "flags": 2}, + {"x": 186, "y": 0, "flags": 2}, + {"matrix": [1, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 75, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 150, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 224, "y": 0, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 75, "y": 16, "flags": 4}, + {"matrix": [2, 2], "x": 150, "y": 16, "flags": 4}, + {"matrix": [2, 3], "x": 224, "y": 16, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [3, 1], "x": 75, "y": 32, "flags": 4}, + {"matrix": [3, 2], "x": 150, "y": 32, "flags": 4}, + {"matrix": [3, 3], "x": 224, "y": 32, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [4, 1], "x": 75, "y": 48, "flags": 4}, + {"matrix": [4, 2], "x": 150, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 224, "y": 48, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 75, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 150, "y": 64, "flags": 4}, + {"matrix": [5, 3], "x": 224, "y": 64, "flags": 4} + ] }, "features": { "bootmagic": true, diff --git a/keyboards/junco/rev1/keyboard.json b/keyboards/junco/rev1/keyboard.json index 936a0bf29c..1ec680aa3a 100644 --- a/keyboards/junco/rev1/keyboard.json +++ b/keyboards/junco/rev1/keyboard.json @@ -22,6 +22,82 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"x": 95, "y": 64, "flags": 2}, + {"x": 52, "y": 64, "flags": 2}, + {"x": 86, "y": 40, "flags": 2}, + {"x": 52, "y": 40, "flags": 2}, + {"x": 9, "y": 40, "flags": 2}, + {"x": 9, "y": 8, "flags": 2}, + {"x": 52, "y": 8, "flags": 2}, + {"x": 86, "y": 8, "flags": 2}, + {"matrix": [0, 5], "x": 86, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 69, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 17, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 69, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 86, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 69, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 34, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 17, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 17, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 86, "y": 48, "flags": 4}, + {"matrix": [4, 4], "x": 103, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 86, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 69, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 52, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 34, "y": 64, "flags": 4}, + {"x": 129, "y": 64, "flags": 2}, + {"x": 172, "y": 64, "flags": 2}, + {"x": 138, "y": 40, "flags": 2}, + {"x": 172, "y": 40, "flags": 2}, + {"x": 215, "y": 40, "flags": 2}, + {"x": 215, "y": 8, "flags": 2}, + {"x": 172, "y": 8, "flags": 2}, + {"x": 138, "y": 8, "flags": 2}, + {"matrix": [5, 5], "x": 138, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 155, "y": 0, "flags": 4}, + {"matrix": [5, 3], "x": 172, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 190, "y": 0, "flags": 4}, + {"matrix": [5, 1], "x": 207, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 0, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 207, "y": 16, "flags": 4}, + {"matrix": [6, 2], "x": 190, "y": 16, "flags": 4}, + {"matrix": [6, 3], "x": 172, "y": 16, "flags": 4}, + {"matrix": [6, 4], "x": 155, "y": 16, "flags": 4}, + {"matrix": [6, 5], "x": 138, "y": 16, "flags": 4}, + {"matrix": [7, 5], "x": 138, "y": 32, "flags": 4}, + {"matrix": [7, 4], "x": 155, "y": 32, "flags": 4}, + {"matrix": [7, 3], "x": 172, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 190, "y": 32, "flags": 4}, + {"matrix": [7, 1], "x": 207, "y": 32, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 48, "flags": 4}, + {"matrix": [8, 1], "x": 207, "y": 48, "flags": 4}, + {"matrix": [8, 2], "x": 190, "y": 48, "flags": 4}, + {"matrix": [8, 3], "x": 172, "y": 48, "flags": 4}, + {"matrix": [8, 4], "x": 155, "y": 48, "flags": 4}, + {"matrix": [8, 5], "x": 138, "y": 48, "flags": 4}, + {"matrix": [9, 4], "x": 121, "y": 64, "flags": 4}, + {"matrix": [9, 3], "x": 138, "y": 64, "flags": 4}, + {"matrix": [9, 2], "x": 155, "y": 64, "flags": 4}, + {"matrix": [9, 1], "x": 172, "y": 64, "flags": 4}, + {"matrix": [9, 0], "x": 190, "y": 64, "flags": 4} + ], "split_count": [37, 37] }, "encoder": { diff --git a/keyboards/junco/rev1/rev1.c b/keyboards/junco/rev1/rev1.c index d1346b82e2..0167a095ad 100644 --- a/keyboards/junco/rev1/rev1.c +++ b/keyboards/junco/rev1/rev1.c @@ -21,106 +21,3 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}, {6, 4}} }; #endif - -/* RGB LED matrix */ -#ifdef RGB_MATRIX_ENABLE -/* - Key Matrix Physical - L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, - L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, - L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, - L30, L31, L32, L33, L34, L35, L45, R40, R30, R31, R32, R33, R34, R35, - L40, L41, L42, L43, L44, R42, R41, R43, R44, R45 - - Key Electrical - Left: - { L00, L01, L02, L03, L04, L05 }, - { L10, L11, L12, L13, L14, L15 }, - { L20, L21, L22, L23, L24, L25 }, - { L30, L31, L32, L33, L34, L35 }, - { L40, L41, L42, L43, L44, L45 }, - Right: - { R05, R04, R03, R02, R01, R00 }, - { R15, R14, R13, R12, R11, R10 }, - { R25, R24, R23, R22, R21, R20 }, - { R35, R34, R33, R32, R31, R30 }, - { R45, R44, R43, R42, R41, R40 } - - Key matrix physical filled with LED electrical indexes, count starting at 1 - - Col - 0 1 2 3 4 5 6 7 8 9 10 11 12 13 Row - - 14 13 12 11 10 9 46 47 48 49 50 51 0 - 6 7 8 45 44 43 - 15 16 17 18 19 20 57 56 55 54 53 52 1 - - 26 25 24 23 22 21 58 59 60 61 62 63 2 - 5 4 3 40 41 42 - 27 28 29 30 31 32 NO NO 69 68 67 66 65 64 3 - - 37 36 35 34 33 70 71 72 73 74 4 - 2 1 38 39 -*/ - -// clang-format off -led_config_t g_led_config = { - { // Key Electrical Matrix to LED Index (count start at 0, so 8 is the first non-underglow key) - - // Left Half - { 13, 12, 11, 10, 9, 8 }, - { 14, 15, 16, 17, 18, 19 }, - { 25, 24, 23, 22, 21, 20 }, - { 26, 27, 28, 29, 30, 31 }, - { 36, 35, 34, 33, 32, NO_LED }, - - // Right Half - { 50, 49, 48, 47, 46, 45 }, - { 51, 52, 53, 54, 55, 56 }, - { 62, 61, 60, 59, 58, 57 }, - { 63, 64, 65, 66, 67, 68 }, - { 73, 72, 71, 70, 69, NO_LED } - }, - { // LED Index to LED Physical Position (mirrored on right half) - - // Left Underglow (indicies 1 - 8) - { 95, 72 }, { 52, 72 }, { 86, 40 }, { 52, 40 }, { 9, 40 }, { 9, 8 }, { 52, 8 }, { 86, 8 }, - // Left Matrix (indicies 9 - 37) - { 86, 0 }, { 69, 0 }, { 52, 0 }, { 34, 0 }, { 17, 0 }, { 0, 0 }, - { 0, 16 }, { 17, 16 }, { 34, 16 }, { 52, 16 }, { 69, 16 }, { 86, 16 }, - { 86, 32 }, { 69, 32 }, { 52, 32 }, { 34, 32 }, { 17, 32 }, { 0, 32 }, - { 0, 48 }, { 17, 48 }, { 34, 48 }, { 52, 48 }, { 69, 48 }, { 86, 48 }, /* No Led */ - { 103, 64 }, { 86, 64 }, { 69, 64 }, { 52, 64 }, { 34, 64 }, - - // Right Underglow (indicies 38 - 45) - { 129, 72 }, { 172, 72 }, { 138, 40 }, { 172, 40 }, { 215, 40 }, { 215, 8 }, { 172, 8 }, { 138, 8 }, - // Right Matrix (indicies 46 - 74) - { 138, 0 }, { 155, 0 }, { 172, 0 }, { 190, 0 }, { 207, 0 }, { 224, 0 }, - { 224, 16 }, { 207, 16 }, { 190, 16 }, { 172, 16 }, { 155, 16 }, { 138, 16 }, - { 138, 32 }, { 155, 32 }, { 172, 32 }, { 190, 32 }, { 207, 32 }, { 224, 32 }, - /* No Led */ { 224, 48 }, { 207, 48 }, { 190, 48 }, { 172, 48 }, { 155, 48 }, { 138, 48 }, - { 121, 64 }, { 138, 64 }, { 155, 64 }, { 172, 64 }, { 190, 64 } - }, - { // LED Index to Flag (2 - Underglow, 4 - Key Backlight) - - // Left Underglow - 2, 2, 2, 2, 2, 2, 2, 2, - // Left Matrix - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, - - // Right Underglow - 2, 2, 2, 2, 2, 2, 2, 2, - // Right Matrix - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4 - } -}; - -#endif diff --git a/keyboards/kapl/rev1/keyboard.json b/keyboards/kapl/rev1/keyboard.json index 843847d8fe..9354a5e4fe 100644 --- a/keyboards/kapl/rev1/keyboard.json +++ b/keyboards/kapl/rev1/keyboard.json @@ -35,6 +35,96 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"x": 96, "y": 57, "flags": 2}, + {"x": 112, "y": 44, "flags": 2}, + {"x": 112, "y": 19, "flags": 2}, + {"x": 80, "y": 19, "flags": 2}, + {"x": 48, "y": 19, "flags": 2}, + {"x": 16, "y": 19, "flags": 2}, + {"x": 16, "y": 57, "flags": 2}, + {"x": 48, "y": 57, "flags": 2}, + {"x": 80, "y": 57, "flags": 2}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 69, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 86, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 103, "y": 0, "flags": 1}, + {"matrix": [1, 6], "x": 103, "y": 16, "flags": 1}, + {"matrix": [1, 5], "x": 86, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 69, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 17, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 17, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 34, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 69, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 103, "y": 32, "flags": 1}, + {"matrix": [3, 6], "x": 103, "y": 48, "flags": 1}, + {"matrix": [3, 5], "x": 86, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 17, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 17, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 52, "y": 64, "flags": 1}, + {"matrix": [4, 4], "x": 69, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 86, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 103, "y": 64, "flags": 1}, + {"x": 144, "y": 57, "flags": 2}, + {"x": 128, "y": 44, "flags": 2}, + {"x": 128, "y": 19, "flags": 2}, + {"x": 160, "y": 19, "flags": 2}, + {"x": 192, "y": 19, "flags": 2}, + {"x": 224, "y": 19, "flags": 2}, + {"x": 224, "y": 57, "flags": 2}, + {"x": 192, "y": 57, "flags": 2}, + {"x": 160, "y": 57, "flags": 2}, + {"matrix": [5, 0], "x": 224, "y": 0, "flags": 1}, + {"matrix": [5, 1], "x": 207, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 190, "y": 0, "flags": 4}, + {"matrix": [5, 3], "x": 172, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 155, "y": 0, "flags": 4}, + {"matrix": [5, 5], "x": 138, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 121, "y": 0, "flags": 1}, + {"matrix": [6, 6], "x": 121, "y": 16, "flags": 1}, + {"matrix": [6, 5], "x": 138, "y": 16, "flags": 4}, + {"matrix": [6, 4], "x": 155, "y": 16, "flags": 4}, + {"matrix": [6, 3], "x": 172, "y": 16, "flags": 4}, + {"matrix": [6, 2], "x": 190, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 207, "y": 16, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 16, "flags": 1}, + {"matrix": [7, 0], "x": 224, "y": 32, "flags": 1}, + {"matrix": [7, 1], "x": 207, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 190, "y": 32, "flags": 4}, + {"matrix": [7, 3], "x": 172, "y": 32, "flags": 4}, + {"matrix": [7, 4], "x": 155, "y": 32, "flags": 4}, + {"matrix": [7, 5], "x": 138, "y": 32, "flags": 4}, + {"matrix": [7, 6], "x": 121, "y": 32, "flags": 1}, + {"matrix": [8, 6], "x": 121, "y": 48, "flags": 1}, + {"matrix": [8, 5], "x": 138, "y": 48, "flags": 4}, + {"matrix": [8, 4], "x": 155, "y": 48, "flags": 4}, + {"matrix": [8, 3], "x": 172, "y": 48, "flags": 4}, + {"matrix": [8, 2], "x": 190, "y": 48, "flags": 4}, + {"matrix": [8, 1], "x": 207, "y": 48, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 48, "flags": 1}, + {"matrix": [9, 0], "x": 224, "y": 64, "flags": 1}, + {"matrix": [9, 1], "x": 207, "y": 64, "flags": 1}, + {"matrix": [9, 2], "x": 190, "y": 64, "flags": 1}, + {"matrix": [9, 3], "x": 172, "y": 64, "flags": 1}, + {"matrix": [9, 4], "x": 155, "y": 64, "flags": 1}, + {"matrix": [9, 5], "x": 138, "y": 64, "flags": 1}, + {"matrix": [9, 6], "x": 121, "y": 64, "flags": 1} + ], "max_brightness": 120, "speed_steps": 10, "split_count": [44, 44] diff --git a/keyboards/kapl/rev1/rev1.c b/keyboards/kapl/rev1/rev1.c deleted file mode 100644 index fd3b9289dc..0000000000 --- a/keyboards/kapl/rev1/rev1.c +++ /dev/null @@ -1,55 +0,0 @@ -// Copyright 2022 Alexander Lozyuk (@keyzog) -// SPDX-License-Identifier: GPL-2.0-or-later -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Left Hand - // { 8, 7, 6, 5, 4, 3, 2, 1, 0 }, // underglow - { 9, 10, 11, 12, 13, 14, 15 }, - { 22, 21, 20, 19, 18, 17, 16 }, - { 23, 24, 25, 26, 27, 28, 29 }, - { 36, 35, 34, 33, 32, 31, 30 }, - { 37, 38, 39, 40, 41, 42, 43 }, - - // Right Hand - // { 44, 45, 46, 47, 48, 49, 50, 51, 52 }, // underglow - { 53, 54, 55, 56, 57, 58, 59 }, - { 66, 65, 64, 63, 62, 61, 60 }, - { 67, 68, 69, 70, 71, 72, 73 }, - { 80, 79, 78, 77, 76, 75, 74 }, - { 81, 82, 83, 84, 85, 86, 87 } -}, { - // Left Hand - {96, 57}, {112, 44}, {112, 19}, {80, 19}, {48, 19}, {16, 19}, {16, 57}, {48, 57}, {80, 57}, // underglow - {0, 0}, {17, 0}, {34, 0}, {52, 0}, {69, 0}, {86, 0}, {103, 0}, - {103, 16}, {86, 16}, {69, 16}, {52, 16}, {34, 16}, {17, 16}, {0, 16}, - {0, 32}, {17, 32}, {34, 32}, {52, 32}, {69, 32}, {86, 32}, {103, 32}, - {103, 48}, {86, 48}, {69, 48}, {52, 48}, {34, 48}, {17, 48}, {0, 48}, - {0, 64}, {17, 64}, {34, 64}, {52, 64}, {69, 64}, {86, 64}, {103, 64}, - - // Right Hand - {144, 57}, {128, 44}, {128, 19}, {160, 19}, {192, 19}, {224, 19}, {224, 57}, {192, 57}, {160, 57}, // underglow - {224, 0}, {207, 0}, {190, 0}, {172, 0}, {155, 0}, {138, 0}, {121, 0}, - {121, 16}, {138, 16}, {155, 16}, {172, 16}, {190, 16}, {207, 16}, {224, 16}, - {224, 32}, {207, 32}, {190, 32}, {172, 32}, {155, 32}, {138, 32}, {121, 32}, - {121, 48}, {138, 48}, {155, 48}, {172, 48}, {190, 48}, {207, 48}, {224, 48}, - {224, 64}, {207, 64}, {190, 64}, {172, 64}, {155, 64}, {138, 64}, {121, 64} -}, { - // Left Hand - 2, 2, 2, 2, 2, 2, 2, 2, 2, // underglow - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, - - // Right Hand - 2, 2, 2, 2, 2, 2, 2, 2, 2, // underglow - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1 -} }; -#endif diff --git a/keyboards/kbdfans/baguette66/rgb/keyboard.json b/keyboards/kbdfans/baguette66/rgb/keyboard.json index 5955add028..77103382bd 100644 --- a/keyboards/kbdfans/baguette66/rgb/keyboard.json +++ b/keyboards/kbdfans/baguette66/rgb/keyboard.json @@ -58,6 +58,74 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 195, "y": 0, "flags": 4}, + {"matrix": [2, 14], "x": 210, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 201, "y": 32, "flags": 4}, + {"matrix": [3, 13], "x": 220, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 205, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 187, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 4}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 152, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 171, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "max_brightness": 150, "sat_steps": 8, "sleep": true, diff --git a/keyboards/kbdfans/baguette66/rgb/rgb.c b/keyboards/kbdfans/baguette66/rgb/rgb.c index 8e1dbc5bcd..379597b58e 100644 --- a/keyboards/kbdfans/baguette66/rgb/rgb.c +++ b/keyboards/kbdfans/baguette66/rgb/rgb.c @@ -17,26 +17,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15 }, - { 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,NO_LED, 14 }, - { 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, NO_LED}, - { NO_LED, 58, 59, NO_LED, NO_LED, 60, NO_LED, NO_LED, 61, NO_LED, 62, NO_LED, 63, 64, 65 } -}, { - {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{195,0}, {210,0},{224,0}, - {224,16}, {206,16},{188,16},{173,16},{158,16},{143,16},{128,16},{113,16},{98,16},{83,16},{68,16},{53,16},{38,16},{23,16},{4,16}, - {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32}, - {220,48},{205,48},{187,48},{169,48},{154,48},{139,48},{124,48},{109,48},{94,48},{79,48},{64,48},{49,48},{34,48},{9,48}, - {21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64} -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 1, 1, 1 -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kbdfans/bella/rgb/keyboard.json b/keyboards/kbdfans/bella/rgb/keyboard.json index 2ca18d2851..7bbc5ea7a2 100644 --- a/keyboards/kbdfans/bella/rgb/keyboard.json +++ b/keyboards/kbdfans/bella/rgb/keyboard.json @@ -54,6 +54,102 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 44, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 59, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 73, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 140, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 161, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 176, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 191, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 206, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4}, + {"matrix": [1, 1], "x": 15, "y": 17, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 17, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 17, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 17, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 17, "flags": 4}, + {"matrix": [1, 7], "x": 102, "y": 17, "flags": 4}, + {"matrix": [1, 8], "x": 117, "y": 17, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 17, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 17, "flags": 4}, + {"matrix": [1, 11], "x": 161, "y": 17, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 17, "flags": 4}, + {"matrix": [1, 14], "x": 198, "y": 17, "flags": 4}, + {"matrix": [1, 15], "x": 224, "y": 17, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 29, "flags": 4}, + {"matrix": [2, 1], "x": 22, "y": 29, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 29, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 29, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 29, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 29, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 29, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 29, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 29, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 29, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 29, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 29, "flags": 4}, + {"matrix": [2, 12], "x": 184, "y": 29, "flags": 4}, + {"matrix": [2, 13], "x": 202, "y": 29, "flags": 4}, + {"matrix": [2, 15], "x": 224, "y": 29, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 41, "flags": 4}, + {"matrix": [3, 1], "x": 26, "y": 41, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 41, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 41, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 41, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 41, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 41, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 41, "flags": 4}, + {"matrix": [3, 8], "x": 129, "y": 41, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 41, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 41, "flags": 4}, + {"matrix": [3, 11], "x": 172, "y": 41, "flags": 4}, + {"matrix": [3, 13], "x": 196, "y": 41, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 41, "flags": 4}, + {"matrix": [4, 0], "x": 9, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 33, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 150, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 52, "flags": 4}, + {"matrix": [4, 12], "x": 185, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 20, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 38, "y": 64, "flags": 4}, + {"matrix": [5, 6], "x": 94, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 150, "y": 64, "flags": 4}, + {"matrix": [5, 11], "x": 172, "y": 64, "flags": 4}, + {"matrix": [5, 12], "x": 195, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 45, "y": 0, "flags": 2}, + {"x": 90, "y": 0, "flags": 2}, + {"x": 134, "y": 0, "flags": 2}, + {"x": 179, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 0, "y": 32, "flags": 2}, + {"x": 224, "y": 32, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 45, "y": 64, "flags": 2}, + {"x": 90, "y": 64, "flags": 2}, + {"x": 134, "y": 64, "flags": 2}, + {"x": 179, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/kbdfans/bella/rgb/rgb.c b/keyboards/kbdfans/bella/rgb/rgb.c index 4818c99005..2dd792c5bc 100644 --- a/keyboards/kbdfans/bella/rgb/rgb.c +++ b/keyboards/kbdfans/bella/rgb/rgb.c @@ -118,36 +118,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW4_CS3, SW4_CS2, SW4_CS1}, /* RGB40 */ }; -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15*/ - { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, NO_LED, 9, 10, 11, 12, 13, }, /* R0 */ - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, NO_LED, 27, 28, }, /* R1 */ - { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43, }, /* R2 */ - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, NO_LED, 57, }, /* R3 */ - { 58, NO_LED, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, NO_LED, 70, NO_LED, }, /* R4 */ - { 71, 72, 73, NO_LED, NO_LED, NO_LED, 74, NO_LED, NO_LED, NO_LED, 75, 76, 77, NO_LED, 78, 79, }, /* R5 */ - }, { - {0, 0}, {29, 0}, {44, 0}, {59, 0}, {73, 0}, {95, 0}, {110, 0}, {125, 0}, {140, 0}, {161, 0}, {176, 0}, {191, 0}, {206, 0}, {224, 0}, - {0, 17}, {15, 17}, {29, 17}, {44, 17}, {59, 17}, {73, 17}, {88, 17}, {102, 17}, {117, 17}, {132, 17}, {147, 17}, {161, 17}, {176, 17}, {198, 17}, {224, 17}, - {4, 29}, {22, 29}, {37, 29}, {51, 29}, {66, 29}, {81, 29}, {95, 29}, {110, 29}, {125, 29}, {140, 29}, {154, 29}, {169, 29}, {184, 29}, {202, 29}, {224, 29}, - {5, 41}, {26, 41}, {40, 41}, {55, 41}, {70, 41}, {84, 41}, {99, 41}, {114, 41}, {129, 41}, {143, 41}, {158, 41}, {172, 41}, {196, 41}, {224, 41}, - {9, 52}, {33, 52}, {48, 52}, {62, 52}, {77, 52}, {92, 52}, {106, 52}, {121, 52}, {136, 52}, {150, 52}, {165, 52}, {185, 52}, {209, 52}, - {2, 64}, {20, 64}, {38, 64}, {94, 64}, {150, 64}, {172, 64}, {195, 64}, {209, 64}, {224, 64}, - {0, 0}, {45, 0}, {90, 0}, {134, 0}, {179, 0}, {224, 0}, - {0, 32}, {224,32}, - {0, 64}, {45, 64}, {90, 64}, {134, 64}, {179, 64}, {224, 64}, - }, { - 4,1,1,1,1,1,1,1,1,1,1,1,1,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,1, - 4,4,4,4,4,4,1,1,1, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2, - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kbdfans/bella/rgb_iso/keyboard.json b/keyboards/kbdfans/bella/rgb_iso/keyboard.json index c7dd6423b5..43f36625f9 100644 --- a/keyboards/kbdfans/bella/rgb_iso/keyboard.json +++ b/keyboards/kbdfans/bella/rgb_iso/keyboard.json @@ -54,6 +54,103 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 44, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 59, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 73, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 125, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 140, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 161, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 176, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 191, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 206, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4}, + {"matrix": [1, 1], "x": 15, "y": 17, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 17, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 17, "flags": 4}, + {"matrix": [1, 5], "x": 73, "y": 17, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 17, "flags": 4}, + {"matrix": [1, 7], "x": 102, "y": 17, "flags": 4}, + {"matrix": [1, 8], "x": 117, "y": 17, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 17, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 17, "flags": 4}, + {"matrix": [1, 11], "x": 161, "y": 17, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 17, "flags": 4}, + {"matrix": [1, 14], "x": 198, "y": 17, "flags": 4}, + {"matrix": [1, 15], "x": 224, "y": 17, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 29, "flags": 4}, + {"matrix": [2, 1], "x": 22, "y": 29, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 29, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 29, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 29, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 29, "flags": 4}, + {"matrix": [2, 6], "x": 95, "y": 29, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 29, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 29, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 29, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 29, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 29, "flags": 4}, + {"matrix": [2, 12], "x": 184, "y": 29, "flags": 4}, + {"matrix": [3, 13], "x": 200, "y": 35, "flags": 4}, + {"matrix": [2, 15], "x": 224, "y": 29, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 41, "flags": 4}, + {"matrix": [3, 1], "x": 26, "y": 41, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 41, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 41, "flags": 4}, + {"matrix": [3, 4], "x": 70, "y": 41, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 41, "flags": 4}, + {"matrix": [3, 6], "x": 99, "y": 41, "flags": 4}, + {"matrix": [3, 7], "x": 114, "y": 41, "flags": 4}, + {"matrix": [3, 8], "x": 129, "y": 41, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 41, "flags": 4}, + {"matrix": [3, 10], "x": 158, "y": 41, "flags": 4}, + {"matrix": [3, 11], "x": 172, "y": 41, "flags": 4}, + {"matrix": [2, 13], "x": 187, "y": 41, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 41, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 52, "flags": 4}, + {"matrix": [4, 1], "x": 18, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 33, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 62, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 77, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 92, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 121, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 136, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 150, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 52, "flags": 4}, + {"matrix": [4, 12], "x": 185, "y": 52, "flags": 4}, + {"matrix": [4, 14], "x": 209, "y": 52, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 20, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 38, "y": 64, "flags": 4}, + {"matrix": [5, 6], "x": 94, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 150, "y": 64, "flags": 4}, + {"matrix": [5, 11], "x": 172, "y": 64, "flags": 4}, + {"matrix": [5, 12], "x": 195, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 209, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 45, "y": 0, "flags": 2}, + {"x": 90, "y": 0, "flags": 2}, + {"x": 134, "y": 0, "flags": 2}, + {"x": 179, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 0, "y": 32, "flags": 2}, + {"x": 224, "y": 32, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 45, "y": 64, "flags": 2}, + {"x": 90, "y": 64, "flags": 2}, + {"x": 134, "y": 64, "flags": 2}, + {"x": 179, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c b/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c index 8d9349e295..ecbe4b3122 100644 --- a/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c +++ b/keyboards/kbdfans/bella/rgb_iso/rgb_iso.c @@ -119,36 +119,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW4_CS3, SW4_CS2, SW4_CS1}, /* RGB40 */ }; -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15*/ - { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, NO_LED, 9, 10, 11, 12, 13, }, /* R0 */ - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, NO_LED, 27, 28, }, /* R1 */ - { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 56, NO_LED, 43, }, /* R2 */ - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 42, NO_LED, 57, }, /* R3 */ - { 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, NO_LED, 71, NO_LED, }, /* R4 */ - { 72, 73, 74, NO_LED, NO_LED, NO_LED, 75, NO_LED, NO_LED, NO_LED, 76, 77, 78, NO_LED, 79, 80, }, /* R5 */ - }, { - {0, 0}, {29, 0}, {44, 0}, {59, 0}, {73, 0}, {95, 0}, {110, 0}, {125, 0}, {140, 0}, {161, 0}, {176, 0}, {191, 0}, {206, 0}, {224, 0}, - {0, 17}, {15, 17}, {29, 17}, {44, 17}, {59, 17}, {73, 17}, {88, 17}, {102, 17}, {117, 17}, {132, 17}, {147, 17}, {161, 17}, {176, 17}, {198, 17}, {224, 17}, - {4, 29}, {22, 29}, {37, 29}, {51, 29}, {66, 29}, {81, 29}, {95, 29}, {110, 29}, {125, 29}, {140, 29}, {154, 29}, {169, 29}, {184, 29}, {200, 35}, {224, 29}, - {5, 41}, {26, 41}, {40, 41}, {55, 41}, {70, 41}, {84, 41}, {99, 41}, {114, 41}, {129, 41}, {143, 41}, {158, 41}, {172, 41}, {187, 41}, {224, 41}, - {2, 52}, {18, 52}, {33, 52}, {48, 52}, {62, 52}, {77, 52}, {92, 52}, {106, 52}, {121, 52}, {136, 52}, {150, 52}, {165, 52}, {185, 52}, {209, 52}, - {2, 64}, {20, 64}, {38, 64}, {94, 64}, {150, 64}, {172, 64}, {195, 64}, {209, 64}, {224, 64}, - {0, 0}, {45, 0}, {90, 0}, {134, 0}, {179, 0}, {224, 0}, - {0, 32}, {224,32}, - {0, 64}, {45, 64}, {90, 64}, {134, 64}, {179, 64}, {224, 64}, - }, { - 4,1,1,1,1,1,1,1,1,1,1,1,1,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 4,4,4,4,4,4,4,4,4,4,4,4,4,1, - 4,4,4,4,4,4,1,1,1, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2, - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kbdfans/boop65/rgb/keyboard.json b/keyboards/kbdfans/boop65/rgb/keyboard.json index 4a051c9112..6fc36d1539 100644 --- a/keyboards/kbdfans/boop65/rgb/keyboard.json +++ b/keyboards/kbdfans/boop65/rgb/keyboard.json @@ -56,6 +56,91 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 152, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}, + {"x": 0, "y": 8, "flags": 2}, + {"x": 32, "y": 8, "flags": 2}, + {"x": 64, "y": 8, "flags": 2}, + {"x": 96, "y": 8, "flags": 2}, + {"x": 128, "y": 8, "flags": 2}, + {"x": 160, "y": 8, "flags": 2}, + {"x": 192, "y": 8, "flags": 2}, + {"x": 224, "y": 8, "flags": 2}, + {"x": 0, "y": 56, "flags": 2}, + {"x": 32, "y": 56, "flags": 2}, + {"x": 64, "y": 56, "flags": 2}, + {"x": 96, "y": 56, "flags": 2}, + {"x": 128, "y": 56, "flags": 2}, + {"x": 160, "y": 56, "flags": 2}, + {"x": 192, "y": 56, "flags": 2}, + {"x": 224, "y": 56, "flags": 2} + ], "led_flush_limit": 26, "led_process_limit": 4, "max_brightness": 200, diff --git a/keyboards/kbdfans/boop65/rgb/rgb.c b/keyboards/kbdfans/boop65/rgb/rgb.c index f70c92812f..5a6caf64d1 100644 --- a/keyboards/kbdfans/boop65/rgb/rgb.c +++ b/keyboards/kbdfans/boop65/rgb/rgb.c @@ -112,29 +112,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW6_CS39, SW6_CS38, SW6_CS37} }; -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED,56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, NO_LED, 63, 64, NO_LED, 65, 66 } -}, { - {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0}, - {4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16}, - {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32}, - {9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48}, - {2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64}, - {0,8},{32,8},{64,8},{96,8},{128,8},{160,8},{192,8},{224,8}, - {0,56},{32,56},{64,56},{96,56},{128,56},{160,56},{192,56},{224,56} -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2 -} }; bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json index f55a649f43..9b034ef194 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/keyboard.json @@ -37,6 +37,75 @@ "animation": "cycle_all" }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 152, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "led_flush_limit": 26, "led_process_limit": 4, "max_brightness": 200, diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c index 210be85d3f..7d25400d7f 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v1/v1.c @@ -92,10 +92,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { }; -led_config_t g_led_config = {{{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, {15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29}, {30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43}, {44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57}, {58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, NO_LED, 63, 64, NO_LED, 65, 66}}, - {{0, 0}, {15, 0}, {30, 0}, {45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {203, 0}, {224, 0}, {4, 16}, {23, 16}, {38, 16}, {53, 16}, {68, 16}, {83, 16}, {98, 16}, {113, 16}, {128, 16}, {143, 16}, {158, 16}, {173, 16}, {188, 16}, {206, 16}, {224, 16}, {6, 32}, {26, 32}, {41, 32}, {56, 32}, {71, 32}, {86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {176, 32}, {201, 32}, {224, 32}, {9, 48}, {34, 48}, {49, 48}, {64, 48}, {79, 48}, {94, 48}, {109, 48}, {124, 48}, {139, 48}, {154, 48}, {169, 48}, {189, 48}, {210, 48}, {224, 48}, {2, 64}, {21, 64}, {39, 64}, {96, 64}, {152, 64}, {171, 64}, {195, 64}, {210, 64}, {224, 64}}, - {1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1}}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json index 916ee0f33a..012ab5257b 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/keyboard.json @@ -35,6 +35,75 @@ "animation": "cycle_all" }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 152, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c index 50958017a2..f32d5b2f1d 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v2/v2.c @@ -92,27 +92,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { }; -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED,42, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED,56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, NO_LED, 63, 64, NO_LED, 65, 66 } -}, { - {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0}, - {4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16}, - {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32}, - {9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48}, - {2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64} -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1 -} }; - - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb/v3/keyboard.json index 4a3beea9eb..bab449e144 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v3/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/keyboard.json @@ -37,6 +37,75 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 119, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 134, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 149, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 164, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 179, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 205, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 9}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 175, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 200, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 63, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 78, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 93, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 108, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 123, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 153, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 168, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 209, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 95, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 151, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 170, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 194, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "val_steps": 8, "led_flush_limit": 26, "led_process_limit": 4, diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c index 0b40afadf9..dd3fd96e1c 100755 --- a/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v3/v3.c @@ -94,33 +94,7 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { }; -#define __ NO_LED #define CAPS_LOCK_LED_INDEX 30 - -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, __, 42, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, __, 56, 57 }, - { 58, 59, 60, __, __, 61, __, __, 62, __, 63, 64, __, 65, 66 } -}, { - // LED Index to Physical Position - // based on: https://gist.github.com/vinorodrigues/07fd735683856b2a06c7c52b9b3878cb - {0, 0}, {15, 0}, {30, 0}, {45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {119, 0}, {134, 0}, {149, 0}, {164, 0}, {179, 0}, {202, 0}, {224, 0}, - {4, 16}, {22, 16}, {37, 16}, {52, 16}, {67, 16}, {82, 16}, {97, 16}, {112, 16}, {127, 16}, {142, 16}, {157, 16}, {172, 16}, {187, 16}, {205, 16}, {224, 16}, - {6, 32}, {26, 32}, {41, 32}, {56, 32}, {71, 32}, {86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {175, 32}, {200, 32}, {224, 32}, - {9, 48}, {34, 48}, {49, 48}, {63, 48}, {78, 48}, {93, 48}, {108, 48}, {123, 48}, {138, 48}, {153, 48}, {168, 48}, {189, 48}, {209, 48}, {224, 48}, - {2, 64}, {21, 64}, {39, 64}, {95, 64}, {151, 64}, {170, 64}, {194, 64}, {209, 64}, {224, 64} -}, { - // LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // caps lock is also an indicator so mask is `0x01 | 0x08` - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1 -} }; - #endif #if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json index ed47182ae5..574a02088f 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkiirgb/v4/keyboard.json @@ -52,6 +52,75 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 152, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "max_brightness": 150, "sat_steps": 8, "val_steps": 8, diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c b/keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c index 24ccaea968..f9af0a3df9 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c +++ b/keyboards/kbdfans/kbd67/mkiirgb/v4/v4.c @@ -17,28 +17,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE - -led_config_t g_led_config = { -{ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,NO_LED, 43 }, - { 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, NO_LED,45, 44 }, - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, NO_LED,65, 66 } -}, { - {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0}, - {224,16},{206,16},{188,16},{173,16},{158,16},{143,16},{128,16},{113,16},{98,16},{83,16}, {68,16},{53,16},{38,16},{23,16},{4,16}, - {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32}, - {224,48},{210,48},{189,48},{169,48},{154,48},{139,48},{124,48},{109,48},{94,48},{79,48},{64,48},{49,48},{34,48},{9,48}, - {2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64} -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1 -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json b/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json index 5000f8fb0a..3d544fe88c 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json +++ b/keyboards/kbdfans/kbd67/mkiirgb_iso/keyboard.json @@ -40,6 +40,76 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 191, "y": 32, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 24, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 21, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 2, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 152, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 171, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "sat_steps": 8, "val_steps": 8, "speed_steps": 10, diff --git a/keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c b/keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c index 432c871dba..8aa7d42ef3 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c +++ b/keyboards/kbdfans/kbd67/mkiirgb_iso/mkiirgb_iso.c @@ -17,28 +17,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { -{ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 42, 15 }, - { 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,NO_LED, 43 }, - { 58, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, NO_LED,45, 44 }, - { 59, 60, 61, 57, NO_LED, 62, NO_LED, NO_LED, NO_LED, 63, 64, 65, NO_LED,66, 67 } -}, { - {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0}, - {224,16},{188,16},{173,16},{158,16},{143,16},{128,16},{113,16},{98,16},{83,16}, {68,16},{53,16},{38,16},{23,16},{4,16}, - {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{191,32},{206,24},{224,32}, - {224,48},{210,48},{189,48},{169,48},{154,48},{139,48},{124,48},{109,48},{94,48},{79,48},{64,48},{49,48},{34,48},{21,48},{2,48}, - {2,64},{21,64},{39,64},{96,64},{152,64},{171,64},{195,64},{210,64},{224,64} -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1 -} }; - - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kbdfans/kbd75rgb/kbd75rgb.c b/keyboards/kbdfans/kbd75rgb/kbd75rgb.c index 622ca83b68..45e195524a 100644 --- a/keyboards/kbdfans/kbd75rgb/kbd75rgb.c +++ b/keyboards/kbdfans/kbd75rgb/kbd75rgb.c @@ -17,29 +17,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15}, - { 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16}, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45}, - { 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 14, 47, 46}, - { 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, NO_LED,72, 73}, - { 83, 82, 81, NO_LED, NO_LED, 80, NO_LED, NO_LED, 79, 78, 77, 76, NO_LED,75 ,74} -}, { - {0, 0}, {15, 0}, {30, 0},{45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {195, 0}, {210, 0}, {224, 0}, - {224, 12}, {218, 12},{192, 12},{176, 12},{160, 12},{144, 12},{128, 12},{112, 12},{96, 12},{80, 12},{64, 12},{48, 12},{32, 12},{16, 12},{0, 12}, - {0, 25},{16, 25}, {32, 25}, {48, 25}, {64, 25}, {80, 25}, {96, 25}, {112, 25}, {128, 25}, {144, 25}, {160, 25},{176, 25}, {192, 25}, {218, 25}, {224, 25}, -{224, 38},{200, 38},{176, 38},{160, 38},{144, 38},{128, 38},{112, 38},{96, 38},{80, 38},{64, 38},{48, 38},{32, 38},{16, 38},{0, 38}, - {0, 51},{16, 51}, {32, 51}, {48, 51}, {64, 51}, {80, 51}, {96, 51}, {112, 51}, {128, 51}, {144, 51}, {160, 51}, {189, 51}, {218, 51}, {224, 51}, -{224, 64},{218, 64},{192, 64},{176, 64},{160, 64},{144, 64}, {80, 64}, {32, 64},{16, 64},{0, 64} -}, { -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,1,4,1,1,1,4,4,4, -4,4,4,4 -} }; - - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kbdfans/kbd75rgb/keyboard.json b/keyboards/kbdfans/kbd75rgb/keyboard.json index 6a69d78c03..af6379071d 100644 --- a/keyboards/kbdfans/kbd75rgb/keyboard.json +++ b/keyboards/kbdfans/kbd75rgb/keyboard.json @@ -58,6 +58,92 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 195, "y": 0, "flags": 4}, + {"matrix": [3, 12], "x": 210, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 12, "flags": 4}, + {"matrix": [1, 13], "x": 218, "y": 12, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 12, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 25, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 25, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 25, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 25, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 25, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 25, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 25, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 25, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 25, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 25, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 25, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 25, "flags": 4}, + {"matrix": [2, 13], "x": 218, "y": 25, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 25, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 38, "flags": 4}, + {"matrix": [3, 13], "x": 200, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 144, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 38, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 51, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 51, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 64, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 80, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 112, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 128, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 144, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 160, "y": 51, "flags": 4}, + {"matrix": [4, 11], "x": 189, "y": 51, "flags": 4}, + {"matrix": [4, 13], "x": 218, "y": 51, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 51, "flags": 4}, + {"matrix": [5, 14], "x": 224, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 218, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 192, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 176, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 160, "y": 64, "flags": 4}, + {"matrix": [5, 8], "x": 144, "y": 64, "flags": 4}, + {"matrix": [5, 5], "x": 80, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 32, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4} + ], "sat_steps": 8, "val_steps": 8, "speed_steps": 10, diff --git a/keyboards/kbdfans/kbdmini/kbdmini.c b/keyboards/kbdfans/kbdmini/kbdmini.c index 18acc21da4..c9b558b7d3 100644 --- a/keyboards/kbdfans/kbdmini/kbdmini.c +++ b/keyboards/kbdfans/kbdmini/kbdmini.c @@ -57,22 +57,3 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW11_CS2, SW10_CS2, SW12_CS2 }, //LA8 { 0, SW11_CS1, SW10_CS1, SW12_CS1 } //LA4 }; - -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }, - { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 }, - { 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 }, - { 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 } - }, { - { 0, 0 }, { 19, 0 }, { 38, 0 }, { 57, 0 }, { 76, 0 }, { 95, 0 }, { 114, 0 }, { 133, 0 }, { 152, 0 }, { 171, 0 }, { 190, 0 }, { 209, 0 }, { 224, 0 }, - { 0, 21 }, { 19, 21 }, { 38, 21 }, { 57, 21 }, { 76, 21 }, { 95, 21 }, { 114, 21 }, { 133, 21 }, { 152, 21 }, { 171, 21 }, { 190, 21 }, { 209, 21 }, { 224, 21 }, - { 0, 42 }, { 19, 42 }, { 38, 42 }, { 57, 42 }, { 76, 42 }, { 95, 42 }, { 114, 42 }, { 133, 42 }, { 152, 42 }, { 171, 42 }, { 190, 42 }, { 209, 42 }, { 224, 42 }, - { 0, 64 }, { 19, 64 }, { 38, 64 }, { 57, 64 }, { 76, 64 }, { 95, 64 }, { 114, 64 }, { 133, 64 }, { 152, 64 }, { 171, 64 }, { 190, 64 }, { 209, 64 }, { 224, 64 } - }, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - } -}; diff --git a/keyboards/kbdfans/kbdmini/keyboard.json b/keyboards/kbdfans/kbdmini/keyboard.json index 97edf073e6..90ec227140 100644 --- a/keyboards/kbdfans/kbdmini/keyboard.json +++ b/keyboards/kbdfans/kbdmini/keyboard.json @@ -37,6 +37,60 @@ "typing_heatmap": true }, "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 19, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 38, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 57, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 76, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 95, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 114, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 152, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 171, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 190, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 209, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, + {"matrix": [1, 1], "x": 19, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 57, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 76, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 95, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 114, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 133, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 152, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 171, "y": 21, "flags": 4}, + {"matrix": [1, 10], "x": 190, "y": 21, "flags": 4}, + {"matrix": [1, 11], "x": 209, "y": 21, "flags": 4}, + {"matrix": [1, 12], "x": 224, "y": 21, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 38, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 57, "y": 42, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 42, "flags": 4}, + {"matrix": [2, 5], "x": 95, "y": 42, "flags": 4}, + {"matrix": [2, 6], "x": 114, "y": 42, "flags": 4}, + {"matrix": [2, 7], "x": 133, "y": 42, "flags": 4}, + {"matrix": [2, 8], "x": 152, "y": 42, "flags": 4}, + {"matrix": [2, 9], "x": 171, "y": 42, "flags": 4}, + {"matrix": [2, 10], "x": 190, "y": 42, "flags": 4}, + {"matrix": [2, 11], "x": 209, "y": 42, "flags": 4}, + {"matrix": [2, 12], "x": 224, "y": 42, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 19, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 38, "y": 64, "flags": 1}, + {"matrix": [3, 3], "x": 57, "y": 64, "flags": 1}, + {"matrix": [3, 4], "x": 76, "y": 64, "flags": 1}, + {"matrix": [3, 5], "x": 95, "y": 64, "flags": 1}, + {"matrix": [3, 6], "x": 114, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 133, "y": 64, "flags": 1}, + {"matrix": [3, 8], "x": 152, "y": 64, "flags": 1}, + {"matrix": [3, 9], "x": 171, "y": 64, "flags": 1}, + {"matrix": [3, 10], "x": 190, "y": 64, "flags": 1}, + {"matrix": [3, 11], "x": 209, "y": 64, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 64, "flags": 1} + ], "sleep": true }, "features": { diff --git a/keyboards/kbdfans/maja/keyboard.json b/keyboards/kbdfans/maja/keyboard.json index 949dd09fe2..fd5d10d833 100644 --- a/keyboards/kbdfans/maja/keyboard.json +++ b/keyboards/kbdfans/maja/keyboard.json @@ -40,6 +40,75 @@ "animation": "cycle_all" }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 4, "y": 1, "flags": 1}, + {"matrix": [0, 1], "x": 18, "y": 1, "flags": 4}, + {"matrix": [0, 2], "x": 31, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 46, "y": 3, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 5, "flags": 4}, + {"matrix": [0, 5], "x": 73, "y": 7, "flags": 4}, + {"matrix": [0, 6], "x": 86, "y": 10, "flags": 4}, + {"matrix": [0, 7], "x": 107, "y": 9, "flags": 4}, + {"matrix": [0, 8], "x": 121, "y": 7, "flags": 4}, + {"matrix": [0, 9], "x": 134, "y": 4, "flags": 4}, + {"matrix": [0, 10], "x": 148, "y": 2, "flags": 4}, + {"matrix": [0, 11], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 176, "y": 2, "flags": 4}, + {"matrix": [0, 13], "x": 196, "y": 2, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 5, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 22, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 50, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 20, "flags": 4}, + {"matrix": [1, 5], "x": 77, "y": 22, "flags": 4}, + {"matrix": [1, 6], "x": 103, "y": 23, "flags": 4}, + {"matrix": [1, 7], "x": 117, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 130, "y": 19, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 171, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 186, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 202, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 28, "flags": 4}, + {"matrix": [2, 1], "x": 23, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 38, "y": 29, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 31, "flags": 4}, + {"matrix": [2, 4], "x": 65, "y": 34, "flags": 4}, + {"matrix": [2, 5], "x": 78, "y": 36, "flags": 4}, + {"matrix": [2, 6], "x": 109, "y": 36, "flags": 4}, + {"matrix": [2, 7], "x": 122, "y": 34, "flags": 4}, + {"matrix": [2, 8], "x": 136, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 150, "y": 29, "flags": 4}, + {"matrix": [2, 10], "x": 164, "y": 29, "flags": 4}, + {"matrix": [2, 11], "x": 177, "y": 29, "flags": 4}, + {"matrix": [2, 13], "x": 200, "y": 29, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 29, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 42, "flags": 4}, + {"matrix": [3, 1], "x": 27, "y": 42, "flags": 4}, + {"matrix": [3, 2], "x": 42, "y": 43, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 46, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 82, "y": 51, "flags": 4}, + {"matrix": [3, 6], "x": 104, "y": 51, "flags": 4}, + {"matrix": [3, 7], "x": 118, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 131, "y": 46, "flags": 4}, + {"matrix": [3, 9], "x": 145, "y": 44, "flags": 4}, + {"matrix": [3, 10], "x": 159, "y": 43, "flags": 4}, + {"matrix": [3, 11], "x": 173, "y": 43, "flags": 4}, + {"matrix": [3, 12], "x": 192, "y": 43, "flags": 4}, + {"matrix": [3, 13], "x": 214, "y": 46, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 55, "flags": 4}, + {"matrix": [4, 2], "x": 40, "y": 58, "flags": 4}, + {"matrix": [4, 3], "x": 62, "y": 61, "flags": 4}, + {"matrix": [4, 5], "x": 86, "y": 64, "flags": 1}, + {"matrix": [4, 7], "x": 119, "y": 62, "flags": 4}, + {"matrix": [4, 9], "x": 147, "y": 58, "flags": 4}, + {"matrix": [4, 12], "x": 201, "y": 60, "flags": 1}, + {"matrix": [4, 13], "x": 214, "y": 60, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 60, "flags": 1} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/kbdfans/maja/maja.c b/keyboards/kbdfans/maja/maja.c index cc073930bc..c1db8e606c 100755 --- a/keyboards/kbdfans/maja/maja.c +++ b/keyboards/kbdfans/maja/maja.c @@ -74,26 +74,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C8_16, C7_16, C6_16} // LD17 }; -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,}, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43}, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, NO_LED}, - { 58, NO_LED, 59, 60, NO_LED, 61, NO_LED, 62, NO_LED, 63, NO_LED, NO_LED, 64, 65, 66} -}, { - {4,1},{18,1},{31,0},{46,3},{59,5},{73,7},{86,10},{107,9},{121,7},{134,4},{148,2},{162,0},{176,2},{196,2},{224,0}, - {5,15},{22,15},{37,15},{50,17},{64,20},{77,22},{103,23},{117,21},{130,19},{143,16},{158,15},{171,16},{186,16},{202,16},{224,16}, - {4,28},{23,28},{38,29},{51,31},{65,34},{78,36},{109,36},{122,34},{136,32},{150,29},{164,29},{177,29},{200,29},{224,29}, - {5,42},{27,42},{42,43},{55,46},{69,48},{82,51},{104,51},{118,48},{131,46},{145,44},{159,43},{173,43},{192,43},{214,46}, - {0,55},{40,58},{62,61},{86,64},{119,62},{147,58},{201,60},{214,60},{224,60} -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 1, 4, 4, 1, 1, 1 -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kbdfans/odin/rgb/keyboard.json b/keyboards/kbdfans/odin/rgb/keyboard.json index 1fb5a833ec..8e14e1210a 100644 --- a/keyboards/kbdfans/odin/rgb/keyboard.json +++ b/keyboards/kbdfans/odin/rgb/keyboard.json @@ -59,6 +59,112 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 36, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 108, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 156, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 168, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 16], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 17], "x": 204, "y": 0, "flags": 4}, + {"matrix": [0, 18], "x": 216, "y": 0, "flags": 4}, + {"matrix": [0, 19], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 19], "x": 224, "y": 14, "flags": 4}, + {"matrix": [1, 18], "x": 216, "y": 14, "flags": 4}, + {"matrix": [1, 17], "x": 204, "y": 14, "flags": 4}, + {"matrix": [1, 16], "x": 192, "y": 14, "flags": 4}, + {"matrix": [1, 15], "x": 180, "y": 14, "flags": 4}, + {"matrix": [1, 13], "x": 156, "y": 14, "flags": 4}, + {"matrix": [1, 12], "x": 144, "y": 14, "flags": 4}, + {"matrix": [1, 11], "x": 132, "y": 14, "flags": 4}, + {"matrix": [1, 10], "x": 120, "y": 14, "flags": 4}, + {"matrix": [1, 9], "x": 108, "y": 14, "flags": 4}, + {"matrix": [1, 8], "x": 96, "y": 14, "flags": 4}, + {"matrix": [1, 7], "x": 84, "y": 14, "flags": 4}, + {"matrix": [1, 6], "x": 72, "y": 14, "flags": 4}, + {"matrix": [1, 5], "x": 60, "y": 14, "flags": 4}, + {"matrix": [1, 4], "x": 48, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 14, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 14, "flags": 4}, + {"matrix": [1, 1], "x": 12, "y": 14, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 14, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 27, "flags": 4}, + {"matrix": [2, 1], "x": 12, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 24, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 48, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 60, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 72, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 84, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 96, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 108, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 120, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 132, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 144, "y": 27, "flags": 4}, + {"matrix": [2, 13], "x": 156, "y": 27, "flags": 4}, + {"matrix": [2, 15], "x": 180, "y": 27, "flags": 4}, + {"matrix": [2, 16], "x": 192, "y": 27, "flags": 4}, + {"matrix": [2, 17], "x": 204, "y": 27, "flags": 4}, + {"matrix": [2, 18], "x": 216, "y": 27, "flags": 4}, + {"matrix": [2, 19], "x": 224, "y": 33, "flags": 4}, + {"matrix": [3, 18], "x": 216, "y": 40, "flags": 4}, + {"matrix": [3, 17], "x": 204, "y": 40, "flags": 4}, + {"matrix": [3, 16], "x": 192, "y": 40, "flags": 4}, + {"x": 224, "y": 0, "flags": 4}, + {"x": 0, "y": 0, "flags": 4}, + {"x": 0, "y": 64, "flags": 4}, + {"x": 224, "y": 64, "flags": 4}, + {"matrix": [3, 13], "x": 156, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 132, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 120, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 108, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 96, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 84, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 72, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 48, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 24, "y": 40, "flags": 4}, + {"matrix": [3, 1], "x": 12, "y": 40, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 40, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 24, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 36, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 48, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 60, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 72, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 84, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 96, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 108, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 132, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 156, "y": 52, "flags": 4}, + {"matrix": [4, 15], "x": 180, "y": 52, "flags": 4}, + {"matrix": [4, 16], "x": 192, "y": 52, "flags": 4}, + {"matrix": [4, 17], "x": 204, "y": 52, "flags": 4}, + {"matrix": [4, 18], "x": 216, "y": 52, "flags": 4}, + {"matrix": [4, 19], "x": 224, "y": 58, "flags": 4}, + {"matrix": [5, 18], "x": 216, "y": 64, "flags": 4}, + {"matrix": [5, 17], "x": 204, "y": 64, "flags": 4}, + {"matrix": [5, 16], "x": 192, "y": 64, "flags": 4}, + {"matrix": [5, 15], "x": 180, "y": 64, "flags": 4}, + {"matrix": [5, 14], "x": 168, "y": 64, "flags": 4}, + {"matrix": [5, 13], "x": 156, "y": 64, "flags": 4}, + {"matrix": [5, 11], "x": 132, "y": 64, "flags": 4}, + {"matrix": [5, 6], "x": 72, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 24, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 12, "y": 64, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4} + ], "max_brightness": 150, "sleep": true }, diff --git a/keyboards/kbdfans/odin/rgb/rgb.c b/keyboards/kbdfans/odin/rgb/rgb.c index 2774ca7a6e..1cfe8d487c 100644 --- a/keyboards/kbdfans/odin/rgb/rgb.c +++ b/keyboards/kbdfans/odin/rgb/rgb.c @@ -16,31 +16,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - { 0, NO_LED, 1, 2, 3, 4, NO_LED, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17 }, - { 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, NO_LED, 22, 21, 20, 19, 18 }, - { 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, NO_LED, 51, 52, 53, 54, 55 }, - { 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, NO_LED, 63, NO_LED, NO_LED, 58, 57, 56, NO_LED }, - { 76, NO_LED, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, NO_LED, 87, NO_LED, 88, 89, 90, 91, 92 }, - { 103, 102, 101, NO_LED, NO_LED, NO_LED, 100, NO_LED, NO_LED, NO_LED, NO_LED, 99, NO_LED, 98, 97, 96, 95, 94, 93, NO_LED } - }, { - { 0, 0 }, { 24, 0 }, { 36, 0 }, { 48, 0 }, { 60, 0 }, { 84, 0 }, { 96, 0 }, { 108, 0 }, { 120, 0 }, { 132, 0 }, { 144, 0 }, { 156, 0 }, { 168, 0 }, { 180, 0 }, { 192, 0 }, { 204, 0 }, { 216, 0 }, { 224, 0 }, - { 224, 14 }, { 216, 14 }, { 204, 14 }, { 192, 14 }, { 180, 14 }, { 156, 14 }, { 144, 14 }, { 132, 14 }, { 120, 14 }, { 108, 14 }, { 96, 14 }, { 84, 14 }, { 72, 14 }, { 60, 14 }, { 48, 14 }, { 36, 14 }, { 24, 14 }, { 12, 14 }, { 0, 14 }, - { 0, 27 }, { 12, 27 }, { 24, 27 }, { 36, 27 }, { 48, 27 }, { 60, 27 }, { 72, 27 }, { 84, 27 }, { 96, 27 }, { 108, 27 }, { 120, 27 }, { 132, 27 }, { 144, 27 }, { 156, 27 }, { 180, 27 }, { 192, 27 }, { 204, 27 }, { 216, 27 }, { 224, 33 }, - { 216, 40 }, { 204, 40 }, { 192, 40 }, { 224, 0 }, { 0, 0 }, { 0, 64 }, { 224, 64 }, { 156, 40 }, { 132, 40 }, { 120, 40 }, { 108, 40 }, { 96, 40 }, { 84, 40 }, { 72, 40 }, { 60, 40 }, { 48, 40 }, { 36, 40 }, { 24, 40 }, { 12, 40 }, { 0, 40 }, - { 0, 52 }, { 24, 52 }, { 36, 52 }, { 48, 52 }, { 60, 52 }, { 72, 52 }, { 84, 52 }, { 96, 52 }, { 108, 52 }, { 120, 52 }, { 132, 52 }, { 156, 52 }, { 180, 52 }, { 192, 52 }, { 204, 52 }, { 216, 52 }, { 224, 58 }, - { 216, 64 }, { 204, 64 }, { 192, 64 }, { 180, 64 }, { 168, 64 }, { 156, 64 }, { 132, 64 }, { 72, 64 }, { 24, 64 }, { 12, 64 }, { 0, 64 } - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; From 177ff71d0c727632ff30e2d0bc066b9214177096 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 03:04:40 -0600 Subject: [PATCH 033/255] Migrate `g_led_config` to DD (H) (#25599) --- keyboards/hadron/ver3/keyboard.json | 14 +- keyboards/hadron/ver3/ver3.c | 18 --- keyboards/handwired/colorlice/colorlice.c | 39 ----- keyboards/handwired/colorlice/keyboard.json | 71 +++++++++ keyboards/handwired/dygma/raise/ansi/ansi.c | 41 ------ .../handwired/dygma/raise/ansi/keyboard.json | 136 ++++++++++++++++++ keyboards/handwired/dygma/raise/iso/iso.c | 39 ----- .../handwired/dygma/raise/iso/keyboard.json | 136 ++++++++++++++++++ keyboards/handwired/hnah108/hnah108.c | 47 ------ keyboards/handwired/hnah108/keyboard.json | 34 ++++- keyboards/handwired/hnah40rgb/hnah40rgb.c | 47 ------ keyboards/handwired/hnah40rgb/keyboard.json | 52 +++++++ .../handwired/hnah40rgb/keymaps/ansi/config.h | 18 --- keyboards/handwired/orbweaver/keyboard.json | 25 +++- keyboards/handwired/orbweaver/orbweaver.c | 53 ++----- .../tractyl_manuform/4x6_right/4x6_right.c | 33 ----- .../tractyl_manuform/4x6_right/keyboard.json | 56 ++++++++ keyboards/hfdkb/ac001/ac001.c | 36 ----- keyboards/hfdkb/ac001/keyboard.json | 7 + .../chinese_pcb/devil68_pro/devil68_pro.c | 49 ------- .../chinese_pcb/devil68_pro/keyboard.json | 88 ++++++++++++ keyboards/hotdox76v2/hotdox76v2.c | 50 ------- keyboards/hotdox76v2/keyboard.json | 88 ++++++++++++ 23 files changed, 714 insertions(+), 463 deletions(-) delete mode 100644 keyboards/handwired/colorlice/colorlice.c delete mode 100644 keyboards/handwired/hnah108/hnah108.c delete mode 100644 keyboards/handwired/hnah40rgb/hnah40rgb.c delete mode 100644 keyboards/handwired/hnah40rgb/keymaps/ansi/config.h delete mode 100644 keyboards/hfdkb/ac001/ac001.c delete mode 100644 keyboards/horrortroll/chinese_pcb/devil68_pro/devil68_pro.c diff --git a/keyboards/hadron/ver3/keyboard.json b/keyboards/hadron/ver3/keyboard.json index f3e4bba06f..525b15df80 100644 --- a/keyboards/hadron/ver3/keyboard.json +++ b/keyboards/hadron/ver3/keyboard.json @@ -3,7 +3,19 @@ "device_version": "0.0.3" }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [1, 13], "x": 195, "y": 3, "flags": 4}, + {"matrix": [4, 13], "x": 195, "y": 16, "flags": 4}, + {"matrix": [4, 10], "x": 150, "y": 16, "flags": 4}, + {"matrix": [4, 7], "x": 105, "y": 16, "flags": 4}, + {"matrix": [4, 4], "x": 60, "y": 16, "flags": 4}, + {"matrix": [4, 1], "x": 15, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 15, "y": 3, "flags": 4}, + {"matrix": [1, 4], "x": 60, "y": 3, "flags": 4}, + {"matrix": [1, 7], "x": 105, "y": 3, "flags": 4}, + {"matrix": [1, 10], "x": 150, "y": 3, "flags": 4} + ] }, "matrix_pins": { "cols": ["B8", "B2", "B10", "A0", "A1", "A2", "B0", "A3", "B1", "A6", "A7", "B12", "C13", "B11", "B9"], diff --git a/keyboards/hadron/ver3/ver3.c b/keyboards/hadron/ver3/ver3.c index d337fd9681..212aa15725 100644 --- a/keyboards/hadron/ver3/ver3.c +++ b/keyboards/hadron/ver3/ver3.c @@ -15,24 +15,6 @@ */ #include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -#include "rgb_matrix.h" - -led_config_t g_led_config = { { - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 6, NO_LED, NO_LED, 7, NO_LED, NO_LED, 8, NO_LED, NO_LED, 9, NO_LED, NO_LED, 0, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 5, NO_LED, NO_LED, 4, NO_LED, NO_LED, 3, NO_LED, NO_LED, 2, NO_LED, NO_LED, 1, NO_LED } -}, { - { 195, 3 }, { 195, 16 }, { 150, 16 }, { 105, 16 }, { 60, 16 }, { 15, 16 }, { 15, 3 }, { 60, 3 }, { 105, 3 }, { 150, 3 } -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 -} }; - -#endif - #ifdef OLED_ENABLE oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_180; } diff --git a/keyboards/handwired/colorlice/colorlice.c b/keyboards/handwired/colorlice/colorlice.c deleted file mode 100644 index 81e87d8c7a..0000000000 --- a/keyboards/handwired/colorlice/colorlice.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2019 marhalloweenvt - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, NO_LED }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, NO_LED, 44, NO_LED }, - { 58, 57, 56, 55, 54, 53, NO_LED, 52, 51, 50, 49, 48, 47, 46, 45, NO_LED}, - { 59, NO_LED, 60, 61, 62, NO_LED, NO_LED,63, NO_LED, NO_LED, 64, 65,66,67, 68, NO_LED } -}, { - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 195, 0 }, { 210, 0 }, { 224, 0 }, - { 224, 16 }, { 210, 16 }, { 195, 16 }, { 180, 16 }, { 165, 16 }, { 150, 16 }, { 135, 16 }, { 120, 16 }, { 90, 16 }, { 75, 16 }, { 60, 16 }, { 45, 16 }, { 30, 16 }, { 15, 16 }, { 0, 16 }, - { 0, 32 }, { 15, 32 }, { 30, 32 }, { 45, 32 }, { 60, 32 }, { 75, 32 }, { 90, 32 }, { 135, 32 }, { 150, 32 }, { 165, 32 }, { 180, 32 }, { 195, 32 }, { 210, 32 }, { 224, 32 }, - { 225, 48 }, { 224, 48 }, { 210, 48 }, { 195, 48 }, { 180, 48 }, { 165, 48 }, { 150, 48 }, { 135, 48 }, { 90, 48 }, { 75, 48 }, { 60, 48 }, { 45, 48 }, { 30, 48 }, { 15, 48 }, - { 15, 64 }, { 45, 64 }, { 75, 64 }, { 90, 64 }, { 150, 64 }, { 180, 64 }, { 210, 64 }, { 215, 64 }, { 220, 64 }, { 225, 64 } -}, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -} }; -#endif diff --git a/keyboards/handwired/colorlice/keyboard.json b/keyboards/handwired/colorlice/keyboard.json index b2606afb89..5780f012d5 100644 --- a/keyboards/handwired/colorlice/keyboard.json +++ b/keyboards/handwired/colorlice/keyboard.json @@ -57,6 +57,77 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 195, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 210, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [1, 13], "x": 210, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 195, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 180, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 165, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 150, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 135, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 90, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 75, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 60, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 45, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 30, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 15, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 15, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 30, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 75, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 90, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 135, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 150, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 165, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 180, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 195, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 210, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 195, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 150, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 135, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 90, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 60, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 30, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 15, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 15, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 45, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 75, "y": 64, "flags": 1}, + {"matrix": [4, 4], "x": 90, "y": 64, "flags": 1}, + {"matrix": [4, 7], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 180, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 215, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 220, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/handwired/dygma/raise/ansi/ansi.c b/keyboards/handwired/dygma/raise/ansi/ansi.c index 67b84c3bc8..de2b9dedf6 100644 --- a/keyboards/handwired/dygma/raise/ansi/ansi.c +++ b/keyboards/handwired/dygma/raise/ansi/ansi.c @@ -38,44 +38,3 @@ const uint8_t led_map[RGB_MATRIX_LED_COUNT] = { 34 + LPH, 35 + LPH, 36 + LPH, 37 + LPH, 38 + LPH, 39 + LPH, 40 + LPH, 41 + LPH, 42 + LPH, 43 + LPH, 44 + LPH, 45 + LPH, 46 + LPH, 47 + LPH, 48 + LPH, 49 + LPH, 50 + LPH, 51 + LPH, 52 + LPH, 53 + LPH, 54 + LPH, 55 + LPH, 56 + LPH, 57 + LPH, 58 + LPH, 59 + LPH, 60 + LPH, 61 + LPH, 62 + LPH, 63 + LPH, 64 + LPH, 65 + LPH, 0xff }; - -// taken from "key_led_map" and reformatted -// ISO & ANSI (ANSI has no LED at 20, but this key can never be pressed so we can have just one map). -led_config_t g_led_config = { { - // left hand - { 0 , 1 , 2 , 3 , 4 , 5 , 6 , NO_LED } , - { 7 , 8 , 9 , 10 , 11 , 12 , NO_LED , NO_LED } , - { 13 , 14 , 15 , 16 , 17 , 18 , NO_LED , NO_LED } , - { 19 , 20 , 21 , 22 , 23 , 24 , 25 , NO_LED } , - { 26 , 27 , 28 , 29 , 30 , NO_LED , 31 , 32 } , - - // right hand - { 33 , 34 , 35 , 36 , 37 , 38 , 39 , NO_LED } , - { 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 } , - { 48 , 49 , 50 , 51 , 52 , 53 , 54 , NO_LED } , - { 55 , 56 , 57 , 58 , 59 , 60 , NO_LED , NO_LED } , - { 61 , 62 , 63 , 64 , 65 , 66 , 67 , 68 } - }, { - // generated from the svg image of the keyboard, see create-led-config.js - {82, 3}, {88, 3}, {94, 3}, {100, 3}, {106, 3}, {112, 3}, {118, 3}, {84, 10}, {91, 10}, {97, 10}, {103, 10}, {109, 10}, - {115, 10}, {84, 16}, {92, 16}, {98, 16}, {104, 16}, {110, 16}, {116, 16}, {85, 22}, - {0, 0}, - {94, 22}, {100, 22}, {106, 22}, {112, 22}, {118, 22}, {83, 28}, {90, 28}, {98, 28}, {106, 28}, {116, 28}, {111, 34}, - {118, 34}, {168, 3}, {159, 3}, {153, 3}, {147, 3}, {141, 3}, {135, 3}, {129, 3}, {168, 16}, {162, 10}, {156, 10}, - {150, 10}, {144, 10}, {139, 10}, {133, 10}, {127, 10}, {170, 10}, {159, 16}, {153, 16}, {147, 16}, {141, 16}, {135, 16}, - {129, 16}, {166, 22}, {154, 22}, {148, 22}, {142, 22}, {136, 22}, {130, 22}, {170, 28}, {163, 28}, {156, 28}, {149, 28}, - {140, 28}, {131, 28}, {136, 34}, {128, 34}, {78, 13}, {78, 6}, {80, 0}, {87, 0}, {95, 0}, {103, 0}, {111, 0}, {119, 0}, - {122, 3}, {121, 9}, {120, 15}, {122, 21}, {123, 27}, {123, 33}, {120, 38}, {116, 42}, {114, 48}, {112, 55}, {109, 61}, - {103, 64}, {96, 64}, {88, 64}, {81, 63}, {76, 60}, {75, 52}, {75, 46}, {74, 38}, {74, 32}, {75, 27}, {77, 21}, {175, 10}, - {175, 4}, {172, 0}, {164, 0}, {157, 0}, {149, 0}, {142, 0}, {134, 0}, {127, 0}, {123, 3}, {122, 8}, {122, 15}, {124, 21}, - {124, 27}, {124, 33}, {126, 38}, {131, 42}, {134, 48}, {135, 55}, {137, 61}, {143, 63}, {150, 63}, {158, 63}, {166, 63}, - {173, 63}, {177, 59}, {178, 49}, {179, 40}, {179, 31}, {177, 25}, {175, 20}, {175, 15}, {123, 54} - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 0, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 - } -}; diff --git a/keyboards/handwired/dygma/raise/ansi/keyboard.json b/keyboards/handwired/dygma/raise/ansi/keyboard.json index 9abe98fdfa..703ae91244 100644 --- a/keyboards/handwired/dygma/raise/ansi/keyboard.json +++ b/keyboards/handwired/dygma/raise/ansi/keyboard.json @@ -6,6 +6,142 @@ "rgb_matrix": true, "raw": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 82, "y": 3, "flags": 4}, + {"matrix": [0, 1], "x": 88, "y": 3, "flags": 4}, + {"matrix": [0, 2], "x": 94, "y": 3, "flags": 4}, + {"matrix": [0, 3], "x": 100, "y": 3, "flags": 4}, + {"matrix": [0, 4], "x": 106, "y": 3, "flags": 4}, + {"matrix": [0, 5], "x": 112, "y": 3, "flags": 4}, + {"matrix": [0, 6], "x": 118, "y": 3, "flags": 4}, + {"matrix": [1, 0], "x": 84, "y": 10, "flags": 4}, + {"matrix": [1, 1], "x": 91, "y": 10, "flags": 4}, + {"matrix": [1, 2], "x": 97, "y": 10, "flags": 4}, + {"matrix": [1, 3], "x": 103, "y": 10, "flags": 4}, + {"matrix": [1, 4], "x": 109, "y": 10, "flags": 4}, + {"matrix": [1, 5], "x": 115, "y": 10, "flags": 4}, + {"matrix": [2, 0], "x": 84, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 92, "y": 16, "flags": 4}, + {"matrix": [2, 2], "x": 98, "y": 16, "flags": 4}, + {"matrix": [2, 3], "x": 104, "y": 16, "flags": 4}, + {"matrix": [2, 4], "x": 110, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 116, "y": 16, "flags": 4}, + {"matrix": [3, 0], "x": 85, "y": 22, "flags": 4}, + {"matrix": [3, 1], "x": 0, "y": 0, "flags": 0}, + {"matrix": [3, 2], "x": 94, "y": 22, "flags": 4}, + {"matrix": [3, 3], "x": 100, "y": 22, "flags": 4}, + {"matrix": [3, 4], "x": 106, "y": 22, "flags": 4}, + {"matrix": [3, 5], "x": 112, "y": 22, "flags": 4}, + {"matrix": [3, 6], "x": 118, "y": 22, "flags": 4}, + {"matrix": [4, 0], "x": 83, "y": 28, "flags": 4}, + {"matrix": [4, 1], "x": 90, "y": 28, "flags": 4}, + {"matrix": [4, 2], "x": 98, "y": 28, "flags": 4}, + {"matrix": [4, 3], "x": 106, "y": 28, "flags": 4}, + {"matrix": [4, 4], "x": 116, "y": 28, "flags": 4}, + {"matrix": [4, 6], "x": 111, "y": 34, "flags": 4}, + {"matrix": [4, 7], "x": 118, "y": 34, "flags": 4}, + {"matrix": [5, 0], "x": 168, "y": 3, "flags": 4}, + {"matrix": [5, 1], "x": 159, "y": 3, "flags": 4}, + {"matrix": [5, 2], "x": 153, "y": 3, "flags": 4}, + {"matrix": [5, 3], "x": 147, "y": 3, "flags": 4}, + {"matrix": [5, 4], "x": 141, "y": 3, "flags": 4}, + {"matrix": [5, 5], "x": 135, "y": 3, "flags": 4}, + {"matrix": [5, 6], "x": 129, "y": 3, "flags": 4}, + {"matrix": [6, 0], "x": 168, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 162, "y": 10, "flags": 4}, + {"matrix": [6, 2], "x": 156, "y": 10, "flags": 4}, + {"matrix": [6, 3], "x": 150, "y": 10, "flags": 4}, + {"matrix": [6, 4], "x": 144, "y": 10, "flags": 4}, + {"matrix": [6, 5], "x": 139, "y": 10, "flags": 4}, + {"matrix": [6, 6], "x": 133, "y": 10, "flags": 4}, + {"matrix": [6, 7], "x": 127, "y": 10, "flags": 4}, + {"matrix": [7, 0], "x": 170, "y": 10, "flags": 4}, + {"matrix": [7, 1], "x": 159, "y": 16, "flags": 4}, + {"matrix": [7, 2], "x": 153, "y": 16, "flags": 4}, + {"matrix": [7, 3], "x": 147, "y": 16, "flags": 4}, + {"matrix": [7, 4], "x": 141, "y": 16, "flags": 4}, + {"matrix": [7, 5], "x": 135, "y": 16, "flags": 4}, + {"matrix": [7, 6], "x": 129, "y": 16, "flags": 4}, + {"matrix": [8, 0], "x": 166, "y": 22, "flags": 4}, + {"matrix": [8, 1], "x": 154, "y": 22, "flags": 4}, + {"matrix": [8, 2], "x": 148, "y": 22, "flags": 4}, + {"matrix": [8, 3], "x": 142, "y": 22, "flags": 4}, + {"matrix": [8, 4], "x": 136, "y": 22, "flags": 4}, + {"matrix": [8, 5], "x": 130, "y": 22, "flags": 4}, + {"matrix": [9, 0], "x": 170, "y": 28, "flags": 4}, + {"matrix": [9, 1], "x": 163, "y": 28, "flags": 4}, + {"matrix": [9, 2], "x": 156, "y": 28, "flags": 4}, + {"matrix": [9, 3], "x": 149, "y": 28, "flags": 4}, + {"matrix": [9, 4], "x": 140, "y": 28, "flags": 4}, + {"matrix": [9, 5], "x": 131, "y": 28, "flags": 4}, + {"matrix": [9, 6], "x": 136, "y": 34, "flags": 4}, + {"matrix": [9, 7], "x": 128, "y": 34, "flags": 4}, + {"x": 78, "y": 13, "flags": 2}, + {"x": 78, "y": 6, "flags": 2}, + {"x": 80, "y": 0, "flags": 2}, + {"x": 87, "y": 0, "flags": 2}, + {"x": 95, "y": 0, "flags": 2}, + {"x": 103, "y": 0, "flags": 2}, + {"x": 111, "y": 0, "flags": 2}, + {"x": 119, "y": 0, "flags": 2}, + {"x": 122, "y": 3, "flags": 2}, + {"x": 121, "y": 9, "flags": 2}, + {"x": 120, "y": 15, "flags": 2}, + {"x": 122, "y": 21, "flags": 2}, + {"x": 123, "y": 27, "flags": 2}, + {"x": 123, "y": 33, "flags": 2}, + {"x": 120, "y": 38, "flags": 2}, + {"x": 116, "y": 42, "flags": 2}, + {"x": 114, "y": 48, "flags": 2}, + {"x": 112, "y": 55, "flags": 2}, + {"x": 109, "y": 61, "flags": 2}, + {"x": 103, "y": 64, "flags": 2}, + {"x": 96, "y": 64, "flags": 2}, + {"x": 88, "y": 64, "flags": 2}, + {"x": 81, "y": 63, "flags": 2}, + {"x": 76, "y": 60, "flags": 2}, + {"x": 75, "y": 52, "flags": 2}, + {"x": 75, "y": 46, "flags": 2}, + {"x": 74, "y": 38, "flags": 2}, + {"x": 74, "y": 32, "flags": 2}, + {"x": 75, "y": 27, "flags": 2}, + {"x": 77, "y": 21, "flags": 2}, + {"x": 175, "y": 10, "flags": 2}, + {"x": 175, "y": 4, "flags": 2}, + {"x": 172, "y": 0, "flags": 2}, + {"x": 164, "y": 0, "flags": 2}, + {"x": 157, "y": 0, "flags": 2}, + {"x": 149, "y": 0, "flags": 2}, + {"x": 142, "y": 0, "flags": 2}, + {"x": 134, "y": 0, "flags": 2}, + {"x": 127, "y": 0, "flags": 2}, + {"x": 123, "y": 3, "flags": 2}, + {"x": 122, "y": 8, "flags": 2}, + {"x": 122, "y": 15, "flags": 2}, + {"x": 124, "y": 21, "flags": 2}, + {"x": 124, "y": 27, "flags": 2}, + {"x": 124, "y": 33, "flags": 2}, + {"x": 126, "y": 38, "flags": 2}, + {"x": 131, "y": 42, "flags": 2}, + {"x": 134, "y": 48, "flags": 2}, + {"x": 135, "y": 55, "flags": 2}, + {"x": 137, "y": 61, "flags": 2}, + {"x": 143, "y": 63, "flags": 2}, + {"x": 150, "y": 63, "flags": 2}, + {"x": 158, "y": 63, "flags": 2}, + {"x": 166, "y": 63, "flags": 2}, + {"x": 173, "y": 63, "flags": 2}, + {"x": 177, "y": 59, "flags": 2}, + {"x": 178, "y": 49, "flags": 2}, + {"x": 179, "y": 40, "flags": 2}, + {"x": 179, "y": 31, "flags": 2}, + {"x": 177, "y": 25, "flags": 2}, + {"x": 175, "y": 20, "flags": 2}, + {"x": 175, "y": 15, "flags": 2}, + {"x": 123, "y": 54, "flags": 4} + ] + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/handwired/dygma/raise/iso/iso.c b/keyboards/handwired/dygma/raise/iso/iso.c index 9643af7b8c..247a9646df 100644 --- a/keyboards/handwired/dygma/raise/iso/iso.c +++ b/keyboards/handwired/dygma/raise/iso/iso.c @@ -38,42 +38,3 @@ const uint8_t led_map[RGB_MATRIX_LED_COUNT] = { 34 + LPH, 35 + LPH, 36 + LPH, 37 + LPH, 38 + LPH, 39 + LPH, 40 + LPH, 41 + LPH, 42 + LPH, 43 + LPH, 44 + LPH, 45 + LPH, 46 + LPH, 47 + LPH, 48 + LPH, 49 + LPH, 50 + LPH, 51 + LPH, 52 + LPH, 53 + LPH, 54 + LPH, 55 + LPH, 56 + LPH, 57 + LPH, 58 + LPH, 59 + LPH, 60 + LPH, 61 + LPH, 62 + LPH, 63 + LPH, 64 + LPH, 65 + LPH, 0xff }; - -// taken from "key_led_map" and reformatted -// ISO & ANSI (ANSI has no LED at 20, but this key can never be pressed so we can have just one map). -led_config_t g_led_config = { { - // left hand - { 0 , 1 , 2 , 3 , 4 , 5 , 6 , NO_LED } , - { 7 , 8 , 9 , 10 , 11 , 12 , NO_LED , NO_LED } , - { 13 , 14 , 15 , 16 , 17 , 18 , NO_LED , NO_LED } , - { 19 , 20 , 21 , 22 , 23 , 24 , 25 , NO_LED } , - { 26 , 27 , 28 , 29 , 30 , NO_LED , 31 , 32 } , - - // right hand - { 33 , 34 , 35 , 36 , 37 , 38 , 39 , NO_LED } , - { 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 } , - { 48 , 49 , 50 , 51 , 52 , 53 , 54 , NO_LED } , - { 55 , 56 , 57 , 58 , 59 , 60 , NO_LED , NO_LED } , - { 61 , 62 , 63 , 64 , 65 , 66 , 67 , 68 } - }, { - // generated from the svg image of the keyboard, see create-led-config.js - {82, 3}, {88, 3}, {94, 3}, {100, 3}, {106, 3}, {112, 3}, {118, 3}, {84, 10}, {91, 10}, {97, 10}, {103, 10}, {109, 10}, - {115, 10}, {84, 16}, {92, 16}, {98, 16}, {104, 16}, {110, 16}, {116, 16}, {82, 22}, {88, 22}, {94, 22}, {100, 22}, - {106, 22}, {112, 22}, {118, 22}, {83, 28}, {90, 28}, {98, 28}, {106, 28}, {116, 28}, {111, 34}, {118, 34}, {168, 3}, - {159, 3}, {153, 3}, {147, 3}, {141, 3}, {135, 3}, {129, 3}, {170, 13}, {162, 10}, {156, 10}, {150, 10}, {144, 10}, - {139, 10}, {133, 10}, {127, 10}, {164, 16}, {158, 16}, {152, 16}, {146, 16}, {140, 16}, {134, 16}, {128, 16}, {166, 22}, - {154, 22}, {148, 22}, {142, 22}, {136, 22}, {130, 22}, {170, 28}, {163, 28}, {156, 28}, {149, 28}, {140, 28}, {131, 28}, - {136, 34}, {128, 34}, {78, 13}, {78, 6}, {80, 0}, {87, 0}, {95, 0}, {103, 0}, {111, 0}, {119, 0}, {122, 3}, {121, 9}, - {120, 15}, {122, 21}, {123, 27}, {123, 33}, {120, 38}, {116, 42}, {114, 48}, {112, 55}, {109, 61}, {103, 64}, {96, 64}, - {88, 64}, {81, 63}, {76, 60}, {75, 52}, {75, 46}, {74, 38}, {74, 32}, {75, 27}, {77, 21}, {175, 10}, {175, 4}, {172, 0}, - {164, 0}, {157, 0}, {149, 0}, {142, 0}, {134, 0}, {127, 0}, {123, 3}, {122, 8}, {122, 15}, {124, 21}, {124, 27}, {124, 33}, - {126, 38}, {131, 42}, {134, 48}, {135, 55}, {137, 61}, {143, 63}, {150, 63}, {158, 63}, {166, 63}, {173, 63}, {177, 59}, - {178, 49}, {179, 40}, {179, 31}, {177, 25}, {175, 20}, {175, 15}, {123, 54} - - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4 - } -}; diff --git a/keyboards/handwired/dygma/raise/iso/keyboard.json b/keyboards/handwired/dygma/raise/iso/keyboard.json index 9abe98fdfa..057851bd8c 100644 --- a/keyboards/handwired/dygma/raise/iso/keyboard.json +++ b/keyboards/handwired/dygma/raise/iso/keyboard.json @@ -6,6 +6,142 @@ "rgb_matrix": true, "raw": true }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 82, "y": 3, "flags": 4}, + {"matrix": [0, 1], "x": 88, "y": 3, "flags": 4}, + {"matrix": [0, 2], "x": 94, "y": 3, "flags": 4}, + {"matrix": [0, 3], "x": 100, "y": 3, "flags": 4}, + {"matrix": [0, 4], "x": 106, "y": 3, "flags": 4}, + {"matrix": [0, 5], "x": 112, "y": 3, "flags": 4}, + {"matrix": [0, 6], "x": 118, "y": 3, "flags": 4}, + {"matrix": [1, 0], "x": 84, "y": 10, "flags": 4}, + {"matrix": [1, 1], "x": 91, "y": 10, "flags": 4}, + {"matrix": [1, 2], "x": 97, "y": 10, "flags": 4}, + {"matrix": [1, 3], "x": 103, "y": 10, "flags": 4}, + {"matrix": [1, 4], "x": 109, "y": 10, "flags": 4}, + {"matrix": [1, 5], "x": 115, "y": 10, "flags": 4}, + {"matrix": [2, 0], "x": 84, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 92, "y": 16, "flags": 4}, + {"matrix": [2, 2], "x": 98, "y": 16, "flags": 4}, + {"matrix": [2, 3], "x": 104, "y": 16, "flags": 4}, + {"matrix": [2, 4], "x": 110, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 116, "y": 16, "flags": 4}, + {"matrix": [3, 0], "x": 82, "y": 22, "flags": 4}, + {"matrix": [3, 1], "x": 88, "y": 22, "flags": 4}, + {"matrix": [3, 2], "x": 94, "y": 22, "flags": 4}, + {"matrix": [3, 3], "x": 100, "y": 22, "flags": 4}, + {"matrix": [3, 4], "x": 106, "y": 22, "flags": 4}, + {"matrix": [3, 5], "x": 112, "y": 22, "flags": 4}, + {"matrix": [3, 6], "x": 118, "y": 22, "flags": 4}, + {"matrix": [4, 0], "x": 83, "y": 28, "flags": 4}, + {"matrix": [4, 1], "x": 90, "y": 28, "flags": 4}, + {"matrix": [4, 2], "x": 98, "y": 28, "flags": 4}, + {"matrix": [4, 3], "x": 106, "y": 28, "flags": 4}, + {"matrix": [4, 4], "x": 116, "y": 28, "flags": 4}, + {"matrix": [4, 6], "x": 111, "y": 34, "flags": 4}, + {"matrix": [4, 7], "x": 118, "y": 34, "flags": 4}, + {"matrix": [5, 0], "x": 168, "y": 3, "flags": 4}, + {"matrix": [5, 1], "x": 159, "y": 3, "flags": 4}, + {"matrix": [5, 2], "x": 153, "y": 3, "flags": 4}, + {"matrix": [5, 3], "x": 147, "y": 3, "flags": 4}, + {"matrix": [5, 4], "x": 141, "y": 3, "flags": 4}, + {"matrix": [5, 5], "x": 135, "y": 3, "flags": 4}, + {"matrix": [5, 6], "x": 129, "y": 3, "flags": 4}, + {"matrix": [6, 0], "x": 170, "y": 13, "flags": 4}, + {"matrix": [6, 1], "x": 162, "y": 10, "flags": 4}, + {"matrix": [6, 2], "x": 156, "y": 10, "flags": 4}, + {"matrix": [6, 3], "x": 150, "y": 10, "flags": 4}, + {"matrix": [6, 4], "x": 144, "y": 10, "flags": 4}, + {"matrix": [6, 5], "x": 139, "y": 10, "flags": 4}, + {"matrix": [6, 6], "x": 133, "y": 10, "flags": 4}, + {"matrix": [6, 7], "x": 127, "y": 10, "flags": 4}, + {"matrix": [7, 0], "x": 164, "y": 16, "flags": 4}, + {"matrix": [7, 1], "x": 158, "y": 16, "flags": 4}, + {"matrix": [7, 2], "x": 152, "y": 16, "flags": 4}, + {"matrix": [7, 3], "x": 146, "y": 16, "flags": 4}, + {"matrix": [7, 4], "x": 140, "y": 16, "flags": 4}, + {"matrix": [7, 5], "x": 134, "y": 16, "flags": 4}, + {"matrix": [7, 6], "x": 128, "y": 16, "flags": 4}, + {"matrix": [8, 0], "x": 166, "y": 22, "flags": 4}, + {"matrix": [8, 1], "x": 154, "y": 22, "flags": 4}, + {"matrix": [8, 2], "x": 148, "y": 22, "flags": 4}, + {"matrix": [8, 3], "x": 142, "y": 22, "flags": 4}, + {"matrix": [8, 4], "x": 136, "y": 22, "flags": 4}, + {"matrix": [8, 5], "x": 130, "y": 22, "flags": 4}, + {"matrix": [9, 0], "x": 170, "y": 28, "flags": 4}, + {"matrix": [9, 1], "x": 163, "y": 28, "flags": 4}, + {"matrix": [9, 2], "x": 156, "y": 28, "flags": 4}, + {"matrix": [9, 3], "x": 149, "y": 28, "flags": 4}, + {"matrix": [9, 4], "x": 140, "y": 28, "flags": 4}, + {"matrix": [9, 5], "x": 131, "y": 28, "flags": 4}, + {"matrix": [9, 6], "x": 136, "y": 34, "flags": 4}, + {"matrix": [9, 7], "x": 128, "y": 34, "flags": 4}, + {"x": 78, "y": 13, "flags": 2}, + {"x": 78, "y": 6, "flags": 2}, + {"x": 80, "y": 0, "flags": 2}, + {"x": 87, "y": 0, "flags": 2}, + {"x": 95, "y": 0, "flags": 2}, + {"x": 103, "y": 0, "flags": 2}, + {"x": 111, "y": 0, "flags": 2}, + {"x": 119, "y": 0, "flags": 2}, + {"x": 122, "y": 3, "flags": 2}, + {"x": 121, "y": 9, "flags": 2}, + {"x": 120, "y": 15, "flags": 2}, + {"x": 122, "y": 21, "flags": 2}, + {"x": 123, "y": 27, "flags": 2}, + {"x": 123, "y": 33, "flags": 2}, + {"x": 120, "y": 38, "flags": 2}, + {"x": 116, "y": 42, "flags": 2}, + {"x": 114, "y": 48, "flags": 2}, + {"x": 112, "y": 55, "flags": 2}, + {"x": 109, "y": 61, "flags": 2}, + {"x": 103, "y": 64, "flags": 2}, + {"x": 96, "y": 64, "flags": 2}, + {"x": 88, "y": 64, "flags": 2}, + {"x": 81, "y": 63, "flags": 2}, + {"x": 76, "y": 60, "flags": 2}, + {"x": 75, "y": 52, "flags": 2}, + {"x": 75, "y": 46, "flags": 2}, + {"x": 74, "y": 38, "flags": 2}, + {"x": 74, "y": 32, "flags": 2}, + {"x": 75, "y": 27, "flags": 2}, + {"x": 77, "y": 21, "flags": 2}, + {"x": 175, "y": 10, "flags": 2}, + {"x": 175, "y": 4, "flags": 2}, + {"x": 172, "y": 0, "flags": 2}, + {"x": 164, "y": 0, "flags": 2}, + {"x": 157, "y": 0, "flags": 2}, + {"x": 149, "y": 0, "flags": 2}, + {"x": 142, "y": 0, "flags": 2}, + {"x": 134, "y": 0, "flags": 2}, + {"x": 127, "y": 0, "flags": 2}, + {"x": 123, "y": 3, "flags": 2}, + {"x": 122, "y": 8, "flags": 2}, + {"x": 122, "y": 15, "flags": 2}, + {"x": 124, "y": 21, "flags": 2}, + {"x": 124, "y": 27, "flags": 2}, + {"x": 124, "y": 33, "flags": 2}, + {"x": 126, "y": 38, "flags": 2}, + {"x": 131, "y": 42, "flags": 2}, + {"x": 134, "y": 48, "flags": 2}, + {"x": 135, "y": 55, "flags": 2}, + {"x": 137, "y": 61, "flags": 2}, + {"x": 143, "y": 63, "flags": 2}, + {"x": 150, "y": 63, "flags": 2}, + {"x": 158, "y": 63, "flags": 2}, + {"x": 166, "y": 63, "flags": 2}, + {"x": 173, "y": 63, "flags": 2}, + {"x": 177, "y": 59, "flags": 2}, + {"x": 178, "y": 49, "flags": 2}, + {"x": 179, "y": 40, "flags": 2}, + {"x": 179, "y": 31, "flags": 2}, + {"x": 177, "y": 25, "flags": 2}, + {"x": 175, "y": 20, "flags": 2}, + {"x": 175, "y": 15, "flags": 2}, + {"x": 123, "y": 54, "flags": 4} + ] + }, "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/handwired/hnah108/hnah108.c b/keyboards/handwired/hnah108/hnah108.c deleted file mode 100644 index fde7b16564..0000000000 --- a/keyboards/handwired/hnah108/hnah108.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2019 HnahKB - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 18, 17, 16, NO_LED, 15, 14, NO_LED, NO_LED, 13, 12, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { 19, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { 20, NO_LED, NO_LED, NO_LED, NO_LED, 24, NO_LED, NO_LED, 26, NO_LED, NO_LED }, - { 21, 22, 23, 25, 27, NO_LED, 28, 29, NO_LED, 0, 1 }, - { 11, 10, NO_LED, 9, NO_LED, 8, NO_LED, 7, 6, NO_LED, 5 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 4 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 3 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 2 } - }, { - // LED Index to Physical Position - { 0, 0 }, { 18, 0 }, { 37, 0 }, { 56, 0 }, { 74, 0 }, { 93, 0 }, { 112, 0 }, { 130, 0 }, { 149, 0 }, { 168, 0 }, { 186, 0 }, { 205, 0 }, { 224, 0 }, - { 0, 25 }, { 224, 25 }, - { 0, 51 }, { 224, 51 }, - { 0, 63 }, { 18, 63 }, { 37, 63 }, { 56, 63 }, { 74, 63 }, { 93, 63 }, { 112, 63 }, { 130, 63 }, { 149, 63 }, { 168, 63 }, { 186, 63 }, { 205, 63 }, { 224, 63 } - }, { - // LED Index to Flag - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, - 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - } -}; -#endif diff --git a/keyboards/handwired/hnah108/keyboard.json b/keyboards/handwired/hnah108/keyboard.json index a02a70173c..808fd9eb24 100644 --- a/keyboards/handwired/hnah108/keyboard.json +++ b/keyboards/handwired/hnah108/keyboard.json @@ -51,7 +51,39 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [5, 9], "x": 0, "y": 0, "flags": 1}, + {"matrix": [5, 10], "x": 18, "y": 0, "flags": 1}, + {"matrix": [9, 10], "x": 37, "y": 0, "flags": 1}, + {"matrix": [8, 10], "x": 56, "y": 0, "flags": 1}, + {"matrix": [7, 10], "x": 74, "y": 0, "flags": 1}, + {"matrix": [6, 10], "x": 93, "y": 0, "flags": 1}, + {"matrix": [6, 8], "x": 112, "y": 0, "flags": 1}, + {"matrix": [6, 7], "x": 130, "y": 0, "flags": 1}, + {"matrix": [6, 5], "x": 149, "y": 0, "flags": 1}, + {"matrix": [6, 3], "x": 168, "y": 0, "flags": 1}, + {"matrix": [6, 1], "x": 186, "y": 0, "flags": 1}, + {"matrix": [6, 0], "x": 205, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 224, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 0, "y": 25, "flags": 1}, + {"matrix": [0, 5], "x": 224, "y": 25, "flags": 1}, + {"matrix": [0, 4], "x": 0, "y": 51, "flags": 1}, + {"matrix": [0, 2], "x": 224, "y": 51, "flags": 1}, + {"matrix": [0, 1], "x": 0, "y": 63, "flags": 1}, + {"matrix": [0, 0], "x": 18, "y": 63, "flags": 1}, + {"matrix": [2, 0], "x": 37, "y": 63, "flags": 1}, + {"matrix": [4, 0], "x": 56, "y": 63, "flags": 1}, + {"matrix": [5, 0], "x": 74, "y": 63, "flags": 1}, + {"matrix": [5, 1], "x": 93, "y": 63, "flags": 1}, + {"matrix": [5, 2], "x": 112, "y": 63, "flags": 1}, + {"matrix": [4, 5], "x": 130, "y": 63, "flags": 1}, + {"matrix": [5, 3], "x": 149, "y": 63, "flags": 1}, + {"matrix": [4, 8], "x": 168, "y": 63, "flags": 1}, + {"matrix": [5, 4], "x": 186, "y": 63, "flags": 1}, + {"matrix": [5, 6], "x": 205, "y": 63, "flags": 1}, + {"matrix": [5, 7], "x": 224, "y": 63, "flags": 1} + ] }, "features": { "backlight": true, diff --git a/keyboards/handwired/hnah40rgb/hnah40rgb.c b/keyboards/handwired/hnah40rgb/hnah40rgb.c deleted file mode 100644 index 1f877975e5..0000000000 --- a/keyboards/handwired/hnah40rgb/hnah40rgb.c +++ /dev/null @@ -1,47 +0,0 @@ -#include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -#if defined (ansi) -led_config_t g_led_config = { { - //Key Matrix to LED Index - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, - {22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12 }, - {23, 24, 25, 26, 27, 28, 29, 30, 31, NO_LED, 34}, - {43, 42, 41, NO_LED, NO_LED, NO_LED, 38, NO_LED, 36, 35, 11} -}, { - //LED Index to Physical Positon - { 0, 0}, { 20, 0}, { 40, 0 }, { 61, 0 }, { 81, 0}, { 101, 0}, { 122, 0}, { 142, 0}, { 162, 0}, { 183, 0}, { 224, 0}, { 224, 0}, - {224, 21}, {183, 21}, {162,21 }, {142, 21}, {122,21}, { 101,21}, { 81 ,21}, { 61 ,21}, { 40 ,21}, { 20 ,21}, { 0 ,21}, - { 0, 42}, { 20, 42}, { 40,42 }, { 61, 42}, { 81,42}, { 101,42}, { 122,42}, { 142,42}, { 162,42}, { 183,42}, { 224,42}, - {224, 64}, {224, 64}, {181,64 }, {162, 64}, {122,64}, {101,64}, { 61,64}, { 40,64}, { 20,64}, { 0,64}, - { 0,64}, { 0,0}, { 224,10}, { 224,18}, { 224,30}, { 224,47}, -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, -} }; - -#else -led_config_t g_led_config = { { - //Key Matrix to LED Index - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, - {22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12 }, - {23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34}, - {43, 42, 41, NO_LED, 40, 39, 38, 37, 36, 35, 11} -}, { - //LED Index to Physical Positon - { 0, 0}, { 20, 0}, { 40, 0 }, { 61, 0 }, { 81, 0}, { 101, 0}, { 122, 0}, { 142, 0}, { 162, 0}, { 183, 0}, { 224, 0}, { 224, 0}, - {224, 21}, {183, 21}, {162,21 }, {142, 21}, {122,21}, { 101,21}, { 81 ,21}, { 61 ,21}, { 40 ,21}, { 20 ,21}, { 0 ,21}, - { 0, 42}, { 20, 42}, { 40,42 }, { 61, 42}, { 81,42}, { 101,42}, { 122,42}, { 142,42}, { 162,42}, { 183,42}, { 224,42}, - {224, 64}, {224, 64}, {181,64 }, {162, 64}, {122,64}, {101,64}, { 61,64}, { 40,64}, { 20,64}, { 0,64}, - { 0,64}, { 0,0}, { 224,10}, { 224,18}, { 224,30}, { 224,47}, -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, -} }; -#endif -#endif \ No newline at end of file diff --git a/keyboards/handwired/hnah40rgb/keyboard.json b/keyboards/handwired/hnah40rgb/keyboard.json index 6f13b70095..ec824ea14f 100644 --- a/keyboards/handwired/hnah40rgb/keyboard.json +++ b/keyboards/handwired/hnah40rgb/keyboard.json @@ -60,6 +60,58 @@ "animation": "cycle_pinwheel" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 224, "y": 0, "flags": 4}, + {"matrix": [3, 10], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 10], "x": 224, "y": 21, "flags": 1}, + {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4}, + {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4}, + {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4}, + {"matrix": [2, 6], "x": 122, "y": 42, "flags": 4}, + {"matrix": [2, 7], "x": 142, "y": 42, "flags": 4}, + {"matrix": [2, 8], "x": 162, "y": 42, "flags": 4}, + {"matrix": [2, 9], "x": 183, "y": 42, "flags": 4}, + {"x": 224, "y": 42, "flags": 1}, + {"matrix": [2, 10], "x": 224, "y": 64, "flags": 1}, + {"matrix": [3, 9], "x": 224, "y": 64, "flags": 1}, + {"matrix": [3, 8], "x": 181, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 162, "y": 64, "flags": 1}, + {"matrix": [3, 6], "x": 122, "y": 64, "flags": 1}, + {"matrix": [3, 5], "x": 101, "y": 64, "flags": 1}, + {"matrix": [3, 4], "x": 61, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 40, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, + {"x": 0, "y": 64, "flags": 1}, + {"x": 0, "y": 0, "flags": 1}, + {"x": 224, "y": 10, "flags": 1}, + {"x": 224, "y": 18, "flags": 1}, + {"x": 224, "y": 30, "flags": 1}, + {"x": 224, "y": 47, "flags": 1} + ], "max_brightness": 200, "react_on_keyup": true }, diff --git a/keyboards/handwired/hnah40rgb/keymaps/ansi/config.h b/keyboards/handwired/hnah40rgb/keymaps/ansi/config.h deleted file mode 100644 index 66cd76a901..0000000000 --- a/keyboards/handwired/hnah40rgb/keymaps/ansi/config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* Copyright 2019 HnahKB - * - * 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 ansi \ No newline at end of file diff --git a/keyboards/handwired/orbweaver/keyboard.json b/keyboards/handwired/orbweaver/keyboard.json index 73baa9a21d..0061c79ba2 100644 --- a/keyboards/handwired/orbweaver/keyboard.json +++ b/keyboards/handwired/orbweaver/keyboard.json @@ -12,8 +12,29 @@ "rgb_matrix": true }, "rgb_matrix": { - "center_point": [40, 30], - "driver": "is31fl3731" + "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 168, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 0, "y": 20, "flags": 4}, + {"matrix": [1, 0], "x": 56, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 112, "y": 20, "flags": 4}, + {"matrix": [1, 2], "x": 168, "y": 20, "flags": 4}, + {"matrix": [1, 3], "x": 224, "y": 20, "flags": 4}, + {"matrix": [1, 4], "x": 0, "y": 40, "flags": 4}, + {"matrix": [2, 0], "x": 56, "y": 40, "flags": 4}, + {"matrix": [2, 1], "x": 112, "y": 40, "flags": 4}, + {"matrix": [2, 2], "x": 168, "y": 40, "flags": 4}, + {"matrix": [2, 3], "x": 224, "y": 40, "flags": 4}, + {"matrix": [2, 4], "x": 0, "y": 60, "flags": 4}, + {"matrix": [3, 0], "x": 56, "y": 60, "flags": 4}, + {"matrix": [3, 1], "x": 112, "y": 60, "flags": 4}, + {"matrix": [3, 2], "x": 168, "y": 60, "flags": 4}, + {"matrix": [3, 4], "x": 224, "y": 60, "flags": 4} + ] }, "matrix_pins": { "rows": ["GP4", "GP5", "GP6", "GP7", "GP8", "GP9"], diff --git a/keyboards/handwired/orbweaver/orbweaver.c b/keyboards/handwired/orbweaver/orbweaver.c index f89d1ca363..8c23818eea 100644 --- a/keyboards/handwired/orbweaver/orbweaver.c +++ b/keyboards/handwired/orbweaver/orbweaver.c @@ -15,10 +15,10 @@ // // SPDX-License-Identifier: GPL-2.0-or-later -// This IS31FL3731 configuration is for a Razer Orbweaver Chroma. -// It was reverse-engineered by testing all possible Cx_y combinations (144 total), +// This IS31FL3731 configuration is for a Razer Orbweaver Chroma. +// It was reverse-engineered by testing all possible Cx_y combinations (144 total), // and determining which ones addressed individual diodes (60 total). These were then -// placed in order R-G-B, sweeping left to right, and then top to bottom. +// placed in order R-G-B, sweeping left to right, and then top to bottom. #include "rgb_matrix.h" @@ -30,55 +30,24 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { * | | | B location * | | | | */ {0, C9_1, C8_1, C7_1}, //top left key. - {0, C9_2, C8_2, C7_2}, + {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_5, C8_5, C7_5}, //top right key. {0, C9_6, C8_6, C7_6}, - {0, C9_7, C8_7, C6_6}, + {0, C9_7, C8_7, C6_6}, {0, C9_8, C7_7, C6_7}, - {0, C1_8, C2_8, C3_8}, + {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_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_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 }; - -led_config_t g_led_config = { - // Matrix location to LED index - { - { 0, 2, 3, 4, 5 }, - { 6, 7, 8, 9, 10 }, - { 11, 12, 13, 14, 15 }, - { 16, 17, 18, 19, 19 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } - }, - - // LED index to physical location - { - {0,0}, {20,0}, {40,0}, {60,0}, {80,0}, - {0,20}, {20,20}, {40,20}, {60,20}, {80,20}, - {0,40}, {20,40}, {40,40}, {60,40}, {80,40}, - {0,60}, {20,60}, {40,60}, {60,60}, {80,60} - }, - - // LED index to flags - { - 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4 - } - }; - - - diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/4x6_right.c b/keyboards/handwired/tractyl_manuform/4x6_right/4x6_right.c index 298060bcb4..f678db94d8 100644 --- a/keyboards/handwired/tractyl_manuform/4x6_right/4x6_right.c +++ b/keyboards/handwired/tractyl_manuform/4x6_right/4x6_right.c @@ -16,39 +16,6 @@ #include "tractyl_manuform.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 24, 23, 18, 17, 10, 9 }, - { 25, 22, 19, 16, 11, 8 }, - { 26, 21, 20, 15, 12, 7 }, - { NO_LED, NO_LED, NO_LED, 14, 13, 6 }, - { NO_LED, NO_LED, NO_LED, 14, 13, 6 }, - { 51, 50, 45, 44, 37, 36 }, - { 52, 49, 46, 43, 38, 35 }, - { 53, 48, 47, 42, 39, 34 }, - { NO_LED, NO_LED, NO_LED, 41, 40, 33 }, - { NO_LED, NO_LED, NO_LED, 41, 40, 33 } -}, { - { 85, 16 }, { 50, 13 }, { 16, 20 }, { 16, 38 }, { 50, 48 }, { 85, 52 }, { 95, 63 }, - { 85, 39 }, { 85, 21 }, { 85, 4 }, { 68, 2 }, { 68, 19 }, { 68, 37 }, { 80, 58 }, - { 60, 55 }, { 50, 35 }, { 50, 13 }, { 50, 0 }, { 33, 3 }, { 33, 20 }, { 33, 37 }, - { 16, 42 }, { 16, 24 }, { 16, 7 }, { 0, 7 }, { 0, 24 }, { 0, 41 }, { 139, 16 }, - { 174, 13 }, { 208, 20 }, { 208, 38 }, { 174, 48 }, { 139, 52 }, { 129, 63 }, { 139, 39 }, - { 139, 21 }, { 139, 4 }, { 156, 2 }, { 156, 19 }, { 156, 37 }, { 144, 58 }, { 164, 55 }, - { 174, 35 }, { 174, 13 }, { 174, 0 }, { 191, 3 }, { 191, 20 }, { 191, 37 }, { 208, 42 }, - { 208, 24 }, { 208, 7 }, { 224, 7 }, { 224, 24 }, { 224, 41 } -}, { - 2, 2, 2, 2, 2, 2, 1, - 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 1, 1, 1, 2, - 2, 2, 2, 2, 2, 1, 4, - 4, 4, 4, 4, 4, 1, 1, - 4, 4, 4, 4, 4, 4, 4, - 4, 4, 1, 1, 1 -} }; -#endif - #ifdef SWAP_HANDS_ENABLE const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { /* Left hand, matrix positions */ diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json b/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json index cc651bec95..8e5290006e 100644 --- a/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json +++ b/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json @@ -7,6 +7,62 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"x": 85, "y": 16, "flags": 2}, + {"x": 50, "y": 13, "flags": 2}, + {"x": 16, "y": 20, "flags": 2}, + {"x": 16, "y": 38, "flags": 2}, + {"x": 50, "y": 48, "flags": 2}, + {"x": 85, "y": 52, "flags": 2}, + {"matrix": [4, 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": [4, 4], "x": 80, "y": 58, "flags": 1}, + {"matrix": [4, 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}, + {"x": 139, "y": 16, "flags": 2}, + {"x": 174, "y": 13, "flags": 2}, + {"x": 208, "y": 20, "flags": 2}, + {"x": 208, "y": 38, "flags": 2}, + {"x": 174, "y": 48, "flags": 2}, + {"x": 139, "y": 52, "flags": 2}, + {"matrix": [9, 5], "x": 129, "y": 63, "flags": 1}, + {"matrix": [7, 5], "x": 139, "y": 39, "flags": 4}, + {"matrix": [6, 5], "x": 139, "y": 21, "flags": 4}, + {"matrix": [5, 5], "x": 139, "y": 4, "flags": 4}, + {"matrix": [5, 4], "x": 156, "y": 2, "flags": 4}, + {"matrix": [6, 4], "x": 156, "y": 19, "flags": 4}, + {"matrix": [7, 4], "x": 156, "y": 37, "flags": 4}, + {"matrix": [9, 4], "x": 144, "y": 58, "flags": 1}, + {"matrix": [9, 3], "x": 164, "y": 55, "flags": 1}, + {"matrix": [7, 3], "x": 174, "y": 35, "flags": 4}, + {"matrix": [6, 3], "x": 174, "y": 13, "flags": 4}, + {"matrix": [5, 3], "x": 174, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 191, "y": 3, "flags": 4}, + {"matrix": [6, 2], "x": 191, "y": 20, "flags": 4}, + {"matrix": [7, 2], "x": 191, "y": 37, "flags": 4}, + {"matrix": [7, 1], "x": 208, "y": 42, "flags": 4}, + {"matrix": [6, 1], "x": 208, "y": 24, "flags": 4}, + {"matrix": [5, 1], "x": 208, "y": 7, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 7, "flags": 1}, + {"matrix": [6, 0], "x": 224, "y": 24, "flags": 1}, + {"matrix": [7, 0], "x": 224, "y": 41, "flags": 1} + ], "max_brightness": 80, "sleep": true, "split_count": [32, 30] diff --git a/keyboards/hfdkb/ac001/ac001.c b/keyboards/hfdkb/ac001/ac001.c deleted file mode 100644 index 83dbdeb628..0000000000 --- a/keyboards/hfdkb/ac001/ac001.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright (C) 2022 jonylee@hfd - * - * 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 "quantum.h" -/* - 3---------------2 - | | | - | | | - 4-------0-------1 -*/ -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4} -}, { - // LED Index to Physical Position - { 64, 112 }, { 64, 224 }, { 224, 0 }, { 0, 0 }, { 64, 0 }, - -}, { - // LED Index to Flag - 4, 4, 4, 4, 4 -} }; -#endif diff --git a/keyboards/hfdkb/ac001/keyboard.json b/keyboards/hfdkb/ac001/keyboard.json index ee9aab074b..ffb20e3c01 100644 --- a/keyboards/hfdkb/ac001/keyboard.json +++ b/keyboards/hfdkb/ac001/keyboard.json @@ -21,6 +21,13 @@ "multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 112, "y": 64, "flags": 4}, + {"matrix": [0, 1], "x": 224, "y": 64, "flags": 4}, + {"matrix": [0, 2], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 0, "y": 64, "flags": 4} + ], "react_on_keyup": true, "sleep": true }, diff --git a/keyboards/horrortroll/chinese_pcb/devil68_pro/devil68_pro.c b/keyboards/horrortroll/chinese_pcb/devil68_pro/devil68_pro.c deleted file mode 100644 index 98a35e7483..0000000000 --- a/keyboards/horrortroll/chinese_pcb/devil68_pro/devil68_pro.c +++ /dev/null @@ -1,49 +0,0 @@ -/* Copyright 2022 HorrorTroll - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, NO_LED, 13, 14 }, - { 15, NO_LED, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 }, - { NO_LED, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, NO_LED, 55, 56, 57 }, - { 58, 59, NO_LED, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 } -}, { - // Key matrix (0 -> 67) - {0 , 0}, {15 , 0}, {30 , 0}, {45 , 0}, {60 , 0}, {75 , 0}, {90 , 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {202, 0}, {224, 0}, - {3 , 16}, {21 , 16}, {36 , 16}, {51 , 16}, {66 , 16}, {81 , 16}, {96 , 16}, {111, 16}, {126, 16}, {141, 16}, {156, 16}, {171, 16}, {186, 16}, {205, 16}, {224, 16}, - {5 , 32}, {25 , 32}, {40 , 32}, {55 , 32}, {70 , 32}, {85 , 32}, {100, 32}, {115, 32}, {130, 32}, {145, 32}, {160, 32}, {175, 32}, {200, 32}, {224, 32}, - {8 , 48}, {31 , 48}, {46 , 48}, {61 , 48}, {76 , 48}, {91 , 48}, {106, 48}, {121, 48}, {136, 48}, {151, 48}, {166, 48}, {188, 48}, {210, 48}, {224, 48}, - {2 , 64}, {19 , 64}, {36 , 64}, {96 , 64}, {149, 64}, {164, 64}, {179, 64}, {194, 64}, {209, 64}, {224, 64}, - - // Underglow (68 -> 85) - {210, 60}, {186, 12}, {158, 12}, {130, 12}, {101, 12}, {71 , 12}, {39 , 12}, {13 , 12}, {13 , 35}, - {13 , 12}, {39 , 12}, {71 , 12}, {101, 12}, {130, 12}, {158, 12}, {186, 12}, {210, 12}, {210, 35}, -}, { - // Key matrix (0 -> 67) - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, - 1, 1, 1, 4, 1, 1, 1, 4, 4, 4, - - // Underglow (68 -> 85) - 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2 -} }; -#endif diff --git a/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json b/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json index 250cceb3e7..80cb05a3c2 100644 --- a/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json +++ b/keyboards/horrortroll/chinese_pcb/devil68_pro/keyboard.json @@ -59,6 +59,94 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 202, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 3, "y": 16, "flags": 1}, + {"matrix": [1, 2], "x": 21, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 51, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 66, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 81, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 111, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 126, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 141, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 156, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 171, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 186, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 205, "y": 16, "flags": 4}, + {"matrix": [1, 15], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 5, "y": 32, "flags": 8}, + {"matrix": [2, 2], "x": 25, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 40, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 55, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 70, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 100, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 115, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 130, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 145, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 175, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 200, "y": 32, "flags": 1}, + {"matrix": [2, 15], "x": 224, "y": 32, "flags": 4}, + {"matrix": [3, 1], "x": 8, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 31, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 46, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 61, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 76, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 91, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 151, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 166, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 188, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 15], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 19, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 36, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 149, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 164, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 179, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 194, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 209, "y": 64, "flags": 4}, + {"matrix": [4, 15], "x": 224, "y": 64, "flags": 4}, + {"x": 210, "y": 60, "flags": 2}, + {"x": 186, "y": 12, "flags": 2}, + {"x": 158, "y": 12, "flags": 2}, + {"x": 130, "y": 12, "flags": 2}, + {"x": 101, "y": 12, "flags": 2}, + {"x": 71, "y": 12, "flags": 2}, + {"x": 39, "y": 12, "flags": 2}, + {"x": 13, "y": 12, "flags": 2}, + {"x": 13, "y": 35, "flags": 2}, + {"x": 13, "y": 12, "flags": 2}, + {"x": 39, "y": 12, "flags": 2}, + {"x": 71, "y": 12, "flags": 2}, + {"x": 101, "y": 12, "flags": 2}, + {"x": 130, "y": 12, "flags": 2}, + {"x": 158, "y": 12, "flags": 2}, + {"x": 186, "y": 12, "flags": 2}, + {"x": 210, "y": 12, "flags": 2}, + {"x": 210, "y": 35, "flags": 2} + ], "max_brightness": 200 }, "features": { diff --git a/keyboards/hotdox76v2/hotdox76v2.c b/keyboards/hotdox76v2/hotdox76v2.c index e60777703e..022bd92a1f 100644 --- a/keyboards/hotdox76v2/hotdox76v2.c +++ b/keyboards/hotdox76v2/hotdox76v2.c @@ -8,56 +8,6 @@ #include "oled_font_lib/logo2.h" #include "oled_font_lib/ext_font.h" - -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { - { - { NO_LED, 34, 33, 32, 35, 37, 36 }, - { 27, 28, 29, 30, 31, NO_LED, NO_LED }, - { 26, 25, 24, 23, 22, 21, 20 }, - { 14, 15, 16, 17, 18, 19, NO_LED }, - { 13, 12, 11, 10, 9, 8, 7 }, - { 0, 1, 2, 3, 4, 5, 6 }, - /*right*/ - { NO_LED, 77, 76, 75, 78, 80, 79 }, - { 70, 71, 72, 73, 74, NO_LED, NO_LED }, - { 69, 68, 67, 66, 65, 64, 63 }, - { 57, 58, 59, 60, 61, 62, NO_LED }, - { 56, 55, 54, 53, 52, 51, 50 }, - { 43, 44, 45, 46, 47, 48, 49 } - }, - { - // LED Index to Physical Position - {0,0}, {17,0}, {34,0}, {52,0}, {69,0}, {86,0}, {103,0}, - {103,13}, {86,13}, {69,13}, {52,13}, {34,13}, {17,13}, {0,13}, - {0,26}, {17,26}, {34,26}, {52,26}, {69,26}, {86,26}, - {103,38}, {86,38}, {69,38}, {52,38}, {34,38}, {17,38}, {0,38}, - {0,51}, {17,51}, {34,51}, {52,51}, {69,51}, - {86,64}, {69,64}, {52,64}, {34,64}, {17,64}, {0,64}, - {69,64}, {52,64}, {34,64}, {17,64}, {0,64}, - - {224,0}, {207,0}, {190,0}, {172,0}, {155,0}, {138,0}, {121,0}, - {121,13}, {138,13}, {155,13}, {172,13}, {190,13}, {207,13}, {224,13}, - {224,26}, {207,26}, {190,26}, {172,26}, {155,26}, {138,26}, - {121,38}, {138,38}, {155,38}, {172,38}, {190,38}, {207,38}, {224,38}, - {224,51}, {207,51}, {190,51}, {172,51}, {155,51}, - {138,64}, {155,64}, {172,64}, {190,64}, {207,64}, {224,64}, - {155,64}, {172,64}, {190,64}, {207,64}, {224,64} - - - }, - { - // LED Index to Flag - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 2,2,2,2,2, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 2,2,2,2,2 - } -}; -// clang-format on -#endif - #ifdef OLED_ENABLE # define UNC (' ') diff --git a/keyboards/hotdox76v2/keyboard.json b/keyboards/hotdox76v2/keyboard.json index 8881670b56..cb70bdefee 100644 --- a/keyboards/hotdox76v2/keyboard.json +++ b/keyboards/hotdox76v2/keyboard.json @@ -24,6 +24,94 @@ }, "center_point": [112, 32], "driver": "ws2812", + "layout": [ + {"matrix": [5, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [5, 1], "x": 17, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 34, "y": 0, "flags": 4}, + {"matrix": [5, 3], "x": 52, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 69, "y": 0, "flags": 4}, + {"matrix": [5, 5], "x": 86, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 103, "y": 0, "flags": 4}, + {"matrix": [4, 6], "x": 103, "y": 13, "flags": 4}, + {"matrix": [4, 5], "x": 86, "y": 13, "flags": 4}, + {"matrix": [4, 4], "x": 69, "y": 13, "flags": 4}, + {"matrix": [4, 3], "x": 52, "y": 13, "flags": 4}, + {"matrix": [4, 2], "x": 34, "y": 13, "flags": 4}, + {"matrix": [4, 1], "x": 17, "y": 13, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 13, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 26, "flags": 4}, + {"matrix": [3, 1], "x": 17, "y": 26, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 26, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 26, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 26, "flags": 4}, + {"matrix": [3, 5], "x": 86, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 103, "y": 38, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 38, "flags": 4}, + {"matrix": [2, 4], "x": 69, "y": 38, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 38, "flags": 4}, + {"matrix": [2, 2], "x": 34, "y": 38, "flags": 4}, + {"matrix": [2, 1], "x": 17, "y": 38, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 51, "flags": 4}, + {"matrix": [1, 1], "x": 17, "y": 51, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 51, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 51, "flags": 4}, + {"matrix": [1, 4], "x": 69, "y": 51, "flags": 4}, + {"matrix": [0, 3], "x": 86, "y": 64, "flags": 4}, + {"matrix": [0, 2], "x": 69, "y": 64, "flags": 4}, + {"matrix": [0, 1], "x": 52, "y": 64, "flags": 4}, + {"matrix": [0, 4], "x": 34, "y": 64, "flags": 4}, + {"matrix": [0, 6], "x": 17, "y": 64, "flags": 4}, + {"matrix": [0, 5], "x": 0, "y": 64, "flags": 4}, + {"x": 69, "y": 64, "flags": 2}, + {"x": 52, "y": 64, "flags": 2}, + {"x": 34, "y": 64, "flags": 2}, + {"x": 17, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"matrix": [11, 0], "x": 224, "y": 0, "flags": 4}, + {"matrix": [11, 1], "x": 207, "y": 0, "flags": 4}, + {"matrix": [11, 2], "x": 190, "y": 0, "flags": 4}, + {"matrix": [11, 3], "x": 172, "y": 0, "flags": 4}, + {"matrix": [11, 4], "x": 155, "y": 0, "flags": 4}, + {"matrix": [11, 5], "x": 138, "y": 0, "flags": 4}, + {"matrix": [11, 6], "x": 121, "y": 0, "flags": 4}, + {"matrix": [10, 6], "x": 121, "y": 13, "flags": 4}, + {"matrix": [10, 5], "x": 138, "y": 13, "flags": 4}, + {"matrix": [10, 4], "x": 155, "y": 13, "flags": 4}, + {"matrix": [10, 3], "x": 172, "y": 13, "flags": 4}, + {"matrix": [10, 2], "x": 190, "y": 13, "flags": 4}, + {"matrix": [10, 1], "x": 207, "y": 13, "flags": 4}, + {"matrix": [10, 0], "x": 224, "y": 13, "flags": 4}, + {"matrix": [9, 0], "x": 224, "y": 26, "flags": 4}, + {"matrix": [9, 1], "x": 207, "y": 26, "flags": 4}, + {"matrix": [9, 2], "x": 190, "y": 26, "flags": 4}, + {"matrix": [9, 3], "x": 172, "y": 26, "flags": 4}, + {"matrix": [9, 4], "x": 155, "y": 26, "flags": 4}, + {"matrix": [9, 5], "x": 138, "y": 26, "flags": 4}, + {"matrix": [8, 6], "x": 121, "y": 38, "flags": 4}, + {"matrix": [8, 5], "x": 138, "y": 38, "flags": 4}, + {"matrix": [8, 4], "x": 155, "y": 38, "flags": 4}, + {"matrix": [8, 3], "x": 172, "y": 38, "flags": 4}, + {"matrix": [8, 2], "x": 190, "y": 38, "flags": 4}, + {"matrix": [8, 1], "x": 207, "y": 38, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 38, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 51, "flags": 4}, + {"matrix": [7, 1], "x": 207, "y": 51, "flags": 4}, + {"matrix": [7, 2], "x": 190, "y": 51, "flags": 4}, + {"matrix": [7, 3], "x": 172, "y": 51, "flags": 4}, + {"matrix": [7, 4], "x": 155, "y": 51, "flags": 4}, + {"matrix": [6, 3], "x": 138, "y": 64, "flags": 4}, + {"matrix": [6, 2], "x": 155, "y": 64, "flags": 4}, + {"matrix": [6, 1], "x": 172, "y": 64, "flags": 4}, + {"matrix": [6, 4], "x": 190, "y": 64, "flags": 4}, + {"matrix": [6, 6], "x": 207, "y": 64, "flags": 4}, + {"matrix": [6, 5], "x": 224, "y": 64, "flags": 4}, + {"x": 155, "y": 64, "flags": 2}, + {"x": 172, "y": 64, "flags": 2}, + {"x": 190, "y": 64, "flags": 2}, + {"x": 207, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2} + ], "max_brightness": 150, "sleep": true, "split_count": [43, 43] From 6c96bb5a5a90da5b4db68fc915413fb97b6c3056 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 03:06:12 -0600 Subject: [PATCH 034/255] Migrate `g_led_config` to DD (TUW) (#25625) --- keyboards/teleport/native/ansi/ansi.c | 51 ---------- keyboards/teleport/native/ansi/keyboard.json | 89 +++++++++++++++++ keyboards/teleport/native/iso/iso.c | 51 ---------- keyboards/teleport/native/iso/keyboard.json | 89 +++++++++++++++++ keyboards/tkc/portico/keyboard.json | 69 +++++++++++++ keyboards/tkc/portico/portico.c | 22 ---- keyboards/tkc/portico68v2/keyboard.json | 84 ++++++++++++++++ keyboards/tkc/portico68v2/portico68v2.c | 24 ----- keyboards/tkc/portico75/keyboard.json | 100 +++++++++++++++++++ keyboards/tkc/portico75/portico75.c | 25 ----- keyboards/ungodly/launch_pad/keyboard.json | 24 +++++ keyboards/ungodly/launch_pad/launch_pad.c | 44 -------- keyboards/wekey/we27/keyboard.json | 29 ++++++ keyboards/wekey/we27/we27.c | 46 --------- keyboards/work_louder/loop/info.json | 11 ++ keyboards/work_louder/loop/loop.c | 14 --- keyboards/work_louder/micro/keyboard.json | 14 +++ keyboards/work_louder/micro/micro.c | 23 ----- keyboards/work_louder/nano/keyboard.json | 4 + keyboards/work_louder/nano/nano.c | 13 --- 20 files changed, 513 insertions(+), 313 deletions(-) delete mode 100644 keyboards/teleport/native/ansi/ansi.c delete mode 100644 keyboards/teleport/native/iso/iso.c delete mode 100644 keyboards/ungodly/launch_pad/launch_pad.c delete mode 100644 keyboards/wekey/we27/we27.c diff --git a/keyboards/teleport/native/ansi/ansi.c b/keyboards/teleport/native/ansi/ansi.c deleted file mode 100644 index 9c4ea99f40..0000000000 --- a/keyboards/teleport/native/ansi/ansi.c +++ /dev/null @@ -1,51 +0,0 @@ -/* Copyright 2021 Moritz Plattner - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index, LED 61 omitted on ANSI - { 0, 2, 4, 6, 8, 10, 12, 14 }, - { 1, 3, 5, 7, 9, 11, 13, 15 }, - { 16, 18, 20, 22, 24, 26, 28, NO_LED }, - { 17, 19, 21, 23, 25, 27, 29, 30 }, - { 31, 32, 34, 36, 38, 40, 42, 44 }, - { NO_LED, 33, 35, 37, 39, 41, 43, 45 }, - { 46, 48, 50, 52, 54, 56, NO_LED, 58 }, - { 47, 49, 51, 53, 55, 57, NO_LED, 59 }, - { 60, 62, 64, 66, 68, 70, NO_LED, 73 }, - { NO_LED, 63, 65, 67, 69, 71, 72, 74 }, - { 75, 78, NO_LED, NO_LED, NO_LED, 79, 81, 83 }, - { 76, 77, NO_LED, NO_LED, NO_LED, 80, 82, 84 } -}, { - // LED Index to Physical Position, the LED at { 0,0 } in row 5 is there to catch a non-existing LED on ANSI - { 0,0 }, { 15,0 }, { 30,0 }, { 45,0 }, { 60,0 }, { 75,0 }, { 90,0 }, {105,0 }, {119,0 }, {134,0 }, {149,0 }, {164,0 }, {179,0 }, {194,0 }, {209,0 }, {224,0 }, - { 0,13 }, { 15,13 }, { 30,13 }, { 45,13 }, { 60,13 }, { 75,13 }, { 90,13 }, {105,13 }, {119,13 }, {134,13 }, {149,13 }, {164,13 }, {179,13 }, {202,13 }, {224,13 }, - { 4,26 }, { 22,26 }, { 37,26 }, { 52,26 }, { 67,26 }, { 82,26 }, { 97,26 }, {112,26 }, {127,26 }, {142,26 }, {157,26 }, {172,26 }, {187,26 }, {205,26 }, {224,26 }, - { 6,38 }, { 26,38 }, { 41,38 }, { 56,38 }, { 71,38 }, { 86,38 }, {101,38 }, {116,38 }, {131,38 }, {146,38 }, {161,38 }, {175,38 }, {200,38 }, {224,38 }, - { 9,51 }, { 0,0 }, { 34,51 }, { 49,51 }, { 63,51 }, { 78,51 }, { 93,51 }, {108,51 }, {123,51 }, {138,51 }, {153,51 }, {168,51 }, {189,51 }, {209,51 }, {224,51 }, - { 2,64 }, { 21,64 }, { 39,64 }, { 95,64 }, {149,64 }, {164,64 }, {179,64 }, {194,64 }, {209,64 }, {224,64 } -}, { - // LED Index to Flag, the 0 flag in row 5 is there to catch a non-existing LED on ANSI - 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4,12, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 9, 12,12,12, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 1, - 1, 9, 1, 4, 1, 1, 1, 4, 4, 4, -} }; -#endif diff --git a/keyboards/teleport/native/ansi/keyboard.json b/keyboards/teleport/native/ansi/keyboard.json index 30a420517e..68dddfad55 100644 --- a/keyboards/teleport/native/ansi/keyboard.json +++ b/keyboards/teleport/native/ansi/keyboard.json @@ -2,6 +2,95 @@ "usb": { "pid": "0x0003" }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 30, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 60, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 75, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 90, "y": 0, "flags": 1}, + {"matrix": [1, 3], "x": 105, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 119, "y": 0, "flags": 1}, + {"matrix": [1, 4], "x": 134, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 149, "y": 0, "flags": 4}, + {"matrix": [1, 5], "x": 164, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 179, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 194, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 209, "y": 0, "flags": 1}, + {"matrix": [1, 7], "x": 224, "y": 0, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 13, "flags": 4}, + {"matrix": [3, 0], "x": 15, "y": 13, "flags": 4}, + {"matrix": [2, 1], "x": 30, "y": 13, "flags": 4}, + {"matrix": [3, 1], "x": 45, "y": 13, "flags": 4}, + {"matrix": [2, 2], "x": 60, "y": 13, "flags": 4}, + {"matrix": [3, 2], "x": 75, "y": 13, "flags": 4}, + {"matrix": [2, 3], "x": 90, "y": 13, "flags": 4}, + {"matrix": [3, 3], "x": 105, "y": 13, "flags": 4}, + {"matrix": [2, 4], "x": 119, "y": 13, "flags": 4}, + {"matrix": [3, 4], "x": 134, "y": 13, "flags": 4}, + {"matrix": [2, 5], "x": 149, "y": 13, "flags": 4}, + {"matrix": [3, 5], "x": 164, "y": 13, "flags": 4}, + {"matrix": [2, 6], "x": 179, "y": 13, "flags": 4}, + {"matrix": [3, 6], "x": 202, "y": 13, "flags": 1}, + {"matrix": [3, 7], "x": 224, "y": 13, "flags": 1}, + {"matrix": [4, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [5, 1], "x": 37, "y": 26, "flags": 12}, + {"matrix": [4, 2], "x": 52, "y": 26, "flags": 4}, + {"matrix": [5, 2], "x": 67, "y": 26, "flags": 4}, + {"matrix": [4, 3], "x": 82, "y": 26, "flags": 4}, + {"matrix": [5, 3], "x": 97, "y": 26, "flags": 4}, + {"matrix": [4, 4], "x": 112, "y": 26, "flags": 4}, + {"matrix": [5, 4], "x": 127, "y": 26, "flags": 4}, + {"matrix": [4, 5], "x": 142, "y": 26, "flags": 4}, + {"matrix": [5, 5], "x": 157, "y": 26, "flags": 4}, + {"matrix": [4, 6], "x": 172, "y": 26, "flags": 4}, + {"matrix": [5, 6], "x": 187, "y": 26, "flags": 4}, + {"matrix": [4, 7], "x": 205, "y": 26, "flags": 1}, + {"matrix": [5, 7], "x": 224, "y": 26, "flags": 1}, + {"matrix": [6, 0], "x": 6, "y": 38, "flags": 9}, + {"matrix": [7, 0], "x": 26, "y": 38, "flags": 12}, + {"matrix": [6, 1], "x": 41, "y": 38, "flags": 12}, + {"matrix": [7, 1], "x": 56, "y": 38, "flags": 12}, + {"matrix": [6, 2], "x": 71, "y": 38, "flags": 4}, + {"matrix": [7, 2], "x": 86, "y": 38, "flags": 4}, + {"matrix": [6, 3], "x": 101, "y": 38, "flags": 4}, + {"matrix": [7, 3], "x": 116, "y": 38, "flags": 4}, + {"matrix": [6, 4], "x": 131, "y": 38, "flags": 4}, + {"matrix": [7, 4], "x": 146, "y": 38, "flags": 4}, + {"matrix": [6, 5], "x": 161, "y": 38, "flags": 4}, + {"matrix": [7, 5], "x": 175, "y": 38, "flags": 4}, + {"matrix": [6, 7], "x": 200, "y": 38, "flags": 1}, + {"matrix": [7, 7], "x": 224, "y": 38, "flags": 1}, + {"matrix": [8, 0], "x": 9, "y": 51, "flags": 1}, + {"x": 0, "y": 0, "flags": 0}, + {"matrix": [8, 1], "x": 34, "y": 51, "flags": 4}, + {"matrix": [9, 1], "x": 49, "y": 51, "flags": 4}, + {"matrix": [8, 2], "x": 63, "y": 51, "flags": 4}, + {"matrix": [9, 2], "x": 78, "y": 51, "flags": 4}, + {"matrix": [8, 3], "x": 93, "y": 51, "flags": 4}, + {"matrix": [9, 3], "x": 108, "y": 51, "flags": 4}, + {"matrix": [8, 4], "x": 123, "y": 51, "flags": 4}, + {"matrix": [9, 4], "x": 138, "y": 51, "flags": 4}, + {"matrix": [8, 5], "x": 153, "y": 51, "flags": 4}, + {"matrix": [9, 5], "x": 168, "y": 51, "flags": 4}, + {"matrix": [9, 6], "x": 189, "y": 51, "flags": 1}, + {"matrix": [8, 7], "x": 209, "y": 51, "flags": 4}, + {"matrix": [9, 7], "x": 224, "y": 51, "flags": 1}, + {"matrix": [10, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [11, 0], "x": 21, "y": 64, "flags": 9}, + {"matrix": [11, 1], "x": 39, "y": 64, "flags": 1}, + {"matrix": [10, 1], "x": 95, "y": 64, "flags": 4}, + {"matrix": [10, 5], "x": 149, "y": 64, "flags": 1}, + {"matrix": [11, 5], "x": 164, "y": 64, "flags": 1}, + {"matrix": [10, 6], "x": 179, "y": 64, "flags": 1}, + {"matrix": [11, 6], "x": 194, "y": 64, "flags": 4}, + {"matrix": [10, 7], "x": 209, "y": 64, "flags": 4}, + {"matrix": [11, 7], "x": 224, "y": 64, "flags": 4} + ] + }, "community_layouts": ["75_ansi"], "layouts": { "LAYOUT_75_ansi": { diff --git a/keyboards/teleport/native/iso/iso.c b/keyboards/teleport/native/iso/iso.c deleted file mode 100644 index 5acbffe8f9..0000000000 --- a/keyboards/teleport/native/iso/iso.c +++ /dev/null @@ -1,51 +0,0 @@ -/* Copyright 2021 Moritz Plattner - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 2, 4, 6, 8, 10, 12, 14 }, - { 1, 3, 5, 7, 9, 11, 13, 15 }, - { 16, 18, 20, 22, 24, 26, 28, NO_LED }, - { 17, 19, 21, 23, 25, 27, 29, 30 }, - { 31, 32, 34, 36, 38, 40, 42, 44 }, - { NO_LED, 33, 35, 37, 39, 41, 43, 45 }, - { 46, 48, 50, 52, 54, 56, NO_LED, 58 }, - { 47, 49, 51, 53, 55, 57, NO_LED, 59 }, - { 60, 62, 64, 66, 68, 70, NO_LED, 73 }, - { 61, 63, 65, 67, 69, 71, 72, 74 }, - { 75, 78, NO_LED, NO_LED, NO_LED, 79, 81, 83 }, - { 76, 77, NO_LED, NO_LED, NO_LED, 80, 82, 84 } -}, { - // LED Index to Physical Position - { 0,0 }, { 15,0 }, { 30,0 }, { 45,0 }, { 60,0 }, { 75,0 }, { 90,0 }, {105,0 }, {119,0 }, {134,0 }, {149,0 }, {164,0 }, {179,0 }, {194,0 }, {209,0 }, {224,0 }, - { 0,13 }, { 15,13 }, { 30,13 }, { 45,13 }, { 60,13 }, { 75,13 }, { 90,13 }, {105,13 }, {119,13 }, {134,13 }, {149,13 }, {164,13 }, {179,13 }, {202,13 }, {224,13 }, - { 4,26 }, { 22,26 }, { 37,26 }, { 52,26 }, { 67,26 }, { 82,26 }, { 97,26 }, {112,26 }, {127,26 }, {142,26 }, {157,26 }, {172,26 }, {187,26 }, {207,32 }, {224,26 }, - { 6,38 }, { 26,38 }, { 41,38 }, { 56,38 }, { 71,38 }, { 86,38 }, {101,38 }, {116,38 }, {131,38 }, {146,38 }, {161,38 }, {175,38 }, {190,38 }, {224,38 }, - { 2,51 }, { 19,51 }, { 34,51 }, { 49,51 }, { 63,51 }, { 78,51 }, { 93,51 }, {108,51 }, {123,51 }, {138,51 }, {153,51 }, {168,51 }, {189,51 }, {209,51 }, {224,51 }, - { 2,64 }, { 21,64 }, { 39,64 }, { 95,64 }, {149,64 }, {164,64 }, {179,64 }, {194,64 }, {209,64 }, {224,64 } -}, { - // LED Index to Flag - 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4,12, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 9, 12,12,12, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 1, - 1, 9, 1, 4, 1, 1, 1, 4, 4, 4, -} }; -#endif diff --git a/keyboards/teleport/native/iso/keyboard.json b/keyboards/teleport/native/iso/keyboard.json index 57c5cdb308..03a0d811b0 100644 --- a/keyboards/teleport/native/iso/keyboard.json +++ b/keyboards/teleport/native/iso/keyboard.json @@ -2,6 +2,95 @@ "usb": { "pid": "0x0002" }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 30, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 60, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 75, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 90, "y": 0, "flags": 1}, + {"matrix": [1, 3], "x": 105, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 119, "y": 0, "flags": 1}, + {"matrix": [1, 4], "x": 134, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 149, "y": 0, "flags": 4}, + {"matrix": [1, 5], "x": 164, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 179, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 194, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 209, "y": 0, "flags": 1}, + {"matrix": [1, 7], "x": 224, "y": 0, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 13, "flags": 4}, + {"matrix": [3, 0], "x": 15, "y": 13, "flags": 4}, + {"matrix": [2, 1], "x": 30, "y": 13, "flags": 4}, + {"matrix": [3, 1], "x": 45, "y": 13, "flags": 4}, + {"matrix": [2, 2], "x": 60, "y": 13, "flags": 4}, + {"matrix": [3, 2], "x": 75, "y": 13, "flags": 4}, + {"matrix": [2, 3], "x": 90, "y": 13, "flags": 4}, + {"matrix": [3, 3], "x": 105, "y": 13, "flags": 4}, + {"matrix": [2, 4], "x": 119, "y": 13, "flags": 4}, + {"matrix": [3, 4], "x": 134, "y": 13, "flags": 4}, + {"matrix": [2, 5], "x": 149, "y": 13, "flags": 4}, + {"matrix": [3, 5], "x": 164, "y": 13, "flags": 4}, + {"matrix": [2, 6], "x": 179, "y": 13, "flags": 4}, + {"matrix": [3, 6], "x": 202, "y": 13, "flags": 1}, + {"matrix": [3, 7], "x": 224, "y": 13, "flags": 1}, + {"matrix": [4, 0], "x": 4, "y": 26, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [5, 1], "x": 37, "y": 26, "flags": 12}, + {"matrix": [4, 2], "x": 52, "y": 26, "flags": 4}, + {"matrix": [5, 2], "x": 67, "y": 26, "flags": 4}, + {"matrix": [4, 3], "x": 82, "y": 26, "flags": 4}, + {"matrix": [5, 3], "x": 97, "y": 26, "flags": 4}, + {"matrix": [4, 4], "x": 112, "y": 26, "flags": 4}, + {"matrix": [5, 4], "x": 127, "y": 26, "flags": 4}, + {"matrix": [4, 5], "x": 142, "y": 26, "flags": 4}, + {"matrix": [5, 5], "x": 157, "y": 26, "flags": 4}, + {"matrix": [4, 6], "x": 172, "y": 26, "flags": 4}, + {"matrix": [5, 6], "x": 187, "y": 26, "flags": 4}, + {"matrix": [4, 7], "x": 207, "y": 32, "flags": 1}, + {"matrix": [5, 7], "x": 224, "y": 26, "flags": 1}, + {"matrix": [6, 0], "x": 6, "y": 38, "flags": 9}, + {"matrix": [7, 0], "x": 26, "y": 38, "flags": 12}, + {"matrix": [6, 1], "x": 41, "y": 38, "flags": 12}, + {"matrix": [7, 1], "x": 56, "y": 38, "flags": 12}, + {"matrix": [6, 2], "x": 71, "y": 38, "flags": 4}, + {"matrix": [7, 2], "x": 86, "y": 38, "flags": 4}, + {"matrix": [6, 3], "x": 101, "y": 38, "flags": 4}, + {"matrix": [7, 3], "x": 116, "y": 38, "flags": 4}, + {"matrix": [6, 4], "x": 131, "y": 38, "flags": 4}, + {"matrix": [7, 4], "x": 146, "y": 38, "flags": 4}, + {"matrix": [6, 5], "x": 161, "y": 38, "flags": 4}, + {"matrix": [7, 5], "x": 175, "y": 38, "flags": 4}, + {"matrix": [6, 7], "x": 190, "y": 38, "flags": 4}, + {"matrix": [7, 7], "x": 224, "y": 38, "flags": 1}, + {"matrix": [8, 0], "x": 2, "y": 51, "flags": 1}, + {"matrix": [9, 0], "x": 19, "y": 51, "flags": 4}, + {"matrix": [8, 1], "x": 34, "y": 51, "flags": 4}, + {"matrix": [9, 1], "x": 49, "y": 51, "flags": 4}, + {"matrix": [8, 2], "x": 63, "y": 51, "flags": 4}, + {"matrix": [9, 2], "x": 78, "y": 51, "flags": 4}, + {"matrix": [8, 3], "x": 93, "y": 51, "flags": 4}, + {"matrix": [9, 3], "x": 108, "y": 51, "flags": 4}, + {"matrix": [8, 4], "x": 123, "y": 51, "flags": 4}, + {"matrix": [9, 4], "x": 138, "y": 51, "flags": 4}, + {"matrix": [8, 5], "x": 153, "y": 51, "flags": 4}, + {"matrix": [9, 5], "x": 168, "y": 51, "flags": 4}, + {"matrix": [9, 6], "x": 189, "y": 51, "flags": 1}, + {"matrix": [8, 7], "x": 209, "y": 51, "flags": 4}, + {"matrix": [9, 7], "x": 224, "y": 51, "flags": 1}, + {"matrix": [10, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [11, 0], "x": 21, "y": 64, "flags": 9}, + {"matrix": [11, 1], "x": 39, "y": 64, "flags": 1}, + {"matrix": [10, 1], "x": 95, "y": 64, "flags": 4}, + {"matrix": [10, 5], "x": 149, "y": 64, "flags": 1}, + {"matrix": [11, 5], "x": 164, "y": 64, "flags": 1}, + {"matrix": [10, 6], "x": 179, "y": 64, "flags": 1}, + {"matrix": [11, 6], "x": 194, "y": 64, "flags": 4}, + {"matrix": [10, 7], "x": 209, "y": 64, "flags": 4}, + {"matrix": [11, 7], "x": 224, "y": 64, "flags": 4} + ] + }, "community_layouts": ["75_iso"], "layouts": { "LAYOUT_75_iso": { diff --git a/keyboards/tkc/portico/keyboard.json b/keyboards/tkc/portico/keyboard.json index 49efe0a942..52ad417a02 100644 --- a/keyboards/tkc/portico/keyboard.json +++ b/keyboards/tkc/portico/keyboard.json @@ -44,6 +44,75 @@ "typing_heatmap": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 152, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 171, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 195, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4} + ], "led_flush_limit": 26, "led_process_limit": 4, "max_brightness": 200, diff --git a/keyboards/tkc/portico/portico.c b/keyboards/tkc/portico/portico.c index bd60df13e2..e3283e1571 100644 --- a/keyboards/tkc/portico/portico.c +++ b/keyboards/tkc/portico/portico.c @@ -99,28 +99,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { #endif #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 }, - { 44, NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66 } - }, { - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 }, - { 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 }, - { 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 }, - { 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 }, - { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 152, 64 }, { 171, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 } - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4 - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/tkc/portico68v2/keyboard.json b/keyboards/tkc/portico68v2/keyboard.json index 087713f3a2..0e7ccac963 100644 --- a/keyboards/tkc/portico68v2/keyboard.json +++ b/keyboards/tkc/portico68v2/keyboard.json @@ -53,6 +53,90 @@ }, "center_point": [116, 32], "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 152, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 171, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 195, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 180, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 200, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 224, "y": 32, "flags": 2}, + {"x": 44, "y": 0, "flags": 2}, + {"x": 88, "y": 0, "flags": 2}, + {"x": 136, "y": 0, "flags": 2}, + {"x": 0, "y": 32, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 24, "y": 64, "flags": 2}, + {"x": 78, "y": 64, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 146, "y": 64, "flags": 2} + ], "max_brightness": 175, "sleep": true }, diff --git a/keyboards/tkc/portico68v2/portico68v2.c b/keyboards/tkc/portico68v2/portico68v2.c index 0f3c557b2c..e746bda7e6 100644 --- a/keyboards/tkc/portico68v2/portico68v2.c +++ b/keyboards/tkc/portico68v2/portico68v2.c @@ -104,30 +104,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0,SW6_CS39,SW6_CS38,SW6_CS37}, /* RGB82 */ }; -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 }, - { 44, NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66 } - }, { - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 }, - { 4, 16 }, { 23, 16 }, { 38, 16 }, { 53, 16 }, { 68, 16 }, { 83, 16 }, { 98, 16 }, { 113, 16 }, { 128, 16 }, { 143, 16 }, { 158, 16 }, { 173, 16 }, { 188, 16 }, { 206, 16 }, { 224, 16 }, - { 6, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 201, 32 }, { 224, 32 }, - { 9, 48 }, { 34, 48 }, { 49, 48 }, { 64, 48 }, { 79, 48 }, { 94, 48 }, { 109, 48 }, { 124, 48 }, { 139, 48 }, { 154, 48 }, { 169, 48 }, { 189, 48 }, { 210, 48 }, { 224, 48 }, - { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 152, 64 }, { 171, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 }, - {0,0},{180,0},{224,0},{200,64},{224,64},{224,32},{44,0},{88,0},{136,0},{0,32},{0,64},{24,64},{78,64},{112,64},{146,64} -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, - 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/tkc/portico75/keyboard.json b/keyboards/tkc/portico75/keyboard.json index 1e84f25ebe..63f5b59f43 100644 --- a/keyboards/tkc/portico75/keyboard.json +++ b/keyboards/tkc/portico75/keyboard.json @@ -42,6 +42,106 @@ "hue_wave": true }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 18, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 33, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 62, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 110, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 125, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 143, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 158, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 173, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 187, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 205, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 15, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 29, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 44, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 74, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 88, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 103, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 118, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 132, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 147, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 162, "y": 15, "flags": 4}, + {"matrix": [1, 12], "x": 176, "y": 15, "flags": 4}, + {"matrix": [1, 13], "x": 198, "y": 15, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 22, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 51, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 66, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 110, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 125, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 140, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 154, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 169, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 183, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 202, "y": 26, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 26, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 25, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 54, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 98, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 113, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 143, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 157, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 172, "y": 38, "flags": 4}, + {"matrix": [3, 12], "x": 197, "y": 38, "flags": 4}, + {"matrix": [4, 0], "x": 9, "y": 49, "flags": 4}, + {"matrix": [4, 1], "x": 33, "y": 49, "flags": 4}, + {"matrix": [4, 2], "x": 48, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 62, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 77, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 92, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 107, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 121, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 136, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 151, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 165, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 186, "y": 49, "flags": 4}, + {"matrix": [4, 12], "x": 209, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 2, "y": 61, "flags": 4}, + {"matrix": [5, 1], "x": 20, "y": 61, "flags": 4}, + {"matrix": [5, 2], "x": 39, "y": 61, "flags": 4}, + {"matrix": [5, 5], "x": 94, "y": 61, "flags": 4}, + {"matrix": [5, 9], "x": 151, "y": 61, "flags": 4}, + {"matrix": [5, 10], "x": 173, "y": 61, "flags": 4}, + {"matrix": [5, 11], "x": 195, "y": 64, "flags": 4}, + {"matrix": [5, 12], "x": 209, "y": 64, "flags": 4}, + {"matrix": [5, 13], "x": 224, "y": 64, "flags": 4}, + {"x": 2, "y": 0, "flags": 2}, + {"x": 46, "y": 0, "flags": 2}, + {"x": 90, "y": 0, "flags": 2}, + {"x": 134, "y": 0, "flags": 2}, + {"x": 178, "y": 0, "flags": 2}, + {"x": 222, "y": 0, "flags": 2}, + {"x": 224, "y": 2, "flags": 2}, + {"x": 224, "y": 32, "flags": 2}, + {"x": 224, "y": 62, "flags": 2}, + {"x": 2, "y": 64, "flags": 2}, + {"x": 46, "y": 64, "flags": 2}, + {"x": 90, "y": 64, "flags": 2}, + {"x": 134, "y": 64, "flags": 2}, + {"x": 178, "y": 64, "flags": 2}, + {"x": 222, "y": 64, "flags": 2}, + {"x": 0, "y": 2, "flags": 2}, + {"x": 0, "y": 32, "flags": 2}, + {"x": 0, "y": 62, "flags": 2} + ], "led_flush_limit": 26, "led_process_limit": 4, "max_brightness": 200, diff --git a/keyboards/tkc/portico75/portico75.c b/keyboards/tkc/portico75/portico75.c index cd6dafe31a..9552b853c5 100644 --- a/keyboards/tkc/portico75/portico75.c +++ b/keyboards/tkc/portico75/portico75.c @@ -142,31 +142,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { #endif #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29}, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44}, - { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, NO_LED, NO_LED}, - { 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, NO_LED, NO_LED}, - { 71, 72, 73, NO_LED, NO_LED, 74, NO_LED, NO_LED, NO_LED, 75, 76, 77, 78, 79, NO_LED}, -}, { - {0,0},{18,0},{33,0},{48,0},{62,0},{81,0},{96,0},{110,0},{125,0},{143,0},{158,0},{173,0},{187,0},{205,0},{224,0}, - {0,15},{15,15},{29,15},{44,15},{59,15},{74,15},{88,15},{103,15},{118,15},{132,15},{147,15},{162,15},{176,15},{198,15},{224,15}, - {4,26},{22,26},{37,26},{51,26},{66,26},{81,26},{96,26},{110,26},{125,26},{140,26},{154,26},{169,26},{183,26},{202,26},{224,26}, - {5,38},{25,38},{40,38},{54,38},{69,38},{84,38},{98,38},{113,38},{128,38},{143,38},{157,38},{172,38},{197,38}, - {9,49},{33,49},{48,49},{62,49},{77,49},{92,49},{107,49},{121,49},{136,49},{151,49},{165,49},{186,49},{209,52}, - {2,61},{20,61},{39,61},{94,61},{151,61},{173,61},{195,64},{209,64},{224,64}, - {2,0},{46,0},{90,0},{134,0},{178,0},{222,0},{224,2},{224,32},{224,62},{2,64},{46,64},{90,64},{134,64},{178,64},{222,64},{0,2},{0,32},{0,62}, -}, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/ungodly/launch_pad/keyboard.json b/keyboards/ungodly/launch_pad/keyboard.json index 50b6c2bcbf..2f5bc95aa6 100644 --- a/keyboards/ungodly/launch_pad/keyboard.json +++ b/keyboards/ungodly/launch_pad/keyboard.json @@ -33,6 +33,30 @@ "animation": "cycle_pinwheel" }, "driver": "ws2812", + "layout": [ + {"matrix": [4, 1], "x": 37, "y": 60, "flags": 4}, + {"matrix": [4, 2], "x": 148, "y": 60, "flags": 4}, + {"matrix": [3, 3], "x": 222, "y": 54, "flags": 4}, + {"matrix": [3, 2], "x": 148, "y": 45, "flags": 4}, + {"matrix": [3, 1], "x": 74, "y": 45, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 45, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 30, "flags": 4}, + {"matrix": [2, 1], "x": 74, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 148, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 222, "y": 30, "flags": 4}, + {"matrix": [1, 3], "x": 222, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 148, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 74, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 74, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 148, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 222, "y": 0, "flags": 4}, + {"x": 185, "y": 7, "flags": 2}, + {"x": 37, "y": 7, "flags": 2}, + {"x": 37, "y": 52, "flags": 2}, + {"x": 185, "y": 52, "flags": 2} + ], "max_brightness": 150, "sat_steps": 8, "val_steps": 8, diff --git a/keyboards/ungodly/launch_pad/launch_pad.c b/keyboards/ungodly/launch_pad/launch_pad.c deleted file mode 100644 index 9803d8674f..0000000000 --- a/keyboards/ungodly/launch_pad/launch_pad.c +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright 2020 Ungodly Design - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 14, 15, 16, 17 }, - { 13, 12, 11, 10 }, - { 6, 7, 8, 9 }, - { 5, 4, 3, 2 }, - {NO_LED, 0, 1, NO_LED } -}, { // LED Index to Physical Position - { 37, 60 }, { 148, 60 }, // row 5 - { 222, 54 }, { 148, 45 }, { 74, 45 }, { 0, 45 }, // row 4 - { 0, 30 }, { 74, 30 }, { 148, 30 }, { 222, 30 }, // row 3 - { 222, 15 }, { 148, 15 }, { 74, 15 }, { 0, 15 }, // row 2 - { 0, 0 }, { 74, 0 }, { 148, 0 }, { 222, 0 }, // row 1 - { 185, 7 }, { 37, 7 }, // top underglow - { 37, 52 }, { 185, 52 }, // bottom underglow -}, { - // LED Index to Flag - 4, 4, // row 5 - 4, 4, 4, 4, // row 4 - 4, 4, 4, 4, // row 3 - 4, 4, 4, 4, // row 2 - 4, 4, 4, 4, // row 1 - 2, 2, - 2, 2 -} }; -#endif diff --git a/keyboards/wekey/we27/keyboard.json b/keyboards/wekey/we27/keyboard.json index 91731cdc39..50c6de9e10 100644 --- a/keyboards/wekey/we27/keyboard.json +++ b/keyboards/wekey/we27/keyboard.json @@ -29,6 +29,35 @@ "hue": 108 }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 1, "flags": 1}, + {"matrix": [0, 1], "x": 56, "y": 1, "flags": 1}, + {"matrix": [0, 2], "x": 112, "y": 1, "flags": 1}, + {"matrix": [0, 3], "x": 168, "y": 1, "flags": 1}, + {"matrix": [0, 4], "x": 224, "y": 1, "flags": 1}, + {"matrix": [1, 4], "x": 0, "y": 16, "flags": 1}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 1}, + {"matrix": [1, 2], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 56, "y": 28, "flags": 4}, + {"matrix": [2, 2], "x": 112, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 168, "y": 28, "flags": 4}, + {"matrix": [2, 4], "x": 224, "y": 28, "flags": 4}, + {"matrix": [3, 3], "x": 0, "y": 40, "flags": 1}, + {"matrix": [3, 2], "x": 56, "y": 40, "flags": 4}, + {"matrix": [3, 1], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 0], "x": 168, "y": 40, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 56, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 112, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 168, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 224, "y": 52, "flags": 4}, + {"matrix": [5, 3], "x": 0, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 56, "y": 64, "flags": 4}, + {"matrix": [5, 0], "x": 168, "y": 64, "flags": 4} + ], "react_on_keyup": true }, "matrix_pins": { diff --git a/keyboards/wekey/we27/we27.c b/keyboards/wekey/we27/we27.c deleted file mode 100644 index 03ec6f5512..0000000000 --- a/keyboards/wekey/we27/we27.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright 2021 @wekey - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - -#define __ NO_LED - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4 }, - { 9, 8, 7, 6, 5 }, - { 10, 11, 12, 13, 14 }, - { 18, 17, 16, 15, __ }, - { 19, 20, 21, 22, 23 }, - { 26, 25, __, 24, __ } -}, { - {0,1},{56,1},{112,1},{168,1},{224,1}, - {0,16},{56,16},{112,16},{168,16},{224,16}, - {0,28},{56,28},{112,28},{168,28},{224,28}, - {0,40},{56,40},{112,40},{168,40}, - {0,52},{56,52},{112,52},{168,52},{224,52}, - {0,64},{56,64},{168,64} -}, { - 1, 1, 1, 1, 1, - 1, 1, 4, 4, 4, - 1, 4, 4, 4, 4, - 1, 4, 4, 4, - 1, 4, 4, 4, 4, - 1, 4, 4 -} }; - -#endif diff --git a/keyboards/work_louder/loop/info.json b/keyboards/work_louder/loop/info.json index 70dc6cc13a..d029f73117 100644 --- a/keyboards/work_louder/loop/info.json +++ b/keyboards/work_louder/loop/info.json @@ -54,6 +54,17 @@ "typing_heatmap": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [0, 10], "x": 169, "y": 32, "flags": 4}, + {"matrix": [0, 9], "x": 150, "y": 32, "flags": 4}, + {"matrix": [0, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [0, 6], "x": 93, "y": 32, "flags": 4}, + {"matrix": [0, 5], "x": 74, "y": 32, "flags": 4}, + {"matrix": [0, 4], "x": 55, "y": 32, "flags": 4}, + {"matrix": [0, 3], "x": 36, "y": 32, "flags": 4} + ], "max_brightness": 120, "sleep": true }, diff --git a/keyboards/work_louder/loop/loop.c b/keyboards/work_louder/loop/loop.c index 7880584d09..138be4e75a 100644 --- a/keyboards/work_louder/loop/loop.c +++ b/keyboards/work_louder/loop/loop.c @@ -41,17 +41,3 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { return true; } #endif - -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { - { - { NO_LED, NO_LED, NO_LED, 8, 7, 6, 5, 4, 3, 2, 1, 0 } - }, { - {188, 32}, {169, 32}, {150, 32}, {131, 32}, {112, 32}, {93, 32}, {74, 32}, {55, 32}, {36, 32} - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4 - } -}; -// clang-format on -#endif diff --git a/keyboards/work_louder/micro/keyboard.json b/keyboards/work_louder/micro/keyboard.json index b8da74dd92..677facf995 100644 --- a/keyboards/work_louder/micro/keyboard.json +++ b/keyboards/work_louder/micro/keyboard.json @@ -79,6 +79,20 @@ "digital_rain": true }, "driver": "ws2812", + "layout": [ + {"matrix": [3, 2], "x": 122, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 103, "y": 64, "flags": 4}, + {"matrix": [2, 0], "x": 84, "y": 45, "flags": 4}, + {"matrix": [2, 1], "x": 103, "y": 45, "flags": 4}, + {"matrix": [2, 2], "x": 133, "y": 45, "flags": 4}, + {"matrix": [2, 3], "x": 152, "y": 45, "flags": 4}, + {"matrix": [1, 3], "x": 152, "y": 26, "flags": 4}, + {"matrix": [1, 2], "x": 122, "y": 26, "flags": 4}, + {"matrix": [1, 1], "x": 103, "y": 26, "flags": 4}, + {"matrix": [1, 0], "x": 84, "y": 26, "flags": 4}, + {"matrix": [0, 1], "x": 103, "y": 7, "flags": 4}, + {"matrix": [0, 2], "x": 122, "y": 7, "flags": 4} + ], "max_brightness": 150, "sleep": true }, diff --git a/keyboards/work_louder/micro/micro.c b/keyboards/work_louder/micro/micro.c index f88ac8bb45..80af68ad8d 100644 --- a/keyboards/work_louder/micro/micro.c +++ b/keyboards/work_louder/micro/micro.c @@ -3,29 +3,6 @@ #include "micro.h" -#if defined(RGB_MATRIX_ENABLE) -// clang-format off -led_config_t g_led_config = { { - { NO_LED, 10, 11, NO_LED }, - { 9 , 8, 7, 6 }, - { 2, 3, 4, 5 }, - { NO_LED, 1, 0, NO_LED } - }, { - { 122, 64 }, { 103, 64 }, - { 84, 45 }, { 103, 45 }, { 133, 45 }, { 152, 45 }, - { 152, 26 }, { 122, 26 }, { 103, 26 }, { 84, 26 }, - { 103, 7 }, { 122, 7 } - }, - { - 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4 - } -}; -// clang-format on -#endif - #if defined(ENCODER_ENABLE) bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { diff --git a/keyboards/work_louder/nano/keyboard.json b/keyboards/work_louder/nano/keyboard.json index e15d095de0..c870803b1a 100644 --- a/keyboards/work_louder/nano/keyboard.json +++ b/keyboards/work_louder/nano/keyboard.json @@ -56,6 +56,10 @@ "digital_rain": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 2], "x": 103, "y": 32, "flags": 4}, + {"matrix": [0, 1], "x": 122, "y": 32, "flags": 4} + ], "max_brightness": 120, "sleep": true }, diff --git a/keyboards/work_louder/nano/nano.c b/keyboards/work_louder/nano/nano.c index 28db78e46d..a02b09d90c 100644 --- a/keyboards/work_louder/nano/nano.c +++ b/keyboards/work_louder/nano/nano.c @@ -27,16 +27,3 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { return true; } #endif - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - { NO_LED, 1, 0 } - }, { - { 103, 32 }, { 122, 32 } - }, { - 4, 4 - } -}; - -#endif From 8f22831f01299f1ae37c748f270fbee777867aa5 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 03:07:06 -0600 Subject: [PATCH 035/255] Migrate `g_led_config` to DD (S) (#25624) --- keyboards/s_ol/0xc_pad/0xc_pad.c | 34 ------- keyboards/s_ol/0xc_pad/keyboard.json | 17 +++- .../naked48/rev1/keyboard.json | 52 ++++++++++- keyboards/salicylic_acid3/naked48/rev1/rev1.c | 42 --------- .../sawnsprojects/satxri6key/keyboard.json | 8 ++ .../sawnsprojects/satxri6key/satxri6key.c | 32 ------- keyboards/senselessclay/ck60/ck60.c | 43 --------- keyboards/senselessclay/ck60/keyboard.json | 64 +++++++++++++ keyboards/silverbullet44/keyboard.json | 54 +++++++++++ keyboards/silverbullet44/silverbullet44.c | 45 ---------- keyboards/smallkeyboard/keyboard.json | 8 ++ keyboards/smallkeyboard/smallkeyboard.c | 15 ---- keyboards/sowbug/68keys/68keys.c | 36 -------- keyboards/sowbug/68keys/keyboard.json | 70 +++++++++++++++ keyboards/sowbug/ansi_tkl/ansi_tkl.c | 50 ----------- keyboards/sowbug/ansi_tkl/keyboard.json | 89 +++++++++++++++++++ .../spaceholdings/nebula12b/keyboard.json | 18 ++++ keyboards/spaceholdings/nebula12b/nebula12b.c | 42 --------- keyboards/spaceholdings/nebula68b/hs/hs.c | 41 --------- .../spaceholdings/nebula68b/hs/keyboard.json | 82 +++++++++++++++++ .../nebula68b/solder/keyboard.json | 83 +++++++++++++++++ .../spaceholdings/nebula68b/solder/solder.c | 41 --------- keyboards/splitkb/kyria/rev1/info.json | 22 +++++ keyboards/splitkb/kyria/rev1/rev1.c | 31 ------- keyboards/splitkb/kyria/rev2/info.json | 22 +++++ keyboards/splitkb/kyria/rev2/rev2.c | 30 ------- keyboards/system76/launch_1/keyboard.json | 86 ++++++++++++++++++ keyboards/system76/launch_1/launch_1.c | 53 ----------- 28 files changed, 672 insertions(+), 538 deletions(-) delete mode 100644 keyboards/s_ol/0xc_pad/0xc_pad.c delete mode 100644 keyboards/salicylic_acid3/naked48/rev1/rev1.c delete mode 100644 keyboards/sawnsprojects/satxri6key/satxri6key.c delete mode 100644 keyboards/senselessclay/ck60/ck60.c delete mode 100644 keyboards/silverbullet44/silverbullet44.c delete mode 100644 keyboards/sowbug/68keys/68keys.c delete mode 100644 keyboards/sowbug/ansi_tkl/ansi_tkl.c delete mode 100755 keyboards/spaceholdings/nebula12b/nebula12b.c delete mode 100755 keyboards/spaceholdings/nebula68b/hs/hs.c delete mode 100755 keyboards/spaceholdings/nebula68b/solder/solder.c diff --git a/keyboards/s_ol/0xc_pad/0xc_pad.c b/keyboards/s_ol/0xc_pad/0xc_pad.c deleted file mode 100644 index ba8cd96aec..0000000000 --- a/keyboards/s_ol/0xc_pad/0xc_pad.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright 2021 s-ol - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // indices - { 0, 6, KC_NO, KC_NO }, - { 1, 5, 7, KC_NO }, - { 2, 4, 8, 11 }, - { KC_NO, 3, 9, 10 } -}, { - // phys position - { 96, 110}, { 80, 83}, { 64, 55}, { 80, 28}, - { 96, 55}, {112, 83}, {128, 110}, {144, 83}, - {128, 55}, {112, 28}, {144, 28}, {160, 55} -}, { - // flags - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 -} }; -#endif diff --git a/keyboards/s_ol/0xc_pad/keyboard.json b/keyboards/s_ol/0xc_pad/keyboard.json index 1df5a5131e..3ad4e986d7 100644 --- a/keyboards/s_ol/0xc_pad/keyboard.json +++ b/keyboards/s_ol/0xc_pad/keyboard.json @@ -39,8 +39,21 @@ "solid_reactive": true, "splash": true }, - "center_point": [112, 63], - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 74, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 148, "y": 0, "flags": 4}, + {"matrix": [2, 0], "x": 37, "y": 21, "flags": 4}, + {"matrix": [3, 1], "x": 111, "y": 21, "flags": 4}, + {"matrix": [2, 1], "x": 185, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 0, "y": 42, "flags": 4}, + {"matrix": [0, 1], "x": 74, "y": 42, "flags": 4}, + {"matrix": [1, 2], "x": 148, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 224, "y": 42, "flags": 4}, + {"matrix": [3, 2], "x": 37, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 111, "y": 64, "flags": 4}, + {"matrix": [2, 3], "x": 185, "y": 64, "flags": 4} + ] }, "layouts": { "LAYOUT": { diff --git a/keyboards/salicylic_acid3/naked48/rev1/keyboard.json b/keyboards/salicylic_acid3/naked48/rev1/keyboard.json index 2cf2dbc45b..fd37a9e7cc 100644 --- a/keyboards/salicylic_acid3/naked48/rev1/keyboard.json +++ b/keyboards/salicylic_acid3/naked48/rev1/keyboard.json @@ -22,7 +22,57 @@ } }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 43, "flags": 4}, + {"matrix": [3, 0], "x": 17, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 34, "y": 64, "flags": 4}, + {"matrix": [3, 2], "x": 52, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 69, "y": 64, "flags": 4}, + {"matrix": [3, 4], "x": 86, "y": 64, "flags": 4}, + {"matrix": [3, 5], "x": 103, "y": 64, "flags": 4}, + {"matrix": [3, 6], "x": 121, "y": 64, "flags": 4}, + {"matrix": [3, 7], "x": 138, "y": 64, "flags": 4}, + {"matrix": [3, 8], "x": 155, "y": 64, "flags": 4}, + {"matrix": [3, 9], "x": 172, "y": 64, "flags": 4}, + {"matrix": [3, 10], "x": 190, "y": 64, "flags": 4}, + {"matrix": [3, 11], "x": 207, "y": 64, "flags": 4}, + {"matrix": [2, 11], "x": 224, "y": 43, "flags": 4}, + {"matrix": [1, 11], "x": 224, "y": 21, "flags": 4}, + {"matrix": [0, 11], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 207, "y": 0, "flags": 4}, + {"matrix": [1, 10], "x": 207, "y": 21, "flags": 4}, + {"matrix": [2, 10], "x": 207, "y": 43, "flags": 4}, + {"matrix": [2, 9], "x": 190, "y": 43, "flags": 4}, + {"matrix": [1, 9], "x": 190, "y": 21, "flags": 4}, + {"matrix": [0, 9], "x": 190, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 172, "y": 0, "flags": 4}, + {"matrix": [1, 8], "x": 172, "y": 21, "flags": 4}, + {"matrix": [2, 8], "x": 172, "y": 43, "flags": 4}, + {"matrix": [2, 7], "x": 155, "y": 43, "flags": 4}, + {"matrix": [1, 7], "x": 155, "y": 21, "flags": 4}, + {"matrix": [0, 7], "x": 155, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 138, "y": 0, "flags": 4}, + {"matrix": [1, 6], "x": 138, "y": 21, "flags": 4}, + {"matrix": [2, 6], "x": 138, "y": 43, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 43, "flags": 4}, + {"matrix": [1, 5], "x": 86, "y": 21, "flags": 4}, + {"matrix": [0, 5], "x": 86, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 69, "y": 0, "flags": 4}, + {"matrix": [1, 4], "x": 69, "y": 21, "flags": 4}, + {"matrix": [2, 4], "x": 69, "y": 43, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 43, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 21, "flags": 4}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 21, "flags": 4}, + {"matrix": [2, 2], "x": 34, "y": 43, "flags": 4}, + {"matrix": [2, 1], "x": 17, "y": 43, "flags": 4}, + {"matrix": [1, 1], "x": 17, "y": 21, "flags": 4}, + {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4} + ] }, "matrix_pins": { "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6", "D7", "E6", "B4", "B5"], diff --git a/keyboards/salicylic_acid3/naked48/rev1/rev1.c b/keyboards/salicylic_acid3/naked48/rev1/rev1.c deleted file mode 100644 index d4da157a56..0000000000 --- a/keyboards/salicylic_acid3/naked48/rev1/rev1.c +++ /dev/null @@ -1,42 +0,0 @@ -/* -Copyright 2021 Salicylic_Acid - -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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0,47,42,41,36,35,30,29,24,23,18,17 }, - { 1,46,43,40,37,34,31,28,25,22,19,16 }, - { 2,45,44,39,38,33,32,27,26,21,20,15 }, - { 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14 } - }, { - // LED Index to Physical Position - { 0, 0 }, { 0, 21 }, { 0, 43 }, { 17, 64 }, { 34, 64 },{ 52, 64 }, { 69, 64 }, { 86, 64 }, { 103, 64 }, { 121, 64 }, - { 138, 64 }, { 155, 64 }, { 172, 64 }, { 190, 64 }, { 207, 64 },{ 224, 43 }, { 224, 21 }, { 224, 0 }, { 207, 0 }, { 207, 21 }, - { 207, 43 }, { 190, 43 }, { 190, 21 }, { 190, 0 }, { 172, 0 },{ 172, 21 }, { 172, 43 }, { 155, 43 }, { 155, 21 }, { 155, 0 }, - { 138, 0 }, { 138, 21 }, { 138, 43 }, { 86, 43 }, { 86, 21 },{ 86, 0 }, { 69, 0 }, { 69, 21 }, { 69, 43 }, { 52, 43 }, - { 52, 21 }, { 52, 0 }, { 34, 0 }, { 34, 21 }, { 34, 43 },{ 17, 43 }, { 17, 21 }, { 17, 0 } - }, { - // LED Index to Flag - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4 -} }; -#endif diff --git a/keyboards/sawnsprojects/satxri6key/keyboard.json b/keyboards/sawnsprojects/satxri6key/keyboard.json index 92a798e4b2..30f1ec3fd1 100644 --- a/keyboards/sawnsprojects/satxri6key/keyboard.json +++ b/keyboards/sawnsprojects/satxri6key/keyboard.json @@ -56,6 +56,14 @@ "animation": "solid_reactive_simple" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 2], "x": 224, "y": 64, "flags": 1}, + {"matrix": [1, 1], "x": 112, "y": 64, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 64, "flags": 1} + ], "max_brightness": 200, "react_on_keyup": true }, diff --git a/keyboards/sawnsprojects/satxri6key/satxri6key.c b/keyboards/sawnsprojects/satxri6key/satxri6key.c deleted file mode 100644 index c335e0d3ef..0000000000 --- a/keyboards/sawnsprojects/satxri6key/satxri6key.c +++ /dev/null @@ -1,32 +0,0 @@ -/* Copyright 2021 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - //Key Matrix to LED Indexccxxz - {0, 1, 2}, - {5, 4, 3} -}, { - //LED Index to Physical Positon - {0, 0}, {112, 0}, {224, 0}, - {224, 64}, {112, 64}, {0, 64}, -}, { - 1, 1, 1, - 1, 1, 1, -} }; -#endif \ No newline at end of file diff --git a/keyboards/senselessclay/ck60/ck60.c b/keyboards/senselessclay/ck60/ck60.c deleted file mode 100644 index 3f8aea611a..0000000000 --- a/keyboards/senselessclay/ck60/ck60.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright 2022 kb-elmo - * - * 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 "quantum.h" - -#define __ NO_LED - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - //Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, __ }, - { 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, __ }, - { 54, 55, 56, __, __, __, 57, __, __, __, 58, 59, 60, 61 } -}, { - //LED Index to Physical Positon - { 0, 0 }, { 17, 0 }, { 34, 0 }, { 52, 0 }, { 69, 0 }, { 86, 0 }, { 103, 0 }, { 121, 0 }, { 138, 0 }, { 155, 0 }, { 172, 0 }, { 190, 0 }, { 207, 0 }, { 215, 0 }, - { 224, 24 }, { 215, 16 }, { 198, 16 }, { 180, 16 }, { 164, 16 }, { 146, 16 }, { 129, 16 }, { 112, 16 }, { 95, 16 }, { 78, 16 }, { 60, 16 }, { 43, 16 }, { 26 , 16 }, { 0, 16 }, - { 0, 32 }, { 30, 32 }, { 47, 32 }, { 65, 32 }, { 81, 32 }, { 99, 32 }, { 116, 32 }, { 133, 32 }, { 150, 32 }, { 168, 32 }, { 185, 32 }, { 202, 32 }, { 220, 32 }, - { 207, 48 }, { 190, 48 }, { 172, 48 }, { 155, 48 }, { 138, 48 }, { 121, 48 }, { 103, 48 }, { 86, 48 }, { 69, 48 }, { 52, 48 }, { 34, 48 }, { 17, 48 }, { 0, 48 }, - { 0, 64 }, { 17, 64 }, { 34, 64 }, { 103, 64 }, { 172, 64 }, { 190, 64 }, { 207, 64 }, { 224, 64 } -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1 -} }; -#endif diff --git a/keyboards/senselessclay/ck60/keyboard.json b/keyboards/senselessclay/ck60/keyboard.json index d4fa5336e6..4b1937513e 100644 --- a/keyboards/senselessclay/ck60/keyboard.json +++ b/keyboards/senselessclay/ck60/keyboard.json @@ -36,6 +36,70 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 69, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 86, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 121, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 138, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 155, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 172, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 190, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 207, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 215, "y": 0, "flags": 1}, + {"matrix": [1, 13], "x": 224, "y": 24, "flags": 1}, + {"matrix": [1, 12], "x": 215, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 198, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 180, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 164, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 146, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 129, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 95, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 78, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 60, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 43, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 26, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 30, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 47, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 65, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 81, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 99, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 133, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 150, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 168, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 185, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 202, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 220, "y": 32, "flags": 4}, + {"matrix": [3, 12], "x": 207, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 190, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 172, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 155, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 121, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 103, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 86, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 17, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 17, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 172, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 190, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 207, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1} + ], "max_brightness": 160, "sleep": true }, diff --git a/keyboards/silverbullet44/keyboard.json b/keyboards/silverbullet44/keyboard.json index 26e2bcce3a..a724314212 100644 --- a/keyboards/silverbullet44/keyboard.json +++ b/keyboards/silverbullet44/keyboard.json @@ -30,6 +30,60 @@ "animation": "typing_heatmap" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 3], "x": 139, "y": 16, "flags": 2}, + {"matrix": [0, 4], "x": 174, "y": 13, "flags": 2}, + {"matrix": [0, 5], "x": 208, "y": 20, "flags": 2}, + {"matrix": [1, 5], "x": 208, "y": 38, "flags": 2}, + {"matrix": [1, 4], "x": 174, "y": 48, "flags": 2}, + {"matrix": [1, 3], "x": 139, "y": 52, "flags": 2}, + {"matrix": [0, 2], "x": 129, "y": 63, "flags": 1}, + {"matrix": [0, 1], "x": 139, "y": 39, "flags": 4}, + {"matrix": [1, 2], "x": 139, "y": 21, "flags": 4}, + {"matrix": [2, 3], "x": 139, "y": 4, "flags": 4}, + {"matrix": [2, 4], "x": 156, "y": 2, "flags": 4}, + {"matrix": [2, 5], "x": 156, "y": 19, "flags": 4}, + {"matrix": [3, 5], "x": 156, "y": 37, "flags": 4}, + {"matrix": [3, 4], "x": 144, "y": 58, "flags": 1}, + {"matrix": [3, 3], "x": 164, "y": 55, "flags": 1}, + {"matrix": [3, 2], "x": 174, "y": 35, "flags": 4}, + {"matrix": [2, 2], "x": 174, "y": 13, "flags": 4}, + {"matrix": [1, 1], "x": 174, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 191, "y": 3, "flags": 4}, + {"matrix": [1, 0], "x": 191, "y": 20, "flags": 4}, + {"matrix": [2, 1], "x": 191, "y": 37, "flags": 4}, + {"matrix": [2, 0], "x": 208, "y": 42, "flags": 4}, + {"x": 208, "y": 24, "flags": 4}, + {"x": 208, "y": 7, "flags": 4}, + {"x": 224, "y": 7, "flags": 1}, + {"x": 224, "y": 24, "flags": 1}, + {"x": 224, "y": 41, "flags": 1}, + {"x": 85, "y": 16, "flags": 2}, + {"x": 50, "y": 13, "flags": 2}, + {"x": 16, "y": 20, "flags": 2}, + {"x": 16, "y": 38, "flags": 2}, + {"x": 50, "y": 48, "flags": 2}, + {"x": 85, "y": 52, "flags": 2}, + {"x": 95, "y": 63, "flags": 1}, + {"x": 85, "y": 39, "flags": 4}, + {"x": 85, "y": 21, "flags": 4}, + {"x": 85, "y": 4, "flags": 4}, + {"x": 68, "y": 2, "flags": 4}, + {"x": 68, "y": 19, "flags": 4}, + {"x": 68, "y": 37, "flags": 4}, + {"x": 80, "y": 58, "flags": 1}, + {"x": 60, "y": 55, "flags": 1}, + {"x": 50, "y": 35, "flags": 4}, + {"x": 50, "y": 13, "flags": 4}, + {"x": 50, "y": 0, "flags": 4}, + {"x": 33, "y": 3, "flags": 4}, + {"x": 33, "y": 20, "flags": 4}, + {"x": 33, "y": 37, "flags": 4}, + {"x": 16, "y": 42, "flags": 4}, + {"x": 16, "y": 24, "flags": 4}, + {"x": 16, "y": 7, "flags": 4}, + {"x": 0, "y": 7, "flags": 1} + ], "max_brightness": 150, "sat_steps": 8, "val_steps": 8, diff --git a/keyboards/silverbullet44/silverbullet44.c b/keyboards/silverbullet44/silverbullet44.c deleted file mode 100644 index 00bd6153c9..0000000000 --- a/keyboards/silverbullet44/silverbullet44.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright 2019 SwanMatch - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 18, 7, 6, 0, 1, 2}, - { 19, 17, 8, 5, 4, 3}, - { 21, 20, 16, 9, 10, 11}, - { NO_LED, NO_LED, 15, 14, 13, 12}, -}, { - { 139, 16 }, { 174, 13 }, { 208, 20 }, { 208, 38 }, { 174, 48 }, { 139, 52 }, { 129, 63 }, - { 139, 39 }, { 139, 21 }, { 139, 4 }, { 156, 2 }, { 156, 19 }, { 156, 37 }, { 144, 58 }, - { 164, 55 }, { 174, 35 }, { 174, 13 }, { 174, 0 }, { 191, 3 }, { 191, 20 }, { 191, 37 }, - { 208, 42 }, { 208, 24 }, { 208, 7 }, { 224, 7 }, { 224, 24 }, { 224, 41 }, { 85, 16 }, - { 50, 13 }, { 16, 20 }, { 16, 38 }, { 50, 48 }, { 85, 52 }, { 95, 63 }, { 85, 39 }, - { 85, 21 }, { 85, 4 }, { 68, 2 }, { 68, 19 }, { 68, 37 }, { 80, 58 }, { 60, 55 }, - { 50, 35 }, { 50, 13 }, { 50, 0 }, { 33, 3 }, { 33, 20 }, { 33, 37 }, { 16, 42 }, - { 16, 24 }, { 16, 7 }, { 0, 7 } -}, { - 2, 2, 2, 2, 2, 2, 1, - 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 1, 1, 1, 2, - 2, 2, 2, 2, 2, 1, 4, - 4, 4, 4, 4, 4, 1, 1, - 4, 4, 4, 4, 4, 4, 4, - 4, 4, 1 -} }; - -#endif diff --git a/keyboards/smallkeyboard/keyboard.json b/keyboards/smallkeyboard/keyboard.json index dfbdee1cdd..da08cf66c2 100644 --- a/keyboards/smallkeyboard/keyboard.json +++ b/keyboards/smallkeyboard/keyboard.json @@ -44,6 +44,14 @@ "solid_reactive": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [1, 1], "x": 112, "y": 64, "flags": 1}, + {"matrix": [1, 2], "x": 224, "y": 64, "flags": 4} + ], "sleep": true }, "matrix_pins": { diff --git a/keyboards/smallkeyboard/smallkeyboard.c b/keyboards/smallkeyboard/smallkeyboard.c index 7442444b00..c3b4a35f84 100644 --- a/keyboards/smallkeyboard/smallkeyboard.c +++ b/keyboards/smallkeyboard/smallkeyboard.c @@ -31,19 +31,4 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {0, C1_12, C2_12, C3_12}, // BL5 {0, C1_13, C2_13, C3_13}, // BL6 }; - -led_config_t g_led_config = { - { - { 0, 1, 2}, - { 3, 4, 5}, - }, - { - { 48, 32},{ 48, 48},{ 64, 48}, - { 80, 16},{ 64, 32},{ 80, 32} - }, - { - 4, 4, 4, - 1, 1, 4 - } -}; #endif diff --git a/keyboards/sowbug/68keys/68keys.c b/keyboards/sowbug/68keys/68keys.c deleted file mode 100644 index df9681481f..0000000000 --- a/keyboards/sowbug/68keys/68keys.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright 2021 Mike Tsao - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, - { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, NO_LED, NO_LED, NO_LED }, - { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, NO_LED, NO_LED, NO_LED }, - { 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } -}, { - // LED Index to Physical Position - {0, 0}, {12, 0}, {25, 0}, {38, 0}, {51, 0}, {64, 0}, {77, 0}, {90, 0}, {103, 0}, {116, 0}, {129, 0}, {142, 0}, {155, 0}, {175, 0}, {198, 0}, {211, 0}, {3, 12}, {19, 12}, {32, 12}, {45, 12}, {58, 12}, {71, 12}, {84, 12}, {97, 12}, {110, 12}, {123, 12}, {136, 12}, {149, 12}, {162, 12}, {178, 12}, {198, 12}, {211, 12}, {4, 25}, {22, 25}, {35, 25}, {48, 25}, {61, 25}, {74, 25}, {87, 25}, {100, 25}, {113, 25}, {126, 25}, {139, 25}, {152, 25}, {173, 25}, {8, 38}, {29, 38}, {42, 38}, {55, 38}, {68, 38}, {81, 38}, {94, 38}, {107, 38}, {120, 38}, {133, 38}, {146, 38}, {170, 38}, {198, 38}, {1, 51}, {17, 51}, {34, 51}, {82, 51}, {131, 51}, {147, 51}, {163, 51}, {185, 51}, {198, 51}, {211, 51} -}, { - // LED Index to Flag - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT -} -}; - -#endif // #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/sowbug/68keys/keyboard.json b/keyboards/sowbug/68keys/keyboard.json index be4ffbf9a9..38ed02706d 100644 --- a/keyboards/sowbug/68keys/keyboard.json +++ b/keyboards/sowbug/68keys/keyboard.json @@ -58,6 +58,76 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 12, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 25, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 38, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 51, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 77, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 116, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 129, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 142, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 155, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 175, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 3, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 19, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 45, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 58, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 71, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 84, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 97, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 110, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 123, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 136, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 149, "y": 12, "flags": 4}, + {"matrix": [1, 12], "x": 162, "y": 12, "flags": 4}, + {"matrix": [1, 13], "x": 178, "y": 12, "flags": 4}, + {"matrix": [1, 14], "x": 198, "y": 12, "flags": 4}, + {"matrix": [1, 15], "x": 211, "y": 12, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 25, "flags": 4}, + {"matrix": [2, 1], "x": 22, "y": 25, "flags": 4}, + {"matrix": [2, 2], "x": 35, "y": 25, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 25, "flags": 4}, + {"matrix": [2, 4], "x": 61, "y": 25, "flags": 4}, + {"matrix": [2, 5], "x": 74, "y": 25, "flags": 4}, + {"matrix": [2, 6], "x": 87, "y": 25, "flags": 4}, + {"matrix": [2, 7], "x": 100, "y": 25, "flags": 4}, + {"matrix": [2, 8], "x": 113, "y": 25, "flags": 4}, + {"matrix": [2, 9], "x": 126, "y": 25, "flags": 4}, + {"matrix": [2, 10], "x": 139, "y": 25, "flags": 4}, + {"matrix": [2, 11], "x": 152, "y": 25, "flags": 4}, + {"matrix": [2, 12], "x": 173, "y": 25, "flags": 4}, + {"matrix": [3, 0], "x": 8, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 29, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 42, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 55, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 68, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 81, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 94, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 107, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 120, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 133, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 146, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 170, "y": 38, "flags": 4}, + {"matrix": [3, 12], "x": 198, "y": 38, "flags": 4}, + {"matrix": [4, 0], "x": 1, "y": 51, "flags": 4}, + {"matrix": [4, 1], "x": 17, "y": 51, "flags": 4}, + {"matrix": [4, 2], "x": 34, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 82, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 131, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 147, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 163, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 185, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 198, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 211, "y": 51, "flags": 4} + ], "max_brightness": 128, "sleep": true }, diff --git a/keyboards/sowbug/ansi_tkl/ansi_tkl.c b/keyboards/sowbug/ansi_tkl/ansi_tkl.c deleted file mode 100644 index 508bf62fe1..0000000000 --- a/keyboards/sowbug/ansi_tkl/ansi_tkl.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2021 Mike Tsao - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = {{ - // Key Matrix to LED Index - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, NO_LED}, - {16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32}, - {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49}, - {50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, NO_LED, NO_LED, NO_LED, NO_LED}, - {63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, NO_LED, NO_LED, NO_LED, NO_LED}, - {76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED} - }, - {// LED Index to Physical Position - {0, 0}, {24, 0}, {36, 0}, {49, 0}, {61, 0}, {79, 0}, {92, 0}, {104, 0}, {116, 0}, {135, 0}, {147, 0}, {159, 0}, {171, 0}, {187, 0}, {199, 0}, {211, 0}, - {0, 14}, {12, 14}, {24, 14}, {36, 14}, {49, 14}, {61, 14}, {73, 14}, {85, 14}, {98, 14}, {110, 14}, {122, 14}, {135, 14}, {147, 14}, {165, 14}, {187, 14}, {199, 14}, {211, 14}, - {3, 24}, {18, 24}, {30, 24}, {42, 24}, {55, 24}, {67, 24}, {79, 24}, {92, 24}, {104, 24}, {116, 24}, {128, 24}, {141, 24}, {153, 24}, {168, 24}, {187, 24}, {199, 24}, {211, 24}, - {4, 34}, {21, 34}, {33, 34}, {46, 34}, {58, 34}, {70, 34}, {82, 34}, {95, 34}, {107, 34}, {119, 34}, {131, 34}, {144, 34}, {164, 34}, - {7, 44}, {27, 44}, {39, 44}, {52, 44}, {64, 44}, {76, 44}, {88, 44}, {101, 44}, {113, 44}, {125, 44}, {138, 44}, {161, 44}, {199, 44}, - {1, 54}, {16, 54}, {32, 54}, {78, 54}, {124, 54}, {139, 54}, {154, 54}, {170, 54}, {187, 54}, {199, 54}, {211, 54}}, - {// LED Index to Flag - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, - LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT, LED_FLAG_KEYLIGHT - } -}; - -#endif // #ifdef RGB_MATRIX_ENABLE diff --git a/keyboards/sowbug/ansi_tkl/keyboard.json b/keyboards/sowbug/ansi_tkl/keyboard.json index 50b9d8095a..95f3925ff6 100644 --- a/keyboards/sowbug/ansi_tkl/keyboard.json +++ b/keyboards/sowbug/ansi_tkl/keyboard.json @@ -58,6 +58,95 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 24, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 36, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 49, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 79, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 92, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 104, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 116, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 147, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 159, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 171, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 187, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 199, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 14, "flags": 4}, + {"matrix": [1, 1], "x": 12, "y": 14, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 14, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 14, "flags": 4}, + {"matrix": [1, 4], "x": 49, "y": 14, "flags": 4}, + {"matrix": [1, 5], "x": 61, "y": 14, "flags": 4}, + {"matrix": [1, 6], "x": 73, "y": 14, "flags": 4}, + {"matrix": [1, 7], "x": 85, "y": 14, "flags": 4}, + {"matrix": [1, 8], "x": 98, "y": 14, "flags": 4}, + {"matrix": [1, 9], "x": 110, "y": 14, "flags": 4}, + {"matrix": [1, 10], "x": 122, "y": 14, "flags": 4}, + {"matrix": [1, 11], "x": 135, "y": 14, "flags": 4}, + {"matrix": [1, 12], "x": 147, "y": 14, "flags": 4}, + {"matrix": [1, 13], "x": 165, "y": 14, "flags": 4}, + {"matrix": [1, 14], "x": 187, "y": 14, "flags": 4}, + {"matrix": [1, 15], "x": 199, "y": 14, "flags": 4}, + {"matrix": [1, 16], "x": 211, "y": 14, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 24, "flags": 4}, + {"matrix": [2, 1], "x": 18, "y": 24, "flags": 4}, + {"matrix": [2, 2], "x": 30, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 55, "y": 24, "flags": 4}, + {"matrix": [2, 5], "x": 67, "y": 24, "flags": 4}, + {"matrix": [2, 6], "x": 79, "y": 24, "flags": 4}, + {"matrix": [2, 7], "x": 92, "y": 24, "flags": 4}, + {"matrix": [2, 8], "x": 104, "y": 24, "flags": 4}, + {"matrix": [2, 9], "x": 116, "y": 24, "flags": 4}, + {"matrix": [2, 10], "x": 128, "y": 24, "flags": 4}, + {"matrix": [2, 11], "x": 141, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 153, "y": 24, "flags": 4}, + {"matrix": [2, 13], "x": 168, "y": 24, "flags": 4}, + {"matrix": [2, 14], "x": 187, "y": 24, "flags": 4}, + {"matrix": [2, 15], "x": 199, "y": 24, "flags": 4}, + {"matrix": [2, 16], "x": 211, "y": 24, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 34, "flags": 4}, + {"matrix": [3, 1], "x": 21, "y": 34, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 34, "flags": 4}, + {"matrix": [3, 3], "x": 46, "y": 34, "flags": 4}, + {"matrix": [3, 4], "x": 58, "y": 34, "flags": 4}, + {"matrix": [3, 5], "x": 70, "y": 34, "flags": 4}, + {"matrix": [3, 6], "x": 82, "y": 34, "flags": 4}, + {"matrix": [3, 7], "x": 95, "y": 34, "flags": 4}, + {"matrix": [3, 8], "x": 107, "y": 34, "flags": 4}, + {"matrix": [3, 9], "x": 119, "y": 34, "flags": 4}, + {"matrix": [3, 10], "x": 131, "y": 34, "flags": 4}, + {"matrix": [3, 11], "x": 144, "y": 34, "flags": 4}, + {"matrix": [3, 12], "x": 164, "y": 34, "flags": 4}, + {"matrix": [4, 0], "x": 7, "y": 44, "flags": 4}, + {"matrix": [4, 1], "x": 27, "y": 44, "flags": 4}, + {"matrix": [4, 2], "x": 39, "y": 44, "flags": 4}, + {"matrix": [4, 3], "x": 52, "y": 44, "flags": 4}, + {"matrix": [4, 4], "x": 64, "y": 44, "flags": 4}, + {"matrix": [4, 5], "x": 76, "y": 44, "flags": 4}, + {"matrix": [4, 6], "x": 88, "y": 44, "flags": 4}, + {"matrix": [4, 7], "x": 101, "y": 44, "flags": 4}, + {"matrix": [4, 8], "x": 113, "y": 44, "flags": 4}, + {"matrix": [4, 9], "x": 125, "y": 44, "flags": 4}, + {"matrix": [4, 10], "x": 138, "y": 44, "flags": 4}, + {"matrix": [4, 11], "x": 161, "y": 44, "flags": 4}, + {"matrix": [4, 12], "x": 199, "y": 44, "flags": 4}, + {"matrix": [5, 0], "x": 1, "y": 54, "flags": 4}, + {"matrix": [5, 1], "x": 16, "y": 54, "flags": 4}, + {"matrix": [5, 2], "x": 32, "y": 54, "flags": 4}, + {"matrix": [5, 3], "x": 78, "y": 54, "flags": 4}, + {"matrix": [5, 4], "x": 124, "y": 54, "flags": 4}, + {"matrix": [5, 5], "x": 139, "y": 54, "flags": 4}, + {"matrix": [5, 6], "x": 154, "y": 54, "flags": 4}, + {"matrix": [5, 7], "x": 170, "y": 54, "flags": 4}, + {"matrix": [5, 8], "x": 187, "y": 54, "flags": 4}, + {"matrix": [5, 9], "x": 199, "y": 54, "flags": 4}, + {"matrix": [5, 10], "x": 211, "y": 54, "flags": 4} + ], "max_brightness": 128, "sleep": true }, diff --git a/keyboards/spaceholdings/nebula12b/keyboard.json b/keyboards/spaceholdings/nebula12b/keyboard.json index 6990da485b..c1092a75db 100755 --- a/keyboards/spaceholdings/nebula12b/keyboard.json +++ b/keyboards/spaceholdings/nebula12b/keyboard.json @@ -57,6 +57,24 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"x": 224, "y": 0, "flags": 2}, + {"matrix": [0, 2], "x": 224, "y": 9, "flags": 4}, + {"matrix": [1, 2], "x": 224, "y": 27, "flags": 4}, + {"matrix": [1, 1], "x": 112, "y": 27, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 27, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 46, "flags": 4}, + {"matrix": [2, 1], "x": 112, "y": 46, "flags": 4}, + {"matrix": [2, 2], "x": 224, "y": 46, "flags": 4}, + {"x": 224, "y": 55, "flags": 2}, + {"matrix": [3, 2], "x": 224, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 112, "y": 64, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4}, + {"x": 0, "y": 55, "flags": 2}, + {"matrix": [0, 0], "x": 0, "y": 9, "flags": 4}, + {"x": 0, "y": 0, "flags": 2}, + {"matrix": [0, 1], "x": 112, "y": 9, "flags": 4} + ], "sleep": true }, "build": { diff --git a/keyboards/spaceholdings/nebula12b/nebula12b.c b/keyboards/spaceholdings/nebula12b/nebula12b.c deleted file mode 100755 index 6bca6c331b..0000000000 --- a/keyboards/spaceholdings/nebula12b/nebula12b.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2022 Yiancar - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { { - { 13, 15, 1 }, - { 4, 3, 2 }, - { 5, 6, 7 }, - { 11, 10, 9 }, -}, { - {224, 0 }, {224, 9 }, {224, 27 }, {112, 27 }, { 0,27 }, - { 0, 46 }, {112, 46 }, {224, 46 }, {224, 55 }, {224,64 }, - {112, 64 }, { 0, 64 }, { 0, 55 }, { 0, 9 }, { 0, 0 }, {112, 9 } -}, { - 2, - 4, 4, 4, 4, 4, 4, 4, - 2, - 4, 4, 4, - 2, - 4, - 2, - 4 -} }; -// clang-format on -#endif - diff --git a/keyboards/spaceholdings/nebula68b/hs/hs.c b/keyboards/spaceholdings/nebula68b/hs/hs.c deleted file mode 100755 index 7ac8da2e0d..0000000000 --- a/keyboards/spaceholdings/nebula68b/hs/hs.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright 2021 Yiancar - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { { - { 0, 1, 2, 4, 5, 6, 7, 9, 10, 11, 13, 14, 15, 17, 18 }, - { 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, NO_LED, 21 }, - { 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 22, 49, 19 }, - { 63, NO_LED, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 20 }, - { 64, 65, 67, NO_LED, NO_LED, NO_LED, 69, NO_LED, NO_LED, 71, 72, 73, 75, 76, 77 } -}, { - { 6, 10}, { 19, 10}, { 32, 10}, { 39, 11}, { 45, 10}, { 58, 10}, { 71, 10}, { 84, 10}, { 90, 11}, { 97, 10}, {110, 10}, {123, 10}, {130, 11}, {136, 10}, {149, 10}, {162, 10}, - {178, 13}, {182, 10}, {205, 10}, {218, 10}, {218, 23}, {205, 23}, {185, 23}, {169, 23}, {156, 23}, {143, 23}, {130, 23}, {117, 23}, {104, 23}, { 91, 23}, { 78, 23}, - { 65, 23}, { 52, 23}, { 39, 23}, { 26, 23}, { 10, 23}, { 4, 26}, { 17, 29}, { 29, 35}, { 42, 35}, { 55, 35}, { 68, 35}, { 81, 35}, { 94, 35}, {107, 35}, {120, 35}, {133, 35}, - {146, 35}, {159, 35}, {180, 35}, {220, 32}, {205, 48}, {177, 48}, {153, 48}, {140, 48}, {127, 48}, {114, 48}, {101, 48}, { 88, 48}, { 75, 48}, { 62, 48}, { 49, 48}, { 36, 48}, - { 15, 48}, { 8, 61}, { 24, 61}, { 32, 52}, { 41, 61}, { 81, 56}, { 89, 61}, {132, 53}, {138, 61}, {154, 61}, {170, 61}, {179, 53}, {192, 61}, {205, 61}, {218, 61} -}, { - 1, 4, 4, 2, 4, 4, 4, 4, 2, 4, 4, 4, 2, 4, 4, 4, 2, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 2, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 2, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 2, 1, 2, 4, 2, 1, 1, 1, 2, 1, 1, 1 -} }; -// clang-format on -#endif diff --git a/keyboards/spaceholdings/nebula68b/hs/keyboard.json b/keyboards/spaceholdings/nebula68b/hs/keyboard.json index ca41cff8e6..f99fd95bc4 100755 --- a/keyboards/spaceholdings/nebula68b/hs/keyboard.json +++ b/keyboards/spaceholdings/nebula68b/hs/keyboard.json @@ -1,5 +1,87 @@ { "keyboard_name": "NEBULA68B HOTSWAP", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 6, "y": 10, "flags": 1}, + {"matrix": [0, 1], "x": 19, "y": 10, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 10, "flags": 4}, + {"x": 39, "y": 11, "flags": 2}, + {"matrix": [0, 3], "x": 45, "y": 10, "flags": 4}, + {"matrix": [0, 4], "x": 58, "y": 10, "flags": 4}, + {"matrix": [0, 5], "x": 71, "y": 10, "flags": 4}, + {"matrix": [0, 6], "x": 84, "y": 10, "flags": 4}, + {"x": 90, "y": 11, "flags": 2}, + {"matrix": [0, 7], "x": 97, "y": 10, "flags": 4}, + {"matrix": [0, 8], "x": 110, "y": 10, "flags": 4}, + {"matrix": [0, 9], "x": 123, "y": 10, "flags": 4}, + {"x": 130, "y": 11, "flags": 2}, + {"matrix": [0, 10], "x": 136, "y": 10, "flags": 4}, + {"matrix": [0, 11], "x": 149, "y": 10, "flags": 4}, + {"matrix": [0, 12], "x": 162, "y": 10, "flags": 4}, + {"x": 178, "y": 13, "flags": 2}, + {"matrix": [0, 13], "x": 182, "y": 10, "flags": 1}, + {"matrix": [0, 14], "x": 205, "y": 10, "flags": 1}, + {"matrix": [2, 14], "x": 218, "y": 10, "flags": 1}, + {"matrix": [3, 14], "x": 218, "y": 23, "flags": 1}, + {"matrix": [1, 14], "x": 205, "y": 23, "flags": 1}, + {"matrix": [2, 12], "x": 185, "y": 23, "flags": 4}, + {"matrix": [1, 12], "x": 169, "y": 23, "flags": 4}, + {"matrix": [1, 11], "x": 156, "y": 23, "flags": 4}, + {"matrix": [1, 10], "x": 143, "y": 23, "flags": 4}, + {"matrix": [1, 9], "x": 130, "y": 23, "flags": 4}, + {"matrix": [1, 8], "x": 117, "y": 23, "flags": 4}, + {"matrix": [1, 7], "x": 104, "y": 23, "flags": 4}, + {"matrix": [1, 6], "x": 91, "y": 23, "flags": 4}, + {"matrix": [1, 5], "x": 78, "y": 23, "flags": 4}, + {"matrix": [1, 4], "x": 65, "y": 23, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 23, "flags": 4}, + {"matrix": [1, 2], "x": 39, "y": 23, "flags": 4}, + {"matrix": [1, 1], "x": 26, "y": 23, "flags": 4}, + {"matrix": [1, 0], "x": 10, "y": 23, "flags": 1}, + {"x": 4, "y": 26, "flags": 2}, + {"matrix": [2, 0], "x": 17, "y": 29, "flags": 1}, + {"matrix": [2, 1], "x": 29, "y": 35, "flags": 4}, + {"matrix": [2, 2], "x": 42, "y": 35, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 35, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 35, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 35, "flags": 4}, + {"matrix": [2, 6], "x": 94, "y": 35, "flags": 4}, + {"matrix": [2, 7], "x": 107, "y": 35, "flags": 4}, + {"matrix": [2, 8], "x": 120, "y": 35, "flags": 4}, + {"matrix": [2, 9], "x": 133, "y": 35, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 35, "flags": 4}, + {"matrix": [2, 11], "x": 159, "y": 35, "flags": 4}, + {"matrix": [2, 13], "x": 180, "y": 35, "flags": 1}, + {"x": 220, "y": 32, "flags": 2}, + {"matrix": [3, 13], "x": 205, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 177, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 153, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 15, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 61, "flags": 1}, + {"matrix": [4, 1], "x": 24, "y": 61, "flags": 1}, + {"x": 32, "y": 52, "flags": 2}, + {"matrix": [4, 2], "x": 41, "y": 61, "flags": 1}, + {"x": 81, "y": 56, "flags": 2}, + {"matrix": [4, 6], "x": 89, "y": 61, "flags": 4}, + {"x": 132, "y": 53, "flags": 2}, + {"matrix": [4, 9], "x": 138, "y": 61, "flags": 1}, + {"matrix": [4, 10], "x": 154, "y": 61, "flags": 1}, + {"matrix": [4, 11], "x": 170, "y": 61, "flags": 1}, + {"x": 179, "y": 53, "flags": 2}, + {"matrix": [4, 12], "x": 192, "y": 61, "flags": 1}, + {"matrix": [4, 13], "x": 205, "y": 61, "flags": 1}, + {"matrix": [4, 14], "x": 218, "y": 61, "flags": 1} + ] + }, "community_layouts": ["68_ansi"], "layouts": { "LAYOUT_68_ansi": { diff --git a/keyboards/spaceholdings/nebula68b/solder/keyboard.json b/keyboards/spaceholdings/nebula68b/solder/keyboard.json index 3a50385fe3..ea002840e2 100755 --- a/keyboards/spaceholdings/nebula68b/solder/keyboard.json +++ b/keyboards/spaceholdings/nebula68b/solder/keyboard.json @@ -1,5 +1,88 @@ { "keyboard_name": "NEBULA68B SOLDER", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 6, "y": 10, "flags": 1}, + {"matrix": [0, 1], "x": 19, "y": 10, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 10, "flags": 4}, + {"x": 44, "y": 13, "flags": 2}, + {"matrix": [0, 3], "x": 45, "y": 10, "flags": 4}, + {"matrix": [0, 4], "x": 58, "y": 10, "flags": 4}, + {"matrix": [0, 5], "x": 71, "y": 10, "flags": 4}, + {"matrix": [0, 6], "x": 84, "y": 10, "flags": 4}, + {"x": 88, "y": 13, "flags": 2}, + {"matrix": [0, 7], "x": 97, "y": 10, "flags": 4}, + {"matrix": [0, 8], "x": 110, "y": 10, "flags": 4}, + {"matrix": [0, 9], "x": 123, "y": 10, "flags": 4}, + {"x": 132, "y": 13, "flags": 2}, + {"matrix": [0, 10], "x": 136, "y": 10, "flags": 4}, + {"matrix": [0, 11], "x": 149, "y": 10, "flags": 4}, + {"matrix": [0, 12], "x": 162, "y": 10, "flags": 4}, + {"matrix": [1, 13], "x": 175, "y": 10, "flags": 4}, + {"x": 179, "y": 13, "flags": 2}, + {"matrix": [0, 13], "x": 188, "y": 10, "flags": 1}, + {"matrix": [0, 14], "x": 205, "y": 10, "flags": 1}, + {"matrix": [2, 14], "x": 218, "y": 10, "flags": 1}, + {"matrix": [3, 14], "x": 218, "y": 23, "flags": 1}, + {"matrix": [1, 14], "x": 205, "y": 23, "flags": 1}, + {"matrix": [2, 12], "x": 185, "y": 23, "flags": 4}, + {"matrix": [1, 12], "x": 169, "y": 23, "flags": 4}, + {"matrix": [1, 11], "x": 156, "y": 23, "flags": 4}, + {"matrix": [1, 10], "x": 143, "y": 23, "flags": 4}, + {"matrix": [1, 9], "x": 130, "y": 23, "flags": 4}, + {"matrix": [1, 8], "x": 117, "y": 23, "flags": 4}, + {"matrix": [1, 7], "x": 104, "y": 23, "flags": 4}, + {"matrix": [1, 6], "x": 91, "y": 23, "flags": 4}, + {"matrix": [1, 5], "x": 78, "y": 23, "flags": 4}, + {"matrix": [1, 4], "x": 65, "y": 23, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 23, "flags": 4}, + {"matrix": [1, 2], "x": 39, "y": 23, "flags": 4}, + {"matrix": [1, 1], "x": 26, "y": 23, "flags": 4}, + {"matrix": [1, 0], "x": 10, "y": 23, "flags": 1}, + {"x": 4, "y": 26, "flags": 2}, + {"matrix": [2, 0], "x": 11, "y": 35, "flags": 1}, + {"matrix": [2, 1], "x": 29, "y": 35, "flags": 4}, + {"matrix": [2, 2], "x": 42, "y": 35, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 35, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 35, "flags": 4}, + {"matrix": [2, 5], "x": 81, "y": 35, "flags": 4}, + {"matrix": [2, 6], "x": 94, "y": 35, "flags": 4}, + {"matrix": [2, 7], "x": 107, "y": 35, "flags": 4}, + {"matrix": [2, 8], "x": 120, "y": 35, "flags": 4}, + {"matrix": [2, 9], "x": 133, "y": 35, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 35, "flags": 4}, + {"matrix": [2, 11], "x": 159, "y": 35, "flags": 4}, + {"matrix": [2, 13], "x": 180, "y": 35, "flags": 1}, + {"x": 220, "y": 32, "flags": 2}, + {"matrix": [3, 13], "x": 205, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 177, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 153, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 15, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 61, "flags": 1}, + {"matrix": [4, 1], "x": 24, "y": 61, "flags": 1}, + {"x": 32, "y": 52, "flags": 2}, + {"matrix": [4, 2], "x": 41, "y": 61, "flags": 1}, + {"x": 82, "y": 56, "flags": 2}, + {"matrix": [4, 6], "x": 89, "y": 61, "flags": 4}, + {"x": 132, "y": 53, "flags": 2}, + {"matrix": [4, 9], "x": 138, "y": 61, "flags": 1}, + {"matrix": [4, 10], "x": 154, "y": 61, "flags": 1}, + {"matrix": [4, 11], "x": 170, "y": 61, "flags": 1}, + {"x": 179, "y": 53, "flags": 2}, + {"matrix": [4, 12], "x": 192, "y": 61, "flags": 1}, + {"matrix": [4, 13], "x": 205, "y": 61, "flags": 1}, + {"matrix": [4, 14], "x": 218, "y": 61, "flags": 1} + ] + }, "community_layouts": ["68_ansi"], "layouts": { "LAYOUT_68_ansi": { diff --git a/keyboards/spaceholdings/nebula68b/solder/solder.c b/keyboards/spaceholdings/nebula68b/solder/solder.c deleted file mode 100755 index 352cee1d52..0000000000 --- a/keyboards/spaceholdings/nebula68b/solder/solder.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright 2021 Yiancar - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { { - { 0, 1, 2, 4, 5, 6, 7, 9, 10, 11, 13, 14, 15, 18, 19 }, - { 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 16, 22 }, - { 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 23, 50, 20 }, - { 64, NO_LED, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 21 }, - { 65, 66, 68, NO_LED, NO_LED, NO_LED, 70, NO_LED, NO_LED, 72, 73, 74, 76, 77, 78 } -}, { - { 6, 10}, { 19, 10}, { 32, 10}, { 44, 13}, { 45, 10}, { 58, 10}, { 71, 10}, { 84, 10}, { 88, 13}, { 97, 10}, {110, 10}, {123, 10}, {132, 13}, {136, 10}, {149, 10}, {162, 10}, - {175, 10}, {179, 13}, {188, 10}, {205, 10}, {218, 10}, {218, 23}, {205, 23}, {185, 23}, {169, 23}, {156, 23}, {143, 23}, {130, 23}, {117, 23}, {104, 23}, { 91, 23}, { 78, 23}, - { 65, 23}, { 52, 23}, { 39, 23}, { 26, 23}, { 10, 23}, { 4, 26}, { 11, 35}, { 29, 35}, { 42, 35}, { 55, 35}, { 68, 35}, { 81, 35}, { 94, 35}, {107, 35}, {120, 35}, {133, 35}, - {146, 35}, {159, 35}, {180, 35}, {220, 32}, {205, 48}, {177, 48}, {153, 48}, {140, 48}, {127, 48}, {114, 48}, {101, 48}, { 88, 48}, { 75, 48}, { 62, 48}, { 49, 48}, { 36, 48}, - { 15, 48}, { 8, 61}, { 24, 61}, { 32, 52}, { 41, 61}, { 82, 56}, { 89, 61}, {132, 53}, {138, 61}, {154, 61}, {170, 61}, {179, 53}, {192, 61}, {205, 61}, {218, 61} -}, { - 1, 4, 4, 2, 4, 4, 4, 4, 2, 4, 4, 4, 2, 4, 4, 4, 4, 2, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 2, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 2, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 2, 1, 2, 4, 2, 1, 1, 1, 2, 1, 1, 1 -} }; -// clang-format on -#endif diff --git a/keyboards/splitkb/kyria/rev1/info.json b/keyboards/splitkb/kyria/rev1/info.json index 1e21c60978..54758180fa 100644 --- a/keyboards/splitkb/kyria/rev1/info.json +++ b/keyboards/splitkb/kyria/rev1/info.json @@ -19,6 +19,28 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [2, 1], "x": 91, "y": 40, "flags": 255}, + {"matrix": [3, 2], "x": 77, "y": 56, "flags": 255}, + {"matrix": [3, 3], "x": 63, "y": 56, "flags": 255}, + {"matrix": [1, 2], "x": 77, "y": 24, "flags": 255}, + {"matrix": [0, 3], "x": 63, "y": 8, "flags": 255}, + {"matrix": [0, 6], "x": 21, "y": 8, "flags": 255}, + {"matrix": [2, 6], "x": 21, "y": 40, "flags": 255}, + {"matrix": [2, 5], "x": 35, "y": 40, "flags": 255}, + {"matrix": [2, 7], "x": 7, "y": 40, "flags": 255}, + {"matrix": [0, 7], "x": 7, "y": 8, "flags": 255}, + {"matrix": [6, 1], "x": 133, "y": 40, "flags": 255}, + {"matrix": [7, 2], "x": 147, "y": 56, "flags": 255}, + {"matrix": [7, 3], "x": 161, "y": 56, "flags": 255}, + {"matrix": [5, 2], "x": 147, "y": 24, "flags": 255}, + {"matrix": [4, 3], "x": 161, "y": 8, "flags": 255}, + {"matrix": [4, 6], "x": 203, "y": 8, "flags": 255}, + {"matrix": [6, 6], "x": 203, "y": 40, "flags": 255}, + {"matrix": [6, 5], "x": 189, "y": 40, "flags": 255}, + {"matrix": [6, 7], "x": 217, "y": 40, "flags": 255}, + {"matrix": [4, 7], "x": 217, "y": 8, "flags": 255} + ], "max_brightness": 170, "sleep": true, "split_count": [10, 10] diff --git a/keyboards/splitkb/kyria/rev1/rev1.c b/keyboards/splitkb/kyria/rev1/rev1.c index db14411933..2b64504cc3 100644 --- a/keyboards/splitkb/kyria/rev1/rev1.c +++ b/keyboards/splitkb/kyria/rev1/rev1.c @@ -32,34 +32,3 @@ __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATR const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1, 0}; # endif #endif - -#ifdef RGB_MATRIX_ENABLE -/* Map physical under glow LEDs for RGB matrix support - * - * 09, 05, xx, xx, 04, xx, xx, 14, xx, xx, 15, 19, - * xx, xx, xx, xx, xx, 03, 13, xx, xx, xx, xx, xx, - * 08, 06, 07, xx, xx, xx, 00, xx, xx, 10, xx, xx, xx, 17, 16, 18, - * xx, 02, 01, xx, xx, xx, xx, 11, 12, xx - */ -led_config_t g_led_config = { { - // Key Matrix to LED Index - { NO_LED, NO_LED, NO_LED, 4, NO_LED, NO_LED, 5, 9 }, - { NO_LED, NO_LED, 3, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 0, NO_LED, NO_LED, NO_LED, 7, 6, 8 }, - { NO_LED, NO_LED, 1, 2, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, 14, NO_LED, NO_LED, 15, 19 }, - { NO_LED, NO_LED, 13, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 10, NO_LED, NO_LED, NO_LED, 17, 16, 18 }, - { NO_LED, NO_LED, 11, 12, NO_LED, NO_LED, NO_LED, NO_LED }, -}, { - // LED Index to Physical Position - {91,40}, {77,56}, {63,56}, {77,24}, {63,8}, {21,8}, {21,40}, {35,40}, {7,40}, {7,8}, - {133,40}, {147,56}, {161,56}, {147,24}, {161,8}, {203,8}, {203,40}, {189,40}, {217,40}, {217,8} -}, { - // LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -} }; -#endif diff --git a/keyboards/splitkb/kyria/rev2/info.json b/keyboards/splitkb/kyria/rev2/info.json index d1507a26b0..41c55cc025 100644 --- a/keyboards/splitkb/kyria/rev2/info.json +++ b/keyboards/splitkb/kyria/rev2/info.json @@ -19,6 +19,28 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [1, 2], "x": 77, "y": 24, "flags": 255}, + {"matrix": [0, 3], "x": 63, "y": 8, "flags": 255}, + {"matrix": [0, 6], "x": 21, "y": 8, "flags": 255}, + {"matrix": [2, 6], "x": 21, "y": 40, "flags": 255}, + {"matrix": [2, 5], "x": 35, "y": 40, "flags": 255}, + {"matrix": [3, 3], "x": 63, "y": 56, "flags": 255}, + {"matrix": [3, 2], "x": 77, "y": 56, "flags": 255}, + {"matrix": [2, 1], "x": 91, "y": 40, "flags": 255}, + {"matrix": [2, 7], "x": 7, "y": 40, "flags": 255}, + {"matrix": [0, 7], "x": 7, "y": 8, "flags": 255}, + {"matrix": [5, 2], "x": 147, "y": 24, "flags": 255}, + {"matrix": [4, 3], "x": 161, "y": 8, "flags": 255}, + {"matrix": [4, 6], "x": 203, "y": 8, "flags": 255}, + {"matrix": [6, 6], "x": 203, "y": 40, "flags": 255}, + {"matrix": [6, 5], "x": 189, "y": 40, "flags": 255}, + {"matrix": [7, 3], "x": 161, "y": 56, "flags": 255}, + {"matrix": [7, 2], "x": 147, "y": 56, "flags": 255}, + {"matrix": [6, 1], "x": 133, "y": 40, "flags": 255}, + {"matrix": [6, 7], "x": 217, "y": 40, "flags": 255}, + {"matrix": [4, 7], "x": 217, "y": 8, "flags": 255} + ], "max_brightness": 170, "sleep": true, "split_count": [10, 10] diff --git a/keyboards/splitkb/kyria/rev2/rev2.c b/keyboards/splitkb/kyria/rev2/rev2.c index 37300c8188..70f894b64d 100644 --- a/keyboards/splitkb/kyria/rev2/rev2.c +++ b/keyboards/splitkb/kyria/rev2/rev2.c @@ -47,33 +47,3 @@ __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATR const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1, 0}; # endif #endif - -#ifdef RGB_MATRIX_ENABLE -/* Map physical under glow LEDs for RGB matrix support - * 09, 02, xx, xx, 01, xx, xx, 11, xx, xx, 12, 19, - * xx, xx, xx, xx, xx, 00, 10, xx, xx, xx, xx, xx, - * 08, 03, 04, xx, xx, xx, 07, xx, xx, 17, xx, xx, xx, 14, 13, 18, - * xx, 05, 06, xx, xx, xx, xx, 16, 15, xx - */ -led_config_t g_led_config = { { - // Key Matrix to LED Index - { NO_LED, NO_LED, NO_LED, 1, NO_LED, NO_LED, 2, 9 }, - { NO_LED, NO_LED, 0, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 7, NO_LED, NO_LED, NO_LED, 4, 3, 8 }, - { NO_LED, NO_LED, 6, 5, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, 11, NO_LED, NO_LED, 12, 19 }, - { NO_LED, NO_LED, 10, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 17, NO_LED, NO_LED, NO_LED, 14, 13, 18 }, - { NO_LED, NO_LED, 16, 15, NO_LED, NO_LED, NO_LED, NO_LED }, -}, { - // LED Index to Physical Position - {77,24}, {63,8}, {21,8}, {21,40}, {35,40}, {63,56}, {77,56}, {91,40}, {7,40}, {7,8}, - {147,24}, {161,8}, {203,8}, {203,40}, {189,40}, {161,56}, {147,56}, {133,40}, {217,40}, {217,8} -}, { - // LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -} }; -#endif diff --git a/keyboards/system76/launch_1/keyboard.json b/keyboards/system76/launch_1/keyboard.json index b5317dd9bc..3a7ecc928e 100644 --- a/keyboards/system76/launch_1/keyboard.json +++ b/keyboards/system76/launch_1/keyboard.json @@ -47,6 +47,92 @@ "hue": 142 }, "driver": "ws2812", + "layout": [ + {"matrix": [4, 12], "x": 209, "y": 51, "flags": 4}, + {"matrix": [4, 11], "x": 190, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 171, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 156, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 140, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 125, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 110, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 95, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 80, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 65, "y": 51, "flags": 4}, + {"matrix": [4, 2], "x": 49, "y": 51, "flags": 4}, + {"matrix": [4, 1], "x": 34, "y": 51, "flags": 4}, + {"matrix": [4, 0], "x": 11, "y": 51, "flags": 4}, + {"matrix": [5, 0], "x": 8, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 27, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 42, "y": 64, "flags": 4}, + {"matrix": [5, 3], "x": 57, "y": 64, "flags": 4}, + {"matrix": [5, 4], "x": 80, "y": 64, "flags": 4}, + {"matrix": [5, 6], "x": 110, "y": 64, "flags": 4}, + {"matrix": [5, 7], "x": 133, "y": 64, "flags": 4}, + {"matrix": [5, 8], "x": 148, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 167, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 194, "y": 64, "flags": 4}, + {"matrix": [5, 11], "x": 209, "y": 64, "flags": 4}, + {"matrix": [5, 12], "x": 224, "y": 64, "flags": 4}, + {"matrix": [5, 5], "x": 224, "y": 38, "flags": 4}, + {"matrix": [3, 12], "x": 197, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 178, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 163, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 148, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 133, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 118, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 103, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 87, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 72, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 57, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 42, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 27, "y": 38, "flags": 4}, + {"matrix": [3, 0], "x": 8, "y": 38, "flags": 4}, + {"matrix": [2, 0], "x": 4, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 23, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 38, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 53, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 26, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 26, "flags": 4}, + {"matrix": [2, 6], "x": 99, "y": 26, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 26, "flags": 4}, + {"matrix": [2, 8], "x": 129, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 26, "flags": 4}, + {"matrix": [2, 10], "x": 159, "y": 26, "flags": 4}, + {"matrix": [2, 11], "x": 175, "y": 26, "flags": 4}, + {"matrix": [2, 12], "x": 190, "y": 26, "flags": 4}, + {"matrix": [2, 13], "x": 205, "y": 26, "flags": 4}, + {"matrix": [5, 13], "x": 224, "y": 26, "flags": 4}, + {"matrix": [4, 13], "x": 224, "y": 13, "flags": 4}, + {"matrix": [1, 13], "x": 201, "y": 13, "flags": 4}, + {"matrix": [1, 12], "x": 182, "y": 13, "flags": 4}, + {"matrix": [1, 11], "x": 167, "y": 13, "flags": 4}, + {"matrix": [1, 10], "x": 152, "y": 13, "flags": 4}, + {"matrix": [1, 9], "x": 137, "y": 13, "flags": 4}, + {"matrix": [1, 8], "x": 121, "y": 13, "flags": 4}, + {"matrix": [1, 7], "x": 106, "y": 13, "flags": 4}, + {"matrix": [1, 6], "x": 91, "y": 13, "flags": 4}, + {"matrix": [1, 5], "x": 76, "y": 13, "flags": 4}, + {"matrix": [1, 4], "x": 61, "y": 13, "flags": 4}, + {"matrix": [1, 3], "x": 46, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 30, "y": 13, "flags": 4}, + {"matrix": [1, 1], "x": 15, "y": 13, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 46, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 76, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 91, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 106, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 121, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 137, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 152, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 167, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 182, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 201, "y": 0, "flags": 4}, + {"matrix": [3, 13], "x": 224, "y": 0, "flags": 4} + ], "max_brightness": 176, "sleep": true }, diff --git a/keyboards/system76/launch_1/launch_1.c b/keyboards/system76/launch_1/launch_1.c index 2cff70076e..3a4c4749c6 100644 --- a/keyboards/system76/launch_1/launch_1.c +++ b/keyboards/system76/launch_1/launch_1.c @@ -21,59 +21,6 @@ #include "usb_mux.h" // clang-format off -#ifdef RGB_MATRIX_ENABLE -// LEDs by index -// 0 1 2 3 4 5 6 7 8 9 -// 00 LM4 LL4 LK4 LJ4 LI4 LH4 LG4 LF4 LE4 LD4 -// 10 LC4 LB4 LA4 LA5 LB5 LC5 LD5 LE5 LG5 LH5 -// 20 LI5 LJ5 LK5 LL5 LM5 LO3 LM3 LL3 LK3 LJ3 -// 30 LI3 LH3 LG3 LF3 LE3 LD3 LC3 LB3 LA3 LA2 -// 40 LB2 LC2 LD2 LE2 LF2 LG2 LH2 LI2 LJ2 LK2 -// 50 LL2 LM2 LN2 LO2 LO1 LN1 LM1 LL1 LK1 LJ1 -// 60 LI1 LH1 LG1 LF1 LE1 LD1 LC1 LB1 LA1 LA0 -// 70 LB0 LC0 LD0 LE0 LF0 LG0 LH0 LI0 LJ0 LK0 -// 80 LL0 LM0 LN0 LO0 -led_config_t g_led_config = { { - // Key matrix to LED index -/* A B C D E F G H I J K L M N O */ -/* 0 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, */ -/* 1 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, */ -/* 2 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, */ -/* 3 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, */ -/* 4 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, */ -/* 5 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24 */ - { 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82 }, - { 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55 }, - { 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52 }, - { 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 83 }, - { 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0, 54 }, - { 13, 14, 15, 16, 17, 25, 18, 19, 20, 21, 22, 23, 24, 53 }, -}, { - // LED index to physical position (see leds.sh in `launch' repo) -/* 00 */ {209, 51}, {190, 51}, {171, 51}, {156, 51}, {140, 51}, {125, 51}, {110, 51}, {95, 51}, {80, 51}, {65, 51}, -/* 10 */ {49, 51}, {34, 51}, {11, 51}, {8, 64}, {27, 64}, {42, 64}, {57, 64}, {80, 64}, {110, 64}, {133, 64}, -/* 20 */ {148, 64}, {167, 64}, {194, 64}, {209, 64}, {224, 64}, {224, 38}, {197, 38}, {178, 38}, {163, 38}, {148, 38}, -/* 30 */ {133, 38}, {118, 38}, {103, 38}, {87, 38}, {72, 38}, {57, 38}, {42, 38}, {27, 38}, {8, 38}, {4, 26}, -/* 40 */ {23, 26}, {38, 26}, {53, 26}, {68, 26}, {84, 26}, {99, 26}, {114, 26}, {129, 26}, {144, 26}, {159, 26}, -/* 50 */ {175, 26}, {190, 26}, {205, 26}, {224, 26}, {224, 13}, {201, 13}, {182, 13}, {167, 13}, {152, 13}, {137, 13}, -/* 60 */ {121, 13}, {106, 13}, {91, 13}, {76, 13}, {61, 13}, {46, 13}, {30, 13}, {15, 13}, {0, 13}, {0, 0}, -/* 70 */ {15, 0}, {30, 0}, {46, 0}, {61, 0}, {76, 0}, {91, 0}, {106, 0}, {121, 0}, {137, 0}, {152, 0}, -/* 80 */ {167, 0}, {182, 0}, {201, 0}, {224, 0} -}, { - // LED index to flags (set all to LED_FLAG_KEYLIGHT) - /* 0 1 2 3 4 5 6 7 8 9 */ -/* 00 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -/* 10 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -/* 20 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -/* 30 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -/* 40 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -/* 50 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -/* 60 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -/* 70 */ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, -/* 80 */ 4, 4, 4, 4 -} }; -#endif // RGB_MATRIX_ENABLE - bool eeprom_is_valid(void) { return ( eeprom_read_word(((void *)EEPROM_MAGIC_ADDR)) == EEPROM_MAGIC && From d17671cd23ffe94be29b696fbdcaeeb2b5d47018 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 03:07:47 -0600 Subject: [PATCH 036/255] Migrate `g_led_config` to DD (QR) (#25623) --- keyboards/quarkeys/z40/keyboard.json | 49 ++++++++ keyboards/quarkeys/z40/z40.c | 44 ------- keyboards/rgbkb/mun/rev1/keyboard.json | 100 +++++++++++++++ keyboards/rgbkb/mun/rev1/rev1.c | 47 ------- keyboards/rgbkb/sol/rev1/keyboard.json | 74 ++++++++++- keyboards/rgbkb/sol/rev1/rev1.c | 46 ------- keyboards/rgbkb/sol3/rev1/keyboard.json | 158 ++++++++++++++++++++++++ keyboards/rgbkb/sol3/rev1/rev1.c | 57 --------- 8 files changed, 380 insertions(+), 195 deletions(-) delete mode 100644 keyboards/quarkeys/z40/z40.c delete mode 100644 keyboards/rgbkb/sol/rev1/rev1.c diff --git a/keyboards/quarkeys/z40/keyboard.json b/keyboards/quarkeys/z40/keyboard.json index 05d81e5b6f..0f13d8aefd 100644 --- a/keyboards/quarkeys/z40/keyboard.json +++ b/keyboards/quarkeys/z40/keyboard.json @@ -29,6 +29,55 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [3, 11], "x": 225, "y": 64, "flags": 1}, + {"matrix": [3, 10], "x": 200, "y": 64, "flags": 1}, + {"matrix": [3, 9], "x": 180, "y": 64, "flags": 1}, + {"matrix": [3, 8], "x": 160, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 140, "y": 64, "flags": 1}, + {"matrix": [3, 5], "x": 110, "y": 64, "flags": 1}, + {"matrix": [3, 4], "x": 80, "y": 64, "flags": 1}, + {"matrix": [3, 3], "x": 60, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 40, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [2, 11], "x": 225, "y": 42, "flags": 1}, + {"matrix": [2, 10], "x": 200, "y": 42, "flags": 2}, + {"matrix": [2, 9], "x": 180, "y": 42, "flags": 2}, + {"matrix": [2, 8], "x": 160, "y": 42, "flags": 2}, + {"matrix": [2, 7], "x": 140, "y": 42, "flags": 2}, + {"matrix": [2, 6], "x": 120, "y": 42, "flags": 2}, + {"matrix": [2, 5], "x": 100, "y": 42, "flags": 2}, + {"matrix": [2, 4], "x": 80, "y": 42, "flags": 2}, + {"x": 60, "y": 42, "flags": 2}, + {"matrix": [2, 2], "x": 40, "y": 42, "flags": 2}, + {"matrix": [2, 1], "x": 20, "y": 42, "flags": 2}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1}, + {"matrix": [1, 11], "x": 225, "y": 21, "flags": 1}, + {"matrix": [1, 10], "x": 200, "y": 21, "flags": 2}, + {"matrix": [1, 9], "x": 180, "y": 21, "flags": 2}, + {"matrix": [1, 8], "x": 160, "y": 21, "flags": 2}, + {"matrix": [1, 7], "x": 140, "y": 21, "flags": 2}, + {"matrix": [1, 6], "x": 120, "y": 21, "flags": 2}, + {"matrix": [2, 3], "x": 100, "y": 21, "flags": 2}, + {"matrix": [1, 4], "x": 80, "y": 21, "flags": 2}, + {"matrix": [1, 3], "x": 60, "y": 21, "flags": 2}, + {"matrix": [1, 2], "x": 40, "y": 21, "flags": 2}, + {"matrix": [1, 1], "x": 20, "y": 21, "flags": 2}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, + {"matrix": [0, 11], "x": 225, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 200, "y": 0, "flags": 2}, + {"matrix": [0, 9], "x": 180, "y": 0, "flags": 2}, + {"matrix": [0, 8], "x": 160, "y": 0, "flags": 2}, + {"matrix": [0, 7], "x": 140, "y": 0, "flags": 2}, + {"matrix": [0, 6], "x": 120, "y": 0, "flags": 2}, + {"matrix": [0, 5], "x": 100, "y": 0, "flags": 2}, + {"matrix": [0, 4], "x": 80, "y": 0, "flags": 2}, + {"matrix": [0, 3], "x": 60, "y": 0, "flags": 2}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 2}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 2}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1} + ], "sat_steps": 8, "val_steps": 8, "speed_steps": 10, diff --git a/keyboards/quarkeys/z40/z40.c b/keyboards/quarkeys/z40/z40.c deleted file mode 100644 index edd8946c11..0000000000 --- a/keyboards/quarkeys/z40/z40.c +++ /dev/null @@ -1,44 +0,0 @@ -/* -/ Copyright 2022 quarkeys -/ 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - /* - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0A, k0B }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1A, k1B }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2A, k2B }, \ - { k30, k31, k32, k33, k34, k35, XXX, k36, k37, k38, k39, k3A }\ - */ - { 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35 }, - { 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23 }, - { 22, 21, 20, 29, 18, 17, 16, 15, 14, 13, 12, 11 }, - { 10, 9, 8, 7, 6, 5, NO_LED, 4, 3, 2, 1, 0 } - }, - { // Index to Physical Position - {225, 64}, {200, 64}, {180, 64}, {160, 64}, {140, 64}, {110, 64}, { 80, 64}, { 60, 64}, { 40, 64}, { 20, 64}, { 0, 64}, - {225, 42}, {200, 42}, {180, 42}, {160, 42}, {140, 42}, {120, 42}, {100, 42}, { 80, 42}, { 60, 42}, { 40, 42}, { 20, 42}, { 0, 42}, - {225, 21}, {200, 21}, {180, 21}, {160, 21}, {140, 21}, {120, 21}, {100, 21}, { 80, 21}, { 60, 21}, { 40, 21}, { 20, 21}, { 0, 21}, - {225, 0}, {200, 0}, {180, 0}, {160, 0}, {140, 0}, {120, 0}, {100, 0}, { 80, 0}, { 60, 0}, { 40, 0}, { 20, 0}, { 0, 0} - }, - { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, - 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1 - } -}; -#endif diff --git a/keyboards/rgbkb/mun/rev1/keyboard.json b/keyboards/rgbkb/mun/rev1/keyboard.json index ec02a2f2dd..96cbf887f7 100644 --- a/keyboards/rgbkb/mun/rev1/keyboard.json +++ b/keyboards/rgbkb/mun/rev1/keyboard.json @@ -88,6 +88,106 @@ }, "center_point": [128, 34], "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 16, "y": 16, "flags": 1}, + {"matrix": [0, 1], "x": 34, "y": 16, "flags": 4}, + {"matrix": [0, 2], "x": 49, "y": 16, "flags": 4}, + {"matrix": [0, 3], "x": 64, "y": 16, "flags": 4}, + {"matrix": [0, 4], "x": 79, "y": 16, "flags": 4}, + {"matrix": [0, 5], "x": 94, "y": 16, "flags": 4}, + {"matrix": [0, 6], "x": 109, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 109, "y": 31, "flags": 4}, + {"matrix": [1, 5], "x": 94, "y": 31, "flags": 4}, + {"matrix": [1, 4], "x": 79, "y": 31, "flags": 4}, + {"matrix": [1, 3], "x": 64, "y": 31, "flags": 4}, + {"matrix": [1, 2], "x": 49, "y": 31, "flags": 4}, + {"matrix": [1, 1], "x": 34, "y": 31, "flags": 4}, + {"matrix": [1, 0], "x": 16, "y": 31, "flags": 1}, + {"matrix": [2, 0], "x": 16, "y": 46, "flags": 1}, + {"matrix": [2, 1], "x": 34, "y": 46, "flags": 4}, + {"matrix": [2, 2], "x": 49, "y": 46, "flags": 4}, + {"matrix": [2, 3], "x": 64, "y": 46, "flags": 4}, + {"matrix": [2, 4], "x": 79, "y": 46, "flags": 4}, + {"matrix": [2, 5], "x": 94, "y": 46, "flags": 4}, + {"matrix": [2, 6], "x": 109, "y": 46, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 61, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 61, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 61, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 61, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 61, "flags": 4}, + {"matrix": [3, 1], "x": 34, "y": 61, "flags": 4}, + {"matrix": [3, 0], "x": 16, "y": 61, "flags": 1}, + {"matrix": [4, 0], "x": 16, "y": 76, "flags": 1}, + {"matrix": [4, 1], "x": 34, "y": 76, "flags": 1}, + {"matrix": [4, 2], "x": 49, "y": 76, "flags": 1}, + {"matrix": [4, 3], "x": 64, "y": 76, "flags": 1}, + {"matrix": [4, 4], "x": 83, "y": 72, "flags": 1}, + {"matrix": [4, 5], "x": 98, "y": 72, "flags": 1}, + {"matrix": [4, 6], "x": 113, "y": 72, "flags": 1}, + {"x": 97, "y": 5, "flags": 2}, + {"x": 91, "y": 5, "flags": 2}, + {"x": 86, "y": 5, "flags": 2}, + {"x": 80, "y": 5, "flags": 2}, + {"x": 75, "y": 5, "flags": 2}, + {"x": 69, "y": 5, "flags": 2}, + {"x": 63, "y": 5, "flags": 2}, + {"x": 58, "y": 5, "flags": 2}, + {"x": 52, "y": 5, "flags": 2}, + {"x": 46, "y": 5, "flags": 2}, + {"x": 41, "y": 5, "flags": 2}, + {"x": 35, "y": 5, "flags": 2}, + {"x": 30, "y": 5, "flags": 2}, + {"x": 24, "y": 5, "flags": 2}, + {"matrix": [7, 0], "x": 240, "y": 16, "flags": 1}, + {"matrix": [7, 1], "x": 222, "y": 16, "flags": 4}, + {"matrix": [7, 2], "x": 207, "y": 16, "flags": 4}, + {"matrix": [7, 3], "x": 192, "y": 16, "flags": 4}, + {"matrix": [7, 4], "x": 177, "y": 16, "flags": 4}, + {"matrix": [7, 5], "x": 162, "y": 16, "flags": 4}, + {"matrix": [7, 6], "x": 147, "y": 16, "flags": 4}, + {"matrix": [8, 6], "x": 147, "y": 31, "flags": 4}, + {"matrix": [8, 5], "x": 162, "y": 31, "flags": 4}, + {"matrix": [8, 4], "x": 177, "y": 31, "flags": 4}, + {"matrix": [8, 3], "x": 192, "y": 31, "flags": 4}, + {"matrix": [8, 2], "x": 207, "y": 31, "flags": 4}, + {"matrix": [8, 1], "x": 222, "y": 31, "flags": 4}, + {"matrix": [8, 0], "x": 240, "y": 31, "flags": 1}, + {"matrix": [9, 0], "x": 240, "y": 46, "flags": 1}, + {"matrix": [9, 1], "x": 222, "y": 46, "flags": 4}, + {"matrix": [9, 2], "x": 207, "y": 46, "flags": 4}, + {"matrix": [9, 3], "x": 192, "y": 46, "flags": 4}, + {"matrix": [9, 4], "x": 177, "y": 46, "flags": 4}, + {"matrix": [9, 5], "x": 162, "y": 46, "flags": 4}, + {"matrix": [9, 6], "x": 147, "y": 46, "flags": 4}, + {"matrix": [10, 6], "x": 147, "y": 61, "flags": 4}, + {"matrix": [10, 5], "x": 162, "y": 61, "flags": 4}, + {"matrix": [10, 4], "x": 177, "y": 61, "flags": 4}, + {"matrix": [10, 3], "x": 192, "y": 61, "flags": 4}, + {"matrix": [10, 2], "x": 207, "y": 61, "flags": 4}, + {"matrix": [10, 1], "x": 222, "y": 61, "flags": 4}, + {"matrix": [10, 0], "x": 240, "y": 61, "flags": 1}, + {"matrix": [11, 0], "x": 240, "y": 76, "flags": 1}, + {"matrix": [11, 1], "x": 222, "y": 76, "flags": 1}, + {"matrix": [11, 2], "x": 207, "y": 76, "flags": 1}, + {"matrix": [11, 3], "x": 192, "y": 76, "flags": 1}, + {"matrix": [11, 4], "x": 180, "y": 72, "flags": 1}, + {"matrix": [11, 5], "x": 165, "y": 72, "flags": 1}, + {"matrix": [11, 6], "x": 150, "y": 72, "flags": 1}, + {"x": 159, "y": 5, "flags": 2}, + {"x": 164, "y": 5, "flags": 2}, + {"x": 170, "y": 5, "flags": 2}, + {"x": 176, "y": 5, "flags": 2}, + {"x": 181, "y": 5, "flags": 2}, + {"x": 187, "y": 5, "flags": 2}, + {"x": 192, "y": 5, "flags": 2}, + {"x": 198, "y": 5, "flags": 2}, + {"x": 204, "y": 5, "flags": 2}, + {"x": 209, "y": 5, "flags": 2}, + {"x": 215, "y": 5, "flags": 2}, + {"x": 221, "y": 5, "flags": 2}, + {"x": 226, "y": 5, "flags": 2}, + {"x": 232, "y": 5, "flags": 2} + ], "led_flush_limit": 33, "led_process_limit": 10, "sleep": true, diff --git a/keyboards/rgbkb/mun/rev1/rev1.c b/keyboards/rgbkb/mun/rev1/rev1.c index 206a30d654..7a16d7cb86 100644 --- a/keyboards/rgbkb/mun/rev1/rev1.c +++ b/keyboards/rgbkb/mun/rev1/rev1.c @@ -42,53 +42,6 @@ bool touch_encoder_tapped_kb(uint8_t index, uint8_t section) { return false; } -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6 }, - { 13, 12, 11, 10, 9, 8, 7 }, - { 14, 15, 16, 17, 18, 19, 20 }, - { 27, 26, 25, 24, 23, 22, 21 }, - { 28, 29, 30, 31, 32, 33, 34 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { 49, 50, 51, 52, 53, 54, 55 }, - { 62, 61, 60, 59, 58, 57, 56 }, - { 63, 64, 65, 66, 67, 68, 69 }, - { 76, 75, 74, 73, 72, 71, 70 }, - { 77, 78, 79, 80, 81, 82, 83 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } -}, { - { 16, 16},{ 34, 16},{ 49, 16},{ 64, 16},{ 79, 16},{ 94, 16},{ 109, 16}, - { 109, 31},{ 94, 31},{ 79, 31},{ 64, 31},{ 49, 31},{ 34, 31},{ 16, 31}, - { 16, 46},{ 34, 46},{ 49, 46},{ 64, 46},{ 79, 46},{ 94, 46},{ 109, 46}, - { 109, 61},{ 94, 61},{ 79, 61},{ 64, 61},{ 49, 61},{ 34, 61},{ 16, 61}, - { 16, 76},{ 34, 76},{ 49, 76},{ 64, 76},{ 83, 72},{ 98, 72},{ 113, 72}, - { 97, 5},{ 91, 5},{ 86, 5},{ 80, 5},{ 75, 5},{ 69, 5},{ 63, 5},{ 58, 5},{ 52, 5},{ 46, 5},{ 41, 5},{ 35, 5},{ 30, 5},{ 24, 5}, - { 240, 16},{ 222, 16},{ 207, 16},{ 192, 16},{ 177, 16},{ 162, 16},{ 147, 16}, - { 147, 31},{ 162, 31},{ 177, 31},{ 192, 31},{ 207, 31},{ 222, 31},{ 240, 31}, - { 240, 46},{ 222, 46},{ 207, 46},{ 192, 46},{ 177, 46},{ 162, 46},{ 147, 46}, - { 147, 61},{ 162, 61},{ 177, 61},{ 192, 61},{ 207, 61},{ 222, 61},{ 240, 61}, - { 240, 76},{ 222, 76},{ 207, 76},{ 192, 76},{ 180, 72},{ 165, 72},{ 150, 72}, - { 159, 5},{ 164, 5},{ 170, 5},{ 176, 5},{ 181, 5},{ 187, 5},{ 192, 5},{ 198, 5},{ 204, 5},{ 209, 5},{ 215, 5},{ 221, 5},{ 226, 5},{ 232, 5}, -}, { - 1, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 -} }; -// clang-format on -#endif - void keyboard_post_init_kb(void) { touch_encoder_init(); transaction_register_rpc(TOUCH_ENCODER_SYNC, touch_encoder_slave_sync); diff --git a/keyboards/rgbkb/sol/rev1/keyboard.json b/keyboards/rgbkb/sol/rev1/keyboard.json index 9a4c538e55..6bb41e1c37 100644 --- a/keyboards/rgbkb/sol/rev1/keyboard.json +++ b/keyboards/rgbkb/sol/rev1/keyboard.json @@ -63,7 +63,79 @@ "solid_multisplash": true }, "center_point": [112, 35], - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 21, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 38, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 73, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 91, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 112, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 18, "flags": 1}, + {"matrix": [1, 1], "x": 21, "y": 18, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 18, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 18, "flags": 4}, + {"matrix": [1, 4], "x": 73, "y": 18, "flags": 4}, + {"matrix": [1, 5], "x": 91, "y": 18, "flags": 4}, + {"matrix": [1, 6], "x": 108, "y": 13, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 35, "flags": 1}, + {"matrix": [2, 1], "x": 21, "y": 35, "flags": 4}, + {"matrix": [2, 2], "x": 38, "y": 35, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 35, "flags": 4}, + {"matrix": [2, 4], "x": 73, "y": 35, "flags": 4}, + {"matrix": [2, 5], "x": 91, "y": 35, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 31, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 52, "flags": 1}, + {"matrix": [3, 1], "x": 21, "y": 52, "flags": 4}, + {"matrix": [3, 2], "x": 38, "y": 52, "flags": 4}, + {"matrix": [3, 3], "x": 56, "y": 52, "flags": 4}, + {"matrix": [3, 4], "x": 73, "y": 52, "flags": 4}, + {"matrix": [3, 5], "x": 91, "y": 52, "flags": 4}, + {"matrix": [3, 6], "x": 108, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 70, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 70, "flags": 1}, + {"matrix": [4, 2], "x": 38, "y": 70, "flags": 1}, + {"matrix": [4, 3], "x": 56, "y": 70, "flags": 1}, + {"matrix": [4, 4], "x": 73, "y": 70, "flags": 1}, + {"matrix": [5, 5], "x": 89, "y": 91, "flags": 1}, + {"matrix": [5, 6], "x": 101, "y": 103, "flags": 1}, + {"matrix": [6, 0], "x": 224, "y": 0, "flags": 1}, + {"matrix": [6, 1], "x": 203, "y": 0, "flags": 4}, + {"matrix": [6, 2], "x": 186, "y": 0, "flags": 4}, + {"matrix": [6, 3], "x": 168, "y": 0, "flags": 4}, + {"matrix": [6, 4], "x": 151, "y": 0, "flags": 4}, + {"matrix": [6, 5], "x": 133, "y": 0, "flags": 4}, + {"matrix": [6, 6], "x": 112, "y": 0, "flags": 1}, + {"matrix": [7, 0], "x": 224, "y": 18, "flags": 1}, + {"matrix": [7, 1], "x": 203, "y": 18, "flags": 4}, + {"matrix": [7, 2], "x": 186, "y": 18, "flags": 4}, + {"matrix": [7, 3], "x": 168, "y": 18, "flags": 4}, + {"matrix": [7, 4], "x": 151, "y": 18, "flags": 4}, + {"matrix": [7, 5], "x": 133, "y": 18, "flags": 4}, + {"matrix": [7, 6], "x": 116, "y": 13, "flags": 1}, + {"matrix": [8, 0], "x": 224, "y": 35, "flags": 1}, + {"matrix": [8, 1], "x": 203, "y": 35, "flags": 4}, + {"matrix": [8, 2], "x": 186, "y": 35, "flags": 4}, + {"matrix": [8, 3], "x": 168, "y": 35, "flags": 4}, + {"matrix": [8, 4], "x": 151, "y": 35, "flags": 4}, + {"matrix": [8, 5], "x": 133, "y": 35, "flags": 4}, + {"matrix": [8, 6], "x": 116, "y": 31, "flags": 1}, + {"matrix": [9, 0], "x": 224, "y": 52, "flags": 1}, + {"matrix": [9, 1], "x": 203, "y": 52, "flags": 4}, + {"matrix": [9, 2], "x": 186, "y": 52, "flags": 4}, + {"matrix": [9, 3], "x": 168, "y": 52, "flags": 4}, + {"matrix": [9, 4], "x": 151, "y": 52, "flags": 4}, + {"matrix": [9, 5], "x": 133, "y": 52, "flags": 4}, + {"matrix": [9, 6], "x": 116, "y": 48, "flags": 1}, + {"matrix": [10, 0], "x": 224, "y": 70, "flags": 1}, + {"matrix": [10, 1], "x": 203, "y": 70, "flags": 1}, + {"matrix": [10, 2], "x": 186, "y": 70, "flags": 1}, + {"matrix": [10, 3], "x": 168, "y": 70, "flags": 1}, + {"matrix": [10, 4], "x": 151, "y": 70, "flags": 1}, + {"matrix": [11, 6], "x": 135, "y": 91, "flags": 1}, + {"x": 123, "y": 103, "flags": 1} + ] }, "rgblight": { "animations": { diff --git a/keyboards/rgbkb/sol/rev1/rev1.c b/keyboards/rgbkb/sol/rev1/rev1.c deleted file mode 100644 index f5997bac00..0000000000 --- a/keyboards/rgbkb/sol/rev1/rev1.c +++ /dev/null @@ -1,46 +0,0 @@ -#include "sol.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6 }, - { 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20 }, - { 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 33, 34 }, - { 35, 36, 37, 38, 39, 40, 41 }, - { 42, 43, 44, 45, 46, 47, 48 }, - { 49, 50, 51, 52, 53, 54, 55 }, - { 56, 57, 58, 59, 60, 61, 62 }, - { 63, 64, 65, 66, 67, 68, 68 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 68, 68 } -}, { - // Left Hand Mapped Left to Right - { 0, 0 }, { 21, 0 }, { 38, 0 }, { 56, 0 }, { 73, 0 }, { 91, 0 }, { 112, 0 }, - { 0, 18 }, { 21, 18 }, { 38, 18 }, { 56, 18 }, { 73, 18 }, { 91, 18 }, { 108, 13 }, - { 0, 35 }, { 21, 35 }, { 38, 35 }, { 56, 35 }, { 73, 35 }, { 91, 35 }, { 108, 31 }, - { 0, 52 }, { 21, 52 }, { 38, 52 }, { 56, 52 }, { 73, 52 }, { 91, 52 }, { 108, 48 }, - { 0, 70 }, { 21, 70 }, { 38, 70 }, { 56, 70 }, { 73, 70 }, { 89, 91 }, { 101, 103 }, - // Left Hand Mapped Right to Left - { 224, 0 }, { 203, 0 }, { 186, 0 }, { 168, 0 }, { 151, 0 }, { 133, 0 }, { 112, 0 }, - { 224, 18 }, { 203, 18 }, { 186, 18 }, { 168, 18 }, { 151, 18 }, { 133, 18 }, { 116, 13 }, - { 224, 35 }, { 203, 35 }, { 186, 35 }, { 168, 35 }, { 151, 35 }, { 133, 35 }, { 116, 31 }, - { 224, 52 }, { 203, 52 }, { 186, 52 }, { 168, 52 }, { 151, 52 }, { 133, 52 }, { 116, 48 }, - { 224, 70 }, { 203, 70 }, { 186, 70 }, { 168, 70 }, { 151, 70 }, { 135, 91 }, { 123, 103 }, -}, { - // Left Hand Mapped Left to Right - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, - // Left Hand Mapped Right to Left - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1 -} }; - -#endif - diff --git a/keyboards/rgbkb/sol3/rev1/keyboard.json b/keyboards/rgbkb/sol3/rev1/keyboard.json index dc9e6d4035..f7780ae37a 100644 --- a/keyboards/rgbkb/sol3/rev1/keyboard.json +++ b/keyboards/rgbkb/sol3/rev1/keyboard.json @@ -96,6 +96,164 @@ }, "center_point": [81, 28], "driver": "ws2812", + "layout": [ + {"x": 1, "y": 6, "flags": 2}, + {"x": 1, "y": 13, "flags": 2}, + {"x": 1, "y": 19, "flags": 2}, + {"x": 1, "y": 25, "flags": 2}, + {"x": 1, "y": 31, "flags": 2}, + {"x": 1, "y": 37, "flags": 2}, + {"x": 1, "y": 43, "flags": 2}, + {"x": 1, "y": 49, "flags": 2}, + {"x": 4, "y": 52, "flags": 2}, + {"x": 11, "y": 52, "flags": 2}, + {"x": 17, "y": 52, "flags": 2}, + {"x": 23, "y": 52, "flags": 2}, + {"x": 29, "y": 52, "flags": 2}, + {"x": 35, "y": 52, "flags": 2}, + {"x": 41, "y": 54, "flags": 2}, + {"x": 46, "y": 57, "flags": 2}, + {"x": 52, "y": 60, "flags": 2}, + {"x": 57, "y": 63, "flags": 2}, + {"x": 62, "y": 66, "flags": 2}, + {"x": 68, "y": 69, "flags": 2}, + {"x": 73, "y": 67, "flags": 2}, + {"x": 76, "y": 62, "flags": 2}, + {"x": 79, "y": 57, "flags": 2}, + {"x": 78, "y": 51, "flags": 2}, + {"x": 77, "y": 45, "flags": 2}, + {"x": 76, "y": 39, "flags": 2}, + {"x": 76, "y": 33, "flags": 2}, + {"x": 76, "y": 27, "flags": 2}, + {"x": 76, "y": 21, "flags": 2}, + {"x": 76, "y": 14, "flags": 2}, + {"x": 76, "y": 8, "flags": 2}, + {"x": 72, "y": 3, "flags": 2}, + {"x": 59, "y": 3, "flags": 2}, + {"x": 53, "y": 3, "flags": 2}, + {"x": 46, "y": 3, "flags": 2}, + {"x": 40, "y": 3, "flags": 2}, + {"x": 34, "y": 3, "flags": 2}, + {"x": 28, "y": 3, "flags": 2}, + {"x": 22, "y": 3, "flags": 2}, + {"x": 10, "y": 3, "flags": 2}, + {"x": 3, "y": 3, "flags": 2}, + {"matrix": [0, 0], "x": 9, "y": 6, "flags": 1}, + {"matrix": [0, 1], "x": 21, "y": 6, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 6, "flags": 4}, + {"matrix": [0, 3], "x": 40, "y": 6, "flags": 4}, + {"matrix": [0, 4], "x": 49, "y": 6, "flags": 4}, + {"matrix": [0, 5], "x": 59, "y": 6, "flags": 4}, + {"matrix": [0, 6], "x": 71, "y": 6, "flags": 1}, + {"matrix": [1, 6], "x": 71, "y": 16, "flags": 1}, + {"matrix": [1, 5], "x": 59, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 49, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 30, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 9, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 9, "y": 25, "flags": 1}, + {"matrix": [2, 1], "x": 21, "y": 25, "flags": 4}, + {"matrix": [2, 2], "x": 30, "y": 25, "flags": 4}, + {"matrix": [2, 3], "x": 40, "y": 25, "flags": 4}, + {"matrix": [2, 4], "x": 49, "y": 25, "flags": 4}, + {"matrix": [2, 5], "x": 59, "y": 25, "flags": 4}, + {"matrix": [2, 6], "x": 71, "y": 25, "flags": 1}, + {"matrix": [3, 6], "x": 71, "y": 35, "flags": 1}, + {"matrix": [3, 5], "x": 59, "y": 35, "flags": 4}, + {"matrix": [3, 4], "x": 49, "y": 35, "flags": 4}, + {"matrix": [3, 3], "x": 40, "y": 35, "flags": 4}, + {"matrix": [3, 2], "x": 30, "y": 35, "flags": 4}, + {"matrix": [3, 1], "x": 21, "y": 35, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 35, "flags": 1}, + {"matrix": [4, 0], "x": 9, "y": 44, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 44, "flags": 1}, + {"matrix": [4, 2], "x": 30, "y": 44, "flags": 1}, + {"matrix": [4, 3], "x": 40, "y": 44, "flags": 1}, + {"matrix": [4, 4], "x": 49, "y": 44, "flags": 1}, + {"matrix": [4, 5], "x": 66, "y": 50, "flags": 1}, + {"matrix": [4, 6], "x": 75, "y": 54, "flags": 1}, + {"matrix": [4, 7], "x": 70, "y": 62, "flags": 1}, + {"x": 60, "y": 60, "flags": 1}, + {"x": 160, "y": 6, "flags": 2}, + {"x": 160, "y": 13, "flags": 2}, + {"x": 160, "y": 19, "flags": 2}, + {"x": 160, "y": 25, "flags": 2}, + {"x": 160, "y": 31, "flags": 2}, + {"x": 160, "y": 37, "flags": 2}, + {"x": 160, "y": 43, "flags": 2}, + {"x": 160, "y": 49, "flags": 2}, + {"x": 157, "y": 52, "flags": 2}, + {"x": 151, "y": 52, "flags": 2}, + {"x": 145, "y": 52, "flags": 2}, + {"x": 138, "y": 52, "flags": 2}, + {"x": 132, "y": 52, "flags": 2}, + {"x": 126, "y": 52, "flags": 2}, + {"x": 120, "y": 54, "flags": 2}, + {"x": 115, "y": 57, "flags": 2}, + {"x": 110, "y": 60, "flags": 2}, + {"x": 105, "y": 63, "flags": 2}, + {"x": 99, "y": 66, "flags": 2}, + {"x": 94, "y": 69, "flags": 2}, + {"x": 89, "y": 67, "flags": 2}, + {"x": 86, "y": 62, "flags": 2}, + {"x": 83, "y": 57, "flags": 2}, + {"x": 83, "y": 51, "flags": 2}, + {"x": 85, "y": 45, "flags": 2}, + {"x": 86, "y": 39, "flags": 2}, + {"x": 86, "y": 33, "flags": 2}, + {"x": 86, "y": 27, "flags": 2}, + {"x": 86, "y": 21, "flags": 2}, + {"x": 86, "y": 14, "flags": 2}, + {"x": 86, "y": 8, "flags": 2}, + {"x": 90, "y": 3, "flags": 2}, + {"x": 103, "y": 3, "flags": 2}, + {"x": 109, "y": 3, "flags": 2}, + {"x": 115, "y": 3, "flags": 2}, + {"x": 121, "y": 3, "flags": 2}, + {"x": 127, "y": 3, "flags": 2}, + {"x": 133, "y": 3, "flags": 2}, + {"x": 140, "y": 3, "flags": 2}, + {"x": 152, "y": 3, "flags": 2}, + {"x": 158, "y": 3, "flags": 2}, + {"matrix": [6, 0], "x": 153, "y": 6, "flags": 1}, + {"matrix": [6, 1], "x": 141, "y": 6, "flags": 4}, + {"matrix": [6, 2], "x": 131, "y": 6, "flags": 4}, + {"matrix": [6, 3], "x": 122, "y": 6, "flags": 4}, + {"matrix": [6, 4], "x": 112, "y": 6, "flags": 4}, + {"matrix": [6, 5], "x": 103, "y": 6, "flags": 4}, + {"matrix": [6, 6], "x": 91, "y": 6, "flags": 1}, + {"matrix": [7, 6], "x": 91, "y": 16, "flags": 1}, + {"matrix": [7, 5], "x": 103, "y": 16, "flags": 4}, + {"matrix": [7, 4], "x": 112, "y": 16, "flags": 4}, + {"matrix": [7, 3], "x": 122, "y": 16, "flags": 4}, + {"matrix": [7, 2], "x": 131, "y": 16, "flags": 4}, + {"matrix": [7, 1], "x": 141, "y": 16, "flags": 4}, + {"matrix": [7, 0], "x": 153, "y": 16, "flags": 1}, + {"matrix": [8, 0], "x": 153, "y": 25, "flags": 1}, + {"matrix": [8, 1], "x": 141, "y": 25, "flags": 4}, + {"matrix": [8, 2], "x": 131, "y": 25, "flags": 4}, + {"matrix": [8, 3], "x": 122, "y": 25, "flags": 4}, + {"matrix": [8, 4], "x": 112, "y": 25, "flags": 4}, + {"matrix": [8, 5], "x": 103, "y": 25, "flags": 4}, + {"matrix": [8, 6], "x": 91, "y": 25, "flags": 1}, + {"matrix": [9, 6], "x": 91, "y": 35, "flags": 1}, + {"matrix": [9, 5], "x": 103, "y": 35, "flags": 4}, + {"matrix": [9, 4], "x": 112, "y": 35, "flags": 4}, + {"matrix": [9, 3], "x": 122, "y": 35, "flags": 4}, + {"matrix": [9, 2], "x": 131, "y": 35, "flags": 4}, + {"matrix": [9, 1], "x": 141, "y": 35, "flags": 4}, + {"matrix": [9, 0], "x": 153, "y": 35, "flags": 1}, + {"matrix": [10, 0], "x": 153, "y": 44, "flags": 1}, + {"matrix": [10, 1], "x": 141, "y": 44, "flags": 1}, + {"matrix": [10, 2], "x": 131, "y": 44, "flags": 1}, + {"matrix": [10, 3], "x": 122, "y": 44, "flags": 1}, + {"matrix": [10, 4], "x": 112, "y": 44, "flags": 1}, + {"matrix": [10, 5], "x": 96, "y": 50, "flags": 1}, + {"matrix": [10, 6], "x": 87, "y": 54, "flags": 1}, + {"matrix": [10, 7], "x": 92, "y": 62, "flags": 1}, + {"x": 102, "y": 60, "flags": 1} + ], "led_flush_limit": 33, "led_process_limit": 10, "sleep": true, diff --git a/keyboards/rgbkb/sol3/rev1/rev1.c b/keyboards/rgbkb/sol3/rev1/rev1.c index 086ce0af01..96402f851c 100644 --- a/keyboards/rgbkb/sol3/rev1/rev1.c +++ b/keyboards/rgbkb/sol3/rev1/rev1.c @@ -81,63 +81,6 @@ void matrix_slave_scan_kb(void) { } #ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { { - { 41, 42, 43, 44, 45, 46, 47, NO_LED }, - { 54, 53, 52, 51, 50, 49, 48, NO_LED }, - { 55, 56, 57, 58, 59, 60, 61, NO_LED }, - { 68, 67, 66, 65, 64, 63, 62, NO_LED }, - { 69, 70, 71, 72, 73, 74, 75, 76 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { 119, 120, 121, 122, 123, 124, 125, NO_LED }, - { 132, 131, 130, 129, 128, 127, 126, NO_LED }, - { 133, 134, 135, 136, 137, 138, 139, NO_LED }, - { 146, 145, 144, 143, 142, 141, 140, NO_LED }, - { 147, 148, 149, 150, 151, 152, 153, 154 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } -}, { // ALL XY VALUES DIVIDE BY 2, THEN ADD 5 - { 1, 6 }, { 1, 13 }, { 1, 19 }, { 1, 25 }, { 1, 31 }, { 1, 37 }, { 1, 43 }, { 1, 49 }, { 4, 52 }, { 11, 52 }, - { 17, 52 }, { 23, 52 }, { 29, 52 }, { 35, 52 }, { 41, 54 }, { 46, 57 }, { 52, 60 }, { 57, 63 }, { 62, 66 }, { 68, 69 }, - { 73, 67 }, { 76, 62 }, { 79, 57 }, { 78, 51 }, { 77, 45 }, { 76, 39 }, { 76, 33 }, { 76, 27 }, { 76, 21 }, { 76, 14 }, - { 76, 8 }, { 72, 3 }, { 59, 3 }, { 53, 3 }, { 46, 3 }, { 40, 3 }, { 34, 3 }, { 28, 3 }, { 22, 3 }, { 10, 3 }, { 3, 3 }, - { 9, 6 }, { 21, 6 }, { 30, 6 }, { 40, 6 }, { 49, 6 }, { 59, 6 }, { 71, 6 }, - { 71, 16 }, { 59, 16 }, { 49, 16 }, { 40, 16 }, { 30, 16 }, { 21, 16 }, { 9, 16 }, - { 9, 25 }, { 21, 25 }, { 30, 25 }, { 40, 25 }, { 49, 25 }, { 59, 25 }, { 71, 25 }, - { 71, 35 }, { 59, 35 }, { 49, 35 }, { 40, 35 }, { 30, 35 }, { 21, 35 }, { 9, 35 }, - { 9, 44 }, { 21, 44 }, { 30, 44 }, { 40, 44 }, { 49, 44 }, { 66, 50 }, { 75, 54 }, { 70, 62 }, { 60, 60 }, - - { 160, 6 }, { 160, 13 }, { 160, 19 }, { 160, 25 }, { 160, 31 }, { 160, 37 }, { 160, 43 }, { 160, 49 }, { 157, 52 }, { 151, 52 }, - { 145, 52 }, { 138, 52 }, { 132, 52 }, { 126, 52 }, { 120, 54 }, { 115, 57 }, { 110, 60 }, { 105, 63 }, { 99, 66 }, { 94, 69 }, - { 89, 67 }, { 86, 62 }, { 83, 57 }, { 83, 51 }, { 85, 45 }, { 86, 39 }, { 86, 33 }, { 86, 27 }, { 86, 21 }, { 86, 14 }, - { 86, 8 }, { 90, 3 }, { 103, 3 }, { 109, 3 }, { 115, 3 }, { 121, 3 }, { 127, 3 }, { 133, 3 }, { 140, 3 }, { 152, 3 }, { 158, 3 }, - { 153, 6 }, { 141, 6 }, { 131, 6 }, { 122, 6 }, { 112, 6 }, { 103, 6 }, { 91, 6 }, - { 91, 16 }, { 103, 16 }, { 112, 16 }, { 122, 16 }, { 131, 16 }, { 141, 16 }, { 153, 16 }, - { 153, 25 }, { 141, 25 }, { 131, 25 }, { 122, 25 }, { 112, 25 }, { 103, 25 }, { 91, 25 }, - { 91, 35 }, { 103, 35 }, { 112, 35 }, { 122, 35 }, { 131, 35 }, { 141, 35 }, { 153, 35 }, - { 153, 44 }, { 141, 44 }, { 131, 44 }, { 122, 44 }, { 112, 44 }, { 96, 50 }, { 87, 54 }, { 92, 62 }, { 102, 60 }, -}, { - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, - - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1 -} }; -// clang-format on - void rgb_matrix_increase_flags(void) { switch (rgb_matrix_get_flags()) { From 2818085d3fffb645e1835326104534ee94b03fdb Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 03:08:20 -0600 Subject: [PATCH 037/255] Migrate `g_led_config` to DD (P) (#25622) --- keyboards/paprikman/albacore/albacore.c | 30 ----- keyboards/paprikman/albacore/keyboard.json | 10 ++ keyboards/percent/canoe_gen2/canoe_gen2.c | 119 ------------------ keyboards/percent/canoe_gen2/keyboard.json | 79 ++++++++++++ keyboards/phage_studio/pila87/keyboard.json | 93 ++++++++++++++ keyboards/phage_studio/pila87/pila87.c | 23 ---- .../phase_studio/titan65/hotswap/hotswap.c | 42 ------- .../titan65/hotswap/keyboard.json | 69 ++++++++++ keyboards/planck/light/keyboard.json | 51 ++++++++ keyboards/planck/light/light.c | 19 --- keyboards/planck/rev6/keyboard.json | 11 ++ keyboards/planck/rev6/rev6.c | 29 +---- keyboards/planck/rev6_drop/keyboard.json | 11 ++ keyboards/planck/rev6_drop/rev6_drop.c | 30 +---- keyboards/planck/rev7/keyboard.json | 11 ++ keyboards/planck/rev7/rev7.c | 30 +---- keyboards/preonic/rev3/keyboard.json | 13 +- keyboards/preonic/rev3/rev3.c | 29 ----- keyboards/preonic/rev3_drop/keyboard.json | 13 +- keyboards/preonic/rev3_drop/rev3_drop.c | 29 ----- 20 files changed, 362 insertions(+), 379 deletions(-) delete mode 100644 keyboards/paprikman/albacore/albacore.c delete mode 100644 keyboards/percent/canoe_gen2/canoe_gen2.c delete mode 100644 keyboards/phase_studio/titan65/hotswap/hotswap.c diff --git a/keyboards/paprikman/albacore/albacore.c b/keyboards/paprikman/albacore/albacore.c deleted file mode 100644 index b6cf742a11..0000000000 --- a/keyboards/paprikman/albacore/albacore.c +++ /dev/null @@ -1,30 +0,0 @@ -/* Copyright 2021 paprikman - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3 }, - { 7, 6, 5, 4 } -}, { - { 56, 16 }, { 112, 16 }, { 168, 16 }, { 224, 16 }, - { 56, 24 }, { 112, 24 }, { 168, 24 }, { 224, 24 } -}, { - 1, 1, 1, 1, - 1, 1, 1, 1 -} }; -#endif diff --git a/keyboards/paprikman/albacore/keyboard.json b/keyboards/paprikman/albacore/keyboard.json index 8706c67bcd..a2005221c3 100644 --- a/keyboards/paprikman/albacore/keyboard.json +++ b/keyboards/paprikman/albacore/keyboard.json @@ -10,6 +10,16 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 75, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 150, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 3], "x": 0, "y": 64, "flags": 1}, + {"matrix": [1, 2], "x": 75, "y": 64, "flags": 1}, + {"matrix": [1, 1], "x": 150, "y": 64, "flags": 1}, + {"matrix": [1, 0], "x": 224, "y": 64, "flags": 1} + ], "max_brightness": 220, "sleep": true }, diff --git a/keyboards/percent/canoe_gen2/canoe_gen2.c b/keyboards/percent/canoe_gen2/canoe_gen2.c deleted file mode 100644 index 6cbbed412d..0000000000 --- a/keyboards/percent/canoe_gen2/canoe_gen2.c +++ /dev/null @@ -1,119 +0,0 @@ -/* -Copyright 2020 Evy Dekkers - -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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - -led_config_t g_led_config = { { - // Key Matrix to LED Index - // 15, 44, 46, 48, - // 74, 75, 76 - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16 }, - { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 13, 31 }, - { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 30, 45, 47 }, - { 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 }, - { 64, 65, 66, NO_LED, NO_LED, NO_LED, 67, NO_LED, NO_LED, 69, 70, NO_LED, 71, 72, 73 } -}, { - // LED Index to Physical Position - { 7, 8 }, // Esc - { 22, 8 }, // 1 - { 37, 8 }, // 2 - { 52, 8 }, // 3 - { 67, 8 }, // 4 - { 82, 8 }, // 5 - { 97, 8 }, // 6 - { 112, 8 }, // 7 - { 127, 8 }, // 8 - { 142, 8 }, // 9 - { 157, 8 }, // 0 - { 172, 8 }, // - - { 187, 8 }, // = - { 202, 8 }, // split bs - { 209, 8 }, // bs - { 217, 8 }, // split bs - { 231, 8 }, // ins - { 11, 24 }, // tab - { 30, 24 }, // q - { 45, 24 }, // w - { 60, 24 }, // e - { 75, 24 }, // r - { 90, 24 }, // t - { 104, 24 }, // y - { 119, 24 }, // u - { 134, 24 }, // i - { 149, 24 }, // o - { 164, 24 }, // p - { 179, 24 }, // [ - { 194, 24 }, // ] - { 212, 24 }, // backslash - { 231, 24 }, // del - { 11, 40 }, // caps - { 34, 40 }, // a - { 49, 40 }, // s - { 64, 40 }, // d - { 79, 40 }, // f - { 94, 40 }, // g - { 108, 40 }, // h - { 123, 40 }, // j - { 138, 40 }, // k - { 153, 40 }, // l - { 168, 40 }, // ; - { 183, 40 }, // ' - { 198, 40 }, // iso hash - { 200, 40 }, // ansi enter - { 215, 32 }, // iso enter - { 231, 40 }, // pgup - { 9, 56 }, // iso shift - { 17, 56 }, // ansi shift - { 26, 56 }, // iso nubs - { 41, 56 }, // z - { 56, 56 }, // x - { 71, 56 }, // c - { 86, 56 }, // v - { 101, 56 }, // b - { 116, 56 }, // n - { 131, 56 }, // m - { 146, 56 }, // , - { 161, 56 }, // . - { 175, 56 }, // ? - { 196, 56 }, // shift - { 217, 56 }, // up - { 231, 56 }, // pgdn - { 10, 72 }, // ctrl - { 29, 72 }, // win - { 48, 72 }, // alt - { 103, 72 }, // space - { 112, 72 }, // space - { 161, 72 }, // alt - { 176, 72 }, // fn - { 202, 72 }, // left - { 217, 72 }, // down - { 231, 72 }, // right - { 7, 40 }, // top 1 - { 119, 40 }, // top 2 - { 231, 40 } // top 3 -}, { - // LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 1, 1, 4, 4, 1, 1, 1, 1, 1, - 2, 2, 2 -} }; -#endif diff --git a/keyboards/percent/canoe_gen2/keyboard.json b/keyboards/percent/canoe_gen2/keyboard.json index b6a8a47a5f..45e1817ad5 100644 --- a/keyboards/percent/canoe_gen2/keyboard.json +++ b/keyboards/percent/canoe_gen2/keyboard.json @@ -61,6 +61,85 @@ "pixel_fractal": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 16, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 16, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 16, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 16, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 16, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 16, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 16, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 16, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 16, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 16, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 16, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 195, "y": 16, "flags": 4}, + {"matrix": [0, 13], "x": 210, "y": 16, "flags": 1}, + {"x": 217, "y": 16, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 28, "flags": 1}, + {"matrix": [1, 1], "x": 23, "y": 28, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 28, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 28, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 28, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 28, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 28, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 28, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 28, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 28, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 28, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 28, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 206, "y": 28, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 28, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 40, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 40, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 40, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 40, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 40, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 40, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 40, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 40, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 40, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 40, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 40, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 40, "flags": 4}, + {"x": 192, "y": 40, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 40, "flags": 1}, + {"x": 209, "y": 40, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 40, "flags": 1}, + {"x": 5, "y": 52, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 52, "flags": 1}, + {"matrix": [3, 1], "x": 15, "y": 52, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 52, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 52, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 52, "flags": 4}, + {"matrix": [3, 5], "x": 79, "y": 52, "flags": 4}, + {"matrix": [3, 6], "x": 94, "y": 52, "flags": 4}, + {"matrix": [3, 7], "x": 109, "y": 52, "flags": 4}, + {"matrix": [3, 8], "x": 124, "y": 52, "flags": 4}, + {"matrix": [3, 9], "x": 139, "y": 52, "flags": 4}, + {"matrix": [3, 10], "x": 154, "y": 52, "flags": 4}, + {"matrix": [3, 11], "x": 169, "y": 52, "flags": 4}, + {"matrix": [3, 12], "x": 189, "y": 52, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 52, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 52, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 133, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 152, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}, + {"x": 220, "y": 0, "flags": 2}, + {"x": 222, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2} + ], "max_brightness": 150, "sleep": true }, diff --git a/keyboards/phage_studio/pila87/keyboard.json b/keyboards/phage_studio/pila87/keyboard.json index fbdf5f637a..135a4f0a81 100644 --- a/keyboards/phage_studio/pila87/keyboard.json +++ b/keyboards/phage_studio/pila87/keyboard.json @@ -62,6 +62,99 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 4}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 4}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 4}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 148, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 7], "x": 110, "y": 61, "flags": 4}, + {"matrix": [5, 6], "x": 104, "y": 61, "flags": 4}, + {"matrix": [5, 5], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 4], "x": 65, "y": 61, "flags": 4}, + {"matrix": [5, 3], "x": 58, "y": 61, "flags": 4}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 13], "x": 170, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 4}, + {"matrix": [3, 13], "x": 174, "y": 41, "flags": 1}, + {"matrix": [3, 11], "x": 153, "y": 41, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 41, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 41, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 41, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 41, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 41, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 41, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 41, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 41, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 41, "flags": 4}, + {"matrix": [3, 1], "x": 23, "y": 41, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 41, "flags": 8}, + {"matrix": [2, 0], "x": 3, "y": 29, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 29, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 29, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 29, "flags": 4}, + {"matrix": [2, 4], "x": 58, "y": 29, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 29, "flags": 4}, + {"matrix": [2, 6], "x": 84, "y": 29, "flags": 4}, + {"matrix": [2, 7], "x": 97, "y": 29, "flags": 4}, + {"matrix": [2, 8], "x": 110, "y": 29, "flags": 4}, + {"matrix": [2, 9], "x": 123, "y": 29, "flags": 4}, + {"matrix": [2, 10], "x": 136, "y": 29, "flags": 4}, + {"matrix": [2, 11], "x": 149, "y": 29, "flags": 4}, + {"matrix": [2, 12], "x": 162, "y": 29, "flags": 4}, + {"matrix": [2, 13], "x": 179, "y": 29, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 29, "flags": 4}, + {"matrix": [2, 15], "x": 211, "y": 29, "flags": 4}, + {"matrix": [2, 16], "x": 224, "y": 29, "flags": 4}, + {"matrix": [1, 16], "x": 224, "y": 17, "flags": 4}, + {"matrix": [1, 15], "x": 211, "y": 17, "flags": 4}, + {"matrix": [1, 14], "x": 198, "y": 17, "flags": 4}, + {"matrix": [1, 13], "x": 175, "y": 17, "flags": 1}, + {"matrix": [1, 12], "x": 156, "y": 17, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 17, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 17, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 17, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 17, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 17, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 17, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 17, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 17, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 17, "flags": 4}, + {"matrix": [1, 1], "x": 13, "y": 17, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 26, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 39, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 65, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 97, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 123, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 143, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 156, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 169, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 182, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 8}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 4} + ], "max_brightness": 200 }, "processor": "STM32F103", diff --git a/keyboards/phage_studio/pila87/pila87.c b/keyboards/phage_studio/pila87/pila87.c index 619623cc09..927f349cf3 100644 --- a/keyboards/phage_studio/pila87/pila87.c +++ b/keyboards/phage_studio/pila87/pila87.c @@ -23,29 +23,6 @@ #include #include -led_config_t g_led_config = { { - { 75, NO_LED, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90 }, - { 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, - { 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, NO_LED, 28, NO_LED, NO_LED, NO_LED }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, NO_LED, NO_LED, 26, NO_LED, 27, NO_LED }, - { 14, 13, 12, 11, 10, 9, 8, 7, NO_LED, NO_LED, 6, 5, 4, 3, 2, 1, 0 } -}, { - {224, 64}, {211, 64}, {198, 64}, {180, 64}, {164, 64}, {148, 64}, {131, 64}, {110, 61}, {104, 61}, {83 , 64}, {65 , 61}, {58 , 61}, {34 , 64}, {18 , 64}, {2 , 64}, - {8 , 52}, {29 , 52}, {42 , 52}, {55 , 52}, {68 , 52}, {81 , 52}, {94 , 52}, {107, 52}, {120, 52}, {133, 52}, {146, 52}, {170, 52}, {211, 52}, - {174, 41}, {153, 41}, {140, 41}, {127, 41}, {114, 41}, {101, 41}, {88 , 41}, {75 , 41}, {62 , 41}, {49 , 41}, {36 , 41}, {23 , 41}, {5 , 41}, - {3 , 29}, {19 , 29}, {32 , 29}, {45 , 29}, {58 , 29}, {71 , 29}, {84 , 29}, {97 , 29}, {110, 29}, {123, 29}, {136, 29}, {149, 29}, {162, 29}, {179, 29}, {198, 29}, {211, 29}, {224, 29}, - {224, 17}, {211, 17}, {198, 17}, {175, 17}, {156, 17}, {143, 17}, {130, 17}, {117, 17}, {104, 17}, {91 , 17}, {78 , 17}, {65 , 17}, {52 , 17}, {39 , 17}, {26 , 17}, {13 , 17}, {0 , 17}, - {0 , 0}, {26 , 0}, {39 , 0}, {52 , 0}, {65 , 0}, {84 , 0}, {97 , 0}, {110, 0}, {123, 0}, {143, 0}, {156, 0}, {169, 0}, {182, 0}, {198, 0}, {211, 0}, {224, 0}, -}, { - 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 4, -} }; - bool process_record_kb(uint16_t keycode, keyrecord_t *record) { switch (keycode) { case QK_RGB_MATRIX_TOGGLE: diff --git a/keyboards/phase_studio/titan65/hotswap/hotswap.c b/keyboards/phase_studio/titan65/hotswap/hotswap.c deleted file mode 100644 index 1bcd581785..0000000000 --- a/keyboards/phase_studio/titan65/hotswap/hotswap.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2021 Christopher Courtney, aka Drashna Jael're (@drashna) - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - { 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, NO_LED, 65, 66 }, - { 51, NO_LED, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37 }, - { 23, NO_LED, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, NO_LED, 36 }, - { NO_LED, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, NO_LED, 11, 10, 9 }, - { 0, 1, NO_LED, 2, NO_LED, NO_LED, 3, NO_LED, NO_LED, NO_LED, 4, 5, NO_LED, 6, 7, 8 } - }, { - { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 }, - { 224, 48 }, { 210, 48 }, { 189, 48 }, { 154, 48 }, { 139, 48 }, { 124, 48 }, { 109, 48 }, { 94, 48 }, { 79, 48 }, { 64, 48 }, { 49, 48 }, { 34, 48 }, { 22, 48 }, { 5, 48 }, - { 6, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 181, 32 }, { 201, 32 }, { 224, 32 }, - { 224, 16 }, { 206, 16 },{ 188, 16 }, { 173, 16 }, { 158, 16 }, { 143, 16 }, { 128, 16 }, { 113, 16 }, { 98, 16 }, { 83, 16 }, { 68, 16 }, { 53, 16 }, { 38, 16 }, { 22, 16 }, { 4, 16 }, - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 203, 0 }, { 224, 0 } - }, { - 1, 1, 1, 4, 1, 1, 1, 1, 1, - 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1 - } -}; - -#endif diff --git a/keyboards/phase_studio/titan65/hotswap/keyboard.json b/keyboards/phase_studio/titan65/hotswap/keyboard.json index c9d1b0f726..599684322a 100644 --- a/keyboards/phase_studio/titan65/hotswap/keyboard.json +++ b/keyboards/phase_studio/titan65/hotswap/keyboard.json @@ -19,6 +19,75 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 165, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 15], "x": 224, "y": 64, "flags": 1}, + {"matrix": [3, 15], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 210, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 189, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 22, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 5, "y": 48, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 181, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 1}, + {"matrix": [2, 15], "x": 224, "y": 32, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 16, "flags": 1}, + {"matrix": [1, 14], "x": 206, "y": 16, "flags": 1}, + {"matrix": [1, 13], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 22, "y": 16, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 203, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1} + ], "max_brightness": 150, "sleep": true }, diff --git a/keyboards/planck/light/keyboard.json b/keyboards/planck/light/keyboard.json index 413c753f92..f445cca931 100644 --- a/keyboards/planck/light/keyboard.json +++ b/keyboards/planck/light/keyboard.json @@ -55,6 +55,57 @@ "solid_multisplash": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 223, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, + {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4}, + {"matrix": [1, 10], "x": 203, "y": 21, "flags": 4}, + {"matrix": [1, 11], "x": 223, "y": 21, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4}, + {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4}, + {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4}, + {"matrix": [2, 6], "x": 122, "y": 42, "flags": 4}, + {"matrix": [2, 7], "x": 142, "y": 42, "flags": 4}, + {"matrix": [2, 8], "x": 162, "y": 42, "flags": 4}, + {"matrix": [2, 9], "x": 183, "y": 42, "flags": 4}, + {"matrix": [2, 10], "x": 203, "y": 42, "flags": 4}, + {"matrix": [2, 11], "x": 223, "y": 42, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 63, "flags": 1}, + {"matrix": [3, 1], "x": 20, "y": 63, "flags": 1}, + {"matrix": [3, 2], "x": 40, "y": 63, "flags": 1}, + {"matrix": [3, 3], "x": 61, "y": 63, "flags": 1}, + {"matrix": [3, 4], "x": 81, "y": 63, "flags": 1}, + {"matrix": [3, 5], "x": 101, "y": 63, "flags": 4}, + {"x": 111, "y": 63, "flags": 4}, + {"matrix": [3, 6], "x": 122, "y": 63, "flags": 4}, + {"matrix": [3, 7], "x": 142, "y": 63, "flags": 1}, + {"matrix": [3, 8], "x": 162, "y": 63, "flags": 1}, + {"matrix": [3, 9], "x": 183, "y": 63, "flags": 1}, + {"matrix": [3, 10], "x": 203, "y": 63, "flags": 1}, + {"matrix": [3, 11], "x": 223, "y": 63, "flags": 1} + ], "sleep": true }, "features": { diff --git a/keyboards/planck/light/light.c b/keyboards/planck/light/light.c index 43487e2e21..97ea06c467 100644 --- a/keyboards/planck/light/light.c +++ b/keyboards/planck/light/light.c @@ -77,25 +77,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C9_14, C8_14, C7_14} }; -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 }, - { 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }, - { 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 }, - { 36, 37, 38, 39, 40, 41, 43, 44, 45, 46, 47, 48 } -}, { - { 0, 0 }, { 20, 0 }, { 40, 0 }, { 61, 0 }, { 81, 0 }, { 101, 0 }, { 122, 0 }, { 142, 0 }, { 162, 0 }, { 183, 0 }, { 203, 0 }, { 223, 0 }, - { 0, 21 }, { 20, 21 }, { 40, 21 }, { 61, 21 }, { 81, 21 }, { 101, 21 }, { 122, 21 }, { 142, 21 }, { 162, 21 }, { 183, 21 }, { 203, 21 }, { 223, 21 }, - { 0, 42 }, { 20, 42 }, { 40, 42 }, { 61, 42 }, { 81, 42 }, { 101, 42 }, { 122, 42 }, { 142, 42 }, { 162, 42 }, { 183, 42 }, { 203, 42 }, { 223, 42 }, - { 0, 63 }, { 20, 63 }, { 40, 63 }, { 61, 63 }, { 81, 63 }, { 101, 63 }, { 111, 63 }, { 122, 63 }, { 142, 63 }, { 162, 63 }, { 183, 63 }, { 203, 63 }, - { 223, 63 } -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, - 1 -} }; - void matrix_init_kb(void) { // Turn status LED on diff --git a/keyboards/planck/rev6/keyboard.json b/keyboards/planck/rev6/keyboard.json index b0028795fe..aee39c8b3a 100644 --- a/keyboards/planck/rev6/keyboard.json +++ b/keyboards/planck/rev6/keyboard.json @@ -17,6 +17,17 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [2, 5], "x": 112, "y": 39, "flags": 255}, + {"matrix": [7, 1], "x": 148, "y": 60, "flags": 255}, + {"matrix": [3, 4], "x": 206, "y": 53, "flags": 255}, + {"matrix": [4, 4], "x": 206, "y": 3, "flags": 255}, + {"matrix": [4, 1], "x": 150, "y": 3, "flags": 255}, + {"matrix": [0, 4], "x": 74, "y": 3, "flags": 255}, + {"matrix": [0, 1], "x": 18, "y": 3, "flags": 255}, + {"matrix": [3, 1], "x": 18, "y": 54, "flags": 255}, + {"matrix": [7, 4], "x": 77, "y": 60, "flags": 255} + ], "sleep": true }, "features": { diff --git a/keyboards/planck/rev6/rev6.c b/keyboards/planck/rev6/rev6.c index 49f7d83123..e8439b1705 100644 --- a/keyboards/planck/rev6/rev6.c +++ b/keyboards/planck/rev6/rev6.c @@ -15,33 +15,6 @@ */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { NO_LED, 6, NO_LED, NO_LED, 5, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 }, - { NO_LED, 7, NO_LED, NO_LED, 2, NO_LED }, - { NO_LED, 4, NO_LED, NO_LED, 3, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 1, NO_LED, NO_LED, 8, NO_LED }, -}, { - // LED Index to Physical Position - {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60} -}, { - // LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -} }; - -// LED physical location index -// 6 5 4 3 -// 0 -// 7 8 1 2 - -#endif - #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { @@ -49,7 +22,7 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}}, {{5, 6}, {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6}}, {{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, - + {{5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, {{5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, {{5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, diff --git a/keyboards/planck/rev6_drop/keyboard.json b/keyboards/planck/rev6_drop/keyboard.json index ff301f8c86..4f089f83f3 100644 --- a/keyboards/planck/rev6_drop/keyboard.json +++ b/keyboards/planck/rev6_drop/keyboard.json @@ -29,6 +29,17 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [2, 5], "x": 112, "y": 39, "flags": 255}, + {"matrix": [7, 1], "x": 148, "y": 60, "flags": 255}, + {"matrix": [3, 4], "x": 206, "y": 53, "flags": 255}, + {"matrix": [4, 4], "x": 206, "y": 3, "flags": 255}, + {"matrix": [4, 1], "x": 150, "y": 3, "flags": 255}, + {"matrix": [0, 4], "x": 74, "y": 3, "flags": 255}, + {"matrix": [0, 1], "x": 18, "y": 3, "flags": 255}, + {"matrix": [3, 1], "x": 18, "y": 54, "flags": 255}, + {"matrix": [7, 4], "x": 77, "y": 60, "flags": 255} + ], "sleep": true }, "matrix_pins": { diff --git a/keyboards/planck/rev6_drop/rev6_drop.c b/keyboards/planck/rev6_drop/rev6_drop.c index 8f613851dc..e8439b1705 100644 --- a/keyboards/planck/rev6_drop/rev6_drop.c +++ b/keyboards/planck/rev6_drop/rev6_drop.c @@ -15,34 +15,6 @@ */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { { - // Key Matrix to LED Index - { NO_LED, 6, NO_LED, NO_LED, 5, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 }, - { NO_LED, 7, NO_LED, NO_LED, 2, NO_LED }, - { NO_LED, 4, NO_LED, NO_LED, 3, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 1, NO_LED, NO_LED, 8, NO_LED }, -}, { - // LED Index to Physical Position - {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60} -}, { - // LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -} }; - -// LED physical location index -// 6 5 4 3 -// 0 -// 7 8 1 2 - -#endif - #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { @@ -50,7 +22,7 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}}, {{5, 6}, {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6}}, {{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, - + {{5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, {{5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, {{5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, diff --git a/keyboards/planck/rev7/keyboard.json b/keyboards/planck/rev7/keyboard.json index 691394d5d5..3bc274b1fa 100644 --- a/keyboards/planck/rev7/keyboard.json +++ b/keyboards/planck/rev7/keyboard.json @@ -14,6 +14,17 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [2, 5], "x": 112, "y": 39, "flags": 255}, + {"matrix": [7, 1], "x": 148, "y": 60, "flags": 255}, + {"matrix": [3, 4], "x": 206, "y": 53, "flags": 255}, + {"matrix": [4, 4], "x": 206, "y": 3, "flags": 255}, + {"matrix": [4, 1], "x": 150, "y": 3, "flags": 255}, + {"matrix": [0, 4], "x": 74, "y": 3, "flags": 255}, + {"matrix": [0, 1], "x": 18, "y": 3, "flags": 255}, + {"matrix": [3, 1], "x": 18, "y": 54, "flags": 255}, + {"matrix": [7, 4], "x": 77, "y": 60, "flags": 255} + ], "sleep": true }, "matrix_pins": { diff --git a/keyboards/planck/rev7/rev7.c b/keyboards/planck/rev7/rev7.c index bb9d0ee1e8..09fd5901c2 100644 --- a/keyboards/planck/rev7/rev7.c +++ b/keyboards/planck/rev7/rev7.c @@ -15,34 +15,6 @@ */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { { - // Key Matrix to LED Index - { NO_LED, 6, NO_LED, NO_LED, 5, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 }, - { NO_LED, 7, NO_LED, NO_LED, 2, NO_LED }, - { NO_LED, 4, NO_LED, NO_LED, 3, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 1, NO_LED, NO_LED, 8, NO_LED }, -}, { - // LED Index to Physical Position - {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60} -}, { - // LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -} }; - -// LED physical location index -// 6 5 4 3 -// 0 -// 7 8 1 2 - -#endif - #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { @@ -50,7 +22,7 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{5, 5}, {4, 5}, {3, 5}, {2, 5}, {1, 5}, {0, 5}}, {{5, 6}, {4, 6}, {3, 6}, {2, 6}, {1, 6}, {0, 6}}, {{5, 3}, {4, 3}, {3, 3}, {2, 3}, {1, 3}, {0, 3}}, - + {{5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}}, {{5, 1}, {4, 1}, {3, 1}, {2, 1}, {1, 1}, {0, 1}}, {{5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}}, diff --git a/keyboards/preonic/rev3/keyboard.json b/keyboards/preonic/rev3/keyboard.json index 96cebf9ea0..9babc119b0 100644 --- a/keyboards/preonic/rev3/keyboard.json +++ b/keyboards/preonic/rev3/keyboard.json @@ -26,7 +26,18 @@ "driver": "pwm" }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [2, 5], "x": 112, "y": 39, "flags": 255}, + {"matrix": [9, 1], "x": 148, "y": 60, "flags": 255}, + {"matrix": [8, 4], "x": 206, "y": 53, "flags": 255}, + {"matrix": [4, 4], "x": 206, "y": 3, "flags": 255}, + {"matrix": [4, 1], "x": 150, "y": 3, "flags": 255}, + {"matrix": [0, 4], "x": 74, "y": 3, "flags": 255}, + {"matrix": [0, 1], "x": 18, "y": 3, "flags": 255}, + {"matrix": [8, 1], "x": 18, "y": 54, "flags": 255}, + {"matrix": [9, 4], "x": 77, "y": 60, "flags": 255} + ] }, "features": { "audio": true, diff --git a/keyboards/preonic/rev3/rev3.c b/keyboards/preonic/rev3/rev3.c index 5a751cbba5..12a11c98eb 100644 --- a/keyboards/preonic/rev3/rev3.c +++ b/keyboards/preonic/rev3/rev3.c @@ -15,35 +15,6 @@ */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { NO_LED, 6, NO_LED, NO_LED, 5, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 4, NO_LED, NO_LED, 3, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 7, NO_LED, NO_LED, 2, NO_LED }, - { NO_LED, 1, NO_LED, NO_LED, 8, NO_LED }, -}, { - // LED Index to Physical Position - {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60} -}, { - // LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -} }; - -// LED physical location index -// 6 5 4 3 -// 0 -// 7 8 1 2 -#endif - - #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { diff --git a/keyboards/preonic/rev3_drop/keyboard.json b/keyboards/preonic/rev3_drop/keyboard.json index 22374fa5f7..ece6bf32f9 100644 --- a/keyboards/preonic/rev3_drop/keyboard.json +++ b/keyboards/preonic/rev3_drop/keyboard.json @@ -44,7 +44,18 @@ "driver": "pwm" }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [2, 5], "x": 112, "y": 39, "flags": 255}, + {"matrix": [9, 1], "x": 148, "y": 60, "flags": 255}, + {"matrix": [8, 4], "x": 206, "y": 53, "flags": 255}, + {"matrix": [4, 4], "x": 206, "y": 3, "flags": 255}, + {"matrix": [4, 1], "x": 150, "y": 3, "flags": 255}, + {"matrix": [0, 4], "x": 74, "y": 3, "flags": 255}, + {"matrix": [0, 1], "x": 18, "y": 3, "flags": 255}, + {"matrix": [8, 1], "x": 18, "y": 54, "flags": 255}, + {"matrix": [9, 4], "x": 77, "y": 60, "flags": 255} + ] }, "matrix_pins": { "cols": ["B11", "B10", "B2", "B1", "A7", "B0"], diff --git a/keyboards/preonic/rev3_drop/rev3_drop.c b/keyboards/preonic/rev3_drop/rev3_drop.c index 5a751cbba5..12a11c98eb 100644 --- a/keyboards/preonic/rev3_drop/rev3_drop.c +++ b/keyboards/preonic/rev3_drop/rev3_drop.c @@ -15,35 +15,6 @@ */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { NO_LED, 6, NO_LED, NO_LED, 5, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 0 }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 4, NO_LED, NO_LED, 3, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, 7, NO_LED, NO_LED, 2, NO_LED }, - { NO_LED, 1, NO_LED, NO_LED, 8, NO_LED }, -}, { - // LED Index to Physical Position - {112, 39}, {148, 60}, {206, 53}, {206, 3}, {150, 3}, {74, 3}, {18, 3}, {18, 54}, {77, 60} -}, { - // LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -} }; - -// LED physical location index -// 6 5 4 3 -// 0 -// 7 8 1 2 -#endif - - #ifdef SWAP_HANDS_ENABLE __attribute__ ((weak)) const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { From ff1900190c166d28f8d903ea7bf723658780d192 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 03:08:42 -0600 Subject: [PATCH 038/255] Migrate `g_led_config` to DD (NO) (#25621) --- keyboards/nack/keyboard.json | 54 +++++++++++ keyboards/nack/nack.c | 39 -------- .../ning/tiny_board/tb16_rgb/keyboard.json | 20 ++++- keyboards/ning/tiny_board/tb16_rgb/tb16_rgb.c | 31 ------- keyboards/novelkeys/nk20/keyboard.json | 22 +++++ keyboards/novelkeys/nk20/nk20.c | 40 --------- keyboards/novelkeys/nk65b/keyboard.json | 70 +++++++++++++++ keyboards/novelkeys/nk65b/nk65b.c | 24 ----- keyboards/novelkeys/nk87b/keyboard.json | 89 +++++++++++++++++++ keyboards/novelkeys/nk87b/nk87b.c | 27 ------ keyboards/omkbd/runner3680/5x6_5x8/5x6_5x8.c | 52 ----------- .../omkbd/runner3680/5x6_5x8/keyboard.json | 72 +++++++++++++++ keyboards/owlab/voice65/hotswap/hotswap.c | 23 ----- keyboards/owlab/voice65/hotswap/keyboard.json | 69 ++++++++++++++ .../owlab/voice65/soldered/keyboard.json | 73 +++++++++++++++ keyboards/owlab/voice65/soldered/soldered.c | 23 ----- 16 files changed, 468 insertions(+), 260 deletions(-) delete mode 100644 keyboards/nack/nack.c delete mode 100644 keyboards/ning/tiny_board/tb16_rgb/tb16_rgb.c delete mode 100644 keyboards/novelkeys/nk20/nk20.c delete mode 100644 keyboards/omkbd/runner3680/5x6_5x8/5x6_5x8.c diff --git a/keyboards/nack/keyboard.json b/keyboards/nack/keyboard.json index cd08aac0af..2368786530 100644 --- a/keyboards/nack/keyboard.json +++ b/keyboards/nack/keyboard.json @@ -73,6 +73,60 @@ "val": 64 }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 19, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 38, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 57, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 76, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 95, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 114, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 133, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 152, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 171, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 190, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 209, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 223, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 19, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 57, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 76, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 95, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 114, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 133, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 152, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 171, "y": 21, "flags": 4}, + {"matrix": [1, 10], "x": 190, "y": 21, "flags": 4}, + {"matrix": [1, 11], "x": 209, "y": 21, "flags": 4}, + {"matrix": [1, 12], "x": 223, "y": 21, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 4}, + {"matrix": [2, 1], "x": 19, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 38, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 57, "y": 42, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 42, "flags": 4}, + {"matrix": [2, 5], "x": 95, "y": 42, "flags": 4}, + {"matrix": [2, 6], "x": 114, "y": 42, "flags": 4}, + {"matrix": [2, 7], "x": 133, "y": 42, "flags": 4}, + {"matrix": [2, 8], "x": 152, "y": 42, "flags": 4}, + {"matrix": [2, 9], "x": 171, "y": 42, "flags": 4}, + {"matrix": [2, 10], "x": 190, "y": 42, "flags": 4}, + {"matrix": [2, 11], "x": 209, "y": 42, "flags": 4}, + {"matrix": [2, 12], "x": 223, "y": 42, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 63, "flags": 4}, + {"matrix": [3, 1], "x": 19, "y": 63, "flags": 4}, + {"matrix": [3, 2], "x": 38, "y": 63, "flags": 4}, + {"matrix": [3, 3], "x": 57, "y": 63, "flags": 4}, + {"matrix": [3, 4], "x": 76, "y": 63, "flags": 4}, + {"matrix": [3, 5], "x": 95, "y": 63, "flags": 4}, + {"matrix": [3, 6], "x": 114, "y": 63, "flags": 4}, + {"matrix": [3, 7], "x": 133, "y": 63, "flags": 4}, + {"matrix": [3, 8], "x": 152, "y": 63, "flags": 4}, + {"matrix": [3, 9], "x": 171, "y": 63, "flags": 4}, + {"matrix": [3, 10], "x": 190, "y": 63, "flags": 4}, + {"matrix": [3, 11], "x": 209, "y": 63, "flags": 4}, + {"matrix": [3, 12], "x": 223, "y": 63, "flags": 4} + ], "hue_steps": 10, "sat_steps": 10, "val_steps": 10, diff --git a/keyboards/nack/nack.c b/keyboards/nack/nack.c deleted file mode 100644 index 27e029a9fd..0000000000 --- a/keyboards/nack/nack.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2020 farfalleflickan - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 }, - { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 }, - { 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 }, - { 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 } - }, { - // LED Index to Physical Position - { 0, 0 }, { 19, 0 }, { 38, 0 }, { 57, 0 }, { 76, 0 }, { 95, 0 }, { 114, 0 }, { 133, 0 }, { 152, 0 }, { 171, 0 }, { 190, 0 }, { 209, 0 }, { 223, 0 }, - { 0, 21 }, { 19, 21 }, { 38, 21 }, { 57, 21 }, { 76, 21 }, { 95, 21 }, { 114, 21 }, { 133, 21 }, { 152, 21 }, { 171, 21 }, { 190, 21 }, { 209, 21 }, { 223, 21 }, - { 0, 42 }, { 19, 42 }, { 38, 42 }, { 57, 42 }, { 76, 42 }, { 95, 42 }, { 114, 42 }, { 133, 42 }, { 152, 42 }, { 171, 42 }, { 190, 42 }, { 209, 42 }, { 223, 42 }, - { 0, 63 }, { 19, 63 }, { 38, 63 }, { 57, 63 }, { 76, 63 }, { 95, 63 }, { 114, 63 }, { 133, 63 }, { 152, 63 }, { 171, 63 }, { 190, 63 }, { 209, 63 }, { 223, 63 } - }, { - // LED Index to Flag - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 - } }; -#endif diff --git a/keyboards/ning/tiny_board/tb16_rgb/keyboard.json b/keyboards/ning/tiny_board/tb16_rgb/keyboard.json index 9e99ef879a..104a4a84a6 100644 --- a/keyboards/ning/tiny_board/tb16_rgb/keyboard.json +++ b/keyboards/ning/tiny_board/tb16_rgb/keyboard.json @@ -20,7 +20,25 @@ "default": { "animation": "typing_heatmap" }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 75, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 150, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 224, "y": 21, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 4}, + {"matrix": [2, 1], "x": 75, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 150, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 224, "y": 42, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 75, "y": 64, "flags": 4}, + {"matrix": [3, 2], "x": 150, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 224, "y": 64, "flags": 4} + ] }, "matrix_pins": { "cols": ["B6", "B1", "B3", "B2"], diff --git a/keyboards/ning/tiny_board/tb16_rgb/tb16_rgb.c b/keyboards/ning/tiny_board/tb16_rgb/tb16_rgb.c deleted file mode 100644 index e7807be5e8..0000000000 --- a/keyboards/ning/tiny_board/tb16_rgb/tb16_rgb.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright 2023 Ning (@ningjx) - * - * 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 "quantum.h" - -led_config_t g_led_config = { { - { 0, 1, 2, 3 }, - { 4, 5, 6, 7 }, - { 8, 9, 10, 11 }, - { 12, 13, 14, 15 } -}, { - {0,0},{75,0},{150,0},{224,0}, - {0,21},{75,21},{150,21},{224,21}, - {0,42},{75,42},{150,42},{224,42}, - {0,64},{75,64},{150,64},{224,64} -}, { - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4 -} }; diff --git a/keyboards/novelkeys/nk20/keyboard.json b/keyboards/novelkeys/nk20/keyboard.json index f2728967b4..e2560e0c30 100644 --- a/keyboards/novelkeys/nk20/keyboard.json +++ b/keyboards/novelkeys/nk20/keyboard.json @@ -66,6 +66,28 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 75, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 149, "y": 0, "flags": 1}, + {"matrix": [1, 3], "x": 224, "y": 15, "flags": 1}, + {"matrix": [1, 2], "x": 149, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 75, "y": 15, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 27, "flags": 4}, + {"matrix": [2, 1], "x": 75, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 149, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 224, "y": 34, "flags": 1}, + {"matrix": [3, 2], "x": 149, "y": 40, "flags": 4}, + {"matrix": [3, 1], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 40, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 52, "flags": 4}, + {"matrix": [4, 1], "x": 75, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 149, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 224, "y": 58, "flags": 1}, + {"matrix": [5, 2], "x": 149, "y": 64, "flags": 4}, + {"matrix": [5, 0], "x": 37, "y": 64, "flags": 4} + ], "max_brightness": 210, "sleep": true }, diff --git a/keyboards/novelkeys/nk20/nk20.c b/keyboards/novelkeys/nk20/nk20.c deleted file mode 100644 index 23350e1037..0000000000 --- a/keyboards/novelkeys/nk20/nk20.c +++ /dev/null @@ -1,40 +0,0 @@ -/* Copyright 2022 Yiancar - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { { - { 0, 1, 2, NO_LED }, - { 6, 5, 4, 3 }, - { 7, 8, 9, 10 }, - { 13, 12, 11, NO_LED }, - { 14, 15, 16, 17 }, - { 19, NO_LED, 18, NO_LED }, -}, { - { 0,0 }, { 75,0 }, {149,0 }, {224,15 }, {149,15 }, { 75,15 }, { 0,15 }, { 0,27 }, { 75,27 }, {149,27 }, - {224,34 }, {149,40 }, { 75,40 }, { 0,40 }, { 0,52 }, { 75,52 }, {149,52 }, {224,58 }, {149,64 }, { 37,64 } -}, { - 1, 1, 1, - 1, 1, 1, 1, - 4, 4, 4, 1, - 4, 4, 4, - 4, 4, 4, 1, - 4, 4 -} }; -// clang-format on -#endif diff --git a/keyboards/novelkeys/nk65b/keyboard.json b/keyboards/novelkeys/nk65b/keyboard.json index 0c2794c120..74204a4413 100755 --- a/keyboards/novelkeys/nk65b/keyboard.json +++ b/keyboards/novelkeys/nk65b/keyboard.json @@ -66,6 +66,76 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 225, "y": 0, "flags": 1}, + {"matrix": [1, 14], "x": 225, "y": 16, "flags": 1}, + {"matrix": [2, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 201, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 225, "y": 32, "flags": 1}, + {"matrix": [3, 14], "x": 225, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 165, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 180, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 210, "y": 64, "flags": 1}, + {"x": 225, "y": 64, "flags": 1} + ], "max_brightness": 130, "sleep": true }, diff --git a/keyboards/novelkeys/nk65b/nk65b.c b/keyboards/novelkeys/nk65b/nk65b.c index 369bab262f..400ab35ef3 100755 --- a/keyboards/novelkeys/nk65b/nk65b.c +++ b/keyboards/novelkeys/nk65b/nk65b.c @@ -28,27 +28,3 @@ layer_state_t layer_state_set_kb(layer_state_t state) { gpio_write_pin(B3, !layer_state_cmp(state, 2)); return layer_state_set_user(state); } - -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, NO_LED, 15 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 16, 43 }, - { 57, NO_LED, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44 }, - { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 61, 62, 63, 64, 65, 66 } -}, { - { 0,0 }, { 15,0 }, { 30,0 }, { 45,0 }, { 60,0 }, { 75,0 }, { 90,0 }, {105,0 }, {120,0 }, {135,0 }, {150,0 }, {165,0 }, {180,0 }, {203,0 }, - {225,0 }, {225,16 }, {206,16 }, {188,16 }, {173,16 }, {158,16 }, {143,16 }, {128,16 }, {113,16 }, { 98,16 }, { 83,16 }, { 68,16 }, { 53,16 }, { 38,16 }, - { 23,16 }, { 4,16 }, { 6,32 }, { 26,32 }, { 41,32 }, { 56,32 }, { 71,32 }, { 86,32 }, {101,32 }, {116,32 }, {131,32 }, {146,32 }, {161,32 }, {176,32 }, - {201,32 }, {225,32 }, {225,48 }, {210,48 }, {189,48 }, {169,48 }, {154,48 }, {139,48 }, {124,48 }, {109,48 }, { 94,48 }, { 79,48 }, { 64,48 }, { 49,48 }, - { 34,48 }, { 9,48 }, { 2,64 }, { 21,64 }, { 39,64 }, { 96,64 }, {150,64 }, {165,64 }, {180,64 }, {195,64 }, {210,64 }, {225,64 } -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 -} }; -// clang-format on -#endif diff --git a/keyboards/novelkeys/nk87b/keyboard.json b/keyboards/novelkeys/nk87b/keyboard.json index 563f502aae..2213dfa86d 100755 --- a/keyboards/novelkeys/nk87b/keyboard.json +++ b/keyboards/novelkeys/nk87b/keyboard.json @@ -66,6 +66,95 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 29, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 55, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 71, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 127, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 153, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 166, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 16], "x": 224, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 13], "x": 175, "y": 15, "flags": 1}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 19, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 58, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 84, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 97, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 110, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 123, "y": 27, "flags": 4}, + {"matrix": [2, 10], "x": 136, "y": 27, "flags": 4}, + {"matrix": [2, 11], "x": 149, "y": 27, "flags": 4}, + {"matrix": [2, 12], "x": 162, "y": 27, "flags": 4}, + {"matrix": [3, 12], "x": 179, "y": 27, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 27, "flags": 1}, + {"matrix": [2, 15], "x": 211, "y": 27, "flags": 1}, + {"matrix": [2, 16], "x": 224, "y": 27, "flags": 1}, + {"matrix": [3, 13], "x": 174, "y": 40, "flags": 1}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 10], "x": 133, "y": 52, "flags": 4}, + {"matrix": [4, 11], "x": 146, "y": 52, "flags": 4}, + {"matrix": [4, 12], "x": 170, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1}, + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 179, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 162, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 146, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 91, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 36, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 19, "y": 64, "flags": 1}, + {"matrix": [5, 0], "x": 3, "y": 64, "flags": 1} + ], "max_brightness": 114, "sleep": true }, diff --git a/keyboards/novelkeys/nk87b/nk87b.c b/keyboards/novelkeys/nk87b/nk87b.c index 125b5d7404..9cd36e745f 100644 --- a/keyboards/novelkeys/nk87b/nk87b.c +++ b/keyboards/novelkeys/nk87b/nk87b.c @@ -29,30 +29,3 @@ layer_state_t layer_state_set_kb(layer_state_t state) { gpio_write_pin(A4, !layer_state_cmp(state, 2)); return layer_state_set_user(state); } - -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }, - { 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17 }, - { 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, NO_LED, 48, 49, 50 }, - { 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 47, 51, NO_LED, NO_LED, NO_LED }, - { 64, NO_LED, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, NO_LED, NO_LED, 76, NO_LED }, - { 86, 85, 84, NO_LED, NO_LED, NO_LED, 83, NO_LED, NO_LED, NO_LED, NO_LED, 82, 81, 80, 79, 78, 77 }, -}, { - { 0,0 }, { 16,0 }, { 29,0 }, { 42,0 }, { 55,0 }, { 71,0 }, { 84,0 }, { 97,0 }, {110,0 }, {127,0 }, {140,0 }, {153,0 }, {166,0 }, {182,0 }, {198,0 }, {211,0 }, {224,0 }, - {224,15 }, {211,15 }, {198,15 }, {175,15 }, {156,15 }, {143,15 }, {130,15 }, {117,15 }, {104,15 }, { 91,15 }, { 78,15 }, { 65,15 }, { 52,15 }, { 39,15 }, { 26,15 }, { 13,15 }, { 0,15 }, - { 3,27 }, { 19,27 }, { 32,27 }, { 45,27 }, { 58,27 }, { 71,27 }, { 84,27 }, { 97,27 }, {110,27 }, {123,27 }, {136,27 }, {149,27 }, {162,27 }, {179,27 }, {198,27 }, {211,27 }, {224,27 }, - {174,40 }, {153,40 }, {140,40 }, {127,40 }, {114,40 }, {101,40 }, { 88,40 }, { 75,40 }, { 62,40 }, { 49,40 }, { 36,40 }, { 23,40 }, { 5,40 }, { 8,52 }, { 29,52 }, { 42,52 }, { 55,52 }, - { 68,52 }, { 81,52 }, { 94,52 }, {107,52 }, {120,52 }, {133,52 }, {146,52 }, {170,52 }, {211,52 }, {224,64 }, {211,64 }, {198,64 }, {179,64 }, {162,64 }, {146,64 }, { 91,64 }, { 36,64 }, - { 19,64 }, { 3,64 } -}, { - 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 1, 1, 1, 4, 1, 1, 1 -} }; -// clang-format on -#endif diff --git a/keyboards/omkbd/runner3680/5x6_5x8/5x6_5x8.c b/keyboards/omkbd/runner3680/5x6_5x8/5x6_5x8.c deleted file mode 100644 index 3fda310364..0000000000 --- a/keyboards/omkbd/runner3680/5x6_5x8/5x6_5x8.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright 2021 omkbd - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { NO_LED, NO_LED, 5, 4, 3, 2, 1, 0 }, - { NO_LED, NO_LED, 6, 7, 8, 9, 10, 11 }, - { NO_LED, NO_LED, 17, 16, 15, 14, 13, 12 }, - { NO_LED, NO_LED, 18, 19, 20, 21, 22, 23 }, - { NO_LED, NO_LED, 29, 28, 27, 26, 25, 24 }, - { 37, 36, 35, 34, 33, 32, 31, 30 }, - { 38, 39, 40, 41, 42, 43, 44, 45 }, - { 53, 52, 51, 50, 49, 48, 47, 46 }, - { 54, 55, 56, 57, 58, 59, 60, 61 }, - { 69, 68, 67, 66, 65, 64, 63, 62 } -}, { - // LED Index to Physical Position - { 86, 0 }, { 69, 0 }, { 52, 0 }, { 34, 0 }, { 17, 0 }, { 0, 0 }, - { 0, 16 }, { 17, 16 }, { 34, 16 }, { 52, 16 }, { 69, 16 }, { 86, 16 }, - { 86, 32 }, { 69, 32 }, { 52, 32 }, { 34, 32 }, { 17, 32 }, { 0, 32 }, - { 0, 48 }, { 17, 48 }, { 34, 48 }, { 52, 48 }, { 69, 48 }, { 86, 48 }, - { 86, 64 }, { 69, 64 }, { 52, 64 }, { 34, 64 }, { 17, 64 }, { 0, 64 }, - { 103, 0 }, { 121, 0 }, { 138, 0 }, { 155, 0 }, { 172, 0 }, { 190, 0 }, { 207, 0 }, { 224, 0 }, - { 224, 16 }, { 207, 16 }, { 190, 16 }, { 172, 16 }, { 155, 16 }, { 138, 16 }, { 121, 16 }, { 103, 16 }, - { 103, 32 }, { 121, 32 }, { 138, 32 }, { 155, 32 }, { 172, 32 }, { 190, 32 }, { 207, 32 }, { 224, 32 }, - { 224, 48 }, { 207, 48 }, { 190, 48 }, { 172, 48 }, { 155, 48 }, { 138, 48 }, { 121, 48 }, { 103, 48 }, - { 103, 64 }, { 121, 64 }, { 138, 64 }, { 155, 64 }, { 172, 64 }, { 190, 64 }, { 207, 64 }, { 224, 64 } -}, { - // LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -} }; -#endif diff --git a/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json b/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json index 2d912a1445..2033b0330d 100644 --- a/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json +++ b/keyboards/omkbd/runner3680/5x6_5x8/keyboard.json @@ -15,6 +15,78 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [0, 7], "x": 86, "y": 0, "flags": 255}, + {"matrix": [0, 6], "x": 69, "y": 0, "flags": 255}, + {"matrix": [0, 5], "x": 52, "y": 0, "flags": 255}, + {"matrix": [0, 4], "x": 34, "y": 0, "flags": 255}, + {"matrix": [0, 3], "x": 17, "y": 0, "flags": 255}, + {"matrix": [0, 2], "x": 0, "y": 0, "flags": 255}, + {"matrix": [1, 2], "x": 0, "y": 16, "flags": 255}, + {"matrix": [1, 3], "x": 17, "y": 16, "flags": 255}, + {"matrix": [1, 4], "x": 34, "y": 16, "flags": 255}, + {"matrix": [1, 5], "x": 52, "y": 16, "flags": 255}, + {"matrix": [1, 6], "x": 69, "y": 16, "flags": 255}, + {"matrix": [1, 7], "x": 86, "y": 16, "flags": 255}, + {"matrix": [2, 7], "x": 86, "y": 32, "flags": 255}, + {"matrix": [2, 6], "x": 69, "y": 32, "flags": 255}, + {"matrix": [2, 5], "x": 52, "y": 32, "flags": 255}, + {"matrix": [2, 4], "x": 34, "y": 32, "flags": 255}, + {"matrix": [2, 3], "x": 17, "y": 32, "flags": 255}, + {"matrix": [2, 2], "x": 0, "y": 32, "flags": 255}, + {"matrix": [3, 2], "x": 0, "y": 48, "flags": 255}, + {"matrix": [3, 3], "x": 17, "y": 48, "flags": 255}, + {"matrix": [3, 4], "x": 34, "y": 48, "flags": 255}, + {"matrix": [3, 5], "x": 52, "y": 48, "flags": 255}, + {"matrix": [3, 6], "x": 69, "y": 48, "flags": 255}, + {"matrix": [3, 7], "x": 86, "y": 48, "flags": 255}, + {"matrix": [4, 7], "x": 86, "y": 64, "flags": 255}, + {"matrix": [4, 6], "x": 69, "y": 64, "flags": 255}, + {"matrix": [4, 5], "x": 52, "y": 64, "flags": 255}, + {"matrix": [4, 4], "x": 34, "y": 64, "flags": 255}, + {"matrix": [4, 3], "x": 17, "y": 64, "flags": 255}, + {"matrix": [4, 2], "x": 0, "y": 64, "flags": 255}, + {"matrix": [5, 7], "x": 103, "y": 0, "flags": 255}, + {"matrix": [5, 6], "x": 121, "y": 0, "flags": 255}, + {"matrix": [5, 5], "x": 138, "y": 0, "flags": 255}, + {"matrix": [5, 4], "x": 155, "y": 0, "flags": 255}, + {"matrix": [5, 3], "x": 172, "y": 0, "flags": 255}, + {"matrix": [5, 2], "x": 190, "y": 0, "flags": 255}, + {"matrix": [5, 1], "x": 207, "y": 0, "flags": 255}, + {"matrix": [5, 0], "x": 224, "y": 0, "flags": 255}, + {"matrix": [6, 0], "x": 224, "y": 16, "flags": 255}, + {"matrix": [6, 1], "x": 207, "y": 16, "flags": 255}, + {"matrix": [6, 2], "x": 190, "y": 16, "flags": 255}, + {"matrix": [6, 3], "x": 172, "y": 16, "flags": 255}, + {"matrix": [6, 4], "x": 155, "y": 16, "flags": 255}, + {"matrix": [6, 5], "x": 138, "y": 16, "flags": 255}, + {"matrix": [6, 6], "x": 121, "y": 16, "flags": 255}, + {"matrix": [6, 7], "x": 103, "y": 16, "flags": 255}, + {"matrix": [7, 7], "x": 103, "y": 32, "flags": 255}, + {"matrix": [7, 6], "x": 121, "y": 32, "flags": 255}, + {"matrix": [7, 5], "x": 138, "y": 32, "flags": 255}, + {"matrix": [7, 4], "x": 155, "y": 32, "flags": 255}, + {"matrix": [7, 3], "x": 172, "y": 32, "flags": 255}, + {"matrix": [7, 2], "x": 190, "y": 32, "flags": 255}, + {"matrix": [7, 1], "x": 207, "y": 32, "flags": 255}, + {"matrix": [7, 0], "x": 224, "y": 32, "flags": 255}, + {"matrix": [8, 0], "x": 224, "y": 48, "flags": 255}, + {"matrix": [8, 1], "x": 207, "y": 48, "flags": 255}, + {"matrix": [8, 2], "x": 190, "y": 48, "flags": 255}, + {"matrix": [8, 3], "x": 172, "y": 48, "flags": 255}, + {"matrix": [8, 4], "x": 155, "y": 48, "flags": 255}, + {"matrix": [8, 5], "x": 138, "y": 48, "flags": 255}, + {"matrix": [8, 6], "x": 121, "y": 48, "flags": 255}, + {"matrix": [8, 7], "x": 103, "y": 48, "flags": 255}, + {"matrix": [9, 7], "x": 103, "y": 64, "flags": 255}, + {"matrix": [9, 6], "x": 121, "y": 64, "flags": 255}, + {"matrix": [9, 5], "x": 138, "y": 64, "flags": 255}, + {"matrix": [9, 4], "x": 155, "y": 64, "flags": 255}, + {"matrix": [9, 3], "x": 172, "y": 64, "flags": 255}, + {"matrix": [9, 2], "x": 190, "y": 64, "flags": 255}, + {"matrix": [9, 1], "x": 207, "y": 64, "flags": 255}, + {"matrix": [9, 0], "x": 224, "y": 64, "flags": 255} + ], "split_count": [30, 40] }, "matrix_pins": { diff --git a/keyboards/owlab/voice65/hotswap/hotswap.c b/keyboards/owlab/voice65/hotswap/hotswap.c index 79179d1661..ec27cf9b75 100644 --- a/keyboards/owlab/voice65/hotswap/hotswap.c +++ b/keyboards/owlab/voice65/hotswap/hotswap.c @@ -86,29 +86,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW5_CS39, SW5_CS38, SW5_CS37}, /* RGB65-dn- */ {0, SW7_CS39, SW7_CS38, SW7_CS37}, /* RGB66-right- */ }; - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 }, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, NO_LED, 65, 66 } -}, { - { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 208, 0 }, { 224, 0 }, - { 2, 16 }, { 18, 16 }, { 34, 16 }, { 50, 16 }, { 66, 16 }, { 82, 16 }, { 98, 16 }, { 114, 16 }, { 130, 16 }, { 146, 16 }, { 162, 16 }, { 178, 16 }, { 194, 16 }, { 210, 16 }, { 224, 16 }, - { 4, 32 }, { 20, 32 }, { 36, 32 }, { 52, 32 }, { 68, 32 }, { 84, 32 }, { 100, 32 }, { 116, 32 }, { 132, 32 }, { 148, 32 }, { 164, 32 }, { 180, 32 }, { 196, 32 }, { 224, 32 }, - { 8, 48 }, { 24, 48 }, { 40, 48 }, { 56, 48 }, { 72, 48 }, { 88, 48 }, { 104, 48 }, { 120, 48 }, { 136, 48 }, { 152, 48 }, { 168, 48 }, { 184, 48 }, { 208, 48 }, { 224, 48 }, - { 2, 64 }, { 18, 64 }, { 34, 64 }, { 82, 64 }, { 146, 64 }, { 162, 64 }, { 178, 64 }, { 210, 64 }, { 224, 64 } -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, - } -}; - - #endif bool rgb_matrix_indicators_kb(void) { diff --git a/keyboards/owlab/voice65/hotswap/keyboard.json b/keyboards/owlab/voice65/hotswap/keyboard.json index 79ca2a57ed..e31a7b5e65 100644 --- a/keyboards/owlab/voice65/hotswap/keyboard.json +++ b/keyboards/owlab/voice65/hotswap/keyboard.json @@ -63,6 +63,75 @@ "val": 128 }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"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": 208, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 2, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 18, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 50, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 114, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 130, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 146, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 162, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 178, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 194, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 210, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 32, "flags": 0}, + {"matrix": [2, 1], "x": 20, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 36, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 100, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 132, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 148, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 164, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 180, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 196, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 8, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 24, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 56, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 72, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 88, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 104, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 120, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 136, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 152, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 168, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 184, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 208, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 82, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 146, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 162, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 178, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "led_flush_limit": 26, "led_process_limit": 4, "max_brightness": 200, diff --git a/keyboards/owlab/voice65/soldered/keyboard.json b/keyboards/owlab/voice65/soldered/keyboard.json index edd79a064f..312b612561 100644 --- a/keyboards/owlab/voice65/soldered/keyboard.json +++ b/keyboards/owlab/voice65/soldered/keyboard.json @@ -63,6 +63,79 @@ "val": 128 }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 195, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 209, "y": 0, "flags": 4}, + {"matrix": [2, 13], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 2, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 18, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 50, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 114, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 130, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 146, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 162, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 178, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 194, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 2, "y": 32, "flags": 0}, + {"matrix": [2, 1], "x": 20, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 36, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 68, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 84, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 100, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 132, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 148, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 164, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 180, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 202, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 192, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 208, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 20, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 40, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 60, "y": 64, "flags": 1}, + {"matrix": [4, 4], "x": 95, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 132, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 152, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 172, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 192, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 208, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "led_flush_limit": 26, "led_process_limit": 4, "max_brightness": 200, diff --git a/keyboards/owlab/voice65/soldered/soldered.c b/keyboards/owlab/voice65/soldered/soldered.c index 23144914fe..5a47de96e8 100644 --- a/keyboards/owlab/voice65/soldered/soldered.c +++ b/keyboards/owlab/voice65/soldered/soldered.c @@ -90,29 +90,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW5_CS39, SW5_CS38, SW5_CS37}, /* RGB69-dn- */ {0, SW5_CS27, SW5_CS26, SW5_CS25}, /* RGB70-right- */ }; - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 }, - { 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 15, 44 }, - { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59 }, - { 60, 61, 62, 63, 64, NO_LED, 65, NO_LED, NO_LED, 66, 67, 68, 69, NO_LED, 70 } -}, { - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0}, { 180, 0}, { 195, 0 }, { 209, 0 }, { 224, 0 }, - { 2, 16 }, { 18, 16 }, { 34, 16 }, { 50, 16 }, { 66, 16 }, { 82, 16 }, { 98, 16 }, { 114, 16 }, { 130, 16 }, { 146, 16 }, { 162, 16 }, { 178, 16 }, { 194, 16 }, { 208, 16 }, { 224, 16 }, - { 2, 32 }, { 20, 32 }, { 36, 32 }, { 52, 32 }, { 68, 32 }, { 84, 32 }, { 100, 32 }, { 116, 32 }, { 132, 32 }, { 148, 32 }, { 164, 32 }, { 180, 32 }, { 202, 32 }, { 224, 32 }, - { 0, 48 }, { 16, 48 }, { 32, 48 }, { 48, 48 }, { 64, 48 }, { 80, 48 }, { 96, 48 }, { 112, 48 }, { 128, 48 }, { 144, 48 }, { 160, 48 }, { 176, 48 }, { 192, 48 }, { 208, 48 }, { 224, 48 }, - { 0, 64 }, { 20, 64 }, { 40, 64 }, { 60, 64 }, { 95, 64 }, { 132, 64 }, { 152, 64 }, { 172, 64 }, { 192, 64 }, { 208, 64 }, { 224, 64 } -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - } -}; - - #endif bool rgb_matrix_indicators_kb(void) { From 7186a631721da92c02e1d487c7a99605ee2db269 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 03:09:14 -0600 Subject: [PATCH 039/255] Migrate `g_led_config` to DD (M3) (#25620) --- keyboards/merge/um70/keyboard.json | 85 ++++++++++++++ keyboards/merge/um70/um70.c | 77 ------------- keyboards/miller/gm862/gm862.c | 20 ---- keyboards/miller/gm862/keyboard.json | 63 +++++++++++ keyboards/ml/gas75/gas75.c | 34 ------ keyboards/ml/gas75/keyboard.json | 5 + keyboards/momokai/tap_duo/keyboard.json | 6 + keyboards/momokai/tap_duo/tap_duo.c | 31 ----- keyboards/momokai/tap_trio/keyboard.json | 7 ++ keyboards/momokai/tap_trio/tap_trio.c | 31 ----- keyboards/monstargear/xo87/rgb/keyboard.json | 112 +++++++++++++++++++ keyboards/monstargear/xo87/rgb/rgb.c | 50 --------- keyboards/mss_studio/m63_rgb/keyboard.json | 77 +++++++++++++ keyboards/mss_studio/m63_rgb/m63_rgb.c | 50 --------- keyboards/mss_studio/m64_rgb/keyboard.json | 78 +++++++++++++ keyboards/mss_studio/m64_rgb/m64_rgb.c | 50 --------- keyboards/mwstudio/mw65_rgb/keyboard.json | 85 ++++++++++++++ keyboards/mwstudio/mw65_rgb/mw65_rgb.c | 47 -------- keyboards/mwstudio/mw75/keyboard.json | 99 ++++++++++++++++ keyboards/mwstudio/mw75/mw75.c | 47 -------- keyboards/mwstudio/mw75r2/keyboard.json | 25 ++++- keyboards/mwstudio/mw75r2/mw75r2.c | 31 ----- 22 files changed, 641 insertions(+), 469 deletions(-) delete mode 100644 keyboards/merge/um70/um70.c delete mode 100644 keyboards/ml/gas75/gas75.c delete mode 100644 keyboards/momokai/tap_duo/tap_duo.c delete mode 100644 keyboards/momokai/tap_trio/tap_trio.c delete mode 100644 keyboards/mss_studio/m63_rgb/m63_rgb.c delete mode 100644 keyboards/mss_studio/m64_rgb/m64_rgb.c delete mode 100644 keyboards/mwstudio/mw65_rgb/mw65_rgb.c delete mode 100644 keyboards/mwstudio/mw75/mw75.c delete mode 100644 keyboards/mwstudio/mw75r2/mw75r2.c diff --git a/keyboards/merge/um70/keyboard.json b/keyboards/merge/um70/keyboard.json index 7ebb61f7fe..0499ef5060 100644 --- a/keyboards/merge/um70/keyboard.json +++ b/keyboards/merge/um70/keyboard.json @@ -38,6 +38,91 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 13, "flags": 2}, + {"x": 224, "y": 26, "flags": 2}, + {"x": 148, "y": 39, "flags": 2}, + {"x": 185, "y": 52, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"matrix": [0, 0], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 32, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 192, "y": 16, "flags": 4}, + {"matrix": [4, 5], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 32, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 192, "y": 32, "flags": 4}, + {"matrix": [4, 6], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 32, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 192, "y": 48, "flags": 4}, + {"matrix": [4, 7], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 32, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 64, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 96, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 128, "y": 64, "flags": 1}, + {"matrix": [4, 4], "x": 160, "y": 64, "flags": 1}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 13, "flags": 2}, + {"x": 224, "y": 26, "flags": 2}, + {"x": 148, "y": 39, "flags": 2}, + {"x": 185, "y": 52, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"matrix": [5, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [5, 1], "x": 32, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 64, "y": 0, "flags": 4}, + {"matrix": [5, 3], "x": 96, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 128, "y": 0, "flags": 4}, + {"matrix": [5, 5], "x": 160, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 192, "y": 0, "flags": 4}, + {"matrix": [5, 7], "x": 224, "y": 0, "flags": 1}, + {"matrix": [6, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 32, "y": 16, "flags": 4}, + {"matrix": [6, 2], "x": 64, "y": 16, "flags": 4}, + {"matrix": [6, 3], "x": 96, "y": 16, "flags": 4}, + {"matrix": [6, 4], "x": 128, "y": 16, "flags": 4}, + {"matrix": [6, 5], "x": 160, "y": 16, "flags": 4}, + {"matrix": [6, 6], "x": 192, "y": 16, "flags": 4}, + {"matrix": [6, 7], "x": 223, "y": 16, "flags": 1}, + {"matrix": [8, 7], "x": 224, "y": 16, "flags": 4}, + {"matrix": [7, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [7, 1], "x": 32, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 64, "y": 32, "flags": 4}, + {"matrix": [7, 3], "x": 96, "y": 32, "flags": 4}, + {"matrix": [7, 4], "x": 128, "y": 32, "flags": 4}, + {"matrix": [7, 5], "x": 160, "y": 32, "flags": 4}, + {"matrix": [7, 6], "x": 192, "y": 32, "flags": 1}, + {"matrix": [9, 7], "x": 223, "y": 32, "flags": 4}, + {"matrix": [8, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [8, 1], "x": 32, "y": 48, "flags": 4}, + {"matrix": [8, 2], "x": 64, "y": 48, "flags": 4}, + {"matrix": [8, 3], "x": 96, "y": 48, "flags": 4}, + {"matrix": [8, 4], "x": 128, "y": 48, "flags": 4}, + {"matrix": [8, 5], "x": 160, "y": 48, "flags": 1}, + {"matrix": [8, 6], "x": 192, "y": 48, "flags": 4}, + {"matrix": [9, 0], "x": 0, "y": 46, "flags": 1}, + {"matrix": [9, 1], "x": 32, "y": 46, "flags": 1}, + {"matrix": [9, 2], "x": 64, "y": 64, "flags": 1}, + {"matrix": [9, 3], "x": 96, "y": 64, "flags": 4}, + {"matrix": [9, 4], "x": 128, "y": 64, "flags": 4}, + {"matrix": [9, 5], "x": 160, "y": 64, "flags": 4} + ], "split_count": [39, 44] }, "rgblight": { diff --git a/keyboards/merge/um70/um70.c b/keyboards/merge/um70/um70.c deleted file mode 100644 index b63fcdbedd..0000000000 --- a/keyboards/merge/um70/um70.c +++ /dev/null @@ -1,77 +0,0 @@ -/* Copyright 2021 duoshock - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -/* - Underglow Underglow 13,14 = split bksp, 14 = 2u bksp - 07 08 09 10 11 12 13 01 01 07 08 09 10 11 12 13 14 - 14 15 16 17 18 19 02 02 15 16 17 18 19 20 21 22 23 -20 21 22 23 24 25 26 03 03 24 25 26 27 28 29 30 31 -27 28 29 30 31 32 33 04 04 32 33 34 35 36 37 38 -34 35 36 37 38 39 05 05 39 40 41 42 43 44 - 06 06 -*/ - -#define XX NO_LED - -led_config_t g_led_config = { { - { 6, 7, 8, 9, 10, 11, 12, XX }, - { 13, 14, 15, 16, 17, 18, XX, XX }, - { 20, 21, 22, 23, 24, 25, XX, XX }, - { 27, 28, 29, 30, 31, 32, XX, XX }, - { 34, 35, 36, 37, 38, 19, 26, 33 }, - - { 45, 46, 47, 48, 49, 50, 51, 52 }, - { 53, 54, 55, 56, 57, 58, 59, 60 }, - { 62, 63, 64, 65, 66, 67, 68, XX }, - { 70, 71, 72, 73, 74, 75, 76, 61 }, - { 77, 78, 79, 80, 81, 82, XX, 69 }, -}, { - { 224, 0 }, { 224, 13 }, { 224, 26 }, { 148, 39 }, { 185, 52 }, { 224, 64 }, - - { 32, 0 }, { 64, 0 }, { 96, 0 }, { 128, 0 }, { 160, 0 }, { 192, 0 }, { 224, 0 }, - { 32, 16 }, { 64, 16 }, { 96, 16 }, { 128, 16 }, { 160, 16 }, { 192, 16 }, - { 0, 32 }, { 32, 32 }, { 64, 32 }, { 96, 32 }, { 128, 32 }, { 160, 32 }, { 192, 32 }, - { 0, 48 }, { 32, 48 }, { 64, 48 }, { 96, 48 }, { 128, 48 }, { 160, 48 }, { 192, 48 }, - { 0, 64 }, { 32, 64 }, { 64, 64 }, { 96, 64 }, { 128, 64 }, { 160, 64 }, - - { 224, 0 }, { 224, 13 }, { 224, 26 }, { 148, 39 }, { 185, 52 }, { 224, 64 }, - - { 0, 0 }, { 32, 0 }, { 64, 0 }, { 96, 0 }, { 128, 0 }, { 160, 0 }, { 192, 0 }, { 224, 0 }, - { 0, 16 }, { 32, 16 }, { 64, 16 }, { 96, 16 }, { 128, 16 }, { 160, 16 }, { 192, 16 }, { 223, 16 }, { 224, 16 }, - { 0, 32 }, { 32, 32 }, { 64, 32 }, { 96, 32 }, { 128, 32 }, { 160, 32 }, { 192, 32 }, { 223, 32 }, - { 0, 48 }, { 32, 48 }, { 64, 48 }, { 96, 48 }, { 128, 48 }, { 160, 48 }, { 192, 48 }, - { 0, 46 }, { 32, 46 }, { 64, 64 }, { 96, 64 }, { 128, 64 }, { 160, 64 } - -}, { - 2, 2, 2, 2, 2, 2, - 4, 4, 4, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, - 4, 1, 4, 4, 4, 4, 4, - 4, 1, 4, 4, 4, 4, 4, - 4, 1, 1, 1, 1, 1, - - 2, 2, 2, 2, 2, 2, - 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 4, 4, 4, 4, 1, 4, - 4, 4, 4, 4, 4, 4, 1, 4, - 4, 4, 4, 4, 4, 1, 4, - 1, 1, 1, 4, 4, 4 -} }; - -#endif \ No newline at end of file diff --git a/keyboards/miller/gm862/gm862.c b/keyboards/miller/gm862/gm862.c index 534ef6cdc6..ae275479ba 100644 --- a/keyboards/miller/gm862/gm862.c +++ b/keyboards/miller/gm862/gm862.c @@ -64,26 +64,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {0, SW11_CS13, SW10_CS13, SW12_CS13}, {0, SW8_CS14, SW7_CS14, SW9_CS14}, }; - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, NO_LED,NO_LED, 52 }, - { 53, 54, 55, NO_LED, NO_LED, 56, NO_LED, NO_LED, NO_LED, 57, 58, NO_LED,59, 60 } -}, { - { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 216, 0 }, - { 4, 16 }, { 24, 16 }, { 40, 16 }, { 56, 16 }, { 72, 16 }, { 88, 16 }, { 104, 16 }, { 120, 16 }, { 136, 16 }, { 152, 16 }, { 168, 16 }, { 184, 16 }, { 200, 16 }, { 220, 16 }, - { 6, 32 }, { 28, 32 }, { 44, 32 }, { 60, 32 }, { 76, 32 }, { 92, 32 }, { 108, 32 }, { 124, 32 }, { 140, 32 }, { 156, 32 }, { 172, 32 }, { 188, 32 }, { 204, 32 }, - { 10, 48 }, { 20, 48 }, { 52, 48 }, { 68, 48 }, { 84, 48 }, { 100, 48 }, { 116, 48 }, { 132, 48 }, { 148, 48 }, { 164, 48 }, { 180, 48 }, { 210, 48 }, - { 2, 64 }, { 22, 64 }, { 42, 64 }, { 102, 64 }, { 162, 64 }, { 182, 64 }, { 202, 64 }, { 222, 64 }, -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1 -} }; #endif bool rgb_matrix_indicators_kb(void) { diff --git a/keyboards/miller/gm862/keyboard.json b/keyboards/miller/gm862/keyboard.json index db08a580a9..15c6eb46ae 100644 --- a/keyboards/miller/gm862/keyboard.json +++ b/keyboards/miller/gm862/keyboard.json @@ -39,6 +39,69 @@ "solid_reactive": true }, "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"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": 216, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 204, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 20, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 162, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 182, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 202, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 222, "y": 64, "flags": 1} + ], "sleep": true }, "features": { diff --git a/keyboards/ml/gas75/gas75.c b/keyboards/ml/gas75/gas75.c deleted file mode 100644 index 0744dd8092..0000000000 --- a/keyboards/ml/gas75/gas75.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright 2022 ML - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } -}, { - //Key matrix (0 -> 2) - {224, 0}, {0 , 0}, {6 , 38}, -}, { - //Key matrix (0 -> 2) - 4, 1, 8, -} }; -#endif diff --git a/keyboards/ml/gas75/keyboard.json b/keyboards/ml/gas75/keyboard.json index 280735eb14..ac04365b6b 100644 --- a/keyboards/ml/gas75/keyboard.json +++ b/keyboards/ml/gas75/keyboard.json @@ -58,6 +58,11 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"x": 224, "y": 0, "flags": 4}, + {"x": 0, "y": 0, "flags": 1}, + {"x": 6, "y": 38, "flags": 8} + ], "max_brightness": 200 }, "features": { diff --git a/keyboards/momokai/tap_duo/keyboard.json b/keyboards/momokai/tap_duo/keyboard.json index 1d5302985c..82f8925594 100644 --- a/keyboards/momokai/tap_duo/keyboard.json +++ b/keyboards/momokai/tap_duo/keyboard.json @@ -42,6 +42,12 @@ "solid_splash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 168, "y": 0, "flags": 4}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2} + ], "max_brightness": 200, "sleep": true }, diff --git a/keyboards/momokai/tap_duo/tap_duo.c b/keyboards/momokai/tap_duo/tap_duo.c deleted file mode 100644 index 4e0bc9f42c..0000000000 --- a/keyboards/momokai/tap_duo/tap_duo.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright 2022 Momokai - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, NO_LED, NO_LED, NO_LED} -}, { - // LED Index to Physical Position - { 112, 0}, { 168, 0}, { 0, 64}, { 224, 64} -}, { - // LED Index to Flag - 4,4,2,2 -} }; - -#endif diff --git a/keyboards/momokai/tap_trio/keyboard.json b/keyboards/momokai/tap_trio/keyboard.json index 41da5585f6..536ea91a30 100644 --- a/keyboards/momokai/tap_trio/keyboard.json +++ b/keyboards/momokai/tap_trio/keyboard.json @@ -42,6 +42,13 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 168, "y": 0, "flags": 4}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2} + ], "max_brightness": 200, "sleep": true }, diff --git a/keyboards/momokai/tap_trio/tap_trio.c b/keyboards/momokai/tap_trio/tap_trio.c deleted file mode 100644 index 73957745a9..0000000000 --- a/keyboards/momokai/tap_trio/tap_trio.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright 2022 Momokai - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, NO_LED, NO_LED, NO_LED} -}, { - // LED Index to Physical Position - { 56, 0}, { 112, 0}, { 168, 0}, { 0, 64}, { 224, 64} -}, { - // LED Index to Flag - 4,4,4,2,2 -} }; - -#endif diff --git a/keyboards/monstargear/xo87/rgb/keyboard.json b/keyboards/monstargear/xo87/rgb/keyboard.json index 9ee83deb00..dc4015a266 100644 --- a/keyboards/monstargear/xo87/rgb/keyboard.json +++ b/keyboards/monstargear/xo87/rgb/keyboard.json @@ -58,6 +58,118 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"x": 224, "y": 63, "flags": 2}, + {"matrix": [5, 15], "x": 224, "y": 63, "flags": 1}, + {"matrix": [5, 14], "x": 215, "y": 63, "flags": 1}, + {"matrix": [5, 13], "x": 206, "y": 63, "flags": 1}, + {"matrix": [4, 15], "x": 180, "y": 63, "flags": 1}, + {"matrix": [5, 12], "x": 168, "y": 63, "flags": 1}, + {"matrix": [5, 11], "x": 153, "y": 63, "flags": 1}, + {"matrix": [5, 10], "x": 135, "y": 63, "flags": 1}, + {"matrix": [5, 6], "x": 101, "y": 63, "flags": 4}, + {"matrix": [5, 2], "x": 33, "y": 63, "flags": 1}, + {"matrix": [5, 1], "x": 22, "y": 63, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 63, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 48, "flags": 1}, + {"matrix": [4, 2], "x": 30, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 45, "y": 48, "flags": 4}, + {"matrix": [4, 4], "x": 60, "y": 48, "flags": 4}, + {"matrix": [4, 5], "x": 75, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 90, "y": 48, "flags": 4}, + {"matrix": [4, 7], "x": 105, "y": 48, "flags": 4}, + {"matrix": [4, 8], "x": 120, "y": 48, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 48, "flags": 4}, + {"matrix": [4, 10], "x": 150, "y": 48, "flags": 4}, + {"matrix": [4, 11], "x": 165, "y": 48, "flags": 4}, + {"matrix": [4, 12], "x": 198, "y": 48, "flags": 1}, + {"matrix": [4, 14], "x": 215, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 198, "y": 36, "flags": 1}, + {"matrix": [3, 11], "x": 180, "y": 36, "flags": 4}, + {"matrix": [3, 10], "x": 176, "y": 36, "flags": 4}, + {"matrix": [3, 9], "x": 161, "y": 36, "flags": 4}, + {"matrix": [3, 8], "x": 146, "y": 36, "flags": 4}, + {"matrix": [3, 7], "x": 131, "y": 36, "flags": 4}, + {"matrix": [3, 6], "x": 116, "y": 36, "flags": 4}, + {"matrix": [3, 5], "x": 101, "y": 36, "flags": 4}, + {"matrix": [3, 4], "x": 86, "y": 36, "flags": 4}, + {"matrix": [3, 3], "x": 71, "y": 36, "flags": 4}, + {"matrix": [3, 2], "x": 56, "y": 36, "flags": 4}, + {"matrix": [3, 1], "x": 41, "y": 36, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 36, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 24, "flags": 1}, + {"matrix": [2, 1], "x": 22, "y": 24, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 67, "y": 24, "flags": 4}, + {"matrix": [2, 5], "x": 82, "y": 24, "flags": 4}, + {"matrix": [2, 6], "x": 97, "y": 24, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 24, "flags": 4}, + {"matrix": [2, 8], "x": 127, "y": 24, "flags": 4}, + {"matrix": [2, 9], "x": 142, "y": 24, "flags": 4}, + {"matrix": [2, 10], "x": 157, "y": 24, "flags": 4}, + {"matrix": [2, 11], "x": 172, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 187, "y": 24, "flags": 4}, + {"matrix": [4, 13], "x": 202, "y": 24, "flags": 1}, + {"matrix": [2, 13], "x": 206, "y": 24, "flags": 1}, + {"matrix": [2, 14], "x": 215, "y": 24, "flags": 1}, + {"matrix": [2, 15], "x": 224, "y": 24, "flags": 1}, + {"matrix": [1, 15], "x": 224, "y": 12, "flags": 1}, + {"matrix": [1, 14], "x": 215, "y": 12, "flags": 1}, + {"matrix": [1, 13], "x": 206, "y": 12, "flags": 1}, + {"matrix": [3, 13], "x": 202, "y": 12, "flags": 1}, + {"matrix": [1, 12], "x": 187, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 22, "y": 12, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"x": 0, "y": 0, "flags": 8}, + {"x": 0, "y": 0, "flags": 8}, + {"x": 0, "y": 0, "flags": 8}, + {"matrix": [0, 1], "x": 25, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 55, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 82, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 108, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 120, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 130, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 148, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 172, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 187, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 190, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 195, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 206, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 215, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 1} + ], "max_brightness": 100, "sleep": true }, diff --git a/keyboards/monstargear/xo87/rgb/rgb.c b/keyboards/monstargear/xo87/rgb/rgb.c index c064953444..1e29c8b70b 100644 --- a/keyboards/monstargear/xo87/rgb/rgb.c +++ b/keyboards/monstargear/xo87/rgb/rgb.c @@ -15,56 +15,6 @@ */ #include "quantum.h" -led_config_t g_led_config = { { - // esc f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 prtscr scrl brk - { 91, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109 }, - //tilde 1 2 3 4 5 6 7 8 9 0 - = ins home pgup - { 90, 89, 88, 87, 86, 85, 84, 83, 82, 81, 80, 79, 78, 76, 75, 74 }, - //tab q w e r t y u i o p [ ] del end pgdn - { 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 71, 72, 73 }, - //caps a s d f g h j k l ; ' return bspc - { 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 77, NO_LED, NO_LED }, - //lshift z x c v b n m , . / rshift bsls up rctl - { 31, NO_LED, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 70, 43, 23 }, - //ctrl win alt space alt win mod left down right - { 30, 29, 28, NO_LED, NO_LED, NO_LED, 27, NO_LED, NO_LED, NO_LED, 26, 25, 24, 22, 21, 20 }, - //underglow lights - //{ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 }, - //{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 } - -}, { - // Underglow lights - { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, { 254, 63 }, - // right down left rctl mod rwin ralt space lalt lwin lctl - { 225, 63 }, { 215, 63 }, { 206, 63 }, { 180, 63 }, { 168, 63}, { 153, 63 }, { 135, 63 }, { 101, 63 }, { 33, 63 }, { 22, 63 }, { 0, 63 }, - // lshift z x c v b n m comma period question rshift up - { 0, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 198, 48 }, { 215, 48}, - // return ' ; l k j h g f d s a capslock - { 198, 36 }, { 180, 36 }, { 176, 36 }, { 161, 36 }, { 146, 36 }, { 131, 36 }, { 116, 36 }, { 101, 36 }, { 86, 36 }, { 71, 36 }, { 56, 36 }, { 41, 36 }, { 0, 36 }, - // tab q w e r t y u i o p [ ] backslash del end pgdn - { 0, 24 }, { 22, 24}, { 37, 24 }, { 52, 24 }, { 67, 24 }, { 82, 24 }, { 97, 24 }, { 112, 24 }, { 127, 24 }, { 142, 24 }, { 157, 24 }, { 172, 24 }, { 187, 24 }, { 202, 24}, { 206, 24 }, {215, 24}, { 225, 24 }, - // pgup home ins backspace = - 0 9 8 7 6 5 4 3 2 1 tilde - { 225, 12 }, {215, 12}, { 206, 12 }, { 202, 12}, { 187, 12 }, { 172, 12 }, { 157, 12 }, { 142, 12 }, { 127, 12 }, { 112, 12 }, { 97, 12 }, { 82, 12 }, { 67, 12 }, { 52, 12 }, { 37, 12 }, { 22, 12}, { 0, 12 }, - // esc ind1 ind2 ind3 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 prtscr scrlck pause - { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 25, 0 }, { 40, 0 }, { 55, 0 }, { 82, 0 }, { 108, 0 }, { 120, 0 }, { 130, 0 }, { 148, 0 }, { 172, 0 }, { 187, 0 }, { 190, 0 }, { 195, 0 }, { 206, 0 }, { 215, 0}, { 225, 0 } -}, { - // underglow - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - // bottom row - 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, - // 2nd row up - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - // 3rd row up - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // 4th row up - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - // 5th row up - 1, 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - // top row - 1, 8, 8, 8, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1 -} }; - - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/mss_studio/m63_rgb/keyboard.json b/keyboards/mss_studio/m63_rgb/keyboard.json index b798df21dd..5aa3a753e2 100644 --- a/keyboards/mss_studio/m63_rgb/keyboard.json +++ b/keyboards/mss_studio/m63_rgb/keyboard.json @@ -61,6 +61,83 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"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": 216, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 186, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 176, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4}, + {"x": 216, "y": 56, "flags": 2}, + {"x": 181, "y": 57, "flags": 2}, + {"x": 138, "y": 59, "flags": 2}, + {"x": 105, "y": 58, "flags": 2}, + {"x": 52, "y": 60, "flags": 2}, + {"x": 10, "y": 60, "flags": 2}, + {"x": 20, "y": 12, "flags": 2}, + {"x": 54, "y": 12, "flags": 2}, + {"x": 102, "y": 10, "flags": 2}, + {"x": 145, "y": 13, "flags": 2}, + {"x": 182, "y": 9, "flags": 2}, + {"x": 211, "y": 10, "flags": 2} + ], "max_brightness": 200 }, "features": { diff --git a/keyboards/mss_studio/m63_rgb/m63_rgb.c b/keyboards/mss_studio/m63_rgb/m63_rgb.c deleted file mode 100644 index 71a43720cc..0000000000 --- a/keyboards/mss_studio/m63_rgb/m63_rgb.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2021 Mss Studio - * Copyright 2022 HorrorTroll - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, NO_LED, 52, 53 }, - { 54, 55, 56, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 58, 59, 60, 61, 62 } -}, { - // Key matrix (0 -> 62) - {0 , 0}, {16 , 0}, {32 , 0}, {48 , 0}, {64 , 0}, {80 , 0}, {96 , 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {216, 0}, - {4 , 16}, {24 , 16}, {40 , 16}, {56 , 16}, {72 , 16}, {88 , 16}, {104, 16}, {120, 16}, {136, 16}, {152, 16}, {168, 16}, {184, 16}, {200, 16}, {220, 16}, - {6 , 32}, {28 , 32}, {44 , 32}, {60 , 32}, {76 , 32}, {92 , 32}, {108, 32}, {124, 32}, {140, 32}, {156, 32}, {172, 32}, {188, 32}, {214, 32}, - {10 , 48}, {36 , 48}, {52 , 48}, {68 , 48}, {84 , 48}, {100, 48}, {116, 48}, {132, 48}, {148, 48}, {164, 48}, {186, 48}, {208, 48}, {224, 48}, - {2 , 64}, {22 , 64}, {42 , 64}, {102, 64}, {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64}, - - // Underglow (63 -> 74) - {216, 56}, {181, 57}, {138, 59}, {105, 58}, {52 , 60}, {10 , 60}, - {20 , 12}, {54 , 12}, {102, 10}, {145, 13}, {182, 9}, {211, 10}, -}, { - // Key matrix (0 -> 62) - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, - 1, 1, 1, 4, 1, 1, 4, 4, 4, - - // Underglow (63 -> 74) - 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2 -} }; -#endif diff --git a/keyboards/mss_studio/m64_rgb/keyboard.json b/keyboards/mss_studio/m64_rgb/keyboard.json index 083afec8c7..b2aa92d8f2 100644 --- a/keyboards/mss_studio/m64_rgb/keyboard.json +++ b/keyboards/mss_studio/m64_rgb/keyboard.json @@ -61,6 +61,84 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"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": 216, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 8}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 8, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 192, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 176, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4}, + {"x": 216, "y": 56, "flags": 2}, + {"x": 181, "y": 57, "flags": 2}, + {"x": 138, "y": 59, "flags": 2}, + {"x": 105, "y": 58, "flags": 2}, + {"x": 52, "y": 60, "flags": 2}, + {"x": 10, "y": 60, "flags": 2}, + {"x": 20, "y": 12, "flags": 2}, + {"x": 54, "y": 12, "flags": 2}, + {"x": 102, "y": 10, "flags": 2}, + {"x": 145, "y": 13, "flags": 2}, + {"x": 182, "y": 9, "flags": 2}, + {"x": 211, "y": 10, "flags": 2} + ], "max_brightness": 200 }, "features": { diff --git a/keyboards/mss_studio/m64_rgb/m64_rgb.c b/keyboards/mss_studio/m64_rgb/m64_rgb.c deleted file mode 100644 index f9b2778371..0000000000 --- a/keyboards/mss_studio/m64_rgb/m64_rgb.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2021 Mss Studio - * Copyright 2022 HorrorTroll - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54 }, - { 55, 56, 57, NO_LED, NO_LED, 58, NO_LED, NO_LED, NO_LED, 59, 60, 61, 62, 63 } -}, { - // Key matrix (0 -> 63) - {0 , 0}, {16 , 0}, {32 , 0}, {48 , 0}, {64 , 0}, {80 , 0}, {96 , 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {216, 0}, - {4 , 16}, {24 , 16}, {40 , 16}, {56 , 16}, {72 , 16}, {88 , 16}, {104, 16}, {120, 16}, {136, 16}, {152, 16}, {168, 16}, {184, 16}, {200, 16}, {220, 16}, - {6 , 32}, {28 , 32}, {44 , 32}, {60 , 32}, {76 , 32}, {92 , 32}, {108, 32}, {124, 32}, {140, 32}, {156, 32}, {172, 32}, {188, 32}, {214, 32}, - {8 , 48}, {32 , 48}, {48 , 48}, {64 , 48}, {80 , 48}, {96 , 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, - {2 , 64}, {22 , 64}, {42 , 64}, {102, 64}, {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64}, - - // Underglow (64 -> 75) - {216, 56}, {181, 57}, {138, 59}, {105, 58}, {52 , 60}, {10 , 60}, - {20 , 12}, {54 , 12}, {102, 10}, {145, 13}, {182, 9}, {211, 10}, -}, { - // Key matrix (0 -> 63) - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, - 1, 1, 1, 4, 1, 1, 4, 4, 4, - - // Underglow (64 -> 75) - 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2 -} }; -#endif diff --git a/keyboards/mwstudio/mw65_rgb/keyboard.json b/keyboards/mwstudio/mw65_rgb/keyboard.json index ce8e3f978c..5508e3b663 100644 --- a/keyboards/mwstudio/mw65_rgb/keyboard.json +++ b/keyboards/mwstudio/mw65_rgb/keyboard.json @@ -54,6 +54,91 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"x": 180, "y": 52, "flags": 2}, + {"x": 146, "y": 52, "flags": 2}, + {"x": 86, "y": 52, "flags": 2}, + {"x": 45, "y": 52, "flags": 2}, + {"x": 7, "y": 52, "flags": 2}, + {"x": 7, "y": 36, "flags": 2}, + {"x": 7, "y": 20, "flags": 2}, + {"x": 7, "y": 4, "flags": 2}, + {"x": 45, "y": 4, "flags": 2}, + {"x": 86, "y": 4, "flags": 2}, + {"x": 146, "y": 4, "flags": 2}, + {"x": 180, "y": 4, "flags": 2}, + {"x": 217, "y": 4, "flags": 2}, + {"x": 217, "y": 20, "flags": 2}, + {"x": 217, "y": 36, "flags": 2}, + {"x": 217, "y": 52, "flags": 2}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 209, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 194, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 173, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 156, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 36, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 19, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 8, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 31, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 46, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 61, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 76, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 91, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 106, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 121, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 136, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 151, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 166, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 188, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 200, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 175, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 145, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 130, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 115, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 100, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 85, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 70, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 55, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 25, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 5, "y": 32, "flags": 8}, + {"matrix": [1, 0], "x": 3, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 21, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 36, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 51, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 66, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 81, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 111, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 126, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 141, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 156, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 171, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 186, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 205, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1} + ], "max_brightness": 200 }, "features": { diff --git a/keyboards/mwstudio/mw65_rgb/mw65_rgb.c b/keyboards/mwstudio/mw65_rgb/mw65_rgb.c deleted file mode 100644 index 0cd8fdaa75..0000000000 --- a/keyboards/mwstudio/mw65_rgb/mw65_rgb.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2021 TW59420 - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68 }, - { 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67 }, - { 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, NO_LED, 40, 39 }, - { 25, NO_LED, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38 }, - { 24, 23, 22, NO_LED, NO_LED, NO_LED, 21, NO_LED, NO_LED, NO_LED, 20, 19, 18, 17, 16 } -}, { - //Underglow (0 -> 15) - {180, 52}, {146, 52}, {86 , 52}, {45 , 52}, {7 , 52}, {7 , 36}, {7 , 20}, {7 , 4}, {45 , 4}, {86 , 4}, {146, 4}, {180, 4}, {217, 4}, {217, 20}, {217, 36}, {217, 52}, - - //Key matrix (16 -> 83) - {224, 64}, {209, 64}, {194, 64}, {173, 64}, {156, 64}, {96 , 64}, {36 , 64}, {19 , 64}, {2 , 64}, - {8 , 48}, {31 , 48}, {46 , 48}, {61 , 48}, {76 , 48}, {91 , 48}, {106, 48}, {121, 48}, {136, 48}, {151, 48}, {166, 48}, {188, 48}, {210, 48}, {224, 48}, - {224, 32}, {200, 32}, {175, 32}, {160, 32}, {145, 32}, {130, 32}, {115, 32}, {100, 32}, {85 , 32}, {70 , 32}, {55 , 32}, {40 , 32}, {25 , 32}, {5 , 32}, - {3 , 16}, {21 , 16}, {36 , 16}, {51 , 16}, {66 , 16}, {81 , 16}, {96 , 16}, {111, 16}, {126, 16}, {141, 16}, {156, 16}, {171, 16}, {186, 16}, {205, 16}, {224, 16}, - {224, 0}, {202, 0}, {180, 0}, {165, 0}, {150, 0}, {135, 0}, {120, 0}, {105, 0}, {90 , 0}, {75 , 0}, {60 , 0}, {45 , 0}, {30 , 0}, {15 , 0}, {0 , 0}, -}, { - //Underglow (0 -> 15) - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - - //Key matrix (16 -> 82) - 4, 4, 4, 1, 1, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, - 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, -} }; -#endif diff --git a/keyboards/mwstudio/mw75/keyboard.json b/keyboards/mwstudio/mw75/keyboard.json index 489e711c5b..4096bd943a 100644 --- a/keyboards/mwstudio/mw75/keyboard.json +++ b/keyboards/mwstudio/mw75/keyboard.json @@ -51,6 +51,105 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [5, 14], "x": 217, "y": 60, "flags": 1}, + {"matrix": [5, 13], "x": 203, "y": 60, "flags": 1}, + {"matrix": [5, 12], "x": 189, "y": 60, "flags": 1}, + {"matrix": [5, 11], "x": 166, "y": 60, "flags": 1}, + {"matrix": [5, 10], "x": 150, "y": 60, "flags": 1}, + {"matrix": [5, 6], "x": 95, "y": 60, "flags": 1}, + {"matrix": [5, 2], "x": 40, "y": 60, "flags": 1}, + {"matrix": [5, 1], "x": 24, "y": 60, "flags": 1}, + {"matrix": [5, 0], "x": 8, "y": 60, "flags": 1}, + {"matrix": [4, 14], "x": 217, "y": 50, "flags": 1}, + {"matrix": [4, 13], "x": 203, "y": 50, "flags": 1}, + {"matrix": [4, 12], "x": 184, "y": 50, "flags": 1}, + {"matrix": [4, 11], "x": 165, "y": 50, "flags": 1}, + {"matrix": [4, 10], "x": 151, "y": 50, "flags": 1}, + {"matrix": [4, 9], "x": 137, "y": 50, "flags": 1}, + {"matrix": [4, 8], "x": 123, "y": 50, "flags": 1}, + {"matrix": [4, 7], "x": 109, "y": 50, "flags": 1}, + {"matrix": [4, 6], "x": 95, "y": 50, "flags": 1}, + {"matrix": [4, 5], "x": 81, "y": 50, "flags": 1}, + {"matrix": [4, 4], "x": 67, "y": 50, "flags": 1}, + {"matrix": [4, 3], "x": 53, "y": 50, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 50, "flags": 1}, + {"matrix": [4, 0], "x": 17, "y": 50, "flags": 1}, + {"matrix": [3, 14], "x": 217, "y": 40, "flags": 1}, + {"matrix": [3, 13], "x": 195, "y": 40, "flags": 1}, + {"matrix": [3, 11], "x": 172, "y": 40, "flags": 1}, + {"matrix": [3, 10], "x": 158, "y": 40, "flags": 1}, + {"matrix": [3, 9], "x": 144, "y": 40, "flags": 1}, + {"matrix": [3, 8], "x": 130, "y": 40, "flags": 1}, + {"matrix": [3, 7], "x": 116, "y": 40, "flags": 1}, + {"matrix": [3, 6], "x": 102, "y": 40, "flags": 1}, + {"matrix": [3, 5], "x": 88, "y": 40, "flags": 1}, + {"matrix": [3, 4], "x": 74, "y": 40, "flags": 1}, + {"matrix": [3, 3], "x": 60, "y": 40, "flags": 1}, + {"matrix": [3, 2], "x": 46, "y": 40, "flags": 1}, + {"matrix": [3, 1], "x": 32, "y": 40, "flags": 1}, + {"matrix": [3, 0], "x": 13, "y": 40, "flags": 1}, + {"matrix": [2, 14], "x": 217, "y": 30, "flags": 1}, + {"matrix": [2, 13], "x": 199, "y": 30, "flags": 1}, + {"matrix": [2, 12], "x": 181, "y": 30, "flags": 1}, + {"matrix": [2, 11], "x": 165, "y": 30, "flags": 1}, + {"matrix": [2, 10], "x": 151, "y": 30, "flags": 1}, + {"matrix": [2, 9], "x": 137, "y": 30, "flags": 1}, + {"matrix": [2, 8], "x": 123, "y": 30, "flags": 1}, + {"matrix": [2, 7], "x": 109, "y": 30, "flags": 1}, + {"matrix": [2, 6], "x": 95, "y": 30, "flags": 1}, + {"matrix": [2, 5], "x": 81, "y": 30, "flags": 1}, + {"matrix": [2, 4], "x": 67, "y": 30, "flags": 1}, + {"matrix": [2, 3], "x": 53, "y": 30, "flags": 1}, + {"matrix": [2, 2], "x": 39, "y": 30, "flags": 1}, + {"matrix": [2, 1], "x": 25, "y": 30, "flags": 1}, + {"matrix": [2, 0], "x": 9, "y": 30, "flags": 1}, + {"matrix": [1, 14], "x": 217, "y": 20, "flags": 1}, + {"matrix": [1, 13], "x": 196, "y": 20, "flags": 1}, + {"matrix": [1, 12], "x": 175, "y": 20, "flags": 1}, + {"matrix": [1, 11], "x": 161, "y": 20, "flags": 1}, + {"matrix": [1, 10], "x": 147, "y": 20, "flags": 1}, + {"matrix": [1, 9], "x": 133, "y": 20, "flags": 1}, + {"matrix": [1, 8], "x": 119, "y": 20, "flags": 1}, + {"matrix": [1, 7], "x": 105, "y": 20, "flags": 1}, + {"matrix": [1, 6], "x": 91, "y": 20, "flags": 1}, + {"matrix": [1, 5], "x": 77, "y": 20, "flags": 1}, + {"matrix": [1, 4], "x": 63, "y": 20, "flags": 1}, + {"matrix": [1, 3], "x": 49, "y": 20, "flags": 1}, + {"matrix": [1, 2], "x": 35, "y": 20, "flags": 1}, + {"matrix": [1, 1], "x": 21, "y": 20, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 20, "flags": 1}, + {"matrix": [0, 14], "x": 217, "y": 5, "flags": 1}, + {"matrix": [0, 13], "x": 196, "y": 5, "flags": 1}, + {"matrix": [0, 12], "x": 182, "y": 5, "flags": 1}, + {"matrix": [0, 11], "x": 168, "y": 5, "flags": 1}, + {"matrix": [0, 10], "x": 154, "y": 5, "flags": 1}, + {"matrix": [0, 9], "x": 133, "y": 5, "flags": 1}, + {"matrix": [0, 8], "x": 119, "y": 5, "flags": 1}, + {"matrix": [0, 7], "x": 105, "y": 5, "flags": 1}, + {"matrix": [0, 6], "x": 91, "y": 5, "flags": 1}, + {"matrix": [0, 5], "x": 70, "y": 5, "flags": 1}, + {"matrix": [0, 4], "x": 56, "y": 5, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 5, "flags": 1}, + {"matrix": [0, 2], "x": 28, "y": 5, "flags": 1}, + {"matrix": [0, 1], "x": 7, "y": 5, "flags": 1}, + {"matrix": [0, 0], "x": 14, "y": 14, "flags": 1}, + {"matrix": [6, 0], "x": 42, "y": 14, "flags": 1}, + {"matrix": [6, 1], "x": 98, "y": 14, "flags": 1}, + {"matrix": [6, 2], "x": 154, "y": 14, "flags": 1}, + {"matrix": [6, 3], "x": 182, "y": 14, "flags": 1}, + {"matrix": [6, 4], "x": 210, "y": 14, "flags": 1}, + {"matrix": [6, 5], "x": 210, "y": 25, "flags": 1}, + {"matrix": [6, 6], "x": 210, "y": 40, "flags": 1}, + {"matrix": [6, 7], "x": 210, "y": 55, "flags": 1}, + {"matrix": [6, 8], "x": 182, "y": 55, "flags": 1}, + {"matrix": [6, 9], "x": 126, "y": 55, "flags": 1}, + {"matrix": [6, 10], "x": 98, "y": 55, "flags": 1}, + {"matrix": [6, 11], "x": 42, "y": 55, "flags": 1}, + {"matrix": [6, 12], "x": 14, "y": 55, "flags": 1}, + {"matrix": [6, 13], "x": 14, "y": 40, "flags": 1}, + {"matrix": [6, 14], "x": 14, "y": 25, "flags": 1} + ], "max_brightness": 200 }, "features": { diff --git a/keyboards/mwstudio/mw75/mw75.c b/keyboards/mwstudio/mw75/mw75.c deleted file mode 100644 index dda51cb971..0000000000 --- a/keyboards/mwstudio/mw75/mw75.c +++ /dev/null @@ -1,47 +0,0 @@ -/* Copyright 2021 TW59420 - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67 }, - { 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52 }, - { 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37 }, - { 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, NO_LED, 24, 23 }, - { 22, NO_LED, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9 }, - { 8, 7, 6, NO_LED, NO_LED, NO_LED, 5, NO_LED, NO_LED, NO_LED, 4, 3, 2, 1, 0 }, - { 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96 } -}, { - { 217, 60 }, { 203, 60 }, { 189, 60 }, { 166, 60 }, { 150, 60 }, { 95, 60 }, { 40, 60 }, { 24, 60 }, { 8, 60 }, - { 217, 50 }, { 203, 50 }, { 184, 50 }, { 165, 50 }, { 151, 50 }, { 137, 50 }, { 123, 50 }, { 109, 50 }, { 95, 50 }, { 81, 50 }, { 67, 50 }, { 53, 50 }, { 39, 50 }, { 17, 50 }, - { 217, 40 }, { 195, 40 }, { 172, 40 }, { 158, 40 }, { 144, 40 }, { 130, 40 }, { 116, 40 }, { 102, 40 }, { 88, 40 }, { 74, 40 }, { 60, 40 }, { 46, 40 }, { 32, 40 }, { 13, 40 }, - { 217, 30 }, { 199, 30 }, { 181, 30 }, { 165, 30 }, { 151, 30 }, { 137, 30 }, { 123, 30 }, { 109, 30 }, { 95, 30 }, { 81, 30 }, { 67, 30 }, { 53, 30 }, { 39, 30 }, { 25, 30 }, { 9, 30 }, - { 217, 20 }, { 196, 20 }, { 175, 20 }, { 161, 20 }, { 147, 20 }, { 133, 20 }, { 119, 20 }, { 105, 20 }, { 91, 20 }, { 77, 20 }, { 63, 20 }, { 49, 20 }, { 35, 20 }, { 21, 20 }, { 7, 20 }, - { 217, 5 }, { 196, 5 }, { 182, 5 }, { 168, 5 }, { 154, 5 }, { 133, 5 }, { 119, 5 }, { 105, 5 }, { 91, 5 }, { 70, 5 }, { 56, 5 }, { 42, 5 }, { 28, 5 }, { 7, 5 }, - - { 14, 14 }, { 42, 14 }, { 98, 14 }, { 154, 14 }, { 182, 14 }, { 210, 14 }, { 210, 25 }, { 210, 40 }, - { 210, 55 },{ 182, 55 },{ 126, 55 },{ 98, 55 }, { 42, 55 }, { 14, 55 }, { 14, 40 }, { 14, 25 } -}, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -} }; -#endif diff --git a/keyboards/mwstudio/mw75r2/keyboard.json b/keyboards/mwstudio/mw75r2/keyboard.json index 10c6a226ca..6cb4269400 100644 --- a/keyboards/mwstudio/mw75r2/keyboard.json +++ b/keyboards/mwstudio/mw75r2/keyboard.json @@ -39,7 +39,30 @@ "pixel_fractal": true, "pixel_rain": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"x": 105, "y": 60, "flags": 1}, + {"x": 70, "y": 60, "flags": 1}, + {"x": 35, "y": 60, "flags": 1}, + {"x": 0, "y": 60, "flags": 1}, + {"x": 0, "y": 40, "flags": 1}, + {"x": 0, "y": 20, "flags": 1}, + {"x": 0, "y": 0, "flags": 1}, + {"x": 42, "y": 0, "flags": 1}, + {"x": 84, "y": 0, "flags": 1}, + {"x": 126, "y": 0, "flags": 1}, + {"x": 168, "y": 0, "flags": 1}, + {"x": 210, "y": 0, "flags": 1}, + {"x": 210, "y": 20, "flags": 1}, + {"x": 210, "y": 40, "flags": 1}, + {"x": 40, "y": 20, "flags": 1}, + {"x": 120, "y": 20, "flags": 1}, + {"x": 40, "y": 40, "flags": 1}, + {"x": 120, "y": 40, "flags": 1}, + {"x": 210, "y": 60, "flags": 1}, + {"x": 175, "y": 60, "flags": 1}, + {"x": 140, "y": 60, "flags": 1} + ] }, "features": { "bootmagic": true, diff --git a/keyboards/mwstudio/mw75r2/mw75r2.c b/keyboards/mwstudio/mw75r2/mw75r2.c deleted file mode 100644 index ca058e9d8d..0000000000 --- a/keyboards/mwstudio/mw75r2/mw75r2.c +++ /dev/null @@ -1,31 +0,0 @@ -/* Copyright 2021 TW59420 - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED }, - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } -}, { - { 105, 60 }, { 70, 60 }, { 35, 60 }, { 0, 60 }, { 0, 40 }, { 0, 20 }, { 0, 0 }, { 42, 0 }, { 84, 0 }, { 126, 0 }, { 168, 0 }, { 210, 0 }, { 210, 20 }, { 210, 40 }, { 40, 20 }, { 120, 20 }, { 40, 40 }, { 120, 40 }, { 210, 60 }, { 175, 60 },{ 140, 60 } -}, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -} }; -#endif From 04978d490ab785e42c0dbb7c79954e6a1a5ce80b Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 03:09:38 -0600 Subject: [PATCH 040/255] Migrate `g_led_config` to DD (M2) (#25619) --- keyboards/melgeek/mach80/rev1/keyboard.json | 103 +++++++++++++++++- keyboards/melgeek/mach80/rev1/rev1.c | 25 ----- keyboards/melgeek/mach80/rev2/keyboard.json | 100 ++++++++++++++++- keyboards/melgeek/mach80/rev2/rev2.c | 26 ----- keyboards/melgeek/mj61/rev1/keyboard.json | 69 +++++++++++- keyboards/melgeek/mj61/rev1/rev1.c | 24 ---- keyboards/melgeek/mj61/rev2/keyboard.json | 77 ++++++++++++- keyboards/melgeek/mj61/rev2/rev2.c | 24 ---- keyboards/melgeek/mj63/rev1/keyboard.json | 71 +++++++++++- keyboards/melgeek/mj63/rev1/rev1.c | 24 ---- keyboards/melgeek/mj63/rev2/keyboard.json | 77 ++++++++++++- keyboards/melgeek/mj63/rev2/rev2.c | 24 ---- keyboards/melgeek/mj64/rev1/keyboard.json | 70 +++++++++++- keyboards/melgeek/mj64/rev1/rev1.c | 23 ---- keyboards/melgeek/mj64/rev2/keyboard.json | 72 +++++++++++- keyboards/melgeek/mj64/rev2/rev2.c | 24 ---- keyboards/melgeek/mj64/rev3/keyboard.json | 78 ++++++++++++- keyboards/melgeek/mj64/rev3/rev3.c | 24 ---- keyboards/melgeek/mj65/rev3/keyboard.json | 78 +++++++++++++ keyboards/melgeek/mj65/rev3/rev3.c | 26 +---- keyboards/melgeek/mojo68/rev1/keyboard.json | 70 ++++++++++++ keyboards/melgeek/mojo68/rev1/rev1.c | 23 ---- keyboards/melgeek/mojo75/rev1/keyboard.json | 94 ++++++++++++++++ keyboards/melgeek/mojo75/rev1/rev1.c | 27 ----- keyboards/melgeek/tegic/rev1/keyboard.json | 93 ++++++++++++++++ keyboards/melgeek/tegic/rev1/rev1.c | 25 ----- keyboards/melgeek/z70ultra/rev1/keyboard.json | 71 ++++++++++++ keyboards/melgeek/z70ultra/rev1/rev1.c | 25 ----- 28 files changed, 1115 insertions(+), 352 deletions(-) diff --git a/keyboards/melgeek/mach80/rev1/keyboard.json b/keyboards/melgeek/mach80/rev1/keyboard.json index 78a8dbf0f6..7faa507606 100644 --- a/keyboards/melgeek/mach80/rev1/keyboard.json +++ b/keyboards/melgeek/mach80/rev1/keyboard.json @@ -13,5 +13,106 @@ "cols": ["B0", "B1", "B2", "B3", "D2", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "D3"], "rows": ["F0", "F1", "F4", "F5", "F6", "E6"] }, - "diode_direction": "ROW2COL" + "diode_direction": "ROW2COL", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 12, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 24, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 36, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 72, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 108, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 156, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 168, "y": 0, "flags": 4}, + {"matrix": [3, 13], "x": 180, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 12, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 48, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 60, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 72, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 84, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 96, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 108, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 120, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 132, "y": 12, "flags": 4}, + {"matrix": [1, 12], "x": 144, "y": 12, "flags": 4}, + {"x": 156, "y": 12, "flags": 4}, + {"matrix": [1, 13], "x": 168, "y": 12, "flags": 4}, + {"x": 180, "y": 12, "flags": 4}, + {"matrix": [1, 14], "x": 192, "y": 12, "flags": 4}, + {"matrix": [1, 15], "x": 204, "y": 12, "flags": 4}, + {"matrix": [3, 14], "x": 216, "y": 12, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 24, "flags": 4}, + {"matrix": [2, 1], "x": 12, "y": 24, "flags": 4}, + {"matrix": [2, 2], "x": 24, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 48, "y": 24, "flags": 4}, + {"matrix": [2, 5], "x": 60, "y": 24, "flags": 4}, + {"matrix": [2, 6], "x": 72, "y": 24, "flags": 4}, + {"matrix": [2, 7], "x": 84, "y": 24, "flags": 4}, + {"matrix": [2, 8], "x": 96, "y": 24, "flags": 4}, + {"matrix": [2, 9], "x": 108, "y": 24, "flags": 4}, + {"matrix": [2, 10], "x": 120, "y": 24, "flags": 4}, + {"matrix": [2, 11], "x": 132, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 144, "y": 24, "flags": 4}, + {"matrix": [2, 13], "x": 156, "y": 24, "flags": 4}, + {"matrix": [2, 14], "x": 168, "y": 24, "flags": 4}, + {"matrix": [2, 15], "x": 180, "y": 24, "flags": 4}, + {"matrix": [3, 15], "x": 192, "y": 24, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 36, "flags": 4}, + {"matrix": [3, 1], "x": 12, "y": 36, "flags": 4}, + {"matrix": [3, 2], "x": 24, "y": 36, "flags": 4}, + {"matrix": [3, 3], "x": 36, "y": 36, "flags": 4}, + {"matrix": [3, 4], "x": 48, "y": 36, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 36, "flags": 4}, + {"matrix": [3, 6], "x": 72, "y": 36, "flags": 4}, + {"matrix": [3, 7], "x": 84, "y": 36, "flags": 4}, + {"matrix": [3, 8], "x": 96, "y": 36, "flags": 4}, + {"matrix": [3, 9], "x": 108, "y": 36, "flags": 4}, + {"matrix": [3, 10], "x": 120, "y": 36, "flags": 4}, + {"matrix": [3, 11], "x": 132, "y": 36, "flags": 4}, + {"x": 144, "y": 36, "flags": 4}, + {"matrix": [3, 12], "x": 156, "y": 36, "flags": 4}, + {"x": 168, "y": 36, "flags": 4}, + {"x": 0, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 12, "y": 48, "flags": 4}, + {"x": 24, "y": 48, "flags": 4}, + {"matrix": [4, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [4, 2], "x": 48, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 60, "y": 48, "flags": 4}, + {"matrix": [4, 4], "x": 72, "y": 48, "flags": 4}, + {"matrix": [4, 5], "x": 84, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [4, 7], "x": 108, "y": 48, "flags": 4}, + {"matrix": [4, 8], "x": 120, "y": 48, "flags": 4}, + {"matrix": [4, 9], "x": 132, "y": 48, "flags": 4}, + {"matrix": [4, 10], "x": 144, "y": 48, "flags": 4}, + {"x": 156, "y": 48, "flags": 4}, + {"matrix": [4, 11], "x": 168, "y": 48, "flags": 4}, + {"x": 180, "y": 48, "flags": 4}, + {"matrix": [4, 14], "x": 192, "y": 48, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 60, "flags": 4}, + {"matrix": [5, 1], "x": 12, "y": 60, "flags": 4}, + {"matrix": [5, 2], "x": 24, "y": 60, "flags": 4}, + {"x": 36, "y": 60, "flags": 4}, + {"matrix": [5, 5], "x": 48, "y": 60, "flags": 4}, + {"x": 60, "y": 60, "flags": 4}, + {"matrix": [5, 9], "x": 72, "y": 60, "flags": 4}, + {"matrix": [5, 10], "x": 84, "y": 60, "flags": 4}, + {"matrix": [5, 11], "x": 96, "y": 60, "flags": 4}, + {"matrix": [5, 12], "x": 108, "y": 60, "flags": 4}, + {"matrix": [5, 13], "x": 120, "y": 60, "flags": 4}, + {"matrix": [5, 14], "x": 132, "y": 60, "flags": 4}, + {"matrix": [5, 15], "x": 144, "y": 60, "flags": 4} + ], + } } diff --git a/keyboards/melgeek/mach80/rev1/rev1.c b/keyboards/melgeek/mach80/rev1/rev1.c index a4b49610cc..aad1b71833 100755 --- a/keyboards/melgeek/mach80/rev1/rev1.c +++ b/keyboards/melgeek/mach80/rev1/rev1.c @@ -118,31 +118,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW6_CS39, SW6_CS38, SW6_CS37}, /* RGB111 */ {0, SW7_CS39, SW7_CS38, SW7_CS37}, /* RGB112 */ }; -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 */ - { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, /* R0 */ - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 33 }, /* R1 */ - { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50 }, /* R2 */ - { 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 15, 34, 51 }, /* R3 */ - { 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, NO_LED, NO_LED, 83, NO_LED }, /* R4 */ - { 84, 85, 86, NO_LED, NO_LED, 88, NO_LED, NO_LED, NO_LED, 90, 91, 92, 93, 94, 95, 96 } /* R5 */ - }, { - {0, 0}, {12, 0}, {24, 0}, {36, 0}, {48, 0}, {60, 0}, {72, 0}, {84, 0}, {96, 0}, {108, 0}, {120, 0}, {132, 0}, {144, 0}, {156, 0}, {168, 0}, {180, 0}, //16 - {0, 12}, {12, 12}, {24, 12}, {36, 12}, {48, 12}, {60, 12}, {72, 12}, {84, 12}, {96, 12}, {108, 12}, {120, 12}, {132, 12}, {144, 12}, {156, 12}, {168, 12}, {180, 12}, {192, 12}, {204, 12}, {216, 12}, //19 - {0, 24}, {12, 24}, {24, 24}, {36, 24}, {48, 24}, {60, 24}, {72, 24}, {84, 24}, {96, 24}, {108, 24}, {120, 24}, {132, 24}, {144, 24}, {156, 24}, {168, 24}, {180, 24}, {192, 24}, //17 - {0, 36}, {12, 36}, {24, 36}, {36, 36}, {48, 36}, {60, 36}, {72, 36}, {84, 36}, {96, 36}, {108, 36}, {120, 36}, {132, 36}, {144, 36}, {156, 36}, {168, 36}, //15 - {0, 48}, {12, 48}, {24, 48}, {36, 48}, {48, 48}, {60, 48}, {72, 48}, {84, 48}, {96, 48}, {108, 48}, {120, 48}, {132, 48}, {144, 48}, {156, 48}, {168, 48}, {180, 48}, {192, 48}, //17 - {0, 60}, {12, 60}, {24, 60}, {36, 60}, {48, 60}, {60, 60}, {72, 60}, {84, 60}, {96, 60}, {108, 60}, {120, 60}, {132, 60}, {144, 60} //13 - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; const is31fl3741_led_t g_is31_indicator_leds[3] = { {0, SW1_CS6, SW1_CS5, SW1_CS4}, /* RGB107 */ diff --git a/keyboards/melgeek/mach80/rev2/keyboard.json b/keyboards/melgeek/mach80/rev2/keyboard.json index 78a8dbf0f6..039e1711fd 100644 --- a/keyboards/melgeek/mach80/rev2/keyboard.json +++ b/keyboards/melgeek/mach80/rev2/keyboard.json @@ -13,5 +13,103 @@ "cols": ["B0", "B1", "B2", "B3", "D2", "D5", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "D3"], "rows": ["F0", "F1", "F4", "F5", "F6", "E6"] }, - "diode_direction": "ROW2COL" + "diode_direction": "ROW2COL", + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 12, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 24, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 36, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 72, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 108, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 156, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 168, "y": 0, "flags": 4}, + {"matrix": [3, 13], "x": 180, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 12, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 48, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 60, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 72, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 84, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 96, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 108, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 120, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 132, "y": 12, "flags": 4}, + {"matrix": [1, 12], "x": 144, "y": 12, "flags": 4}, + {"x": 156, "y": 12, "flags": 4}, + {"matrix": [1, 13], "x": 168, "y": 12, "flags": 4}, + {"x": 180, "y": 12, "flags": 4}, + {"matrix": [1, 14], "x": 192, "y": 12, "flags": 4}, + {"matrix": [1, 15], "x": 204, "y": 12, "flags": 4}, + {"matrix": [3, 14], "x": 216, "y": 12, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 24, "flags": 4}, + {"matrix": [2, 1], "x": 12, "y": 24, "flags": 4}, + {"matrix": [2, 2], "x": 24, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 48, "y": 24, "flags": 4}, + {"matrix": [2, 5], "x": 60, "y": 24, "flags": 4}, + {"matrix": [2, 6], "x": 72, "y": 24, "flags": 4}, + {"matrix": [2, 7], "x": 84, "y": 24, "flags": 4}, + {"matrix": [2, 8], "x": 96, "y": 24, "flags": 4}, + {"matrix": [2, 9], "x": 108, "y": 24, "flags": 4}, + {"matrix": [2, 10], "x": 120, "y": 24, "flags": 4}, + {"matrix": [2, 11], "x": 132, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 144, "y": 24, "flags": 4}, + {"matrix": [2, 13], "x": 156, "y": 24, "flags": 4}, + {"matrix": [2, 14], "x": 168, "y": 24, "flags": 4}, + {"matrix": [2, 15], "x": 180, "y": 24, "flags": 4}, + {"matrix": [3, 15], "x": 192, "y": 24, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 36, "flags": 4}, + {"matrix": [3, 1], "x": 12, "y": 36, "flags": 4}, + {"matrix": [3, 2], "x": 24, "y": 36, "flags": 4}, + {"matrix": [3, 3], "x": 36, "y": 36, "flags": 4}, + {"matrix": [3, 4], "x": 48, "y": 36, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 36, "flags": 4}, + {"matrix": [3, 6], "x": 72, "y": 36, "flags": 4}, + {"matrix": [3, 7], "x": 84, "y": 36, "flags": 4}, + {"matrix": [3, 8], "x": 96, "y": 36, "flags": 4}, + {"matrix": [3, 9], "x": 108, "y": 36, "flags": 4}, + {"matrix": [3, 10], "x": 120, "y": 36, "flags": 4}, + {"matrix": [3, 11], "x": 132, "y": 36, "flags": 4}, + {"x": 144, "y": 36, "flags": 4}, + {"matrix": [3, 12], "x": 156, "y": 36, "flags": 4}, + {"x": 168, "y": 36, "flags": 4}, + {"x": 0, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 12, "y": 48, "flags": 4}, + {"x": 24, "y": 48, "flags": 4}, + {"matrix": [4, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [4, 2], "x": 48, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 60, "y": 48, "flags": 4}, + {"matrix": [4, 4], "x": 72, "y": 48, "flags": 4}, + {"matrix": [4, 5], "x": 84, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [4, 7], "x": 108, "y": 48, "flags": 4}, + {"matrix": [4, 8], "x": 120, "y": 48, "flags": 4}, + {"matrix": [4, 9], "x": 132, "y": 48, "flags": 4}, + {"matrix": [4, 10], "x": 144, "y": 48, "flags": 4}, + {"x": 156, "y": 48, "flags": 4}, + {"matrix": [4, 11], "x": 168, "y": 48, "flags": 4}, + {"x": 180, "y": 48, "flags": 4}, + {"matrix": [4, 14], "x": 192, "y": 48, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 60, "flags": 4}, + {"matrix": [5, 2], "x": 12, "y": 60, "flags": 4}, + {"x": 24, "y": 60, "flags": 4}, + {"matrix": [5, 5], "x": 36, "y": 60, "flags": 4}, + {"x": 48, "y": 60, "flags": 4}, + {"matrix": [5, 9], "x": 60, "y": 60, "flags": 4}, + {"matrix": [5, 12], "x": 72, "y": 60, "flags": 4}, + {"matrix": [5, 13], "x": 84, "y": 60, "flags": 4}, + {"matrix": [5, 14], "x": 96, "y": 60, "flags": 4}, + {"matrix": [5, 15], "x": 108, "y": 60, "flags": 4} + ], + } } diff --git a/keyboards/melgeek/mach80/rev2/rev2.c b/keyboards/melgeek/mach80/rev2/rev2.c index 1a759f38c6..63fbbbedfc 100755 --- a/keyboards/melgeek/mach80/rev2/rev2.c +++ b/keyboards/melgeek/mach80/rev2/rev2.c @@ -115,32 +115,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW9_CS24, SW9_CS23, SW9_CS22}, /* RGB54 */ {0, SW4_CS39, SW4_CS38, SW4_CS37}, /* RGB101 */ }; -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 */ - { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, /* R0 */ - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, 32, 33 }, /* R1 */ - { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50 }, /* R2 */ - { 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 15, 34, 51 }, /* R3 */ - { 68, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, NO_LED, NO_LED, 83, NO_LED }, /* R4 */ - { 84, NO_LED, 85, NO_LED, NO_LED, 87, NO_LED, NO_LED, NO_LED, 89, NO_LED, NO_LED, 90, 91, 92, 93 } /* R5 */ - }, { - {0, 0}, {12, 0}, {24, 0}, {36, 0}, {48, 0}, {60, 0}, {72, 0}, {84, 0}, {96, 0}, {108, 0}, {120, 0}, {132, 0}, {144, 0}, {156, 0}, {168, 0}, {180, 0}, //16 - {0, 12}, {12, 12}, {24, 12}, {36, 12}, {48, 12}, {60, 12}, {72, 12}, {84, 12}, {96, 12}, {108, 12}, {120, 12}, {132, 12}, {144, 12}, {156, 12}, {168, 12}, {180, 12}, {192, 12}, {204, 12}, {216, 12}, //19 - {0, 24}, {12, 24}, {24, 24}, {36, 24}, {48, 24}, {60, 24}, {72, 24}, {84, 24}, {96, 24}, {108, 24}, {120, 24}, {132, 24}, {144, 24}, {156, 24}, {168, 24}, {180, 24}, {192, 24}, //17 - {0, 36}, {12, 36}, {24, 36}, {36, 36}, {48, 36}, {60, 36}, {72, 36}, {84, 36}, {96, 36}, {108, 36}, {120, 36}, {132, 36}, {144, 36}, {156, 36}, {168, 36}, //15 - {0, 48}, {12, 48}, {24, 48}, {36, 48}, {48, 48}, {60, 48}, {72, 48}, {84, 48}, {96, 48}, {108, 48}, {120, 48}, {132, 48}, {144, 48}, {156, 48}, {168, 48}, {180, 48}, {192, 48}, //17 - {0, 60}, {12, 60}, {24, 60}, {36, 60}, {48, 60}, {60, 60}, {72, 60}, {84, 60}, {96, 60}, {108, 60} - //10 - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; const is31fl3741_led_t g_is31_indicator_leds[3] = { {0, SW1_CS6, SW1_CS5, SW1_CS4}, /* RGB107 */ diff --git a/keyboards/melgeek/mj61/rev1/keyboard.json b/keyboards/melgeek/mj61/rev1/keyboard.json index b388908579..e8dedb8ea5 100644 --- a/keyboards/melgeek/mj61/rev1/keyboard.json +++ b/keyboards/melgeek/mj61/rev1/keyboard.json @@ -10,5 +10,72 @@ "cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], "rows": ["B12", "B11", "B10", "B1", "A3"] }, - "diode_direction": "COL2ROW" + "diode_direction": "COL2ROW", + "rgb_matrix": { + "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": 208, "y": 0, "flags": 4}, + {"matrix": [1, 13], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 208, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, + {"matrix": [3, 12], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 176, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 144, "y": 64, "flags": 4} + ], + } } diff --git a/keyboards/melgeek/mj61/rev1/rev1.c b/keyboards/melgeek/mj61/rev1/rev1.c index 8e0be62127..d543ad60c0 100644 --- a/keyboards/melgeek/mj61/rev1/rev1.c +++ b/keyboards/melgeek/mj61/rev1/rev1.c @@ -82,28 +82,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW8_CS30, SW8_CS29, SW8_CS28}, /* RGB62 */ {0, SW9_CS30, SW9_CS29, SW9_CS28}, /* RGB63 */ }; - -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, /* R0 */ - { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, /* R1 */ - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED,}, /* R2 */ - { 52, NO_LED, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, NO_LED }, /* R3 */ - { 53, 54, NO_LED, 55, 61, 56, 62, NO_LED, NO_LED, 57, 58, 59, 60, NO_LED }, /* R4 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - #endif diff --git a/keyboards/melgeek/mj61/rev2/keyboard.json b/keyboards/melgeek/mj61/rev2/keyboard.json index fcff9e10a5..da6c60d7ed 100644 --- a/keyboards/melgeek/mj61/rev2/keyboard.json +++ b/keyboards/melgeek/mj61/rev2/keyboard.json @@ -10,5 +10,80 @@ "cols": ["B15", "A8", "B13", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], "rows": ["B12", "B11", "B10", "B1", "A3"] }, - "diode_direction": "COL2ROW" + "diode_direction": "COL2ROW", + "rgb_matrix": { + "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}, + {"x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4}, + {"x": 240, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 208, "y": 32, "flags": 4}, + {"x": 224, "y": 32, "flags": 4}, + {"x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 16, "y": 48, "flags": 4}, + {"x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 192, "y": 48, "flags": 4}, + {"x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 224, "y": 48, "flags": 4}, + {"x": 240, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 32, "y": 64, "flags": 4}, + {"x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 64, "y": 64, "flags": 4}, + {"x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 144, "y": 64, "flags": 4} + ] + } } diff --git a/keyboards/melgeek/mj61/rev2/rev2.c b/keyboards/melgeek/mj61/rev2/rev2.c index 7b27fa44c3..e936998ace 100644 --- a/keyboards/melgeek/mj61/rev2/rev2.c +++ b/keyboards/melgeek/mj61/rev2/rev2.c @@ -92,28 +92,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW9_CS21, SW9_CS20, SW9_CS19}, /* RGB42 */ {0, SW8_CS30, SW8_CS29, SW8_CS28}, /* RGB71 */ }; - -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, /* R0 */ - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, /* R1 */ - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, NO_LED }, /* R2 */ - { 46, NO_LED, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, NO_LED }, /* R3 */ - { 61, 62, NO_LED, 63, NO_LED, 65, NO_LED, NO_LED, NO_LED, 67, 68, 69, NO_LED, 70 }, /* R4 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, {240, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, {224, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, {240, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - #endif diff --git a/keyboards/melgeek/mj63/rev1/keyboard.json b/keyboards/melgeek/mj63/rev1/keyboard.json index b388908579..0d0759910e 100644 --- a/keyboards/melgeek/mj63/rev1/keyboard.json +++ b/keyboards/melgeek/mj63/rev1/keyboard.json @@ -10,5 +10,74 @@ "cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], "rows": ["B12", "B11", "B10", "B1", "A3"] }, - "diode_direction": "COL2ROW" + "diode_direction": "COL2ROW", + "rgb_matrix": { + "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": 208, "y": 0, "flags": 4}, + {"matrix": [1, 13], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 208, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, + {"matrix": [3, 13], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 192, "y": 48, "flags": 4}, + {"matrix": [4, 13], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 144, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 160, "y": 64, "flags": 4} + ] + } } diff --git a/keyboards/melgeek/mj63/rev1/rev1.c b/keyboards/melgeek/mj63/rev1/rev1.c index d6caeac0c1..bdd7f34352 100644 --- a/keyboards/melgeek/mj63/rev1/rev1.c +++ b/keyboards/melgeek/mj63/rev1/rev1.c @@ -86,28 +86,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW1_CS27, SW1_CS26, SW1_CS25}, /* RGB65 */ {0, SW5_CS30, SW5_CS29, SW5_CS28}, /* RGB66 */ }; - -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, /* R0 */ - { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, /* R1 */ - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED }, /* R2 */ - { 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, NO_LED, 43, 42, 41 }, /* R3 */ - { 61, 60, 59, NO_LED, 64, 62, 63, NO_LED, NO_LED, 58, 57, 56, 55, 54 }, /* R4 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - #endif diff --git a/keyboards/melgeek/mj63/rev2/keyboard.json b/keyboards/melgeek/mj63/rev2/keyboard.json index fcff9e10a5..8140afe4b8 100644 --- a/keyboards/melgeek/mj63/rev2/keyboard.json +++ b/keyboards/melgeek/mj63/rev2/keyboard.json @@ -10,5 +10,80 @@ "cols": ["B15", "A8", "B13", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], "rows": ["B12", "B11", "B10", "B1", "A3"] }, - "diode_direction": "COL2ROW" + "diode_direction": "COL2ROW", + "rgb_matrix": { + "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}, + {"x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4}, + {"x": 240, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 208, "y": 32, "flags": 4}, + {"x": 224, "y": 32, "flags": 4}, + {"x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 16, "y": 48, "flags": 4}, + {"x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, + {"x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 64, "y": 64, "flags": 4}, + {"x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 144, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 160, "y": 64, "flags": 4} + ], + } } diff --git a/keyboards/melgeek/mj63/rev2/rev2.c b/keyboards/melgeek/mj63/rev2/rev2.c index 95f0b28f5d..20dfaaf684 100644 --- a/keyboards/melgeek/mj63/rev2/rev2.c +++ b/keyboards/melgeek/mj63/rev2/rev2.c @@ -92,28 +92,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW8_CS30, SW8_CS29, SW8_CS28}, /* RGB71 */ {0, SW9_CS30, SW9_CS29, SW9_CS28}, /* RGB72 */ }; - -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, /* R0 */ - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, /* R1 */ - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, NO_LED }, /* R2 */ - { 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, NO_LED, 57, 58, 59 }, /* R3 */ - { 60, 61, 62, NO_LED, NO_LED, 64, NO_LED, NO_LED, NO_LED, 66, 67, 68, 69, 70 }, /* R4 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, {240, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, {224, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - #endif diff --git a/keyboards/melgeek/mj64/rev1/keyboard.json b/keyboards/melgeek/mj64/rev1/keyboard.json index b388908579..bddfc0bef5 100644 --- a/keyboards/melgeek/mj64/rev1/keyboard.json +++ b/keyboards/melgeek/mj64/rev1/keyboard.json @@ -10,5 +10,73 @@ "cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], "rows": ["B12", "B11", "B10", "B1", "A3"] }, - "diode_direction": "COL2ROW" + "diode_direction": "COL2ROW", + "rgb_matrix": { + "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": 208, "y": 0, "flags": 4}, + {"matrix": [1, 13], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 208, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, + {"matrix": [3, 13], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 208, "y": 48, "flags": 4}, + {"matrix": [4, 13], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 144, "y": 64, "flags": 4} + ] + } } diff --git a/keyboards/melgeek/mj64/rev1/rev1.c b/keyboards/melgeek/mj64/rev1/rev1.c index ea3376a8c7..d5859cf5e4 100644 --- a/keyboards/melgeek/mj64/rev1/rev1.c +++ b/keyboards/melgeek/mj64/rev1/rev1.c @@ -84,27 +84,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW9_CS27, SW9_CS26, SW9_CS25}, /* RGB63 */ {0, SW1_CS30, SW1_CS29, SW1_CS28}, /* RGB64 */ }; - -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED }, - { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41 }, - { 62, 61, 60, NO_LED, NO_LED, 63, NO_LED, NO_LED, NO_LED, 59, 58, 57, 56, 55 } - }, { - { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 208, 0 }, - { 0, 16 }, { 16, 16 }, { 32, 16 }, { 48, 16 }, { 64, 16 }, { 80, 16 }, { 96, 16 }, { 112, 16 }, { 128, 16 }, { 144, 16 }, { 160, 16 }, { 176, 16 }, { 192, 16 }, { 208, 16 }, - { 0, 32 }, { 16, 32 }, { 32, 32 }, { 48, 32 }, { 64, 32 }, { 80, 32 }, { 96, 32 }, { 112, 32 }, { 128, 32 }, { 144, 32 }, { 160, 32 }, { 176, 32 }, { 192, 32 }, - { 0, 48 }, { 16, 48 }, { 32, 48 }, { 48, 48 }, { 64, 48 }, { 80, 48 }, { 96, 48 }, { 112, 48 }, { 128, 48 }, { 144, 48 }, { 160, 48 }, { 176, 48 }, { 192, 48 }, { 208, 48 }, - { 0, 64 }, { 16, 64 }, { 32, 64 }, { 48, 64 }, { 64, 64 }, { 96, 64 }, { 112, 64 }, { 128, 64 }, { 144, 64 } - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4 - } -}; - #endif diff --git a/keyboards/melgeek/mj64/rev2/keyboard.json b/keyboards/melgeek/mj64/rev2/keyboard.json index b388908579..0a48604710 100644 --- a/keyboards/melgeek/mj64/rev2/keyboard.json +++ b/keyboards/melgeek/mj64/rev2/keyboard.json @@ -10,5 +10,75 @@ "cols": ["B15", "A8", "A10", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], "rows": ["B12", "B11", "B10", "B1", "A3"] }, - "diode_direction": "COL2ROW" + "diode_direction": "COL2ROW", + "rgb_matrix": { + "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": 208, "y": 0, "flags": 4}, + {"matrix": [1, 13], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 208, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, + {"matrix": [3, 13], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 208, "y": 48, "flags": 4}, + {"matrix": [4, 13], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 144, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 160, "y": 64, "flags": 4} + ] + } } diff --git a/keyboards/melgeek/mj64/rev2/rev2.c b/keyboards/melgeek/mj64/rev2/rev2.c index 17947282ce..0a236374c7 100644 --- a/keyboards/melgeek/mj64/rev2/rev2.c +++ b/keyboards/melgeek/mj64/rev2/rev2.c @@ -86,28 +86,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW1_CS27, SW1_CS26, SW1_CS25}, /* RGB65 */ {0, SW5_CS30, SW5_CS29, SW5_CS28}, /* RGB66 */ }; - -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, /* R0 */ - { 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14 }, /* R1 */ - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, NO_LED }, /* R2 */ - { 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41 }, /* R3 */ - { 62, 61, 60, NO_LED, 64, 63, 65, NO_LED, NO_LED, 59, 58, 57, 56, 55 }, /* R4 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - #endif diff --git a/keyboards/melgeek/mj64/rev3/keyboard.json b/keyboards/melgeek/mj64/rev3/keyboard.json index fcff9e10a5..fdc0371c25 100644 --- a/keyboards/melgeek/mj64/rev3/keyboard.json +++ b/keyboards/melgeek/mj64/rev3/keyboard.json @@ -10,5 +10,81 @@ "cols": ["B15", "A8", "B13", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], "rows": ["B12", "B11", "B10", "B1", "A3"] }, - "diode_direction": "COL2ROW" + "diode_direction": "COL2ROW", + "rgb_matrix": { + "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}, + {"x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4}, + {"x": 240, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 208, "y": 32, "flags": 4}, + {"x": 224, "y": 32, "flags": 4}, + {"x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 16, "y": 48, "flags": 4}, + {"x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 224, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 240, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, + {"x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 64, "y": 64, "flags": 4}, + {"x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 144, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 160, "y": 64, "flags": 4} + ] + } } diff --git a/keyboards/melgeek/mj64/rev3/rev3.c b/keyboards/melgeek/mj64/rev3/rev3.c index 8555082e7d..9bd58016b3 100644 --- a/keyboards/melgeek/mj64/rev3/rev3.c +++ b/keyboards/melgeek/mj64/rev3/rev3.c @@ -92,28 +92,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW8_CS30, SW8_CS29, SW8_CS28}, /* RGB71 */ {0, SW9_CS30, SW9_CS29, SW9_CS28}, /* RGB72 */ }; - -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 }, /* R0 */ - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, /* R1 */ - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, NO_LED }, /* R2 */ - { 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60 }, /* R3 */ - { 61, 62, 63, NO_LED, NO_LED, 65, NO_LED, NO_LED, NO_LED, 67, 68, 69, 70, 71 }, /* R4 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, {240, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, {224, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, {240, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - #endif diff --git a/keyboards/melgeek/mj65/rev3/keyboard.json b/keyboards/melgeek/mj65/rev3/keyboard.json index a4513b45e7..446e440d33 100644 --- a/keyboards/melgeek/mj65/rev3/keyboard.json +++ b/keyboards/melgeek/mj65/rev3/keyboard.json @@ -61,6 +61,84 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "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}, + {"x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4}, + {"x": 240, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 255, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 240, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 255, "y": 16, "flags": 4}, + {"matrix": [2, 2], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 144, "y": 32, "flags": 4}, + {"x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4}, + {"x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 208, "y": 32, "flags": 4}, + {"x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 16, "y": 48, "flags": 4}, + {"x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 0, "y": 64, "flags": 4}, + {"matrix": [3, 14], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 64, "y": 64, "flags": 4}, + {"x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 96, "y": 64, "flags": 4}, + {"x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 144, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 176, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/melgeek/mj65/rev3/rev3.c b/keyboards/melgeek/mj65/rev3/rev3.c index 0a020fad74..a6ef6359c0 100644 --- a/keyboards/melgeek/mj65/rev3/rev3.c +++ b/keyboards/melgeek/mj65/rev3/rev3.c @@ -96,28 +96,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW3_CS33, SW3_CS32, SW3_CS31}, /* RGB75 */ {0, SW4_CS33, SW4_CS32, SW4_CS31}, /* RGB76 */ }; - -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16 }, /* R0 */ - { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, /* R1 */ - { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, NO_LED, 47 }, /* R2 */ - { 49, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, NO_LED, 63 }, /* R3 */ - { 64, 65, 66, NO_LED, NO_LED, 68, NO_LED, NO_LED, NO_LED, 70, 71, 72, 73, 74, 75 }, /* R4 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, {240, 0}, {255, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, {224, 16}, {240, 16}, {255, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {144, 64}, {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - -#endif +#endif diff --git a/keyboards/melgeek/mojo68/rev1/keyboard.json b/keyboards/melgeek/mojo68/rev1/keyboard.json index 88f17665b4..db868c485a 100755 --- a/keyboards/melgeek/mojo68/rev1/keyboard.json +++ b/keyboards/melgeek/mojo68/rev1/keyboard.json @@ -56,6 +56,76 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "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": 208, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 208, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 208, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 144, "y": 64, "flags": 4} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/melgeek/mojo68/rev1/rev1.c b/keyboards/melgeek/mojo68/rev1/rev1.c index af17d96c6d..d30a5817a8 100755 --- a/keyboards/melgeek/mojo68/rev1/rev1.c +++ b/keyboards/melgeek/mojo68/rev1/rev1.c @@ -89,29 +89,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW5_CS30, SW5_CS29, SW5_CS28}, /* RGB68 */ }; -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14*/ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, /* R0 */ - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, /* R1 */ - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 }, /* R2 */ - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, NO_LED, 57 }, /* R3 */ - { 58, 59, 60, NO_LED, NO_LED, 61, NO_LED, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 }, /* R4 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, {224, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - const is31fl3741_led_t g_is31_indicator_leds[3] = { {0, SW1_CS6, SW1_CS5, SW1_CS4}, /* RGB124 */ {0, SW2_CS6, SW2_CS5, SW2_CS4}, /* RGB125 */ diff --git a/keyboards/melgeek/mojo75/rev1/keyboard.json b/keyboards/melgeek/mojo75/rev1/keyboard.json index 0b0a722c90..339609c8f0 100644 --- a/keyboards/melgeek/mojo75/rev1/keyboard.json +++ b/keyboards/melgeek/mojo75/rev1/keyboard.json @@ -61,6 +61,100 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "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": 208, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 240, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 224, "y": 16, "flags": 4}, + {"x": 240, "y": 16, "flags": 4}, + {"matrix": [1, 15], "x": 255, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 208, "y": 32, "flags": 4}, + {"matrix": [2, 15], "x": 224, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4}, + {"x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 208, "y": 48, "flags": 4}, + {"x": 224, "y": 48, "flags": 4}, + {"matrix": [3, 15], "x": 240, "y": 48, "flags": 4}, + {"x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 16, "y": 64, "flags": 4}, + {"x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 7], "x": 144, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 160, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 176, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}, + {"matrix": [4, 15], "x": 240, "y": 64, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 80, "flags": 4}, + {"matrix": [5, 1], "x": 16, "y": 80, "flags": 4}, + {"matrix": [5, 2], "x": 32, "y": 80, "flags": 4}, + {"x": 48, "y": 80, "flags": 4}, + {"matrix": [5, 5], "x": 64, "y": 80, "flags": 4}, + {"x": 80, "y": 80, "flags": 4}, + {"matrix": [5, 9], "x": 96, "y": 80, "flags": 4}, + {"matrix": [5, 10], "x": 112, "y": 80, "flags": 4}, + {"matrix": [5, 12], "x": 128, "y": 80, "flags": 4}, + {"matrix": [5, 13], "x": 144, "y": 80, "flags": 4}, + {"matrix": [5, 14], "x": 160, "y": 80, "flags": 4}, + {"matrix": [5, 15], "x": 176, "y": 80, "flags": 4} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/melgeek/mojo75/rev1/rev1.c b/keyboards/melgeek/mojo75/rev1/rev1.c index 60bb6eb850..93f8345604 100644 --- a/keyboards/melgeek/mojo75/rev1/rev1.c +++ b/keyboards/melgeek/mojo75/rev1/rev1.c @@ -112,31 +112,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW5_CS39, SW5_CS38, SW5_CS37}, /* RGB92 */ {0, SW6_CS39, SW6_CS38, SW6_CS37}, /* RGB90 */ }; - -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, /* R0 */ - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 30, NO_LED, 32 }, /* R1 */ - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, NO_LED, 47 }, /* R2 */ - { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, NO_LED, 61, NO_LED, 63 }, /* R3 */ - { 65, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, NO_LED, 77, NO_LED, 78, 79 }, /* R4 */ - { 80, 81, 82, NO_LED, NO_LED, 84, NO_LED, NO_LED, NO_LED, 86, 87, NO_LED, 88, 89, 90, 91 }, /* R5 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, {224, 0}, {240, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, {224, 16}, {240, 16}, {255, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, {208, 32}, {224, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, {240, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, {128, 64}, {144, 64}, {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64}, {240, 64}, - {0, 80}, {16, 80}, {32, 80}, {48, 80}, {64, 80}, {80, 80}, {96, 80}, {112, 80}, {128, 80}, {144, 80}, {160, 80}, {176, 80}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - #endif diff --git a/keyboards/melgeek/tegic/rev1/keyboard.json b/keyboards/melgeek/tegic/rev1/keyboard.json index 5a1ca4f350..532792d27e 100644 --- a/keyboards/melgeek/tegic/rev1/keyboard.json +++ b/keyboards/melgeek/tegic/rev1/keyboard.json @@ -67,6 +67,99 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 12, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 24, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 36, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 72, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 108, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 132, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 156, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 168, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 12, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 24, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 36, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 48, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 60, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 72, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 84, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 96, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 108, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 120, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 132, "y": 12, "flags": 4}, + {"matrix": [1, 12], "x": 144, "y": 12, "flags": 4}, + {"x": 156, "y": 12, "flags": 4}, + {"matrix": [1, 13], "x": 168, "y": 12, "flags": 4}, + {"x": 180, "y": 12, "flags": 4}, + {"matrix": [1, 14], "x": 192, "y": 12, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 24, "flags": 4}, + {"matrix": [2, 1], "x": 12, "y": 24, "flags": 4}, + {"matrix": [2, 2], "x": 24, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 36, "y": 24, "flags": 4}, + {"matrix": [2, 4], "x": 48, "y": 24, "flags": 4}, + {"matrix": [2, 5], "x": 60, "y": 24, "flags": 4}, + {"matrix": [2, 6], "x": 72, "y": 24, "flags": 4}, + {"matrix": [2, 7], "x": 84, "y": 24, "flags": 4}, + {"matrix": [2, 8], "x": 96, "y": 24, "flags": 4}, + {"matrix": [2, 9], "x": 108, "y": 24, "flags": 4}, + {"matrix": [2, 10], "x": 120, "y": 24, "flags": 4}, + {"matrix": [2, 11], "x": 132, "y": 24, "flags": 4}, + {"matrix": [2, 12], "x": 144, "y": 24, "flags": 4}, + {"matrix": [2, 13], "x": 156, "y": 24, "flags": 4}, + {"matrix": [2, 14], "x": 168, "y": 24, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 36, "flags": 4}, + {"matrix": [3, 1], "x": 12, "y": 36, "flags": 4}, + {"matrix": [3, 2], "x": 24, "y": 36, "flags": 4}, + {"matrix": [3, 3], "x": 36, "y": 36, "flags": 4}, + {"matrix": [3, 4], "x": 48, "y": 36, "flags": 4}, + {"matrix": [3, 5], "x": 60, "y": 36, "flags": 4}, + {"matrix": [3, 6], "x": 72, "y": 36, "flags": 4}, + {"matrix": [3, 7], "x": 84, "y": 36, "flags": 4}, + {"matrix": [3, 8], "x": 96, "y": 36, "flags": 4}, + {"matrix": [3, 9], "x": 108, "y": 36, "flags": 4}, + {"matrix": [3, 10], "x": 120, "y": 36, "flags": 4}, + {"matrix": [3, 11], "x": 132, "y": 36, "flags": 4}, + {"x": 144, "y": 36, "flags": 4}, + {"matrix": [3, 12], "x": 156, "y": 36, "flags": 4}, + {"x": 168, "y": 36, "flags": 4}, + {"x": 0, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 12, "y": 48, "flags": 4}, + {"x": 24, "y": 48, "flags": 4}, + {"matrix": [4, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [4, 2], "x": 48, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 60, "y": 48, "flags": 4}, + {"matrix": [4, 4], "x": 72, "y": 48, "flags": 4}, + {"matrix": [4, 5], "x": 84, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [4, 7], "x": 108, "y": 48, "flags": 4}, + {"matrix": [4, 8], "x": 120, "y": 48, "flags": 4}, + {"matrix": [4, 9], "x": 132, "y": 48, "flags": 4}, + {"matrix": [4, 10], "x": 144, "y": 48, "flags": 4}, + {"x": 156, "y": 48, "flags": 4}, + {"matrix": [4, 11], "x": 168, "y": 48, "flags": 4}, + {"x": 180, "y": 48, "flags": 4}, + {"matrix": [4, 13], "x": 192, "y": 48, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 60, "flags": 4}, + {"matrix": [5, 1], "x": 12, "y": 60, "flags": 4}, + {"matrix": [5, 2], "x": 24, "y": 60, "flags": 4}, + {"x": 36, "y": 60, "flags": 4}, + {"matrix": [5, 5], "x": 48, "y": 60, "flags": 4}, + {"x": 60, "y": 60, "flags": 4}, + {"matrix": [5, 9], "x": 72, "y": 60, "flags": 4}, + {"matrix": [5, 10], "x": 84, "y": 60, "flags": 4}, + {"matrix": [5, 11], "x": 96, "y": 60, "flags": 4}, + {"matrix": [5, 12], "x": 108, "y": 60, "flags": 4}, + {"matrix": [5, 13], "x": 120, "y": 60, "flags": 4}, + {"matrix": [5, 14], "x": 132, "y": 60, "flags": 4} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/melgeek/tegic/rev1/rev1.c b/keyboards/melgeek/tegic/rev1/rev1.c index b087264919..3b4e335c05 100755 --- a/keyboards/melgeek/tegic/rev1/rev1.c +++ b/keyboards/melgeek/tegic/rev1/rev1.c @@ -117,29 +117,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW9_CS36, SW9_CS35, SW9_CS34}, /* RGB143 */ {0, SW1_CS39, SW1_CS38, SW1_CS37}, /* RGB149 */ }; -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, /* R0 */ - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 29, 31 }, /* R1 */ - { 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46 }, /* R2 */ - { 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, NO_LED, NO_LED }, /* R3 */ - { 63, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 76, NO_LED, 78, NO_LED }, /* R4 */ - { 79, 80, 81, NO_LED, NO_LED, 83, NO_LED, NO_LED, NO_LED, 85, 86, 87, 88, 89, 90 }, /* R5 */ - }, { - {0, 0}, {12, 0}, {24, 0}, {36, 0}, {48, 0}, {60, 0}, {72, 0}, {84, 0}, {96, 0}, {108, 0}, {120, 0}, {132, 0}, {144, 0}, {156, 0}, {168, 0}, //15 - {0, 12}, {12, 12}, {24, 12}, {36, 12}, {48, 12}, {60, 12}, {72, 12}, {84, 12}, {96, 12}, {108, 12}, {120, 12}, {132, 12}, {144, 12}, {156, 12}, {168, 12}, {180, 12}, {192, 12}, //17 - {0, 24}, {12, 24}, {24, 24}, {36, 24}, {48, 24}, {60, 24}, {72, 24}, {84, 24}, {96, 24}, {108, 24}, {120, 24}, {132, 24}, {144, 24}, {156, 24}, {168, 24}, //15 - {0, 36}, {12, 36}, {24, 36}, {36, 36}, {48, 36}, {60, 36}, {72, 36}, {84, 36}, {96, 36}, {108, 36}, {120, 36}, {132, 36}, {144, 36}, {156, 36}, {168, 36}, //15 - {0, 48}, {12, 48}, {24, 48}, {36, 48}, {48, 48}, {60, 48}, {72, 48}, {84, 48}, {96, 48}, {108, 48}, {120, 48}, {132, 48}, {144, 48}, {156, 48}, {168, 48}, {180, 48}, {192, 48}, //17 - {0, 60}, {12, 60}, {24, 60}, {36, 60}, {48, 60}, {60, 60}, {72, 60}, {84, 60}, {96, 60}, {108, 60}, {120, 60}, {132, 60}, //12 - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; #endif diff --git a/keyboards/melgeek/z70ultra/rev1/keyboard.json b/keyboards/melgeek/z70ultra/rev1/keyboard.json index 5a8868265b..145f5dffdf 100644 --- a/keyboards/melgeek/z70ultra/rev1/keyboard.json +++ b/keyboards/melgeek/z70ultra/rev1/keyboard.json @@ -61,6 +61,77 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "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": 208, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 0, "y": 32, "flags": 4}, + {"matrix": [5, 7], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 0, "y": 48, "flags": 4}, + {"matrix": [2, 13], "x": 16, "y": 48, "flags": 4}, + {"matrix": [5, 9], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 0, "y": 64, "flags": 4}, + {"matrix": [3, 11], "x": 16, "y": 64, "flags": 4}, + {"matrix": [3, 12], "x": 32, "y": 64, "flags": 4}, + {"matrix": [5, 8], "x": 48, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 0, "y": 80, "flags": 4}, + {"matrix": [4, 5], "x": 16, "y": 80, "flags": 4}, + {"matrix": [4, 6], "x": 32, "y": 80, "flags": 4}, + {"matrix": [4, 9], "x": 48, "y": 80, "flags": 4}, + {"matrix": [4, 10], "x": 64, "y": 80, "flags": 4}, + {"matrix": [5, 11], "x": 80, "y": 80, "flags": 4}, + {"matrix": [5, 12], "x": 96, "y": 80, "flags": 4}, + {"matrix": [5, 13], "x": 112, "y": 80, "flags": 4} + ], "led_flush_limit": 26, "led_process_limit": 4, "sleep": true diff --git a/keyboards/melgeek/z70ultra/rev1/rev1.c b/keyboards/melgeek/z70ultra/rev1/rev1.c index 1cb46df643..7eaf839763 100644 --- a/keyboards/melgeek/z70ultra/rev1/rev1.c +++ b/keyboards/melgeek/z70ultra/rev1/rev1.c @@ -91,31 +91,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW4_CS37, SW4_CS39, SW4_CS38}, /* RGB22 */ {0, SW9_CS37, SW9_CS39, SW9_CS38}, /* RGB27 */ }; -led_config_t g_led_config = { - { - /* C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 */ - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, }, /* R0 */ - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, }, /* R1 */ - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, }, /* R2 */ - { 44, NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, }, /* R3 */ - { 58, 59, 60, NO_LED, 61, 62, 63, NO_LED, NO_LED, 64, 65, NO_LED, NO_LED, NO_LED, }, /* R4 */ - { NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, 14, 29, 56, 43, 57, 66, 67, 68, }, /* R5 */ - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, - {0, 16}, {16, 16}, {32, 16}, {48, 16}, {64, 16}, {80, 16}, {96, 16}, {112, 16}, {128, 16}, {144, 16}, {160, 16}, {176, 16}, {192, 16}, {208, 16}, - {0, 32}, {16, 32}, {32, 32}, {48, 32}, {64, 32}, {80, 32}, {96, 32}, {112, 32}, {128, 32}, {144, 32}, {160, 32}, {176, 32}, {192, 32}, - {0, 48}, {16, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {128, 48}, {144, 48}, {160, 48}, {176, 48}, - {0, 64}, {16, 64}, {32, 64}, {48, 64}, {64, 64}, {80, 64}, {96, 64}, {112, 64}, - {0, 80}, {16, 80}, {32, 80}, {48, 80}, {64, 80}, {80, 80}, {96, 80}, {112, 80}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - } -}; const is31fl3741_led_t g_is31_indicator_leds[6] = { {0, SW1_CS5, SW1_CS3, SW1_CS4}, /* RGB71 */ From ed2de216031af9335433465e478d1c349621288b Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 03:10:34 -0600 Subject: [PATCH 041/255] Migrate `g_led_config` to DD (M1) (#25618) --- keyboards/machkeyboards/mach3/mach3.c | 21 +---- keyboards/magic_force/mf34/keyboard.json | 36 +++++++ keyboards/magic_force/mf34/mf34.c | 48 ---------- .../marksard/rhymestone/rev1/keyboard.json | 42 +++++++++ keyboards/marksard/rhymestone/rev1/rev1.c | 60 ------------ .../adelais/rgb_led/rev1/keyboard.json | 93 +++++++++++++++++++ .../mechlovin/adelais/rgb_led/rev1/rev1.c | 42 --------- .../adelais/rgb_led/rev2/keyboard.json | 70 ++++++++++++++ .../mechlovin/adelais/rgb_led/rev2/rev2.c | 23 ----- .../adelais/rgb_led/rev3/keyboard.json | 68 ++++++++++++++ .../mechlovin/adelais/rgb_led/rev3/rev3.c | 24 ----- .../mechlovin/delphine/rgb_led/keyboard.json | 27 ++++++ .../mechlovin/delphine/rgb_led/rgb_led.c | 26 ------ .../mechlovin/hannah60rgb/rev1/keyboard.json | 74 +++++++++++++++ keyboards/mechlovin/hannah60rgb/rev1/rev1.c | 22 ----- .../mechlovin/hannah60rgb/rev2/keyboard.json | 80 ++++++++++++++++ keyboards/mechlovin/hannah60rgb/rev2/rev2.c | 48 ---------- .../infinity87/rgb_rev1/keyboard.json | 93 +++++++++++++++++++ .../mechlovin/infinity87/rgb_rev1/rgb_rev1.c | 25 ----- keyboards/mechlovin/infinity875/infinity875.c | 46 --------- keyboards/mechlovin/infinity875/keyboard.json | 44 +++++++++ 21 files changed, 628 insertions(+), 384 deletions(-) delete mode 100644 keyboards/magic_force/mf34/mf34.c delete mode 100644 keyboards/marksard/rhymestone/rev1/rev1.c delete mode 100644 keyboards/mechlovin/adelais/rgb_led/rev1/rev1.c delete mode 100644 keyboards/mechlovin/infinity875/infinity875.c diff --git a/keyboards/machkeyboards/mach3/mach3.c b/keyboards/machkeyboards/mach3/mach3.c index 948df5a066..881528d650 100644 --- a/keyboards/machkeyboards/mach3/mach3.c +++ b/keyboards/machkeyboards/mach3/mach3.c @@ -15,28 +15,9 @@ */ #include "quantum.h" -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2 }, - { 5, 4, 3 }, - { 6, 7, 8 }, -}, { - // LED Index to Physical Position - { 0, 0 }, { 112, 0 }, { 224, 0 }, - { 0, 112 }, { 112, 112 }, { 224, 112 }, - { 0, 224 }, { 112, 224 }, { 224, 224 }, -}, { - // LED Index to Flag - 4, 4, 4, - 4, 4, 4, - 4, 4, 4 -} }; -#endif - void keyboard_pre_init_kb(void) { gpio_set_pin_output(F5); gpio_write_pin_high(F5); - + keyboard_pre_init_user(); } diff --git a/keyboards/magic_force/mf34/keyboard.json b/keyboards/magic_force/mf34/keyboard.json index 9acae04b27..35a652422d 100644 --- a/keyboards/magic_force/mf34/keyboard.json +++ b/keyboards/magic_force/mf34/keyboard.json @@ -65,6 +65,42 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 37, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 74, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 149, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 186, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 37, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 74, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 112, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 149, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 186, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 224, "y": 12, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 24, "flags": 4}, + {"matrix": [2, 1], "x": 37, "y": 24, "flags": 4}, + {"matrix": [2, 2], "x": 74, "y": 24, "flags": 4}, + {"matrix": [2, 3], "x": 112, "y": 17, "flags": 4}, + {"matrix": [2, 4], "x": 149, "y": 17, "flags": 4}, + {"matrix": [2, 5], "x": 186, "y": 17, "flags": 4}, + {"matrix": [3, 3], "x": 112, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 149, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 186, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 224, "y": 38, "flags": 4}, + {"matrix": [4, 1], "x": 37, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 112, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 149, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 186, "y": 51, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 37, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 74, "y": 64, "flags": 4}, + {"matrix": [5, 4], "x": 149, "y": 64, "flags": 4}, + {"matrix": [5, 5], "x": 186, "y": 64, "flags": 4}, + {"matrix": [5, 6], "x": 224, "y": 64, "flags": 4} + ], "max_brightness": 200 }, "features": { diff --git a/keyboards/magic_force/mf34/mf34.c b/keyboards/magic_force/mf34/mf34.c deleted file mode 100644 index 8cced36866..0000000000 --- a/keyboards/magic_force/mf34/mf34.c +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright 2015 Álvaro "Gondolindrim" Volpato - -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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - -// RGB Matrix -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3 , 4, 5, 6}, - { 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, NO_LED }, - { NO_LED, NO_LED, NO_LED, 20, 21, 22, 23 }, - { NO_LED, 24, NO_LED, 25, 26, 27, NO_LED }, - { 28, 29, 30, NO_LED, 31, 32, 33 } - }, { - {0, 0}, {37, 0}, {74, 0}, {112, 0}, {149, 0}, {186, 0}, {224, 0}, - {0, 12}, {37, 12}, {74, 12}, {112, 12}, {149, 12}, {186, 12}, {224, 12}, - {0, 24}, {37, 24}, {74, 24}, {112, 17}, {149, 17}, {186, 17}, - {112, 38}, {149, 38}, {186, 38}, {224, 38}, - {37, 51}, {112, 51}, {149, 51}, {186, 51}, - {0, 64}, {37, 64}, {74, 64}, {149, 64}, {186, 64}, {224, 64} - }, { - 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4 - } -}; -#endif diff --git a/keyboards/marksard/rhymestone/rev1/keyboard.json b/keyboards/marksard/rhymestone/rev1/keyboard.json index aaff1515e0..2b9829e711 100644 --- a/keyboards/marksard/rhymestone/rev1/keyboard.json +++ b/keyboards/marksard/rhymestone/rev1/keyboard.json @@ -10,6 +10,48 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [0, 4], "x": 100, "y": 0, "flags": 4}, + {"matrix": [1, 4], "x": 100, "y": 21, "flags": 4}, + {"matrix": [2, 4], "x": 100, "y": 43, "flags": 4}, + {"matrix": [3, 4], "x": 100, "y": 64, "flags": 1}, + {"matrix": [3, 3], "x": 75, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 50, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 25, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 43, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 25, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 50, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 75, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 75, "y": 21, "flags": 4}, + {"matrix": [2, 3], "x": 75, "y": 43, "flags": 4}, + {"matrix": [2, 2], "x": 50, "y": 43, "flags": 4}, + {"matrix": [2, 1], "x": 25, "y": 43, "flags": 4}, + {"matrix": [1, 1], "x": 25, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 50, "y": 21, "flags": 4}, + {"matrix": [4, 4], "x": 125, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 125, "y": 21, "flags": 4}, + {"matrix": [6, 4], "x": 125, "y": 43, "flags": 4}, + {"matrix": [7, 4], "x": 125, "y": 64, "flags": 1}, + {"matrix": [7, 3], "x": 150, "y": 64, "flags": 1}, + {"matrix": [7, 2], "x": 175, "y": 64, "flags": 1}, + {"matrix": [7, 1], "x": 200, "y": 64, "flags": 1}, + {"matrix": [7, 0], "x": 224, "y": 64, "flags": 1}, + {"matrix": [6, 0], "x": 224, "y": 43, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 21, "flags": 4}, + {"matrix": [4, 0], "x": 224, "y": 0, "flags": 4}, + {"matrix": [4, 1], "x": 200, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 175, "y": 0, "flags": 4}, + {"matrix": [4, 3], "x": 150, "y": 0, "flags": 4}, + {"matrix": [5, 3], "x": 150, "y": 21, "flags": 4}, + {"matrix": [6, 3], "x": 150, "y": 43, "flags": 4}, + {"matrix": [6, 2], "x": 175, "y": 43, "flags": 4}, + {"matrix": [6, 1], "x": 200, "y": 43, "flags": 4}, + {"matrix": [5, 1], "x": 200, "y": 21, "flags": 4}, + {"matrix": [5, 2], "x": 175, "y": 21, "flags": 4} + ], "sat_steps": 8, "val_steps": 8, "speed_steps": 10, diff --git a/keyboards/marksard/rhymestone/rev1/rev1.c b/keyboards/marksard/rhymestone/rev1/rev1.c deleted file mode 100644 index 06ea367707..0000000000 --- a/keyboards/marksard/rhymestone/rev1/rev1.c +++ /dev/null @@ -1,60 +0,0 @@ -/* Copyright 2020 marksard - * - * 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 "quantum.h" - -// Optional override functions below. -// You can leave any or all of these undefined. -// These are only required if you want to perform custom actions. - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 10, 11, 12, 13, 0 }, - { 9, 18, 19, 14, 1 }, - { 8, 17, 16, 15, 2 }, - { 7, 6, 5, 4, 3 }, - { 30, 31, 32, 33, 20 }, - { 29, 38, 39, 34, 21 }, - { 28, 37, 36, 35, 22 }, - { 27, 26, 25, 24, 23 } -}, { - { 100, 0 }, { 100, 21 }, { 100, 43 }, { 100, 64 }, - { 75, 64 }, { 50, 64 }, { 25, 64 }, { 0, 64 }, - { 0, 43 }, { 0, 21 }, { 0, 0 }, - { 25, 0 }, { 50, 0 }, { 75, 0 }, - { 75, 21 }, { 75, 43 }, - { 50, 43 }, { 25, 43 }, - { 25, 21 }, { 50, 21 }, - { 125, 0 }, { 125, 21 }, { 125, 43 }, { 125, 64 }, - { 150, 64 }, { 175, 64 }, { 200, 64 }, { 225, 64 }, - { 225, 43 }, { 225, 21 }, { 225, 0 }, - { 200, 0 }, { 175, 0 }, { 150, 0 }, - { 150, 21 }, { 150, 43 }, - { 175, 43 }, { 200, 43 }, - { 200, 21 }, { 150, 21 } -}, { - 4, 4, 4, 1, - 1, 1, 1, 1, - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 1, - 1, 1, 1, 1, - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4 -} }; -#endif diff --git a/keyboards/mechlovin/adelais/rgb_led/rev1/keyboard.json b/keyboards/mechlovin/adelais/rgb_led/rev1/keyboard.json index 01232b07e8..1de0b83552 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev1/keyboard.json +++ b/keyboards/mechlovin/adelais/rgb_led/rev1/keyboard.json @@ -62,6 +62,99 @@ "animation": "cycle_pinwheel" }, "driver": "ws2812", + "layout": [ + {"matrix": [1, 14], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 17, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 51, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 69, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 86, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 100, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 103, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 120, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 138, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 155, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 172, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 189, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 207, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 215, "y": 0, "flags": 1}, + {"x": 223, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [2, 14], "x": 0, "y": 16, "flags": 1}, + {"matrix": [1, 0], "x": 17, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 34, "y": 16, "flags": 1}, + {"matrix": [1, 2], "x": 51, "y": 16, "flags": 1}, + {"matrix": [1, 3], "x": 69, "y": 16, "flags": 1}, + {"matrix": [1, 4], "x": 86, "y": 16, "flags": 1}, + {"matrix": [1, 5], "x": 103, "y": 16, "flags": 1}, + {"matrix": [1, 6], "x": 120, "y": 16, "flags": 1}, + {"matrix": [1, 7], "x": 138, "y": 16, "flags": 1}, + {"matrix": [1, 8], "x": 155, "y": 16, "flags": 1}, + {"matrix": [1, 9], "x": 172, "y": 16, "flags": 1}, + {"matrix": [1, 10], "x": 189, "y": 16, "flags": 1}, + {"matrix": [1, 11], "x": 207, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 215, "y": 16, "flags": 1}, + {"matrix": [1, 13], "x": 224, "y": 16, "flags": 1}, + {"matrix": [3, 14], "x": 0, "y": 32, "flags": 1}, + {"matrix": [2, 0], "x": 17, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 34, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 51, "y": 32, "flags": 1}, + {"matrix": [2, 3], "x": 69, "y": 32, "flags": 1}, + {"matrix": [2, 4], "x": 86, "y": 32, "flags": 1}, + {"matrix": [2, 5], "x": 103, "y": 32, "flags": 1}, + {"matrix": [2, 6], "x": 120, "y": 32, "flags": 1}, + {"matrix": [2, 7], "x": 138, "y": 32, "flags": 1}, + {"matrix": [2, 8], "x": 155, "y": 32, "flags": 1}, + {"matrix": [2, 9], "x": 172, "y": 32, "flags": 1}, + {"matrix": [2, 10], "x": 189, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 207, "y": 32, "flags": 1}, + {"matrix": [2, 13], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 17, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 1}, + {"matrix": [3, 3], "x": 51, "y": 48, "flags": 1}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 1}, + {"matrix": [3, 5], "x": 86, "y": 48, "flags": 1}, + {"matrix": [3, 6], "x": 103, "y": 48, "flags": 1}, + {"matrix": [3, 7], "x": 120, "y": 48, "flags": 1}, + {"matrix": [3, 8], "x": 138, "y": 48, "flags": 1}, + {"matrix": [3, 9], "x": 155, "y": 48, "flags": 1}, + {"matrix": [3, 10], "x": 172, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 1}, + {"matrix": [4, 13], "x": 207, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 215, "y": 48, "flags": 1}, + {"x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 17, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 51, "y": 64, "flags": 1}, + {"matrix": [4, 4], "x": 86, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 103, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 138, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 172, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}, + {"x": 100, "y": 0, "flags": 1}, + {"x": 69, "y": 0, "flags": 1}, + {"x": 24, "y": 0, "flags": 1}, + {"x": 0, "y": 3, "flags": 1}, + {"x": 0, "y": 16, "flags": 1}, + {"x": 0, "y": 32, "flags": 1}, + {"x": 0, "y": 51, "flags": 1}, + {"x": 15, "y": 64, "flags": 1}, + {"x": 34, "y": 64, "flags": 1}, + {"x": 69, "y": 64, "flags": 1}, + {"x": 103, "y": 64, "flags": 1}, + {"x": 110, "y": 64, "flags": 1}, + {"x": 120, "y": 64, "flags": 1}, + {"x": 155, "y": 64, "flags": 1}, + {"x": 189, "y": 64, "flags": 1}, + {"x": 192, "y": 64, "flags": 1}, + {"x": 224, "y": 58, "flags": 1}, + {"x": 224, "y": 32, "flags": 1}, + {"x": 224, "y": 16, "flags": 1}, + {"x": 224, "y": 0, "flags": 1}, + {"x": 207, "y": 0, "flags": 1}, + {"x": 172, "y": 0, "flags": 1}, + {"x": 138, "y": 0, "flags": 1} + ], "max_brightness": 220, "react_on_keyup": true, "sleep": true diff --git a/keyboards/mechlovin/adelais/rgb_led/rev1/rev1.c b/keyboards/mechlovin/adelais/rgb_led/rev1/rev1.c deleted file mode 100644 index 5f01f322df..0000000000 --- a/keyboards/mechlovin/adelais/rgb_led/rev1/rev1.c +++ /dev/null @@ -1,42 +0,0 @@ -/* Copyright 2020 Team Mechlovin - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - //Key Matrix to LED Index - {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16}, - {18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0}, - {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, NO_LED, 45, 17}, - {46, NO_LED, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 58, 60, 32}, - {61, NO_LED, 62, NO_LED, 63, NO_LED, 64, NO_LED, 65, NO_LED, 66, NO_LED, NO_LED, 57, 67} -}, { - //LED Index to Physical Positon - {0,0}, { 17, 0}, { 34, 0 }, { 51, 0 }, { 69, 0}, { 86, 0}, {100, 0}, {103, 0}, { 120, 0}, { 138, 0}, { 155, 0}, { 172, 0}, { 189, 0}, {207, 0}, {215, 0}, {223, 0}, {224, 0}, - {0,16}, { 17, 16}, { 34,16 }, { 51,16 }, { 69,16}, { 86,16}, {103,16}, { 120,16}, { 138,16}, { 155,16}, { 172,16}, { 189,16}, {207, 16}, {215, 16}, {224,16}, - {0,32}, { 17, 32}, { 34,32 }, { 51,32 }, { 69,32}, { 86,32}, {103,32}, { 120,32}, { 138,32}, { 155,32}, { 172,32}, { 189,32}, {207, 32}, {224,32}, - { 17, 48}, { 34,48 }, { 51,48 }, { 69,48}, { 86,48}, {103,48}, { 120,48}, { 138,48}, { 155,48}, { 172,48}, { 189,48}, {207, 48}, {215, 48}, {224,48}, {224,48}, - { 17, 64}, { 51,64 }, { 86,64}, { 103,64}, { 138,64}, { 172,64}, {224, 64}, - {100,0}, { 69,0}, { 24, 0}, { 0,3}, { 0,16}, { 0,32}, { 0,51}, { 15,64 }, { 34,64}, { 69,64}, { 103,64}, {110,64}, { 120,64}, { 155,64}, { 189,64}, { 192,64}, { 224,58}, { 224,32}, { 224,16}, { 224,0}, { 207,0}, { 172,0}, { 138,0}, -}, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -} }; -#endif diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/keyboard.json b/keyboards/mechlovin/adelais/rgb_led/rev2/keyboard.json index a8633af5da..e71f103635 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/keyboard.json +++ b/keyboards/mechlovin/adelais/rgb_led/rev2/keyboard.json @@ -64,6 +64,76 @@ "animation": "cycle_pinwheel" }, "driver": "is31fl3731", + "layout": [ + {"matrix": [1, 14], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 17, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 51, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 69, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 86, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 100, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 103, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 120, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 138, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 155, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 172, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 189, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 207, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 215, "y": 0, "flags": 1}, + {"x": 223, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [2, 14], "x": 0, "y": 16, "flags": 1}, + {"matrix": [1, 0], "x": 17, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 34, "y": 16, "flags": 1}, + {"matrix": [1, 2], "x": 51, "y": 16, "flags": 1}, + {"matrix": [1, 3], "x": 69, "y": 16, "flags": 1}, + {"matrix": [1, 4], "x": 86, "y": 16, "flags": 1}, + {"matrix": [1, 5], "x": 103, "y": 16, "flags": 1}, + {"matrix": [1, 6], "x": 120, "y": 16, "flags": 1}, + {"matrix": [1, 7], "x": 138, "y": 16, "flags": 1}, + {"matrix": [1, 8], "x": 155, "y": 16, "flags": 1}, + {"matrix": [1, 9], "x": 172, "y": 16, "flags": 1}, + {"matrix": [1, 10], "x": 189, "y": 16, "flags": 1}, + {"matrix": [1, 11], "x": 207, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 215, "y": 16, "flags": 1}, + {"matrix": [1, 13], "x": 224, "y": 16, "flags": 1}, + {"matrix": [3, 14], "x": 0, "y": 32, "flags": 1}, + {"matrix": [2, 0], "x": 17, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 34, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 51, "y": 32, "flags": 1}, + {"matrix": [2, 3], "x": 69, "y": 32, "flags": 1}, + {"matrix": [2, 4], "x": 86, "y": 32, "flags": 1}, + {"matrix": [2, 5], "x": 103, "y": 32, "flags": 1}, + {"matrix": [2, 6], "x": 120, "y": 32, "flags": 1}, + {"matrix": [2, 7], "x": 138, "y": 32, "flags": 1}, + {"matrix": [2, 8], "x": 155, "y": 32, "flags": 1}, + {"matrix": [2, 9], "x": 172, "y": 32, "flags": 1}, + {"matrix": [2, 10], "x": 189, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 207, "y": 32, "flags": 1}, + {"matrix": [2, 13], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 17, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 1}, + {"matrix": [3, 3], "x": 51, "y": 48, "flags": 1}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 1}, + {"matrix": [3, 5], "x": 86, "y": 48, "flags": 1}, + {"matrix": [3, 6], "x": 103, "y": 48, "flags": 1}, + {"matrix": [3, 7], "x": 120, "y": 48, "flags": 1}, + {"matrix": [3, 8], "x": 138, "y": 48, "flags": 1}, + {"matrix": [3, 9], "x": 155, "y": 48, "flags": 1}, + {"matrix": [3, 10], "x": 172, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 1}, + {"matrix": [4, 13], "x": 207, "y": 48, "flags": 1}, + {"x": 215, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 17, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 51, "y": 64, "flags": 1}, + {"matrix": [4, 4], "x": 86, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 103, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 138, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 172, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "react_on_keyup": true, "sleep": true }, diff --git a/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c b/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c index 2dffbc24f0..d0bd63cdb4 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c +++ b/keyboards/mechlovin/adelais/rgb_led/rev2/rev2.c @@ -94,29 +94,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C4_7, C5_7, C6_7}, //D83-D13-67 }; -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16}, - {18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0}, - {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, NO_LED, 45, 17}, - {46, NO_LED, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 59, 60, 32}, - {61, NO_LED, 62, NO_LED, 63, NO_LED, 64, NO_LED, 65, NO_LED, 66, NO_LED, NO_LED, 57, 67} - }, - { - //LED Index to Physical Positon - {0,0}, { 17, 0}, { 34, 0 }, { 51, 0 }, { 69, 0}, { 86, 0}, {100, 0}, {103, 0}, { 120, 0}, { 138, 0}, { 155, 0}, { 172, 0}, { 189, 0}, {207, 0}, {215, 0}, {223, 0}, {224, 0}, - {0,16}, { 17, 16}, { 34,16 }, { 51,16 }, { 69,16}, { 86,16}, {103,16}, { 120,16}, { 138,16}, { 155,16}, { 172,16}, { 189,16}, {207, 16}, {215, 16}, {224,16}, - {0,32}, { 17, 32}, { 34,32 }, { 51,32 }, { 69,32}, { 86,32}, {103,32}, { 120,32}, { 138,32}, { 155,32}, { 172,32}, { 189,32}, {207, 32}, {224,32}, - { 17, 48}, { 34,48 }, { 51,48 }, { 69,48}, { 86,48}, {103,48}, { 120,48}, { 138,48}, { 155,48}, { 172,48}, { 189,48}, {207, 48}, {215, 48}, {224,48}, {224,48}, - { 17, 64}, { 51,64 }, { 86,64}, { 103,64}, { 138,64}, { 172,64}, {224, 64}, -}, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json b/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json index a7cd8faa78..fd68b62baf 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/keyboard.json @@ -61,6 +61,74 @@ "animation": "cycle_pinwheel" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [3, 1], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 17, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 34, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 51, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 69, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 86, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 100, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 103, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 120, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 138, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 155, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 172, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 189, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 207, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 215, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [4, 1], "x": 0, "y": 16, "flags": 1}, + {"matrix": [1, 0], "x": 17, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 34, "y": 16, "flags": 1}, + {"matrix": [1, 2], "x": 51, "y": 16, "flags": 1}, + {"matrix": [1, 3], "x": 69, "y": 16, "flags": 1}, + {"matrix": [1, 4], "x": 86, "y": 16, "flags": 1}, + {"matrix": [1, 5], "x": 103, "y": 16, "flags": 1}, + {"matrix": [1, 6], "x": 120, "y": 16, "flags": 1}, + {"matrix": [1, 7], "x": 138, "y": 16, "flags": 1}, + {"matrix": [1, 8], "x": 155, "y": 16, "flags": 1}, + {"matrix": [1, 9], "x": 172, "y": 16, "flags": 1}, + {"matrix": [1, 10], "x": 189, "y": 16, "flags": 1}, + {"matrix": [1, 11], "x": 207, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 215, "y": 16, "flags": 1}, + {"matrix": [1, 13], "x": 224, "y": 16, "flags": 1}, + {"matrix": [4, 3], "x": 0, "y": 32, "flags": 1}, + {"matrix": [2, 0], "x": 17, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 34, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 51, "y": 32, "flags": 1}, + {"matrix": [2, 3], "x": 69, "y": 32, "flags": 1}, + {"matrix": [2, 4], "x": 86, "y": 32, "flags": 1}, + {"matrix": [2, 5], "x": 103, "y": 32, "flags": 1}, + {"matrix": [2, 6], "x": 120, "y": 32, "flags": 1}, + {"matrix": [2, 7], "x": 138, "y": 32, "flags": 1}, + {"matrix": [2, 8], "x": 155, "y": 32, "flags": 1}, + {"matrix": [2, 9], "x": 172, "y": 32, "flags": 1}, + {"matrix": [2, 10], "x": 189, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 207, "y": 32, "flags": 1}, + {"matrix": [2, 13], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 17, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 1}, + {"matrix": [3, 3], "x": 51, "y": 48, "flags": 1}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 1}, + {"matrix": [3, 5], "x": 86, "y": 48, "flags": 1}, + {"matrix": [3, 6], "x": 103, "y": 48, "flags": 1}, + {"matrix": [3, 7], "x": 120, "y": 48, "flags": 1}, + {"matrix": [3, 8], "x": 138, "y": 48, "flags": 1}, + {"matrix": [3, 9], "x": 155, "y": 48, "flags": 1}, + {"matrix": [3, 10], "x": 172, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 189, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 207, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 215, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 17, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 51, "y": 64, "flags": 1}, + {"matrix": [4, 4], "x": 86, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 103, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 138, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 172, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "react_on_keyup": true, "sleep": true }, diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c b/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c index 33dd2157e4..d934e6df18 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/rev3.c @@ -88,30 +88,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW1_CS24, SW1_CS23, SW1_CS22}, /* D103-K4E-65 */ }; -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}, - {17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, NO_LED}, - {32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, NO_LED, 44, NO_LED}, - {45, 0, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58}, - {59, 16, 60, 31, 61, NO_LED, 62, NO_LED, 63, NO_LED, 64, NO_LED, NO_LED, NO_LED, 65}, - }, { - //LED Index to Physical Positon - {0,0}, { 17, 0}, { 34, 0 }, { 51, 0 }, { 69, 0}, { 86, 0}, {100, 0}, {103, 0}, { 120, 0}, { 138, 0}, { 155, 0}, { 172, 0}, { 189, 0}, {207, 0}, {215, 0}, {224, 0}, - {0,16}, { 17, 16}, { 34,16 }, { 51,16 }, { 69,16}, { 86,16}, {103,16}, { 120,16}, { 138,16}, { 155,16}, { 172,16}, { 189,16}, {207, 16}, {215, 16}, {224,16}, - {0,32}, { 17, 32}, { 34,32 }, { 51,32 }, { 69,32}, { 86,32}, {103,32}, { 120,32}, { 138,32}, { 155,32}, { 172,32}, { 189,32}, {207, 32}, {224,32}, - { 17, 48}, { 34,48 }, { 51,48 }, { 69,48}, { 86,48}, {103,48}, { 120,48}, { 138,48}, { 155,48}, { 172,48}, { 189,48}, {207, 48}, {215, 48}, {224,48}, - { 17, 64}, { 51,64 }, { 86,64}, { 103,64}, { 138,64}, { 172,64}, {224, 64}, - }, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/mechlovin/delphine/rgb_led/keyboard.json b/keyboards/mechlovin/delphine/rgb_led/keyboard.json index d6e7a27f81..5cb2c13ac1 100644 --- a/keyboards/mechlovin/delphine/rgb_led/keyboard.json +++ b/keyboards/mechlovin/delphine/rgb_led/keyboard.json @@ -78,6 +78,33 @@ "animation": "cycle_pinwheel" }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 149, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4}, + {"matrix": [1, 1], "x": 75, "y": 13, "flags": 1}, + {"matrix": [1, 2], "x": 149, "y": 13, "flags": 1}, + {"matrix": [1, 3], "x": 224, "y": 13, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4}, + {"matrix": [2, 1], "x": 75, "y": 25, "flags": 1}, + {"matrix": [2, 2], "x": 149, "y": 25, "flags": 1}, + {"matrix": [2, 3], "x": 224, "y": 25, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 75, "y": 38, "flags": 1}, + {"matrix": [3, 2], "x": 149, "y": 38, "flags": 1}, + {"matrix": [3, 3], "x": 224, "y": 38, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 51, "flags": 4}, + {"matrix": [4, 1], "x": 75, "y": 51, "flags": 1}, + {"matrix": [4, 2], "x": 149, "y": 51, "flags": 1}, + {"matrix": [4, 3], "x": 224, "y": 51, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}, + {"x": 37, "y": 64, "flags": 0}, + {"matrix": [5, 1], "x": 75, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 149, "y": 64, "flags": 1}, + {"matrix": [5, 3], "x": 224, "y": 64, "flags": 4} + ], "react_on_keyup": true } } diff --git a/keyboards/mechlovin/delphine/rgb_led/rgb_led.c b/keyboards/mechlovin/delphine/rgb_led/rgb_led.c index feda05a071..0f3f1c0889 100644 --- a/keyboards/mechlovin/delphine/rgb_led/rgb_led.c +++ b/keyboards/mechlovin/delphine/rgb_led/rgb_led.c @@ -49,32 +49,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {0, C4_14, C5_14, C6_14}, //D51-24 }; -led_config_t g_led_config = { { - // Key Matrix to LED Index - {0, 1, 2, 3}, - {4, 5, 6, 7}, - {8, 9, 10, 11}, - {12, 13, 14, 15}, - {16, 17, 18, 19}, - {20, 22, 23, 24} - }, - { - //LED Index to Physical Positon - { 0, 0}, { 75, 0}, {149, 0}, {224, 0}, - { 0, 13}, { 75, 13}, {149, 13}, {224, 13}, - { 0, 25}, { 75, 25}, {149, 25}, {224, 25}, - { 0, 38}, { 75, 38}, {149, 38}, {224, 38}, - { 0, 51}, { 75, 51}, {149, 51}, {224, 51}, - { 0, 64}, { 37, 64}, { 75, 64}, {149, 64}, {224, 64}, -}, { - 4, 4, 4, 4, - 4, 1, 1, 4, - 4, 1, 1, 4, - 4, 1, 1, 4, - 4, 1, 1, 4, - 4, 0, 1, 1, 4, -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json b/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json index e2b0ae715e..82911ddaf9 100644 --- a/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json +++ b/keyboards/mechlovin/hannah60rgb/rev1/keyboard.json @@ -69,6 +69,80 @@ "animation": "cycle_pinwheel" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 1}, + {"x": 216, "y": 0, "flags": 1}, + {"matrix": [1, 13], "x": 220, "y": 0, "flags": 1}, + {"matrix": [2, 12], "x": 211, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 1}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 1}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 1}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 1}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 1}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 1}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 1}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 1}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 1}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 1}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 1}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 1}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 1}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 1}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 1}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 1}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 1}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 1}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 1}, + {"x": 192, "y": 32, "flags": 1}, + {"matrix": [2, 13], "x": 208, "y": 32, "flags": 1}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"x": 208, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 192, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 160, "y": 48, "flags": 1}, + {"matrix": [3, 10], "x": 144, "y": 48, "flags": 1}, + {"matrix": [3, 9], "x": 128, "y": 48, "flags": 1}, + {"matrix": [3, 8], "x": 112, "y": 48, "flags": 1}, + {"matrix": [3, 7], "x": 96, "y": 48, "flags": 1}, + {"matrix": [3, 6], "x": 80, "y": 48, "flags": 1}, + {"matrix": [3, 5], "x": 64, "y": 48, "flags": 1}, + {"matrix": [3, 4], "x": 48, "y": 48, "flags": 1}, + {"matrix": [3, 3], "x": 32, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 16, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 8, "y": 48, "flags": 1}, + {"x": 0, "y": 48, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 1}, + {"matrix": [4, 4], "x": 48, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 64, "y": 64, "flags": 1}, + {"x": 80, "y": 64, "flags": 1}, + {"x": 96, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 112, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 144, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 192, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1} + ], "react_on_keyup": true }, "matrix_pins": { diff --git a/keyboards/mechlovin/hannah60rgb/rev1/rev1.c b/keyboards/mechlovin/hannah60rgb/rev1/rev1.c index 139db81bbe..2918d82318 100644 --- a/keyboards/mechlovin/hannah60rgb/rev1/rev1.c +++ b/keyboards/mechlovin/hannah60rgb/rev1/rev1.c @@ -17,28 +17,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - //Key Matrix to LED Index - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, - {29, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 15}, - {30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 16, 43}, - {59, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47, 46, 44}, - {60, 61, 62, NO_LED, 63, NO_LED, 64, NO_LED, 67, NO_LED, 68, 69, 70, 71} -}, { - //LED Index to Physical Positon - { 0, 0}, { 16, 0}, { 32, 0 }, { 48, 0 }, { 64, 0}, { 80, 0}, { 96, 0}, { 112, 0}, { 128, 0}, { 144, 0}, { 160, 0}, { 176, 0}, {192, 0}, {208, 0}, {216, 0}, - {220, 0}, {211, 16}, {200,16 }, {176,16 }, {160,16}, {144,16}, {128,16}, { 112,16}, { 96,16}, { 80,16}, { 64,16}, { 48,16}, {32, 16}, {16, 16}, {0,16}, - { 0, 32}, { 16, 32}, { 32,32 }, { 48,32 }, { 64,32}, { 80,32}, { 96,32}, { 112,32}, { 128,32}, { 144,32}, { 160,32}, { 176,32}, {192, 32}, {208, 32}, {224,48}, - {208, 48}, {192, 48}, {160,48 }, {144,48 }, {128,48}, {112,48}, {96,48}, { 80,48}, { 64,48}, { 48,48}, { 32,48}, { 16,48}, {8, 48}, {0, 48}, {0,48}, - { 0, 64}, { 16, 64}, { 32,64 }, { 48,64 }, { 64,64}, { 80,64}, { 96,64}, { 112,64}, { 144,64}, { 160,64}, { 192,64}, { 224,64}, -}, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json b/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json index 066422b3e3..158e6907b4 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json +++ b/keyboards/mechlovin/hannah60rgb/rev2/keyboard.json @@ -87,6 +87,86 @@ "animation": "cycle_pinwheel" }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 1}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 1}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 1}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 1}, + {"x": 0, "y": 48, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 12, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 16, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 1}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 1}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 1}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 1}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 1}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 1}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 1}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 1}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 1}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 1}, + {"matrix": [3, 3], "x": 32, "y": 48, "flags": 1}, + {"matrix": [3, 4], "x": 48, "y": 48, "flags": 1}, + {"matrix": [3, 5], "x": 64, "y": 48, "flags": 1}, + {"matrix": [3, 6], "x": 80, "y": 48, "flags": 1}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 80, "y": 64, "flags": 1}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 220, "y": 0, "flags": 1}, + {"x": 210, "y": 0, "flags": 1}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 1}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 1}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 1}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 1}, + {"x": 220, "y": 16, "flags": 1}, + {"x": 220, "y": 16, "flags": 1}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 1}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 1}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 1}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 1}, + {"matrix": [2, 13], "x": 220, "y": 32, "flags": 1}, + {"matrix": [3, 7], "x": 96, "y": 48, "flags": 1}, + {"matrix": [3, 8], "x": 112, "y": 48, "flags": 1}, + {"matrix": [3, 9], "x": 128, "y": 48, "flags": 1}, + {"matrix": [3, 10], "x": 144, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 160, "y": 48, "flags": 1}, + {"x": 200, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 220, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 220, "y": 48, "flags": 1}, + {"x": 96, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 144, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 176, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 220, "y": 64, "flags": 1}, + {"matrix": [1, 13], "x": 220, "y": 0, "flags": 1}, + {"x": 0, "y": 0, "flags": 9}, + {"x": 0, "y": 0, "flags": 9}, + {"x": 0, "y": 0, "flags": 9}, + {"x": 0, "y": 0, "flags": 9}, + {"x": 0, "y": 0, "flags": 9}, + {"x": 0, "y": 0, "flags": 9}, + {"x": 0, "y": 0, "flags": 9}, + {"x": 0, "y": 0, "flags": 9} + ], "react_on_keyup": true }, "matrix_pins": { diff --git a/keyboards/mechlovin/hannah60rgb/rev2/rev2.c b/keyboards/mechlovin/hannah60rgb/rev2/rev2.c index 90a42a88a2..0667e8bc78 100644 --- a/keyboards/mechlovin/hannah60rgb/rev2/rev2.c +++ b/keyboards/mechlovin/hannah60rgb/rev2/rev2.c @@ -110,54 +110,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {0, C9_16, C9_11, C7_12},//INDICATOR LED-77 }; -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 18, 19, 20, 21, 36, 37, 38, 39, 40, 41 }, - { 4, 5, 6, 7, 22, 23, 24, 25, 43, 44, 45, 46, 47, 69 }, - { 8, 9, 10, 11, 26, 27, 28, 29, 50, 51, 52, 53, 54, 55 }, - { 13, 14, 15, 30, 31, 32, 33, 56, 57, 58, 59, 60, 62, 63 }, - { 16, 17, 34, NO_LED, NO_LED, NO_LED, 35, NO_LED, NO_LED, NO_LED, 65, 66, 67, 68 } - }, { - //LED Index to Physical Positon - { 0, 0 }, { 16, 0 }, { 32, 0 }, { 48, 0 }, //9-59-68-76 - { 0, 16 }, { 16, 16 }, { 32, 16 }, { 48, 16 }, //10-60-72-77 - { 0, 32 }, { 16, 32 }, { 32, 32 }, { 48, 32 }, //46-61-73-78 - { 0, 48 }, { 0, 48 }, { 12, 48 }, { 16, 48 }, //126-51-63-74 - { 0, 64 }, { 16, 64 }, //56-67 - { 64, 0 }, { 80, 0 }, { 96, 0 }, { 112, 0 }, //80-84-89-94 - { 64, 16 }, { 80, 16 }, { 96, 16 }, { 112, 16 }, //81-85-90-95 - { 64, 32 }, { 80, 32 }, { 96, 32 }, { 112, 32 }, //82-86-91-96 - { 32, 48 }, { 48, 48 }, { 64, 48 }, { 80, 48 }, //79-83-87-92 - { 32, 64 }, { 80, 64 }, //75-93 - { 128, 0 }, { 144, 0 }, { 160, 0 }, { 176, 0 }, { 192, 0 }, { 220, 0 }, { 210, 0 }, //98-102-106-111-116-121-130 - { 128, 16 }, { 144, 16 }, { 160, 16 }, { 176, 16 }, { 192, 16 }, { 220, 16 }, { 220, 16 }, //99-103-107-112-117-129-122 - { 128, 32 }, { 144, 32 }, { 160, 32 }, { 176, 32 }, { 192, 32 }, { 220, 32 }, //100-104-108-113-118-123 - { 96, 48 }, { 112, 48 }, { 128, 48 }, { 144, 48 }, { 160, 48 }, { 200, 48 }, { 220, 48 }, { 220, 48 }, //97-101-105-109-114-119-128-124 - { 96, 64 }, { 144, 64 }, { 160, 64 }, { 176, 64 }, { 220, 64 }, //127-110-115-120-125 - { 220, 0 }, //140 - { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 } - }, { - 1, 1, 1, 1, - 1, 1, 1, 1, - 1, 1, 1, 1, - 1, 1, 1, 1, - 1, 1, - 1, 1, 1, 1, - 1, 1, 1, 1, - 1, 1, 1, 1, - 1, 1, 1, 1, - 1, 1, - 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, - 1, - 9, 9, 9, 9, 9, 9, 9, 9 - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json b/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json index 2ca5e03b36..3709736be0 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json +++ b/keyboards/mechlovin/infinity87/rgb_rev1/keyboard.json @@ -66,6 +66,99 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 14, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 56, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 70, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 98, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 140, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 154, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 168, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 196, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 210, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 14, "y": 16, "flags": 1}, + {"matrix": [1, 2], "x": 28, "y": 16, "flags": 1}, + {"matrix": [1, 3], "x": 42, "y": 16, "flags": 1}, + {"matrix": [1, 4], "x": 56, "y": 16, "flags": 1}, + {"matrix": [1, 5], "x": 70, "y": 16, "flags": 1}, + {"matrix": [1, 6], "x": 84, "y": 16, "flags": 1}, + {"matrix": [1, 7], "x": 98, "y": 16, "flags": 1}, + {"matrix": [1, 8], "x": 112, "y": 16, "flags": 1}, + {"matrix": [1, 9], "x": 126, "y": 16, "flags": 1}, + {"matrix": [1, 10], "x": 140, "y": 16, "flags": 1}, + {"matrix": [1, 11], "x": 154, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 168, "y": 16, "flags": 1}, + {"matrix": [1, 13], "x": 182, "y": 16, "flags": 1}, + {"matrix": [1, 14], "x": 196, "y": 16, "flags": 1}, + {"matrix": [1, 15], "x": 210, "y": 16, "flags": 1}, + {"matrix": [1, 16], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 14, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 28, "y": 32, "flags": 1}, + {"matrix": [2, 3], "x": 42, "y": 32, "flags": 1}, + {"matrix": [2, 4], "x": 56, "y": 32, "flags": 1}, + {"matrix": [2, 5], "x": 70, "y": 32, "flags": 1}, + {"matrix": [2, 6], "x": 84, "y": 32, "flags": 1}, + {"matrix": [2, 7], "x": 98, "y": 32, "flags": 1}, + {"matrix": [2, 8], "x": 112, "y": 32, "flags": 1}, + {"matrix": [2, 9], "x": 126, "y": 32, "flags": 1}, + {"matrix": [2, 10], "x": 140, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 154, "y": 32, "flags": 1}, + {"matrix": [2, 12], "x": 168, "y": 32, "flags": 1}, + {"matrix": [2, 13], "x": 182, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 196, "y": 32, "flags": 1}, + {"matrix": [2, 15], "x": 210, "y": 32, "flags": 1}, + {"matrix": [2, 16], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 14, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 28, "y": 48, "flags": 1}, + {"matrix": [3, 3], "x": 42, "y": 48, "flags": 1}, + {"matrix": [3, 4], "x": 56, "y": 48, "flags": 1}, + {"matrix": [3, 5], "x": 70, "y": 48, "flags": 1}, + {"matrix": [3, 6], "x": 84, "y": 48, "flags": 1}, + {"matrix": [3, 7], "x": 98, "y": 48, "flags": 1}, + {"matrix": [3, 8], "x": 112, "y": 48, "flags": 1}, + {"matrix": [3, 9], "x": 126, "y": 48, "flags": 1}, + {"matrix": [3, 10], "x": 140, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 154, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 168, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 182, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 28, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 4], "x": 56, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 70, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 84, "y": 64, "flags": 1}, + {"matrix": [4, 7], "x": 98, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 112, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 126, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 140, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 154, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 168, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 182, "y": 64, "flags": 1}, + {"matrix": [4, 15], "x": 210, "y": 64, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 80, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 80, "flags": 1}, + {"matrix": [5, 2], "x": 28, "y": 80, "flags": 1}, + {"matrix": [5, 6], "x": 84, "y": 80, "flags": 1}, + {"matrix": [5, 10], "x": 140, "y": 80, "flags": 1}, + {"matrix": [5, 11], "x": 154, "y": 80, "flags": 1}, + {"matrix": [5, 12], "x": 168, "y": 80, "flags": 1}, + {"matrix": [5, 13], "x": 182, "y": 80, "flags": 1}, + {"matrix": [5, 14], "x": 196, "y": 80, "flags": 1}, + {"matrix": [5, 15], "x": 210, "y": 80, "flags": 1}, + {"matrix": [5, 16], "x": 224, "y": 80, "flags": 1} + ], "sleep": true }, "matrix_pins": { diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c b/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c index 8df305bb1a..ae4dfef158 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c +++ b/keyboards/mechlovin/infinity87/rgb_rev1/rgb_rev1.c @@ -111,31 +111,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW9_CS19, SW9_CS20, SW9_CS21}, //D165-K2G-90 }; -led_config_t g_led_config = { { - // Key Matrix to LED Index - {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}, - {17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33}, - {34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50}, - {51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, NO_LED, NO_LED, NO_LED}, - {65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, NO_LED, 79, NO_LED}, - {80, 81, 82, NO_LED, NO_LED, NO_LED, 83, NO_LED, NO_LED, NO_LED, 84, 85, 86, 87, 88, 89, 90} - }, { - {0, 0}, {14, 0}, {28, 0}, {42, 0}, {56, 0}, {70, 0}, {84, 0}, {98, 0}, {112, 0}, {126, 0}, {140, 0}, {154, 0}, {168, 0}, {182, 0}, {196, 0}, {210, 0}, {224, 0}, - {0,16}, {14,16}, {28,16}, {42, 16}, {56, 16}, {70, 16}, {84, 16}, {98, 16}, {112, 16}, {126, 16}, {140, 16}, {154, 16}, {168, 16}, {182, 16}, {196, 16}, {210, 16}, {224, 16}, - {0,32}, {14,32}, {28,32}, {42, 32}, {56, 32}, {70, 32}, {84, 32}, {98, 32}, {112, 32}, {126, 32}, {140, 32}, {154, 32}, {168, 32}, {182, 32}, {196, 32}, {210, 32}, {224, 32}, - {0,48}, {14,48}, {28,48}, {42, 48}, {56, 48}, {70, 48}, {84, 48}, {98, 48}, {112, 48}, {126, 48}, {140, 48}, {154, 48}, {168, 48}, {182, 48}, - {0,64}, {14,64}, {28,64}, {42, 64}, {56, 64}, {70, 64}, {84, 64}, {98, 64}, {112, 64}, {126, 64}, {140, 64}, {154, 64}, {168, 64}, {182, 64}, {210, 64}, - {0,80}, {14,80}, {28,80}, {84, 80}, {140, 80}, {154, 80}, {168, 80}, {182, 80}, {196, 80}, {210, 80}, {224, 80} - }, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 - } }; - - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/mechlovin/infinity875/infinity875.c b/keyboards/mechlovin/infinity875/infinity875.c deleted file mode 100644 index 09749bbc2b..0000000000 --- a/keyboards/mechlovin/infinity875/infinity875.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright 2021 Mechlovin' 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 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - //Key Matrix to LED Index - {0, 1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED} -}, { - //LED Index to Physical Positon - {0,0}, {14,0}, {28,0}, {42,0}, {56,0}, {67,0}, {70,0}, {84,0}, {98,0}, {112,0}, {126,0}, {140,0}, {154,0}, {168,0}, {182,0}, {196,0}, {210,0}, {224,0}, - {224,13}, {196,13}, {182,13}, {154,13}, {112,13}, {84,13}, {56,13}, {28,13}, {0,13}, - {0,25}, {0,38}, - {0,51}, {0,64}, - {28,64}, {56,64}, - {84,64}, {112,64}, {154,64}, {182,64}, {196,64}, {224,64}, {224,51}, {224,38}, {224,25}, -//{244,64}, {196,64}, {182,64}, {154,64}, {112,64}, {84,64}, {56,64}, {28,64}, {0,64}, -}, { - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, - 1, 1, - 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, -} }; -#endif - diff --git a/keyboards/mechlovin/infinity875/keyboard.json b/keyboards/mechlovin/infinity875/keyboard.json index 1016178caa..223fce2cac 100644 --- a/keyboards/mechlovin/infinity875/keyboard.json +++ b/keyboards/mechlovin/infinity875/keyboard.json @@ -15,6 +15,50 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 14, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 42, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 56, "y": 0, "flags": 1}, + {"x": 67, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 70, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 98, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 140, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 154, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 168, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 182, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 196, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 210, "y": 0, "flags": 1}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1}, + {"x": 224, "y": 13, "flags": 1}, + {"x": 196, "y": 13, "flags": 1}, + {"x": 182, "y": 13, "flags": 1}, + {"x": 154, "y": 13, "flags": 1}, + {"x": 112, "y": 13, "flags": 1}, + {"x": 84, "y": 13, "flags": 1}, + {"x": 56, "y": 13, "flags": 1}, + {"x": 28, "y": 13, "flags": 1}, + {"x": 0, "y": 13, "flags": 1}, + {"x": 0, "y": 25, "flags": 1}, + {"x": 0, "y": 38, "flags": 1}, + {"x": 0, "y": 51, "flags": 1}, + {"x": 0, "y": 64, "flags": 1}, + {"x": 28, "y": 64, "flags": 1}, + {"x": 56, "y": 64, "flags": 1}, + {"x": 84, "y": 64, "flags": 1}, + {"x": 112, "y": 64, "flags": 1}, + {"x": 154, "y": 64, "flags": 1}, + {"x": 182, "y": 64, "flags": 1}, + {"x": 196, "y": 64, "flags": 1}, + {"x": 224, "y": 64, "flags": 1}, + {"x": 224, "y": 51, "flags": 1}, + {"x": 224, "y": 38, "flags": 1}, + {"x": 224, "y": 25, "flags": 1} + ], "max_brightness": 200, "sleep": true }, From 3934a7f3c8e153d020d84fc5823379d3af21cfe9 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 03:18:16 -0600 Subject: [PATCH 042/255] Migrate `g_led_config` to DD (I) (#25600) --- keyboards/idobao/id42/id42.c | 45 ------- keyboards/idobao/id42/keyboard.json | 44 +++++++ keyboards/idobao/id61/id61.c | 68 ---------- keyboards/idobao/id61/keyboard.json | 73 +++++++++++ keyboards/idobao/id63/id63.c | 68 ---------- keyboards/idobao/id63/keyboard.json | 77 +++++++++++ keyboards/idobao/id67/id67.c | 68 ---------- keyboards/idobao/id67/keyboard.json | 79 +++++++++++ keyboards/idobao/id75/v2/keyboard.json | 89 ++++++++++++- keyboards/idobao/id75/v2/v2.c | 49 ------- keyboards/idobao/id80/v3/ansi/ansi.c | 76 ----------- keyboards/idobao/id80/v3/ansi/keyboard.json | 96 ++++++++++++++ keyboards/idobao/id87/v2/keyboard.json | 105 +++++++++++++++ keyboards/idobao/id87/v2/v2.c | 83 ------------ keyboards/idobao/montex/v1rgb/keyboard.json | 33 +++++ keyboards/idobao/montex/v1rgb/v1rgb.c | 58 --------- keyboards/idobao/montex/v2/keyboard.json | 33 +++++ keyboards/idobao/montex/v2/v2.c | 82 ------------ keyboards/idyllic/tinny50_rgb/keyboard.json | 34 ++++- keyboards/idyllic/tinny50_rgb/tinny50_rgb.c | 45 ------- keyboards/ilumkb/simpler61/keyboard.json | 63 +++++++++ keyboards/ilumkb/simpler61/simpler61.c | 23 ---- keyboards/ilumkb/simpler64/keyboard.json | 66 ++++++++++ keyboards/ilumkb/simpler64/simpler64.c | 23 ---- keyboards/inett_studio/sqx/hotswap/hotswap.c | 38 ------ .../inett_studio/sqx/hotswap/keyboard.json | 66 ++++++++++ .../inett_studio/sqx/universal/keyboard.json | 74 +++++++++++ .../inett_studio/sqx/universal/universal.c | 42 ------ keyboards/input_club/k_type/k_type.c | 51 -------- keyboards/input_club/k_type/keyboard.json | 123 +++++++++++++++++- 30 files changed, 1052 insertions(+), 822 deletions(-) delete mode 100755 keyboards/idobao/id42/id42.c delete mode 100644 keyboards/idobao/id61/id61.c delete mode 100644 keyboards/idobao/id63/id63.c delete mode 100644 keyboards/idobao/id67/id67.c delete mode 100644 keyboards/idobao/id75/v2/v2.c delete mode 100644 keyboards/idobao/id80/v3/ansi/ansi.c delete mode 100644 keyboards/idobao/id87/v2/v2.c delete mode 100755 keyboards/idobao/montex/v1rgb/v1rgb.c delete mode 100755 keyboards/idobao/montex/v2/v2.c delete mode 100644 keyboards/idyllic/tinny50_rgb/tinny50_rgb.c diff --git a/keyboards/idobao/id42/id42.c b/keyboards/idobao/id42/id42.c deleted file mode 100755 index 5e76e4c5be..0000000000 --- a/keyboards/idobao/id42/id42.c +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2022 Vino Rodrigues (@vinorodrigues) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#define __ NO_LED - -#ifdef RGB_MATRIX_ENABLE - -/* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ - * │41 │40 │39 │38 │37 │36 │35 │34 │33 │32 │31 │30 │ - * ├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴───┤ - * │ 29 │28 │27 │26 │25 │24 │23 │22 │21 │20 │ 19 │ - * ├────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴──┬┴──┬───┤ - * │ 18 │17 │16 │15 │14 │13 │12 │11 │ 10 │ 9 │ 8 │ - * ├────┬┴──┬┴───┼───┴───┴─┬─┴───┴───┼─┬───┼───┼───┤ - * │ 7 │ 6 │ 5 │ 4 │ 3 │ │ 2 │ 1 │ 0 │ - * └────┴───┴────┴─────────┴─────────┘ └───┴───┴───┘ - */ -led_config_t g_led_config = { { - // Key Matrix to LED Index - // WS2812 LED strings are addressed from 0 (1st) to RGB_MATRIX_LED_COUNT-1 (last) - { 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30 }, - { 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, __, 19 }, - { 18, 17, 16, 15, 14, 13, 12, 11, 10, __, 9, 8 }, - { 7, 6, 5, 4, __, __, 3, __, __, 2, 1, 0 } -}, { - // LED Index to Physical Position - // **NB**: Reversed order - // Generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser - {224,64 }, {204,64 }, {183,64 }, {135,64 }, { 84,64 }, { 48,64 }, { 25,64 }, { 3,64 }, - {224,43 }, {204,43 }, {181,43 }, {158,43 }, {137,43 }, {117,43 }, { 97,43 }, { 76,43 }, { 56,43 }, { 36,43 }, { 8,43 }, - {216,21 }, {188,21 }, {168,21 }, {148,21 }, {127,21 }, {107,21 }, { 87,21 }, { 66,21 }, { 46,21 }, { 25,21 }, { 3,21 }, - {224,0 }, {204,0 }, {183,0 }, {163,0 }, {143,0 }, {122,0 }, {102,0 }, { 81,0 }, { 61,0 }, { 41,0 }, { 20,0 }, { 0,0 } -}, { - // LED Index to Flag - // **NB**: Reversed order - 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 4, - 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, - 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4 -} }; - -#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/id42/keyboard.json b/keyboards/idobao/id42/keyboard.json index 0f1cecd16a..d726f04e78 100644 --- a/keyboards/idobao/id42/keyboard.json +++ b/keyboards/idobao/id42/keyboard.json @@ -56,6 +56,50 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [3, 11], "x": 224, "y": 64, "flags": 4}, + {"matrix": [3, 10], "x": 204, "y": 64, "flags": 4}, + {"matrix": [3, 9], "x": 183, "y": 64, "flags": 4}, + {"matrix": [3, 6], "x": 135, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 84, "y": 64, "flags": 4}, + {"matrix": [3, 2], "x": 48, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 25, "y": 64, "flags": 4}, + {"matrix": [3, 0], "x": 3, "y": 64, "flags": 4}, + {"matrix": [2, 11], "x": 224, "y": 43, "flags": 4}, + {"matrix": [2, 10], "x": 204, "y": 43, "flags": 4}, + {"matrix": [2, 8], "x": 181, "y": 43, "flags": 4}, + {"matrix": [2, 7], "x": 158, "y": 43, "flags": 1}, + {"matrix": [2, 6], "x": 137, "y": 43, "flags": 1}, + {"matrix": [2, 5], "x": 117, "y": 43, "flags": 1}, + {"matrix": [2, 4], "x": 97, "y": 43, "flags": 1}, + {"matrix": [2, 3], "x": 76, "y": 43, "flags": 1}, + {"matrix": [2, 2], "x": 56, "y": 43, "flags": 1}, + {"matrix": [2, 1], "x": 36, "y": 43, "flags": 1}, + {"matrix": [2, 0], "x": 8, "y": 43, "flags": 4}, + {"matrix": [1, 11], "x": 216, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 188, "y": 21, "flags": 1}, + {"matrix": [1, 8], "x": 168, "y": 21, "flags": 1}, + {"matrix": [1, 7], "x": 148, "y": 21, "flags": 1}, + {"matrix": [1, 6], "x": 127, "y": 21, "flags": 1}, + {"matrix": [1, 5], "x": 107, "y": 21, "flags": 1}, + {"matrix": [1, 4], "x": 87, "y": 21, "flags": 1}, + {"matrix": [1, 3], "x": 66, "y": 21, "flags": 1}, + {"matrix": [1, 2], "x": 46, "y": 21, "flags": 1}, + {"matrix": [1, 1], "x": 25, "y": 21, "flags": 1}, + {"matrix": [1, 0], "x": 3, "y": 21, "flags": 4}, + {"matrix": [0, 11], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 204, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 183, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 163, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 143, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 122, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 102, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 81, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 61, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 41, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/idobao/id61/id61.c b/keyboards/idobao/id61/id61.c deleted file mode 100644 index bd2271049b..0000000000 --- a/keyboards/idobao/id61/id61.c +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Vino Rodrigues (@vinorodrigues) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#define __ NO_LED - -#if defined(RGB_MATRIX_ENABLE) - -/* Pre-key - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │60 │59 │58 │57 │56 │55 │54 │53 │52 │51 │50 │49 │48 │ 47 │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ - * │ 46 │45 │44 │43 │42 │41 │40 │39 │38 │37 │36 │35 │34 │ 33 │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │ 32 │31 │30 │29 │28 │27 │26 │25 │24 │23 │22 │21 │ 20 │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ - * │ 19 │18 │17 │16 │15 │14 │13 │12 │11 │10 │ 9 │ 8 │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ - * │ 7 │ 6 │ 5 │ 4 │ 3 │ 2 │ 1 │ 0 │ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ - * - * Underglow (from top / [Esc] = top left) - * ┌────┬────┬────┬────┬────┐ - * │ 61 │ 62 │ 63 │ 64 │ 65 │ - * ├────┴────┴────┴────┴────┤ - * ├────┬────┬────┬────┬────┤ - * │ 70 │ 69 │ 68 │ 67 │ 66 │ - * └────┴────┴────┴────┴────┘ - */ - -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49, 48, 47 }, - { 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33 }, - { 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, 22, 21, 20, __ }, - { 19, __, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, __ }, - { 7, 6, 5, __, __, __, 4, __, __, __, 3, 2, 1, 0 }, -}, { - // LED Index to Physical Position - // generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser - /* NB: Reverse order! */ - {224,64 }, {204,64 }, {184,64 }, {163,64 }, {103,64 }, { 42,64 }, { 22,64 }, { 2,64 }, - {212,48 }, {182,48 }, {165,48 }, {149,48 }, {133,48 }, {117,48 }, {101,48 }, { 85,48 }, { 69,48 }, { 52,48 }, { 36,48 }, { 10,48 }, - {216,32 }, {190,32 }, {174,32 }, {157,32 }, {141,32 }, {125,32 }, {109,32 }, { 93,32 }, { 77,32 }, { 61,32 }, { 44,32 }, { 28,32 }, { 6,32 }, - {222,16 }, {202,16 }, {186,16 }, {170,16 }, {153,16 }, {137,16 }, {121,16 }, {105,16 }, { 89,16 }, { 73,16 }, { 57,16 }, { 40,16 }, { 24,16 }, { 4,16 }, - {218,0 }, {194,0 }, {178,0 }, {161,0 }, {145,0 }, {129,0 }, {113,0 }, { 97,0 }, { 81,0 }, { 65,0 }, { 48,0 }, { 32,0 }, { 16,0 }, { 0,0 } - // underglow LEDs (positions pushed to nearest edge to match edge key colors) - #ifndef ID61_DISABLE_UNDERGLOW - , { 0,0 }, { 56,0 }, { 112,0 }, {168,0 }, {224,0 }, - {224,64 }, {168,64 }, {112,64 }, { 56,64 }, { 0,64 } - #endif -}, { - // LED Index to Flag - /* NB: Reverse order! */ - 1, 1, 1, 1, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 - // underglow LEDs - #ifndef ID61_DISABLE_UNDERGLOW - , 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2 - #endif -} }; - -#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/id61/keyboard.json b/keyboards/idobao/id61/keyboard.json index d3bf62c726..af0c29788d 100644 --- a/keyboards/idobao/id61/keyboard.json +++ b/keyboards/idobao/id61/keyboard.json @@ -56,6 +56,79 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 204, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 184, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 163, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 103, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [3, 12], "x": 212, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 182, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 149, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 133, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 117, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 101, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 85, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [2, 12], "x": 216, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 190, "y": 32, "flags": 1}, + {"matrix": [2, 10], "x": 174, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 157, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 141, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 125, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 109, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 93, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 77, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 9}, + {"matrix": [1, 13], "x": 222, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 202, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 186, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 170, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 153, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 137, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 121, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 105, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 89, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 73, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 57, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [0, 13], "x": 218, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 194, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 178, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 161, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 65, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 56, "y": 0, "flags": 2}, + {"x": 112, "y": 0, "flags": 2}, + {"x": 168, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 168, "y": 64, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 56, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2} + ], "max_brightness": 170, "sleep": true }, diff --git a/keyboards/idobao/id63/id63.c b/keyboards/idobao/id63/id63.c deleted file mode 100644 index f425eb4fe4..0000000000 --- a/keyboards/idobao/id63/id63.c +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2022 Vino Rodrigues (@vinorodrigues) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#define __ NO_LED - -#ifdef RGB_MATRIX_ENABLE - -/* Pre-key LED addresses - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ - * │62 │61 │60 │59 │58 │57 │56 │55 │54 │53 │52 │51 │50 │ 49 │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ - * │ 48 │47 │46 │45 │44 │43 │42 │41 │40 │39 │38 │37 │36 │ 35 │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ - * │ 34 │33 │32 │31 │30 │29 │28 │27 │26 │25 │24 │23 │ 22 │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┬───┤ - * │ 21 │20 │19 │18 │17 │16 │15 │14 │13 │12 │ 11 │10 │ 9 │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ - * │ 8 │ 7 │ 6 │ 5 │ 4 │ 3 │ 2 │ 1 │ 0 │ - * └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ - * - * Underglow LED addresses (as seen from top / [Esc] = top left) - * ┌────┬────┬────┬────┬────┬────┐ - * │ 63 │ 64 │ 65 │ 66 │ 67 │ 68 │ - * ├────┴────┴────┴────┴────┴────┤ - * ├────┬────┬────┬────┬────┬────┤ - * │ 74 │ 73 │ 72 │ 71 │ 70 │ 69 │ - * └────┴────┴────┴────┴────┴────┘ - */ - -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52, 51, 50, 49 }, - { 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35 }, - { 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24, 23, __, 22 }, - { 21, __, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9 }, - { 8, 7, __, 6, __, __, 5, __, __, 4, 3, 2, 1, 0 }, -}, { - // LED Index to Physical Position - // generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser - /* NB: Reverse & upside-down order! */ - {224,64 }, {208,64 }, {192,64 }, {176,64 }, {160,64 }, {102,64 }, { 42,64 }, { 22,64 }, { 2,64 }, - {224,48 }, {208,48 }, {186,48 }, {164,48 }, {148,48 }, {132,48 }, {116,48 }, {100,48 }, { 84,48 }, { 68,48 }, { 52,48 }, { 36,48 }, { 10,48 }, - {214,32 }, {188,32 }, {172,32 }, {156,32 }, {140,32 }, {124,32 }, {108,32 }, { 92,32 }, { 76,32 }, { 60,32 }, { 44,32 }, { 28,32 }, { 6,32 }, - {220,16 }, {200,16 }, {184,16 }, {168,16 }, {152,16 }, {136,16 }, {120,16 }, {104,16 }, { 88,16 }, { 72,16 }, { 56,16 }, { 40,16 }, { 24,16 }, { 4,16 }, - {216,0 }, {192,0 }, {176,0 }, {160,0 }, {144,0 }, {128,0 }, {112,0 }, { 96,0 }, { 80,0 }, { 64,0 }, { 48,0 }, { 32,0 }, { 16,0 }, { 0,0 } - // underglow LEDs (positions pushed to nearest edge to match edge key colors) - #ifndef ID63_DISABLE_UNDERGLOW - , { 0,0 }, { 45,0 }, { 90,0 }, {134,0 }, {179,0 }, {224,0 }, - {224,64 }, {179,64 }, {134,64 }, { 90,64 }, { 45,64 }, { 0,64 } - #endif -}, { - // LED Index to Flag - /* NB: Reverse & upside-down order! */ - 4, 4, 4, 1, 1, 4, 1, 1, 1, - 1, 4, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 - // underglow LEDs - #ifndef ID63_DISABLE_UNDERGLOW - , 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2 - #endif -} }; - -#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/id63/keyboard.json b/keyboards/idobao/id63/keyboard.json index 141c1263d1..bfe0ac7cbe 100644 --- a/keyboards/idobao/id63/keyboard.json +++ b/keyboards/idobao/id63/keyboard.json @@ -56,6 +56,83 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 176, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 102, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 186, "y": 48, "flags": 1}, + {"matrix": [3, 10], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [2, 13], "x": 214, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 1}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 9}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 1}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 1}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 45, "y": 0, "flags": 2}, + {"x": 90, "y": 0, "flags": 2}, + {"x": 134, "y": 0, "flags": 2}, + {"x": 179, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 179, "y": 64, "flags": 2}, + {"x": 134, "y": 64, "flags": 2}, + {"x": 90, "y": 64, "flags": 2}, + {"x": 45, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/idobao/id67/id67.c b/keyboards/idobao/id67/id67.c deleted file mode 100644 index dab6347eb3..0000000000 --- a/keyboards/idobao/id67/id67.c +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2021 Tybera (@tybera) -// Copyright 2021 Werther (@thewerther) -// Copyright 2022 Vino Rodrigues (@vinorodrigues) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#define __ NO_LED - -#if defined(RGB_MATRIX_ENABLE) - -/* NB!!: Indices are reversed on the physical board, top left is bottom right. - * These "LED Index to *" arrays are in that reversed order! - * i.e., Space row on top, listed right to left */ -led_config_t g_led_config = { { - /* Under- / Per-Key - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┬───┐ - * │66 │65 │64 │63 │62 │61 │60 │59 │58 │57 │56 │55 │54 │ 53 │52 │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ - * │ 51 │50 │49 │48 │47 │46 │45 │44 │43 │42 │41 │40 │39 │ 38 │37 │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ - * │ 36 │35 │34 │33 │32 │31 │30 │29 │28 │27 │26 │25 │ 24 │23 │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ - * │ 22 │21 │20 │19 │18 │17 │16 │15 │14 │13 │12 │ 11 │10 │ 9 │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ - * │ 8 │ 7 │ 6 │ 5 │ 4 │ 3 │ │ 2 │ 1 │ 0 │ - * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ - * - * Bottom Side (as seen from top orientation) - * 67 68 69 70 71 - * 76 75 74 73 72 - */ - // Key Matrix to LED Index - {66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52}, - {51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38, 37}, - {36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, __, 24, 23}, - {22, __, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9}, - { 8, 7, __, 6, __, __, 5, __, __, __, 4, 3, 2, 1, 0}, -}, { - // LED Index to Physical Position - // based on: https://gist.github.com/vinorodrigues/07fd735683856b2a06c7c52b9b3878cb - // **NB: In reverse order** - {224,64 }, {209,64 }, {194,64 }, {170,64 }, {151,64 }, { 95,64 }, { 39,64 }, { 21,64 }, { 2,64 }, - {224,48 }, {209,48 }, {189,48 }, {168,48 }, {153,48 }, {138,48 }, {123,48 }, {108,48 }, { 93,48 }, { 78,48 }, { 63,48 }, { 49,48 }, { 34,48 }, { 9,48 }, - {224,32 }, {200,32 }, {175,32 }, {161,32 }, {146,32 }, {131,32 }, {116,32 }, {101,32 }, { 86,32 }, { 71,32 }, { 56,32 }, { 41,32 }, { 26,32 }, { 6,32 }, - {224,16 }, {205,16 }, {187,16 }, {172,16 }, {157,16 }, {142,16 }, {127,16 }, {112,16 }, { 97,16 }, { 82,16 }, { 67,16 }, { 52,16 }, { 37,16 }, { 22,16 }, { 4,16 }, - {224,0 }, {202,0 }, {179,0 }, {164,0 }, {149,0 }, {134,0 }, {119,0 }, {105,0 }, { 90,0 }, { 75,0 }, { 60,0 }, { 45,0 }, { 30,0 }, { 15,0 }, { 0,0 } - // underglow LEDs - #ifndef ID67_DISABLE_UNDERGLOW - , {0, 0}, {56, 0}, {112, 0}, {168, 0}, {224, 0}, - {224, 64}, {168, 64}, {112, 64}, {56, 64}, {0, 64} - #endif -}, { - // LED Index to Flag - // **NB: In reverse order** - 1, 1, 1, 1, 1, 4, 1, 1, 1, // fifth/bottom row - 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // fourth row - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 9, // third row - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // second row - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1 // first/top row - // underglow LEDs - #ifndef ID67_DISABLE_UNDERGLOW - , 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2 - #endif -} }; - -#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/id67/keyboard.json b/keyboards/idobao/id67/keyboard.json index 786ed39be0..025b965050 100644 --- a/keyboards/idobao/id67/keyboard.json +++ b/keyboards/idobao/id67/keyboard.json @@ -56,6 +56,85 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 194, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 170, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 151, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 95, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 209, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 1}, + {"matrix": [3, 11], "x": 168, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 153, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 123, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 108, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 93, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 78, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 63, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [2, 13], "x": 200, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 175, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 9}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [1, 13], "x": 205, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 179, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 164, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 149, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 134, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 119, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 56, "y": 0, "flags": 2}, + {"x": 112, "y": 0, "flags": 2}, + {"x": 168, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 168, "y": 64, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 56, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/idobao/id75/v2/keyboard.json b/keyboards/idobao/id75/v2/keyboard.json index 743c7cf404..068c01a785 100644 --- a/keyboards/idobao/id75/v2/keyboard.json +++ b/keyboards/idobao/id75/v2/keyboard.json @@ -44,7 +44,94 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"x": 8, "y": 12, "flags": 2}, + {"x": 60, "y": 12, "flags": 2}, + {"x": 112, "y": 12, "flags": 2}, + {"x": 164, "y": 12, "flags": 2}, + {"x": 216, "y": 12, "flags": 2}, + {"x": 216, "y": 60, "flags": 2}, + {"x": 164, "y": 60, "flags": 2}, + {"x": 112, "y": 60, "flags": 2}, + {"x": 60, "y": 60, "flags": 2}, + {"x": 8, "y": 60, "flags": 2}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 176, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 144, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 7], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 64, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 208, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4} + ] }, "build": { "lto": true diff --git a/keyboards/idobao/id75/v2/v2.c b/keyboards/idobao/id75/v2/v2.c deleted file mode 100644 index 55d58d92e1..0000000000 --- a/keyboards/idobao/id75/v2/v2.c +++ /dev/null @@ -1,49 +0,0 @@ -/* Copyright 2022 peepeetee - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index -{ 84, 83, 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70 }, -{ 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55 }, -{ 54, 53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40 }, -{ 39, 38, 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25 }, -{ 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10 } -}, { - // LED Index to Physical Position -{8, 12},{60, 12},{112, 12},{164, 12},{216, 12}, -{216, 60},{164, 60},{112, 60},{60, 60},{8, 60}, - - -{224, 64}, {208, 64}, {192, 64}, {176, 64}, {160, 64}, {144, 64}, {128, 64}, {112, 64}, {96, 64}, {80, 64}, {64, 64}, {48, 64}, {32, 64}, {16, 64}, {0, 64}, -{224, 48}, {208, 48}, {192, 48}, {176, 48}, {160, 48}, {144, 48}, {128, 48}, {112, 48}, {96, 48}, {80, 48}, {64, 48}, {48, 48}, {32, 48}, {16, 48}, {0, 48}, -{224, 32}, {208, 32}, {192, 32}, {176, 32}, {160, 32}, {144, 32}, {128, 32}, {112, 32}, {96, 32}, {80, 32}, {64, 32}, {48, 32}, {32, 32}, {16, 32}, {0, 32}, -{224, 16}, {208, 16}, {192, 16}, {176, 16}, {160, 16}, {144, 16}, {128, 16}, {112, 16}, {96, 16}, {80, 16}, {64, 16}, {48, 16}, {32, 16}, {16, 16}, {0, 16}, -{224, 0}, {208, 0}, {192, 0}, {176, 0}, {160, 0}, {144, 0}, {128, 0}, {112, 0}, {96, 0}, {80, 0}, {64, 0}, {48, 0}, {32, 0}, {16, 0}, {0, 0}, - -}, { - // LED Index to Flag -2,2,2,2,2,2,2,2,2,2, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - -} }; - -#endif diff --git a/keyboards/idobao/id80/v3/ansi/ansi.c b/keyboards/idobao/id80/v3/ansi/ansi.c deleted file mode 100644 index 75f995fbbe..0000000000 --- a/keyboards/idobao/id80/v3/ansi/ansi.c +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2022 Vino Rodrigues (@vinorodrigues) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#define __ NO_LED - -#ifdef RGB_MATRIX_ENABLE - -/* Per-key LED's - * ┌───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┬───┬───┬───┐┌───┐┌───┐ - * │79 ││78 │77 │76 │75 ││74 │73 │72 │71 ││70 │69 │68 │67 ││66 ││65 │ - * ├───┼┴──┬┴──┬┴──┬┴──┬┴┴─┬─┴─┬─┴─┬─┴─┬─┴┴┬──┴┬──┴┬──┴┬──┴┴───┤├───┤ - * │64 │63 │62 │61 │60 │59 │58 │57 │56 │55 │54 │53 │52 │ 51 ││50 │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤├───┤ - * │ 49 │48 │47 │46 │45 │44 │43 │42 │41 │40 │39 │38 │37 │ 36 ││35 │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤└───┘ - * │ 34 │33 │32 │31 │30 │29 │28 │27 │26 │25 │24 │23 │ 22 │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┘ - * │ 21 │20 │19 │18 │17 │16 │15 │14 │13 │12 │11 │ 10 │┌───┐ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┘│ 9 │ - * │ 8 │ 7 │ 6 │ 5 │ 4 │ 3 │┌───┼───┼───┐ - * └────┴────┴────┴────────────────────────┴─────┴─────┘│ 2 │ 1 │ 0 │ - * └───┴───┴───┘ - * Underglow (as seen from top) - * ┌────┬────┬────┬────┬────┬────┐ - * │ 80 │ 81 │ 82 │ 83 │ 84 │ 85 │ - * ├────┼────┴────┴────┴────┼────┤ - * │ 93 │ │ 86 │ - * ├────┼────┬────┬────┬────┼────┤ - * │ 92 │ 91 │ 90 │ 89 │ 88 │ 87 │ - * └────┴────┴────┴────┴────┴────┘ - */ - -led_config_t g_led_config = { { - // Key Matrix to LED Index - /* Generated with: https://xelus.netlify.app/guides/KLE_to_RGB_parser */ - { 8, 21, 34, 49, 64, 79, __, __, __, __, __ }, - { 7, __, 33, 48, 63, 78, __, __, __, __, __ }, - { 6, 20, 32, 47, 62, 77, __, __, 35, 50, 65 }, - { 0, 19, 31, 46, 61, 76, 9, __, 36, __, 67 }, - { 1, 18, 30, 45, 60, 75, 10, 22, 37, 52, 68 }, - { 2, 17, 29, 44, 59, 74, 11, 23, 38, 53, 69 }, - { 5, 16, 28, 43, 58, 73, __, __, __, 51, 66 }, - { 3, 15, 27, 42, 57, 72, 12, 24, 39, 54, 70 }, - { 4, 14, 26, 41, 56, 71, 13, 25, 40, 55, __ }, -}, { - /* NB: Reversed order */ - // per-key - {224,64 }, {209,64 }, {195,64 }, {173,61 }, {151,61 }, { 94,61 }, { 39,61 }, { 20,61 }, { 2,61 }, - {209,52 }, {185,49 }, {165,49 }, {151,49 }, {136,49 }, {121,49 }, {106,49 }, { 92,49 }, { 77,49 }, { 62,49 }, { 48,49 }, { 33,49 }, { 9,49 }, - {196,38 }, {173,38 }, {158,38 }, {143,38 }, {129,38 }, {114,38 }, { 99,38 }, { 84,38 }, { 70,38 }, { 55,38 }, { 40,38 }, { 26,38 }, { 6,38 }, - {224,26 }, {202,26 }, {184,26 }, {169,26 }, {154,26 }, {140,26 }, {125,26 }, {110,26 }, { 95,26 }, { 81,26 }, { 66,26 }, { 51,26 }, { 37,26 }, { 22,26 }, { 4,26 }, - {224,15 }, {198,15 }, {176,15 }, {162,15 }, {147,15 }, {132,15 }, {118,15 }, {103,15 }, { 88,15 }, { 73,15 }, { 59,15 }, { 44,15 }, { 29,15 }, { 15,15 }, { 0,15 }, - {224,0 }, {206,0 }, {187,0 }, {173,0 }, {158,0 }, {143,0 }, {125,0 }, {110,0 }, { 95,0 }, { 81,0 }, { 62,0 }, { 48,0 }, { 33,0 }, { 18,0 }, { 0,0 }, - // underglow - { 0,0 }, { 45,0 }, { 90,0 }, {134,0 }, {179,0 }, {224,0 }, - {224,32 }, - {224,64 }, {179,64 }, {134,64 }, { 90,64 }, { 45,64 }, { 0,64 }, - { 0,32 } -}, { - /* NB: Reversed order */ - 4, 4, 4, 4, 4, 1, 4, 4, 4, - 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, - 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, - 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, - 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - // - 2, 2, 2, 2, 2, 2, - 2, - 2, 2, 2, 2, 2, 2, - 2 -} }; - -#endif diff --git a/keyboards/idobao/id80/v3/ansi/keyboard.json b/keyboards/idobao/id80/v3/ansi/keyboard.json index 0ab369fb5d..a366289a1f 100644 --- a/keyboards/idobao/id80/v3/ansi/keyboard.json +++ b/keyboards/idobao/id80/v3/ansi/keyboard.json @@ -53,6 +53,102 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [3, 0], "x": 224, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 209, "y": 64, "flags": 4}, + {"matrix": [5, 0], "x": 195, "y": 64, "flags": 4}, + {"matrix": [7, 0], "x": 173, "y": 61, "flags": 4}, + {"matrix": [8, 0], "x": 151, "y": 61, "flags": 4}, + {"matrix": [6, 0], "x": 94, "y": 61, "flags": 1}, + {"matrix": [2, 0], "x": 39, "y": 61, "flags": 4}, + {"matrix": [1, 0], "x": 20, "y": 61, "flags": 4}, + {"matrix": [0, 0], "x": 2, "y": 61, "flags": 4}, + {"matrix": [3, 6], "x": 209, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 185, "y": 49, "flags": 4}, + {"matrix": [5, 6], "x": 165, "y": 49, "flags": 1}, + {"matrix": [7, 6], "x": 151, "y": 49, "flags": 1}, + {"matrix": [8, 6], "x": 136, "y": 49, "flags": 1}, + {"matrix": [8, 1], "x": 121, "y": 49, "flags": 1}, + {"matrix": [7, 1], "x": 106, "y": 49, "flags": 1}, + {"matrix": [6, 1], "x": 92, "y": 49, "flags": 1}, + {"matrix": [5, 1], "x": 77, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 62, "y": 49, "flags": 1}, + {"matrix": [3, 1], "x": 48, "y": 49, "flags": 1}, + {"matrix": [2, 1], "x": 33, "y": 49, "flags": 1}, + {"matrix": [0, 1], "x": 9, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 196, "y": 38, "flags": 4}, + {"matrix": [5, 7], "x": 173, "y": 38, "flags": 1}, + {"matrix": [7, 7], "x": 158, "y": 38, "flags": 1}, + {"matrix": [8, 7], "x": 143, "y": 38, "flags": 1}, + {"matrix": [8, 2], "x": 129, "y": 38, "flags": 1}, + {"matrix": [7, 2], "x": 114, "y": 38, "flags": 1}, + {"matrix": [6, 2], "x": 99, "y": 38, "flags": 1}, + {"matrix": [5, 2], "x": 84, "y": 38, "flags": 1}, + {"matrix": [4, 2], "x": 70, "y": 38, "flags": 1}, + {"matrix": [3, 2], "x": 55, "y": 38, "flags": 1}, + {"matrix": [2, 2], "x": 40, "y": 38, "flags": 1}, + {"matrix": [1, 2], "x": 26, "y": 38, "flags": 1}, + {"matrix": [0, 2], "x": 6, "y": 38, "flags": 4}, + {"matrix": [2, 8], "x": 224, "y": 26, "flags": 4}, + {"matrix": [3, 8], "x": 202, "y": 26, "flags": 1}, + {"matrix": [4, 8], "x": 184, "y": 26, "flags": 1}, + {"matrix": [5, 8], "x": 169, "y": 26, "flags": 1}, + {"matrix": [7, 8], "x": 154, "y": 26, "flags": 1}, + {"matrix": [8, 8], "x": 140, "y": 26, "flags": 1}, + {"matrix": [8, 3], "x": 125, "y": 26, "flags": 1}, + {"matrix": [7, 3], "x": 110, "y": 26, "flags": 1}, + {"matrix": [6, 3], "x": 95, "y": 26, "flags": 1}, + {"matrix": [5, 3], "x": 81, "y": 26, "flags": 1}, + {"matrix": [4, 3], "x": 66, "y": 26, "flags": 1}, + {"matrix": [3, 3], "x": 51, "y": 26, "flags": 1}, + {"matrix": [2, 3], "x": 37, "y": 26, "flags": 1}, + {"matrix": [1, 3], "x": 22, "y": 26, "flags": 1}, + {"matrix": [0, 3], "x": 4, "y": 26, "flags": 4}, + {"matrix": [2, 9], "x": 224, "y": 15, "flags": 4}, + {"matrix": [6, 9], "x": 198, "y": 15, "flags": 4}, + {"matrix": [4, 9], "x": 176, "y": 15, "flags": 1}, + {"matrix": [5, 9], "x": 162, "y": 15, "flags": 1}, + {"matrix": [7, 9], "x": 147, "y": 15, "flags": 1}, + {"matrix": [8, 9], "x": 132, "y": 15, "flags": 1}, + {"matrix": [8, 4], "x": 118, "y": 15, "flags": 1}, + {"matrix": [7, 4], "x": 103, "y": 15, "flags": 1}, + {"matrix": [6, 4], "x": 88, "y": 15, "flags": 1}, + {"matrix": [5, 4], "x": 73, "y": 15, "flags": 1}, + {"matrix": [4, 4], "x": 59, "y": 15, "flags": 1}, + {"matrix": [3, 4], "x": 44, "y": 15, "flags": 1}, + {"matrix": [2, 4], "x": 29, "y": 15, "flags": 1}, + {"matrix": [1, 4], "x": 15, "y": 15, "flags": 1}, + {"matrix": [0, 4], "x": 0, "y": 15, "flags": 1}, + {"matrix": [2, 10], "x": 224, "y": 0, "flags": 4}, + {"matrix": [6, 10], "x": 206, "y": 0, "flags": 4}, + {"matrix": [3, 10], "x": 187, "y": 0, "flags": 4}, + {"matrix": [4, 10], "x": 173, "y": 0, "flags": 4}, + {"matrix": [5, 10], "x": 158, "y": 0, "flags": 4}, + {"matrix": [7, 10], "x": 143, "y": 0, "flags": 4}, + {"matrix": [8, 5], "x": 125, "y": 0, "flags": 4}, + {"matrix": [7, 5], "x": 110, "y": 0, "flags": 4}, + {"matrix": [6, 5], "x": 95, "y": 0, "flags": 4}, + {"matrix": [5, 5], "x": 81, "y": 0, "flags": 4}, + {"matrix": [4, 5], "x": 62, "y": 0, "flags": 4}, + {"matrix": [3, 5], "x": 48, "y": 0, "flags": 4}, + {"matrix": [2, 5], "x": 33, "y": 0, "flags": 4}, + {"matrix": [1, 5], "x": 18, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 0, "y": 0, "flags": 4}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 45, "y": 0, "flags": 2}, + {"x": 90, "y": 0, "flags": 2}, + {"x": 134, "y": 0, "flags": 2}, + {"x": 179, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 32, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 179, "y": 64, "flags": 2}, + {"x": 134, "y": 64, "flags": 2}, + {"x": 90, "y": 64, "flags": 2}, + {"x": 45, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 0, "y": 32, "flags": 2} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/idobao/id87/v2/keyboard.json b/keyboards/idobao/id87/v2/keyboard.json index ad6641f954..1b7d428dda 100644 --- a/keyboards/idobao/id87/v2/keyboard.json +++ b/keyboards/idobao/id87/v2/keyboard.json @@ -56,6 +56,111 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"x": 0, "y": 64, "flags": 2}, + {"x": 37, "y": 64, "flags": 2}, + {"x": 75, "y": 64, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 149, "y": 64, "flags": 2}, + {"x": 187, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 224, "y": 32, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 187, "y": 0, "flags": 2}, + {"x": 149, "y": 0, "flags": 2}, + {"x": 112, "y": 0, "flags": 2}, + {"x": 75, "y": 0, "flags": 2}, + {"x": 37, "y": 0, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 0, "y": 32, "flags": 2}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 8], "x": 131, "y": 64, "flags": 1}, + {"matrix": [5, 7], "x": 148, "y": 64, "flags": 1}, + {"matrix": [5, 4], "x": 164, "y": 64, "flags": 1}, + {"matrix": [5, 3], "x": 180, "y": 64, "flags": 1}, + {"matrix": [10, 6], "x": 198, "y": 64, "flags": 1}, + {"matrix": [10, 2], "x": 211, "y": 64, "flags": 1}, + {"matrix": [10, 1], "x": 224, "y": 64, "flags": 1}, + {"matrix": [9, 2], "x": 211, "y": 52, "flags": 1}, + {"matrix": [10, 4], "x": 170, "y": 52, "flags": 1}, + {"matrix": [10, 5], "x": 146, "y": 52, "flags": 4}, + {"matrix": [10, 7], "x": 133, "y": 52, "flags": 4}, + {"matrix": [10, 8], "x": 120, "y": 52, "flags": 4}, + {"matrix": [4, 8], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 68, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 55, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 1}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [9, 8], "x": 127, "y": 40, "flags": 4}, + {"matrix": [9, 7], "x": 140, "y": 40, "flags": 4}, + {"matrix": [9, 5], "x": 153, "y": 40, "flags": 4}, + {"matrix": [9, 3], "x": 174, "y": 40, "flags": 1}, + {"matrix": [8, 1], "x": 224, "y": 27, "flags": 1}, + {"matrix": [8, 2], "x": 211, "y": 27, "flags": 1}, + {"matrix": [8, 6], "x": 198, "y": 27, "flags": 1}, + {"matrix": [8, 3], "x": 179, "y": 27, "flags": 4}, + {"matrix": [8, 4], "x": 162, "y": 27, "flags": 4}, + {"matrix": [8, 5], "x": 149, "y": 27, "flags": 4}, + {"matrix": [8, 7], "x": 136, "y": 27, "flags": 4}, + {"matrix": [8, 8], "x": 123, "y": 27, "flags": 4}, + {"matrix": [2, 8], "x": 110, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 97, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 84, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 58, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 27, "flags": 4}, + {"matrix": [2, 1], "x": 19, "y": 27, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [7, 8], "x": 117, "y": 15, "flags": 4}, + {"matrix": [7, 0], "x": 130, "y": 15, "flags": 4}, + {"matrix": [7, 7], "x": 143, "y": 15, "flags": 4}, + {"matrix": [7, 5], "x": 156, "y": 15, "flags": 4}, + {"matrix": [7, 3], "x": 175, "y": 15, "flags": 1}, + {"matrix": [7, 6], "x": 198, "y": 15, "flags": 1}, + {"matrix": [7, 2], "x": 211, "y": 15, "flags": 1}, + {"matrix": [7, 1], "x": 224, "y": 15, "flags": 1}, + {"matrix": [6, 1], "x": 224, "y": 0, "flags": 1}, + {"matrix": [6, 2], "x": 211, "y": 0, "flags": 1}, + {"matrix": [6, 6], "x": 198, "y": 0, "flags": 1}, + {"matrix": [6, 3], "x": 182, "y": 0, "flags": 1}, + {"matrix": [6, 4], "x": 169, "y": 0, "flags": 1}, + {"matrix": [6, 5], "x": 156, "y": 0, "flags": 1}, + {"matrix": [6, 7], "x": 143, "y": 0, "flags": 1}, + {"matrix": [6, 8], "x": 123, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 110, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 97, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 65, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 39, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 26, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/idobao/id87/v2/v2.c b/keyboards/idobao/id87/v2/v2.c deleted file mode 100644 index 7992fb6295..0000000000 --- a/keyboards/idobao/id87/v2/v2.c +++ /dev/null @@ -1,83 +0,0 @@ -// Copyright 2022 vinorodrigues (@vinorodrigues) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#define __ NO_LED - -#if defined(RGB_MATRIX_ENABLE) - -/* Under-, Per-Key - * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ - * │102│ │101│100│99 │98 │ │97 │96 │95 │94 │ │93 │92 │91 │90 │ │89 │88 │87 │ - * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ - * │70 │71 │72 │73 │74 │75 │76 │77 │78 │79 │80 │81 │82 │ 83 │ │84 │85 │86 │ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ - * │ 69 │68 │67 │66 │65 │64 │63 │62 │61 │60 │59 │58 │57 │ 56 │ │55 │54 │53 │ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ - * │ 40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │50 │51 │ 52 │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ - * │ 39 │38 │37 │36 │35 │34 │33 │32 │31 │30 │29 │ 28 │ │27 │ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ - * │ 16 │ 17 │ 18 │ 19 │ 20 │ 21 │ 22 │ 23 │ │24 │25 │26 │ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ - * - * Underglow (as seen from top) - * ┌───┬───┬───┬───┬───┬───┬───┐ - * │14 │13 │12 │11 │10 │ 9 │ 8 │ - * ├───┼───┴───┴───┴───┴───┼───┤ - * │15 │ │ 7 │ - * ├───┼───┬───┬───┬───┬───┼───┤ - * │ 0 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ - * └───┴───┴───┴───┴───┴───┴───┘ -*/ -led_config_t g_led_config = { { - // Key Matrix to LED Index - // partially generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser & CSV Excel formula - - { 102, __, 101, 100, 99, 98, 97, 96, 95 }, - { 70, 71, 72, 73, 74, 75, 76, 77, 78 }, - { 69, 68, 67, 66, 65, 64, 63, 62, 61 }, - { 40, 41, 42, 43, 44, 45, 46, 47, 48 }, - { 39, __, 38, 37, 36, 35, 34, 33, 32 }, - { 16, 17, 18, 23, 22, __, 19, 21, 20 }, - { __, 87, 88, 90, 91, 92, 89, 93, 94 }, - { 80, 86, 85, 83, __, 82, 84, 81, 79 }, - { __, 53, 54, 56, 57, 58, 55, 59, 60 }, - { __, __, 27, 52, __, 51, __, 50, 49 }, - { __, 26, 25, __, 28, 29, 24, 30, 31 } -}, { - // LED Index to Physical Position - // generated from: https://xelus.netlify.app/guides/KLE_to_RGB_parser - // underglow - /* colors are pushed to the edge as only the edges can be seen */ - { 0,64 }, { 37,64 }, { 75,64 }, {112,64 }, {149,64 }, {187,64 }, {224,64 }, - {224,32 }, - {224,0 }, {187,0 }, {149,0 }, {112,0 }, { 75,0 }, { 37,0 }, { 0,0 }, - { 0,32 }, - // under-, per-key - /* pattern is complex; starts at btm-lft, zig-zags up, and ends top-lft */ - { 2,64 }, { 18,64 }, { 34,64 }, { 83,64 }, {131,64 }, {148,64 }, {164,64 }, {180,64 }, {198,64 }, {211,64 }, {224,64 }, // lf-2-rt, btm - {211,52 }, {170,52 }, {146,52 }, {133,52 }, {120,52 }, {107,52 }, { 94,52 }, { 81,52 }, { 68,52 }, { 55,52 }, { 42,52 }, { 29,52 }, { 8,52 }, // rt-2-lf** - { 5,40 }, { 23,40 }, { 36,40 }, { 49,40 }, { 62,40 }, { 75,40 }, { 88,40 }, {101,40 }, {114,40 }, {127,40 }, {140,40 }, {153,40 }, {174,40 }, // lf-2-rt - {224,27 }, {211,27 }, {198,27 }, {179,27 }, {162,27 }, {149,27 }, {136,27 }, {123,27 }, {110,27 }, { 97,27 }, { 84,27 }, { 71,27 }, { 58,27 }, { 45,27 }, { 32,27 }, { 19,27 }, { 3,27 }, // rt-2-lf** - { 0,15 }, { 13,15 }, { 26,15 }, { 39,15 }, { 52,15 }, { 65,15 }, { 78,15 }, { 91,15 }, {104,15 }, {117,15 }, {130,15 }, {143,15 }, {156,15 }, {175,15 }, {198,15 }, {211,15 }, {224,15 }, // lf-2-rt - {224,0 }, {211,0 }, {198,0 }, {182,0 }, {169,0 }, {156,0 }, {143,0 }, {123,0 }, {110,0 }, { 97,0 }, { 84,0 }, { 65,0 }, { 52,0 }, { 39,0 }, { 26,0 }, { 0,0 }, // rt-2-lf**, top -}, { - // LED Index to Flag - // underglow - 2, 2, 2, 2, 2, 2, 2, - 2, - 2, 2, 2, 2, 2, 2, 2, - 2, - // under-, per-key - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -} }; - -#endif // RGB_MATRIX_ENABLE diff --git a/keyboards/idobao/montex/v1rgb/keyboard.json b/keyboards/idobao/montex/v1rgb/keyboard.json index 1c5252bbea..affe87fd1f 100755 --- a/keyboards/idobao/montex/v1rgb/keyboard.json +++ b/keyboards/idobao/montex/v1rgb/keyboard.json @@ -33,6 +33,39 @@ "solid_splash": true }, "driver": "ws2812", + "layout": [ + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"matrix": [0, 2], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 56, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 84, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 168, "y": 64, "flags": 4}, + {"matrix": [5, 3], "x": 224, "y": 58, "flags": 4}, + {"matrix": [4, 3], "x": 168, "y": 41, "flags": 4}, + {"matrix": [4, 2], "x": 112, "y": 41, "flags": 4}, + {"matrix": [4, 1], "x": 56, "y": 41, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 41, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 29, "flags": 4}, + {"matrix": [3, 1], "x": 56, "y": 29, "flags": 4}, + {"matrix": [3, 2], "x": 112, "y": 29, "flags": 4}, + {"matrix": [3, 3], "x": 168, "y": 29, "flags": 4}, + {"matrix": [2, 4], "x": 224, "y": 35, "flags": 4}, + {"matrix": [2, 3], "x": 168, "y": 29, "flags": 4}, + {"matrix": [2, 2], "x": 112, "y": 29, "flags": 4}, + {"matrix": [2, 1], "x": 56, "y": 29, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 29, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4}, + {"matrix": [1, 1], "x": 56, "y": 17, "flags": 4}, + {"matrix": [1, 2], "x": 112, "y": 17, "flags": 4}, + {"matrix": [1, 3], "x": 168, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 224, "y": 17, "flags": 4}, + {"matrix": [0, 4], "x": 224, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 168, "y": 0, "flags": 1} + ], "max_brightness": 170 }, "features": { diff --git a/keyboards/idobao/montex/v1rgb/v1rgb.c b/keyboards/idobao/montex/v1rgb/v1rgb.c deleted file mode 100755 index b70067cfcf..0000000000 --- a/keyboards/idobao/montex/v1rgb/v1rgb.c +++ /dev/null @@ -1,58 +0,0 @@ -// Copyright 2022 peepeetee (@peepeetee) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - -/* WS2812 indices always start at 0 - * underglow = 0-3 - * note: starting point of 4 and jump from 6 to 7 - * ┌───┌───┐───┬───┬───┐ - * │ 6 │ 5 │ 4 │30 │29 │ - * ├───┼───┘───┼───┼───┤ - * │24 │25 │26 │27 │28 │ - * ├───┼───┼───┼───┼───┤ - * │23 │22 │21 │20 │19 │ - * ├───┼───┼───┼───┤ │ - * │15 │16 │17 │18 │ │ - * ├───┼───┼───┼───┤───┤ - * │14 │13 │12 │11 │10 │ - * ├───┼───┴───┼───┤ │ - * │ 7 │ 8 │ 9 │ │ - * └───┴───────┴───┘───┘ - */ - -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 6, 5, 4, 30, 29}, - { 24, 25, 26, 27, 28}, - { 23, 22, 21, 20, 19}, - { 15, 16, 17, 18, NO_LED}, - { 14, 13, 12, 11, NO_LED}, - { 7, 8, 9, 10, NO_LED} -}, { - // LED Index to Physical Position - /* underglow: because this is under the kb, you want the colors on the edge (corners) of the acrylic plate */ - { 224,0 }, { 224,64}, { 0,64 }, { 0,0 }, // 0-3 (underglow) - /* per-key: origins generated from https://xelus.netlify.app/guides/KLE_to_RGB_parser */ - { 112,0 }, { 56,0 }, { 0,0 }, /* ---- */ /* ---- */ // 4-6 (top row middle to left) - { 0,64 }, { 84,64 }, { 168,64 }, // 7-9 (jump to bottom left) - { 224,58 }, { 168,41 }, { 112,41 }, { 56,41 }, { 0,41 }, // 10-14 (flow Z pattern upwards...) - { 0,29 }, { 56,29 }, { 112,29 }, { 168,29 }, // 15-18 - { 224,35 }, { 168,29 }, { 112,29 }, { 56,29 }, { 0,29 }, // 19-23 - { 0,17 }, { 56,17 }, { 112,17 }, { 168,17 }, { 224,17 }, // 24-28 - /* ---- */ /* ---- */ /* ---- */ { 224,0 }, { 168,0 } // 29-30 (end at top) -}, { - // LED Index to Flag - 2, 2, 2, 2, // 0 1 2 3 (underglow) - 1, 1, 1, // 4 5 6 - 4, 4, 4, 4, // 7 - 10 - 4, 4, 4, 4, //11 - 14 - 4, 4, 4, 4, //15 - 18 - 4, 4, 4, 4, 4, //19 - 23 - 4, 4, 4, 4, 4, //24 - 28 - 1, 1 //29 30 -} }; - -#endif diff --git a/keyboards/idobao/montex/v2/keyboard.json b/keyboards/idobao/montex/v2/keyboard.json index 319f46a459..0832ed8729 100755 --- a/keyboards/idobao/montex/v2/keyboard.json +++ b/keyboards/idobao/montex/v2/keyboard.json @@ -41,6 +41,39 @@ "solid_splash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 4], "x": 224, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 168, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 56, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 17, "flags": 4}, + {"matrix": [1, 1], "x": 56, "y": 17, "flags": 4}, + {"matrix": [1, 2], "x": 112, "y": 17, "flags": 4}, + {"matrix": [1, 3], "x": 168, "y": 17, "flags": 4}, + {"matrix": [1, 4], "x": 224, "y": 17, "flags": 4}, + {"matrix": [2, 4], "x": 224, "y": 35, "flags": 4}, + {"matrix": [2, 3], "x": 168, "y": 29, "flags": 4}, + {"matrix": [2, 2], "x": 112, "y": 29, "flags": 4}, + {"matrix": [2, 1], "x": 56, "y": 29, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 29, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 41, "flags": 4}, + {"matrix": [3, 1], "x": 56, "y": 41, "flags": 4}, + {"matrix": [3, 2], "x": 112, "y": 41, "flags": 4}, + {"matrix": [3, 3], "x": 168, "y": 41, "flags": 4}, + {"matrix": [5, 3], "x": 224, "y": 58, "flags": 4}, + {"matrix": [4, 3], "x": 168, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 112, "y": 52, "flags": 4}, + {"matrix": [4, 1], "x": 56, "y": 52, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 52, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 84, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 168, "y": 64, "flags": 4}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/idobao/montex/v2/v2.c b/keyboards/idobao/montex/v2/v2.c deleted file mode 100755 index ad6e32a692..0000000000 --- a/keyboards/idobao/montex/v2/v2.c +++ /dev/null @@ -1,82 +0,0 @@ -// Copyright 2022 IBNobody (@IBNobody) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#define __ NO_LED - -#ifdef RGB_MATRIX_ENABLE - -/* Under-, Per-key - * ┌───┬───┬───┬───┬───┐ - * │ 4 │ 3 │ 2 │ 1 │ 0 │ - * ├───┼───┼───┼───┼───┤ - * │ 5 │ 6 │ 7 │ 8 │ 9 │ - * ├───┼───┼───┼───┼───┤ - * │14 │13 │12 │11 │ │ - * ├───┼───┼───┼───┤10 │ - * │15 │16 │17 │18 │ │ - * ├───┼───┼───┼───┼───┤ - * │23 │22 │21 │20 │ │ - * ├───┼───┴───┼───┤19 │ - * │24 │ 25 │26 │ │ - * └───┴───────┴───┴───┘ - * - * Underglow (from top / [Esc] = top left) - * ┌─────────┬─────────┐ - * │ │ │ - * │ │ │ - * │ 29 │ 30 │ - * │ │ │ - * │ │ │ - * ├─────────┼─────────┤ - * │ │ │ - * │ │ │ - * │ 28 │ 27 │ - * │ │ │ - * │ │ │ - * └─────────┴─────────┘ - */ - -led_config_t g_led_config = { { - // Key Matrix to LED Index - // Montex v2 WS2812 are laid in a Z-shape with index 0 = top-right - // Based on: https://xelus.netlify.app/guides/KLE_to_RGB_parser - { 4, 3, 2, 1, 0}, - { 5, 6, 7, 8, 9}, - { 14, 13, 12, 11, 10}, - { 15, 16, 17, 18, __}, - { 23, 22, 21, 20, __}, - { 24, 25, 26, 19, __} -}, { - // LED Index to Physical Position - // per-key - // Based on: https://xelus.netlify.app/guides/KLE_to_RGB_parser - {224,0 }, {168,0 }, {112,0 }, { 56,0 }, { 0,0 }, // top row - { 0,17 }, { 56,17 }, {112,17 }, {168,17 }, {224,17 }, // num-lk & /*- (reversed) - {224,35 }, {168,29 }, {112,29 }, { 56,29 }, { 0,29 }, // 789+ - { 0,41 }, { 56,41 }, {112,41 }, {168,41 }, // 456 (reversed) - {224,58 }, {168,52 }, {112,52 }, { 56,52 }, // 123 - { 0,52 }, { 0,64 }, { 84,64 }, {168,64 } // 0. & enter (reversed) - // underglow LEDs (positions pushed to nearest edge to match edge key colors) - #ifndef ID27_DISABLE_UNDERGLOW - , {224,64 }, { 0,64 }, - { 0,0 }, { 224,0 } - #endif -}, { - // LED Index to Flag - // LED_FLAG_MODIFIER 0x01, LED_FLAG_UNDERGLOW 0x02, LED_FLAG_KEYLIGHT 0x04, LED_FLAG_INDICATOR 0x08 - // per-key - 1, 1, 1, 1, 1, - 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4 - // underglow - #ifndef ID27_DISABLE_UNDERGLOW - , 2, 2, 2, 2 - #endif -} }; - -#endif diff --git a/keyboards/idyllic/tinny50_rgb/keyboard.json b/keyboards/idyllic/tinny50_rgb/keyboard.json index 4d3cd320dd..e3d44714ab 100644 --- a/keyboards/idyllic/tinny50_rgb/keyboard.json +++ b/keyboards/idyllic/tinny50_rgb/keyboard.json @@ -59,7 +59,39 @@ "default": { "val": 223 }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"x": 126, "y": 64, "flags": 2}, + {"x": 108, "y": 64, "flags": 2}, + {"x": 90, "y": 64, "flags": 2}, + {"x": 72, "y": 64, "flags": 2}, + {"x": 54, "y": 64, "flags": 2}, + {"x": 36, "y": 64, "flags": 2}, + {"x": 18, "y": 64, "flags": 2}, + {"x": 0, "y": 52, "flags": 2}, + {"x": 0, "y": 39, "flags": 2}, + {"x": 0, "y": 26, "flags": 2}, + {"x": 0, "y": 13, "flags": 2}, + {"x": 18, "y": 0, "flags": 2}, + {"x": 36, "y": 0, "flags": 2}, + {"x": 54, "y": 0, "flags": 2}, + {"x": 72, "y": 0, "flags": 2}, + {"x": 90, "y": 0, "flags": 2}, + {"x": 108, "y": 0, "flags": 2}, + {"x": 126, "y": 0, "flags": 2}, + {"x": 144, "y": 0, "flags": 2}, + {"x": 162, "y": 0, "flags": 2}, + {"x": 180, "y": 0, "flags": 2}, + {"x": 198, "y": 0, "flags": 2}, + {"x": 224, "y": 13, "flags": 2}, + {"x": 224, "y": 26, "flags": 2}, + {"x": 224, "y": 39, "flags": 2}, + {"x": 224, "y": 52, "flags": 2}, + {"x": 198, "y": 64, "flags": 2}, + {"x": 180, "y": 64, "flags": 2}, + {"x": 162, "y": 64, "flags": 2}, + {"x": 144, "y": 64, "flags": 2} + ] }, "ws2812": { "pin": "GP10", diff --git a/keyboards/idyllic/tinny50_rgb/tinny50_rgb.c b/keyboards/idyllic/tinny50_rgb/tinny50_rgb.c deleted file mode 100644 index d8b06b8fb6..0000000000 --- a/keyboards/idyllic/tinny50_rgb/tinny50_rgb.c +++ /dev/null @@ -1,45 +0,0 @@ -/* -Copyright 2022 Zykrah - -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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - // Key Matrix to LED Index - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED} - }, { - // LED Index to Physical Position - {150, 64}, {130, 64}, {110, 64}, { 90, 64}, { 70, 64}, { 50, 64}, { 30, 64}, - { 0, 52}, { 0, 39}, { 0, 26}, { 0, 13}, - { 30, 0}, { 50, 0}, { 70, 0}, { 90, 0}, {110, 0}, {130, 0}, {150, 0}, {170, 0}, {190, 0}, {210, 0}, {230, 0}, - {255, 13}, {255, 26}, {255, 39}, {255, 52}, - {230, 64}, {210, 64}, {190, 64}, {170, 64} - }, { - // LED Index to Flag - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // UNDERGLOW - 2, 2, 2, 2, // UNDERGLOW - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // UNDERGLOW - 2, 2, 2, 2, // UNDERGLOW - } -}; -#endif - diff --git a/keyboards/ilumkb/simpler61/keyboard.json b/keyboards/ilumkb/simpler61/keyboard.json index 10e182dac8..eb98400603 100644 --- a/keyboards/ilumkb/simpler61/keyboard.json +++ b/keyboards/ilumkb/simpler61/keyboard.json @@ -43,6 +43,69 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "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": 216, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 2, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 130, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 162, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 178, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 204, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 180, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 202, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 4, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 24, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 44, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 180, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 200, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 220, "y": 64, "flags": 4} + ], "led_process_limit": 4, "led_flush_limit": 26, "sleep": true diff --git a/keyboards/ilumkb/simpler61/simpler61.c b/keyboards/ilumkb/simpler61/simpler61.c index 99cefc7844..afff4dbc36 100644 --- a/keyboards/ilumkb/simpler61/simpler61.c +++ b/keyboards/ilumkb/simpler61/simpler61.c @@ -84,27 +84,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW7_CS30, SW7_CS29, SW7_CS28}, {0, SW5_CS30, SW5_CS29, SW5_CS28}, }; - -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27}, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40}, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, NO_LED, 53}, - { 54, 55, 56, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, NO_LED, 58, 59, NO_LED, 60}, - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {216, 0}, - {4, 16}, {24, 16}, {40, 16}, {56, 16}, {72, 16}, {88, 16}, {104, 16}, {120, 16}, {136, 16}, {152, 16}, {168, 16}, {184, 16}, {200, 16}, {220, 16}, - {2, 32}, {28, 32}, {44, 32}, {60, 32}, {76, 32}, {92, 32}, {108, 32}, {114, 32}, {130, 32}, {146, 32}, {162, 32}, {178, 32}, {204, 32}, - {9, 48}, {36, 48}, {52, 48}, {68, 48}, {84, 48}, {100, 48}, {116, 48}, {132, 48}, {148, 48}, {164, 48}, {180, 48}, {202, 48}, {224, 48}, - {4, 64}, {24, 64}, {44, 64}, {112, 64}, {180, 64}, {200, 64}, {220, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, - } -}; - #endif diff --git a/keyboards/ilumkb/simpler64/keyboard.json b/keyboards/ilumkb/simpler64/keyboard.json index 240d0d67c2..b49c986d86 100644 --- a/keyboards/ilumkb/simpler64/keyboard.json +++ b/keyboards/ilumkb/simpler64/keyboard.json @@ -43,6 +43,72 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "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": 216, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 220, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 114, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 130, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 162, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 178, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 204, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 8, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 160, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 176, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4} + ], "led_process_limit": 4, "led_flush_limit": 26, "sleep": true diff --git a/keyboards/ilumkb/simpler64/simpler64.c b/keyboards/ilumkb/simpler64/simpler64.c index 21892a55f4..aa0a97fe54 100644 --- a/keyboards/ilumkb/simpler64/simpler64.c +++ b/keyboards/ilumkb/simpler64/simpler64.c @@ -87,27 +87,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW6_CS30, SW6_CS29, SW6_CS28}, {0, SW5_CS30, SW5_CS29, SW5_CS28}, }; - -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27}, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40}, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54}, - { 55, 56, 57, NO_LED, NO_LED, 58, NO_LED, NO_LED, NO_LED, 59, 60, 61, 62, 63}, - }, { - {0, 0}, {16, 0}, {32, 0}, {48, 0}, {64, 0}, {80, 0}, {96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {216, 0}, - {4, 16}, {24, 16}, {40, 16}, {56, 16}, {72, 16}, {88, 16}, {104, 16}, {120, 16}, {136, 16}, {152, 16}, {168, 16}, {184, 16}, {200, 16}, {220, 16}, - {6, 32}, {28, 32}, {44, 32}, {60, 32}, {76, 32}, {92, 32}, {108, 32}, {114, 32}, {130, 32}, {146, 32}, {162, 32}, {178, 32}, {204, 32}, - {8, 48}, {32, 48}, {48, 48}, {64, 48}, {80, 48}, {96, 48}, {112, 48}, {138, 48}, {154, 48}, {160, 48}, {176, 48}, {192, 48}, {208, 48}, {224, 48}, - {2, 64}, {22, 64}, {42, 64}, {102, 64}, {160, 64}, {176, 64}, {192, 64}, {208, 64}, {224, 64}, - }, { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, - } -}; - #endif diff --git a/keyboards/inett_studio/sqx/hotswap/hotswap.c b/keyboards/inett_studio/sqx/hotswap/hotswap.c index dc12ec4f30..da9f0fd617 100644 --- a/keyboards/inett_studio/sqx/hotswap/hotswap.c +++ b/keyboards/inett_studio/sqx/hotswap/hotswap.c @@ -114,44 +114,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C9_16, C7_15, C6_15}, }; -led_config_t g_led_config = { - { - { 18, 19, 20, 21, 22, 23, 24, 16, 17, 36, 37, 38, 39, 40}, - { 26, 27, 28, 29, 30, 31, 25, 48, 41, 42, 43, 44, 45, 46}, - { 8, 7, 0, 32, 33, 34, 35, 49, 50, 51, 52, 53, NO_LED, 47}, - { 9, NO_LED, 10, 1, 2, 3, 4, 5, 56, 55, 57, 58, 59, 54}, - { 14, 13, 12, 11, NO_LED, NO_LED, 6, 15, NO_LED, NO_LED, 60, 61, 62, 63}, - }, - { - { 48, 32},{ 48, 48},{ 64, 48},{ 80, 48},{ 96, 48},{112, 48},{112, 64},{ 32, 32}, - { 16, 32},{ 16, 48}, { 32, 48},{ 64, 64},{ 40, 64},{ 20, 64},{ 0, 64}, - - { 0, 0},{ 16, 0},{ 32, 0},{ 48, 0},{ 64, 0},{ 80, 0},{ 96, 0},{ 96, 16}, - { 0, 16},{ 16, 16}, - { 32, 16},{ 48, 16},{ 64, 16},{ 80, 16},{ 64, 32},{ 80, 32},{ 96, 32},{112, 32}, - - {112, 0},{128, 0},{144, 0},{160, 0},{176, 0},{192, 0},{208, 0},{224, 0}, - {128, 16},{144, 16},{160, 16},{176, 16},{192, 16},{216, 16},{216, 32},{112, 16}, - - {128, 32},{144, 32},{160, 32},{176, 32},{192, 32}, {224, 48},{144, 48}, - {128, 48},{160, 48},{176, 48},{192, 48},{160, 64},{180, 64},{200, 64},{224, 64} - }, - { - 4, 4, 4, 4, 4, 4, 4, 4, - 1, 1, 4, 1, 1, 1, 1, - - 1, 4, 4, 4, 4, 4, 4, 4, - 1, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - - 4, 4, 4, 4, 4, 4, 1, 1, - 4, 4, 4, 4, 4, 1, 1, 4, - - 4, 4, 4, 4, 4, 1, 4, - 4, 4, 4, 1, 1, 1, 1, 1, - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/inett_studio/sqx/hotswap/keyboard.json b/keyboards/inett_studio/sqx/hotswap/keyboard.json index 0c28be4582..a7dd508f3f 100644 --- a/keyboards/inett_studio/sqx/hotswap/keyboard.json +++ b/keyboards/inett_studio/sqx/hotswap/keyboard.json @@ -40,6 +40,72 @@ "pixel_fractal": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [2, 2], "x": 48, "y": 32, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4}, + {"matrix": [4, 6], "x": 112, "y": 64, "flags": 4}, + {"matrix": [2, 1], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 16, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 16, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [4, 3], "x": 64, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 40, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 20, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [4, 7], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 96, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 96, "y": 16, "flags": 4}, + {"matrix": [0, 5], "x": 0, "y": 16, "flags": 1}, + {"matrix": [0, 6], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 64, "y": 32, "flags": 4}, + {"matrix": [1, 4], "x": 80, "y": 32, "flags": 4}, + {"matrix": [1, 5], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 112, "y": 0, "flags": 4}, + {"matrix": [2, 5], "x": 128, "y": 0, "flags": 4}, + {"matrix": [2, 6], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 208, "y": 0, "flags": 1}, + {"matrix": [0, 13], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 216, "y": 16, "flags": 1}, + {"matrix": [2, 13], "x": 216, "y": 32, "flags": 1}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [2, 7], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 192, "y": 32, "flags": 4}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 192, "y": 48, "flags": 1}, + {"matrix": [4, 10], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 180, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 200, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1} + ], "max_brightness": 170 }, "rgblight": { diff --git a/keyboards/inett_studio/sqx/universal/keyboard.json b/keyboards/inett_studio/sqx/universal/keyboard.json index 2c2b03bd0d..7e207f0eb1 100644 --- a/keyboards/inett_studio/sqx/universal/keyboard.json +++ b/keyboards/inett_studio/sqx/universal/keyboard.json @@ -40,6 +40,80 @@ "pixel_fractal": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 32, "y": 32, "flags": 4}, + {"matrix": [0, 1], "x": 48, "y": 48, "flags": 4}, + {"matrix": [0, 2], "x": 64, "y": 48, "flags": 4}, + {"matrix": [0, 3], "x": 80, "y": 48, "flags": 4}, + {"matrix": [0, 4], "x": 96, "y": 48, "flags": 4}, + {"matrix": [0, 5], "x": 112, "y": 48, "flags": 4}, + {"matrix": [0, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [1, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 0, "y": 48, "flags": 4}, + {"matrix": [1, 3], "x": 0, "y": 48, "flags": 4}, + {"matrix": [1, 4], "x": 16, "y": 48, "flags": 1}, + {"matrix": [1, 5], "x": 32, "y": 48, "flags": 1}, + {"matrix": [2, 3], "x": 64, "y": 64, "flags": 1}, + {"matrix": [2, 4], "x": 32, "y": 64, "flags": 4}, + {"matrix": [2, 5], "x": 16, "y": 64, "flags": 4}, + {"matrix": [2, 6], "x": 0, "y": 64, "flags": 4}, + {"matrix": [2, 2], "x": 0, "y": 0, "flags": 1}, + {"matrix": [3, 3], "x": 16, "y": 0, "flags": 4}, + {"matrix": [3, 4], "x": 32, "y": 0, "flags": 4}, + {"matrix": [3, 5], "x": 48, "y": 0, "flags": 4}, + {"matrix": [3, 6], "x": 64, "y": 0, "flags": 4}, + {"matrix": [3, 7], "x": 80, "y": 0, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 0, "flags": 4}, + {"x": 96, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 16, "flags": 4}, + {"x": 32, "y": 16, "flags": 4}, + {"matrix": [3, 0], "x": 48, "y": 16, "flags": 4}, + {"matrix": [3, 1], "x": 64, "y": 16, "flags": 4}, + {"matrix": [3, 2], "x": 80, "y": 16, "flags": 4}, + {"x": 48, "y": 32, "flags": 4}, + {"matrix": [4, 2], "x": 64, "y": 32, "flags": 4}, + {"matrix": [4, 1], "x": 80, "y": 32, "flags": 4}, + {"matrix": [4, 0], "x": 96, "y": 32, "flags": 4}, + {"matrix": [0, 7], "x": 128, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 144, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 160, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 176, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 192, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 208, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 216, "y": 0, "flags": 1}, + {"x": 224, "y": 0, "flags": 1}, + {"matrix": [4, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 224, "y": 16, "flags": 1}, + {"x": 224, "y": 32, "flags": 1}, + {"matrix": [2, 13], "x": 216, "y": 32, "flags": 1}, + {"matrix": [2, 7], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 208, "y": 32, "flags": 4}, + {"x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 8], "x": 128, "y": 48, "flags": 1}, + {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 192, "y": 48, "flags": 4}, + {"x": 142, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 176, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 208, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1} + ], "max_brightness": 170 }, "rgblight": { diff --git a/keyboards/inett_studio/sqx/universal/universal.c b/keyboards/inett_studio/sqx/universal/universal.c index 105e89ecc5..0f92fa3807 100644 --- a/keyboards/inett_studio/sqx/universal/universal.c +++ b/keyboards/inett_studio/sqx/universal/universal.c @@ -114,48 +114,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C9_16, C7_15, C6_15}, }; -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 36, 37, 38, 39, 40, 41, 42}, - { 8, 9, 10, 11, 12, 13, 7, 45, 46, 47, 48, 49, 50, 51}, - { 26,27, 18, 14, 15, 16, 17, 54, 55, 56, 57, 58, 59, 53}, - { 29,30, 31, 19, 20, 21, 22, 23, 62, 63, 64, 65, 66, 61}, - { 35,34, 33, NO_LED, NO_LED, NO_LED, 24, 44, NO_LED, NO_LED, 68, 69, 70, 71}, - }, - { - { 32, 32},{ 48, 48},{ 64, 48},{ 80, 48},{ 96, 48},{112, 48},{ 96, 64},{ 96, 64}, - { 0, 32},{ 16, 32}, - { 0, 48},{ 0, 48},{ 16, 48},{ 32, 48},{ 64, 64},{ 32, 64},{ 16, 64},{ 0, 64}, - { 0, 0},{ 16, 0},{ 32, 0},{ 48, 0},{ 64, 0},{ 80, 0},{ 96, 0},{ 96, 16}, - { 0, 16},{ 16, 16}, - { 32, 16},{ 48, 16},{ 64, 16},{ 80, 16},{ 48, 32},{ 64, 32},{ 80, 32},{ 96, 32}, - - {128, 0},{144, 0},{160, 0},{176, 0},{192, 0},{208, 0},{216, 0},{224, 0}, - {112, 0},{128, 16}, - {144, 16},{160, 16},{176, 16},{192, 16},{208, 16},{224, 16},{224, 32},{216, 32}, - {128, 32},{144, 32},{160, 32},{176, 32},{192, 32},{208, 32},{208, 48},{224, 48}, - {128, 48},{144, 48}, - {160, 48},{176, 48},{192, 48},{142, 64},{160, 64},{176, 64},{208, 64},{224, 64} - }, - { - 4, 4, 4, 4, 4, 4, 4, 4, - 1, 4, - 4, 4, 1, 1, 1, 4, 4, 4, - - 1, 4, 4, 4, 4, 4, 4, 4, - 1, 4, - 4, 4, 4, 4, 4, 4, 4, 4, - - 4, 4, 4, 4, 4, 4, 1, 1, - 4, 4, - 4, 4, 4, 4, 4, 1, 1, 1, - - 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, - 4, 4, 4, 4, 1, 1, 1, 1, - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/input_club/k_type/k_type.c b/keyboards/input_club/k_type/k_type.c index c719208af1..2fd1bd0612 100644 --- a/keyboards/input_club/k_type/k_type.c +++ b/keyboards/input_club/k_type/k_type.c @@ -150,57 +150,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 1, SW11_CS7, SW10_CS7, SW12_CS7 } }; -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }, - { 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 }, - { 20, 21, 22, 23, 24, 25, 26, 27, 28, NO_LED }, - { 29, NO_LED, 30, 31, 32, 33, 34, 35, 36, 37 }, - { 38, 39, 40, 41, 42, 43, 44, 45, 46, NO_LED }, - { 47, 48, 49, 50, 51, 52, 53, 54, 55, 56 }, - { 57, 58, 59, 60, 61, NO_LED, 62, NO_LED, 63, NO_LED }, - { 64, 65, 66, 67, 68, 69, 70, 71, 72, 73 }, - { NO_LED, 74, NO_LED, 75, 76, 77, 78, 79, 80, 81 }, - { 82, 83, 84, 85, 86, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED } - }, { - // LED Index to Physical Position - // Key LED - { 0, 0 }, { 26, 0 }, { 39, 0 }, { 52, 0 }, { 65, 0 }, { 79, 0 }, { 92, 0 }, { 105, 0 }, { 118, 0 }, { 131, 0 }, { 144, 0 }, { 158, 0 }, { 171, 0 }, { 197, 0 }, { 210, 0 }, { 224, 0 }, - - { 0, 21 }, { 13, 21 }, { 26, 21 }, { 39, 21 }, { 52, 21 }, { 65, 21 }, { 79, 21 }, { 92, 21 }, { 105, 21 }, { 118, 21 }, { 131, 21 }, { 144, 21 }, { 158, 21 }, { 171, 21 }, { 197, 21 }, { 210, 21 }, { 224, 21 }, - { 0, 32 }, { 13, 32 }, { 26, 32 }, { 39, 32 }, { 52, 32 }, { 65, 32 }, { 79, 32 }, { 92, 32 }, { 105, 32 }, { 118, 32 }, { 131, 32 }, { 144, 32 }, { 158, 32 }, { 171, 32 }, { 197, 32 }, { 210, 32 }, { 224, 32 }, - { 0, 42 }, { 13, 42 }, { 26, 42 }, { 39, 42 }, { 52, 42 }, { 65, 42 }, { 79, 42 }, { 92, 42 }, { 105, 42 }, { 118, 42 }, { 131, 42 }, { 144, 42 }, { 171, 42 }, - { 0, 53 }, { 26, 53 }, { 39, 53 }, { 52, 53 }, { 65, 53 }, { 79, 53 }, { 92, 53 }, { 105, 53 }, { 118, 53 }, { 131, 53 }, { 144, 53 }, { 171, 53 }, { 210, 53 }, - { 0, 64 }, { 13, 64 }, { 26, 64 }, { 79, 64 }, { 131, 64 }, { 144, 64 }, { 158, 64 }, { 171, 64 }, { 197, 64 }, { 210, 64 }, { 224, 64 }, - - // Underglow LED - { 224, 64 }, { 206, 64 }, { 189, 64 }, { 172, 64 }, { 155, 64 }, { 137, 64 }, { 120, 64 }, { 103, 64 }, { 86, 64 }, { 68, 64 }, { 51, 64 }, { 34, 64 }, { 17, 64 }, { 0, 64 }, - { 0, 42 }, { 0, 21 }, - { 0, 0 }, { 17, 0 }, { 34, 0 }, { 51, 0 }, { 68, 0 }, { 86, 0 }, { 103, 0 }, { 120, 0 }, { 137, 0 }, { 155, 0 }, { 172, 0 }, { 189, 0 }, { 206, 0 }, { 224, 0 }, - { 224, 21 }, { 224, 42 } - }, { - // LED Index to Flag - //Key LED - 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, - - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, - - // Underglow LED - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - - 2, 2, - - 2, 2, - - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - } -}; - void matrix_init_kb(void) { // put your keyboard start-up code here // runs once when the firmware starts up diff --git a/keyboards/input_club/k_type/keyboard.json b/keyboards/input_club/k_type/keyboard.json index ed004335c0..99ff1fe5b6 100644 --- a/keyboards/input_club/k_type/keyboard.json +++ b/keyboards/input_club/k_type/keyboard.json @@ -53,7 +53,128 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "custom" + "driver": "custom", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 26, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 39, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 65, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 79, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 92, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 118, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 131, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 144, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 158, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 171, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 197, "y": 0, "flags": 1}, + {"matrix": [1, 4], "x": 210, "y": 0, "flags": 1}, + {"matrix": [1, 5], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 6], "x": 0, "y": 21, "flags": 1}, + {"matrix": [1, 7], "x": 13, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 26, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 39, "y": 21, "flags": 4}, + {"matrix": [2, 0], "x": 52, "y": 21, "flags": 4}, + {"matrix": [2, 1], "x": 65, "y": 21, "flags": 4}, + {"matrix": [2, 2], "x": 79, "y": 21, "flags": 4}, + {"matrix": [2, 3], "x": 92, "y": 21, "flags": 4}, + {"matrix": [2, 4], "x": 105, "y": 21, "flags": 4}, + {"matrix": [2, 5], "x": 118, "y": 21, "flags": 4}, + {"matrix": [2, 6], "x": 131, "y": 21, "flags": 4}, + {"matrix": [2, 7], "x": 144, "y": 21, "flags": 4}, + {"matrix": [2, 8], "x": 158, "y": 21, "flags": 4}, + {"matrix": [3, 0], "x": 171, "y": 21, "flags": 1}, + {"matrix": [3, 2], "x": 197, "y": 21, "flags": 4}, + {"matrix": [3, 3], "x": 210, "y": 21, "flags": 4}, + {"matrix": [3, 4], "x": 224, "y": 21, "flags": 4}, + {"matrix": [3, 5], "x": 0, "y": 32, "flags": 1}, + {"matrix": [3, 6], "x": 13, "y": 32, "flags": 4}, + {"matrix": [3, 7], "x": 26, "y": 32, "flags": 4}, + {"matrix": [3, 8], "x": 39, "y": 32, "flags": 4}, + {"matrix": [3, 9], "x": 52, "y": 32, "flags": 4}, + {"matrix": [4, 0], "x": 65, "y": 32, "flags": 4}, + {"matrix": [4, 1], "x": 79, "y": 32, "flags": 4}, + {"matrix": [4, 2], "x": 92, "y": 32, "flags": 4}, + {"matrix": [4, 3], "x": 105, "y": 32, "flags": 4}, + {"matrix": [4, 4], "x": 118, "y": 32, "flags": 4}, + {"matrix": [4, 5], "x": 131, "y": 32, "flags": 4}, + {"matrix": [4, 6], "x": 144, "y": 32, "flags": 4}, + {"matrix": [4, 7], "x": 158, "y": 32, "flags": 4}, + {"matrix": [4, 8], "x": 171, "y": 32, "flags": 4}, + {"matrix": [5, 0], "x": 197, "y": 32, "flags": 4}, + {"matrix": [5, 1], "x": 210, "y": 32, "flags": 4}, + {"matrix": [5, 2], "x": 224, "y": 32, "flags": 4}, + {"matrix": [5, 3], "x": 0, "y": 42, "flags": 1}, + {"matrix": [5, 4], "x": 13, "y": 42, "flags": 4}, + {"matrix": [5, 5], "x": 26, "y": 42, "flags": 4}, + {"matrix": [5, 6], "x": 39, "y": 42, "flags": 4}, + {"matrix": [5, 7], "x": 52, "y": 42, "flags": 4}, + {"matrix": [5, 8], "x": 65, "y": 42, "flags": 4}, + {"matrix": [5, 9], "x": 79, "y": 42, "flags": 4}, + {"matrix": [6, 0], "x": 92, "y": 42, "flags": 4}, + {"matrix": [6, 1], "x": 105, "y": 42, "flags": 4}, + {"matrix": [6, 2], "x": 118, "y": 42, "flags": 4}, + {"matrix": [6, 3], "x": 131, "y": 42, "flags": 4}, + {"matrix": [6, 4], "x": 144, "y": 42, "flags": 4}, + {"matrix": [6, 6], "x": 171, "y": 42, "flags": 1}, + {"matrix": [6, 8], "x": 0, "y": 53, "flags": 1}, + {"matrix": [7, 0], "x": 26, "y": 53, "flags": 4}, + {"matrix": [7, 1], "x": 39, "y": 53, "flags": 4}, + {"matrix": [7, 2], "x": 52, "y": 53, "flags": 4}, + {"matrix": [7, 3], "x": 65, "y": 53, "flags": 4}, + {"matrix": [7, 4], "x": 79, "y": 53, "flags": 4}, + {"matrix": [7, 5], "x": 92, "y": 53, "flags": 4}, + {"matrix": [7, 6], "x": 105, "y": 53, "flags": 4}, + {"matrix": [7, 7], "x": 118, "y": 53, "flags": 4}, + {"matrix": [7, 8], "x": 131, "y": 53, "flags": 4}, + {"matrix": [7, 9], "x": 144, "y": 53, "flags": 4}, + {"matrix": [8, 1], "x": 171, "y": 53, "flags": 1}, + {"matrix": [8, 3], "x": 210, "y": 53, "flags": 1}, + {"matrix": [8, 4], "x": 0, "y": 64, "flags": 1}, + {"matrix": [8, 5], "x": 13, "y": 64, "flags": 1}, + {"matrix": [8, 6], "x": 26, "y": 64, "flags": 1}, + {"matrix": [8, 7], "x": 79, "y": 64, "flags": 4}, + {"matrix": [8, 8], "x": 131, "y": 64, "flags": 1}, + {"matrix": [8, 9], "x": 144, "y": 64, "flags": 1}, + {"matrix": [9, 0], "x": 158, "y": 64, "flags": 1}, + {"matrix": [9, 1], "x": 171, "y": 64, "flags": 1}, + {"matrix": [9, 2], "x": 197, "y": 64, "flags": 1}, + {"matrix": [9, 3], "x": 210, "y": 64, "flags": 1}, + {"matrix": [9, 4], "x": 224, "y": 64, "flags": 1}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 206, "y": 64, "flags": 2}, + {"x": 189, "y": 64, "flags": 2}, + {"x": 172, "y": 64, "flags": 2}, + {"x": 155, "y": 64, "flags": 2}, + {"x": 137, "y": 64, "flags": 2}, + {"x": 120, "y": 64, "flags": 2}, + {"x": 103, "y": 64, "flags": 2}, + {"x": 86, "y": 64, "flags": 2}, + {"x": 68, "y": 64, "flags": 2}, + {"x": 51, "y": 64, "flags": 2}, + {"x": 34, "y": 64, "flags": 2}, + {"x": 17, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 0, "y": 42, "flags": 2}, + {"x": 0, "y": 21, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 17, "y": 0, "flags": 2}, + {"x": 34, "y": 0, "flags": 2}, + {"x": 51, "y": 0, "flags": 2}, + {"x": 68, "y": 0, "flags": 2}, + {"x": 86, "y": 0, "flags": 2}, + {"x": 103, "y": 0, "flags": 2}, + {"x": 120, "y": 0, "flags": 2}, + {"x": 137, "y": 0, "flags": 2}, + {"x": 155, "y": 0, "flags": 2}, + {"x": 172, "y": 0, "flags": 2}, + {"x": 189, "y": 0, "flags": 2}, + {"x": 206, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 224, "y": 21, "flags": 2}, + {"x": 224, "y": 42, "flags": 2} + ] }, "features": { "bootmagic": false, From db9b295aa720721ea3e3f94617a90dfc7dcbad58 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Sep 2025 04:50:36 -0600 Subject: [PATCH 043/255] Migrate `g_led_config` to DD (L) (#25617) --- keyboards/labbe/labbeminiv1/keyboard.json | 9 ++ keyboards/labbe/labbeminiv1/labbeminiv1.c | 36 -------- .../latincompass/latin17rgb/keyboard.json | 19 ++++ .../latincompass/latin17rgb/latin17rgb.c | 54 ++++------- .../latincompass/latin6rgb/keyboard.json | 8 ++ keyboards/latincompass/latin6rgb/latin6rgb.c | 43 +++------ keyboards/latincompass/latinpad/keyboard.json | 22 ++++- keyboards/latincompass/latinpad/latinpad.c | 38 -------- keyboards/linworks/fave65h/fave65h.c | 44 --------- keyboards/linworks/fave65h/keyboard.json | 69 ++++++++++++++ keyboards/linworks/fave87h/fave87h.c | 48 ---------- keyboards/linworks/fave87h/keyboard.json | 89 +++++++++++++++++++ 12 files changed, 244 insertions(+), 235 deletions(-) delete mode 100644 keyboards/labbe/labbeminiv1/labbeminiv1.c delete mode 100644 keyboards/latincompass/latinpad/latinpad.c delete mode 100644 keyboards/linworks/fave65h/fave65h.c delete mode 100644 keyboards/linworks/fave87h/fave87h.c diff --git a/keyboards/labbe/labbeminiv1/keyboard.json b/keyboards/labbe/labbeminiv1/keyboard.json index e1b94dfa4e..905a180d22 100644 --- a/keyboards/labbe/labbeminiv1/keyboard.json +++ b/keyboards/labbe/labbeminiv1/keyboard.json @@ -26,6 +26,15 @@ "diode_direction": "COL2ROW", "processor": "atmega32u4", "bootloader": "atmel-dfu", + "rgb_matrix": { + "driver": "ws2812", + "layout": [ + {"matrix": [0, 1], "x": 112, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [1, 1], "x": 112, "y": 64, "flags": 4}, + {"matrix": [1, 2], "x": 224, "y": 64, "flags": 4} + ] + }, "layouts": { "LAYOUT_wasd": { "layout": [ diff --git a/keyboards/labbe/labbeminiv1/labbeminiv1.c b/keyboards/labbe/labbeminiv1/labbeminiv1.c deleted file mode 100644 index a2ce367c5b..0000000000 --- a/keyboards/labbe/labbeminiv1/labbeminiv1.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - // Key Matrix to LED Index - {NO_LED, 0, NO_LED}, - {1, 2, 3} - }, - { - // LED Index to Physical Position - {112, 0}, - {0, 64}, {112, 64}, {224, 64}, - }, - { - // LED Index to Flag - 4, - 4, 4, 4 - } -}; -#endif \ No newline at end of file diff --git a/keyboards/latincompass/latin17rgb/keyboard.json b/keyboards/latincompass/latin17rgb/keyboard.json index 6dab2faf68..d6689f203a 100644 --- a/keyboards/latincompass/latin17rgb/keyboard.json +++ b/keyboards/latincompass/latin17rgb/keyboard.json @@ -61,6 +61,25 @@ "solid_reactive": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 48, "y": 32, "flags": 4}, + {"matrix": [0, 1], "x": 48, "y": 48, "flags": 4}, + {"matrix": [0, 2], "x": 64, "y": 48, "flags": 4}, + {"matrix": [0, 3], "x": 80, "y": 48, "flags": 1}, + {"matrix": [1, 0], "x": 16, "y": 32, "flags": 1}, + {"matrix": [1, 1], "x": 16, "y": 48, "flags": 1}, + {"matrix": [1, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [1, 3], "x": 64, "y": 64, "flags": 1}, + {"matrix": [2, 0], "x": 80, "y": 16, "flags": 1}, + {"matrix": [2, 1], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 80, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 112, "y": 0, "flags": 1}, + {"matrix": [3, 1], "x": 128, "y": 0, "flags": 4}, + {"matrix": [3, 2], "x": 144, "y": 0, "flags": 4}, + {"matrix": [3, 3], "x": 160, "y": 0, "flags": 4}, + {"matrix": [4, 0], "x": 128, "y": 16, "flags": 4}, + {"matrix": [4, 1], "x": 144, "y": 16, "flags": 4} + ], "sleep": true }, "features": { diff --git a/keyboards/latincompass/latin17rgb/latin17rgb.c b/keyboards/latincompass/latin17rgb/latin17rgb.c index 54705bf4f7..c9120920eb 100644 --- a/keyboards/latincompass/latin17rgb/latin17rgb.c +++ b/keyboards/latincompass/latin17rgb/latin17rgb.c @@ -1,18 +1,18 @@ /* Copyright 2021 18438880 - * - * 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 . - */ + * + * 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 "quantum.h" #ifdef RGB_MATRIX_ENABLE @@ -31,7 +31,7 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {0, C1_12, C2_12, C3_12},// BL5 {0, C1_13, C2_13, C3_13},// BL6 {0, C1_6, C2_6, C3_6},// BL7 - {0, C1_7, C2_7, C3_7},//BL8 + {0, C1_7, C2_7, C3_7},//BL8 {0, C1_8, C2_8, C3_8},// BL9 {0, C1_14, C2_14, C3_14},// BL10 {0, C1_15, C2_15, C3_15},// BL11 @@ -41,30 +41,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {0, C9_3, C8_3, C7_3},//BL15 {0, C9_5, C8_5, C7_5},// BL16 {0, C9_6, C8_6, C7_6},// BL17 - -}; -led_config_t g_led_config = { - { - { 0, 1, 2, 3}, - { 4, 5, 6, 7}, - { 8, 9, 10, NO_LED}, - { 11, 12, 13, 14}, - { 15, 16, NO_LED, NO_LED}, - }, - { - { 48, 32},{ 48, 48},{ 64, 48},{ 80, 48}, - { 16, 32},{ 16, 48}, { 32, 48},{ 64, 64}, - { 80, 16},{ 64, 32},{ 80, 32}, - {112, 0},{128, 0},{144, 0},{160, 0}, - {128, 16},{144, 16} - }, - { - 4, 4, 4, 1, - 1, 1, 4, 1, - 1, 4, 4, - 1, 4, 4, 4, - 4, 4 - } }; #endif diff --git a/keyboards/latincompass/latin6rgb/keyboard.json b/keyboards/latincompass/latin6rgb/keyboard.json index d2708df399..6674b58205 100644 --- a/keyboards/latincompass/latin6rgb/keyboard.json +++ b/keyboards/latincompass/latin6rgb/keyboard.json @@ -39,6 +39,14 @@ "solid_reactive": true }, "driver": "is31fl3731", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [0, 1], "x": 0, "y": 64, "flags": 4}, + {"matrix": [0, 2], "x": 112, "y": 64, "flags": 4}, + {"matrix": [1, 0], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 1], "x": 112, "y": 32, "flags": 1}, + {"matrix": [1, 2], "x": 224, "y": 32, "flags": 4} + ], "sleep": true }, "matrix_pins": { diff --git a/keyboards/latincompass/latin6rgb/latin6rgb.c b/keyboards/latincompass/latin6rgb/latin6rgb.c index 779373ae8f..1176063c37 100644 --- a/keyboards/latincompass/latin6rgb/latin6rgb.c +++ b/keyboards/latincompass/latin6rgb/latin6rgb.c @@ -1,18 +1,18 @@ /* Copyright 2021 18438880 - * - * 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 . - */ + * + * 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 "quantum.h" #ifdef RGB_MATRIX_ENABLE @@ -31,19 +31,4 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {0, C1_12, C2_12, C3_12},// BL5 {0, C1_13, C2_13, C3_13},// BL6 }; - -led_config_t g_led_config = { - { - { 0, 1, 2}, - { 3, 4, 5}, - }, - { - { 48, 32},{ 48, 48},{ 64, 48}, - { 80, 16},{ 64, 32},{ 80, 32} - }, - { - 4, 4, 4, - 1, 1, 4 - } -}; #endif diff --git a/keyboards/latincompass/latinpad/keyboard.json b/keyboards/latincompass/latinpad/keyboard.json index 3b4563b1ca..930cdadad8 100644 --- a/keyboards/latincompass/latinpad/keyboard.json +++ b/keyboards/latincompass/latinpad/keyboard.json @@ -40,7 +40,27 @@ "pixel_flow": true, "pixel_fractal": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [0, 1], "x": 74, "y": 16, "flags": 1}, + {"matrix": [0, 2], "x": 148, "y": 16, "flags": 1}, + {"matrix": [0, 3], "x": 224, "y": 16, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [1, 1], "x": 74, "y": 32, "flags": 1}, + {"matrix": [1, 2], "x": 148, "y": 32, "flags": 1}, + {"matrix": [1, 3], "x": 224, "y": 32, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 48, "flags": 1}, + {"matrix": [2, 1], "x": 74, "y": 48, "flags": 1}, + {"matrix": [2, 2], "x": 148, "y": 48, "flags": 1}, + {"matrix": [2, 3], "x": 224, "y": 48, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 74, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 148, "y": 64, "flags": 1}, + {"matrix": [3, 3], "x": 224, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [4, 1], "x": 74, "y": 0, "flags": 1} + ] }, "features": { "bootmagic": true, diff --git a/keyboards/latincompass/latinpad/latinpad.c b/keyboards/latincompass/latinpad/latinpad.c deleted file mode 100644 index b476b4c238..0000000000 --- a/keyboards/latincompass/latinpad/latinpad.c +++ /dev/null @@ -1,38 +0,0 @@ -/* Copyright 2020 latincompass - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3 }, - { 4, 5, 6, 7 }, - { 8, 9, 10, 11 }, - { 12, 13, 14, 15 }, - { 16, 17, NO_LED, NO_LED } -},{ - { 74, 21 }, { 37, 21 }, { 24, 21 }, { 18, 21 }, - { 74, 10 }, { 37, 10 }, { 28, 10 }, { 18, 10 }, - { 74, 7 }, { 37, 7 }, { 20, 7 }, { 18, 7 }, - { 74, 5 }, { 37, 5 }, { 22, 5 }, { 18, 5 }, - { 74, 5 }, { 37, 5 }, -},{ - 1, 1, 1, 1, - 1, 1, 1, 1, - 1, 1, 1, 1, - 1, 1, 1, 1, - 1, 1 -} }; -#endif diff --git a/keyboards/linworks/fave65h/fave65h.c b/keyboards/linworks/fave65h/fave65h.c deleted file mode 100644 index 01cf705e2a..0000000000 --- a/keyboards/linworks/fave65h/fave65h.c +++ /dev/null @@ -1,44 +0,0 @@ -/* -Copyright 2020 -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 "quantum.h" - - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 66, 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52 }, - { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 0, 28, 27, 26, 25, 24, 23, 22, 21, 20, 19, 18, NO_LED, 17, 16 }, - { 51, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, NO_LED, 39, 40, 41 }, - { 50, 49, 48, NO_LED, NO_LED, NO_LED, 47, NO_LED, 46, NO_LED, 45, NO_LED, 44, 43, 42 } - }, { - // LED Index to Physical Position - {3, 32}, {8, 16}, {28, 16}, {44, 16}, {60, 16}, {76, 16}, {92, 16}, {108, 16}, {124, 16}, {140, 16}, - {156, 16}, {172, 16}, {188, 16}, {204, 16}, {224, 16}, {244, 16}, {244, 32}, {218, 32}, {192, 32}, {176, 32}, - {160, 32}, {144, 32}, {128, 32}, {112, 32}, {96, 32}, {80, 32}, {64, 32}, {48, 32}, {32, 32}, {40, 48}, - {56, 48}, {72, 48}, {88, 48}, {104, 48}, {120, 48}, {136, 48}, {152, 48}, {168, 48}, {184, 48}, {206, 48}, - {228, 48}, {244, 48}, {244, 64}, {228, 64}, {212, 64}, {186, 64}, {166, 64}, {96, 64}, {46, 64}, {22, 64}, - {0, 64}, {14, 48}, {244, 0}, {220, 3}, {196, 0}, {180, 0}, {164, 0}, {148, 0}, {132, 0}, {116, 0}, - {100, 0}, {84, 0}, {68, 0}, {52, 0}, {36, 0}, {20, 0}, {4, 0} - }, { - // LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1 - } -}; -#endif diff --git a/keyboards/linworks/fave65h/keyboard.json b/keyboards/linworks/fave65h/keyboard.json index 212bd0a37b..e92bb4abca 100644 --- a/keyboards/linworks/fave65h/keyboard.json +++ b/keyboards/linworks/fave65h/keyboard.json @@ -53,6 +53,75 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 1}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 9}, + {"matrix": [3, 3], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 171, "y": 64, "flags": 4}, + {"matrix": [4, 8], "x": 152, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1} + ], "max_brightness": 120, "sleep": true }, diff --git a/keyboards/linworks/fave87h/fave87h.c b/keyboards/linworks/fave87h/fave87h.c deleted file mode 100644 index c529e439b9..0000000000 --- a/keyboards/linworks/fave87h/fave87h.c +++ /dev/null @@ -1,48 +0,0 @@ -/* -Copyright 2020 -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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 47, NO_LED, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62 }, - { 46, 45, 44, 43, 42, 41, 40, 39, 38, 37, 36, 35, 34, 33, 32, 31, 30 }, - { 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, NO_LED, 0, NO_LED, NO_LED, NO_LED }, - { 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, NO_LED, 85, NO_LED, NO_LED, 86, NO_LED }, - { 73, 72, 71, NO_LED, NO_LED, 70, NO_LED, NO_LED, NO_LED, 69, 68, NO_LED, 67, 66, 65, 64, 63 } - }, { - // LED Index to Physical Position - { 190, 40 }, { 167, 40 }, { 153, 40 }, { 139, 40 }, { 125, 40 }, { 111, 40 }, { 97, 40 }, { 83, 40 }, { 69, 40 }, { 55, 40 }, - { 40, 40 }, { 26, 40 }, { 0, 41 }, { 5, 27 }, { 23, 27 }, { 37, 27 }, { 51, 27 }, { 65, 27 }, { 79, 27 }, { 93, 27 }, - { 107, 27 }, { 121, 27 }, { 135, 27 }, { 149, 27 }, { 163, 27 }, { 177, 27 }, { 195, 27 }, { 216, 27 }, { 230, 27 }, { 244, 27 }, - { 244, 15 }, { 230, 15 }, { 216, 15 }, { 191, 17 }, { 170, 15 }, { 156, 15 }, { 142, 15 }, { 128, 15 }, { 114, 15 }, { 100, 15 }, - { 86, 15 }, { 72, 15 }, { 58, 15 }, { 44, 15 }, { 30, 15 }, { 16, 15 }, { 2, 15 }, { 2, 0 }, { 30, 0 }, { 44, 0 }, - { 58, 0 }, { 72, 0 }, { 93, 0 }, { 107, 0 }, { 121, 0 }, { 135, 0 }, { 156, 0 }, { 170, 0 }, { 184, 0 }, { 198, 0 }, - { 216, 0 }, { 230, 0 }, { 244, 0 }, { 244, 64 }, { 230, 64 }, { 216, 64 }, { 197, 64 }, { 179, 64 }, { 162, 64 }, { 144, 64 }, - { 91, 64 }, { 39, 64 }, { 21, 64 }, { 4, 64 }, { 11, 52 }, { 33, 52 }, { 47, 52 }, { 62, 52 }, { 76, 52 }, { 90, 52 }, - { 104, 52 }, { 118, 52 }, { 132, 52 }, { 146, 52 }, { 160, 52 }, { 186, 52 }, { 230, 52 } - }, { - // LED Index to Flag - 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1 - } -}; -#endif diff --git a/keyboards/linworks/fave87h/keyboard.json b/keyboards/linworks/fave87h/keyboard.json index 4bb6e42de4..b3d125c770 100644 --- a/keyboards/linworks/fave87h/keyboard.json +++ b/keyboards/linworks/fave87h/keyboard.json @@ -56,6 +56,95 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [3, 13], "x": 174, "y": 40, "flags": 1}, + {"matrix": [3, 11], "x": 153, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 127, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 114, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 101, "y": 40, "flags": 1}, + {"matrix": [3, 6], "x": 88, "y": 40, "flags": 1}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 1}, + {"matrix": [3, 4], "x": 62, "y": 40, "flags": 1}, + {"matrix": [3, 3], "x": 49, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 40, "flags": 4}, + {"matrix": [3, 1], "x": 23, "y": 40, "flags": 4}, + {"matrix": [3, 0], "x": 5, "y": 40, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 28, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 28, "flags": 1}, + {"matrix": [2, 2], "x": 33, "y": 28, "flags": 1}, + {"matrix": [2, 3], "x": 46, "y": 28, "flags": 1}, + {"matrix": [2, 4], "x": 59, "y": 28, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 28, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 28, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 28, "flags": 4}, + {"matrix": [2, 8], "x": 111, "y": 28, "flags": 4}, + {"matrix": [2, 9], "x": 124, "y": 28, "flags": 4}, + {"matrix": [2, 10], "x": 137, "y": 28, "flags": 4}, + {"matrix": [2, 11], "x": 150, "y": 28, "flags": 4}, + {"matrix": [2, 12], "x": 163, "y": 28, "flags": 4}, + {"matrix": [2, 13], "x": 179, "y": 28, "flags": 4}, + {"matrix": [2, 14], "x": 198, "y": 28, "flags": 4}, + {"matrix": [2, 15], "x": 211, "y": 28, "flags": 4}, + {"matrix": [2, 16], "x": 224, "y": 28, "flags": 1}, + {"matrix": [1, 16], "x": 224, "y": 15, "flags": 1}, + {"matrix": [1, 15], "x": 211, "y": 15, "flags": 1}, + {"matrix": [1, 14], "x": 198, "y": 15, "flags": 1}, + {"matrix": [1, 13], "x": 176, "y": 15, "flags": 1}, + {"matrix": [1, 12], "x": 156, "y": 15, "flags": 4}, + {"matrix": [1, 11], "x": 143, "y": 15, "flags": 4}, + {"matrix": [1, 10], "x": 130, "y": 15, "flags": 4}, + {"matrix": [1, 9], "x": 117, "y": 15, "flags": 4}, + {"matrix": [1, 8], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 78, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 65, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 39, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 26, "y": 15, "flags": 4}, + {"matrix": [1, 1], "x": 13, "y": 15, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 26, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 39, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 52, "y": 0, "flags": 9}, + {"matrix": [0, 5], "x": 65, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 85, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 98, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 111, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 124, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 143, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 156, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 169, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 182, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 198, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 211, "y": 0, "flags": 4}, + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1}, + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 211, "y": 64, "flags": 4}, + {"matrix": [5, 14], "x": 198, "y": 64, "flags": 4}, + {"matrix": [5, 13], "x": 180, "y": 64, "flags": 4}, + {"matrix": [5, 12], "x": 164, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 148, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 131, "y": 64, "flags": 4}, + {"matrix": [5, 5], "x": 83, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 34, "y": 64, "flags": 4}, + {"matrix": [5, 1], "x": 18, "y": 64, "flags": 4}, + {"matrix": [5, 0], "x": 2, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 8, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 29, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 42, "y": 52, "flags": 1}, + {"matrix": [4, 3], "x": 55, "y": 52, "flags": 1}, + {"matrix": [4, 4], "x": 68, "y": 52, "flags": 1}, + {"matrix": [4, 5], "x": 81, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 94, "y": 52, "flags": 1}, + {"matrix": [4, 7], "x": 107, "y": 52, "flags": 1}, + {"matrix": [4, 8], "x": 120, "y": 52, "flags": 1}, + {"matrix": [4, 9], "x": 133, "y": 52, "flags": 1}, + {"matrix": [4, 10], "x": 146, "y": 52, "flags": 1}, + {"matrix": [4, 12], "x": 171, "y": 52, "flags": 1}, + {"matrix": [4, 15], "x": 211, "y": 52, "flags": 1} + ], "max_brightness": 120, "sleep": true }, From eda39f435698e41a043a4a21f48a75253f2fb879 Mon Sep 17 00:00:00 2001 From: Ryan Date: Wed, 10 Sep 2025 02:34:33 +1000 Subject: [PATCH 044/255] Update default OLED font (#25565) --- drivers/oled/glcdfont.c | 264 +++++++++++++++++++++++++++++-- platforms/avr/drivers/glcdfont.c | 23 --- 2 files changed, 252 insertions(+), 35 deletions(-) delete mode 100644 platforms/avr/drivers/glcdfont.c diff --git a/drivers/oled/glcdfont.c b/drivers/oled/glcdfont.c index 0e201d71ee..4099389691 100644 --- a/drivers/oled/glcdfont.c +++ b/drivers/oled/glcdfont.c @@ -1,16 +1,256 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later WITH BSD-2-Clause + #include "progmem.h" -// Helidox 8x6 font with QMK Firmware Logo -// Online editor: http://teripom.x0.com/ - +/** + * QMK 6x8 Font for LCD and OLED displays + * + * Derived from the first half of the Adafruit GFX Library font: + * https://github.com/adafruit/Adafruit-GFX-Library + * + * The first 128 characters match that of code page 437, the character set used by the original IBM PC, which includes all printable ASCII characters. + * Each byte represents a column of 8 pixels, with the least significant bit being the top of the glyph. + * + * A large 21x3 character QMK Firmware logo is encoded from 0x80-0x94, 0xA0-0xB4, and 0xC0-0xD4. + * 2x2 character OS logos for Apple, Windows, Linux and Android are encoded from 0x95-0x9C and 0xB5-0xBC. + */ static const unsigned char font[] PROGMEM = { - 0x07, 0x08, 0x7F, 0x08, 0x07, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, - 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, - 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, - 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, - 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00, 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x40, 0xF0, 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0x3F, 0xF8, 0xF8, 0xFF, 0x38, 0xFF, 0xF8, 0xF8, 0xF0, 0x40, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0x00, 0xC0, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xF0, 0xF8, 0xFC, 0x3E, - 0x1E, 0x06, 0x01, 0x00, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x49, 0x49, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xDF, 0xBF, 0xBF, 0x00, 0xBF, 0xBF, 0xDF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0x49, 0x49, 0x49, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x3F, 0x60, 0x60, 0xE0, 0xBF, 0x1F, 0x00, 0x7F, 0x7F, 0x07, 0x1E, 0x38, 0x1E, 0x07, 0x7F, 0x7F, 0x00, 0x7F, 0x7F, 0x0E, 0x1F, 0x3B, 0x71, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x7F, 0x0C, 0x0C, 0x0C, 0x00, 0x7E, 0x7E, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x7E, 0x7E, 0x03, 0x03, 0x7F, 0x7E, 0x00, 0x0F, - 0x3E, 0x70, 0x3C, 0x06, 0x3C, 0x70, 0x3E, 0x0F, 0x00, 0x32, 0x7B, 0x49, 0x49, 0x3F, 0x7E, 0x00, 0x7F, 0x7E, 0x03, 0x03, 0x00, 0x1E, 0x3F, 0x69, 0x69, 0x6F, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F, 0x3F, 0x3C, 0x78, 0x70, 0x60, 0x00, 0x00, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F, 0x0F, 0x7E, 0x0F, 0x0F, 0x7F, 0x0F, 0x7F, 0x0F, 0x0F, 0x07, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x07, 0x08, 0x7F, 0x08, 0x07, 0x00, // 0x00 NUL / Ψ + 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, // 0x01 SOH / ☺︎ + 0xC1, 0x94, 0xB0, 0x94, 0xC1, 0x00, // 0x02 STX / ☻ + 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, // 0x03 ETX / ♥︎ + 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, // 0x04 EOT / ♦︎ + 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, // 0x05 ENQ / ♣︎ + 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, // 0x06 ACK / ♠︎ + 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, // 0x07 BEL / • + 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, // 0x08 BS / ◘ + 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, // 0x09 HT / ○ + 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, // 0x0A LF / ◙ + 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, // 0x0B VT / ♂︎ + 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, // 0x0C FF / ♀︎ + 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, // 0x0D CR / ♪ + 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, // 0x0E SO / ♫ + 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, // 0x0F SI / ☼ + + 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, // 0x10 DLE / ► + 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, // 0x11 DC1 / ◄ + 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, // 0x12 DC2 / ↕︎ + 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, // 0x13 DC3 / ‼︎ + 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, // 0x14 DC4 / ¶ + 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, // 0x15 NAK / § + 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, // 0x16 SYN / ▬ + 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, // 0x17 ETB / ↨ + 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, // 0x18 CAN / ↑ + 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, // 0x19 EM / ↓ + 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, // 0x1A SUB / → + 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, // 0x1B ESC / ← + 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, // 0x1C FS / ∟ + 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, // 0x1D GS / ↔︎ + 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, // 0x1E RS / ▲ + 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, // 0x1F US / ▼ + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x20 Space + 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, // 0x21 ! + 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, // 0x22 " + 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, // 0x23 # + 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, // 0x24 $ + 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, // 0x25 % + 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, // 0x26 & + 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, // 0x27 ' + 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, // 0x28 ( + 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, // 0x29 ) + 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, // 0x2A * + 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, // 0x2B + + 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, // 0x2C , + 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, // 0x2D - + 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, // 0x2E . + 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, // 0x2F / + + 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, // 0x30 0 + 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, // 0x31 1 + 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, // 0x32 2 + 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, // 0x33 3 + 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, // 0x34 4 + 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, // 0x35 5 + 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, // 0x36 6 + 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, // 0x37 7 + 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, // 0x38 8 + 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, // 0x39 9 + 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, // 0x3A : + 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, // 0x3B ; + 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, // 0x3C < + 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, // 0x3D = + 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, // 0x3E > + 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, // 0x3F ? + + 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, // 0x40 @ + 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, // 0x41 A + 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, // 0x42 B + 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, // 0x43 C + 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, // 0x44 D + 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, // 0x45 E + 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, // 0x46 F + 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, // 0x47 G + 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, // 0x48 H + 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, // 0x49 I + 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, // 0x4A J + 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, // 0x4B K + 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, // 0x4C L + 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, // 0x4D M + 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, // 0x4E N + 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, // 0x4F O + + 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, // 0x50 P + 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, // 0x51 Q + 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, // 0x52 R + 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, // 0x53 S + 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, // 0x54 T + 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, // 0x55 U + 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, // 0x56 V + 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, // 0x57 W + 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, // 0x58 X + 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, // 0x59 Y + 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, // 0x5A Z + 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, // 0x5B [ + 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, // 0x5C Backslash + 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0x5D ] + 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, // 0x5E ^ + 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, // 0x5F _ + + 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, // 0x60 ` + 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, // 0x61 a + 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, // 0x62 b + 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, // 0x63 c + 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, // 0x64 d + 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, // 0x65 e + 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, // 0x66 f + 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00, // 0x67 g + 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, // 0x68 h + 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, // 0x69 i + 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, // 0x6A j + 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, // 0x6B k + 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, // 0x6C l + 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, // 0x6D m + 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, // 0x6E n + 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, // 0x6F o + + 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, // 0x70 p + 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, // 0x71 q + 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, // 0x72 r + 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, // 0x73 s + 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, // 0x74 t + 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, // 0x75 u + 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, // 0x76 v + 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, // 0x77 w + 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, // 0x78 x + 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, // 0x79 y + 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, // 0x7A z + 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, // 0x7B { + 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, // 0x7C | + 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, // 0x7D } + 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, // 0x7E ~ + 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, // 0x7F DEL / ⌂ + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x80 QMK Logo Top 1 + 0x00, 0x00, 0x80, 0x80, 0xE0, 0xF0, // 0x81 QMK Logo Top 2 + 0xF0, 0xFC, 0x70, 0xFC, 0xF0, 0x7C, // 0x82 QMK Logo Top 3 + 0xF0, 0xFC, 0x70, 0xFC, 0xF0, 0xF0, // 0x83 QMK Logo Top 4 + 0xE0, 0x80, 0x80, 0x00, 0x00, 0x00, // 0x84 QMK Logo Top 5 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x85 QMK Logo Top 6 + 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, // 0x86 QMK Logo Top 7 + 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, // 0x87 QMK Logo Top 8 + 0x00, 0x80, 0x80, 0x00, 0x80, 0x80, // 0x88 QMK Logo Top 9 + 0x00, 0x00, 0x00, 0x80, 0x80, 0x00, // 0x89 QMK Logo Top 10 + 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, // 0x8A QMK Logo Top 11 + 0x80, 0x80, 0x80, 0x00, 0x80, 0x80, // 0x8B QMK Logo Top 12 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8C QMK Logo Top 13 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8D QMK Logo Top 14 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8E QMK Logo Top 15 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x8F QMK Logo Top 16 + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x90 QMK Logo Top 17 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x91 QMK Logo Top 18 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x92 QMK Logo Top 19 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x93 QMK Logo Top 20 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x94 QMK Logo Top 21 + 0x00, 0xC0, 0xF0, 0xF8, 0xFC, 0x3E, // 0x95 Apple Logo TL + 0x1E, 0x06, 0x01, 0x00, 0x00, 0x00, // 0x96 Apple Logo TR + 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0x97 Windows Logo TL + 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0x98 Windows Logo TR + 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, // 0x99 Linux Logo TL + 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, // 0x9A Linux Logo TR + 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, // 0x9B Android Logo TL + 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, // 0x9C Android Logo TR + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9D + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9E + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0x9F + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xA0 QMK Logo Middle 1 + 0x00, 0x00, 0xAA, 0xAA, 0xFF, 0xFF, // 0xA1 QMK Logo Middle 2 + 0xFF, 0xFF, 0xE0, 0xDF, 0xDF, 0x00, // 0xA2 QMK Logo Middle 3 + 0xDF, 0xDF, 0xE0, 0xFF, 0xFF, 0xFF, // 0xA3 QMK Logo Middle 4 + 0xFF, 0xAA, 0xAA, 0x00, 0x00, 0x00, // 0xA4 QMK Logo Middle 5 + 0x00, 0x00, 0x00, 0x00, 0x3E, 0x7F, // 0xA5 QMK Logo Middle 6 + 0xC1, 0xC1, 0xC1, 0x7F, 0x3E, 0x00, // 0xA6 QMK Logo Middle 7 + 0xFF, 0xFF, 0x0F, 0x3C, 0x78, 0x3C, // 0xA7 QMK Logo Middle 8 + 0x0F, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, // 0xA8 QMK Logo Middle 9 + 0x1C, 0x3E, 0x77, 0xE3, 0xC1, 0x00, // 0xA9 QMK Logo Middle 10 + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, // 0xAA QMK Logo Middle 11 + 0x19, 0x19, 0x19, 0x00, 0xFD, 0xFD, // 0xAB QMK Logo Middle 12 + 0x00, 0xFE, 0xFC, 0x06, 0x06, 0x00, // 0xAC QMK Logo Middle 13 + 0xFE, 0xFC, 0x06, 0x06, 0xFC, 0xFC, // 0xAD QMK Logo Middle 14 + 0x06, 0x06, 0xFE, 0xFC, 0x00, 0x1E, // 0xAE QMK Logo Middle 15 + 0x7C, 0xE0, 0x78, 0x0C, 0x78, 0xE0, // 0xAF QMK Logo Middle 16 + + 0x7C, 0x1E, 0x00, 0x64, 0xF6, 0x92, // 0xB0 QMK Logo Middle 17 + 0x92, 0x7E, 0xFC, 0x00, 0xFE, 0xFC, // 0xB1 QMK Logo Middle 18 + 0x06, 0x06, 0x00, 0x3C, 0x7E, 0xD2, // 0xB2 QMK Logo Middle 19 + 0xD2, 0xDE, 0x4C, 0x00, 0x00, 0x00, // 0xB3 QMK Logo Middle 20 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xB4 QMK Logo Middle 21 + 0x00, 0x03, 0x0F, 0x1F, 0x3F, 0x3C, // 0xB5 Apple Logo BL + 0x78, 0x70, 0x60, 0x00, 0x00, 0x00, // 0xB6 Apple Logo BR + 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0xB7 Windows Logo BL + 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, // 0xB8 Windows Logo BR + 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, // 0xB9 Linux Logo BL + 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, // 0xBA Linux Logo BR + 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, // 0xBB Android Logo BL + 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, // 0xBC Android Logo BR + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBD + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBE + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xBF + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC0 QMK Logo Bottom 1 + 0x00, 0x00, 0x00, 0x00, 0x03, 0x07, // 0xC1 QMK Logo Bottom 2 + 0x07, 0x1F, 0x07, 0x1F, 0x07, 0x1F, // 0xC2 QMK Logo Bottom 3 + 0x07, 0x1F, 0x07, 0x1F, 0x07, 0x07, // 0xC3 QMK Logo Bottom 4 + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC4 QMK Logo Bottom 5 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC5 QMK Logo Bottom 6 + 0x00, 0x00, 0x01, 0x03, 0x02, 0x00, // 0xC6 QMK Logo Bottom 7 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC7 QMK Logo Bottom 8 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC8 QMK Logo Bottom 9 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xC9 QMK Logo Bottom 10 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCA QMK Logo Bottom 11 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCB QMK Logo Bottom 12 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCC QMK Logo Bottom 13 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCD QMK Logo Bottom 14 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCE QMK Logo Bottom 15 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xCF QMK Logo Bottom 16 + + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD0 QMK Logo Bottom 17 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD1 QMK Logo Bottom 18 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD2 QMK Logo Bottom 19 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD3 QMK Logo Bottom 10 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD4 QMK Logo Bottom 21 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD5 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD6 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD7 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD8 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xD9 + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDA + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDB + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDC + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDD + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0xDE + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 // 0xDF }; diff --git a/platforms/avr/drivers/glcdfont.c b/platforms/avr/drivers/glcdfont.c deleted file mode 100644 index 57a21965de..0000000000 --- a/platforms/avr/drivers/glcdfont.c +++ /dev/null @@ -1,23 +0,0 @@ -// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. -// See gfxfont.h for newer custom bitmap font info. - -#include "progmem.h" - -// Standard ASCII 5x7 font - -static const unsigned char font[] PROGMEM = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, 0x18, 0x3C, 0x18, 0x00, 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, 0x18, 0x24, 0x18, 0x00, 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x26, 0x29, 0x79, 0x29, 0x26, 0x40, 0x7F, 0x05, 0x05, 0x07, 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x14, 0x22, 0x7F, 0x22, 0x14, 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, 0x66, 0x89, 0x95, 0x6A, 0x60, 0x60, 0x60, 0x60, 0x60, 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x08, 0x04, 0x7E, 0x04, 0x08, 0x10, 0x20, 0x7E, 0x20, 0x10, 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, - 0x30, 0x38, 0x3E, 0x38, 0x30, 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x07, 0x00, 0x07, 0x00, 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x23, 0x13, 0x08, 0x64, 0x62, 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, 0x41, 0x22, 0x1C, 0x00, 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, 0x80, 0x70, 0x30, 0x00, 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, 0x00, 0x60, 0x60, 0x00, 0x20, 0x10, 0x08, 0x04, 0x02, 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, 0x42, 0x7F, 0x40, 0x00, 0x72, 0x49, 0x49, 0x49, 0x46, 0x21, 0x41, 0x49, 0x4D, 0x33, 0x18, 0x14, 0x12, 0x7F, 0x10, 0x27, 0x45, 0x45, 0x45, 0x39, 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x41, 0x21, 0x11, 0x09, 0x07, 0x36, 0x49, 0x49, 0x49, 0x36, 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x40, 0x34, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, 0x41, 0x22, 0x14, 0x08, 0x02, 0x01, 0x59, 0x09, 0x06, 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x7F, 0x49, 0x49, 0x49, 0x36, 0x3E, 0x41, 0x41, 0x41, 0x22, 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x7F, 0x49, 0x49, 0x49, 0x41, 0x7F, 0x09, 0x09, 0x09, 0x01, 0x3E, 0x41, 0x41, 0x51, 0x73, 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, 0x41, 0x7F, 0x41, 0x00, 0x20, 0x40, 0x41, 0x3F, 0x01, 0x7F, 0x08, 0x14, 0x22, 0x41, 0x7F, 0x40, 0x40, 0x40, 0x40, 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x7F, 0x09, 0x09, 0x09, 0x06, 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x7F, 0x09, 0x19, 0x29, 0x46, 0x26, 0x49, 0x49, 0x49, 0x32, 0x03, 0x01, 0x7F, 0x01, 0x03, 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x63, 0x14, 0x08, 0x14, 0x63, 0x03, 0x04, 0x78, 0x04, 0x03, - 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, 0x7F, 0x41, 0x41, 0x41, 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, 0x41, 0x41, 0x41, 0x7F, 0x04, 0x02, 0x01, 0x02, 0x04, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x03, 0x07, 0x08, 0x00, 0x20, 0x54, 0x54, 0x78, 0x40, 0x7F, 0x28, 0x44, 0x44, 0x38, 0x38, 0x44, 0x44, 0x44, 0x28, 0x38, 0x44, 0x44, 0x28, 0x7F, 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, 0x08, 0x7E, 0x09, 0x02, 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, 0x44, 0x7D, 0x40, 0x00, 0x20, 0x40, 0x40, 0x3D, 0x00, 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, 0x41, 0x7F, 0x40, 0x00, 0x7C, 0x04, 0x78, 0x04, 0x78, 0x7C, 0x08, 0x04, 0x04, 0x78, 0x38, 0x44, 0x44, 0x44, 0x38, 0xFC, 0x18, 0x24, 0x24, 0x18, 0x18, 0x24, 0x24, 0x18, 0xFC, 0x7C, 0x08, 0x04, 0x04, 0x08, 0x48, 0x54, 0x54, 0x54, 0x24, 0x04, 0x04, 0x3F, 0x44, 0x24, 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x3C, 0x40, 0x30, 0x40, 0x3C, - 0x44, 0x28, 0x10, 0x28, 0x44, 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, 0x41, 0x36, 0x08, 0x00, 0x02, 0x01, 0x02, 0x04, 0x02, 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x1E, 0xA1, 0xA1, 0x61, 0x12, 0x3A, 0x40, 0x40, 0x20, 0x7A, 0x38, 0x54, 0x54, 0x55, 0x59, 0x21, 0x55, 0x55, 0x79, 0x41, 0x22, 0x54, 0x54, 0x78, 0x42, // a-umlaut - 0x21, 0x55, 0x54, 0x78, 0x40, 0x20, 0x54, 0x55, 0x79, 0x40, 0x0C, 0x1E, 0x52, 0x72, 0x12, 0x39, 0x55, 0x55, 0x55, 0x59, 0x39, 0x54, 0x54, 0x54, 0x59, 0x39, 0x55, 0x54, 0x54, 0x58, 0x00, 0x00, 0x45, 0x7C, 0x41, 0x00, 0x02, 0x45, 0x7D, 0x42, 0x00, 0x01, 0x45, 0x7C, 0x40, 0x7D, 0x12, 0x11, 0x12, 0x7D, // A-umlaut - 0xF0, 0x28, 0x25, 0x28, 0xF0, 0x7C, 0x54, 0x55, 0x45, 0x00, 0x20, 0x54, 0x54, 0x7C, 0x54, 0x7C, 0x0A, 0x09, 0x7F, 0x49, 0x32, 0x49, 0x49, 0x49, 0x32, 0x3A, 0x44, 0x44, 0x44, 0x3A, // o-umlaut - 0x32, 0x4A, 0x48, 0x48, 0x30, 0x3A, 0x41, 0x41, 0x21, 0x7A, 0x3A, 0x42, 0x40, 0x20, 0x78, 0x00, 0x9D, 0xA0, 0xA0, 0x7D, 0x3D, 0x42, 0x42, 0x42, 0x3D, // O-umlaut - 0x3D, 0x40, 0x40, 0x40, 0x3D, 0x3C, 0x24, 0xFF, 0x24, 0x24, 0x48, 0x7E, 0x49, 0x43, 0x66, 0x2B, 0x2F, 0xFC, 0x2F, 0x2B, 0xFF, 0x09, 0x29, 0xF6, 0x20, 0xC0, 0x88, 0x7E, 0x09, 0x03, 0x20, 0x54, 0x54, 0x79, 0x41, 0x00, 0x00, 0x44, 0x7D, 0x41, 0x30, 0x48, 0x48, 0x4A, 0x32, 0x38, 0x40, 0x40, 0x22, 0x7A, 0x00, 0x7A, 0x0A, 0x0A, 0x72, 0x7D, 0x0D, 0x19, 0x31, 0x7D, 0x26, 0x29, 0x29, 0x2F, 0x28, 0x26, 0x29, 0x29, 0x29, 0x26, 0x30, 0x48, 0x4D, 0x40, 0x20, 0x38, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x38, 0x2F, 0x10, 0xC8, 0xAC, 0xBA, 0x2F, 0x10, 0x28, 0x34, 0xFA, 0x00, 0x00, 0x7B, 0x00, 0x00, 0x08, 0x14, 0x2A, 0x14, 0x22, 0x22, 0x14, 0x2A, 0x14, 0x08, 0x55, 0x00, 0x55, 0x00, 0x55, // #176 (25% block) missing in old code - 0xAA, 0x55, 0xAA, 0x55, 0xAA, // 50% block - 0xFF, 0x55, 0xFF, 0x55, 0xFF, // 75% block - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x10, 0x10, 0x10, 0xFF, 0x00, 0x14, 0x14, 0x14, 0xFF, 0x00, 0x10, 0x10, 0xFF, 0x00, 0xFF, 0x10, 0x10, 0xF0, 0x10, 0xF0, 0x14, 0x14, 0x14, 0xFC, 0x00, 0x14, 0x14, 0xF7, 0x00, 0xFF, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x14, 0x14, 0xF4, 0x04, 0xFC, 0x14, 0x14, 0x17, 0x10, 0x1F, 0x10, 0x10, 0x1F, 0x10, 0x1F, 0x14, 0x14, 0x14, 0x1F, 0x00, 0x10, 0x10, 0x10, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x10, 0x10, 0x10, 0x10, 0x1F, 0x10, 0x10, 0x10, 0x10, 0xF0, 0x10, 0x00, 0x00, 0x00, 0xFF, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0xFF, 0x10, 0x00, 0x00, 0x00, 0xFF, 0x14, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0x00, 0x00, 0x1F, 0x10, 0x17, 0x00, 0x00, 0xFC, 0x04, 0xF4, 0x14, 0x14, 0x17, 0x10, 0x17, 0x14, 0x14, 0xF4, 0x04, 0xF4, 0x00, 0x00, 0xFF, 0x00, 0xF7, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0xF7, 0x00, 0xF7, 0x14, 0x14, 0x14, 0x17, 0x14, 0x10, 0x10, 0x1F, 0x10, 0x1F, - 0x14, 0x14, 0x14, 0xF4, 0x14, 0x10, 0x10, 0xF0, 0x10, 0xF0, 0x00, 0x00, 0x1F, 0x10, 0x1F, 0x00, 0x00, 0x00, 0x1F, 0x14, 0x00, 0x00, 0x00, 0xFC, 0x14, 0x00, 0x00, 0xF0, 0x10, 0xF0, 0x10, 0x10, 0xFF, 0x10, 0xFF, 0x14, 0x14, 0x14, 0xFF, 0x14, 0x10, 0x10, 0x10, 0x1F, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x10, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, 0x38, 0x44, 0x44, 0x38, 0x44, 0xFC, 0x4A, 0x4A, 0x4A, 0x34, // sharp-s or beta - 0x7E, 0x02, 0x02, 0x06, 0x06, 0x02, 0x7E, 0x02, 0x7E, 0x02, 0x63, 0x55, 0x49, 0x41, 0x63, 0x38, 0x44, 0x44, 0x3C, 0x04, 0x40, 0x7E, 0x20, 0x1E, 0x20, 0x06, 0x02, 0x7E, 0x02, 0x02, 0x99, 0xA5, 0xE7, 0xA5, 0x99, 0x1C, 0x2A, 0x49, 0x2A, 0x1C, 0x4C, 0x72, 0x01, 0x72, 0x4C, 0x30, 0x4A, 0x4D, 0x4D, 0x30, 0x30, 0x48, 0x78, 0x48, 0x30, 0xBC, 0x62, 0x5A, 0x46, 0x3D, 0x3E, 0x49, 0x49, 0x49, 0x00, 0x7E, 0x01, 0x01, 0x01, 0x7E, 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, 0x44, 0x44, 0x5F, 0x44, 0x44, 0x40, 0x51, 0x4A, 0x44, 0x40, 0x40, 0x44, 0x4A, 0x51, 0x40, 0x00, 0x00, 0xFF, 0x01, 0x03, 0xE0, 0x80, 0xFF, 0x00, 0x00, 0x08, 0x08, 0x6B, 0x6B, 0x08, 0x36, 0x12, 0x36, 0x24, 0x36, 0x06, 0x0F, 0x09, 0x0F, 0x06, 0x00, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x10, 0x10, 0x00, 0x30, 0x40, 0xFF, 0x01, 0x01, 0x00, 0x1F, 0x01, 0x01, 0x1E, 0x00, 0x19, 0x1D, 0x17, 0x12, 0x00, 0x3C, 0x3C, 0x3C, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00 // #255 NBSP -}; From a91de722467afc2a080c8c1a7a6f904f1f361c07 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Wed, 10 Sep 2025 02:14:04 -0600 Subject: [PATCH 045/255] Migrate `g_led_config` to DD (K7) (#25616) --- .../kprepublic/bm40hsrgb/rev1/keyboard.json | 55 +++++++ keyboards/kprepublic/bm40hsrgb/rev1/rev1.c | 43 ------ .../kprepublic/bm60hsrgb/rev1/keyboard.json | 71 +++++++++ keyboards/kprepublic/bm60hsrgb/rev1/rev1.c | 50 ------ .../bm60hsrgb_ec/rev1/keyboard.json | 71 +++++++++ keyboards/kprepublic/bm60hsrgb_ec/rev1/rev1.c | 33 ---- .../bm60hsrgb_ec/rev2/keyboard.json | 67 ++++++++- keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c | 32 ---- .../bm60hsrgb_iso/rev1/keyboard.json | 72 +++++++++ .../kprepublic/bm60hsrgb_iso/rev1/rev1.c | 52 ------- .../bm60hsrgb_poker/rev1/keyboard.json | 69 +++++++++ .../kprepublic/bm60hsrgb_poker/rev1/rev1.c | 52 ------- .../kprepublic/bm65hsrgb/rev1/keyboard.json | 77 +++++++++- keyboards/kprepublic/bm65hsrgb/rev1/rev1.c | 44 ------ .../bm65hsrgb_iso/rev1/keyboard.json | 76 ++++++++++ .../kprepublic/bm65hsrgb_iso/rev1/rev1.c | 38 ----- .../kprepublic/bm68hsrgb/rev1/keyboard.json | 76 ++++++++++ keyboards/kprepublic/bm68hsrgb/rev1/rev1.c | 25 --- .../kprepublic/bm68hsrgb/rev2/keyboard.json | 70 +++++++++ keyboards/kprepublic/bm68hsrgb/rev2/rev2.c | 20 --- keyboards/kprepublic/bm80hsrgb/bm80hsrgb.c | 142 ------------------ keyboards/kprepublic/bm80hsrgb/keyboard.json | 91 ++++++++++- keyboards/kprepublic/bm80v2/bm80v2.c | 24 --- keyboards/kprepublic/bm80v2/keyboard.json | 89 +++++++++++ keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c | 24 --- keyboards/kprepublic/bm80v2_iso/keyboard.json | 90 +++++++++++ keyboards/kprepublic/bm980hsrgb/bm980hsrgb.c | 51 ------- keyboards/kprepublic/bm980hsrgb/keyboard.json | 102 ++++++++++++- 28 files changed, 1072 insertions(+), 634 deletions(-) delete mode 100755 keyboards/kprepublic/bm40hsrgb/rev1/rev1.c delete mode 100644 keyboards/kprepublic/bm60hsrgb/rev1/rev1.c delete mode 100644 keyboards/kprepublic/bm60hsrgb_iso/rev1/rev1.c delete mode 100644 keyboards/kprepublic/bm60hsrgb_poker/rev1/rev1.c delete mode 100644 keyboards/kprepublic/bm65hsrgb/rev1/rev1.c delete mode 100644 keyboards/kprepublic/bm80hsrgb/bm80hsrgb.c delete mode 100644 keyboards/kprepublic/bm980hsrgb/bm980hsrgb.c diff --git a/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json index 5cad0a013a..9dc347da6e 100644 --- a/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm40hsrgb/rev1/keyboard.json @@ -57,6 +57,61 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 101, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 122, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 142, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 183, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 1}, + {"matrix": [1, 1], "x": 20, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 61, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 81, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 101, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 122, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 142, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 162, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 183, "y": 21, "flags": 4}, + {"matrix": [1, 10], "x": 203, "y": 21, "flags": 4}, + {"matrix": [1, 11], "x": 224, "y": 21, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 42, "flags": 1}, + {"matrix": [2, 1], "x": 20, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 61, "y": 42, "flags": 4}, + {"matrix": [2, 4], "x": 81, "y": 42, "flags": 4}, + {"matrix": [2, 5], "x": 101, "y": 42, "flags": 4}, + {"matrix": [2, 6], "x": 122, "y": 42, "flags": 4}, + {"matrix": [2, 7], "x": 142, "y": 42, "flags": 4}, + {"matrix": [2, 8], "x": 162, "y": 42, "flags": 4}, + {"matrix": [2, 9], "x": 183, "y": 42, "flags": 4}, + {"matrix": [2, 10], "x": 203, "y": 42, "flags": 4}, + {"matrix": [2, 11], "x": 224, "y": 42, "flags": 1}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 20, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 40, "y": 64, "flags": 1}, + {"matrix": [3, 3], "x": 61, "y": 64, "flags": 1}, + {"matrix": [3, 4], "x": 81, "y": 64, "flags": 1}, + {"matrix": [3, 5], "x": 111, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 142, "y": 64, "flags": 1}, + {"matrix": [3, 8], "x": 162, "y": 64, "flags": 1}, + {"matrix": [3, 9], "x": 183, "y": 64, "flags": 1}, + {"matrix": [3, 10], "x": 203, "y": 64, "flags": 1}, + {"matrix": [3, 11], "x": 224, "y": 64, "flags": 1}, + {"x": 220, "y": 32, "flags": 2}, + {"x": 176, "y": 32, "flags": 2}, + {"x": 132, "y": 32, "flags": 2}, + {"x": 88, "y": 32, "flags": 2}, + {"x": 44, "y": 32, "flags": 2}, + {"x": 0, "y": 32, "flags": 2} + ] "max_brightness": 180, "sleep": true }, diff --git a/keyboards/kprepublic/bm40hsrgb/rev1/rev1.c b/keyboards/kprepublic/bm40hsrgb/rev1/rev1.c deleted file mode 100755 index f6df97ebf1..0000000000 --- a/keyboards/kprepublic/bm40hsrgb/rev1/rev1.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright 2020 tominabox1, Richard Goulter - * - * 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 "quantum.h" - -#if defined(RGB_MATRIX_ENABLE) -led_config_t g_led_config = { - { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}, - {12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23}, - {24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35}, - {36, 37, 38, 39, 40, 41, NO_LED, 42, 43, 44, 45, 46} - }, { - // LED Index to Physical Position - { 0, 0}, { 20, 0}, { 40, 0}, {61, 0}, {81, 0}, {101, 0}, {122, 0}, {142, 0}, {162, 0}, {183, 0}, {203, 0}, {224, 0}, - { 0, 21}, { 20, 21}, { 40, 21}, {61, 21}, {81, 21}, {101, 21}, {122, 21}, {142, 21}, {162, 21}, {183, 21}, {203, 21}, {224, 21}, - { 0, 42}, { 20, 42}, { 40, 42}, {61, 42}, {81, 42}, {101, 42}, {122, 42}, {142, 42}, {162, 42}, {183, 42}, {203, 42}, {224, 42}, - { 0, 64}, { 20, 64}, { 40, 64}, {61, 64}, {81, 64}, {111, 64}, {142, 64}, {162, 64}, {183, 64}, {203, 64}, {224, 64}, - {220, 32}, {176, 32}, {132, 32}, {88, 32}, {44, 32}, {0, 32} - }, { - // LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 2, 2, 2, 2, 2 - } -}; - -#endif diff --git a/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json index 55ec5589d1..4dcf26964f 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb/rev1/keyboard.json @@ -57,6 +57,77 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1}, + {"matrix": [3, 1], "x": 18, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 30, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 60, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 90, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 105, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 120, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 135, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 150, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 191, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"x": 216, "y": 32, "flags": 2}, + {"x": 180, "y": 32, "flags": 2}, + {"x": 144, "y": 32, "flags": 2}, + {"x": 108, "y": 32, "flags": 2}, + {"x": 72, "y": 32, "flags": 2}, + {"x": 36, "y": 32, "flags": 2} + ] "max_brightness": 180 }, "rgblight": { diff --git a/keyboards/kprepublic/bm60hsrgb/rev1/rev1.c b/keyboards/kprepublic/bm60hsrgb/rev1/rev1.c deleted file mode 100644 index bec465b2e6..0000000000 --- a/keyboards/kprepublic/bm60hsrgb/rev1/rev1.c +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2020 MechMerlin - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include "quantum.h" - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, NO_LED, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 }, - { NO_LED, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 }, - { 54, 55, 56, NO_LED, NO_LED, NO_LED, 57, NO_LED, NO_LED, 58, 59, 60, 61, 62 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, { 210, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 }, - // UNDERGLOW - { 216, 32 }, { 180, 32 }, { 144, 32 }, { 108, 32 }, { 72, 32 }, { 36, 32 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1, 1, - // UNDERGLOW - 2, 2, 2, 2, 2, 2 -} }; diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json index 75e8333f7a..84e962e90c 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev1/keyboard.json @@ -51,6 +51,77 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 195, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1}, + {"matrix": [3, 1], "x": 18, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 30, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 60, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 90, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 105, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 120, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 135, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 150, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 191, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"x": 216, "y": 32, "flags": 2}, + {"x": 180, "y": 32, "flags": 2}, + {"x": 144, "y": 32, "flags": 2}, + {"x": 108, "y": 32, "flags": 2}, + {"x": 72, "y": 32, "flags": 2}, + {"x": 36, "y": 32, "flags": 2} + ] "max_brightness": 140 }, "build": { diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev1/rev1.c b/keyboards/kprepublic/bm60hsrgb_ec/rev1/rev1.c index 26afae87ae..55b6df9233 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev1/rev1.c +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev1/rev1.c @@ -14,39 +14,6 @@ * along with this program. If not, see . */ #include "quantum.h" -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, NO_LED, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 }, - { NO_LED, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53 }, - { 54, 55, 56, NO_LED, NO_LED, NO_LED, 57, NO_LED, NO_LED, 58, 59, 60, 61, 62 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 195, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, { 210, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 }, - // UNDERGLOW - { 216, 32 }, { 180, 32 }, { 144, 32 }, { 108, 32 }, { 72, 32 }, { 36, 32 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1, 1, - // UNDERGLOW - 2, 2, 2, 2, 2, 2 -} }; bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json index dd43d36d71..bdff11563b 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/keyboard.json @@ -36,6 +36,71 @@ "solid_multisplash": true }, "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 195, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 18, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 30, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 60, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 90, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 105, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 120, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 135, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 150, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 191, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1} + ] "max_brightness": 180, "sleep": true }, @@ -58,7 +123,7 @@ }, "default": { "animation": "rainbow_mood" - } + } }, "build": { "lto": true diff --git a/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c index eca53e9893..e8d7f69435 100644 --- a/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_ec/rev2/rev2.c @@ -85,38 +85,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW5_CS16, SW4_CS16, SW6_CS16 } }; -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, NO_LED, 51, 52, 53 }, - { 54, 55, 56, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 58, 59, 60, 61, 62 } - }, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 195, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, - // Capslock, A, S, D, F, G, H, A, K, L, ;, ', Enter - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, { 210, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Capslock, A, S, D, F, G, H, A, K, L, ;, ', Enter - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1, 1 - } -}; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json index b3bf6e44b2..9468251899 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev1/keyboard.json @@ -57,6 +57,78 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 3, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 22, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 63, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 78, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 93, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 108, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 123, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 153, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 168, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 194, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 213, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"x": 216, "y": 32, "flags": 2}, + {"x": 180, "y": 32, "flags": 2}, + {"x": 144, "y": 32, "flags": 2}, + {"x": 108, "y": 32, "flags": 2}, + {"x": 72, "y": 32, "flags": 2}, + {"x": 36, "y": 32, "flags": 2} + ] "max_brightness": 180 }, "build": { diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev1/rev1.c b/keyboards/kprepublic/bm60hsrgb_iso/rev1/rev1.c deleted file mode 100644 index 80bc2e2283..0000000000 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev1/rev1.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright 2020 markva - * - * 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 "quantum.h" - -#if defined(RGB_MATRIX_ENABLE) -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, NO_LED, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54 }, - { 55, 56, 57, NO_LED, NO_LED, NO_LED, 58, NO_LED, NO_LED, 59, 60, 61, 62, 63} -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, - // LShift, <, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - { 3, 48 }, { 22, 48 }, { 33, 48 }, { 48, 48 }, { 63, 48 }, { 78, 48 }, { 93, 48 }, { 108, 48 }, { 123, 48 }, { 138, 48 }, { 153, 48 }, { 168, 48 }, { 194, 48 }, { 213, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 }, - // UNDERGLOW - { 216, 32 }, { 180, 32 }, { 144, 32 }, { 108, 32 }, { 72, 32 }, { 36, 32 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // LShift,<, Z, X, C, V, B, N, M, ,, ., Shift, Up, / - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1, 1, - // UNDERGLOW - 2, 2, 2, 2, 2, 2 -} }; -#endif diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json index 9619665e6d..00cf89b973 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev1/keyboard.json @@ -56,6 +56,75 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1}, + {"matrix": [3, 1], "x": 18, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 30, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 60, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 90, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 105, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 120, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 135, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 150, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 191, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"x": 216, "y": 32, "flags": 2}, + {"x": 180, "y": 32, "flags": 2}, + {"x": 144, "y": 32, "flags": 2}, + {"x": 108, "y": 32, "flags": 2}, + {"x": 72, "y": 32, "flags": 2}, + {"x": 36, "y": 32, "flags": 2} + ] "max_brightness": 180 }, "rgblight": { diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev1/rev1.c b/keyboards/kprepublic/bm60hsrgb_poker/rev1/rev1.c deleted file mode 100644 index d5dd1f2f97..0000000000 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev1/rev1.c +++ /dev/null @@ -1,52 +0,0 @@ -/* Copyright 2020 ipetepete - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, NO_LED, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 }, - { NO_LED, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, NO_LED, 52 }, - { 53, 54, 55, NO_LED, NO_LED, NO_LED, 56, NO_LED, NO_LED, 57, 58, NO_LED, 59, 60 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 210, 64 }, { 225, 64 }, - // UNDERGLOW - { 216, 32 }, { 180, 32 }, { 144, 32 }, { 108, 32 }, { 72, 32 }, { 36, 32 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1, - // UNDERGLOW - 2, 2, 2, 2, 2, 2 -} }; -#endif diff --git a/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json index d761606a5a..ae88446469 100644 --- a/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm65hsrgb/rev1/keyboard.json @@ -11,7 +11,82 @@ "pin": "E2" }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 1], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 208, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 94, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 148, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 163, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 193, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 208, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}, + {"x": 185, "y": 45, "flags": 2}, + {"x": 160, "y": 45, "flags": 2}, + {"x": 125, "y": 45, "flags": 2}, + {"x": 95, "y": 45, "flags": 2}, + {"x": 60, "y": 45, "flags": 2}, + {"x": 25, "y": 45, "flags": 2} + ] }, "build": { "lto": true diff --git a/keyboards/kprepublic/bm65hsrgb/rev1/rev1.c b/keyboards/kprepublic/bm65hsrgb/rev1/rev1.c deleted file mode 100644 index 7f416bc9ae..0000000000 --- a/keyboards/kprepublic/bm65hsrgb/rev1/rev1.c +++ /dev/null @@ -1,44 +0,0 @@ -/* Copyright 2021 bytesapart - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 }, - { NO_LED, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, NO_LED, 64, 65, 66 } -}, { - // LED Index to Physical Position - { 0, 0}, { 15, 0}, { 30, 0}, { 45, 0}, { 60, 0}, { 75, 0}, { 90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {202, 0}, {225, 0}, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete - { 4, 16}, { 22, 16}, { 37, 16}, { 52, 16}, { 67, 16}, { 82, 16}, { 97, 16}, {112, 16}, {127, 16}, {142, 16}, {157, 16}, {172, 16}, {187, 16}, {206, 16}, {225, 16}, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home - { 6, 32}, { 26, 32}, { 41, 32}, { 56, 32}, { 71, 32}, { 86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {176, 32}, {201, 32}, {225, 32}, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up - { 9, 48}, { 34, 48}, { 49, 48}, { 64, 48}, { 79, 48}, { 94, 48}, {109, 48}, {124, 48}, {139, 48}, {154, 48}, {169, 48}, {189, 48}, {208, 48}, {225, 48}, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down - { 2, 64}, { 21, 64}, { 39, 64}, { 94, 64}, {148, 64}, {163, 64}, {193, 64}, {208, 64}, {225, 64}, // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - {185, 45}, {160, 45}, {125, 45}, { 95, 45}, { 60, 45}, { 25, 45} // UNDERGLOW -}, { - // LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down - 1, 1, 1, 4, 1, 1, 1, 1, 1, // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 2, 2, 2, 2, 2, 2 // UNDERGLOW -} }; -#endif diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json b/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json index 187816b660..d8fb49fb5f 100644 --- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json +++ b/keyboards/kprepublic/bm65hsrgb_iso/rev1/keyboard.json @@ -82,6 +82,82 @@ "animation": "band_sat" }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 198, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 3, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 18, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 33, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 63, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 78, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 93, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 108, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 123, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 153, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 168, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 190, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 209, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 194, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}, + {"x": 216, "y": 32, "flags": 2}, + {"x": 180, "y": 32, "flags": 2}, + {"x": 144, "y": 32, "flags": 2}, + {"x": 108, "y": 32, "flags": 2}, + {"x": 72, "y": 32, "flags": 2}, + {"x": 36, "y": 32, "flags": 2} + ] "max_brightness": 140 }, "build": { diff --git a/keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c b/keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c index 52c661d3f4..acf2aed98b 100644 --- a/keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c +++ b/keyboards/kprepublic/bm65hsrgb_iso/rev1/rev1.c @@ -16,44 +16,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14}, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29}, - { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43}, - { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58}, - { 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, NO_LED, 64, 65, 66, 67} - -}, { - // LED Index to Physical Position - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, { 224, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], Enter, Pos1 - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, { 224, 16 }, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', , PageUp - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, { 224, 32 }, - // LShift, <, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, PageDown - { 3, 48 }, { 18, 48 }, { 33, 48 }, { 48, 48 }, { 63, 48 }, { 78, 48 }, { 93, 48 }, { 108, 48 }, { 123, 48 }, { 138, 48 }, { 153, 48 }, { 168, 48 }, { 190, 48 }, { 209, 48 }, { 224, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 194, 64 }, { 209, 64 },{ 224, 64 }, - // UNDERGLOW - { 216, 32 }, { 180, 32 }, { 144, 32 }, { 108, 32 }, { 72, 32 }, { 36, 32 } -}, { - // LED Index to Flag - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], Enter, Pos1 - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', , PageUp - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // LShift, <, Z, X, C, V, B, N, M, ,, ., /, RShift, Up, PageDown - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1, 1, - // UNDERGLOW - 2, 2, 2, 2, 2, 2 -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { return false; diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json b/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json index b5ca4d696d..3b379437c4 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json +++ b/keyboards/kprepublic/bm68hsrgb/rev1/keyboard.json @@ -57,6 +57,82 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 1}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 1], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 208, "y": 48, "flags": 1}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 94, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 148, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 163, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 178, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 193, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 208, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}, + {"x": 185, "y": 45, "flags": 2}, + {"x": 160, "y": 45, "flags": 2}, + {"x": 125, "y": 45, "flags": 2}, + {"x": 95, "y": 45, "flags": 2}, + {"x": 60, "y": 45, "flags": 2}, + {"x": 25, "y": 45, "flags": 2} + ] "max_brightness": 180 }, "build": { diff --git a/keyboards/kprepublic/bm68hsrgb/rev1/rev1.c b/keyboards/kprepublic/bm68hsrgb/rev1/rev1.c index abe2b98c20..5484b15353 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev1/rev1.c +++ b/keyboards/kprepublic/bm68hsrgb/rev1/rev1.c @@ -17,31 +17,6 @@ #include "quantum.h" #ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, NO_LED, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43 }, - { NO_LED, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED, NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 } -}, { - // LED Index to Physical Position - { 0, 0}, { 15, 0}, { 30, 0}, { 45, 0}, { 60, 0}, { 75, 0}, { 90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {202, 0}, {225, 0}, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete - { 4, 16}, { 22, 16}, { 37, 16}, { 52, 16}, { 67, 16}, { 82, 16}, { 97, 16}, {112, 16}, {127, 16}, {142, 16}, {157, 16}, {172, 16}, {187, 16}, {206, 16}, {225, 16}, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home - { 6, 32}, { 26, 32}, { 41, 32}, { 56, 32}, { 71, 32}, { 86, 32}, {101, 32}, {116, 32}, {131, 32}, {146, 32}, {161, 32}, {176, 32}, {201, 32}, {225, 32}, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up - { 9, 48}, { 34, 48}, { 49, 48}, { 64, 48}, { 79, 48}, { 94, 48}, {109, 48}, {124, 48}, {139, 48}, {154, 48}, {169, 48}, {189, 48}, {208, 48}, {225, 48}, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down - { 2, 64}, { 21, 64}, { 39, 64}, { 94, 64}, {148, 64}, {163, 64}, {178, 64}, {193, 64}, {208, 64}, {225, 64}, // Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right - {185, 45}, {160, 45}, {125, 45}, { 95, 45}, { 60, 45}, { 25, 45} // UNDERGLOW -}, { - // LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace, Delete - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash , Home - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter, Page up - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, Page Down - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, // Ctrl, GUI, Alt, Space, RAlt, FN, Ctrl, Left, Down, Right - 2, 2, 2, 2, 2, 2 // UNDERGLOW -} }; - //CAPS backlight bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json b/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json index 28ad31304e..56f4df55fb 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json +++ b/keyboards/kprepublic/bm68hsrgb/rev2/keyboard.json @@ -42,6 +42,76 @@ "solid_multisplash": true }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 38, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 53, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 68, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 83, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 98, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 113, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 143, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 158, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 173, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 188, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 201, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 79, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 94, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 109, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 124, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 139, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 154, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 169, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 150, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 165, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 180, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c index 68068d7fb9..43f1eb56c0 100644 --- a/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c +++ b/keyboards/kprepublic/bm68hsrgb/rev2/rev2.c @@ -92,26 +92,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW7_CS30, SW7_CS29, SW7_CS28} }; -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, NO_LED, 42, 43 }, - { 44,NO_LED, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 }, - { 58, 59, 60, NO_LED, NO_LED,NO_LED, 61, NO_LED, NO_LED, 62, 63, 64, 65, 66, 67 } -}, { - {0,0},{15,0},{30,0},{45,0},{60,0},{75,0},{90,0},{105,0},{120,0},{135,0},{150,0},{165,0},{180,0},{203,0},{224,0}, - {4,16},{23,16},{38,16},{53,16},{68,16},{83,16},{98,16},{113,16},{128,16},{143,16},{158,16},{173,16},{188,16},{206,16},{224,16}, - {6,32},{26,32},{41,32},{56,32},{71,32},{86,32},{101,32},{116,32},{131,32},{146,32},{161,32},{176,32},{201,32},{224,32}, - {9,48},{34,48},{49,48},{64,48},{79,48},{94,48},{109,48},{124,48},{139,48},{154,48},{169,48},{189,48},{210,48},{224,48}, - { 2, 64 }, { 21, 64 }, { 39, 64 }, { 96, 64 }, { 150, 64 }, { 165, 64 }, { 180, 64 }, { 195, 64 }, { 210, 64 }, { 224, 64 } -}, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1 -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { diff --git a/keyboards/kprepublic/bm80hsrgb/bm80hsrgb.c b/keyboards/kprepublic/bm80hsrgb/bm80hsrgb.c deleted file mode 100644 index 2ec020739a..0000000000 --- a/keyboards/kprepublic/bm80hsrgb/bm80hsrgb.c +++ /dev/null @@ -1,142 +0,0 @@ -/* Copyright 2021 peepeetee - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, NO_LED, 1, 2, 3, 4, NO_LED, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 }, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 }, - { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 11, 62, NO_LED, NO_LED, NO_LED }, - /* ^ this one is f11*/ - { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, NO_LED, 74, NO_LED, NO_LED, 75, NO_LED }, - { 76, 77, 78, NO_LED, NO_LED, 79, NO_LED, NO_LED, NO_LED, 80, 81, 82, 83, 84, NO_LED, 85, 86 } - -// K0_0, K0_2, K0_3, K0_4, K0_5, K0_7, K0_8, K0_9, K0_A, K0_B, K0_C, K3_C, K0_D, K0_E, K0_F, K0_10, -// K1_0, K1_1, K1_2, K1_3, K1_4, K1_5, K1_6, K1_7, K1_8, K1_9, K1_A, K1_B, K1_C, K1_D, K1_E, K1_F, K1_10, -// K2_0, K2_1, K2_2, K2_3, K2_4, K2_5, K2_6, K2_7, K2_8, K2_9, K2_A, K2_B, K2_C, K2_D, K2_E, K2_F, K2_10, -// K3_0, K3_1, K3_2, K3_3, K3_4, K3_5, K3_6, K3_7, K3_8, K3_9, K3_A, K3_B, K3_D, -// K4_0, K4_1, K4_2, K4_3, K4_4, K4_5, K4_6, K4_7, K4_8, K4_9, K4_A, K4_C, K4_F, -// K5_0, K5_1, K5_2, K5_5, K5_9, K5_A, K5_B, K5_C, K5_D, K5_F, K5_10 - - -// K0_0, KC_NO, K0_2, K0_3, K0_4, K0_5, KC_NO, K0_7, K0_8, K0_9, K0_A, K0_B, K0_C, K0_D, K0_E, K0_F, K0_10 -// K1_0, K1_1, K1_2, K1_3, K1_4, K1_5, K1_6, K1_7, K1_8, K1_9, K1_A, K1_B, K1_C, K1_D, K1_E, K1_F, K1_10 -// K2_0, K2_1, K2_2, K2_3, K2_4, K2_5, K2_6, K2_7, K2_8, K2_9, K2_A, K2_B, K2_C, K2_D, K2_E, K2_F, K2_10 -// K3_0, K3_1, K3_2, K3_3, K3_4, K3_5, K3_6, K3_7, K3_8, K3_9, K3_A, K3_B, K3_C, K3_D, KC_NO, KC_NO, KC_NO -// K4_0, K4_1, K4_2, K4_3, K4_4, K4_5, K4_6, K4_7, K4_8, K4_9, K4_A, KC_NO, K4_C, KC_NO, KC_NO, K4_F, KC_NO -// K5_0, K5_1, K5_2, KC_NO, KC_NO, K5_5, KC_NO, KC_NO, KC_NO, K5_9, K5_A, K5_B, K5_C, K5_D, KC_NO, K5_F, K5_10 - - /* - * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ - * │ 0 │   │ 1 │ 2 │ 3 │ 4 │ │ 5 │ 6 │ 7 │ 8 │ │ 9 │ 10│ 11│ 12│ │ 13│ 14│ 15│ - * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ - * │ 16│ 17│ 18│ 19│ 20│ 21│ 22│ 23│ 24│ 25│ 26│ 27│ 28│  29 │ │ 30│ 31│ 32│ - * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ - * │  33 │ 34│ 35│ 36│ 37│ 38│ 39│ 40│ 41│ 42│ 43│ 44│ 45│  46 │ │ 47│ 48│ 49│ - * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ - * │ 50  │ 51│ 52│ 53│ 54│ 55│ 56│ 57│ 58│ 59│ 60│ 61│   62  │ - * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤     ┌───┐ - * │ 63   │ 64│ 65│ 66│ 67│ 68│ 69│ 70│ 71│ 72│ 73│    74  │     │ 75│ - * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ - * │ 76 │ 77 │ 78 │           79           │ 80 │ 81 │ 82 │ 83 │ │ 84│ 85│ 86│ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ - */ - -}, { - // LED Index to Physical Position - { 7, 5 }, { 31, 5 }, { 43, 5 }, { 55, 5 }, { 67, 5 }, { 85, 5 }, { 97, 5 }, { 109, 5 }, { 121, 5 }, { 139, 5 }, { 151, 5 }, { 163, 5 }, { 175, 5 }, { 193, 5 }, { 205, 5 }, { 217, 5 }, - /* - * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ - * │ 0 │   │ 1 │ 2 │ 3 │ 4 │ │ 5 │ 6 │ 7 │ 8 │ │ 9 │ 10│ 11│ 12│ │ 13│ 14│ 15│ - * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ - */ - { 7, 20 }, { 19, 20 }, { 31, 20 }, { 43, 20 }, { 55, 20 }, { 67, 20 }, { 79, 20 }, { 91, 20 }, { 103, 20 }, { 115, 20 }, { 127, 20 }, { 139, 20 }, { 151, 20 }, { 169, 20 }, { 193, 20 }, { 205, 20 }, { 217, 20 }, - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ - * │ 16│ 17│ 18│ 19│ 20│ 21│ 22│ 23│ 24│ 25│ 26│ 27│ 28│  29 │ │ 30│ 31│ 32│ - * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───────┘ └───┴───┴───┘ - */ - { 10, 30 }, { 25, 30 }, { 37, 30 }, { 49, 30 }, { 61, 30 }, { 73, 30 }, { 85, 30 }, { 97, 30 }, { 109, 30 }, { 121, 30 }, { 133, 30 }, { 145, 30 }, { 157, 30 }, { 172, 30 }, { 193, 30 }, { 205, 30 }, { 217, 30 }, - /* - * ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ ┌───┬───┬───┐ - * │  33 │ 34│ 35│ 36│ 37│ 38│ 39│ 40│ 41│ 42│ 43│ 44│ 45│  46 │ │ 47│ 48│ 49│ - * └─────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴─────┘ └───┴───┴───┘ - */ - { 11, 39 }, { 28, 39 }, { 40, 39 }, { 52, 39 }, { 64, 39 }, { 76, 39 }, { 88, 39 }, { 100, 39 }, { 112, 39 }, { 124, 39 }, { 136, 39 }, { 148, 39 }, { 168, 39 }, - /* - * ┌──────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────────┐ - * │ 50  │ 51│ 52│ 53│ 54│ 55│ 56│ 57│ 58│ 59│ 60│ 61│   62  │ - * └──────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴────────┘ - */ - { 14, 49 }, { 34, 49 }, { 46, 49 }, { 58, 49 }, { 70, 49 }, { 82, 49 }, { 94, 49 }, { 106, 49 }, { 118, 49 }, { 130, 49 }, { 142, 49 }, { 165, 49 }, { 205, 49 }, - /* - * ┌────────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────────┐     ┌───┐ - * │ 63   │ 64│ 65│ 66│ 67│ 68│ 69│ 70│ 71│ 72│ 73│    74  │     │ 75│ - * └────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴──────────┘  └───┘ - */ - { 8, 59 }, { 23, 59 }, { 38, 59 }, { 83, 59 }, { 129, 59 }, { 144, 59 }, { 159, 59 }, { 174, 59 }, { 193, 59 }, { 205, 59 }, { 217, 59 } - /* - * ┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ ┌───┬───┬───┐ - * │ 76 │ 77 │ 78 │           79           │ 80 │ 81 │ 82 │ 83 │ │ 84│ 85│ 86│ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ - */ -}, { - // LED Index to Flag - 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 9/*scroll lock*/, 1, - /* - * ┌───┐   ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ - * │ 0 │   │ 1 │ 2 │ 3 │ 4 │ │ 5 │ 6 │ 7 │ 8 │ │ 9 │ 10│ 11│ 12│ │ 13│ 14│ 15│ - * └───┘   └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ - */ - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - /* - * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ - * │ 16│ 17│ 18│ 19│ 20│ 21│ 22│ 23│ 24│ 25│ 26│ 27│ 28│  29 │ │ 30│ 31│ 32│ - * └───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───────┘ └───┴───┴───┘ - */ - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - /* - * ┌─────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬─────┐ ┌───┬───┬───┐ - * │  33 │ 34│ 35│ 36│ 37│ 38│ 39│ 40│ 41│ 42│ 43│ 44│ 45│  46 │ │ 47│ 48│ 49│ - * └─────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴─────┘ └───┴───┴───┘ - */ - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - //caps lock is 1 instead of 1+8, this board has a dedicated led - /* - * ┌──────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬────────┐ - * │ 50  │ 51│ 52│ 53│ 54│ 55│ 56│ 57│ 58│ 59│ 60│ 61│   62  │ - * └──────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴────────┘ - */ - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - /* - * ┌────────┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────────┐     ┌───┐ - * │ 63   │ 64│ 65│ 66│ 67│ 68│ 69│ 70│ 71│ 72│ 73│    74  │     │ 75│ - * └────────┴───┴───┴───┴───┴───┴───┴───┴───┴───┴───┴──────────┘  └───┘ - */ - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1 - /* - * ┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐ ┌───┬───┬───┐ - * │ 76 │ 77 │ 78 │           79           │ 80 │ 81 │ 82 │ 83 │ │ 84│ 85│ 86│ - * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ - */ -} }; - - -#endif diff --git a/keyboards/kprepublic/bm80hsrgb/keyboard.json b/keyboards/kprepublic/bm80hsrgb/keyboard.json index 1a1b1a6ed3..4acf4be5e8 100644 --- a/keyboards/kprepublic/bm80hsrgb/keyboard.json +++ b/keyboards/kprepublic/bm80hsrgb/keyboard.json @@ -55,7 +55,96 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 7, "y": 5, "flags": 1}, + {"matrix": [0, 2], "x": 31, "y": 5, "flags": 4}, + {"matrix": [0, 3], "x": 43, "y": 5, "flags": 4}, + {"matrix": [0, 4], "x": 55, "y": 5, "flags": 4}, + {"matrix": [0, 5], "x": 67, "y": 5, "flags": 4}, + {"matrix": [0, 7], "x": 85, "y": 5, "flags": 1}, + {"matrix": [0, 8], "x": 97, "y": 5, "flags": 1}, + {"matrix": [0, 9], "x": 109, "y": 5, "flags": 1}, + {"matrix": [0, 10], "x": 121, "y": 5, "flags": 1}, + {"matrix": [0, 11], "x": 139, "y": 5, "flags": 4}, + {"matrix": [0, 12], "x": 151, "y": 5, "flags": 4}, + {"matrix": [3, 12], "x": 163, "y": 5, "flags": 4}, + {"matrix": [0, 13], "x": 175, "y": 5, "flags": 4}, + {"matrix": [0, 14], "x": 193, "y": 5, "flags": 1}, + {"matrix": [0, 15], "x": 205, "y": 5, "flags": 9}, + {"matrix": [0, 16], "x": 217, "y": 5, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 19, "y": 20, "flags": 4}, + {"matrix": [1, 2], "x": 31, "y": 20, "flags": 4}, + {"matrix": [1, 3], "x": 43, "y": 20, "flags": 4}, + {"matrix": [1, 4], "x": 55, "y": 20, "flags": 4}, + {"matrix": [1, 5], "x": 67, "y": 20, "flags": 4}, + {"matrix": [1, 6], "x": 79, "y": 20, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 20, "flags": 4}, + {"matrix": [1, 8], "x": 103, "y": 20, "flags": 4}, + {"matrix": [1, 9], "x": 115, "y": 20, "flags": 4}, + {"matrix": [1, 10], "x": 127, "y": 20, "flags": 4}, + {"matrix": [1, 11], "x": 139, "y": 20, "flags": 4}, + {"matrix": [1, 12], "x": 151, "y": 20, "flags": 4}, + {"matrix": [1, 13], "x": 169, "y": 20, "flags": 1}, + {"matrix": [1, 14], "x": 193, "y": 20, "flags": 1}, + {"matrix": [1, 15], "x": 205, "y": 20, "flags": 1}, + {"matrix": [1, 16], "x": 217, "y": 20, "flags": 1}, + {"matrix": [2, 0], "x": 10, "y": 30, "flags": 1}, + {"matrix": [2, 1], "x": 25, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 49, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 61, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 73, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 97, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 109, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 121, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 133, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 145, "y": 30, "flags": 4}, + {"matrix": [2, 12], "x": 157, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 172, "y": 30, "flags": 4}, + {"matrix": [2, 14], "x": 193, "y": 30, "flags": 1}, + {"matrix": [2, 15], "x": 205, "y": 30, "flags": 1}, + {"matrix": [2, 16], "x": 217, "y": 30, "flags": 1}, + {"matrix": [3, 0], "x": 11, "y": 39, "flags": 1}, + {"matrix": [3, 1], "x": 28, "y": 39, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 39, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 39, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 39, "flags": 4}, + {"matrix": [3, 5], "x": 76, "y": 39, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 39, "flags": 4}, + {"matrix": [3, 7], "x": 100, "y": 39, "flags": 4}, + {"matrix": [3, 8], "x": 112, "y": 39, "flags": 4}, + {"matrix": [3, 9], "x": 124, "y": 39, "flags": 4}, + {"matrix": [3, 10], "x": 136, "y": 39, "flags": 4}, + {"matrix": [3, 11], "x": 148, "y": 39, "flags": 4}, + {"matrix": [3, 13], "x": 168, "y": 39, "flags": 1}, + {"matrix": [4, 0], "x": 14, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 34, "y": 49, "flags": 4}, + {"matrix": [4, 2], "x": 46, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 58, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 70, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 82, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 94, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 106, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 118, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 130, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 142, "y": 49, "flags": 4}, + {"matrix": [4, 12], "x": 165, "y": 49, "flags": 1}, + {"matrix": [4, 15], "x": 205, "y": 49, "flags": 1}, + {"matrix": [5, 0], "x": 8, "y": 59, "flags": 1}, + {"matrix": [5, 1], "x": 23, "y": 59, "flags": 1}, + {"matrix": [5, 2], "x": 38, "y": 59, "flags": 1}, + {"matrix": [5, 5], "x": 83, "y": 59, "flags": 4}, + {"matrix": [5, 9], "x": 129, "y": 59, "flags": 1}, + {"matrix": [5, 10], "x": 144, "y": 59, "flags": 1}, + {"matrix": [5, 11], "x": 159, "y": 59, "flags": 1}, + {"matrix": [5, 12], "x": 174, "y": 59, "flags": 1}, + {"matrix": [5, 13], "x": 193, "y": 59, "flags": 1}, + {"matrix": [5, 15], "x": 205, "y": 59, "flags": 1}, + {"matrix": [5, 16], "x": 217, "y": 59, "flags": 1} + ] }, "build": { "lto": true diff --git a/keyboards/kprepublic/bm80v2/bm80v2.c b/keyboards/kprepublic/bm80v2/bm80v2.c index 9c1b71d057..94a8032a17 100644 --- a/keyboards/kprepublic/bm80v2/bm80v2.c +++ b/keyboards/kprepublic/bm80v2/bm80v2.c @@ -112,30 +112,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW8_CS36, SW8_CS35, SW8_CS34} }; -led_config_t g_led_config = { { - { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 }, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 }, - { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, NO_LED, NO_LED, NO_LED, NO_LED }, - { 63, NO_LED, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, NO_LED, NO_LED, 75, NO_LED }, - { 76, 77, 78, NO_LED,NO_LED, 79, NO_LED, NO_LED, NO_LED, NO_LED, 80, 81, 82, 83, 84, 85, 86 } -}, -{ - { 7, 5 }, { 31, 5 }, { 43, 5 }, { 55, 5 }, { 67, 5 }, { 85, 5 }, { 97, 5 }, { 109, 5 }, { 121, 5 }, { 139, 5 }, { 151, 5 }, { 163, 5 }, { 175, 5 }, { 193, 5 }, { 205, 5 }, { 217, 5 }, - { 7, 20 }, { 19, 20 }, { 31, 20 }, { 43, 20 }, { 55, 20 }, { 67, 20 }, { 79, 20 }, { 91, 20 }, { 103, 20 }, { 115, 20 }, { 127, 20 }, { 139, 20 }, { 151, 20 }, { 169, 20 }, { 193, 20 }, { 205, 20 }, { 217, 20 }, - { 10, 30 }, { 25, 30 }, { 37, 30 }, { 49, 30 }, { 61, 30 }, { 73, 30 }, { 85, 30 }, { 97, 30 }, { 109, 30 }, { 121, 30 }, { 133, 30 }, { 145, 30 }, { 157, 30 }, { 172, 30 }, { 193, 30 }, { 205, 30 }, { 217, 30 }, - { 11, 39 }, { 28, 39 }, { 40, 39 }, { 52, 39 }, { 64, 39 }, { 76, 39 }, { 88, 39 }, { 100, 39 }, { 112, 39 }, { 124, 39 }, { 136, 39 }, { 148, 39 }, { 168, 39 }, - { 17, 49 }, { 34, 49 }, { 46, 49 }, { 58, 49 }, { 70, 49 }, { 82, 49 }, { 94, 49 }, { 106, 49 }, { 118, 49 }, { 130, 49 }, { 142, 49 }, { 165, 49 }, { 205, 49 }, - { 8, 59 }, { 23, 59 }, { 38, 59 }, { 83, 59 }, { 129, 59 }, { 144, 59 }, { 159, 59 }, { 174, 59 }, { 193, 59 }, { 205, 59 }, { 217, 59 } -}, -{ 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1 -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { diff --git a/keyboards/kprepublic/bm80v2/keyboard.json b/keyboards/kprepublic/bm80v2/keyboard.json index 43de1e4933..a5da2324a9 100644 --- a/keyboards/kprepublic/bm80v2/keyboard.json +++ b/keyboards/kprepublic/bm80v2/keyboard.json @@ -45,6 +45,95 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 7, "y": 5, "flags": 1}, + {"matrix": [0, 2], "x": 31, "y": 5, "flags": 4}, + {"matrix": [0, 3], "x": 43, "y": 5, "flags": 4}, + {"matrix": [0, 4], "x": 55, "y": 5, "flags": 4}, + {"matrix": [0, 5], "x": 67, "y": 5, "flags": 4}, + {"matrix": [0, 6], "x": 85, "y": 5, "flags": 1}, + {"matrix": [0, 7], "x": 97, "y": 5, "flags": 1}, + {"matrix": [0, 8], "x": 109, "y": 5, "flags": 1}, + {"matrix": [0, 9], "x": 121, "y": 5, "flags": 1}, + {"matrix": [0, 10], "x": 139, "y": 5, "flags": 4}, + {"matrix": [0, 11], "x": 151, "y": 5, "flags": 4}, + {"matrix": [0, 12], "x": 163, "y": 5, "flags": 4}, + {"matrix": [0, 13], "x": 175, "y": 5, "flags": 4}, + {"matrix": [0, 14], "x": 193, "y": 5, "flags": 1}, + {"matrix": [0, 15], "x": 205, "y": 5, "flags": 1}, + {"matrix": [0, 16], "x": 217, "y": 5, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 19, "y": 20, "flags": 4}, + {"matrix": [1, 2], "x": 31, "y": 20, "flags": 4}, + {"matrix": [1, 3], "x": 43, "y": 20, "flags": 4}, + {"matrix": [1, 4], "x": 55, "y": 20, "flags": 4}, + {"matrix": [1, 5], "x": 67, "y": 20, "flags": 4}, + {"matrix": [1, 6], "x": 79, "y": 20, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 20, "flags": 4}, + {"matrix": [1, 8], "x": 103, "y": 20, "flags": 4}, + {"matrix": [1, 9], "x": 115, "y": 20, "flags": 4}, + {"matrix": [1, 10], "x": 127, "y": 20, "flags": 4}, + {"matrix": [1, 11], "x": 139, "y": 20, "flags": 4}, + {"matrix": [1, 12], "x": 151, "y": 20, "flags": 4}, + {"matrix": [1, 13], "x": 169, "y": 20, "flags": 1}, + {"matrix": [1, 14], "x": 193, "y": 20, "flags": 1}, + {"matrix": [1, 15], "x": 205, "y": 20, "flags": 1}, + {"matrix": [1, 16], "x": 217, "y": 20, "flags": 1}, + {"matrix": [2, 0], "x": 10, "y": 30, "flags": 1}, + {"matrix": [2, 1], "x": 25, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 49, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 61, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 73, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 97, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 109, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 121, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 133, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 145, "y": 30, "flags": 4}, + {"matrix": [2, 12], "x": 157, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 172, "y": 30, "flags": 4}, + {"matrix": [2, 14], "x": 193, "y": 30, "flags": 1}, + {"matrix": [2, 15], "x": 205, "y": 30, "flags": 1}, + {"matrix": [2, 16], "x": 217, "y": 30, "flags": 1}, + {"matrix": [3, 0], "x": 11, "y": 39, "flags": 1}, + {"matrix": [3, 1], "x": 28, "y": 39, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 39, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 39, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 39, "flags": 4}, + {"matrix": [3, 5], "x": 76, "y": 39, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 39, "flags": 4}, + {"matrix": [3, 7], "x": 100, "y": 39, "flags": 4}, + {"matrix": [3, 8], "x": 112, "y": 39, "flags": 4}, + {"matrix": [3, 9], "x": 124, "y": 39, "flags": 4}, + {"matrix": [3, 10], "x": 136, "y": 39, "flags": 4}, + {"matrix": [3, 11], "x": 148, "y": 39, "flags": 4}, + {"matrix": [3, 12], "x": 168, "y": 39, "flags": 1}, + {"matrix": [4, 0], "x": 17, "y": 49, "flags": 1}, + {"matrix": [4, 2], "x": 34, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 46, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 58, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 70, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 82, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 106, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 118, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 130, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 142, "y": 49, "flags": 4}, + {"matrix": [4, 12], "x": 165, "y": 49, "flags": 1}, + {"matrix": [4, 15], "x": 205, "y": 49, "flags": 1}, + {"matrix": [5, 0], "x": 8, "y": 59, "flags": 1}, + {"matrix": [5, 1], "x": 23, "y": 59, "flags": 1}, + {"matrix": [5, 2], "x": 38, "y": 59, "flags": 1}, + {"matrix": [5, 5], "x": 83, "y": 59, "flags": 4}, + {"matrix": [5, 10], "x": 129, "y": 59, "flags": 1}, + {"matrix": [5, 11], "x": 144, "y": 59, "flags": 1}, + {"matrix": [5, 12], "x": 159, "y": 59, "flags": 1}, + {"matrix": [5, 13], "x": 174, "y": 59, "flags": 1}, + {"matrix": [5, 14], "x": 193, "y": 59, "flags": 1}, + {"matrix": [5, 15], "x": 205, "y": 59, "flags": 1}, + {"matrix": [5, 16], "x": 217, "y": 59, "flags": 1} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c index 3009359c65..fbaf9e0bcf 100644 --- a/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c +++ b/keyboards/kprepublic/bm80v2_iso/bm80v2_iso.c @@ -113,30 +113,6 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW8_CS36, SW8_CS35, SW8_CS34} }; -led_config_t g_led_config = { { - { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, - { 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32 }, - { 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 }, - { 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, NO_LED, NO_LED, NO_LED, NO_LED }, - { 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, NO_LED, NO_LED, 76, NO_LED }, - { 77, 78, 79, NO_LED,NO_LED, 80, NO_LED, NO_LED, NO_LED, NO_LED, 81, 82, 83, 84, 85, 86, 87 } -}, -{ - { 7, 5 }, { 31, 5 }, { 43, 5 }, { 55, 5 }, { 67, 5 }, { 85, 5 }, { 97, 5 }, { 109, 5 }, { 121, 5 }, { 139, 5 }, { 151, 5 }, { 163, 5 }, { 175, 5 }, { 193, 5 }, { 205, 5 }, { 217, 5 }, - { 7, 20 }, { 19, 20 }, { 31, 20 }, { 43, 20 }, { 55, 20 }, { 67, 20 }, { 79, 20 }, { 91, 20 }, { 103, 20 }, { 115, 20 }, { 127, 20 }, { 139, 20 }, { 151, 20 }, { 169, 20 }, { 193, 20 }, { 205, 20 }, { 217, 20 }, - { 10, 30 }, { 25, 30 }, { 37, 30 }, { 49, 30 }, { 61, 30 }, { 73, 30 }, { 85, 30 }, { 97, 30 }, { 109, 30 }, { 121, 30 }, { 133, 30 }, { 145, 30 }, { 157, 30 }, { 175, 35 }, { 193, 30 }, { 205, 30 }, { 217, 30 }, - { 11, 39 }, { 28, 39 }, { 40, 39 }, { 52, 39 }, { 64, 39 }, { 76, 39 }, { 88, 39 }, { 100, 39 }, { 112, 39 }, { 124, 39 }, { 136, 39 }, { 148, 39 }, { 168, 39 }, - { 8, 49 }, { 22, 49 }, { 34, 49 }, { 46, 49 }, { 58, 49 }, { 70, 49 }, { 82, 49 }, { 94, 49 }, { 106, 49 }, { 118, 49 }, { 130, 49 }, { 142, 49 }, { 165, 49 }, { 205, 49 }, - { 8, 59 }, { 23, 59 }, { 38, 59 }, { 83, 59 }, { 129, 59 }, { 144, 59 }, { 159, 59 }, { 174, 59 }, { 193, 59 }, { 205, 59 }, { 217, 59 } -}, -{ 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 1, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1 -} }; - bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { diff --git a/keyboards/kprepublic/bm80v2_iso/keyboard.json b/keyboards/kprepublic/bm80v2_iso/keyboard.json index beb90a3738..5cf4c9c1bc 100644 --- a/keyboards/kprepublic/bm80v2_iso/keyboard.json +++ b/keyboards/kprepublic/bm80v2_iso/keyboard.json @@ -45,6 +45,96 @@ "animation": "cycle_all" }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 7, "y": 5, "flags": 1}, + {"matrix": [0, 2], "x": 31, "y": 5, "flags": 4}, + {"matrix": [0, 3], "x": 43, "y": 5, "flags": 4}, + {"matrix": [0, 4], "x": 55, "y": 5, "flags": 4}, + {"matrix": [0, 5], "x": 67, "y": 5, "flags": 4}, + {"matrix": [0, 6], "x": 85, "y": 5, "flags": 1}, + {"matrix": [0, 7], "x": 97, "y": 5, "flags": 1}, + {"matrix": [0, 8], "x": 109, "y": 5, "flags": 1}, + {"matrix": [0, 9], "x": 121, "y": 5, "flags": 1}, + {"matrix": [0, 10], "x": 139, "y": 5, "flags": 4}, + {"matrix": [0, 11], "x": 151, "y": 5, "flags": 4}, + {"matrix": [0, 12], "x": 163, "y": 5, "flags": 4}, + {"matrix": [0, 13], "x": 175, "y": 5, "flags": 4}, + {"matrix": [0, 14], "x": 193, "y": 5, "flags": 1}, + {"matrix": [0, 15], "x": 205, "y": 5, "flags": 1}, + {"matrix": [0, 16], "x": 217, "y": 5, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 19, "y": 20, "flags": 4}, + {"matrix": [1, 2], "x": 31, "y": 20, "flags": 4}, + {"matrix": [1, 3], "x": 43, "y": 20, "flags": 4}, + {"matrix": [1, 4], "x": 55, "y": 20, "flags": 4}, + {"matrix": [1, 5], "x": 67, "y": 20, "flags": 4}, + {"matrix": [1, 6], "x": 79, "y": 20, "flags": 4}, + {"matrix": [1, 7], "x": 91, "y": 20, "flags": 4}, + {"matrix": [1, 8], "x": 103, "y": 20, "flags": 4}, + {"matrix": [1, 9], "x": 115, "y": 20, "flags": 4}, + {"matrix": [1, 10], "x": 127, "y": 20, "flags": 4}, + {"matrix": [1, 11], "x": 139, "y": 20, "flags": 4}, + {"matrix": [1, 12], "x": 151, "y": 20, "flags": 4}, + {"matrix": [1, 13], "x": 169, "y": 20, "flags": 1}, + {"matrix": [1, 14], "x": 193, "y": 20, "flags": 1}, + {"matrix": [1, 15], "x": 205, "y": 20, "flags": 1}, + {"matrix": [1, 16], "x": 217, "y": 20, "flags": 1}, + {"matrix": [2, 0], "x": 10, "y": 30, "flags": 1}, + {"matrix": [2, 1], "x": 25, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 49, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 61, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 73, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 85, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 97, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 109, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 121, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 133, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 145, "y": 30, "flags": 4}, + {"matrix": [2, 12], "x": 157, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 175, "y": 35, "flags": 4}, + {"matrix": [2, 14], "x": 193, "y": 30, "flags": 1}, + {"matrix": [2, 15], "x": 205, "y": 30, "flags": 1}, + {"matrix": [2, 16], "x": 217, "y": 30, "flags": 1}, + {"matrix": [3, 0], "x": 11, "y": 39, "flags": 1}, + {"matrix": [3, 1], "x": 28, "y": 39, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 39, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 39, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 39, "flags": 4}, + {"matrix": [3, 5], "x": 76, "y": 39, "flags": 4}, + {"matrix": [3, 6], "x": 88, "y": 39, "flags": 4}, + {"matrix": [3, 7], "x": 100, "y": 39, "flags": 4}, + {"matrix": [3, 8], "x": 112, "y": 39, "flags": 4}, + {"matrix": [3, 9], "x": 124, "y": 39, "flags": 4}, + {"matrix": [3, 10], "x": 136, "y": 39, "flags": 4}, + {"matrix": [3, 11], "x": 148, "y": 39, "flags": 4}, + {"matrix": [3, 12], "x": 168, "y": 39, "flags": 1}, + {"matrix": [4, 0], "x": 8, "y": 49, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 49, "flags": 1}, + {"matrix": [4, 2], "x": 34, "y": 49, "flags": 4}, + {"matrix": [4, 3], "x": 46, "y": 49, "flags": 4}, + {"matrix": [4, 4], "x": 58, "y": 49, "flags": 4}, + {"matrix": [4, 5], "x": 70, "y": 49, "flags": 4}, + {"matrix": [4, 6], "x": 82, "y": 49, "flags": 4}, + {"matrix": [4, 7], "x": 94, "y": 49, "flags": 4}, + {"matrix": [4, 8], "x": 106, "y": 49, "flags": 4}, + {"matrix": [4, 9], "x": 118, "y": 49, "flags": 4}, + {"matrix": [4, 10], "x": 130, "y": 49, "flags": 4}, + {"matrix": [4, 11], "x": 142, "y": 49, "flags": 4}, + {"matrix": [4, 12], "x": 165, "y": 49, "flags": 1}, + {"matrix": [4, 15], "x": 205, "y": 49, "flags": 1}, + {"matrix": [5, 0], "x": 8, "y": 59, "flags": 1}, + {"matrix": [5, 1], "x": 23, "y": 59, "flags": 1}, + {"matrix": [5, 2], "x": 38, "y": 59, "flags": 1}, + {"matrix": [5, 5], "x": 83, "y": 59, "flags": 4}, + {"matrix": [5, 10], "x": 129, "y": 59, "flags": 1}, + {"matrix": [5, 11], "x": 144, "y": 59, "flags": 1}, + {"matrix": [5, 12], "x": 159, "y": 59, "flags": 1}, + {"matrix": [5, 13], "x": 174, "y": 59, "flags": 1}, + {"matrix": [5, 14], "x": 193, "y": 59, "flags": 1}, + {"matrix": [5, 15], "x": 205, "y": 59, "flags": 1}, + {"matrix": [5, 16], "x": 217, "y": 59, "flags": 1} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/kprepublic/bm980hsrgb/bm980hsrgb.c b/keyboards/kprepublic/bm980hsrgb/bm980hsrgb.c deleted file mode 100644 index 12475ac36b..0000000000 --- a/keyboards/kprepublic/bm980hsrgb/bm980hsrgb.c +++ /dev/null @@ -1,51 +0,0 @@ -/* Copyright 2021 peepeetee - * Copyright 2021 bdtc123 - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, NO_LED, 13 }, - { 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31 }, - { 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 }, - { 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, NO_LED, 65, 66 }, - { 69, NO_LED, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82 }, - { 86, 87, 88, 96, 97, 85, 89, 84, 83, 90, 91, 92, 93, 94, 95 }, - { NO_LED, NO_LED, 34, 50, 51, 52, 16, 68, 67, 33, 15, 32, NO_LED, 14, NO_LED } - - -}, { - // LED Index to Physical Position - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 195, 0 }, { 202, 0 }, { 212, 0 }, { 224, 0 }, - { 0, 20 }, { 15, 20 }, { 30, 20 }, { 45, 20 }, { 60, 20 }, { 75, 20 }, { 90, 20 }, { 105, 20 }, { 120, 20 }, { 135, 20 }, { 150, 20 }, { 165, 20 }, { 180, 20 },{ 195, 20 }, { 202, 20 }, { 212, 20 },{ 220, 20 },{ 224, 20 }, - { 8, 30 }, { 15, 30 }, { 30, 30 }, { 45, 30 }, { 60, 30 }, { 75, 30 }, { 90, 30 }, { 105, 30 }, { 120, 30 }, { 135, 30 }, { 150, 30 }, { 165, 30 }, { 180, 30 },{ 195, 30 }, { 202, 30 }, { 212, 30 },{ 220, 30 },{ 224, 30 }, - { 9, 40 }, { 15, 40 }, { 30, 40 }, { 45, 40 }, { 60, 40 }, { 75, 40 }, { 90, 40 }, { 105, 40 }, { 120, 40 }, { 135, 40 }, { 150, 40 }, { 165, 40 }, { 180, 40 },{ 195, 40 }, { 202, 40 }, { 212, 40 }, - { 12, 50 }, { 15, 50 }, { 30, 50 }, { 45, 50 }, { 60, 50 }, { 75, 50 }, { 90, 50 }, { 105, 50 }, { 120, 50 }, { 135, 50 }, { 150, 50 }, { 165, 50 }, { 180, 50 },{ 195, 50 }, { 202, 50 }, { 212, 50 },{ 224, 50 }, - { 2, 60 }, { 17, 60 }, { 34, 60 }, { 77, 60 }, { 120, 60 }, { 135, 60 }, { 150, 60 }, { 165, 60 }, { 177, 60 }, { 182, 60 }, { 197, 60 }, { 212, 60 }, - -}, { - // LED Index to Flag - 1, 4, 4, 4, 4, 1, 1, 1, 1, 4, 4, 4, 4, 1, 9/*scroll lock*/, 1,1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 1, 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 9/*caps lock*/, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 4, 4, 4, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 4, 4 -} }; - - -#endif diff --git a/keyboards/kprepublic/bm980hsrgb/keyboard.json b/keyboards/kprepublic/bm980hsrgb/keyboard.json index 85f8b006ae..c4ffb1746a 100644 --- a/keyboards/kprepublic/bm980hsrgb/keyboard.json +++ b/keyboards/kprepublic/bm980hsrgb/keyboard.json @@ -8,7 +8,107 @@ "device_version": "0.0.1" }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 1}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 195, "y": 0, "flags": 1}, + {"matrix": [6, 13], "x": 202, "y": 0, "flags": 9}, + {"matrix": [6, 10], "x": 212, "y": 0, "flags": 1}, + {"matrix": [6, 6], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 15, "y": 20, "flags": 4}, + {"matrix": [1, 2], "x": 30, "y": 20, "flags": 4}, + {"matrix": [1, 3], "x": 45, "y": 20, "flags": 4}, + {"matrix": [1, 4], "x": 60, "y": 20, "flags": 4}, + {"matrix": [1, 5], "x": 75, "y": 20, "flags": 4}, + {"matrix": [1, 6], "x": 90, "y": 20, "flags": 4}, + {"matrix": [1, 7], "x": 105, "y": 20, "flags": 4}, + {"matrix": [1, 8], "x": 120, "y": 20, "flags": 4}, + {"matrix": [1, 9], "x": 135, "y": 20, "flags": 4}, + {"matrix": [1, 10], "x": 150, "y": 20, "flags": 4}, + {"matrix": [1, 11], "x": 165, "y": 20, "flags": 4}, + {"matrix": [1, 12], "x": 180, "y": 20, "flags": 4}, + {"matrix": [1, 13], "x": 195, "y": 20, "flags": 1}, + {"matrix": [1, 14], "x": 202, "y": 20, "flags": 1}, + {"matrix": [6, 11], "x": 212, "y": 20, "flags": 1}, + {"matrix": [6, 9], "x": 220, "y": 20, "flags": 1}, + {"matrix": [6, 2], "x": 224, "y": 20, "flags": 1}, + {"matrix": [2, 0], "x": 8, "y": 30, "flags": 1}, + {"matrix": [2, 1], "x": 15, "y": 30, "flags": 4}, + {"matrix": [2, 2], "x": 30, "y": 30, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 30, "flags": 4}, + {"matrix": [2, 4], "x": 60, "y": 30, "flags": 4}, + {"matrix": [2, 5], "x": 75, "y": 30, "flags": 4}, + {"matrix": [2, 6], "x": 90, "y": 30, "flags": 4}, + {"matrix": [2, 7], "x": 105, "y": 30, "flags": 4}, + {"matrix": [2, 8], "x": 120, "y": 30, "flags": 4}, + {"matrix": [2, 9], "x": 135, "y": 30, "flags": 4}, + {"matrix": [2, 10], "x": 150, "y": 30, "flags": 4}, + {"matrix": [2, 11], "x": 165, "y": 30, "flags": 4}, + {"matrix": [2, 12], "x": 180, "y": 30, "flags": 4}, + {"matrix": [2, 13], "x": 195, "y": 30, "flags": 4}, + {"matrix": [2, 14], "x": 202, "y": 30, "flags": 4}, + {"matrix": [6, 3], "x": 212, "y": 30, "flags": 4}, + {"matrix": [6, 4], "x": 220, "y": 30, "flags": 4}, + {"matrix": [6, 5], "x": 224, "y": 30, "flags": 1}, + {"matrix": [3, 0], "x": 9, "y": 40, "flags": 9}, + {"matrix": [3, 1], "x": 15, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 30, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 60, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 75, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 90, "y": 40, "flags": 4}, + {"matrix": [3, 7], "x": 105, "y": 40, "flags": 4}, + {"matrix": [3, 8], "x": 120, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 135, "y": 40, "flags": 4}, + {"matrix": [3, 10], "x": 150, "y": 40, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 40, "flags": 4}, + {"matrix": [3, 13], "x": 180, "y": 40, "flags": 1}, + {"matrix": [3, 14], "x": 195, "y": 40, "flags": 4}, + {"matrix": [6, 8], "x": 202, "y": 40, "flags": 4}, + {"matrix": [6, 7], "x": 212, "y": 40, "flags": 4}, + {"matrix": [4, 0], "x": 12, "y": 50, "flags": 1}, + {"matrix": [4, 2], "x": 15, "y": 50, "flags": 4}, + {"matrix": [4, 3], "x": 30, "y": 50, "flags": 4}, + {"matrix": [4, 4], "x": 45, "y": 50, "flags": 4}, + {"matrix": [4, 5], "x": 60, "y": 50, "flags": 4}, + {"matrix": [4, 6], "x": 75, "y": 50, "flags": 4}, + {"matrix": [4, 7], "x": 90, "y": 50, "flags": 4}, + {"matrix": [4, 8], "x": 105, "y": 50, "flags": 4}, + {"matrix": [4, 9], "x": 120, "y": 50, "flags": 4}, + {"matrix": [4, 10], "x": 135, "y": 50, "flags": 4}, + {"matrix": [4, 11], "x": 150, "y": 50, "flags": 4}, + {"matrix": [4, 12], "x": 165, "y": 50, "flags": 1}, + {"matrix": [4, 13], "x": 180, "y": 50, "flags": 1}, + {"matrix": [4, 14], "x": 195, "y": 50, "flags": 4}, + {"matrix": [5, 8], "x": 202, "y": 50, "flags": 4}, + {"matrix": [5, 7], "x": 212, "y": 50, "flags": 4}, + {"matrix": [5, 5], "x": 224, "y": 50, "flags": 1}, + {"matrix": [5, 0], "x": 2, "y": 60, "flags": 1}, + {"matrix": [5, 1], "x": 17, "y": 60, "flags": 1}, + {"matrix": [5, 2], "x": 34, "y": 60, "flags": 1}, + {"matrix": [5, 6], "x": 77, "y": 60, "flags": 4}, + {"matrix": [5, 9], "x": 120, "y": 60, "flags": 1}, + {"matrix": [5, 10], "x": 135, "y": 60, "flags": 1}, + {"matrix": [5, 11], "x": 150, "y": 60, "flags": 1}, + {"matrix": [5, 12], "x": 165, "y": 60, "flags": 1}, + {"matrix": [5, 13], "x": 177, "y": 60, "flags": 1}, + {"matrix": [5, 14], "x": 182, "y": 60, "flags": 1}, + {"matrix": [5, 3], "x": 197, "y": 60, "flags": 4}, + {"matrix": [5, 4], "x": 212, "y": 60, "flags": 4} + ] }, "build": { "lto": true From 633479ced5a70076cf6906f3ecf7d199928bdb55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Wed, 10 Sep 2025 16:41:29 +0800 Subject: [PATCH 046/255] Restructure Pixel Rain interval code (#25516) Co-authored-by: Joel Challis --- .../rgb_matrix/animations/pixel_rain_anim.h | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/quantum/rgb_matrix/animations/pixel_rain_anim.h b/quantum/rgb_matrix/animations/pixel_rain_anim.h index c0370831d8..f92a285b67 100644 --- a/quantum/rgb_matrix/animations/pixel_rain_anim.h +++ b/quantum/rgb_matrix/animations/pixel_rain_anim.h @@ -6,20 +6,27 @@ RGB_MATRIX_EFFECT(PIXEL_RAIN) # ifdef RGB_MATRIX_CUSTOM_EFFECT_IMPLS static bool PIXEL_RAIN(effect_params_t* params) { - static fast_timer_t timer = 0; - static uint16_t index = RGB_MATRIX_LED_COUNT + 1; + static uint8_t index = 0; + static uint32_t timer = 0; - if ((params->iter == 0) && (timer_elapsed_fast(timer) > (320 - rgb_matrix_config.speed))) { + if (params->iter == 0 && params->init) { index = random8_max(RGB_MATRIX_LED_COUNT); - timer = timer_read_fast(); } RGB_MATRIX_USE_LIMITS(led_min, led_max); - if (led_min <= index && index < led_max && HAS_ANY_FLAGS(g_led_config.flags[index], params->flags)) { - hsv_t hsv = (random8() & 2) ? (hsv_t){0, 0, 0} : (hsv_t){random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v}; - rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); - rgb_matrix_set_color(index, rgb.r, rgb.g, rgb.b); - index = RGB_MATRIX_LED_COUNT + 1; + if (timer < g_rgb_timer) { // Execute when the delay period has elapsed + if (led_min <= index && index < led_max && HAS_ANY_FLAGS(g_led_config.flags[index], params->flags)) { + // Assign a random HSV color to hsv with 50% probability, otherwise assign zeroed hsv + hsv_t hsv = (random8() & 2) ? (hsv_t){0, 0, 0} : (hsv_t){random8(), random8_min_max(127, 255), rgb_matrix_config.hsv.v}; + rgb_t rgb = rgb_matrix_hsv_to_rgb(hsv); + rgb_matrix_set_color(index, rgb.r, rgb.g, rgb.b); + } + if (!rgb_matrix_check_finished_leds(led_max)) { + // In the final LED range, update the LED index and advance the timer for + // the next cycle, scaling the delay between 256–2048 ms based on speed. + index = random8_max(RGB_MATRIX_LED_COUNT); + timer = g_rgb_timer + (2048 - scale16by8(1792, rgb_matrix_config.speed)); + } } return rgb_matrix_check_finished_leds(led_max); } From f12902eb1689d6c8269ac7bb1421d4cf4e888d70 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Wed, 10 Sep 2025 17:32:48 -0600 Subject: [PATCH 047/255] Refactor `1upkeyboards/sweet16v2` (#25610) --- data/mappings/keyboard_aliases.hjson | 6 + .../sweet16v2/kb2040/keyboard.json | 143 ------------------ .../sweet16v2/{pro_micro => }/keyboard.json | 5 +- .../sweet16v2/keymaps/default/keymap.c | 41 ----- .../sweet16v2/keymaps/default/keymap.json | 28 ++++ keyboards/1upkeyboards/sweet16v2/readme.md | 22 +-- 6 files changed, 42 insertions(+), 203 deletions(-) delete mode 100644 keyboards/1upkeyboards/sweet16v2/kb2040/keyboard.json rename keyboards/1upkeyboards/sweet16v2/{pro_micro => }/keyboard.json (97%) delete mode 100644 keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c create mode 100644 keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.json diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 3978235e20..babbf38940 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -1632,6 +1632,12 @@ "1upkeyboards/sweet16": { "target": "1upkeyboards/sweet16/v1" }, + "1upkeyboards/sweet16v2/kb2040": { + "target": "1upkeyboards/sweet16v2" + }, + "1upkeyboards/sweet16v2/pro_micro": { + "target": "1upkeyboards/sweet16v2" + }, "25keys/aleth42": { "target": "25keys/aleth42/rev1" }, diff --git a/keyboards/1upkeyboards/sweet16v2/kb2040/keyboard.json b/keyboards/1upkeyboards/sweet16v2/kb2040/keyboard.json deleted file mode 100644 index 40a0ec4039..0000000000 --- a/keyboards/1upkeyboards/sweet16v2/kb2040/keyboard.json +++ /dev/null @@ -1,143 +0,0 @@ -{ - "manufacturer": "1upkeyboards", - "keyboard_name": "sweet16v2", - "url": "1upkeyboards.com/shop/keyboard-kits/macro-pads/sweet-16-v2-macropad-kit/", - "maintainer": "ziptyze", - "processor": "RP2040", - "bootloader": "rp2040", - "board": "GENERIC_RP_RP2040", - "usb": { - "device_version": "1.0.0", - "pid": "0x5518", - "vid": "0x6F75" - }, - "features": { - "bootmagic": true, - "encoder": true, - "extrakey": true, - "mousekey": true, - "nkro": false, - "rgb_matrix": true - }, - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "ws2812": { - "pin": "GP6", - "driver": "vendor" - }, - "matrix_pins": { - "cols": ["GP2", "GP9", "GP8", "GP7"], - "rows": ["GP26", "GP1", "GP18", "GP5"] - }, - "diode_direction": "COL2ROW", - "dynamic_keymap": { - "layer_count": 10 - }, - "encoder": { - "enabled": true, - "rotary": [ - {"pin_a": "GP27", "pin_b": "GP28"}, - {"pin_a": "GP4", "pin_b": "GP3"} - ] - }, - "rgb_matrix": { - "animmations": { - "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, - "rainbow_moving_chevron": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "cycle_pinwheel": true, - "cycle_spiral": true, - "dual_beacon": true, - "rainbow_beacon": true, - "rainbow_pinwheels": true, - "raindrops": true, - "jellybean_raindrops": true, - "hue_breathing": true, - "hue_pendulum": true, - "hue_wave": true, - "pixel_rain": true, - "pixel_flow": true, - "pixel_fractal": 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 - }, - "driver": "ws2812", - "layout": [ - {"flags": 4, "matrix": [0, 0], "x": 28, "y": 12}, - {"flags": 4, "matrix": [0, 1], "x": 84, "y": 12}, - {"flags": 4, "matrix": [0, 2], "x": 140, "y": 12}, - {"flags": 4, "matrix": [0, 3], "x": 196, "y": 12}, - {"flags": 2, "x": 196, "y": 17}, - {"flags": 4, "matrix": [1, 3], "x": 196, "y": 28}, - {"flags": 4, "matrix": [1, 2], "x": 140, "y": 28}, - {"flags": 4, "matrix": [1, 1], "x": 84, "y": 28}, - {"flags": 2, "x": 28, "y": 17}, - {"flags": 4, "matrix": [1, 0], "x": 28, "y": 28}, - {"flags": 4, "matrix": [2, 0], "x": 28, "y": 44}, - {"flags": 4, "matrix": [2, 1], "x": 84, "y": 44}, - {"flags": 4, "matrix": [2, 2], "x": 140, "y": 44}, - {"flags": 4, "matrix": [2, 3], "x": 196, "y": 44}, - {"flags": 2, "x": 196, "y": 47}, - {"flags": 4, "matrix": [3, 3], "x": 196, "y": 60}, - {"flags": 4, "matrix": [3, 2], "x": 140, "y": 60}, - {"flags": 4, "matrix": [3, 1], "x": 84, "y": 60}, - {"flags": 2, "x": 28, "y": 47}, - {"flags": 4, "matrix": [3, 0], "x": 28, "y": 60} - ], - "sleep": true - }, - "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/1upkeyboards/sweet16v2/pro_micro/keyboard.json b/keyboards/1upkeyboards/sweet16v2/keyboard.json similarity index 97% rename from keyboards/1upkeyboards/sweet16v2/pro_micro/keyboard.json rename to keyboards/1upkeyboards/sweet16v2/keyboard.json index d8ff291e69..b84a43ff40 100644 --- a/keyboards/1upkeyboards/sweet16v2/pro_micro/keyboard.json +++ b/keyboards/1upkeyboards/sweet16v2/keyboard.json @@ -3,8 +3,7 @@ "keyboard_name": "sweet16v2", "url": "1upkeyboards.com/shop/keyboard-kits/macro-pads/sweet-16-v2-macropad-kit/", "maintainer": "ziptyze", - "bootloader": "atmel-dfu", - "processor": "atmega32u4", + "development_board": "elite_c", "usb": { "device_version": "1.0.0", "pid": "0x5518", @@ -15,7 +14,6 @@ "encoder": true, "extrakey": true, "mousekey": true, - "nkro": false, "rgb_matrix": true }, "qmk": { @@ -36,7 +34,6 @@ "layer_count": 10 }, "encoder": { - "enabled": true, "rotary": [ {"pin_a": "F6", "pin_b": "F5"}, {"pin_a": "D4", "pin_b": "D0"} diff --git a/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c b/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c deleted file mode 100644 index 6ccf21e18f..0000000000 --- a/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright 2022 ziptyze - * - * 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_ortho_4x4( - KC_P7, KC_P8, KC_P9, KC_PMNS, - KC_P4, KC_P5, KC_P6, KC_PPLS, - KC_P1, KC_P2, KC_P3, KC_PSLS, - MO(1), KC_P0, KC_PDOT, KC_PENT - ), - - [1] = LAYOUT_ortho_4x4( - RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, - RM_NEXT, RM_HUED, RM_SATD, RM_VALD, - RM_SPDD, RM_SPDU, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, 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(RM_VALD, RM_VALU) }, - [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } -}; -#endif \ No newline at end of file diff --git a/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.json b/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.json new file mode 100644 index 0000000000..fd2a0dc766 --- /dev/null +++ b/keyboards/1upkeyboards/sweet16v2/keymaps/default/keymap.json @@ -0,0 +1,28 @@ +{ + "keyboard": "1upkeyboards/sweet16v2", + "keymap": "default", + "coonfig": { + "features": { + "encoder_map": true + } + }, + "layout": "LAYOUT_ortho_4x4", + "layers": [ + [ + "KC_P7", "KC_P8", "KC_P8", "KC_PMNS", + "KC_P4", "KC_P5", "KC_P6", "KC_PPLS", + "KC_P1", "KC_P2", "KC_P3", "KC_PSLS", + "MO(1)", "KC_P0", "KC_PDOT", "KC_PENT" + ], + [ + "RM_TOGG", "RM_HUEU", "RM_SATU", "RM_VALU", + "RM_NEXT", "RM_HUED", "RM_SATD", "RM_VALD", + "RM_SPDD", "RM_SPDU", "_______", "_______", + "_______", "_______", "_______", "QK_BOOT" + ] + ], + "encoders": [ + [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}, {"ccw": "RM_VALD", "cw": "RM_VALU"}], + [{"ccw": "_______", "cw": "_______"}, {"ccw": "_______", "cw": "_______"}] + ] +} diff --git a/keyboards/1upkeyboards/sweet16v2/readme.md b/keyboards/1upkeyboards/sweet16v2/readme.md index e3f5859f96..eacaf0d0ce 100644 --- a/keyboards/1upkeyboards/sweet16v2/readme.md +++ b/keyboards/1upkeyboards/sweet16v2/readme.md @@ -1,26 +1,18 @@ # sweet16v2 -A 4x4 macropad with RGB inswitch lighting and underglow. +A 4x4 macropad with per-key RGB lighting and underglow. * Keyboard Maintainer: [ziptyze](https://github.com/ziptyze) * Hardware Supported: 1upkeyboards Sweet 16 v2 * Hardware Availability: [1upkeyboards](https://1upkeyboards.com/) -Make example for this keyboard using an atmel-based controller (after setting up your build environment): +Make example for this keyboard (after setting up your build environment): - make 1upkeyboards/sweet16v2/promicro:default + make 1upkeyboards/sweet16v2:default -Flashing example for this keyboard using an atmel-based controller: +Flashing example for this keyboard: - make 1upkeyboards/sweet16v2/promicro:default:flash - -Make example for this keyboard using an rp2040-based controller (after setting up your build environment): - - make 1upkeyboards/sweet16v2/kb2040:default - -Flashing example for this keyboard using an rp2040-based controller: - - make 1upkeyboards/sweet16v2/kb2040:default:flash + make 1upkeyboards/sweet16v2: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). @@ -30,10 +22,10 @@ Enter the bootloader in 3 ways for atmel-based controllers: * **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 `RESET` if it is available +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available Enter the bootloader in 2 ways for rp2040-based controllers: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard -* **Bootsel button**: Hold the bootsel button on controller and plug in the keyboard \ No newline at end of file +* **Bootsel button**: Hold the bootsel button on controller and plug in the keyboard From 286947b6faa3b3afd7862c52e52542c8a6ab3f20 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Wed, 10 Sep 2025 17:33:12 -0600 Subject: [PATCH 048/255] Refactor `0xcb/splaytoraid` (#25609) --- data/mappings/keyboard_aliases.hjson | 7 +- keyboards/0xcb/splaytoraid/32u4/keyboard.json | 27 ----- .../splaytoraid/{info.json => keyboard.json} | 105 ++++++++++++------ .../0xcb/splaytoraid/keymaps/default/keymap.c | 49 -------- .../splaytoraid/keymaps/default/keymap.json | 21 ++++ .../0xcb/splaytoraid/keymaps/default/rules.mk | 1 - keyboards/0xcb/splaytoraid/readme.md | 9 +- .../0xcb/splaytoraid/rp2040_ce/keyboard.json | 44 -------- .../0xcb/splaytoraid/rp2040_ce/readme.md | 3 - 9 files changed, 99 insertions(+), 167 deletions(-) delete mode 100644 keyboards/0xcb/splaytoraid/32u4/keyboard.json rename keyboards/0xcb/splaytoraid/{info.json => keyboard.json} (72%) delete mode 100644 keyboards/0xcb/splaytoraid/keymaps/default/keymap.c create mode 100644 keyboards/0xcb/splaytoraid/keymaps/default/keymap.json delete mode 100644 keyboards/0xcb/splaytoraid/keymaps/default/rules.mk delete mode 100644 keyboards/0xcb/splaytoraid/rp2040_ce/keyboard.json delete mode 100644 keyboards/0xcb/splaytoraid/rp2040_ce/readme.md diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index babbf38940..4f63c5f15f 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -1620,8 +1620,11 @@ "0_sixty": { "target": "0_sixty/base" }, - "0xcb/splaytoraid": { - "target": "0xcb/splaytoraid/rp2040_ce" + "0xcb/splaytoraid/32u4": { + "target": "0xcb/splaytoraid" + }, + "0xcb/splaytoraid/rp2040_ce": { + "target": "0xcb/splaytoraid" }, "1upkeyboards/pi40": { "target": "1upkeyboards/pi40/mit_v1_0" diff --git a/keyboards/0xcb/splaytoraid/32u4/keyboard.json b/keyboards/0xcb/splaytoraid/32u4/keyboard.json deleted file mode 100644 index 7c3f0590a6..0000000000 --- a/keyboards/0xcb/splaytoraid/32u4/keyboard.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "development_board": "promicro", - "bootloader": "qmk-dfu", - "matrix_pins": { - "cols": ["F5", "F6", "F7", "F4", "B3", "B1", "B2"], - "rows": ["D3", "D2", "D1", "D4", "D7", "E6", "B4", "C6"] - }, - "diode_direction": "COL2ROW", - "rgb_matrix": { - "animations": { - "band_sat": true, - "band_spiral_val": true, - "breathing": true, - "cycle_all": true, - "cycle_left_right": true, - "raindrops": true - } - }, - "encoder": { - "rotary": [ - {"pin_a": "B5", "pin_b": "B6"} - ] - }, - "ws2812": { - "pin": "D0" - } -} diff --git a/keyboards/0xcb/splaytoraid/info.json b/keyboards/0xcb/splaytoraid/keyboard.json similarity index 72% rename from keyboards/0xcb/splaytoraid/info.json rename to keyboards/0xcb/splaytoraid/keyboard.json index 8c32b0dc11..457cc7a23a 100644 --- a/keyboards/0xcb/splaytoraid/info.json +++ b/keyboards/0xcb/splaytoraid/keyboard.json @@ -2,28 +2,58 @@ "manufacturer": "Freya", "keyboard_name": "splaytoraid", "maintainer": "freya-irl", - "url": "https://github.com/freya-irl/splaytoraid40", - "usb": { - "device_version": "1.0.0", - "pid": "0xCB00", - "vid": "0x2004" - }, - "features": { - "extrakey": true, - "rgb_matrix": true, - "bootmagic": true, - "console": true, - "mousekey": true, - "nkro": true, - "encoder": true - }, + "bootloader": "qmk-dfu", "bootmagic": { "matrix": [1, 0] }, "build": { "lto": true }, + "development_board": "promicro", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "B5", "pin_b": "B6"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["F5", "F6", "F7", "F4", "B3", "B1", "B2"], + "rows": ["D3", "D2", "D1", "D4", "D7", "E6", "B4", "C6"] + }, "rgb_matrix": { + "animations": { + "band_sat": true, + "band_spiral_val": true, + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "cycle_out_in": true, + "cycle_out_in_dual": true, + "cycle_pinwheel": true, + "cycle_up_down": true, + "digital_rain": true, + "dual_beacon": true, + "hue_breathing": true, + "jellybean_raindrops": true, + "multisplash": true, + "pixel_fractal": true, + "pixel_rain": true, + "rainbow_moving_chevron": true, + "raindrops": true, + "solid_reactive": true, + "solid_reactive_simple": true, + "solid_splash": true, + "splash": true, + "typing_heatmap": true + }, "default": { "animation": "breathing", "hue": 152, @@ -32,27 +62,36 @@ }, "driver": "ws2812", "layout": [ - {"flags": 4, "matrix": [0, 2], "x": 0, "y": 0}, - {"flags": 4, "matrix": [1, 0], "x": 20, "y": 0}, - {"flags": 4, "matrix": [7, 0], "x": 61, "y": 0}, - {"flags": 4, "matrix": [7, 1], "x": 163, "y": 0}, - {"flags": 4, "matrix": [5, 0], "x": 203, "y": 0}, - {"flags": 4, "matrix": [4, 2], "x": 224, "y": 0}, - {"flags": 4, "matrix": [6, 2], "x": 0, "y": 21}, - {"flags": 4, "matrix": [6, 1], "x": 224, "y": 21}, - {"flags": 4, "matrix": [3, 3], "x": 20, "y": 43}, - {"flags": 4, "matrix": [7, 3], "x": 61, "y": 43}, - {"flags": 4, "matrix": [6, 4], "x": 163, "y": 43}, - {"flags": 4, "matrix": [6, 3], "x": 203, "y": 43}, - {"flags": 4, "matrix": [4, 3], "x": 61, "y": 64}, - {"flags": 4, "matrix": [5, 5], "x": 81, "y": 64}, - {"flags": 4, "matrix": [7, 4], "x": 101, "y": 64}, - {"flags": 4, "matrix": [7, 5], "x": 122, "y": 64}, - {"flags": 4, "matrix": [1, 5], "x": 142, "y": 64}, - {"flags": 4, "matrix": [0, 3], "x": 163, "y": 64} + {"matrix": [0, 2], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 20, "y": 0, "flags": 4}, + {"matrix": [7, 0], "x": 61, "y": 0, "flags": 4}, + {"matrix": [7, 1], "x": 163, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 203, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 224, "y": 0, "flags": 4}, + {"matrix": [6, 2], "x": 0, "y": 21, "flags": 4}, + {"matrix": [6, 1], "x": 224, "y": 21, "flags": 4}, + {"matrix": [3, 3], "x": 20, "y": 43, "flags": 4}, + {"matrix": [7, 3], "x": 61, "y": 43, "flags": 4}, + {"matrix": [6, 4], "x": 163, "y": 43, "flags": 4}, + {"matrix": [6, 3], "x": 203, "y": 43, "flags": 4}, + {"matrix": [4, 3], "x": 61, "y": 64, "flags": 4}, + {"matrix": [5, 5], "x": 81, "y": 64, "flags": 4}, + {"matrix": [7, 4], "x": 101, "y": 64, "flags": 4}, + {"matrix": [7, 5], "x": 122, "y": 64, "flags": 4}, + {"matrix": [1, 5], "x": 142, "y": 64, "flags": 4}, + {"matrix": [0, 3], "x": 163, "y": 64, "flags": 4} ], "max_brightness": 200 }, + "url": "https://github.com/freya-irl/splaytoraid40", + "usb": { + "device_version": "1.0.0", + "pid": "0xCB00", + "vid": "0x2004" + }, + "ws2812": { + "pin": "D0" + }, "layouts": { "LAYOUT_36": { "layout": [ diff --git a/keyboards/0xcb/splaytoraid/keymaps/default/keymap.c b/keyboards/0xcb/splaytoraid/keymaps/default/keymap.c deleted file mode 100644 index 6a82f2ca74..0000000000 --- a/keyboards/0xcb/splaytoraid/keymaps/default/keymap.c +++ /dev/null @@ -1,49 +0,0 @@ -// Copyright 2023 Conor Burns (@Conor-Burns) -/* SPDX-License-Identifier: GPL-2.0-or-later */ - -#include QMK_KEYBOARD_H - -enum layer_names { - _BASE, - _LOWER, - _RAISE, - _ADJUST -}; - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT_40( - 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_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, - KC_LSFT, KC_ESC, KC_ENT, KC_MPLY, KC_SPC, KC_DEL, KC_RSFT - ), - - [_LOWER] = LAYOUT_40( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ - ), - - [_RAISE] = LAYOUT_40( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ - ), - - [_ADJUST] = LAYOUT_40( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ - ) -}; - - -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, - [_LOWER] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) }, - [_RAISE] = { ENCODER_CCW_CW(UG_VALD, UG_VALU) }, - [_ADJUST] = { ENCODER_CCW_CW(KC_RGHT, KC_LEFT) } -}; diff --git a/keyboards/0xcb/splaytoraid/keymaps/default/keymap.json b/keyboards/0xcb/splaytoraid/keymaps/default/keymap.json new file mode 100644 index 0000000000..42bcaf28a1 --- /dev/null +++ b/keyboards/0xcb/splaytoraid/keymaps/default/keymap.json @@ -0,0 +1,21 @@ +{ + "keyboard": "0xcb/splaytoraid", + "keymap": "default", + "config": { + "features": { + "encoder_map": true + } + }, + "layout": "LAYOUT_40", + "layers": [ + [ + "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_LCTL", "KC_A", "KC_S", "KC_D", "KC_F", "KC_G", "KC_H", "KC_J", "KC_K", "KC_L", "KC_SCLN", "KC_QUOT", + "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", + "KC_LSFT", "KC_ESC", "KC_ENT", "KC_MPLY", "KC_SPC", "KC_DEL", "KC_RSFT" + ] + ], + "encoders": [ + [{"ccw": "KC_VOLD", "cw": "KC_VOLU"}] + ] +} diff --git a/keyboards/0xcb/splaytoraid/keymaps/default/rules.mk b/keyboards/0xcb/splaytoraid/keymaps/default/rules.mk deleted file mode 100644 index ee32568148..0000000000 --- a/keyboards/0xcb/splaytoraid/keymaps/default/rules.mk +++ /dev/null @@ -1 +0,0 @@ -ENCODER_MAP_ENABLE = yes diff --git a/keyboards/0xcb/splaytoraid/readme.md b/keyboards/0xcb/splaytoraid/readme.md index ab53696c95..4fe04c8abd 100644 --- a/keyboards/0xcb/splaytoraid/readme.md +++ b/keyboards/0xcb/splaytoraid/readme.md @@ -11,13 +11,10 @@ A 40% ergonomic keyboard with a stacked acrylic case and RGB underglow. Make example for this keyboard (after setting up your build environment): make 0xcb/splaytoraid:default - make 0xcb/splaytoraid/32u4:default Flashing example for this keyboard: make 0xcb/splaytoraid:default:flash - make 0xcb/splaytoraid/32u4: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). @@ -29,8 +26,4 @@ Enter the bootloader in 3 ways: * **Physical reset button**: Press the button on the controller (Helios) for more than 500ms or just press it (Pluto) * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available -Please note that the default bootloader for the `32u4` version is QMK DFU, for compatibility with [0xCB Pluto](https://github.com/0xCB-dev/0xCB-Pluto). Generic Pro Micros often use a different bootloader, such as `caterina`. - -If the incorrect bootloader is specified, bootmagic reset and the `QK_BOOT` keycode will not work. - -To avoid this problem, set the correct bootloader in your custom keymap's `rules.mk` file before compiling, or flash using an appropriate target (ex: `make 0xcb/splaytoraid/32u4:default:avrdude`). See [flashing instructions and bootloader information](https://docs.qmk.fm/#/flashing) for more details. +When using an AVR microcontroller with this keyboard, the bootloader is configured to be QMK DFU for compatibility with [0xCB Pluto](https://github.com/0xCB-dev/0xCB-Pluto). If your microcontroller does not use this bootloader, ensure to set this parameter appropriately in your keymap's `rules.mk` file. diff --git a/keyboards/0xcb/splaytoraid/rp2040_ce/keyboard.json b/keyboards/0xcb/splaytoraid/rp2040_ce/keyboard.json deleted file mode 100644 index b5a4f95c69..0000000000 --- a/keyboards/0xcb/splaytoraid/rp2040_ce/keyboard.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "development_board": "promicro_rp2040", - "matrix_pins": { - "cols": ["GP28", "GP27", "GP26", "GP29", "GP20", "GP22", "GP23"], - "rows": ["GP0", "GP1", "GP2", "GP4", "GP6", "GP7", "GP8", "GP5"] - }, - "diode_direction": "COL2ROW", - "rgb_matrix": { - "animations": { - "band_sat": true, - "band_spiral_val": true, - "breathing": true, - "cycle_all": true, - "cycle_left_right": true, - "cycle_out_in": true, - "cycle_out_in_dual": true, - "cycle_pinwheel": true, - "cycle_up_down": true, - "digital_rain": true, - "dual_beacon": true, - "hue_breathing": true, - "jellybean_raindrops": true, - "multisplash": true, - "pixel_fractal": true, - "pixel_rain": true, - "rainbow_moving_chevron": true, - "raindrops": true, - "solid_reactive": true, - "solid_reactive_simple": true, - "solid_splash": true, - "splash": true, - "typing_heatmap": true - } - }, - "encoder": { - "rotary": [ - {"pin_a": "GP9", "pin_b": "GP21"} - ] - }, - "ws2812": { - "pin": "GP3", - "driver": "vendor" - } -} diff --git a/keyboards/0xcb/splaytoraid/rp2040_ce/readme.md b/keyboards/0xcb/splaytoraid/rp2040_ce/readme.md deleted file mode 100644 index f6ff200ac3..0000000000 --- a/keyboards/0xcb/splaytoraid/rp2040_ce/readme.md +++ /dev/null @@ -1,3 +0,0 @@ -# rp2040_ce - -This folder is set as default in the parent rules.mk - it will build firmware compatible with the RP2040 Community Edition. See [here](https://docs.qmk.fm/#/platformdev_rp2040?id=rp2040_ce) for a list. From a4d10e9f64da253ffea326ce4dc9fe2c06298f71 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Wed, 10 Sep 2025 17:33:38 -0600 Subject: [PATCH 049/255] Refactor `40percentclub/gherkin` (#25608) --- data/mappings/keyboard_aliases.hjson | 6 ++ keyboards/40percentclub/gherkin/info.json | 62 ---------------- .../gherkin/kb2040/keyboard.json | 12 --- .../40percentclub/gherkin/kb2040/readme.md | 22 ------ keyboards/40percentclub/gherkin/keyboard.json | 74 +++++++++++++++++++ .../gherkin/keymaps/default/keymap.c | 52 ------------- .../gherkin/keymaps/default/keymap.json | 37 ++++++++++ .../gherkin/pro_micro/keyboard.json | 16 ---- keyboards/40percentclub/gherkin/readme.md | 22 ++++-- 9 files changed, 131 insertions(+), 172 deletions(-) delete mode 100644 keyboards/40percentclub/gherkin/info.json delete mode 100644 keyboards/40percentclub/gherkin/kb2040/keyboard.json delete mode 100644 keyboards/40percentclub/gherkin/kb2040/readme.md create mode 100644 keyboards/40percentclub/gherkin/keyboard.json delete mode 100644 keyboards/40percentclub/gherkin/keymaps/default/keymap.c create mode 100644 keyboards/40percentclub/gherkin/keymaps/default/keymap.json delete mode 100644 keyboards/40percentclub/gherkin/pro_micro/keyboard.json diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index 4f63c5f15f..c958cecbc9 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -1647,6 +1647,12 @@ "25keys/zinc": { "target": "25keys/zinc/rev1" }, + "40percentclub/gherkin/kb2040": { + "target": "40percentclub/gherkin" + }, + "40percentclub/gherkin/pro_micro": { + "target": "40percentclub/gherkin" + }, "40percentclub/i75": { "target": "40percentclub/i75/promicro" }, diff --git a/keyboards/40percentclub/gherkin/info.json b/keyboards/40percentclub/gherkin/info.json deleted file mode 100644 index 644001bc05..0000000000 --- a/keyboards/40percentclub/gherkin/info.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "keyboard_name": "Gherkin", - "manufacturer": "40 Percent Club", - "maintainer": "qmk", - "usb": { - "vid": "0x4025", - "pid": "0x6060", - "device_version": "0.0.1" - }, - "features": { - "bootmagic": true, - "mousekey": true, - "extrakey": true, - "nkro": true, - "backlight": true - }, - "qmk": { - "locking": { - "enabled": true, - "resync": true - } - }, - "community_layouts": ["ortho_3x10"], - "layouts": { - "LAYOUT_ortho_3x10": { - "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": [1, 0], "x": 6, "y": 0}, - {"matrix": [1, 1], "x": 7, "y": 0}, - {"matrix": [1, 2], "x": 8, "y": 0}, - {"matrix": [1, 3], "x": 9, "y": 0}, - - {"matrix": [1, 4], "x": 0, "y": 1}, - {"matrix": [1, 5], "x": 1, "y": 1}, - {"matrix": [2, 0], "x": 2, "y": 1}, - {"matrix": [2, 1], "x": 3, "y": 1}, - {"matrix": [2, 2], "x": 4, "y": 1}, - {"matrix": [2, 3], "x": 5, "y": 1}, - {"matrix": [2, 4], "x": 6, "y": 1}, - {"matrix": [2, 5], "x": 7, "y": 1}, - {"matrix": [3, 0], "x": 8, "y": 1}, - {"matrix": [3, 1], "x": 9, "y": 1}, - - {"matrix": [3, 2], "x": 0, "y": 2}, - {"matrix": [3, 3], "x": 1, "y": 2}, - {"matrix": [3, 4], "x": 2, "y": 2}, - {"matrix": [3, 5], "x": 3, "y": 2}, - {"matrix": [4, 0], "x": 4, "y": 2}, - {"matrix": [4, 1], "x": 5, "y": 2}, - {"matrix": [4, 2], "x": 6, "y": 2}, - {"matrix": [4, 3], "x": 7, "y": 2}, - {"matrix": [4, 4], "x": 8, "y": 2}, - {"matrix": [4, 5], "x": 9, "y": 2} - ] - } - } -} diff --git a/keyboards/40percentclub/gherkin/kb2040/keyboard.json b/keyboards/40percentclub/gherkin/kb2040/keyboard.json deleted file mode 100644 index 431ac371ee..0000000000 --- a/keyboards/40percentclub/gherkin/kb2040/keyboard.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "development_board": "kb2040", - "matrix_pins": { - "cols": ["GP8", "GP7", "GP6", "GP5", "GP4", "GP3"], - "rows": ["GP26", "GP18", "GP20", "GP19", "GP10"] - }, - "diode_direction": "COL2ROW", - "backlight": { - "pin": "GP9", - "driver": "software" - } -} diff --git a/keyboards/40percentclub/gherkin/kb2040/readme.md b/keyboards/40percentclub/gherkin/kb2040/readme.md deleted file mode 100644 index 1fc9e8b18e..0000000000 --- a/keyboards/40percentclub/gherkin/kb2040/readme.md +++ /dev/null @@ -1,22 +0,0 @@ -# Gherkin - -![Gherkin](https://i.imgur.com/XrqqtTq.jpg) -![KB2040](https://cdn-shop.adafruit.com/640x480/5302-12.jpg) - -=== - -A 30 key keyboard with Adafruit's KB2040 as microcontroller. - -* [The original TMK firmware](https://github.com/di0ib/tmk_keyboard/tree/master/keyboard/gherkin) - -Keyboard Maintainer: QMK Community -Hardware Supported: Gherkin PCB & Adafruit KB2040 -Hardware Availability: [Gherkin project on 40% Keyboards](http://www.40percent.club/2016/11/gherkin.html) and [Adafruit KB2040](https://www.adafruit.com/product/5302) - -Make example for this keyboard (after setting up your build environment): - - make 40percentclub/gherkin/kb2040: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). - -Use the KB2040 microcontroller as a drop-in replacement for the Pro Micro in this cute 30% keyboard. diff --git a/keyboards/40percentclub/gherkin/keyboard.json b/keyboards/40percentclub/gherkin/keyboard.json new file mode 100644 index 0000000000..1416997b47 --- /dev/null +++ b/keyboards/40percentclub/gherkin/keyboard.json @@ -0,0 +1,74 @@ +{ + "manufacturer": "40 Percent Club", + "keyboard_name": "Gherkin", + "maintainer": "qmk", + "backlight": { + "pin": "B5" + }, + "development_board": "promicro", + "diode_direction": "COL2ROW", + "features": { + "backlight": true, + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "indicators": { + "caps_lock": "B0", + "num_lock": "D5", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["B4", "E6", "D7", "C6", "D4", "D0"], + "rows": ["F7", "B1", "B3", "B2", "B6"] + }, + "qmk": { + "locking": { + "enabled": true, + "resync": true + } + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x6060", + "vid": "0x4025" + }, + "community_layouts": ["ortho_3x10"], + "layouts": { + "LAYOUT_ortho_3x10": { + "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": [1, 0], "x": 6, "y": 0}, + {"matrix": [1, 1], "x": 7, "y": 0}, + {"matrix": [1, 2], "x": 8, "y": 0}, + {"matrix": [1, 3], "x": 9, "y": 0}, + {"matrix": [1, 4], "x": 0, "y": 1}, + {"matrix": [1, 5], "x": 1, "y": 1}, + {"matrix": [2, 0], "x": 2, "y": 1}, + {"matrix": [2, 1], "x": 3, "y": 1}, + {"matrix": [2, 2], "x": 4, "y": 1}, + {"matrix": [2, 3], "x": 5, "y": 1}, + {"matrix": [2, 4], "x": 6, "y": 1}, + {"matrix": [2, 5], "x": 7, "y": 1}, + {"matrix": [3, 0], "x": 8, "y": 1}, + {"matrix": [3, 1], "x": 9, "y": 1}, + {"matrix": [3, 2], "x": 0, "y": 2}, + {"matrix": [3, 3], "x": 1, "y": 2}, + {"matrix": [3, 4], "x": 2, "y": 2}, + {"matrix": [3, 5], "x": 3, "y": 2}, + {"matrix": [4, 0], "x": 4, "y": 2}, + {"matrix": [4, 1], "x": 5, "y": 2}, + {"matrix": [4, 2], "x": 6, "y": 2}, + {"matrix": [4, 3], "x": 7, "y": 2}, + {"matrix": [4, 4], "x": 8, "y": 2}, + {"matrix": [4, 5], "x": 9, "y": 2} + ] + } + } +} diff --git a/keyboards/40percentclub/gherkin/keymaps/default/keymap.c b/keyboards/40percentclub/gherkin/keymaps/default/keymap.c deleted file mode 100644 index 8c28b68afa..0000000000 --- a/keyboards/40percentclub/gherkin/keymaps/default/keymap.c +++ /dev/null @@ -1,52 +0,0 @@ -#include QMK_KEYBOARD_H - -#define FN1_SPC LT(1, KC_SPC) -#define FN2_BSPC LT(2, KC_BSPC) -#define FN3_C LT(3, KC_C) -#define FN4_V LT(4, KC_V) -#define FN5_B LT(5, KC_B) -#define CTL_Z CTL_T(KC_Z) -#define ALT_X ALT_T(KC_X) -#define ALT_N ALGR_T(KC_N) -#define CTL_M RCTL_T(KC_M) -#define SFT_ENT RSFT_T(KC_ENT) - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - - [0] = LAYOUT_ortho_3x10( - 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_ESC, - CTL_Z, ALT_X, FN3_C, FN4_V, FN2_BSPC,FN1_SPC, FN5_B, ALT_N, CTL_M, SFT_ENT - ), - - [1] = LAYOUT_ortho_3x10( - KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, - _______, _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______ - ), - - [2] = LAYOUT_ortho_3x10( - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, - KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, KC_GRV, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [3] = LAYOUT_ortho_3x10( - _______, _______, _______, _______, _______, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS, - KC_TAB, _______, _______, _______, _______, KC_COMM, KC_DOT, KC_SLSH, KC_SCLN, KC_QUOT, - _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), - - [4] = LAYOUT_ortho_3x10( - _______, _______, _______, _______, _______, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_PIPE, - KC_TAB, _______, _______, _______, _______, KC_LABK, KC_RABK, KC_QUES, KC_COLN, KC_DQUO, - _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_PGUP, KC_END - ), - - [5] = LAYOUT_ortho_3x10( - KC_CALC, KC_WHOM, KC_MAIL, KC_MYCM, _______, _______, _______, _______, _______, KC_PSCR, - _______, _______, _______, _______, _______, _______, _______, _______, BL_DOWN, BL_UP, - _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______ - ) - -}; diff --git a/keyboards/40percentclub/gherkin/keymaps/default/keymap.json b/keyboards/40percentclub/gherkin/keymaps/default/keymap.json new file mode 100644 index 0000000000..e81a6fd8f5 --- /dev/null +++ b/keyboards/40percentclub/gherkin/keymaps/default/keymap.json @@ -0,0 +1,37 @@ +{ + "keyboard": "40percentclub/gherkin", + "keymap": "default", + "layout": "LAYOUT_ortho_3x10", + "layers": [ + [ + "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_ESC", + "CTL_T(KC_Z)", "ALT_T(KC_X)", "LT(3, KC_C)", "LT(4, KC_V)", "LT(2, KC_BSPC)", "LT(1, KC_SPC)", "LT(5, KC_B)", "ALGR_T(KC_N)", "RCTL_T(KC_M)", "RSFT_T(KC_ENT)" + ], + [ + "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", + "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", + "_______", "_______", "_______", "_______", "KC_DEL", "_______", "_______", "_______", "_______", "_______" + ], + [ + "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_LPRN", "KC_RPRN", + "KC_F11", "KC_F12", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_GRV", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" + ], + [ + "_______", "_______", "_______", "_______", "_______", "KC_MINS", "KC_EQL", "KC_LBRC", "KC_RBRC", "KC_BSLS", + "KC_TAB", "_______", "_______", "_______", "_______", "KC_COMM", "KC_DOT", "KC_SLSH", "KC_SCLN", "KC_QUOT", + "_______", "_______", "_______", "_______", "_______", "_______", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT" + ], + [ + "_______", "_______", "_______", "_______", "_______", "KC_UNDS", "KC_PLUS", "KC_LCBR", "KC_RCBR", "KC_PIPE", + "KC_TAB", "_______", "_______", "_______", "_______", "KC_LABK", "KC_RABK", "KC_QUES", "KC_COLN", "KC_DQUO", + "_______", "_______", "_______", "_______", "_______", "_______", "KC_HOME", "KC_PGDN", "KC_PGUP", "KC_END" + ], + [ + "KC_CALC", "KC_WHOM", "KC_MAIL", "KC_MYCM", "_______", "_______", "_______", "_______", "_______", "KC_PSCR", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "BL_DOWN", "BL_UP", + "_______", "_______", "_______", "_______", "QK_BOOT", "_______", "_______", "_______", "_______", "_______" + ] + ] +} diff --git a/keyboards/40percentclub/gherkin/pro_micro/keyboard.json b/keyboards/40percentclub/gherkin/pro_micro/keyboard.json deleted file mode 100644 index 882ea8f72b..0000000000 --- a/keyboards/40percentclub/gherkin/pro_micro/keyboard.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "development_board": "promicro", - "matrix_pins": { - "cols": ["B4", "E6", "D7", "C6", "D4", "D0"], - "rows": ["F7", "B1", "B3", "B2", "B6"] - }, - "diode_direction": "COL2ROW", - "indicators": { - "num_lock": "D5", - "caps_lock": "B0", - "on_state": 0 - }, - "backlight": { - "pin": "B5" - } -} diff --git a/keyboards/40percentclub/gherkin/readme.md b/keyboards/40percentclub/gherkin/readme.md index 7404f19819..5ce4d173ca 100644 --- a/keyboards/40percentclub/gherkin/readme.md +++ b/keyboards/40percentclub/gherkin/readme.md @@ -1,21 +1,27 @@ # Gherkin ![Gherkin](https://i.imgur.com/XrqqtTq.jpg) -=== A 30 key keyboard. -* [The original TMK firmware](https://github.com/di0ib/tmk_keyboard/tree/master/keyboard/gherkin) - -Keyboard Maintainer: QMK Community -Hardware Supported: Gherkin PCB -Hardware Availability: [Gherkin project on 40% Keyboards](http://www.40percent.club/2016/11/gherkin.html) +* Keyboard Maintainer: QMK Community +* Hardware Supported: Gherkin PCB w/ Pro Micro compatible development board +* Hardware Availability: [Gherkin project on 40% Keyboards](http://www.40percent.club/2016/11/gherkin.html) Make example for this keyboard (after setting up your build environment): make 40percentclub/gherkin:default +Flashing example for this keyboard: + + make 40percentclub/gherkin: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). -First pass at adding support for the gherkin keyboard. Compiles but completely -untested. Intended to kick-start development. +## Bootloader + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix and plug in the keyboard +* **Physical reset**: Short the Ground and Reset pins on the microcontroller +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From f8d677af88eb5bcfc061ef1c3ec1d4cf0d8c3d57 Mon Sep 17 00:00:00 2001 From: "Christian C. Berclaz" Date: Thu, 11 Sep 2025 10:19:10 +0200 Subject: [PATCH 050/255] Add D60B tsangan pcb (#25245) Co-authored-by: Joel Challis Co-authored-by: Drashna Jaelre --- keyboards/kbdfans/d60b/keyboard.json | 215 ++++++++++++++++++ .../kbdfans/d60b/keymaps/default/keymap.c | 37 +++ keyboards/kbdfans/d60b/readme.md | 26 +++ 3 files changed, 278 insertions(+) create mode 100644 keyboards/kbdfans/d60b/keyboard.json create mode 100644 keyboards/kbdfans/d60b/keymaps/default/keymap.c create mode 100644 keyboards/kbdfans/d60b/readme.md diff --git a/keyboards/kbdfans/d60b/keyboard.json b/keyboards/kbdfans/d60b/keyboard.json new file mode 100644 index 0000000000..817cc6f504 --- /dev/null +++ b/keyboards/kbdfans/d60b/keyboard.json @@ -0,0 +1,215 @@ +{ + "manufacturer": "KBDfans", + "keyboard_name": "D60B", + "maintainer": "chrisgve", + "bootloader": "atmel-dfu", + "community_layouts": ["60_ansi_tsangan_split_bs_rshift"], + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["F0", "F1", "F5", "F4", "E6", "B7", "D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4"], + "rows": ["C7", "C6", "B6", "B5", "F6"] + }, + "processor": "atmega32u4", + "qmk": { + "locking": { + "enabled": true + } + }, + "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 + }, + "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": 208, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 7], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 176, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4} + ], + "max_brightness": 200, + "sleep": true + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x1600", + "vid": "0xCA04" + }, + "ws2812": { + "pin": "F7" + }, + "layouts": { + "LAYOUT_60_ansi_tsangan_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, 2], "x": 1.5, "y": 1}, + {"matrix": [1, 3], "x": 2.5, "y": 1}, + {"matrix": [1, 4], "x": 3.5, "y": 1}, + {"matrix": [1, 5], "x": 4.5, "y": 1}, + {"matrix": [1, 6], "x": 5.5, "y": 1}, + {"matrix": [1, 7], "x": 6.5, "y": 1}, + {"matrix": [1, 8], "x": 7.5, "y": 1}, + {"matrix": [1, 9], "x": 8.5, "y": 1}, + {"matrix": [1, 10], "x": 9.5, "y": 1}, + {"matrix": [1, 11], "x": 10.5, "y": 1}, + {"matrix": [1, 12], "x": 11.5, "y": 1}, + {"matrix": [1, 13], "x": 12.5, "y": 1}, + {"matrix": [1, 14], "x": 13.5, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"matrix": [2, 2], "x": 1.75, "y": 2}, + {"matrix": [2, 3], "x": 2.75, "y": 2}, + {"matrix": [2, 4], "x": 3.75, "y": 2}, + {"matrix": [2, 5], "x": 4.75, "y": 2}, + {"matrix": [2, 6], "x": 5.75, "y": 2}, + {"matrix": [2, 7], "x": 6.75, "y": 2}, + {"matrix": [2, 8], "x": 7.75, "y": 2}, + {"matrix": [2, 9], "x": 8.75, "y": 2}, + {"matrix": [2, 10], "x": 9.75, "y": 2}, + {"matrix": [2, 11], "x": 10.75, "y": 2}, + {"matrix": [2, 12], "x": 11.75, "y": 2}, + {"matrix": [2, 14], "x": 12.75, "y": 2, "w": 2.25}, + {"matrix": [3, 1], "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, 13], "x": 12.25, "y": 3, "w": 1.75}, + {"matrix": [3, 14], "x": 14, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"matrix": [4, 2], "x": 1.5, "y": 4}, + {"matrix": [4, 3], "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, 13], "x": 12.5, "y": 4}, + {"matrix": [4, 14], "x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/kbdfans/d60b/keymaps/default/keymap.c b/keyboards/kbdfans/d60b/keymaps/default/keymap.c new file mode 100644 index 0000000000..d0a47b0d2f --- /dev/null +++ b/keyboards/kbdfans/d60b/keymaps/default/keymap.c @@ -0,0 +1,37 @@ +/* Copyright 2025 chrisgve + * + * 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 + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0]=LAYOUT_60_ansi_tsangan_split_bs_rshift( + 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_GRAVE, 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, MO(1), + KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL + ), + + [1]=LAYOUT_60_ansi_tsangan_split_bs_rshift( + 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, + RM_TOGG, RM_NEXT, RM_PREV, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RM_SPDU, RM_SPDD, _______, QK_BOOT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______ + ) +}; +//clang-format on diff --git a/keyboards/kbdfans/d60b/readme.md b/keyboards/kbdfans/d60b/readme.md new file mode 100644 index 0000000000..903a52019f --- /dev/null +++ b/keyboards/kbdfans/d60b/readme.md @@ -0,0 +1,26 @@ +# KBDfans D60B + +Customizable 60% Tsangan Hotswap by PCB by [KBDfans](https://kbdfans.com). +This board has also, at times, been referred to as the Sun60, but the name on the PCB is D60 B. + +- Keyboard Maintainer: [chrisgve](https://github.com/chrisgve) +- Hardware Supported: KBDfans D60B +- Hardware Availability: no longer available for sale + +Make example for this keyboard (after setting up your build environment): + + make kbdfans/d60b:default + +The keyboard uses a DFU bootloader. To make a keymap and use dfu to flash it: + + make kbdfans/d60b: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**: Short the two pads close to the position of the caps lock key +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 74b0f054c1850baab3a4a66b6296ebe240a6b7ae Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Thu, 11 Sep 2025 11:34:10 -0600 Subject: [PATCH 051/255] Migrate `g_led_config` to DD (YZ) (#25650) --- keyboards/yandrstudio/nz64/keyboard.json | 84 +++++++++++++++++++++ keyboards/yandrstudio/nz64/nz64.c | 34 --------- keyboards/yandrstudio/nz67v2/keyboard.json | 88 ++++++++++++++++++++++ keyboards/yandrstudio/nz67v2/nz67v2.c | 30 -------- keyboards/yandrstudio/tg67/keyboard.json | 71 +++++++++++++++++ keyboards/yandrstudio/tg67/tg67.c | 46 ----------- keyboards/yanghu/unicorne/info.json | 12 ++- keyboards/yanghu/unicorne/unicorne.c | 31 -------- keyboards/ymdk/ymd40/air40/air40.c | 43 ----------- keyboards/ymdk/ymd40/air40/keyboard.json | 53 +++++++++++++ keyboards/yncognito/batpad/batpad.c | 35 --------- keyboards/yncognito/batpad/keyboard.json | 10 +++ keyboards/yushakobo/quick17/keyboard.json | 20 +++++ keyboards/yushakobo/quick17/quick17.c | 37 --------- keyboards/zykrah/fuyu/fuyu.c | 46 ----------- keyboards/zykrah/fuyu/keyboard.json | 43 +++++++++++ 16 files changed, 380 insertions(+), 303 deletions(-) delete mode 100644 keyboards/yandrstudio/tg67/tg67.c delete mode 100644 keyboards/ymdk/ymd40/air40/air40.c delete mode 100644 keyboards/yncognito/batpad/batpad.c delete mode 100644 keyboards/yushakobo/quick17/quick17.c delete mode 100644 keyboards/zykrah/fuyu/fuyu.c diff --git a/keyboards/yandrstudio/nz64/keyboard.json b/keyboards/yandrstudio/nz64/keyboard.json index 8c36b73c1e..e7c879ca36 100644 --- a/keyboards/yandrstudio/nz64/keyboard.json +++ b/keyboards/yandrstudio/nz64/keyboard.json @@ -59,6 +59,90 @@ }, "center_point": [96, 32], "driver": "ws2812", + "layout": [ + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 207, "y": 64, "flags": 4}, + {"matrix": [4, 11], "x": 190, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 172, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 155, "y": 64, "flags": 4}, + {"x": 121, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 86, "y": 64, "flags": 4}, + {"x": 52, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 34, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 17, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [3, 13], "x": 224, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 207, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 190, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 172, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 155, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 121, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 103, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 86, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 69, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 34, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 17, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [2, 13], "x": 224, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 190, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 155, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 138, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 121, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 103, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 69, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 52, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 34, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 17, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [1, 13], "x": 224, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 207, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 190, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 155, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 138, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 121, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 103, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 86, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 69, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 34, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 17, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [0, 13], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 207, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 190, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 172, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 155, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 138, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 121, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 103, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 86, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 69, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 52, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 34, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 37, "y": 0, "flags": 2}, + {"x": 75, "y": 0, "flags": 2}, + {"x": 112, "y": 0, "flags": 2}, + {"x": 149, "y": 0, "flags": 2}, + {"x": 187, "y": 0, "flags": 2}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 0, "y": 32, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 187, "y": 64, "flags": 2}, + {"x": 149, "y": 64, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 75, "y": 64, "flags": 2}, + {"x": 37, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 224, "y": 32, "flags": 2} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/yandrstudio/nz64/nz64.c b/keyboards/yandrstudio/nz64/nz64.c index 928b0b5114..6bd3e08fbf 100644 --- a/keyboards/yandrstudio/nz64/nz64.c +++ b/keyboards/yandrstudio/nz64/nz64.c @@ -23,40 +23,6 @@ typedef union { } kb_cums_t; kb_cums_t kb_cums; -led_config_t g_led_config = { - { - { 65, 64, 63, 62, 61, 60, 59, 58, 57, 56, 55, 54, 53, 52 }, - { 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39, 38 }, - { 37, 36, 35, 34, 33, 32, 31, 30, 29, 28, 27, 26, NO_LED, 25 }, - { 24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11 }, - { 10, 9, 8, NO_LED, NO_LED, 6, NO_LED, NO_LED, NO_LED, 4, 3, 2, 1, 0 } - }, - { - /* LED Index to Physical Position */ - {224,64},{207,64},{190,64},{172,64},{155,64}, {121,64}, {86,64}, {52,64}, {34,64},{17,64},{0,64}, - {224,48},{207,48},{190,48},{172,48},{155,48},{138,48},{121,48},{103,48},{86,48},{69,48},{52,48},{34,48},{17,48},{0,48}, - {224,32},{190,32},{172,32},{155,32},{138,32},{121,32},{103,32},{86,32},{69,32},{52,32},{34,32},{17,32},{0,32}, - {224,16},{207,16},{190,16},{172,16},{155,16},{138,16},{121,16},{103,16},{86,16},{69,16},{52,16},{34,16},{17,16},{0,16}, - {224,0},{207,0},{190,0},{172,0},{155,0},{138,0},{121,0},{103,0},{86,0},{69,0},{52,0},{34,0},{17,0},{0,0}, - {0,0},{37,0},{75,0},{112,0},{149,0},{187,0},{224,0}, - {0,32}, - {224,64},{187,64},{149,64},{112,64},{75,64},{37,64},{0,64}, - {224,32} - }, - { - /* LED Index to Flag */ - 4,4,4,4,4, 4,4,4,4,4, - 4,4,4,4,4, 4,4,4,4,4, - 4,4,4,4,4, 4,4,4,4,4, - 4,4,4,4,4, 4,4,4,4,4, - 4,4,4,4,4, 4,4,4,4,4, - 4,4,4,4,4, 4,4,4,4,4, - 4,4,4,4,4, 4, - 2,2,2,2,2, 2,2,2,2,2, - 2,2,2,2,2, 2 - } -}; - 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; diff --git a/keyboards/yandrstudio/nz67v2/keyboard.json b/keyboards/yandrstudio/nz67v2/keyboard.json index fc931f3427..56de8d8b87 100644 --- a/keyboards/yandrstudio/nz67v2/keyboard.json +++ b/keyboards/yandrstudio/nz67v2/keyboard.json @@ -65,6 +65,94 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 7], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 144, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 208, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"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": 208, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"x": 224, "y": 0, "flags": 2}, + {"x": 196, "y": 0, "flags": 2}, + {"x": 168, "y": 0, "flags": 2}, + {"x": 140, "y": 0, "flags": 2}, + {"x": 112, "y": 0, "flags": 2}, + {"x": 84, "y": 0, "flags": 2}, + {"x": 56, "y": 0, "flags": 2}, + {"x": 28, "y": 0, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 196, "y": 64, "flags": 2}, + {"x": 168, "y": 64, "flags": 2}, + {"x": 140, "y": 64, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 84, "y": 64, "flags": 2}, + {"x": 56, "y": 64, "flags": 2}, + {"x": 28, "y": 64, "flags": 2} + ], "max_brightness": 180, "sleep": true }, diff --git a/keyboards/yandrstudio/nz67v2/nz67v2.c b/keyboards/yandrstudio/nz67v2/nz67v2.c index c3162dd961..22f3570607 100644 --- a/keyboards/yandrstudio/nz67v2/nz67v2.c +++ b/keyboards/yandrstudio/nz67v2/nz67v2.c @@ -24,36 +24,6 @@ typedef union { } kb_cums_t; kb_cums_t kb_cums; -led_config_t g_led_config = { - { - {54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68}, - {53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39}, - {25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, NO_LED, 37, 38}, - {24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, NO_LED, 13, 12, 11}, - {0, 1, 2, 3, NO_LED, 4, NO_LED, 5, NO_LED, 6, 7, NO_LED, 8, 9, 10} - }, - { - {0,64},{16,64},{32,64},{48,64}, {80,64}, {112,64}, {144,64},{160,64}, {192,64},{208,64},{224,64}, - {224,48},{208,48},{192,48}, {160,48},{144,48},{128,48},{112,48},{96,48},{80,48},{64,48},{48,48},{32,48},{16,48},{0,48}, - {0,32},{16,32},{32,32},{48,32},{64,32},{80,32},{96,32},{112,32},{128,32},{144,32},{160,32},{176,32}, {208,32},{224,32}, - {224,16},{208,16},{192,16},{176,16},{160,16},{144,16},{128,16},{112,16},{96,16},{80,16},{64,16},{48,16},{32,16},{16,16},{0,16}, - {0,0},{16,0},{32,0},{48,0},{64,0},{80,0},{96,0},{112,0},{128,0},{144,0},{160,0},{176,0},{192,0},{208,0},{224,0}, - {224,0},{196,0},{168,0},{140,0},{112,0},{84,0},{56,0},{28,0},{0,0}, - {224,64},{196,64},{168,64},{140,64},{112,64},{84,64},{56,64},{28,64} - }, - { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2 - } -}; - 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; diff --git a/keyboards/yandrstudio/tg67/keyboard.json b/keyboards/yandrstudio/tg67/keyboard.json index 8a1df37805..924b1ec689 100644 --- a/keyboards/yandrstudio/tg67/keyboard.json +++ b/keyboards/yandrstudio/tg67/keyboard.json @@ -64,6 +64,77 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 32, "y": 64, "flags": 4}, + {"x": 48, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 80, "y": 64, "flags": 4}, + {"x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 144, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 160, "y": 64, "flags": 4}, + {"matrix": [4, 12], "x": 192, "y": 64, "flags": 4}, + {"matrix": [4, 13], "x": 208, "y": 64, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 208, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 208, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"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": 208, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4} + ], "max_brightness": 250, "sleep": true }, diff --git a/keyboards/yandrstudio/tg67/tg67.c b/keyboards/yandrstudio/tg67/tg67.c deleted file mode 100644 index 5384778a68..0000000000 --- a/keyboards/yandrstudio/tg67/tg67.c +++ /dev/null @@ -1,46 +0,0 @@ -/* Copyright 2022 JasonRen(biu) - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - -led_config_t g_led_config = { - { - {54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68}, - {53, 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40, 39}, - {25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, NO_LED, 37, 38}, - {24, 23, 22, 21, 20, 19, 18, 17, 16, 15, 14, NO_LED, 13, 12, 11}, - {0, 1, 2, NO_LED, NO_LED, 4, NO_LED, NO_LED, NO_LED, 6, 7, NO_LED, 8, 9, 10} - }, - { - {0,64},{16,64},{32,64},{48,64}, {80,64}, {112,64}, {144,64},{160,64}, {192,64},{208,64},{224,64}, - {224,48},{208,48},{192,48}, {160,48},{144,48},{128,48},{112,48},{96,48},{80,48},{64,48},{48,48},{32,48},{16,48},{0,48}, - {0,32},{16,32},{32,32},{48,32},{64,32},{80,32},{96,32},{112,32},{128,32},{144,32},{160,32},{176,32}, {208,32},{224,32}, - {224,16},{208,16},{192,16},{176,16},{160,16},{144,16},{128,16},{112,16},{96,16},{80,16},{64,16},{48,16},{32,16},{16,16},{0,16}, - {0,0},{16,0},{32,0},{48,0},{64,0},{80,0},{96,0},{112,0},{128,0},{144,0},{160,0},{176,0},{192,0},{208,0},{224,0} - }, - { - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4 - } -}; - -#endif diff --git a/keyboards/yanghu/unicorne/info.json b/keyboards/yanghu/unicorne/info.json index 1b890dcaba..838f9d330e 100644 --- a/keyboards/yanghu/unicorne/info.json +++ b/keyboards/yanghu/unicorne/info.json @@ -41,7 +41,17 @@ "driver": "pwm" }, "rgb_matrix": { - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [3, 5], "x": 94, "y": 60, "flags": 255}, + {"matrix": [2, 2], "x": 18, "y": 44, "flags": 255}, + {"matrix": [1, 2], "x": 8, "y": 10, "flags": 255}, + {"matrix": [1, 5], "x": 94, "y": 10, "flags": 255}, + {"matrix": [1, 8], "x": 130, "y": 10, "flags": 255}, + {"matrix": [1, 11], "x": 216, "y": 10, "flags": 255}, + {"matrix": [2, 11], "x": 208, "y": 44, "flags": 255}, + {"matrix": [3, 8], "x": 130, "y": 60, "flags": 255} + ] }, "matrix_pins": { "cols": ["A14", "A15", "B13", "B14", "B15", "A13", "A0", "A1", "A2", "A3", "A6", "A7"], diff --git a/keyboards/yanghu/unicorne/unicorne.c b/keyboards/yanghu/unicorne/unicorne.c index bce8f52075..e1d173d8c5 100644 --- a/keyboards/yanghu/unicorne/unicorne.c +++ b/keyboards/yanghu/unicorne/unicorne.c @@ -33,37 +33,6 @@ void i2c_init(void) { } } -// LED matrix -// physical location -// 2 3 4 5 -// -// 1 6 -// 0 7 -#ifdef RGB_MATRIX_ENABLE -// clang-format off -led_config_t g_led_config = {{ - // Key Matrix to LED Index - // Since we only have 8 LEDs, map the keys near them to the same LED. - {2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5}, - {2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 5, 5}, - {1, 1, 1, 0, 0, 0, 7, 7, 7, 6, 6, 6}, - {NO_LED, NO_LED, NO_LED, 0, 0, 0, 7, 7, 7, NO_LED, NO_LED, NO_LED}, -}, {// LED Index to Physical Position - {94, 60}, - {18, 44}, - {8, 10}, - {94, 10}, - {130,10}, - {216, 10}, - {208, 44}, - {130, 60} -}, {// LED Index to Flag - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL, - LED_FLAG_ALL, LED_FLAG_ALL, LED_FLAG_ALL -}}; -// clang-format on -#endif - #ifdef OLED_ENABLE // OLED shared code // The oled is vertical. Need to rotate 270 degrees. diff --git a/keyboards/ymdk/ymd40/air40/air40.c b/keyboards/ymdk/ymd40/air40/air40.c deleted file mode 100644 index 633b4943ff..0000000000 --- a/keyboards/ymdk/ymd40/air40/air40.c +++ /dev/null @@ -1,43 +0,0 @@ -/* Copyright 2022 Dennis Kruyt (dennis@kruyt.org) - * - * 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 "quantum.h" - -#if defined(RGB_MATRIX_ENABLE) -led_config_t g_led_config = { - { - // Key Matrix to LED Index for center 2u - {11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0}, - {23, 22, 21, 20, 19, 18, 17, 16, 15, 14, 13, 12}, - {35, 34, 33, 32, 31, 30, 29, 28, 27, 26, 25, 24}, - {50, 49, 48, 47, 46, 43, 41, 40, 39, 38, 37, 36} - }, { - // LED Index to Physical Position, more positions due to extra leds for other layout options - { 0, 0}, { 20, 0}, { 40, 0}, {61, 0}, {81, 0}, {101, 0}, {122, 0}, {142, 0}, {162, 0}, {183, 0}, {203, 0}, {224, 0}, - { 0, 21}, { 20, 21}, { 40, 21}, {61, 21}, {81, 21}, {101, 21}, {122, 21}, {142, 21}, {162, 21}, {183, 21}, {203, 21}, {224, 21}, - { 0, 42}, { 20, 42}, { 40, 42}, {61, 42}, {81, 42}, {101, 42}, {122, 42}, {142, 42}, {162, 42}, {183, 42}, {203, 42}, {224, 42}, - { 0, 64}, { 20, 64}, { 40, 64}, {61, 64}, {81, 64}, {85, 64}, {94, 64}, {103, 64}, {112, 64}, {122, 64}, {142, 64}, {162, 64}, {183, 64}, {203, 64}, {224, 64} - - }, { - // LED Index to Flag - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1 ,1 ,1, 1, 1, 1, 1, 1, 1, 1 - - } -}; -#endif diff --git a/keyboards/ymdk/ymd40/air40/keyboard.json b/keyboards/ymdk/ymd40/air40/keyboard.json index 0adc965cc7..ea21557423 100644 --- a/keyboards/ymdk/ymd40/air40/keyboard.json +++ b/keyboards/ymdk/ymd40/air40/keyboard.json @@ -60,6 +60,59 @@ "solid_multisplash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 11], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 61, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 101, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 122, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 142, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 162, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 183, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 203, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 11], "x": 0, "y": 21, "flags": 1}, + {"matrix": [1, 10], "x": 20, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 40, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 61, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 81, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 101, "y": 21, "flags": 4}, + {"matrix": [1, 5], "x": 122, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 142, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 162, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 183, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 203, "y": 21, "flags": 4}, + {"matrix": [1, 0], "x": 224, "y": 21, "flags": 1}, + {"matrix": [2, 11], "x": 0, "y": 42, "flags": 1}, + {"matrix": [2, 10], "x": 20, "y": 42, "flags": 4}, + {"matrix": [2, 9], "x": 40, "y": 42, "flags": 4}, + {"matrix": [2, 8], "x": 61, "y": 42, "flags": 4}, + {"matrix": [2, 7], "x": 81, "y": 42, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 42, "flags": 4}, + {"matrix": [2, 5], "x": 122, "y": 42, "flags": 4}, + {"matrix": [2, 4], "x": 142, "y": 42, "flags": 4}, + {"matrix": [2, 3], "x": 162, "y": 42, "flags": 4}, + {"matrix": [2, 2], "x": 183, "y": 42, "flags": 4}, + {"matrix": [2, 1], "x": 203, "y": 42, "flags": 4}, + {"matrix": [2, 0], "x": 224, "y": 42, "flags": 1}, + {"matrix": [3, 11], "x": 0, "y": 64, "flags": 1}, + {"matrix": [3, 10], "x": 20, "y": 64, "flags": 1}, + {"matrix": [3, 9], "x": 40, "y": 64, "flags": 1}, + {"matrix": [3, 8], "x": 61, "y": 64, "flags": 1}, + {"matrix": [3, 7], "x": 81, "y": 64, "flags": 1}, + {"matrix": [3, 6], "x": 85, "y": 64, "flags": 1}, + {"x": 94, "y": 64, "flags": 1}, + {"matrix": [3, 5], "x": 103, "y": 64, "flags": 1}, + {"x": 112, "y": 64, "flags": 1}, + {"x": 122, "y": 64, "flags": 1}, + {"matrix": [3, 4], "x": 142, "y": 64, "flags": 1}, + {"matrix": [3, 3], "x": 162, "y": 64, "flags": 1}, + {"matrix": [3, 2], "x": 183, "y": 64, "flags": 1}, + {"matrix": [3, 1], "x": 203, "y": 64, "flags": 1}, + {"matrix": [3, 0], "x": 224, "y": 64, "flags": 1} + ], "max_brightness": 130, "sleep": true }, diff --git a/keyboards/yncognito/batpad/batpad.c b/keyboards/yncognito/batpad/batpad.c deleted file mode 100644 index d5eef4246d..0000000000 --- a/keyboards/yncognito/batpad/batpad.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2020 Yncognito - * - * 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 "quantum.h" - - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config ={ - { - {4 ,5 ,6 ,7 }, - {0 ,1 ,2 ,3 } - }, - { - {0,0},{75,0},{145,0},{224,0}, - {0,64},{75,64},{145,64},{224,64} - }, - { - 0x04,0x04,0x04,0x04, - 0x04,0x04,0x04,0x04 - } -}; - -#endif diff --git a/keyboards/yncognito/batpad/keyboard.json b/keyboards/yncognito/batpad/keyboard.json index 3e62042a4e..02e480ca22 100644 --- a/keyboards/yncognito/batpad/keyboard.json +++ b/keyboards/yncognito/batpad/keyboard.json @@ -60,6 +60,16 @@ "animation": "cycle_all" }, "driver": "ws2812", + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 75, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 145, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [0, 1], "x": 75, "y": 64, "flags": 4}, + {"matrix": [0, 2], "x": 145, "y": 64, "flags": 4}, + {"matrix": [0, 3], "x": 224, "y": 64, "flags": 4} + ], "react_on_keyup": true }, "features": { diff --git a/keyboards/yushakobo/quick17/keyboard.json b/keyboards/yushakobo/quick17/keyboard.json index 627642a179..621bbf810a 100644 --- a/keyboards/yushakobo/quick17/keyboard.json +++ b/keyboards/yushakobo/quick17/keyboard.json @@ -18,6 +18,26 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [1, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [1, 1], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [2, 1], "x": 44, "y": 64, "flags": 4}, + {"matrix": [2, 2], "x": 89, "y": 64, "flags": 4}, + {"matrix": [2, 3], "x": 134, "y": 64, "flags": 4}, + {"matrix": [2, 4], "x": 179, "y": 64, "flags": 4}, + {"matrix": [2, 5], "x": 224, "y": 64, "flags": 4}, + {"matrix": [1, 5], "x": 224, "y": 32, "flags": 4}, + {"matrix": [1, 4], "x": 179, "y": 32, "flags": 4}, + {"matrix": [1, 3], "x": 134, "y": 32, "flags": 4}, + {"matrix": [1, 2], "x": 89, "y": 32, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 44, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 89, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 134, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 179, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 224, "y": 0, "flags": 4} + ], "max_brightness": 150, "sat_steps": 8, "sleep": true, diff --git a/keyboards/yushakobo/quick17/quick17.c b/keyboards/yushakobo/quick17/quick17.c deleted file mode 100644 index d6fe84199b..0000000000 --- a/keyboards/yushakobo/quick17/quick17.c +++ /dev/null @@ -1,37 +0,0 @@ -/* Copyright 2021 yushakobo - * - * 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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - {12, 13, 14, 15, 16, 17}, - {0, 1, 11, 10, 9, 8}, - {2, 3, 4, 5, 6, 7} - }, - { - {0,32}, {44,32}, {0,64}, {44,64}, {89,64}, {134,64}, - {179,64},{224,64},{224,32},{179,32},{134,32},{89,32}, - {0,0}, {44,0}, {89,0}, {134,0}, {179,0}, {224,0} - }, - { - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4 - } -}; -#endif diff --git a/keyboards/zykrah/fuyu/fuyu.c b/keyboards/zykrah/fuyu/fuyu.c deleted file mode 100644 index ea1e048a64..0000000000 --- a/keyboards/zykrah/fuyu/fuyu.c +++ /dev/null @@ -1,46 +0,0 @@ -/* -Copyright 2022 Zykrah - -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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { - { - // Key Matrix to LED Index - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED}, - {NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED, NO_LED} - }, { - // LED Index to Physical Position - {112, 32}, {138, 17}, {112, 2}, { 86, 17}, { 86, 47}, {112, 62}, {138, 47}, // SNOWFLAKE - { 0, 0}, { 16, 0}, { 32, 0}, { 48, 0}, { 64, 0}, { 80, 0}, { 96, 0}, {112, 0}, {128, 0}, {144, 0}, {160, 0}, {176, 0}, {192, 0}, {208, 0}, // UNDERGLOW - {208, 16}, {208, 32}, {208, 48}, // UNDERGLOW - {208, 64}, {192, 64}, {176, 64}, {160, 64}, {144, 64}, {128, 64}, {112, 64}, { 96, 64}, { 80, 64}, { 64, 64}, { 48, 64}, { 32, 64}, { 16, 64}, { 0, 64}, // UNDERGLOW - { 0, 48}, { 0, 32}, { 0, 16} // UNDERGLOW - }, { - // LED Index to Flag - 8, 8, 8, 8, 8, 8, 8, // SNOWFLAKE - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // UNDERGLOW - 2, 2, 2, // UNDERGLOW - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // UNDERGLOW - 2, 2, 2 // UNDERGLOW - } -}; -#endif diff --git a/keyboards/zykrah/fuyu/keyboard.json b/keyboards/zykrah/fuyu/keyboard.json index db4236b698..eafc92c1d2 100644 --- a/keyboards/zykrah/fuyu/keyboard.json +++ b/keyboards/zykrah/fuyu/keyboard.json @@ -60,6 +60,49 @@ "val": 150 }, "driver": "ws2812", + "layout": [ + {"x": 112, "y": 32, "flags": 8}, + {"x": 138, "y": 17, "flags": 8}, + {"x": 112, "y": 2, "flags": 8}, + {"x": 86, "y": 17, "flags": 8}, + {"x": 86, "y": 47, "flags": 8}, + {"x": 112, "y": 62, "flags": 8}, + {"x": 138, "y": 47, "flags": 8}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 16, "y": 0, "flags": 2}, + {"x": 32, "y": 0, "flags": 2}, + {"x": 48, "y": 0, "flags": 2}, + {"x": 64, "y": 0, "flags": 2}, + {"x": 80, "y": 0, "flags": 2}, + {"x": 96, "y": 0, "flags": 2}, + {"x": 112, "y": 0, "flags": 2}, + {"x": 128, "y": 0, "flags": 2}, + {"x": 144, "y": 0, "flags": 2}, + {"x": 160, "y": 0, "flags": 2}, + {"x": 176, "y": 0, "flags": 2}, + {"x": 192, "y": 0, "flags": 2}, + {"x": 208, "y": 0, "flags": 2}, + {"x": 208, "y": 16, "flags": 2}, + {"x": 208, "y": 32, "flags": 2}, + {"x": 208, "y": 48, "flags": 2}, + {"x": 208, "y": 64, "flags": 2}, + {"x": 192, "y": 64, "flags": 2}, + {"x": 176, "y": 64, "flags": 2}, + {"x": 160, "y": 64, "flags": 2}, + {"x": 144, "y": 64, "flags": 2}, + {"x": 128, "y": 64, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 96, "y": 64, "flags": 2}, + {"x": 80, "y": 64, "flags": 2}, + {"x": 64, "y": 64, "flags": 2}, + {"x": 48, "y": 64, "flags": 2}, + {"x": 32, "y": 64, "flags": 2}, + {"x": 16, "y": 64, "flags": 2}, + {"x": 0, "y": 64, "flags": 2}, + {"x": 0, "y": 48, "flags": 2}, + {"x": 0, "y": 32, "flags": 2}, + {"x": 0, "y": 16, "flags": 2} + ], "max_brightness": 200 }, "ws2812": { From 4a4e4aa083db1752400ab84eade2a5b884cdc136 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 12 Sep 2025 08:12:48 +0100 Subject: [PATCH 052/255] Remove idobao *_DISABLE_UNDERGLOW behaviour (#25638) --- keyboards/idobao/id61/config.h | 28 ---------------------- keyboards/idobao/id61/post_rules.mk | 8 ------- keyboards/idobao/id63/config.h | 28 ---------------------- keyboards/idobao/id63/post_rules.mk | 8 ------- keyboards/idobao/id67/config.h | 30 ------------------------ keyboards/idobao/id67/post_rules.mk | 8 ------- keyboards/idobao/montex/v2/config.h | 28 ---------------------- keyboards/idobao/montex/v2/post_rules.mk | 8 ------- 8 files changed, 146 deletions(-) delete mode 100644 keyboards/idobao/id61/config.h delete mode 100644 keyboards/idobao/id61/post_rules.mk delete mode 100644 keyboards/idobao/id63/config.h delete mode 100644 keyboards/idobao/id63/post_rules.mk delete mode 100644 keyboards/idobao/id67/config.h delete mode 100644 keyboards/idobao/id67/post_rules.mk delete mode 100755 keyboards/idobao/montex/v2/config.h delete mode 100644 keyboards/idobao/montex/v2/post_rules.mk diff --git a/keyboards/idobao/id61/config.h b/keyboards/idobao/id61/config.h deleted file mode 100644 index 3766a8ef1d..0000000000 --- a/keyboards/idobao/id61/config.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2022 Vino Rodrigues (@vinorodrigues) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#if defined(RGB_MATRIX_ENABLE) - #ifndef ID61_DISABLE_UNDERGLOW - #define RGB_MATRIX_LED_COUNT 71 - #else - #define RGB_MATRIX_LED_COUNT 61 // = 71 - 10 - #endif -#endif // RGB_MATRIX_ENABLE - -/* ----------------------- - * Feature disable options - * These options are also useful to firmware size reduction. - * ----------------------- */ - -/* disable debug print */ -// #define NO_DEBUG - -/* disable print */ -// #define NO_PRINT - -/* disable action features */ -// #define NO_ACTION_LAYER -// #define NO_ACTION_TAPPING -// #define NO_ACTION_ONESHOT diff --git a/keyboards/idobao/id61/post_rules.mk b/keyboards/idobao/id61/post_rules.mk deleted file mode 100644 index 673b260396..0000000000 --- a/keyboards/idobao/id61/post_rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -# The Denwir D60 case has a sealed/solid undercase, -# this enables switching off thoes LEDs -# Usage: `make idobao/id61:default UNDERGLOW=off` - -UNDERGLOW ?= yes -ifneq ($(strip $(UNDERGLOW)), yes) - OPT_DEFS += -DID61_DISABLE_UNDERGLOW -endif diff --git a/keyboards/idobao/id63/config.h b/keyboards/idobao/id63/config.h deleted file mode 100644 index 5a7df9028e..0000000000 --- a/keyboards/idobao/id63/config.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2022 Vino Rodrigues (@vinorodrigues) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#if defined(RGB_MATRIX_ENABLE) - #ifndef ID63_DISABLE_UNDERGLOW - #define RGB_MATRIX_LED_COUNT 75 - #else - #define RGB_MATRIX_LED_COUNT (75 - 12) - #endif -#endif // RGB_MATRIX_ENABLE - -/* ----------------------- - * Feature disable options - * These options are also useful to firmware size reduction. - * ----------------------- */ - -/* disable debug print */ -// #define NO_DEBUG - -/* disable print */ -// #define NO_PRINT - -/* disable action features */ -// #define NO_ACTION_LAYER -// #define NO_ACTION_TAPPING -// #define NO_ACTION_ONESHOT diff --git a/keyboards/idobao/id63/post_rules.mk b/keyboards/idobao/id63/post_rules.mk deleted file mode 100644 index 1a465397fd..0000000000 --- a/keyboards/idobao/id63/post_rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -# The Denwir D60 case has a sealed/solid undercase, -# this enables switching off thoes LEDs -# Usage: `make idobao/id63:default UNDERGLOW=off` - -UNDERGLOW ?= yes -ifneq ($(strip $(UNDERGLOW)), yes) - OPT_DEFS += -DID63_DISABLE_UNDERGLOW -endif diff --git a/keyboards/idobao/id67/config.h b/keyboards/idobao/id67/config.h deleted file mode 100644 index 8f454d1ff4..0000000000 --- a/keyboards/idobao/id67/config.h +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright 2021 Tybera (@tybera) -// Copyright 2021 Werther (@thewerther) -// Copyright 2022 Vino Rodrigues (@vinorodrigues) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#if defined(RGB_MATRIX_ENABLE) - #ifndef ID67_DISABLE_UNDERGLOW - #define RGB_MATRIX_LED_COUNT 77 - #else - #define RGB_MATRIX_LED_COUNT (77 - 10) - #endif -#endif // RGB_MATRIX_ENABLE - -/* ----------------------- - * Feature disable options - * These options are also useful to firmware size reduction. - * ----------------------- */ - -/* disable debug print */ -// #define NO_DEBUG - -/* disable print */ -// #define NO_PRINT - -/* disable action features */ -// #define NO_ACTION_LAYER -// #define NO_ACTION_TAPPING -// #define NO_ACTION_ONESHOT diff --git a/keyboards/idobao/id67/post_rules.mk b/keyboards/idobao/id67/post_rules.mk deleted file mode 100644 index 32832a65b2..0000000000 --- a/keyboards/idobao/id67/post_rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -# Some ID67 variants (v1 base build & "Bestype") have a solid back plate, -# this enables switching off thoes LEDs -# Usage: `make idobao/id67:default UNDERGLOW=off` - -UNDERGLOW ?= yes -ifneq ($(strip $(UNDERGLOW)), yes) - OPT_DEFS += -DID67_DISABLE_UNDERGLOW -endif diff --git a/keyboards/idobao/montex/v2/config.h b/keyboards/idobao/montex/v2/config.h deleted file mode 100755 index 548f3f62e7..0000000000 --- a/keyboards/idobao/montex/v2/config.h +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2022 IBNobody (@IBNobody) -// SPDX-License-Identifier: GPL-2.0-or-later - -#pragma once - -#if defined(RGB_MATRIX_ENABLE) - #ifndef ID27_DISABLE_UNDERGLOW - #define RGB_MATRIX_LED_COUNT 31 // The number of LEDs connected - #else - #define RGB_MATRIX_LED_COUNT 27 // -4 disabled underglow LEDs - #endif -#endif // RGB_MATRIX_ENABLE - -/* ----------------------- - * Feature disable options - * These options are also useful to firmware size reduction. - * ----------------------- */ - -/* disable debug print */ -// #define NO_DEBUG - -/* disable print */ -// #define NO_PRINT - -/* disable action features */ -// #define NO_ACTION_LAYER -// #define NO_ACTION_TAPPING -// #define NO_ACTION_ONESHOT diff --git a/keyboards/idobao/montex/v2/post_rules.mk b/keyboards/idobao/montex/v2/post_rules.mk deleted file mode 100644 index f2d43fa6ac..0000000000 --- a/keyboards/idobao/montex/v2/post_rules.mk +++ /dev/null @@ -1,8 +0,0 @@ -# some (if not most) Montex have a solid back plate, -# this enables switching off the bottom facing LEDs -# Usage: `make idobao/montex/v2:default UNDERGLOW=off` - -UNDERGLOW ?= yes -ifneq ($(strip $(UNDERGLOW)), yes) - OPT_DEFS += -DID27_DISABLE_UNDERGLOW -endif From 319da7bfdb7d6d923baff139f2f5ee58c9d53182 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 12 Sep 2025 08:13:12 +0100 Subject: [PATCH 053/255] Refactor 40percentclub/ut47 (#25571) --- keyboards/40percentclub/ut47/config.h | 32 --- keyboards/40percentclub/ut47/keyboard.json | 9 + .../ut47/keymaps/default/keymap.c | 54 +---- .../40percentclub/ut47/keymaps/rgb/config.h | 20 +- .../40percentclub/ut47/keymaps/rgb/keymap.c | 54 +---- keyboards/40percentclub/ut47/led.c | 39 ---- keyboards/40percentclub/ut47/led_controls.c | 44 ++++ .../{LED_controls.ino => led_controls.ino} | 0 keyboards/40percentclub/ut47/matrix.c | 194 ------------------ keyboards/40percentclub/ut47/post_rules.mk | 5 +- keyboards/40percentclub/ut47/readme.md | 9 +- keyboards/40percentclub/ut47/rules.mk | 3 - keyboards/40percentclub/ut47/ut47.c | 36 ---- 13 files changed, 66 insertions(+), 433 deletions(-) delete mode 100644 keyboards/40percentclub/ut47/config.h delete mode 100644 keyboards/40percentclub/ut47/led.c create mode 100644 keyboards/40percentclub/ut47/led_controls.c rename keyboards/40percentclub/ut47/{LED_controls.ino => led_controls.ino} (100%) delete mode 100644 keyboards/40percentclub/ut47/matrix.c delete mode 100644 keyboards/40percentclub/ut47/rules.mk delete mode 100644 keyboards/40percentclub/ut47/ut47.c diff --git a/keyboards/40percentclub/ut47/config.h b/keyboards/40percentclub/ut47/config.h deleted file mode 100644 index f0182a59f8..0000000000 --- a/keyboards/40percentclub/ut47/config.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Copyright 2018 Carlos Filoteo - -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 - - -/* key matrix size */ -#define MATRIX_ROWS 4 -#define MATRIX_COLS 12 - -#define MATRIX_ROW_PINS { D1, D0, D4, C6 } -#define MATRIX_COL_PINS { D7, E6, B4, B5, B6, B2, B3, B1, F7, F6, F5, F4 } - -/* COL2ROW, ROW2COL*/ -#define DIODE_DIRECTION COL2ROW - -/* Enable GNAP matrix serial output */ -#define GNAP_ENABLE diff --git a/keyboards/40percentclub/ut47/keyboard.json b/keyboards/40percentclub/ut47/keyboard.json index 00c8edef69..176d2a6b2d 100644 --- a/keyboards/40percentclub/ut47/keyboard.json +++ b/keyboards/40percentclub/ut47/keyboard.json @@ -22,6 +22,15 @@ "resync": true } }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["D7", "E6", "B4", "B5", "B6", "B2", "B3", "B1", "F7", "F6", "F5", "F4"], + "rows": ["D1", "D0", "D4", "C6"] + }, + "keycodes": [ + {"key": "LED_TOG"}, + {"key": "LED_CHG"} + ], "layouts": { "LAYOUT": { "layout": [ diff --git a/keyboards/40percentclub/ut47/keymaps/default/keymap.c b/keyboards/40percentclub/ut47/keymaps/default/keymap.c index 4a9de82492..050cb6d4b3 100644 --- a/keyboards/40percentclub/ut47/keymaps/default/keymap.c +++ b/keyboards/40percentclub/ut47/keymaps/default/keymap.c @@ -1,31 +1,10 @@ -/* Copyright 2018 Carlos Filoteo - * - * 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 . - */ +// Copyright 2018 Carlos Filoteo +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H -#ifdef LED_ENABLE - #include "uart.h" -#endif #define LT3_TAB LT(3, KC_TAB) #define MT_RSFT_ENT MT(MOD_RSFT, KC_ENT) -enum custom_keycodes { - LED_TOG = SAFE_RANGE, - LED_CHG -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base Layer @@ -104,32 +83,3 @@ LAYOUT( /* Tab */ _______, _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT ), }; - -//LED keymap functions - #ifdef LED_ENABLE -void led_chmode(void) { - uart_write(0x65); -} - -void led_toggle(void) { - uart_write(0x64); -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - switch(keycode) { - case LED_TOG: - #ifdef LED_ENABLE - led_toggle(); - #endif - return false; - case LED_CHG: - #ifdef LED_ENABLE - led_chmode(); - #endif - return false; - } - } - return true; -}; -#endif diff --git a/keyboards/40percentclub/ut47/keymaps/rgb/config.h b/keyboards/40percentclub/ut47/keymaps/rgb/config.h index d48ee2bf3f..7a66d80f0e 100644 --- a/keyboards/40percentclub/ut47/keymaps/rgb/config.h +++ b/keyboards/40percentclub/ut47/keymaps/rgb/config.h @@ -1,23 +1,7 @@ -/* Copyright 2018 Carlos Filoteo - * - * 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 . - */ - +// Copyright 2018 Carlos Filoteo +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once - -// place overrides here #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD #define RGBLIGHT_EFFECT_RAINBOW_SWIRL diff --git a/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c b/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c index 17c0be7772..1250c72f2a 100644 --- a/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c +++ b/keyboards/40percentclub/ut47/keymaps/rgb/keymap.c @@ -1,31 +1,10 @@ -/* Copyright 2018 Carlos Filoteo - * - * 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 . - */ +// Copyright 2018 Carlos Filoteo +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H -#ifdef LED_ENABLE - #include "uart.h" -#endif #define LT3_TAB LT(3, KC_TAB) #define MT_RSFT_ENT MT(MOD_RSFT, KC_ENT) -enum custom_keycodes { - LED_TOG = SAFE_RANGE, - LED_CHG -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT( @@ -56,32 +35,3 @@ LAYOUT( /* Tab */ _______, _______, _______, _______, _______, _______, _______, MS_LEFT, MS_DOWN, MS_UP, MS_RGHT ), }; - -//LED keymap functions - #ifdef LED_ENABLE -void led_chmode(void) { - uart_write(0x65); -} - -void led_toggle(void) { - uart_write(0x64); -} - -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - if (record->event.pressed) { - switch(keycode) { - case LED_TOG: - #ifdef LED_ENABLE - led_toggle(); - #endif - return false; - case LED_CHG: - #ifdef LED_ENABLE - led_chmode(); - #endif - return false; - } - } - return true; -}; -#endif diff --git a/keyboards/40percentclub/ut47/led.c b/keyboards/40percentclub/ut47/led.c deleted file mode 100644 index fa431de760..0000000000 --- a/keyboards/40percentclub/ut47/led.c +++ /dev/null @@ -1,39 +0,0 @@ -/* -Copyright 2012 Jun Wako - -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 -#include -#include "led.h" - -bool led_update_kb(led_t led_state) -{ - bool res = led_update_user(led_state); - if (res) { - if (led_state.caps_lock) { - // output low - gpio_set_pin_output(B0); - gpio_write_pin_low(B0); - gpio_set_pin_output(D5); - gpio_write_pin_low(D5); - } else { - // Hi-Z - gpio_set_pin_input(B0); - gpio_set_pin_input(D5); - } - } - return false; -} diff --git a/keyboards/40percentclub/ut47/led_controls.c b/keyboards/40percentclub/ut47/led_controls.c new file mode 100644 index 0000000000..34a0ceb5b7 --- /dev/null +++ b/keyboards/40percentclub/ut47/led_controls.c @@ -0,0 +1,44 @@ +// Copyright 2018 Carlos Filoteo +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H +#include "uart.h" + +bool led_update_kb(led_t led_state) { + bool res = led_update_user(led_state); + if (res) { + if (led_state.caps_lock) { + // output low + gpio_set_pin_output(B0); + gpio_write_pin_low(B0); + gpio_set_pin_output(D5); + gpio_write_pin_low(D5); + } else { + // Hi-Z + gpio_set_pin_input(B0); + gpio_set_pin_input(D5); + } + } + return false; +} + +void keyboard_post_init_kb(void) { + uart_init(9600); + + keyboard_post_init_user(); +} + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (record->event.pressed) { + uart_write((record->event.key.row * 16) + record->event.key.col); + + switch (keycode) { + case LED_TOG: + uart_write(0x64); + return false; + case LED_CHG: + uart_write(0x65); + return false; + } + } + return process_record_user(keycode, record); +} diff --git a/keyboards/40percentclub/ut47/LED_controls.ino b/keyboards/40percentclub/ut47/led_controls.ino similarity index 100% rename from keyboards/40percentclub/ut47/LED_controls.ino rename to keyboards/40percentclub/ut47/led_controls.ino diff --git a/keyboards/40percentclub/ut47/matrix.c b/keyboards/40percentclub/ut47/matrix.c deleted file mode 100644 index d803f11c5e..0000000000 --- a/keyboards/40percentclub/ut47/matrix.c +++ /dev/null @@ -1,194 +0,0 @@ -/* -Copyright 2018 Carlos Filoteo - -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 . -*/ - -/* - * scan matrix - */ -#include -#include -#include -#include -#include "print.h" -#include "debug.h" -#include "util.h" -#include "matrix.h" - -#ifndef DEBOUNCE -# define DEBOUNCE 5 -#endif -static uint8_t debouncing = DEBOUNCE; - -/* matrix state(1:on, 0:off) */ -static matrix_row_t matrix[MATRIX_ROWS]; -static matrix_row_t matrix_debouncing[MATRIX_ROWS]; - -static matrix_row_t read_cols(void); -static void init_cols(void); -static void unselect_rows(void); -static void select_row(uint8_t row); - - -inline -uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; -} - -inline -uint8_t matrix_cols(void) -{ - return MATRIX_COLS; -} - -void matrix_init(void) -{ - // initialize row and col - unselect_rows(); - init_cols(); - - // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - matrix_debouncing[i] = 0; - } -} - -uint8_t matrix_scan(void) -{ - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - select_row(i); - _delay_us(30); // without this wait read unstable value. - matrix_row_t cols = read_cols(); - if (matrix_debouncing[i] != cols) { - matrix_debouncing[i] = cols; - if (debouncing) { - dprintf("bounce!: %02X\n", debouncing); - } - debouncing = DEBOUNCE; - } - unselect_rows(); - } - - if (debouncing) { - if (--debouncing) { - _delay_ms(1); - } else { - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - matrix[i] = matrix_debouncing[i]; - } - } - } - - return 1; -} - -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1<The reason this is an "opt-in" feature is to prevent sending serial communication over the pin, in case it ends up being used for something else (like RGB underglow). diff --git a/keyboards/40percentclub/ut47/rules.mk b/keyboards/40percentclub/ut47/rules.mk deleted file mode 100644 index 5480f61b9b..0000000000 --- a/keyboards/40percentclub/ut47/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -CUSTOM_MATRIX = yes -SRC += matrix.c -UART_DRIVER_REQUIRED = yes diff --git a/keyboards/40percentclub/ut47/ut47.c b/keyboards/40percentclub/ut47/ut47.c deleted file mode 100644 index 867d8c0202..0000000000 --- a/keyboards/40percentclub/ut47/ut47.c +++ /dev/null @@ -1,36 +0,0 @@ -/* Copyright 2018 Carlos Filoteo - * - * 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 "quantum.h" -#ifdef LED_ENABLE - #include "uart.h" - -void matrix_init_kb(void) { - uart_init(9600); - - matrix_init_user(); -} -#endif - -bool process_record_kb(uint16_t keycode, keyrecord_t *record) { - // put your per-action keyboard code here - // runs for every action, just before processing by the firmware - if (record->event.pressed) { - #ifdef LED_ENABLE - uart_write((record->event.key.row*16)+record->event.key.col); - #endif - } - return process_record_user(keycode, record); -} From 3320e98ccf6d1fccfada9d6f1d97759e80a340e8 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 12 Sep 2025 10:23:16 +0100 Subject: [PATCH 054/255] Migrate `eeconfig_init_kb` implementations to config (#25422) --- keyboards/keebio/bdn9/rev1/config.h | 6 ++++ keyboards/keebio/bdn9/rev1/keyboard.json | 3 ++ keyboards/keebio/bdn9/rev1/rev1.c | 20 ++----------- keyboards/keebio/bdn9/rev2/config.h | 6 ++++ keyboards/keebio/bdn9/rev2/rev2.c | 20 ++----------- keyboards/keebio/chocopad/rev1/config.h | 6 ++++ keyboards/keebio/chocopad/rev1/keyboard.json | 3 ++ keyboards/keebio/chocopad/rev1/rev1.c | 21 -------------- keyboards/keebio/dilly/config.h | 6 ++++ keyboards/keebio/dilly/dilly.c | 18 ------------ keyboards/keebio/dsp40/rev1/keyboard.json | 3 ++ keyboards/keebio/dsp40/rev1/rev1.c | 26 ----------------- keyboards/keebio/ergodicity/config.h | 6 ++++ keyboards/keebio/ergodicity/ergodicity.c | 18 ------------ keyboards/keebio/ergodicity/keyboard.json | 3 ++ keyboards/keebio/foldkb/rev1/rev1.c | 9 ------ keyboards/keebio/iris/rev2/config.h | 6 ++++ keyboards/keebio/iris/rev2/keyboard.json | 3 ++ keyboards/keebio/iris/rev2/rev2.c | 20 ++----------- keyboards/keebio/iris/rev3/config.h | 6 ++++ keyboards/keebio/iris/rev3/keyboard.json | 3 ++ keyboards/keebio/iris/rev3/rev3.c | 20 ++----------- keyboards/keebio/iris/rev4/config.h | 6 ++++ keyboards/keebio/iris/rev4/keyboard.json | 3 ++ keyboards/keebio/iris/rev4/rev4.c | 20 ++----------- keyboards/keebio/kbo5000/rev1/config.h | 2 ++ keyboards/keebio/kbo5000/rev1/rev1.c | 20 ++----------- keyboards/keebio/levinson/rev2/config.h | 6 ++++ keyboards/keebio/levinson/rev2/keyboard.json | 17 ++++++++++- keyboards/keebio/levinson/rev2/rev2.c | 18 ------------ keyboards/keebio/levinson/rev3/config.h | 6 ++++ keyboards/keebio/levinson/rev3/keyboard.json | 3 ++ keyboards/keebio/levinson/rev3/rev3.c | 18 ------------ keyboards/keebio/nyquist/rev2/config.h | 6 ++++ keyboards/keebio/nyquist/rev2/keyboard.json | 17 ++++++++++- keyboards/keebio/nyquist/rev2/rev2.c | 18 ------------ keyboards/keebio/nyquist/rev3/config.h | 6 ++++ keyboards/keebio/nyquist/rev3/keyboard.json | 3 ++ keyboards/keebio/nyquist/rev3/rev3.c | 18 ------------ keyboards/keebio/quefrency/rev1/config.h | 6 ++++ keyboards/keebio/quefrency/rev1/rev1.c | 14 --------- keyboards/keebio/quefrency/rev2/config.h | 2 ++ keyboards/keebio/quefrency/rev2/rev2.c | 20 ++----------- keyboards/keebio/quefrency/rev3/config.h | 2 ++ keyboards/keebio/quefrency/rev3/rev3.c | 17 ----------- keyboards/keebio/stick/config.h | 6 ++++ keyboards/keebio/stick/stick.c | 17 ----------- keyboards/keebio/viterbi/rev2/config.h | 6 ++++ keyboards/keebio/viterbi/rev2/keyboard.json | 3 ++ keyboards/keebio/viterbi/rev2/rev2.c | 18 ------------ keyboards/sendyyeah/pix/config.h | 2 ++ keyboards/sendyyeah/pix/pix.c | 30 -------------------- 52 files changed, 181 insertions(+), 381 deletions(-) create mode 100644 keyboards/keebio/bdn9/rev1/config.h create mode 100644 keyboards/keebio/bdn9/rev2/config.h create mode 100644 keyboards/keebio/chocopad/rev1/config.h delete mode 100644 keyboards/keebio/chocopad/rev1/rev1.c create mode 100644 keyboards/keebio/dilly/config.h delete mode 100644 keyboards/keebio/dilly/dilly.c delete mode 100644 keyboards/keebio/dsp40/rev1/rev1.c create mode 100644 keyboards/keebio/ergodicity/config.h delete mode 100644 keyboards/keebio/ergodicity/ergodicity.c create mode 100644 keyboards/keebio/iris/rev2/config.h create mode 100644 keyboards/keebio/iris/rev3/config.h create mode 100644 keyboards/keebio/iris/rev4/config.h create mode 100644 keyboards/keebio/levinson/rev2/config.h delete mode 100644 keyboards/keebio/levinson/rev2/rev2.c create mode 100644 keyboards/keebio/levinson/rev3/config.h delete mode 100644 keyboards/keebio/levinson/rev3/rev3.c create mode 100644 keyboards/keebio/nyquist/rev2/config.h delete mode 100644 keyboards/keebio/nyquist/rev2/rev2.c create mode 100644 keyboards/keebio/nyquist/rev3/config.h delete mode 100644 keyboards/keebio/nyquist/rev3/rev3.c create mode 100644 keyboards/keebio/quefrency/rev1/config.h delete mode 100644 keyboards/keebio/quefrency/rev1/rev1.c create mode 100644 keyboards/keebio/stick/config.h create mode 100644 keyboards/keebio/viterbi/rev2/config.h delete mode 100644 keyboards/keebio/viterbi/rev2/rev2.c delete mode 100644 keyboards/sendyyeah/pix/pix.c diff --git a/keyboards/keebio/bdn9/rev1/config.h b/keyboards/keebio/bdn9/rev1/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/bdn9/rev1/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/bdn9/rev1/keyboard.json b/keyboards/keebio/bdn9/rev1/keyboard.json index 5c677db78d..8130b115f9 100644 --- a/keyboards/keebio/bdn9/rev1/keyboard.json +++ b/keyboards/keebio/bdn9/rev1/keyboard.json @@ -12,6 +12,9 @@ ] }, "backlight": { + "default": { + "brightness": 5 + }, "pin": "B5", "levels": 7 }, diff --git a/keyboards/keebio/bdn9/rev1/rev1.c b/keyboards/keebio/bdn9/rev1/rev1.c index 567de03af4..fe3defa156 100644 --- a/keyboards/keebio/bdn9/rev1/rev1.c +++ b/keyboards/keebio/bdn9/rev1/rev1.c @@ -1,22 +1,8 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(5); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} - bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 0) { diff --git a/keyboards/keebio/bdn9/rev2/config.h b/keyboards/keebio/bdn9/rev2/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/bdn9/rev2/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/bdn9/rev2/rev2.c b/keyboards/keebio/bdn9/rev2/rev2.c index 70b0b0c4fd..fe3defa156 100644 --- a/keyboards/keebio/bdn9/rev2/rev2.c +++ b/keyboards/keebio/bdn9/rev2/rev2.c @@ -1,22 +1,8 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" -void eeconfig_init_kb(void) { -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -# ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -# endif -#endif - -#ifdef RGB_MATRIX_ENABLE - rgb_matrix_enable(); // Enable RGB by default -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} - bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 0) { diff --git a/keyboards/keebio/chocopad/rev1/config.h b/keyboards/keebio/chocopad/rev1/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/chocopad/rev1/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/chocopad/rev1/keyboard.json b/keyboards/keebio/chocopad/rev1/keyboard.json index fafea9dce0..06dbbf0bc6 100644 --- a/keyboards/keebio/chocopad/rev1/keyboard.json +++ b/keyboards/keebio/chocopad/rev1/keyboard.json @@ -17,6 +17,9 @@ "rgblight": true }, "backlight": { + "default": { + "brightness": 5 + }, "pin": "B5", "levels": 6 }, diff --git a/keyboards/keebio/chocopad/rev1/rev1.c b/keyboards/keebio/chocopad/rev1/rev1.c deleted file mode 100644 index e362bb3483..0000000000 --- a/keyboards/keebio/chocopad/rev1/rev1.c +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2023 Danny Nguyen (danny@keeb.io) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(5); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_MODE_EFFECT_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/dilly/config.h b/keyboards/keebio/dilly/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/dilly/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/dilly/dilly.c b/keyboards/keebio/dilly/dilly.c deleted file mode 100644 index 231a828f07..0000000000 --- a/keyboards/keebio/dilly/dilly.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/dsp40/rev1/keyboard.json b/keyboards/keebio/dsp40/rev1/keyboard.json index 776f67837c..2553e12c2b 100644 --- a/keyboards/keebio/dsp40/rev1/keyboard.json +++ b/keyboards/keebio/dsp40/rev1/keyboard.json @@ -26,6 +26,9 @@ } }, "backlight": { + "default": { + "brightness": 5 + }, "pin": "A6", "levels": 7 }, diff --git a/keyboards/keebio/dsp40/rev1/rev1.c b/keyboards/keebio/dsp40/rev1/rev1.c deleted file mode 100644 index 091cfc1523..0000000000 --- a/keyboards/keebio/dsp40/rev1/rev1.c +++ /dev/null @@ -1,26 +0,0 @@ -/* Copyright 2021 Danny Nguyen - -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 "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(5); -#endif - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/ergodicity/config.h b/keyboards/keebio/ergodicity/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/ergodicity/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/ergodicity/ergodicity.c b/keyboards/keebio/ergodicity/ergodicity.c deleted file mode 100644 index 76fb136c03..0000000000 --- a/keyboards/keebio/ergodicity/ergodicity.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(5); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/ergodicity/keyboard.json b/keyboards/keebio/ergodicity/keyboard.json index 6f755ba45c..504edf3b56 100644 --- a/keyboards/keebio/ergodicity/keyboard.json +++ b/keyboards/keebio/ergodicity/keyboard.json @@ -29,6 +29,9 @@ }, "diode_direction": "COL2ROW", "backlight": { + "default": { + "brightness": 5 + }, "pin": "B5", "levels": 7, "breathing": true diff --git a/keyboards/keebio/foldkb/rev1/rev1.c b/keyboards/keebio/foldkb/rev1/rev1.c index c2ba942a30..33915a0efe 100644 --- a/keyboards/keebio/foldkb/rev1/rev1.c +++ b/keyboards/keebio/foldkb/rev1/rev1.c @@ -16,15 +16,6 @@ along with this program. If not, see . #include "quantum.h" -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif - eeconfig_update_kb(0); - eeconfig_init_user(); -} - bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 0) { diff --git a/keyboards/keebio/iris/rev2/config.h b/keyboards/keebio/iris/rev2/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/iris/rev2/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/iris/rev2/keyboard.json b/keyboards/keebio/iris/rev2/keyboard.json index 9ea21851ee..23023fa3db 100644 --- a/keyboards/keebio/iris/rev2/keyboard.json +++ b/keyboards/keebio/iris/rev2/keyboard.json @@ -10,6 +10,9 @@ }, "diode_direction": "COL2ROW", "backlight": { + "default": { + "brightness": 3 + }, "pin": "B5", "levels": 5 }, diff --git a/keyboards/keebio/iris/rev2/rev2.c b/keyboards/keebio/iris/rev2/rev2.c index 87d4b4029d..45c8d90361 100644 --- a/keyboards/keebio/iris/rev2/rev2.c +++ b/keyboards/keebio/iris/rev2/rev2.c @@ -1,3 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" #ifdef SWAP_HANDS_ENABLE @@ -18,20 +21,3 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{0,4}, {1,4}, {2,4}, {3,4}, {4,4}, {5,4}}, }; #endif - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/iris/rev3/config.h b/keyboards/keebio/iris/rev3/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/iris/rev3/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/iris/rev3/keyboard.json b/keyboards/keebio/iris/rev3/keyboard.json index f7b3f894fe..68805c27f8 100644 --- a/keyboards/keebio/iris/rev3/keyboard.json +++ b/keyboards/keebio/iris/rev3/keyboard.json @@ -15,6 +15,9 @@ ] }, "backlight": { + "default": { + "brightness": 3 + }, "pin": "B6", "levels": 5 }, diff --git a/keyboards/keebio/iris/rev3/rev3.c b/keyboards/keebio/iris/rev3/rev3.c index 8b12388cac..0f7f5a7f75 100644 --- a/keyboards/keebio/iris/rev3/rev3.c +++ b/keyboards/keebio/iris/rev3/rev3.c @@ -1,3 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" #ifdef SWAP_HANDS_ENABLE @@ -22,23 +25,6 @@ const uint8_t PROGMEM encoder_hand_swap_config[NUM_ENCODERS] = {1, 0}; # endif #endif -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} - #ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } diff --git a/keyboards/keebio/iris/rev4/config.h b/keyboards/keebio/iris/rev4/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/iris/rev4/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/iris/rev4/keyboard.json b/keyboards/keebio/iris/rev4/keyboard.json index 3acd3d0a14..dc5392d91f 100644 --- a/keyboards/keebio/iris/rev4/keyboard.json +++ b/keyboards/keebio/iris/rev4/keyboard.json @@ -15,6 +15,9 @@ ] }, "backlight": { + "default": { + "brightness": 3 + }, "pin": "B5", "levels": 5 }, diff --git a/keyboards/keebio/iris/rev4/rev4.c b/keyboards/keebio/iris/rev4/rev4.c index 04a2241966..03a25c3395 100644 --- a/keyboards/keebio/iris/rev4/rev4.c +++ b/keyboards/keebio/iris/rev4/rev4.c @@ -1,22 +1,8 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} - #ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } diff --git a/keyboards/keebio/kbo5000/rev1/config.h b/keyboards/keebio/kbo5000/rev1/config.h index 12f7f76c87..365d756870 100644 --- a/keyboards/keebio/kbo5000/rev1/config.h +++ b/keyboards/keebio/kbo5000/rev1/config.h @@ -18,4 +18,6 @@ along with this program. If not, see . #pragma once +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) + #define CAPS_LOCK_LED_PIN B6 diff --git a/keyboards/keebio/kbo5000/rev1/rev1.c b/keyboards/keebio/kbo5000/rev1/rev1.c index 8aa227deba..1fd1b9b905 100644 --- a/keyboards/keebio/kbo5000/rev1/rev1.c +++ b/keyboards/keebio/kbo5000/rev1/rev1.c @@ -1,3 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" #include "split_util.h" @@ -14,23 +17,6 @@ bool led_update_kb(led_t led_state) { return true; } -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} - bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 0) { diff --git a/keyboards/keebio/levinson/rev2/config.h b/keyboards/keebio/levinson/rev2/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/levinson/rev2/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/levinson/rev2/keyboard.json b/keyboards/keebio/levinson/rev2/keyboard.json index dd71186837..b6b1fcfa33 100644 --- a/keyboards/keebio/levinson/rev2/keyboard.json +++ b/keyboards/keebio/levinson/rev2/keyboard.json @@ -15,12 +15,27 @@ }, "diode_direction": "COL2ROW", "backlight": { + "default": { + "brightness": 5 + }, "pin": "B5", "levels": 7 }, "rgblight": { "led_count": 12, - "split_count": [6, 6] + "split_count": [6, 6], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "ws2812": { "pin": "D3" diff --git a/keyboards/keebio/levinson/rev2/rev2.c b/keyboards/keebio/levinson/rev2/rev2.c deleted file mode 100644 index 76fb136c03..0000000000 --- a/keyboards/keebio/levinson/rev2/rev2.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(5); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/levinson/rev3/config.h b/keyboards/keebio/levinson/rev3/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/levinson/rev3/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/levinson/rev3/keyboard.json b/keyboards/keebio/levinson/rev3/keyboard.json index 7930727755..0c619bb627 100644 --- a/keyboards/keebio/levinson/rev3/keyboard.json +++ b/keyboards/keebio/levinson/rev3/keyboard.json @@ -24,6 +24,9 @@ }, "diode_direction": "COL2ROW", "backlight": { + "default": { + "brightness": 5 + }, "pin": "B6", "levels": 7 }, diff --git a/keyboards/keebio/levinson/rev3/rev3.c b/keyboards/keebio/levinson/rev3/rev3.c deleted file mode 100644 index 76fb136c03..0000000000 --- a/keyboards/keebio/levinson/rev3/rev3.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(5); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/nyquist/rev2/config.h b/keyboards/keebio/nyquist/rev2/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/nyquist/rev2/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/nyquist/rev2/keyboard.json b/keyboards/keebio/nyquist/rev2/keyboard.json index 69639db6bf..a66dff3904 100644 --- a/keyboards/keebio/nyquist/rev2/keyboard.json +++ b/keyboards/keebio/nyquist/rev2/keyboard.json @@ -24,12 +24,27 @@ }, "diode_direction": "COL2ROW", "backlight": { + "default": { + "brightness": 5 + }, "pin": "B6", "levels": 7 }, "rgblight": { "led_count": 12, - "split_count": [6, 6] + "split_count": [6, 6], + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "rgb_test": true, + "alternating": true, + "twinkle": true + } }, "ws2812": { "pin": "D3" diff --git a/keyboards/keebio/nyquist/rev2/rev2.c b/keyboards/keebio/nyquist/rev2/rev2.c deleted file mode 100644 index 76fb136c03..0000000000 --- a/keyboards/keebio/nyquist/rev2/rev2.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(5); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/nyquist/rev3/config.h b/keyboards/keebio/nyquist/rev3/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/nyquist/rev3/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/nyquist/rev3/keyboard.json b/keyboards/keebio/nyquist/rev3/keyboard.json index bdc7be0e4e..a4db4dcd8e 100644 --- a/keyboards/keebio/nyquist/rev3/keyboard.json +++ b/keyboards/keebio/nyquist/rev3/keyboard.json @@ -24,6 +24,9 @@ }, "diode_direction": "COL2ROW", "backlight": { + "default": { + "brightness": 5 + }, "pin": "B5", "levels": 7 }, diff --git a/keyboards/keebio/nyquist/rev3/rev3.c b/keyboards/keebio/nyquist/rev3/rev3.c deleted file mode 100644 index 76fb136c03..0000000000 --- a/keyboards/keebio/nyquist/rev3/rev3.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(5); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/quefrency/rev1/config.h b/keyboards/keebio/quefrency/rev1/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/quefrency/rev1/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/quefrency/rev1/rev1.c b/keyboards/keebio/quefrency/rev1/rev1.c deleted file mode 100644 index 51adb74d31..0000000000 --- a/keyboards/keebio/quefrency/rev1/rev1.c +++ /dev/null @@ -1,14 +0,0 @@ -#include "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/keebio/quefrency/rev2/config.h b/keyboards/keebio/quefrency/rev2/config.h index 12f7f76c87..365d756870 100644 --- a/keyboards/keebio/quefrency/rev2/config.h +++ b/keyboards/keebio/quefrency/rev2/config.h @@ -18,4 +18,6 @@ along with this program. If not, see . #pragma once +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) + #define CAPS_LOCK_LED_PIN B6 diff --git a/keyboards/keebio/quefrency/rev2/rev2.c b/keyboards/keebio/quefrency/rev2/rev2.c index f0320597f7..63a02ee20b 100644 --- a/keyboards/keebio/quefrency/rev2/rev2.c +++ b/keyboards/keebio/quefrency/rev2/rev2.c @@ -1,3 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" #include "split_util.h" @@ -14,23 +17,6 @@ bool led_update_kb(led_t led_state) { return true; } -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} - #ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } diff --git a/keyboards/keebio/quefrency/rev3/config.h b/keyboards/keebio/quefrency/rev3/config.h index 12f7f76c87..365d756870 100644 --- a/keyboards/keebio/quefrency/rev3/config.h +++ b/keyboards/keebio/quefrency/rev3/config.h @@ -18,4 +18,6 @@ along with this program. If not, see . #pragma once +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) + #define CAPS_LOCK_LED_PIN B6 diff --git a/keyboards/keebio/quefrency/rev3/rev3.c b/keyboards/keebio/quefrency/rev3/rev3.c index 74d68723f5..3e61e07928 100644 --- a/keyboards/keebio/quefrency/rev3/rev3.c +++ b/keyboards/keebio/quefrency/rev3/rev3.c @@ -30,23 +30,6 @@ bool led_update_kb(led_t led_state) { return true; } -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(3); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} - #ifdef ENCODER_ENABLE bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } diff --git a/keyboards/keebio/stick/config.h b/keyboards/keebio/stick/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/stick/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/stick/stick.c b/keyboards/keebio/stick/stick.c index e54a0aa09f..9c5e67d93d 100644 --- a/keyboards/keebio/stick/stick.c +++ b/keyboards/keebio/stick/stick.c @@ -17,23 +17,6 @@ along with this program. If not, see . #include "quantum.h" -void eeconfig_init_kb(void) { -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -# ifdef RGBLIGHT_EFFECT_RAINDOWN_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -# endif -#endif - -#ifdef RGB_MATRIX_ENABLE - rgb_matrix_enable(); // Enable RGB by default -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} - bool encoder_update_kb(uint8_t index, bool clockwise) { if (!encoder_update_user(index, clockwise)) { return false; } if (index == 0) { diff --git a/keyboards/keebio/viterbi/rev2/config.h b/keyboards/keebio/viterbi/rev2/config.h new file mode 100644 index 0000000000..4ffb768771 --- /dev/null +++ b/keyboards/keebio/viterbi/rev2/config.h @@ -0,0 +1,6 @@ +// Copyright 2025 Danny Nguyen (danny@keeb.io) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) diff --git a/keyboards/keebio/viterbi/rev2/keyboard.json b/keyboards/keebio/viterbi/rev2/keyboard.json index a3e2d055b2..4d427df6ef 100644 --- a/keyboards/keebio/viterbi/rev2/keyboard.json +++ b/keyboards/keebio/viterbi/rev2/keyboard.json @@ -18,6 +18,9 @@ }, "diode_direction": "COL2ROW", "backlight": { + "default": { + "brightness": 5 + }, "pin": "B6", "levels": 7 }, diff --git a/keyboards/keebio/viterbi/rev2/rev2.c b/keyboards/keebio/viterbi/rev2/rev2.c deleted file mode 100644 index f00bb726e9..0000000000 --- a/keyboards/keebio/viterbi/rev2/rev2.c +++ /dev/null @@ -1,18 +0,0 @@ -#include "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef BACKLIGHT_ENABLE - backlight_enable(); - backlight_level(5); -#endif -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB by default - rgblight_sethsv(0, 255, 255); // Set default HSV - red hue, full saturation, full brightness -#ifdef RGBLIGHT_MODE_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 2); // set to RGB_RAINBOW_SWIRL by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} diff --git a/keyboards/sendyyeah/pix/config.h b/keyboards/sendyyeah/pix/config.h index 3a6cb6297f..7557991a58 100644 --- a/keyboards/sendyyeah/pix/config.h +++ b/keyboards/sendyyeah/pix/config.h @@ -19,5 +19,7 @@ #define OLED_FONT_H "keymaps/default/glcdfont.c" #define OLED_TIMEOUT 600000 // Turn of after 10 minutes +#define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 5) + #define RGBLIGHT_LAYERS #define RGBLIGHT_LAYER_BLINK diff --git a/keyboards/sendyyeah/pix/pix.c b/keyboards/sendyyeah/pix/pix.c deleted file mode 100644 index 1bd8627e16..0000000000 --- a/keyboards/sendyyeah/pix/pix.c +++ /dev/null @@ -1,30 +0,0 @@ - /* Copyright 2020 sendyyeah - * - * 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 "quantum.h" - -void eeconfig_init_kb(void) { -#ifdef RGBLIGHT_ENABLE - rgblight_enable(); // Enable RGB underglow by default - rgblight_sethsv(0, 255, 255); -#ifdef RGBLIGHT_EFFECT_RAINBOW_SWIRL - rgblight_mode(RGBLIGHT_MODE_RAINBOW_SWIRL + 5); // Set to RGB_RAINBOW_SWIRL animation by default -#endif -#endif - - eeconfig_update_kb(0); - eeconfig_init_user(); -} From cf58a8733d35bbfea2f54bd0175747ee63d9b2e3 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 12 Sep 2025 10:23:23 +0100 Subject: [PATCH 055/255] Add DIP Switch map support to keymap.json (#25431) --- data/schemas/keymap.jsonschema | 11 +++++++++++ lib/python/qmk/keymap.py | 20 ++++++++++++++++++++ lib/python/qmk/tests/test_cli_commands.py | 2 ++ lib/python/qmk/tests/test_qmk_keymap.py | 1 + 4 files changed, 34 insertions(+) diff --git a/data/schemas/keymap.jsonschema b/data/schemas/keymap.jsonschema index 99aeaa6b6c..71b39fc7c4 100644 --- a/data/schemas/keymap.jsonschema +++ b/data/schemas/keymap.jsonschema @@ -35,6 +35,17 @@ } } }, + "dip_switches": { + "type": "array", + "items": { + "type": "object", + "required": ["on", "off"], + "properties": { + "on": {"type": "string"}, + "off": {"type": "string"} + } + } + }, "macros": { "type": "array", "items": { diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py index 4cf07f59d6..0ac04f6f73 100644 --- a/lib/python/qmk/keymap.py +++ b/lib/python/qmk/keymap.py @@ -32,6 +32,7 @@ __INCLUDES__ __KEYMAP_GOES_HERE__ __ENCODER_MAP_GOES_HERE__ +__DIP_SWITCH_MAP_GOES_HERE__ __MACRO_OUTPUT_GOES_HERE__ #ifdef OTHER_KEYMAP_C @@ -66,6 +67,19 @@ def _generate_encodermap_table(keymap_json): return lines +def _generate_dipswitchmap_table(keymap_json): + lines = [ + '#if defined(DIP_SWITCH_ENABLE) && defined(DIP_SWITCH_MAP_ENABLE)', + 'const uint16_t PROGMEM dip_switch_map[NUM_DIP_SWITCHES][NUM_DIP_STATES] = {', + ] + for index, switch in enumerate(keymap_json['dip_switches']): + if index != 0: + lines[-1] = lines[-1] + ',' + lines.append(f' DIP_SWITCH_OFF_ON({_strip_any(switch["off"])}, {_strip_any(switch["on"])})') + lines.extend(['};', '#endif // defined(DIP_SWITCH_ENABLE) && defined(DIP_SWITCH_MAP_ENABLE)']) + return lines + + def _generate_macros_function(keymap_json): macro_txt = [ 'bool process_record_user(uint16_t keycode, keyrecord_t *record) {', @@ -286,6 +300,12 @@ def generate_c(keymap_json): encodermap = '\n'.join(encoder_txt) new_keymap = new_keymap.replace('__ENCODER_MAP_GOES_HERE__', encodermap) + dipswitchmap = '' + if 'dip_switches' in keymap_json and keymap_json['dip_switches'] is not None: + dip_txt = _generate_dipswitchmap_table(keymap_json) + dipswitchmap = '\n'.join(dip_txt) + new_keymap = new_keymap.replace('__DIP_SWITCH_MAP_GOES_HERE__', dipswitchmap) + macros = '' if 'macros' in keymap_json and keymap_json['macros'] is not None: macro_txt = _generate_macros_function(keymap_json) diff --git a/lib/python/qmk/tests/test_cli_commands.py b/lib/python/qmk/tests/test_cli_commands.py index dd659fe0f2..2716459989 100644 --- a/lib/python/qmk/tests/test_cli_commands.py +++ b/lib/python/qmk/tests/test_cli_commands.py @@ -159,6 +159,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + #ifdef OTHER_KEYMAP_C # include OTHER_KEYMAP_C #endif // OTHER_KEYMAP_C @@ -196,6 +197,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + #ifdef OTHER_KEYMAP_C # include OTHER_KEYMAP_C #endif // OTHER_KEYMAP_C diff --git a/lib/python/qmk/tests/test_qmk_keymap.py b/lib/python/qmk/tests/test_qmk_keymap.py index 80cc679b00..34360d3b6d 100644 --- a/lib/python/qmk/tests/test_qmk_keymap.py +++ b/lib/python/qmk/tests/test_qmk_keymap.py @@ -27,6 +27,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + #ifdef OTHER_KEYMAP_C # include OTHER_KEYMAP_C #endif // OTHER_KEYMAP_C From d34cade5abe11da93a6f3d204b00278127299f8b Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 12 Sep 2025 13:21:49 +0100 Subject: [PATCH 056/255] Generate default encoder resolution for sparse config (#25247) --- lib/python/qmk/cli/generate/config_h.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index d6d0299291..1ade452f95 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -125,11 +125,12 @@ def generate_encoder_config(encoder_json, config_h_lines, postfix=''): config_h_lines.append(generate_define(f'ENCODER_A_PINS{postfix}', f'{{ {", ".join(a_pads)} }}')) config_h_lines.append(generate_define(f'ENCODER_B_PINS{postfix}', f'{{ {", ".join(b_pads)} }}')) - if None in resolutions: - cli.log.debug(f"Unable to generate ENCODER_RESOLUTION{postfix} configuration") - elif len(resolutions) == 0: + if len(resolutions) == 0 or all(r is None for r in resolutions): cli.log.debug(f"Skipping ENCODER_RESOLUTION{postfix} configuration") - elif len(set(resolutions)) == 1: + return + + resolutions = [4 if r is None else r for r in resolutions] + if len(set(resolutions)) == 1: config_h_lines.append(generate_define(f'ENCODER_RESOLUTION{postfix}', resolutions[0])) else: config_h_lines.append(generate_define(f'ENCODER_RESOLUTIONS{postfix}', f'{{ {", ".join(map(str,resolutions))} }}')) From b6310b5a1507aa085a732f1105b7f022c837f443 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 12 Sep 2025 16:56:06 +0100 Subject: [PATCH 057/255] Remove encoder resolution where duplicating defaults (#25654) --- keyboards/cxt_studio/12e3/keyboard.json | 4 ++-- keyboards/doio/kb03/keyboard.json | 2 +- keyboards/draculad/keyboard.json | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/cxt_studio/12e3/keyboard.json b/keyboards/cxt_studio/12e3/keyboard.json index a85126aab6..0b8949cda7 100644 --- a/keyboards/cxt_studio/12e3/keyboard.json +++ b/keyboards/cxt_studio/12e3/keyboard.json @@ -21,8 +21,8 @@ }, "encoder": { "rotary": [ - {"pin_a": "F5", "pin_b": "F6", "resolution": 4}, - {"pin_a": "E6", "pin_b": "F0", "resolution": 4}, + {"pin_a": "F5", "pin_b": "F6"}, + {"pin_a": "E6", "pin_b": "F0"}, {"pin_a": "B3", "pin_b": "B2", "resolution": 2} ] }, diff --git a/keyboards/doio/kb03/keyboard.json b/keyboards/doio/kb03/keyboard.json index d2a214c92f..a3e77369fc 100644 --- a/keyboards/doio/kb03/keyboard.json +++ b/keyboards/doio/kb03/keyboard.json @@ -6,7 +6,7 @@ "diode_direction": "COL2ROW", "encoder": { "rotary": [ - {"pin_a": "B5", "pin_b": "B6", "resolution": 4}, + {"pin_a": "B5", "pin_b": "B6"}, {"pin_a": "A2", "pin_b": "A1", "resolution": 2} ] }, diff --git a/keyboards/draculad/keyboard.json b/keyboards/draculad/keyboard.json index 9c21b2a97d..f4464da35f 100644 --- a/keyboards/draculad/keyboard.json +++ b/keyboards/draculad/keyboard.json @@ -39,7 +39,7 @@ "encoder": { "right": { "rotary": [ - {"pin_a": "B2", "pin_b": "B6", "resolution": 4}, + {"pin_a": "B2", "pin_b": "B6"}, {"pin_a": "B4", "pin_b": "B5", "resolution": 1} ] } From 46231df62d1914bb7d25f26a7ece41b7805cc807 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 12 Sep 2025 20:00:03 +0100 Subject: [PATCH 058/255] Tidy Keebio keyboards (#25653) --- keyboards/keebio/bamfk4/config.h | 16 ----------- keyboards/keebio/bdn9/keymaps/test/config.h | 5 ---- keyboards/keebio/bdn9/rev3/config.h | 14 ++++------ .../keebio/bfo9000/keymaps/default/config.h | 27 ------------------ .../keebio/bfo9000/keymaps/default/keymap.c | 3 ++ keyboards/keebio/bfo9000/readme.md | 13 ++++----- .../bigswitchseat/keymaps/default/keymap.c | 14 +--------- keyboards/keebio/chiri_ce/rev1/config.h | 4 ++- keyboards/keebio/chiri_ce/rev1/keyboard.json | 3 ++ keyboards/keebio/chocopad/readme.md | 15 ++++++---- keyboards/keebio/convolution/readme.md | 2 +- .../keebio/dilly/keymaps/default/keymap.c | 4 ++- keyboards/keebio/dilly/readme.md | 15 ++++++---- .../keebio/dsp40/keymaps/default/keymap.c | 3 +- keyboards/keebio/dsp40/readme.md | 4 +++ keyboards/keebio/dsp40/rev1/readme.md | 4 +++ keyboards/keebio/ergodicity/readme.md | 12 +++++--- .../keebio/fourier/keymaps/default/config.h | 23 --------------- .../keebio/fourier/keymaps/default/keymap.c | 7 ++--- keyboards/keebio/fourier/readme.md | 13 ++++----- keyboards/keebio/iris/readme.md | 9 +++--- keyboards/keebio/iris/rev1/rev1.c | 3 ++ keyboards/keebio/iris/rev1_led/rev1_led.c | 3 ++ keyboards/keebio/iris_lm/g1/config.h | 15 ++++------ keyboards/keebio/iris_lm/g1/keyboard.json | 3 ++ keyboards/keebio/iris_lm/k1/config.h | 15 ++++------ keyboards/keebio/iris_lm/k1/keyboard.json | 3 ++ .../keebio/kbo5000/keymaps/default/keymap.c | 3 ++ keyboards/keebio/kbo5000/keymaps/iso/keymap.c | 3 ++ keyboards/keebio/kbo5000/readme.md | 2 +- .../keebio/laplace/keymaps/default/keymap.c | 3 ++ keyboards/keebio/laplace/readme.md | 13 ++++----- .../keebio/levinson/keymaps/default/config.h | 28 ------------------- .../keebio/levinson/keymaps/default/keymap.c | 4 ++- keyboards/keebio/levinson/levinson.c | 3 ++ keyboards/keebio/levinson/readme.md | 11 ++++---- keyboards/keebio/nyquist/readme.md | 11 ++++---- keyboards/keebio/nyquist/rev5/config.h | 2 -- keyboards/keebio/nyquist/rev5/keyboard.json | 3 ++ .../keebio/quefrency/keymaps/default/config.h | 24 ---------------- .../keebio/quefrency/keymaps/default/keymap.c | 4 --- .../quefrency/keymaps/default60/keymap.c | 4 --- .../quefrency/keymaps/default65/keymap.c | 6 ---- keyboards/keebio/quefrency/readme.md | 11 ++++---- keyboards/keebio/quefrency/rev6/config.h | 15 ++++------ keyboards/keebio/quefrency/rev6/keyboard.json | 6 ++++ keyboards/keebio/quefrency/rev6/rules.mk | 1 - .../keebio/rorschach/keymaps/default/config.h | 24 ---------------- .../keebio/rorschach/keymaps/default/keymap.c | 4 ++- keyboards/keebio/rorschach/readme.md | 13 ++++----- keyboards/keebio/sinc/readme.md | 2 +- .../tragicforce68/keymaps/default/keymap.c | 3 ++ keyboards/keebio/tragicforce68/readme.md | 13 ++++----- keyboards/keebio/tukey/readme.md | 10 +++++-- .../keebio/viterbi/keymaps/default/config.h | 7 ----- .../keebio/viterbi/keymaps/default/keymap.c | 4 ++- keyboards/keebio/viterbi/readme.md | 14 ++++------ .../keebio/wavelet/keymaps/default/keymap.c | 4 ++- keyboards/keebio/wavelet/readme.md | 13 ++++----- keyboards/keebio/wavelet/wavelet.c | 3 ++ 60 files changed, 197 insertions(+), 326 deletions(-) delete mode 100644 keyboards/keebio/bdn9/keymaps/test/config.h delete mode 100644 keyboards/keebio/bfo9000/keymaps/default/config.h delete mode 100644 keyboards/keebio/fourier/keymaps/default/config.h delete mode 100644 keyboards/keebio/levinson/keymaps/default/config.h delete mode 100644 keyboards/keebio/quefrency/keymaps/default/config.h delete mode 100644 keyboards/keebio/quefrency/rev6/rules.mk delete mode 100644 keyboards/keebio/rorschach/keymaps/default/config.h diff --git a/keyboards/keebio/bamfk4/config.h b/keyboards/keebio/bamfk4/config.h index e97e28f5a9..832d0afd67 100644 --- a/keyboards/keebio/bamfk4/config.h +++ b/keyboards/keebio/bamfk4/config.h @@ -4,19 +4,3 @@ #pragma once #define RGBLIGHT_DEFAULT_MODE (RGBLIGHT_MODE_RAINBOW_SWIRL + 2) - -/* - * Feature disable options - * These options are also useful to firmware size reduction. - */ - -/* disable debug print */ -//#define NO_DEBUG - -/* disable print */ -//#define NO_PRINT - -/* disable action features */ -//#define NO_ACTION_LAYER -//#define NO_ACTION_TAPPING -//#define NO_ACTION_ONESHOT diff --git a/keyboards/keebio/bdn9/keymaps/test/config.h b/keyboards/keebio/bdn9/keymaps/test/config.h deleted file mode 100644 index e09fba9232..0000000000 --- a/keyboards/keebio/bdn9/keymaps/test/config.h +++ /dev/null @@ -1,5 +0,0 @@ -#pragma once - -#ifdef RGB_MATRIX_ENABLE -# define RGB_MATRIX_KEYPRESSES -#endif diff --git a/keyboards/keebio/bdn9/rev3/config.h b/keyboards/keebio/bdn9/rev3/config.h index 3afa37bce1..98f261b801 100644 --- a/keyboards/keebio/bdn9/rev3/config.h +++ b/keyboards/keebio/bdn9/rev3/config.h @@ -4,11 +4,9 @@ #pragma once /* Defines for the RGB matrix */ -#ifdef RGB_MATRIX_ENABLE -# define WS2812_PWM_DRIVER PWMD15 -# define WS2812_PWM_CHANNEL 2 -# define WS2812_PWM_PAL_MODE 1 -# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 -# define WS2812_DMA_CHANNEL 2 -# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM15_UP -#endif +#define WS2812_PWM_DRIVER PWMD15 +#define WS2812_PWM_CHANNEL 2 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_CHANNEL 2 +#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM15_UP diff --git a/keyboards/keebio/bfo9000/keymaps/default/config.h b/keyboards/keebio/bfo9000/keymaps/default/config.h deleted file mode 100644 index a9ae679110..0000000000 --- a/keyboards/keebio/bfo9000/keymaps/default/config.h +++ /dev/null @@ -1,27 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert - -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 USE_I2C - -/* Select hand configuration */ -// #define MASTER_RIGHT -// #define EE_HANDS diff --git a/keyboards/keebio/bfo9000/keymaps/default/keymap.c b/keyboards/keebio/bfo9000/keymaps/default/keymap.c index f37ea79c40..0d28c3c5c2 100644 --- a/keyboards/keebio/bfo9000/keymaps/default/keymap.c +++ b/keyboards/keebio/bfo9000/keymaps/default/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H #define _BASE 0 diff --git a/keyboards/keebio/bfo9000/readme.md b/keyboards/keebio/bfo9000/readme.md index 059f2800a2..3fa6239680 100644 --- a/keyboards/keebio/bfo9000/readme.md +++ b/keyboards/keebio/bfo9000/readme.md @@ -1,11 +1,10 @@ -BFO-9000 -======== +# BFO-9000 A split full-size ortholinear keyboard made and sold by Keebio. Each half is a 6x9 arrangement, with breakable pieces to allow the number of rows to be customized between 4 to 6, and the number of columns to be between 7 to 9. [More info at Keebio](https://keeb.io). -Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -Hardware Supported: Pro Micro -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Pro Micro +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): @@ -13,6 +12,6 @@ Make example for this keyboard (after setting up your build environment): Example of flashing this keyboard: - make keebio/bfo9000:default:avrdude + make keebio/bfo9000:default:flash -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +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/keebio/bigswitchseat/keymaps/default/keymap.c b/keyboards/keebio/bigswitchseat/keymaps/default/keymap.c index 6d4378b995..a48f4f9165 100644 --- a/keyboards/keebio/bigswitchseat/keymaps/default/keymap.c +++ b/keyboards/keebio/bigswitchseat/keymaps/default/keymap.c @@ -5,23 +5,11 @@ // Defines names for use in layer keycodes and the keymap enum layer_names { - _MAIN, - _FN1, - _FN2, - _FN3 + _MAIN }; const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_MAIN] = LAYOUT( KC_A - ), - [_FN1] = LAYOUT( - _______ - ), - [_FN2] = LAYOUT( - _______ - ), - [_FN3] = LAYOUT( - _______ ) }; diff --git a/keyboards/keebio/chiri_ce/rev1/config.h b/keyboards/keebio/chiri_ce/rev1/config.h index b1eb9da4e9..e9d9934301 100644 --- a/keyboards/keebio/chiri_ce/rev1/config.h +++ b/keyboards/keebio/chiri_ce/rev1/config.h @@ -3,14 +3,16 @@ #pragma once -#define SPLIT_HAND_PIN GP4 #define USB_VBUS_PIN GP0 + #define SERIAL_USART_FULL_DUPLEX #define SERIAL_USART_TX_PIN GP12 #define SERIAL_USART_RX_PIN GP13 #define SERIAL_USART_PIN_SWAP + #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U + #define I2C_DRIVER I2CD2 #define I2C1_SDA_PIN GP10 #define I2C1_SCL_PIN GP11 diff --git a/keyboards/keebio/chiri_ce/rev1/keyboard.json b/keyboards/keebio/chiri_ce/rev1/keyboard.json index 9cf7f51654..aea1fb1d6f 100644 --- a/keyboards/keebio/chiri_ce/rev1/keyboard.json +++ b/keyboards/keebio/chiri_ce/rev1/keyboard.json @@ -118,6 +118,9 @@ "matrix": [4, 0] }, "enabled": true, + "handedness": { + "pin": "GP4" + }, "matrix_pins": { "right": { "cols": ["GP29", "GP28", "GP2", "GP27", "GP18", "GP7"], diff --git a/keyboards/keebio/chocopad/readme.md b/keyboards/keebio/chocopad/readme.md index 67c875d923..9a6e62178f 100644 --- a/keyboards/keebio/chocopad/readme.md +++ b/keyboards/keebio/chocopad/readme.md @@ -1,14 +1,17 @@ -Chocopad -======== +# Chocopad A 4x4 macropad keyboard using Kailh PG1350 Lower Profile Choc switches. -Keyboard Maintainer: Keebio -Hardware Supported: Chocopad PCB, Arduino Pro Micro -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: Keebio +* Hardware Supported: Chocopad PCB, Arduino Pro Micro +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): make keebio/chocopad/rev1:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +Example of flashing this keyboard: + + make keebio/chocopad/rev1: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/keebio/convolution/readme.md b/keyboards/keebio/convolution/readme.md index c1bc8ae3d8..cb7d7c35db 100644 --- a/keyboards/keebio/convolution/readme.md +++ b/keyboards/keebio/convolution/readme.md @@ -13,6 +13,6 @@ Example of flashing this keyboard: make keebio/convolution/rev1:default:flash -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +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). A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/keebio/dilly/keymaps/default/keymap.c b/keyboards/keebio/dilly/keymaps/default/keymap.c index 71a92037b6..9cef52ae4e 100644 --- a/keyboards/keebio/dilly/keymaps/default/keymap.c +++ b/keyboards/keebio/dilly/keymaps/default/keymap.c @@ -1,5 +1,7 @@ -#include QMK_KEYBOARD_H +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H #define _BASE 0 #define _FN1 1 diff --git a/keyboards/keebio/dilly/readme.md b/keyboards/keebio/dilly/readme.md index 74139eaeae..e4b6e418a3 100644 --- a/keyboards/keebio/dilly/readme.md +++ b/keyboards/keebio/dilly/readme.md @@ -1,14 +1,17 @@ -Dilly -===== +# Dilly A 3x10 ortholinear keyboard using Kailh PG1350 Lower Profile Choc switches. -Keyboard Maintainer: Keebio -Hardware Supported: Dilly PCB, Arduino Pro Micro -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: Keebio +* Hardware Supported: Dilly PCB, Arduino Pro Micro +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): make keebio/dilly:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +Example of flashing this keyboard: + + make keebio/dilly: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/keebio/dsp40/keymaps/default/keymap.c b/keyboards/keebio/dsp40/keymaps/default/keymap.c index e8d3627ff2..c1496844bb 100755 --- a/keyboards/keebio/dsp40/keymaps/default/keymap.c +++ b/keyboards/keebio/dsp40/keymaps/default/keymap.c @@ -24,8 +24,7 @@ enum custom_layer { }; enum custom_keycodes { - QWERTY = SAFE_RANGE, - LOWER, + LOWER = SAFE_RANGE, RAISE, ADJUST, }; diff --git a/keyboards/keebio/dsp40/readme.md b/keyboards/keebio/dsp40/readme.md index c6b195c404..1a37587313 100644 --- a/keyboards/keebio/dsp40/readme.md +++ b/keyboards/keebio/dsp40/readme.md @@ -10,4 +10,8 @@ Make example for this keyboard (after setting up your build environment): make keebio/dsp40/rev1:default +Example of flashing this keyboard: + + make keebio/dsp40/rev1: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/keebio/dsp40/rev1/readme.md b/keyboards/keebio/dsp40/rev1/readme.md index ee62ba7886..8852ef5501 100644 --- a/keyboards/keebio/dsp40/rev1/readme.md +++ b/keyboards/keebio/dsp40/rev1/readme.md @@ -10,4 +10,8 @@ Make example for this keyboard (after setting up your build environment): make keebio/dsp40/rev1:default +Example of flashing this keyboard: + + make keebio/dsp40/rev1: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/keebio/ergodicity/readme.md b/keyboards/keebio/ergodicity/readme.md index 61f4ee658c..3fe77848e3 100644 --- a/keyboards/keebio/ergodicity/readme.md +++ b/keyboards/keebio/ergodicity/readme.md @@ -1,11 +1,15 @@ # Ergodicity -Keyboard Maintainer: [nooges/bakingpy](https://github.com/nooges) -Hardware Supported: Ergodicity PCB w/ATmega32u4 -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [nooges/bakingpy](https://github.com/nooges) +* Hardware Supported: Ergodicity PCB w/ATmega32u4 +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): - make keebio/ergodicity:default:dfu + make keebio/ergodicity:default + +Example of flashing this keyboard: + + make keebio/ergodicity: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/keebio/fourier/keymaps/default/config.h b/keyboards/keebio/fourier/keymaps/default/config.h deleted file mode 100644 index fa952ef4c3..0000000000 --- a/keyboards/keebio/fourier/keymaps/default/config.h +++ /dev/null @@ -1,23 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert - -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 USE_I2C diff --git a/keyboards/keebio/fourier/keymaps/default/keymap.c b/keyboards/keebio/fourier/keymaps/default/keymap.c index 6fa9ab5799..0c8e1168af 100644 --- a/keyboards/keebio/fourier/keymaps/default/keymap.c +++ b/keyboards/keebio/fourier/keymaps/default/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. @@ -8,10 +11,6 @@ #define _FN1 1 #define _FN2 2 -enum custom_keycodes { - QWERTY = SAFE_RANGE, -}; - #define KC_FN1 MO(_FN1) #define KC_FN2 MO(_FN2) #define SPFN1 LT(_FN1, KC_SPACE) diff --git a/keyboards/keebio/fourier/readme.md b/keyboards/keebio/fourier/readme.md index c18d1a7484..d3d0f81f1e 100644 --- a/keyboards/keebio/fourier/readme.md +++ b/keyboards/keebio/fourier/readme.md @@ -1,11 +1,10 @@ -Fourier -======== +# Fourier A split 40% staggered keyboard made and sold by Keebio. [More info at Keebio](https://keeb.io). -Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -Hardware Supported: Pro Micro -Hardware Availability: [Keebio](https://keeb.io/collections/frontpage/products/fourier-40-split-staggered-keyboard) +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Pro Micro +* Hardware Availability: [Keebio](https://keeb.io/collections/frontpage/products/fourier-40-split-staggered-keyboard) Make example for this keyboard (after setting up your build environment): @@ -13,8 +12,8 @@ Make example for this keyboard (after setting up your build environment): Example of flashing this keyboard: - make keebio/fourier:default:avrdude + make keebio/fourier:default:flash -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +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). A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/keebio/iris/readme.md b/keyboards/keebio/iris/readme.md index e98f985394..d1d498c67e 100644 --- a/keyboards/keebio/iris/readme.md +++ b/keyboards/keebio/iris/readme.md @@ -1,11 +1,10 @@ -Iris -==== +# Iris A split ergo 4x6 keyboard with 3 or 4 thumb keys made and sold by Keebio. [More info at Keebio](https://keeb.io). -Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -Hardware Supported: Pro Micro, ATmega32u4 -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Pro Micro, ATmega32u4 +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/keebio/iris/rev1/rev1.c b/keyboards/keebio/iris/rev1/rev1.c index e05b758a44..ea8029f47c 100644 --- a/keyboards/keebio/iris/rev1/rev1.c +++ b/keyboards/keebio/iris/rev1/rev1.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" #ifdef SWAP_HANDS_ENABLE diff --git a/keyboards/keebio/iris/rev1_led/rev1_led.c b/keyboards/keebio/iris/rev1_led/rev1_led.c index e05b758a44..ea8029f47c 100644 --- a/keyboards/keebio/iris/rev1_led/rev1_led.c +++ b/keyboards/keebio/iris/rev1_led/rev1_led.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" #ifdef SWAP_HANDS_ENABLE diff --git a/keyboards/keebio/iris_lm/g1/config.h b/keyboards/keebio/iris_lm/g1/config.h index 952033edf1..ca19ea6402 100644 --- a/keyboards/keebio/iris_lm/g1/config.h +++ b/keyboards/keebio/iris_lm/g1/config.h @@ -13,14 +13,11 @@ #define SERIAL_USART_PIN_SWAP #define USB_VBUS_PIN C6 -#define SPLIT_HAND_PIN A0 /* Defines for the RGB matrix */ -#ifdef RGB_MATRIX_ENABLE -# define WS2812_PWM_DRIVER PWMD3 -# define WS2812_PWM_CHANNEL 4 -# define WS2812_PWM_PAL_MODE 10 -# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 -# define WS2812_DMA_CHANNEL 2 -# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP -#endif +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 10 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_CHANNEL 2 +#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP diff --git a/keyboards/keebio/iris_lm/g1/keyboard.json b/keyboards/keebio/iris_lm/g1/keyboard.json index 6aca0c9bac..20cd78d937 100644 --- a/keyboards/keebio/iris_lm/g1/keyboard.json +++ b/keyboards/keebio/iris_lm/g1/keyboard.json @@ -33,6 +33,9 @@ ] } }, + "handedness": { + "pin": "A0" + }, "matrix_pins": { "right": { "cols": ["C11", "C13", "B6", "B9", "B12", "B2"], diff --git a/keyboards/keebio/iris_lm/k1/config.h b/keyboards/keebio/iris_lm/k1/config.h index 952033edf1..ca19ea6402 100644 --- a/keyboards/keebio/iris_lm/k1/config.h +++ b/keyboards/keebio/iris_lm/k1/config.h @@ -13,14 +13,11 @@ #define SERIAL_USART_PIN_SWAP #define USB_VBUS_PIN C6 -#define SPLIT_HAND_PIN A0 /* Defines for the RGB matrix */ -#ifdef RGB_MATRIX_ENABLE -# define WS2812_PWM_DRIVER PWMD3 -# define WS2812_PWM_CHANNEL 4 -# define WS2812_PWM_PAL_MODE 10 -# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 -# define WS2812_DMA_CHANNEL 2 -# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP -#endif +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 10 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_CHANNEL 2 +#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP diff --git a/keyboards/keebio/iris_lm/k1/keyboard.json b/keyboards/keebio/iris_lm/k1/keyboard.json index e5b0d5c655..3a86f6253b 100644 --- a/keyboards/keebio/iris_lm/k1/keyboard.json +++ b/keyboards/keebio/iris_lm/k1/keyboard.json @@ -18,6 +18,9 @@ }, "split": { "enabled": true, + "handedness": { + "pin": "A0" + }, "matrix_pins": { "right": { "cols": ["C11", "C13", "B6", "B9", "B12", "B2"], diff --git a/keyboards/keebio/kbo5000/keymaps/default/keymap.c b/keyboards/keebio/kbo5000/keymaps/default/keymap.c index e164711fc9..e3ad5fe6fa 100644 --- a/keyboards/keebio/kbo5000/keymaps/default/keymap.c +++ b/keyboards/keebio/kbo5000/keymaps/default/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H enum encoder_names { diff --git a/keyboards/keebio/kbo5000/keymaps/iso/keymap.c b/keyboards/keebio/kbo5000/keymaps/iso/keymap.c index b08c92d7e1..78b3023267 100644 --- a/keyboards/keebio/kbo5000/keymaps/iso/keymap.c +++ b/keyboards/keebio/kbo5000/keymaps/iso/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H enum encoder_names { diff --git a/keyboards/keebio/kbo5000/readme.md b/keyboards/keebio/kbo5000/readme.md index 1f1f63889e..2208542122 100644 --- a/keyboards/keebio/kbo5000/readme.md +++ b/keyboards/keebio/kbo5000/readme.md @@ -15,6 +15,6 @@ Example of flashing this keyboard: Handedness detection is already hardwired onto the PCB, so no need to deal with `EE_HANDS` or flashing .eep files. -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +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). A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/keebio/laplace/keymaps/default/keymap.c b/keyboards/keebio/laplace/keymaps/default/keymap.c index fbd88c72af..c45a7956e5 100644 --- a/keyboards/keebio/laplace/keymaps/default/keymap.c +++ b/keyboards/keebio/laplace/keymaps/default/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H #define _BASE 0 diff --git a/keyboards/keebio/laplace/readme.md b/keyboards/keebio/laplace/readme.md index 4292483bc8..f71efb0c37 100644 --- a/keyboards/keebio/laplace/readme.md +++ b/keyboards/keebio/laplace/readme.md @@ -1,11 +1,10 @@ -Laplace -======= +# Laplace A 40% staggered keyboard made and sold by Keebio. [More info at Keebio](https://keeb.io). -Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -Hardware Supported: Pro Micro -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Pro Micro +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): @@ -13,8 +12,8 @@ Make example for this keyboard (after setting up your build environment): Example of flashing this keyboard: - make keebio/laplace:default:avrdude + make keebio/laplace:default:flash -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +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). A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/keebio/levinson/keymaps/default/config.h b/keyboards/keebio/levinson/keymaps/default/config.h deleted file mode 100644 index be2d71e8f0..0000000000 --- a/keyboards/keebio/levinson/keymaps/default/config.h +++ /dev/null @@ -1,28 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert -Copyright 2018 Danny Nguyen - -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 USE_I2C - -/* Select hand configuration */ -// #define MASTER_RIGHT -// #define EE_HANDS diff --git a/keyboards/keebio/levinson/keymaps/default/keymap.c b/keyboards/keebio/levinson/keymaps/default/keymap.c index 20be1edd39..b3f4e17124 100644 --- a/keyboards/keebio/levinson/keymaps/default/keymap.c +++ b/keyboards/keebio/levinson/keymaps/default/keymap.c @@ -1,5 +1,7 @@ -#include QMK_KEYBOARD_H +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. diff --git a/keyboards/keebio/levinson/levinson.c b/keyboards/keebio/levinson/levinson.c index 6f1a050e80..e78585b731 100644 --- a/keyboards/keebio/levinson/levinson.c +++ b/keyboards/keebio/levinson/levinson.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" #ifdef SWAP_HANDS_ENABLE diff --git a/keyboards/keebio/levinson/readme.md b/keyboards/keebio/levinson/readme.md index f328aa4205..2c63b7d8f5 100644 --- a/keyboards/keebio/levinson/readme.md +++ b/keyboards/keebio/levinson/readme.md @@ -1,11 +1,10 @@ -Levinson -======== +# Levinson A split 40% split 4x12 ortholinear keyboard made and sold by Keebio. It's essentially a Let's Split with LED backlight support and 2u thumb key support. [More info at Keebio](https://keeb.io). -Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -Hardware Supported: Pro Micro, Elite-C -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Pro Micro, Elite-C +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): @@ -13,7 +12,7 @@ Make example for this keyboard (after setting up your build environment): Example of flashing this keyboard with Pro micro: - make keebio/levinson/rev3:default:avrdude + make keebio/levinson/rev3:default:flash Example of flashing this keyboard with Elite-C: diff --git a/keyboards/keebio/nyquist/readme.md b/keyboards/keebio/nyquist/readme.md index 40e7ebf3d2..1bfcd59bfa 100644 --- a/keyboards/keebio/nyquist/readme.md +++ b/keyboards/keebio/nyquist/readme.md @@ -1,11 +1,10 @@ -Nyquist -======= +# Nyquist A split 60% split 5x12 ortholinear keyboard made and sold by Keebio. [More info at Keebio](https://keeb.io). -Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -Hardware Supported: Pro Micro, ATmega32u4 -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Pro Micro, ATmega32u4 +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): @@ -15,6 +14,6 @@ Example of flashing this keyboard: make keebio/nyquist/rev3:default:flash -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +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). A build guide for this keyboard can be found here: [Nyquist Build Guide](https://docs.keeb.io) diff --git a/keyboards/keebio/nyquist/rev5/config.h b/keyboards/keebio/nyquist/rev5/config.h index c4bbd6c5b2..f05cd8695f 100644 --- a/keyboards/keebio/nyquist/rev5/config.h +++ b/keyboards/keebio/nyquist/rev5/config.h @@ -3,8 +3,6 @@ #pragma once -#define SPLIT_HAND_PIN GP23 - #define USB_VBUS_PIN GP18 #define SERIAL_USART_FULL_DUPLEX diff --git a/keyboards/keebio/nyquist/rev5/keyboard.json b/keyboards/keebio/nyquist/rev5/keyboard.json index fc03c00e29..6ff3dd3821 100644 --- a/keyboards/keebio/nyquist/rev5/keyboard.json +++ b/keyboards/keebio/nyquist/rev5/keyboard.json @@ -25,6 +25,9 @@ ] } }, + "handedness": { + "pin": "GP23" + }, "matrix_pins": { "right":{ "cols": ["GP25", "GP29", "GP20", "GP11", "GP3", "GP2"], diff --git a/keyboards/keebio/quefrency/keymaps/default/config.h b/keyboards/keebio/quefrency/keymaps/default/config.h deleted file mode 100644 index 53bf8fb933..0000000000 --- a/keyboards/keebio/quefrency/keymaps/default/config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* -This is the c configuration file for the keymap - -Copyright 2012 Jun Wako -Copyright 2015 Jack Humbert -Copyright 2018 Danny Nguyen - -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 USE_I2C diff --git a/keyboards/keebio/quefrency/keymaps/default/keymap.c b/keyboards/keebio/quefrency/keymaps/default/keymap.c index 48dcd73eff..35fb3eec1b 100644 --- a/keyboards/keebio/quefrency/keymaps/default/keymap.c +++ b/keyboards/keebio/quefrency/keymaps/default/keymap.c @@ -12,10 +12,6 @@ enum custom_layer { _FN1, }; -enum custom_keycodes { - QWERTY = SAFE_RANGE, -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT_65_with_macro( KC_F1, KC_F2, 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_DEL, KC_BSPC, KC_HOME, diff --git a/keyboards/keebio/quefrency/keymaps/default60/keymap.c b/keyboards/keebio/quefrency/keymaps/default60/keymap.c index f3545dfbdc..2f06f69309 100644 --- a/keyboards/keebio/quefrency/keymaps/default60/keymap.c +++ b/keyboards/keebio/quefrency/keymaps/default60/keymap.c @@ -12,10 +12,6 @@ enum custom_layer { _FN1, }; -enum custom_keycodes { - QWERTY = SAFE_RANGE, -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT_60( 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_DEL, KC_BSPC, diff --git a/keyboards/keebio/quefrency/keymaps/default65/keymap.c b/keyboards/keebio/quefrency/keymaps/default65/keymap.c index 980dd95eed..0cdc7dbcdc 100644 --- a/keyboards/keebio/quefrency/keymaps/default65/keymap.c +++ b/keyboards/keebio/quefrency/keymaps/default65/keymap.c @@ -3,8 +3,6 @@ #include QMK_KEYBOARD_H -extern keymap_config_t keymap_config; - // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. // Layer names don't all need to be of the same length, obviously, and you can also skip them @@ -12,10 +10,6 @@ extern keymap_config_t keymap_config; #define _BASE 0 #define _FN1 1 -enum custom_keycodes { - QWERTY = SAFE_RANGE, -}; - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT_65( 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_DEL, KC_BSPC, KC_HOME, diff --git a/keyboards/keebio/quefrency/readme.md b/keyboards/keebio/quefrency/readme.md index dd2bde88f4..2138a5d14b 100644 --- a/keyboards/keebio/quefrency/readme.md +++ b/keyboards/keebio/quefrency/readme.md @@ -1,11 +1,10 @@ -Quefrency -========= +# Quefrency A split 60/65% staggered keyboard made and sold by Keebio. [More info at Keebio](https://keeb.io). -Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -Hardware Supported: Pro Micro (Rev. 1), ATmega32u4 (Rev. 2 & 3) -Hardware Availability: [Keebio](https://keeb.io/) +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Pro Micro (Rev. 1), ATmega32u4 (Rev. 2 & 3) +* Hardware Availability: [Keebio](https://keeb.io/) Make example for this keyboard (after setting up your build environment): @@ -17,6 +16,6 @@ Example of flashing this keyboard: Handedness detection is already hardwired onto the PCB, so no need to deal with `EE_HANDS` or flashing .eep files. -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +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). A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/keebio/quefrency/rev6/config.h b/keyboards/keebio/quefrency/rev6/config.h index 952033edf1..ca19ea6402 100644 --- a/keyboards/keebio/quefrency/rev6/config.h +++ b/keyboards/keebio/quefrency/rev6/config.h @@ -13,14 +13,11 @@ #define SERIAL_USART_PIN_SWAP #define USB_VBUS_PIN C6 -#define SPLIT_HAND_PIN A0 /* Defines for the RGB matrix */ -#ifdef RGB_MATRIX_ENABLE -# define WS2812_PWM_DRIVER PWMD3 -# define WS2812_PWM_CHANNEL 4 -# define WS2812_PWM_PAL_MODE 10 -# define WS2812_DMA_STREAM STM32_DMA1_STREAM2 -# define WS2812_DMA_CHANNEL 2 -# define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP -#endif +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_PWM_CHANNEL 4 +#define WS2812_PWM_PAL_MODE 10 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_CHANNEL 2 +#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP diff --git a/keyboards/keebio/quefrency/rev6/keyboard.json b/keyboards/keebio/quefrency/rev6/keyboard.json index 84629eb4cf..ac488daa08 100644 --- a/keyboards/keebio/quefrency/rev6/keyboard.json +++ b/keyboards/keebio/quefrency/rev6/keyboard.json @@ -200,12 +200,18 @@ ] } }, + "handedness": { + "pin": "A0" + }, "matrix_pins": { "right": { "cols": ["B2", "B1", "B0", "B12", "B13", "A7", "B6", "C13", "C14"], "rows": ["A5", "A4", "A3", "B5", "F1"] } }, + "serial": { + "driver": "usart" + }, "transport": { "sync": { "matrix_state": true diff --git a/keyboards/keebio/quefrency/rev6/rules.mk b/keyboards/keebio/quefrency/rev6/rules.mk deleted file mode 100644 index c6e2988321..0000000000 --- a/keyboards/keebio/quefrency/rev6/rules.mk +++ /dev/null @@ -1 +0,0 @@ -SERIAL_DRIVER = usart diff --git a/keyboards/keebio/rorschach/keymaps/default/config.h b/keyboards/keebio/rorschach/keymaps/default/config.h deleted file mode 100644 index da32daebb3..0000000000 --- a/keyboards/keebio/rorschach/keymaps/default/config.h +++ /dev/null @@ -1,24 +0,0 @@ -/* -Copyright 2018 Danny Nguyen - -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 USE_I2C - -/* Select hand configuration */ -// #define MASTER_RIGHT -// #define EE_HANDS diff --git a/keyboards/keebio/rorschach/keymaps/default/keymap.c b/keyboards/keebio/rorschach/keymaps/default/keymap.c index 2949164c34..df03718193 100644 --- a/keyboards/keebio/rorschach/keymaps/default/keymap.c +++ b/keyboards/keebio/rorschach/keymaps/default/keymap.c @@ -1,5 +1,7 @@ -#include QMK_KEYBOARD_H +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H enum layer_names { _QWERTY, diff --git a/keyboards/keebio/rorschach/readme.md b/keyboards/keebio/rorschach/readme.md index 1a623a5353..f048cd307a 100644 --- a/keyboards/keebio/rorschach/readme.md +++ b/keyboards/keebio/rorschach/readme.md @@ -1,11 +1,10 @@ -Rorschach -========= +# Rorschach A split ortholinear 4x6 keyboard with 2 additional thumb keys and sold by Keebio. [More info at Keebio](https://keeb.io). -Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -Hardware Supported: Pro Micro -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Pro Micro +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): @@ -13,8 +12,8 @@ Make example for this keyboard (after setting up your build environment): Example of flashing this keyboard: - make keebio/rorschach/rev1:default:avrdude + make keebio/rorschach/rev1:default:flash -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +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). A build guide for this keyboard can be found here: [Iris Build Guide](https://docs.keeb.io/iris-build-guide.html) diff --git a/keyboards/keebio/sinc/readme.md b/keyboards/keebio/sinc/readme.md index 29d9ed0415..9ffdf29c42 100644 --- a/keyboards/keebio/sinc/readme.md +++ b/keyboards/keebio/sinc/readme.md @@ -15,6 +15,6 @@ Example of flashing this keyboard: Handedness detection is already hardwired onto the PCB, so no need to deal with `EE_HANDS` or flashing .eep files. -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +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). A build guide for this keyboard can be found here: [Keebio Build Guides](https://docs.keeb.io) diff --git a/keyboards/keebio/tragicforce68/keymaps/default/keymap.c b/keyboards/keebio/tragicforce68/keymaps/default/keymap.c index 59076d4ecf..ee1c567c1b 100644 --- a/keyboards/keebio/tragicforce68/keymaps/default/keymap.c +++ b/keyboards/keebio/tragicforce68/keymaps/default/keymap.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include QMK_KEYBOARD_H #define _QWERTY 0 diff --git a/keyboards/keebio/tragicforce68/readme.md b/keyboards/keebio/tragicforce68/readme.md index c3ea92d7ad..07a673e848 100644 --- a/keyboards/keebio/tragicforce68/readme.md +++ b/keyboards/keebio/tragicforce68/readme.md @@ -1,11 +1,10 @@ -Tragicforce 68 -=============== +# Tragicforce 68 Magicforce 68 with [Tragicforce 68 replacement PCB](https://keeb.io/products/mf68-magicforce-68-pcb-replacement-kit) from Keebio. -Keyboard Maintainer: [Keebio](https://keeb.io) -Hardware Supported: Pro Micro -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [Keebio](https://keeb.io) +* Hardware Supported: Pro Micro +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): @@ -13,6 +12,6 @@ Make example for this keyboard (after setting up your build environment): Example of flashing this keyboard: - make keebio/tragicforce68:default:avrdude + make keebio/tragicforce68:default:flash -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +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/keebio/tukey/readme.md b/keyboards/keebio/tukey/readme.md index 21527b6bf4..7e0334084c 100644 --- a/keyboards/keebio/tukey/readme.md +++ b/keyboards/keebio/tukey/readme.md @@ -2,12 +2,16 @@ 2-key keyboard for Big Switches -Keyboard Maintainer: [nooges/Keebio](https://github.com/nooges) -Hardware Supported: Pro Micro, Elite-C -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [nooges/Keebio](https://github.com/nooges) +* Hardware Supported: Pro Micro, Elite-C +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): make keebio/tukey:default +Example of flashing this keyboard: + + make keebio/tukey: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/keebio/viterbi/keymaps/default/config.h b/keyboards/keebio/viterbi/keymaps/default/config.h index acc5970dcb..ffe91d3bee 100644 --- a/keyboards/keebio/viterbi/keymaps/default/config.h +++ b/keyboards/keebio/viterbi/keymaps/default/config.h @@ -17,13 +17,6 @@ along with this program. If not, see . #pragma once -// #define USE_I2C - -/* Select hand configuration */ - -// #define MASTER_RIGHT -// #define EE_HANDS - #undef RGBLIGHT_LED_COUNT #define RGBLIGHT_EFFECT_BREATHING #define RGBLIGHT_EFFECT_RAINBOW_MOOD diff --git a/keyboards/keebio/viterbi/keymaps/default/keymap.c b/keyboards/keebio/viterbi/keymaps/default/keymap.c index e37fc8f790..4a658ac6ec 100644 --- a/keyboards/keebio/viterbi/keymaps/default/keymap.c +++ b/keyboards/keebio/viterbi/keymaps/default/keymap.c @@ -1,5 +1,7 @@ -#include QMK_KEYBOARD_H +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. diff --git a/keyboards/keebio/viterbi/readme.md b/keyboards/keebio/viterbi/readme.md index 2e475100b6..393fd6bbfb 100644 --- a/keyboards/keebio/viterbi/readme.md +++ b/keyboards/keebio/viterbi/readme.md @@ -1,21 +1,19 @@ -Viterbi -======= +# Viterbi A split 5x14 ortholinear keyboard kit made and sold by Keebio. [More info at Keebio](https://keeb.io) -Keyboard Maintainer: [Bakingpy](https://github.com/nooges) -Hardware Supported: Pro Micro -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [Bakingpy](https://github.com/nooges) +* Hardware Supported: Pro Micro +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): make keebio/viterbi/rev1:default - Example of flashing this keyboard: - make keebio/viterbi/rev1:default:avrdude + make keebio/viterbi/rev1:default:flash -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +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). A build guide for this keyboard can be found here: [Viterbi Build Guide](https://docs.keeb.io) diff --git a/keyboards/keebio/wavelet/keymaps/default/keymap.c b/keyboards/keebio/wavelet/keymaps/default/keymap.c index 20be1edd39..b3f4e17124 100644 --- a/keyboards/keebio/wavelet/keymaps/default/keymap.c +++ b/keyboards/keebio/wavelet/keymaps/default/keymap.c @@ -1,5 +1,7 @@ -#include QMK_KEYBOARD_H +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H // Each layer gets a name for readability, which is then used in the keymap matrix below. // The underscores don't mean anything - you can have a layer called STUFF or any other name. diff --git a/keyboards/keebio/wavelet/readme.md b/keyboards/keebio/wavelet/readme.md index a107289bb4..e77344bfb6 100644 --- a/keyboards/keebio/wavelet/readme.md +++ b/keyboards/keebio/wavelet/readme.md @@ -1,11 +1,10 @@ -Wavelet -======= +# Wavelet A 4x12 ortholinear keyboard using Kailh Choc Low-Profile switches made and sold by [Keebio](https://keeb.io). -Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) -Hardware Supported: Pro Micro -Hardware Availability: [Keebio](https://keeb.io) +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Pro Micro +* Hardware Availability: [Keebio](https://keeb.io) Make example for this keyboard (after setting up your build environment): @@ -13,8 +12,8 @@ Make example for this keyboard (after setting up your build environment): Example of flashing this keyboard: - make keebio/wavelet:default:avrdude + make keebio/wavelet:default:flash -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. +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). A build guide for this keyboard can be found here: [Levinson Build Guide](https://docs.keeb.io) diff --git a/keyboards/keebio/wavelet/wavelet.c b/keyboards/keebio/wavelet/wavelet.c index 6f1a050e80..e78585b731 100644 --- a/keyboards/keebio/wavelet/wavelet.c +++ b/keyboards/keebio/wavelet/wavelet.c @@ -1,3 +1,6 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + #include "quantum.h" #ifdef SWAP_HANDS_ENABLE From a4b112b1efa1e47bf0cd7da7ffd2120e9dfb6ce0 Mon Sep 17 00:00:00 2001 From: silvinor <366673+silvinor@users.noreply.github.com> Date: Sat, 20 Sep 2025 13:37:18 +1000 Subject: [PATCH 059/255] [keyboard] Binepad KnobX1 - refactor `x1_layer_led` function as weak (#25668) refactor `x1_layer_led` function as weak --- keyboards/binepad/knobx1/knobx1.c | 7 +++++++ keyboards/binepad/knobx1/knobx1.h | 8 +------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/keyboards/binepad/knobx1/knobx1.c b/keyboards/binepad/knobx1/knobx1.c index 7f299b67e3..37602ca78c 100644 --- a/keyboards/binepad/knobx1/knobx1.c +++ b/keyboards/binepad/knobx1/knobx1.c @@ -9,6 +9,13 @@ # define X1_KEYMAP_LAYER_COUNT 4 #endif +__attribute__((weak)) void x1_layer_led(uint8_t lyr) { + gpio_write_pin(IND1_LED, lyr >= 0); + gpio_write_pin(IND2_LED, lyr >= 1); + gpio_write_pin(IND3_LED, lyr >= 2); + gpio_write_pin(IND4_LED, lyr >= 3); +} + void keyboard_pre_init_kb(void) { const pin_t indicator_leds[4] = {IND1_LED, IND2_LED, IND3_LED, IND4_LED}; for (int i = 0; i < 4; i++) { diff --git a/keyboards/binepad/knobx1/knobx1.h b/keyboards/binepad/knobx1/knobx1.h index 7645124057..3932fbd448 100644 --- a/keyboards/binepad/knobx1/knobx1.h +++ b/keyboards/binepad/knobx1/knobx1.h @@ -38,12 +38,6 @@ static inline void x1_led_3_off(void) { gpio_write_pin_low(IND3_LED); } static inline void x1_led_4_off(void) { gpio_write_pin_low(IND4_LED); } // clang-format on -static inline void x1_layer_led(uint8_t lyr) { - gpio_write_pin(IND1_LED, lyr >= 0); - gpio_write_pin(IND2_LED, lyr >= 1); - gpio_write_pin(IND3_LED, lyr >= 2); - gpio_write_pin(IND4_LED, lyr >= 3); -} - +void x1_layer_led(uint8_t lyr); bool process_x1_layer_up(keyrecord_t *record); bool process_x1_layer_down(keyrecord_t *record); From 115bf771a8b07bd571ccac52f091e081794d40fd Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 21 Sep 2025 21:40:30 +1000 Subject: [PATCH 060/255] Custom oled fonts cleanup (#25665) --- keyboards/anavi/macropad8/config.h | 7 +- keyboards/anavi/macropad8/glcdfont.c | 232 --------------- keyboards/gkeyboard/greatpad/config.h | 8 +- keyboards/gkeyboard/greatpad/lib/glcdfont.c | 236 ---------------- .../kimiko/keymaps/default/glcdfont.c | 237 ---------------- .../{ => rev1}/keymaps/default/config.h | 4 - .../{ => rev1}/keymaps/default/keymap.c | 0 .../{ => rev1}/keymaps/default/rules.mk | 1 - .../kimiko/{post_config.h => rev2/config.h} | 6 +- .../keycapsss/kimiko/{ => rev2}/glcdfont.c | 0 .../{ => rev3}/keymaps/oled/config.h | 2 +- .../{ => rev3}/keymaps/oled/keymap.c | 0 .../{ => rev3}/keymaps/oled/readme.md | 0 .../{ => rev3}/keymaps/oled/rules.mk | 0 .../{keymaps/oled => rev3/lib}/glcdfont.c | 0 .../marksard/treadstone48/common/glcdfont.c | 233 --------------- .../treadstone48/keymaps/default/config.h | 2 - .../rev1/keymaps/like_jis_rs/config.h | 2 - keyboards/orthodox/common/glcdfont.c | 265 ------------------ keyboards/rate/pistachio_pro/config.h | 1 - keyboards/rate/pistachio_pro/lib/glcdfont.c | 232 --------------- keyboards/rgbkb/zygomorph/common/glcdfont.c | 233 --------------- 22 files changed, 8 insertions(+), 1693 deletions(-) delete mode 100644 keyboards/anavi/macropad8/glcdfont.c delete mode 100644 keyboards/gkeyboard/greatpad/lib/glcdfont.c delete mode 100644 keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c rename keyboards/keycapsss/kimiko/{ => rev1}/keymaps/default/config.h (91%) rename keyboards/keycapsss/kimiko/{ => rev1}/keymaps/default/keymap.c (100%) rename keyboards/keycapsss/kimiko/{ => rev1}/keymaps/default/rules.mk (95%) rename keyboards/keycapsss/kimiko/{post_config.h => rev2/config.h} (87%) rename keyboards/keycapsss/kimiko/{ => rev2}/glcdfont.c (100%) rename keyboards/keycapsss/plaid_pad/{ => rev3}/keymaps/oled/config.h (90%) rename keyboards/keycapsss/plaid_pad/{ => rev3}/keymaps/oled/keymap.c (100%) rename keyboards/keycapsss/plaid_pad/{ => rev3}/keymaps/oled/readme.md (100%) rename keyboards/keycapsss/plaid_pad/{ => rev3}/keymaps/oled/rules.mk (100%) rename keyboards/keycapsss/plaid_pad/{keymaps/oled => rev3/lib}/glcdfont.c (100%) delete mode 100644 keyboards/marksard/treadstone48/common/glcdfont.c delete mode 100644 keyboards/orthodox/common/glcdfont.c delete mode 100644 keyboards/rate/pistachio_pro/lib/glcdfont.c delete mode 100644 keyboards/rgbkb/zygomorph/common/glcdfont.c diff --git a/keyboards/anavi/macropad8/config.h b/keyboards/anavi/macropad8/config.h index f7c7b4b44c..edcc85f722 100644 --- a/keyboards/anavi/macropad8/config.h +++ b/keyboards/anavi/macropad8/config.h @@ -17,8 +17,5 @@ along with this program. If not, see . #pragma once -#ifdef OLED_ENABLE -# define OLED_DISPLAY_128X64 -# define OLED_TIMEOUT 60000 -# define OLED_FONT_H "keyboards/anavi/macropad8/glcdfont.c" -#endif +#define OLED_DISPLAY_128X64 +#define OLED_TIMEOUT 60000 diff --git a/keyboards/anavi/macropad8/glcdfont.c b/keyboards/anavi/macropad8/glcdfont.c deleted file mode 100644 index 10ce3b3457..0000000000 --- a/keyboards/anavi/macropad8/glcdfont.c +++ /dev/null @@ -1,232 +0,0 @@ -#include "progmem.h" - -// Corne 8x6 font with QMK Firmware Logo -// Online editor: https://helixfonteditor.netlify.com/ - -// clang-format off -const unsigned char font[] PROGMEM = { -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, -0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, -0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, -0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, -0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, -0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, -0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, -0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, -0x00, 0x18, 0x24, 0x18, 0x00, 0x00, -0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, -0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, -0x26, 0x29, 0x79, 0x29, 0x26, 0x00, -0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, -0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, -0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, -0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, -0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, -0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, -0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, -0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, -0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, -0x60, 0x60, 0x60, 0x60, 0x60, 0x00, -0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, -0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, -0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, -0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, -0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, -0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, -0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, -0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, -0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, -0x00, 0x07, 0x00, 0x07, 0x00, 0x00, -0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, -0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, -0x23, 0x13, 0x08, 0x64, 0x62, 0x00, -0x36, 0x49, 0x56, 0x20, 0x50, 0x00, -0x00, 0x08, 0x07, 0x03, 0x00, 0x00, -0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, -0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, -0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, -0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, -0x00, 0x80, 0x70, 0x30, 0x00, 0x00, -0x08, 0x08, 0x08, 0x08, 0x08, 0x00, -0x00, 0x00, 0x60, 0x60, 0x00, 0x00, -0x20, 0x10, 0x08, 0x04, 0x02, 0x00, -0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, -0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, -0x72, 0x49, 0x49, 0x49, 0x46, 0x00, -0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, -0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, -0x27, 0x45, 0x45, 0x45, 0x39, 0x00, -0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, -0x41, 0x21, 0x11, 0x09, 0x07, 0x00, -0x36, 0x49, 0x49, 0x49, 0x36, 0x00, -0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, -0x00, 0x00, 0x14, 0x00, 0x00, 0x00, -0x00, 0x40, 0x34, 0x00, 0x00, 0x00, -0x00, 0x08, 0x14, 0x22, 0x41, 0x00, -0x14, 0x14, 0x14, 0x14, 0x14, 0x00, -0x00, 0x41, 0x22, 0x14, 0x08, 0x00, -0x02, 0x01, 0x59, 0x09, 0x06, 0x00, -0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, -0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, -0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, -0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, -0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, -0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, -0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, -0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, -0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, -0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, -0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, -0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, -0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, -0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, -0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, -0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, -0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, -0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, -0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, -0x26, 0x49, 0x49, 0x49, 0x32, 0x00, -0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, -0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, -0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, -0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, -0x63, 0x14, 0x08, 0x14, 0x63, 0x00, -0x03, 0x04, 0x78, 0x04, 0x03, 0x00, -0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, -0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, -0x02, 0x04, 0x08, 0x10, 0x20, 0x00, -0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, -0x04, 0x02, 0x01, 0x02, 0x04, 0x00, -0x40, 0x40, 0x40, 0x40, 0x40, 0x00, -0x00, 0x03, 0x07, 0x08, 0x00, 0x00, -0x20, 0x54, 0x54, 0x78, 0x40, 0x00, -0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, -0x38, 0x44, 0x44, 0x44, 0x28, 0x00, -0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, -0x38, 0x54, 0x54, 0x54, 0x18, 0x00, -0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, -0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, -0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, -0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, -0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, -0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, -0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, -0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, -0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, -0x38, 0x44, 0x44, 0x44, 0x38, 0x00, -0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, -0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, -0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, -0x48, 0x54, 0x54, 0x54, 0x24, 0x00, -0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, -0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, -0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, -0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, -0x44, 0x28, 0x10, 0x28, 0x44, 0x00, -0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, -0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, -0x00, 0x08, 0x36, 0x41, 0x00, 0x00, -0x00, 0x00, 0x77, 0x00, 0x00, 0x00, -0x00, 0x41, 0x36, 0x08, 0x00, 0x00, -0x02, 0x01, 0x02, 0x04, 0x02, 0x00, -0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, -0xF0, 0xF8, 0xF8, 0x18, 0x00, 0xC0, -0xF0, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, -0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0, -0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, -0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, -0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, -0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, -0x00, 0x00, 0x00, 0xE0, 0xE0, 0xC0, -0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, -0x00, 0xE0, 0xE0, 0xC0, 0xC0, 0xE0, -0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, -0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, -0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, -0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, -0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, -0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, -0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, -0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, -0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, -0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, -0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0xF8, 0xFC, 0xFE, -0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, -0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, -0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -0xFF, 0x1F, 0x07, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xFF, 0xFF, 0xFF, 0x81, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x81, -0xC3, 0xC3, 0xC3, 0x00, 0x00, 0xFF, -0xFF, 0xFF, 0x81, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x81, 0xFF, 0xFF, -0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, -0x01, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00, -0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, -0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, -0x9D, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x9D, 0xDF, 0xDF, 0xDF, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, -0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, -0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, -0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, -0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, -0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, -0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, -0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F, -0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F, -0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x3F, -0x3F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, -0x7F, 0x7C, 0x78, 0x78, 0x38, 0x1C, -0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x01, 0x03, 0x07, 0x07, -0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -0x03, 0x01, 0x00, 0x00, 0x00, 0x00, -0x01, 0x03, 0x07, 0x07, 0x07, 0x07, -0x07, 0x07, 0x07, 0x07, 0x03, 0x01, -0x00, 0x00, 0x00, 0x07, 0x07, 0x07, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x07, 0x07, 0x07, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x07, 0x07, -0x07, 0x00, 0x00, 0x00, 0x01, 0x03, -0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -0x07, 0x07, 0x03, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; diff --git a/keyboards/gkeyboard/greatpad/config.h b/keyboards/gkeyboard/greatpad/config.h index 4c745779b4..3ea0c44f9b 100644 --- a/keyboards/gkeyboard/greatpad/config.h +++ b/keyboards/gkeyboard/greatpad/config.h @@ -3,9 +3,9 @@ #pragma once -#define OLED_DISPLAY_128X64 -#define I2C1_SCL_PIN GP21 -#define I2C1_SDA_PIN GP20 #define I2C_DRIVER I2CD0 +#define I2C1_SCL_PIN GP21 +#define I2C1_SDA_PIN GP20 + +#define OLED_DISPLAY_128X64 #define OLED_BRIGHTNESS 128 -#define OLED_FONT_H "lib/glcdfont.c" diff --git a/keyboards/gkeyboard/greatpad/lib/glcdfont.c b/keyboards/gkeyboard/greatpad/lib/glcdfont.c deleted file mode 100644 index 10ced2bb2b..0000000000 --- a/keyboards/gkeyboard/greatpad/lib/glcdfont.c +++ /dev/null @@ -1,236 +0,0 @@ -// Copyright 2023 gkeyboard (@gkeyboard) -// SPDX-License-Identifier: GPL-2.0-or-later - -// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. -// See gfxfont.h for newer custom bitmap font info. - -#pragma once - -#include "progmem.h" - -static const unsigned char PROGMEM font[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, - 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, - 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, - 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, - 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, - 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, - 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, - 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, - 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, - 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, - 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, - 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, - 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, - 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, - 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, - 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, - 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, - 0x94, 0xB6, 0xFF, 0xB6, 0x94, 0x00, - 0x08, 0x0C, 0x7E, 0x0C, 0x08, 0x00, - 0x10, 0x30, 0x7E, 0x30, 0x10, 0x00, - 0x08, 0x08, 0x3E, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x3E, 0x08, 0x08, 0x00, - 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, - 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, - 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, - 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, - 0x14, 0x3E, 0x14, 0x3E, 0x14, 0x00, - 0x2E, 0x2A, 0x7F, 0x2A, 0x3A, 0x00, - 0x20, 0x12, 0x08, 0x24, 0x02, 0x00, - 0x37, 0x49, 0x49, 0x37, 0x50, 0x00, - 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, - 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, - 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, - 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, - 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, - 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, - 0x7F, 0x51, 0x49, 0x45, 0x7F, 0x00, - 0x08, 0x04, 0x02, 0x7F, 0x00, 0x00, - 0x71, 0x49, 0x49, 0x49, 0x4F, 0x00, - 0x41, 0x41, 0x49, 0x49, 0x77, 0x00, - 0x0F, 0x10, 0x10, 0x10, 0x7F, 0x00, - 0x4F, 0x49, 0x49, 0x49, 0x71, 0x00, - 0x7E, 0x49, 0x49, 0x49, 0x70, 0x00, - 0x01, 0x01, 0x71, 0x09, 0x07, 0x00, - 0x77, 0x49, 0x49, 0x49, 0x77, 0x00, - 0x07, 0x49, 0x49, 0x49, 0x3F, 0x00, - 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, - 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, - 0x01, 0x01, 0x59, 0x09, 0x0F, 0x00, - 0x7F, 0x41, 0x5D, 0x59, 0x4F, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x7F, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x76, 0x00, - 0x7F, 0x41, 0x41, 0x41, 0x41, 0x00, - 0x7F, 0x41, 0x41, 0x41, 0x7E, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x49, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x09, 0x00, - 0x7F, 0x41, 0x41, 0x49, 0x7B, 0x00, - 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, - 0x00, 0x00, 0x7F, 0x00, 0x00, 0x00, - 0x70, 0x40, 0x40, 0x40, 0x7F, 0x00, - 0x7F, 0x08, 0x08, 0x08, 0x77, 0x00, - 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x7F, 0x01, 0x1F, 0x01, 0x7F, 0x00, - 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, - 0x7F, 0x41, 0x41, 0x41, 0x7F, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x0F, 0x00, - 0x7F, 0x41, 0x71, 0x41, 0x7F, 0x00, - 0x7F, 0x09, 0x09, 0x19, 0x6F, 0x00, - 0x47, 0x49, 0x49, 0x49, 0x79, 0x00, - 0x01, 0x01, 0x7F, 0x01, 0x01, 0x00, - 0x7F, 0x40, 0x40, 0x40, 0x7F, 0x00, - 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, - 0x7F, 0x40, 0x7F, 0x40, 0x7F, 0x00, - 0x77, 0x08, 0x08, 0x08, 0x77, 0x00, - 0x4F, 0x48, 0x48, 0x48, 0x7F, 0x00, - 0x61, 0x51, 0x49, 0x45, 0x43, 0x00, - 0x00, 0x7F, 0x41, 0x41, 0x00, 0x00, - 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, - 0x00, 0x41, 0x41, 0x7F, 0x00, 0x00, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x00, 0x00, 0x07, 0x08, 0x00, 0x00, - 0x60, 0x54, 0x54, 0x54, 0x7C, 0x00, - 0x7F, 0x44, 0x44, 0x44, 0x78, 0x00, - 0x7C, 0x44, 0x44, 0x44, 0x44, 0x00, - 0x78, 0x44, 0x44, 0x44, 0x7F, 0x00, - 0x7C, 0x54, 0x54, 0x54, 0x5C, 0x00, - 0x08, 0x7F, 0x09, 0x09, 0x09, 0x00, - 0x38, 0xA4, 0xA4, 0xA4, 0xFC, 0x00, - 0x7F, 0x04, 0x04, 0x04, 0x78, 0x00, - 0x00, 0x00, 0x7D, 0x00, 0x00, 0x00, - 0x70, 0x40, 0x40, 0x7D, 0x00, 0x00, - 0x7F, 0x08, 0x08, 0x08, 0x76, 0x00, - 0x00, 0x00, 0x7F, 0x40, 0x00, 0x00, - 0x7C, 0x04, 0x7C, 0x04, 0x7C, 0x00, - 0x7C, 0x04, 0x04, 0x04, 0x78, 0x00, - 0x7C, 0x44, 0x44, 0x44, 0x7C, 0x00, - 0xFC, 0x24, 0x24, 0x24, 0x38, 0x00, - 0x38, 0x24, 0x24, 0x24, 0xFC, 0x00, - 0x7C, 0x04, 0x04, 0x04, 0x04, 0x00, - 0x5C, 0x54, 0x54, 0x54, 0x74, 0x00, - 0x04, 0x04, 0x7F, 0x04, 0x04, 0x00, - 0x7C, 0x40, 0x40, 0x40, 0x7C, 0x00, - 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, - 0x7C, 0x40, 0x7C, 0x40, 0x7C, 0x00, - 0x6C, 0x10, 0x10, 0x10, 0x6C, 0x00, - 0xBC, 0xA0, 0xA0, 0xA0, 0xFC, 0x00, - 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, - 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, - 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, - 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, - 0x00, 0x00, 0xE0, 0xF0, 0xF0, 0xF0, - 0xF0, 0xFE, 0xFF, 0x9F, 0x0F, 0x0F, - 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, - 0x0F, 0x0F, 0x9F, 0xFF, 0xFE, 0xF0, - 0xF0, 0xF0, 0xF0, 0xE0, 0x00, 0x00, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xC0, 0x30, 0x0C, 0x03, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xE0, 0x10, 0x08, 0x04, 0x02, 0x02, - 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x02, 0x02, 0x02, 0x04, 0x08, - 0x10, 0xE0, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0x01, 0x01, 0x01, 0x01, 0x01, - 0x01, 0x01, 0x01, 0x01, 0x01, 0xFF, - 0x7F, 0x51, 0x55, 0x55, 0x45, 0x7F, - 0x41, 0x5F, 0x5F, 0x5F, 0x7F, 0x00, - 0x7F, 0x41, 0x7B, 0x77, 0x41, 0x7F, - 0x41, 0x5F, 0x5F, 0x5F, 0x7F, 0x00, - 0x7F, 0x41, 0x5D, 0x5D, 0x5D, 0x7F, - 0x41, 0x5F, 0x5F, 0x5F, 0x7F, 0x00, - 0xC0, 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, - 0xE6, 0xF7, 0xF3, 0xF0, 0x60, 0x00, - 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00, - 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00, - 0xF8, 0x1C, 0xDE, 0x1F, 0xFF, 0xFF, - 0xFF, 0x1F, 0xDE, 0x1C, 0xF8, 0x00, - 0xC0, 0xE2, 0xB4, 0xF8, 0xF8, 0xF8, - 0xF8, 0xF8, 0xB4, 0xE2, 0xC0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x07, 0x0F, 0x0F, 0x0F, - 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, - 0x87, 0xE1, 0xF9, 0xF9, 0xE1, 0x87, - 0x9F, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, - 0x0F, 0x0F, 0x0F, 0x07, 0x00, 0x00, - 0xFF, 0x00, 0x00, 0xC0, 0x30, 0x0C, - 0x33, 0xC0, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, - 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xC0, 0x3F, 0x00, 0x00, 0x00, - 0xFF, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x08, 0x38, 0xC8, 0x08, 0x08, 0x0F, - 0x7E, 0x00, 0x00, 0x7F, 0x00, 0x00, - 0x78, 0x00, 0x00, 0x7E, 0x00, 0x00, - 0x24, 0x24, 0x12, 0x12, 0x24, 0x24, - 0x48, 0x48, 0x24, 0x24, 0x12, 0x12, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x3F, - 0x3F, 0x7F, 0x7F, 0x38, 0x10, 0x00, - 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, - 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, - 0x0F, 0x14, 0x21, 0x40, 0x45, 0x41, - 0x45, 0x40, 0x21, 0x14, 0x0F, 0x00, - 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, - 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3F, 0x0C, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x03, 0x0C, 0x30, 0x00, - 0x00, 0x00, 0x00, 0x3F, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x01, 0x02, 0x04, 0x08, 0x10, 0x10, - 0x10, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x10, 0x10, 0x10, 0x08, 0x04, - 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, - 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0x0C, 0x30, - 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, - 0x1C, 0x3E, 0x3E, 0x3E, 0x1C, 0x00, - 0x3E, 0x1C, 0x1C, 0x08, 0x08, 0x00, - 0x3E, 0x3E, 0x3E, 0x3E, 0x3E, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; diff --git a/keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c b/keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c deleted file mode 100644 index c3c79d76ee..0000000000 --- a/keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c +++ /dev/null @@ -1,237 +0,0 @@ -// Copyright 2019 MechMerlin -// Copyright 2020 @ben_roe (keycapsss.com) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "progmem.h" - -// Corne 8x6 font -// Online editor: https://helixfonteditor.netlify.com -// or https://joric.github.io/qle/ -// See also: https://github.com/soundmonster/glcdfont_converter - -const unsigned char font[] PROGMEM = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, - 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, - 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, - 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, - 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, - 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, - 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, - 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, - 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, - 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, - 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, - 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, - 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, - 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, - 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, - 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, - 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, - 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, - 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, - 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, - 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, - 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, - 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, - 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, - 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, - 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, - 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, - 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, - 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, - 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, - 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, - 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, - 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, - 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, - 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, - 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, - 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, - 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, - 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, - 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, - 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, - 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, - 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, - 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, - 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, - 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, - 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, - 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, - 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, - 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, - 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, - 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, - 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, - 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, - 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, - 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, - 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, - 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, - 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, - 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, - 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, - 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, - 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, - 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, - 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, - 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, - 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x00, 0x13, 0x07, 0x08, 0x00, 0x00, - 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, - 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, - 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, - 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, - 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, - 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, - 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, - 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, - 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, - 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, - 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, - 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, - 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, - 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, - 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, - 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, - 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, - 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, - 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, - 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, - 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, - 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, - 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, - 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0xF8, 0x04, 0x22, 0x52, 0xE2, - 0x42, 0x42, 0x42, 0xE2, 0x52, 0x22, - 0x22, 0x22, 0x42, 0x82, 0x02, 0x02, - 0x22, 0x22, 0x02, 0x04, 0xF8, 0x00, - 0x00, 0xF8, 0x04, 0x02, 0x02, 0x82, - 0x42, 0x22, 0x42, 0x82, 0x02, 0x02, - 0x02, 0x82, 0x42, 0x22, 0x12, 0x22, - 0x42, 0x82, 0x02, 0x04, 0xF8, 0x00, - 0x00, 0xF8, 0xFC, 0xDE, 0xAE, 0x1E, - 0xBE, 0xBE, 0xBE, 0x1E, 0xAE, 0xDE, - 0xDE, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE, - 0xDE, 0xDE, 0xFE, 0xFC, 0xF8, 0x00, - 0x00, 0xF8, 0xFC, 0xFE, 0xFE, 0x7E, - 0xBE, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, - 0x10, 0x10, 0x08, 0x08, 0x10, 0x10, - 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, - 0x80, 0x80, 0xC0, 0xC0, 0xE0, 0xE0, - 0xF0, 0xF0, 0xF8, 0xF8, 0xF0, 0xF0, - 0xE0, 0xE0, 0xC0, 0xC0, 0x80, 0x80, - 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, - 0x10, 0x10, 0x08, 0x08, 0x10, 0x10, - 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, - 0x80, 0x80, 0x40, 0xC0, 0x60, 0xA0, - 0x50, 0xB0, 0x58, 0xA8, 0x50, 0xB0, - 0x60, 0xA0, 0x40, 0xC0, 0x80, 0x80, - 0x1F, 0x1F, 0x0E, 0x1B, 0x11, 0xC0, - 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x06, - 0x0C, 0xC6, 0x1F, 0x1F, 0x80, 0x5F, - 0x1F, 0x00, 0x1F, 0x1F, 0x8E, 0x9B, - 0x91, 0x80, 0x9F, 0x9F, 0x91, 0x1F, - 0x00, 0x1F, 0x20, 0x44, 0x4A, 0x47, - 0x42, 0x42, 0x42, 0x47, 0x4A, 0x44, - 0x40, 0x40, 0x40, 0x40, 0x41, 0x42, - 0x44, 0x44, 0x40, 0x20, 0x1F, 0x00, - 0x00, 0x1F, 0x20, 0x40, 0x41, 0x40, - 0x40, 0x40, 0x40, 0x40, 0x41, 0x40, - 0x41, 0x41, 0x4F, 0x48, 0x48, 0x48, - 0x4F, 0x41, 0x41, 0x20, 0x1F, 0x00, - 0x00, 0x1F, 0x3F, 0x7B, 0x75, 0x78, - 0x7D, 0x7D, 0x7D, 0x78, 0x75, 0x7B, - 0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7D, - 0x7B, 0x7B, 0x7F, 0x3F, 0x1F, 0x00, - 0x00, 0x1F, 0x3F, 0x7F, 0x7E, 0x7F, - 0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7F, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x88, 0x88, 0x5D, 0x5D, 0x3E, 0x3E, - 0x7C, 0x7C, 0xF8, 0xF8, 0x7C, 0x7C, - 0x3E, 0x3E, 0x5D, 0x5D, 0x88, 0x88, - 0x88, 0x88, 0x55, 0x55, 0x23, 0x23, - 0x47, 0x47, 0x8F, 0x8F, 0x47, 0x47, - 0x23, 0x23, 0x55, 0x55, 0x88, 0x88, - 0x88, 0x88, 0xD5, 0xD5, 0xE2, 0xE2, - 0xC4, 0xC4, 0x88, 0x88, 0xC4, 0xC4, - 0xE2, 0xE2, 0xD5, 0xD5, 0x88, 0x88, - 0x88, 0x88, 0x5D, 0xD5, 0x6B, 0xB6, - 0x6D, 0xD6, 0xAD, 0xDA, 0x6D, 0xD6, - 0x6B, 0xB6, 0x5D, 0xD5, 0x88, 0x88, - 0x00, 0x84, 0x87, 0x7D, 0x55, 0x57, - 0x55, 0x7D, 0x87, 0x84, 0x00, 0x91, - 0x95, 0x55, 0x55, 0x3F, 0x55, 0x55, - 0x95, 0x91, 0x00, 0x08, 0x08, 0x08, - 0x88, 0xFC, 0x0A, 0x09, 0x08, 0x08, - 0x04, 0xF8, 0x00, 0x00, 0xF8, 0x04, - 0x20, 0x1F, 0x00, 0x00, 0x1F, 0x20, - 0xFC, 0xF8, 0x00, 0x00, 0xF8, 0x04, - 0x3F, 0x1F, 0x00, 0x00, 0x1F, 0x20, - 0x04, 0xF8, 0x00, 0x00, 0xF8, 0xFC, - 0x20, 0x1F, 0x00, 0x00, 0x1F, 0x3F, - 0xFC, 0xF8, 0x00, 0x00, 0xF8, 0xFC, - 0x3F, 0x1F, 0x00, 0x00, 0x1F, 0x3F, - 0xFE, 0x7E, 0xBE, 0xDE, 0xEE, 0xDE, - 0xBE, 0x7E, 0xFE, 0xFC, 0xF8, 0x00, - 0x7E, 0x7E, 0x70, 0x77, 0x77, 0x77, - 0x70, 0x7E, 0x7E, 0x3F, 0x1F, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, - 0x04, 0x04, 0x08, 0x08, 0x04, 0x04, - 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, - 0x04, 0x04, 0x08, 0x08, 0x04, 0x04, - 0x02, 0x02, 0x01, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, - 0x07, 0x07, 0x0F, 0x0F, 0x07, 0x07, - 0x03, 0x03, 0x01, 0x01, 0x00, 0x00, - 0x00, 0x00, 0x01, 0x01, 0x03, 0x02, - 0x05, 0x06, 0x0D, 0x0A, 0x05, 0x06, - 0x03, 0x02, 0x01, 0x01, 0x00, 0x00, -}; diff --git a/keyboards/keycapsss/kimiko/keymaps/default/config.h b/keyboards/keycapsss/kimiko/rev1/keymaps/default/config.h similarity index 91% rename from keyboards/keycapsss/kimiko/keymaps/default/config.h rename to keyboards/keycapsss/kimiko/rev1/keymaps/default/config.h index 8be15d964a..fc6f93bec0 100644 --- a/keyboards/keycapsss/kimiko/keymaps/default/config.h +++ b/keyboards/keycapsss/kimiko/rev1/keymaps/default/config.h @@ -17,10 +17,6 @@ #pragma once -#define OLED_FONT_H "keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c" -// #define OLED_FONT_WIDTH 5 -// #define OLED_FONT_HEIGHT 7 - #ifdef RGBLIGHT_ENABLE # define RGBLIGHT_HUE_STEP 8 # define RGBLIGHT_SAT_STEP 8 diff --git a/keyboards/keycapsss/kimiko/keymaps/default/keymap.c b/keyboards/keycapsss/kimiko/rev1/keymaps/default/keymap.c similarity index 100% rename from keyboards/keycapsss/kimiko/keymaps/default/keymap.c rename to keyboards/keycapsss/kimiko/rev1/keymaps/default/keymap.c diff --git a/keyboards/keycapsss/kimiko/keymaps/default/rules.mk b/keyboards/keycapsss/kimiko/rev1/keymaps/default/rules.mk similarity index 95% rename from keyboards/keycapsss/kimiko/keymaps/default/rules.mk rename to keyboards/keycapsss/kimiko/rev1/keymaps/default/rules.mk index ef4f0c0b43..16cecbdbc6 100644 --- a/keyboards/keycapsss/kimiko/keymaps/default/rules.mk +++ b/keyboards/keycapsss/kimiko/rev1/keymaps/default/rules.mk @@ -1,4 +1,3 @@ -OLED_ENABLE = yes ENCODER_ENABLE = yes # ENables the use of one or more encoders RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow diff --git a/keyboards/keycapsss/kimiko/post_config.h b/keyboards/keycapsss/kimiko/rev2/config.h similarity index 87% rename from keyboards/keycapsss/kimiko/post_config.h rename to keyboards/keycapsss/kimiko/rev2/config.h index 31be5898cf..c728510c30 100644 --- a/keyboards/keycapsss/kimiko/post_config.h +++ b/keyboards/keycapsss/kimiko/rev2/config.h @@ -18,8 +18,4 @@ #pragma once -// OLED definitions -#ifndef OLED_FONT_H -# define OLED_FONT_H "keyboards/keycapsss/kimiko/glcdfont.c" -#endif - +#define OLED_FONT_H "keyboards/keycapsss/kimiko/rev2/glcdfont.c" diff --git a/keyboards/keycapsss/kimiko/glcdfont.c b/keyboards/keycapsss/kimiko/rev2/glcdfont.c similarity index 100% rename from keyboards/keycapsss/kimiko/glcdfont.c rename to keyboards/keycapsss/kimiko/rev2/glcdfont.c diff --git a/keyboards/keycapsss/plaid_pad/keymaps/oled/config.h b/keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/config.h similarity index 90% rename from keyboards/keycapsss/plaid_pad/keymaps/oled/config.h rename to keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/config.h index ddb539fb09..74597b4253 100644 --- a/keyboards/keycapsss/plaid_pad/keymaps/oled/config.h +++ b/keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/config.h @@ -17,4 +17,4 @@ #pragma once // place overrides here -#define OLED_FONT_H "keyboards/keycapsss/plaid_pad/keymaps/oled/glcdfont.c" +#define OLED_FONT_H "keyboards/keycapsss/plaid_pad/rev3/lib/glcdfont.c" diff --git a/keyboards/keycapsss/plaid_pad/keymaps/oled/keymap.c b/keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/keymap.c similarity index 100% rename from keyboards/keycapsss/plaid_pad/keymaps/oled/keymap.c rename to keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/keymap.c diff --git a/keyboards/keycapsss/plaid_pad/keymaps/oled/readme.md b/keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/readme.md similarity index 100% rename from keyboards/keycapsss/plaid_pad/keymaps/oled/readme.md rename to keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/readme.md diff --git a/keyboards/keycapsss/plaid_pad/keymaps/oled/rules.mk b/keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/rules.mk similarity index 100% rename from keyboards/keycapsss/plaid_pad/keymaps/oled/rules.mk rename to keyboards/keycapsss/plaid_pad/rev3/keymaps/oled/rules.mk diff --git a/keyboards/keycapsss/plaid_pad/keymaps/oled/glcdfont.c b/keyboards/keycapsss/plaid_pad/rev3/lib/glcdfont.c similarity index 100% rename from keyboards/keycapsss/plaid_pad/keymaps/oled/glcdfont.c rename to keyboards/keycapsss/plaid_pad/rev3/lib/glcdfont.c diff --git a/keyboards/marksard/treadstone48/common/glcdfont.c b/keyboards/marksard/treadstone48/common/glcdfont.c deleted file mode 100644 index 003ce1a87b..0000000000 --- a/keyboards/marksard/treadstone48/common/glcdfont.c +++ /dev/null @@ -1,233 +0,0 @@ -// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. -// See gfxfont.h for newer custom bitmap font info. - -#include "progmem.h" - -// Standard ASCII 5x7 font - -static const unsigned char font[] PROGMEM = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, - 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, - 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, - 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, - 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, - 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, - 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, - 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, - 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, - 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, - 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, - 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, - 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, - 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, - 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, - 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, - 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, - 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, - 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, - 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, - 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, - 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, - 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, - 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, - 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, - 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, - 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, - 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, - 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, - 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, - 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, - 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, - 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, - 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, - 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, - 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, - 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, - 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, - 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, - 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, - 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, - 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, - 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, - 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, - 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, - 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, - 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, - 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, - 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, - 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, - 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, - 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, - 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, - 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, - 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, - 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, - 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, - 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, - 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, - 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, - 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, - 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, - 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, - 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, - 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, - 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, - 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, - 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, - 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, - 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, - 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, - 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, - 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, - 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, - 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, - 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, - 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, - 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, - 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, - 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, - 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, - 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, - 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, - 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, - 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, - 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, - 0x4C, 0x10, 0x10, 0x10, 0x7C, 0x00, - 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, - 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, - 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, - 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; diff --git a/keyboards/marksard/treadstone48/keymaps/default/config.h b/keyboards/marksard/treadstone48/keymaps/default/config.h index a5f68e7a2b..ec84fb39f1 100644 --- a/keyboards/marksard/treadstone48/keymaps/default/config.h +++ b/keyboards/marksard/treadstone48/keymaps/default/config.h @@ -45,5 +45,3 @@ // If you plug in the USB on the right side, please enable MASTER_RIGHT // #define RHYMESTONE_RIGHTHAND - -#define OLED_FONT_H "keyboards/marksard/treadstone48/common/glcdfont.c" diff --git a/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/config.h b/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/config.h index f18bcf44e7..d5973a16d8 100644 --- a/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/config.h +++ b/keyboards/marksard/treadstone48/rev1/keymaps/like_jis_rs/config.h @@ -46,5 +46,3 @@ // If you plug in the USB on the right side, please enable MASTER_RIGHT // #define RHYMESTONE_RIGHTHAND - -#define OLED_FONT_H "keyboards/marksard/treadstone48/common/glcdfont.c" diff --git a/keyboards/orthodox/common/glcdfont.c b/keyboards/orthodox/common/glcdfont.c deleted file mode 100644 index d607d34b77..0000000000 --- a/keyboards/orthodox/common/glcdfont.c +++ /dev/null @@ -1,265 +0,0 @@ -// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. -// See gfxfont.h for newer custom bitmap font info. - -#include "progmem.h" - -// Standard ASCII 5x7 font - -static const unsigned char font[] PROGMEM = { - 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, - 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, - 0x18, 0x3C, 0x7E, 0x3C, 0x18, - 0x1C, 0x57, 0x7D, 0x57, 0x1C, - 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, - 0x00, 0x18, 0x3C, 0x18, 0x00, - 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, - 0x00, 0x18, 0x24, 0x18, 0x00, - 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, - 0x30, 0x48, 0x3A, 0x06, 0x0E, - 0x26, 0x29, 0x79, 0x29, 0x26, - 0x40, 0x7F, 0x05, 0x05, 0x07, - 0x40, 0x7F, 0x05, 0x25, 0x3F, - 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, - 0x7F, 0x3E, 0x1C, 0x1C, 0x08, - 0x08, 0x1C, 0x1C, 0x3E, 0x7F, - 0x14, 0x22, 0x7F, 0x22, 0x14, - 0x5F, 0x5F, 0x00, 0x5F, 0x5F, - 0x06, 0x09, 0x7F, 0x01, 0x7F, - 0x00, 0x66, 0x89, 0x95, 0x6A, - 0x60, 0x60, 0x60, 0x60, 0x60, - 0x94, 0xA2, 0xFF, 0xA2, 0x94, - 0x08, 0x04, 0x7E, 0x04, 0x08, - 0x10, 0x20, 0x7E, 0x20, 0x10, - 0x08, 0x08, 0x2A, 0x1C, 0x08, - 0x08, 0x1C, 0x2A, 0x08, 0x08, - 0x1E, 0x10, 0x10, 0x10, 0x10, - 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, - 0x30, 0x38, 0x3E, 0x38, 0x30, - 0x06, 0x0E, 0x3E, 0x0E, 0x06, - 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5F, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x07, 0x00, - 0x14, 0x7F, 0x14, 0x7F, 0x14, - 0x24, 0x2A, 0x7F, 0x2A, 0x12, - 0x23, 0x13, 0x08, 0x64, 0x62, - 0x36, 0x49, 0x56, 0x20, 0x50, - 0x00, 0x08, 0x07, 0x03, 0x00, - 0x00, 0x1C, 0x22, 0x41, 0x00, - 0x00, 0x41, 0x22, 0x1C, 0x00, - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, - 0x08, 0x08, 0x3E, 0x08, 0x08, - 0x00, 0x80, 0x70, 0x30, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, - 0x00, 0x00, 0x60, 0x60, 0x00, - 0x20, 0x10, 0x08, 0x04, 0x02, - 0x3E, 0x51, 0x49, 0x45, 0x3E, - 0x00, 0x42, 0x7F, 0x40, 0x00, - 0x72, 0x49, 0x49, 0x49, 0x46, - 0x21, 0x41, 0x49, 0x4D, 0x33, - 0x18, 0x14, 0x12, 0x7F, 0x10, - 0x27, 0x45, 0x45, 0x45, 0x39, - 0x3C, 0x4A, 0x49, 0x49, 0x31, - 0x41, 0x21, 0x11, 0x09, 0x07, - 0x36, 0x49, 0x49, 0x49, 0x36, - 0x46, 0x49, 0x49, 0x29, 0x1E, - 0x00, 0x00, 0x14, 0x00, 0x00, - 0x00, 0x40, 0x34, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, - 0x14, 0x14, 0x14, 0x14, 0x14, - 0x00, 0x41, 0x22, 0x14, 0x08, - 0x02, 0x01, 0x59, 0x09, 0x06, - 0x3E, 0x41, 0x5D, 0x59, 0x4E, - 0x7C, 0x12, 0x11, 0x12, 0x7C, - 0x7F, 0x49, 0x49, 0x49, 0x36, - 0x3E, 0x41, 0x41, 0x41, 0x22, - 0x7F, 0x41, 0x41, 0x41, 0x3E, - 0x7F, 0x49, 0x49, 0x49, 0x41, - 0x7F, 0x09, 0x09, 0x09, 0x01, - 0x3E, 0x41, 0x41, 0x51, 0x73, - 0x7F, 0x08, 0x08, 0x08, 0x7F, - 0x00, 0x41, 0x7F, 0x41, 0x00, - 0x20, 0x40, 0x41, 0x3F, 0x01, - 0x7F, 0x08, 0x14, 0x22, 0x41, - 0x7F, 0x40, 0x40, 0x40, 0x40, - 0x7F, 0x02, 0x1C, 0x02, 0x7F, - 0x7F, 0x04, 0x08, 0x10, 0x7F, - 0x3E, 0x41, 0x41, 0x41, 0x3E, - 0x7F, 0x09, 0x09, 0x09, 0x06, - 0x3E, 0x41, 0x51, 0x21, 0x5E, - 0x7F, 0x09, 0x19, 0x29, 0x46, - 0x26, 0x49, 0x49, 0x49, 0x32, - 0x03, 0x01, 0x7F, 0x01, 0x03, - 0x3F, 0x40, 0x40, 0x40, 0x3F, - 0x1F, 0x20, 0x40, 0x20, 0x1F, - 0x3F, 0x40, 0x38, 0x40, 0x3F, - 0x63, 0x14, 0x08, 0x14, 0x63, - 0x03, 0x04, 0x78, 0x04, 0x03, - 0x61, 0x59, 0x49, 0x4D, 0x43, - 0x00, 0x7F, 0x41, 0x41, 0x41, - 0x02, 0x04, 0x08, 0x10, 0x20, - 0x00, 0x41, 0x41, 0x41, 0x7F, - 0x04, 0x02, 0x01, 0x02, 0x04, - 0x40, 0x40, 0x40, 0x40, 0x40, - 0x00, 0x03, 0x07, 0x08, 0x00, - 0x20, 0x54, 0x54, 0x78, 0x40, - 0x7F, 0x28, 0x44, 0x44, 0x38, - 0x38, 0x44, 0x44, 0x44, 0x28, - 0x38, 0x44, 0x44, 0x28, 0x7F, - 0x38, 0x54, 0x54, 0x54, 0x18, - 0x00, 0x08, 0x7E, 0x09, 0x02, - 0x18, 0xA4, 0xA4, 0x9C, 0x78, - 0x7F, 0x08, 0x04, 0x04, 0x78, - 0x00, 0x44, 0x7D, 0x40, 0x00, - 0x20, 0x40, 0x40, 0x3D, 0x00, - 0x7F, 0x10, 0x28, 0x44, 0x00, - 0x00, 0x41, 0x7F, 0x40, 0x00, - 0x7C, 0x04, 0x78, 0x04, 0x78, - 0x7C, 0x08, 0x04, 0x04, 0x78, - 0x38, 0x44, 0x44, 0x44, 0x38, - 0xFC, 0x18, 0x24, 0x24, 0x18, - 0x18, 0x24, 0x24, 0x18, 0xFC, - 0x7C, 0x08, 0x04, 0x04, 0x08, - 0x48, 0x54, 0x54, 0x54, 0x24, - 0x04, 0x04, 0x3F, 0x44, 0x24, - 0x3C, 0x40, 0x40, 0x20, 0x7C, - 0x1C, 0x20, 0x40, 0x20, 0x1C, - 0x3C, 0x40, 0x30, 0x40, 0x3C, - 0x44, 0x28, 0x10, 0x28, 0x44, - 0x4C, 0x90, 0x90, 0x90, 0x7C, - 0x44, 0x64, 0x54, 0x4C, 0x44, - 0x00, 0x08, 0x36, 0x41, 0x00, - 0x00, 0x00, 0x77, 0x00, 0x00, - 0x00, 0x41, 0x36, 0x08, 0x00, - 0x02, 0x01, 0x02, 0x04, 0x02, - 0x3C, 0x26, 0x23, 0x26, 0x3C, - 0x1E, 0xA1, 0xA1, 0x61, 0x12, - 0x3A, 0x40, 0x40, 0x20, 0x7A, - 0x38, 0x54, 0x54, 0x55, 0x59, - 0x21, 0x55, 0x55, 0x79, 0x41, - 0x22, 0x54, 0x54, 0x78, 0x42, // a-umlaut - 0x21, 0x55, 0x54, 0x78, 0x40, - 0x20, 0x54, 0x55, 0x79, 0x40, - 0x0C, 0x1E, 0x52, 0x72, 0x12, - 0x39, 0x55, 0x55, 0x55, 0x59, - 0x39, 0x54, 0x54, 0x54, 0x59, - 0x39, 0x55, 0x54, 0x54, 0x58, - 0x00, 0x00, 0x45, 0x7C, 0x41, - 0x00, 0x02, 0x45, 0x7D, 0x42, - 0x00, 0x01, 0x45, 0x7C, 0x40, - 0x7D, 0x12, 0x11, 0x12, 0x7D, // A-umlaut - 0xF0, 0x28, 0x25, 0x28, 0xF0, - 0x7C, 0x54, 0x55, 0x45, 0x00, - 0x20, 0x54, 0x54, 0x7C, 0x54, - 0x7C, 0x0A, 0x09, 0x7F, 0x49, - 0x32, 0x49, 0x49, 0x49, 0x32, - 0x3A, 0x44, 0x44, 0x44, 0x3A, // o-umlaut - 0x32, 0x4A, 0x48, 0x48, 0x30, - 0x3A, 0x41, 0x41, 0x21, 0x7A, - 0x3A, 0x42, 0x40, 0x20, 0x78, - 0x00, 0x9D, 0xA0, 0xA0, 0x7D, - 0x3D, 0x42, 0x42, 0x42, 0x3D, // O-umlaut - 0x3D, 0x40, 0x40, 0x40, 0x3D, - 0x3C, 0x24, 0xFF, 0x24, 0x24, - 0x48, 0x7E, 0x49, 0x43, 0x66, - 0x2B, 0x2F, 0xFC, 0x2F, 0x2B, - 0xFF, 0x09, 0x29, 0xF6, 0x20, - 0xC0, 0x88, 0x7E, 0x09, 0x03, - 0x20, 0x54, 0x54, 0x79, 0x41, - 0x00, 0x00, 0x44, 0x7D, 0x41, - 0x30, 0x48, 0x48, 0x4A, 0x32, - 0x38, 0x40, 0x40, 0x22, 0x7A, - 0x00, 0x7A, 0x0A, 0x0A, 0x72, - 0x7D, 0x0D, 0x19, 0x31, 0x7D, - 0x26, 0x29, 0x29, 0x2F, 0x28, - 0x26, 0x29, 0x29, 0x29, 0x26, - 0x30, 0x48, 0x4D, 0x40, 0x20, - 0x38, 0x08, 0x08, 0x08, 0x08, - 0x08, 0x08, 0x08, 0x08, 0x38, - 0x2F, 0x10, 0xC8, 0xAC, 0xBA, - 0x2F, 0x10, 0x28, 0x34, 0xFA, - 0x00, 0x00, 0x7B, 0x00, 0x00, - 0x08, 0x14, 0x2A, 0x14, 0x22, - 0x22, 0x14, 0x2A, 0x14, 0x08, - 0x55, 0x00, 0x55, 0x00, 0x55, // #176 (25% block) missing in old code - 0xAA, 0x55, 0xAA, 0x55, 0xAA, // 50% block - 0xFF, 0x55, 0xFF, 0x55, 0xFF, // 75% block - 0x00, 0x00, 0x00, 0xFF, 0x00, - 0x10, 0x10, 0x10, 0xFF, 0x00, - 0x14, 0x14, 0x14, 0xFF, 0x00, - 0x10, 0x10, 0xFF, 0x00, 0xFF, - 0x10, 0x10, 0xF0, 0x10, 0xF0, - 0x14, 0x14, 0x14, 0xFC, 0x00, - 0x14, 0x14, 0xF7, 0x00, 0xFF, - 0x00, 0x00, 0xFF, 0x00, 0xFF, - 0x14, 0x14, 0xF4, 0x04, 0xFC, - 0x14, 0x14, 0x17, 0x10, 0x1F, - 0x10, 0x10, 0x1F, 0x10, 0x1F, - 0x14, 0x14, 0x14, 0x1F, 0x00, - 0x10, 0x10, 0x10, 0xF0, 0x00, - 0x00, 0x00, 0x00, 0x1F, 0x10, - 0x10, 0x10, 0x10, 0x1F, 0x10, - 0x10, 0x10, 0x10, 0xF0, 0x10, - 0x00, 0x00, 0x00, 0xFF, 0x10, - 0x10, 0x10, 0x10, 0x10, 0x10, - 0x10, 0x10, 0x10, 0xFF, 0x10, - 0x00, 0x00, 0x00, 0xFF, 0x14, - 0x00, 0x00, 0xFF, 0x00, 0xFF, - 0x00, 0x00, 0x1F, 0x10, 0x17, - 0x00, 0x00, 0xFC, 0x04, 0xF4, - 0x14, 0x14, 0x17, 0x10, 0x17, - 0x14, 0x14, 0xF4, 0x04, 0xF4, - 0x00, 0x00, 0xFF, 0x00, 0xF7, - 0x14, 0x14, 0x14, 0x14, 0x14, - 0x14, 0x14, 0xF7, 0x00, 0xF7, - 0x14, 0x14, 0x14, 0x17, 0x14, - 0x10, 0x10, 0x1F, 0x10, 0x1F, - 0x14, 0x14, 0x14, 0xF4, 0x14, - 0x10, 0x10, 0xF0, 0x10, 0xF0, - 0x00, 0x00, 0x1F, 0x10, 0x1F, - 0x00, 0x00, 0x00, 0x1F, 0x14, - 0x00, 0x00, 0x00, 0xFC, 0x14, - 0x00, 0x00, 0xF0, 0x10, 0xF0, - 0x10, 0x10, 0xFF, 0x10, 0xFF, - 0x14, 0x14, 0x14, 0xFF, 0x14, - 0x10, 0x10, 0x10, 0x1F, 0x00, - 0x00, 0x00, 0x00, 0xF0, 0x10, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, - 0xFF, 0xFF, 0xFF, 0x00, 0x00, - 0x00, 0x00, 0x00, 0xFF, 0xFF, - 0x0F, 0x0F, 0x0F, 0x0F, 0x0F, - 0x38, 0x44, 0x44, 0x38, 0x44, - 0xFC, 0x4A, 0x4A, 0x4A, 0x34, // sharp-s or beta - 0x7E, 0x02, 0x02, 0x06, 0x06, - 0x02, 0x7E, 0x02, 0x7E, 0x02, - 0x63, 0x55, 0x49, 0x41, 0x63, - 0x38, 0x44, 0x44, 0x3C, 0x04, - 0x40, 0x7E, 0x20, 0x1E, 0x20, - 0x06, 0x02, 0x7E, 0x02, 0x02, - 0x99, 0xA5, 0xE7, 0xA5, 0x99, - 0x1C, 0x2A, 0x49, 0x2A, 0x1C, - 0x4C, 0x72, 0x01, 0x72, 0x4C, - 0x30, 0x4A, 0x4D, 0x4D, 0x30, - 0x30, 0x48, 0x78, 0x48, 0x30, - 0xBC, 0x62, 0x5A, 0x46, 0x3D, - 0x3E, 0x49, 0x49, 0x49, 0x00, - 0x7E, 0x01, 0x01, 0x01, 0x7E, - 0x2A, 0x2A, 0x2A, 0x2A, 0x2A, - 0x44, 0x44, 0x5F, 0x44, 0x44, - 0x40, 0x51, 0x4A, 0x44, 0x40, - 0x40, 0x44, 0x4A, 0x51, 0x40, - 0x00, 0x00, 0xFF, 0x01, 0x03, - 0xE0, 0x80, 0xFF, 0x00, 0x00, - 0x08, 0x08, 0x6B, 0x6B, 0x08, - 0x36, 0x12, 0x36, 0x24, 0x36, - 0x06, 0x0F, 0x09, 0x0F, 0x06, - 0x00, 0x00, 0x18, 0x18, 0x00, - 0x00, 0x00, 0x10, 0x10, 0x00, - 0x30, 0x40, 0xFF, 0x01, 0x01, - 0x00, 0x1F, 0x01, 0x01, 0x1E, - 0x00, 0x19, 0x1D, 0x17, 0x12, - 0x00, 0x3C, 0x3C, 0x3C, 0x3C, - 0x00, 0x00, 0x00, 0x00, 0x00 // #255 NBSP -}; diff --git a/keyboards/rate/pistachio_pro/config.h b/keyboards/rate/pistachio_pro/config.h index 309d51f79c..d0b1ddcae8 100644 --- a/keyboards/rate/pistachio_pro/config.h +++ b/keyboards/rate/pistachio_pro/config.h @@ -42,7 +42,6 @@ along with this program. If not, see . /* OLED */ #define OLED_DISPLAY_128X64 -#define OLED_FONT_H "keyboards/rate/pistachio_pro/lib/glcdfont.c" #define OLED_FONT_WIDTH 6 #define OLED_FONT_HEIGHT 6 diff --git a/keyboards/rate/pistachio_pro/lib/glcdfont.c b/keyboards/rate/pistachio_pro/lib/glcdfont.c deleted file mode 100644 index 41041f12bb..0000000000 --- a/keyboards/rate/pistachio_pro/lib/glcdfont.c +++ /dev/null @@ -1,232 +0,0 @@ -// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. -// See gfxfont.h for newer custom bitmap font info. - -#include "progmem.h" - -// Standard ASCII 5x7 font -const unsigned char font[] PROGMEM = { -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, -0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, -0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, -0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, -0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, -0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, -0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, -0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, -0x00, 0x18, 0x24, 0x18, 0x00, 0x00, -0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, -0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, -0x26, 0x29, 0x79, 0x29, 0x26, 0x00, -0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, -0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, -0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, -0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, -0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, -0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, -0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, -0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, -0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, -0x60, 0x60, 0x60, 0x60, 0x60, 0x00, -0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, -0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, -0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, -0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, -0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, -0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, -0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, -0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, -0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, -0x00, 0x07, 0x00, 0x07, 0x00, 0x00, -0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, -0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, -0x23, 0x13, 0x08, 0x64, 0x62, 0x00, -0x36, 0x49, 0x56, 0x20, 0x50, 0x00, -0x00, 0x08, 0x07, 0x03, 0x00, 0x00, -0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, -0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, -0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, -0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, -0x00, 0x80, 0x70, 0x30, 0x00, 0x00, -0x08, 0x08, 0x08, 0x08, 0x08, 0x00, -0x00, 0x00, 0x60, 0x60, 0x00, 0x00, -0x20, 0x10, 0x08, 0x04, 0x02, 0x00, -0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, -0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, -0x72, 0x49, 0x49, 0x49, 0x46, 0x00, -0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, -0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, -0x27, 0x45, 0x45, 0x45, 0x39, 0x00, -0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, -0x41, 0x21, 0x11, 0x09, 0x07, 0x00, -0x36, 0x49, 0x49, 0x49, 0x36, 0x00, -0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, -0x00, 0x00, 0x14, 0x00, 0x00, 0x00, -0x00, 0x40, 0x34, 0x00, 0x00, 0x00, -0x00, 0x08, 0x14, 0x22, 0x41, 0x00, -0x14, 0x14, 0x14, 0x14, 0x14, 0x00, -0x00, 0x41, 0x22, 0x14, 0x08, 0x00, -0x02, 0x01, 0x59, 0x09, 0x06, 0x00, -0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, -0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, -0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, -0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, -0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, -0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, -0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, -0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, -0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, -0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, -0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, -0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, -0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, -0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, -0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, -0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, -0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, -0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, -0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, -0x26, 0x49, 0x49, 0x49, 0x32, 0x00, -0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, -0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, -0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, -0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, -0x63, 0x14, 0x08, 0x14, 0x63, 0x00, -0x03, 0x04, 0x78, 0x04, 0x03, 0x00, -0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, -0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, -0x02, 0x04, 0x08, 0x10, 0x20, 0x00, -0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, -0x04, 0x02, 0x01, 0x02, 0x04, 0x00, -0x40, 0x40, 0x40, 0x40, 0x40, 0x00, -0x00, 0x03, 0x07, 0x08, 0x00, 0x00, -0x20, 0x54, 0x54, 0x78, 0x40, 0x00, -0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, -0x38, 0x44, 0x44, 0x44, 0x28, 0x00, -0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, -0x38, 0x54, 0x54, 0x54, 0x18, 0x00, -0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, -0x18, 0x24, 0x24, 0x1C, 0x78, 0x00, -0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, -0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, -0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, -0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, -0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, -0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, -0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, -0x38, 0x44, 0x44, 0x44, 0x38, 0x00, -0x7C, 0x18, 0x24, 0x24, 0x18, 0x00, -0x18, 0x24, 0x24, 0x18, 0x7C, 0x00, -0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, -0x48, 0x54, 0x54, 0x54, 0x24, 0x00, -0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, -0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, -0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, -0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, -0x44, 0x28, 0x10, 0x28, 0x44, 0x00, -0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, -0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, -0x00, 0x08, 0x36, 0x41, 0x00, 0x00, -0x00, 0x00, 0x77, 0x00, 0x00, 0x00, -0x00, 0x41, 0x36, 0x08, 0x00, 0x00, -0x02, 0x01, 0x02, 0x04, 0x02, 0x00, -0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, -0xF0, 0xF8, 0xF8, 0x18, 0x00, 0xC0, -0xF0, 0xFC, 0xFE, 0xFF, 0xFF, 0xFF, -0xFF, 0xFF, 0xFF, 0xFF, 0x7E, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x80, 0xC0, 0xE0, 0xE0, -0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, -0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, -0x80, 0xC0, 0xE0, 0xE0, 0xE0, 0xE0, -0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, -0x00, 0x00, 0x00, 0xE0, 0xE0, 0xC0, -0xC0, 0xE0, 0xE0, 0xE0, 0xE0, 0x00, -0x00, 0xE0, 0xE0, 0xC0, 0xC0, 0xE0, -0xE0, 0xE0, 0xE0, 0xE0, 0xC0, 0x80, -0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, -0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, -0xE0, 0xE0, 0xC0, 0x80, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, -0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, -0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, -0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, -0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, -0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, -0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, -0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0xF8, 0xFC, 0xFE, -0xFF, 0xE0, 0x00, 0xFF, 0xFF, 0xFF, -0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, -0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, -0xFF, 0x1F, 0x07, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xFF, 0xFF, 0xFF, 0x81, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x81, -0xC3, 0xC3, 0xC3, 0x00, 0x00, 0xFF, -0xFF, 0xFF, 0x81, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x81, 0xFF, 0xFF, -0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, -0x01, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00, -0x00, 0x00, 0x00, 0x01, 0xFF, 0xFF, -0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF, -0x9D, 0x1C, 0x1C, 0x1C, 0x1C, 0x1C, -0x1C, 0x9D, 0xDF, 0xDF, 0xDF, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, -0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, -0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, -0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, -0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, -0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, -0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, -0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x03, 0x0F, 0x1F, -0x3F, 0x3F, 0x3F, 0x3F, 0x1F, 0x1F, -0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x3F, -0x3F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, -0x7F, 0x7C, 0x78, 0x78, 0x38, 0x1C, -0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x01, 0x03, 0x07, 0x07, -0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -0x03, 0x01, 0x00, 0x00, 0x00, 0x00, -0x01, 0x03, 0x07, 0x07, 0x07, 0x07, -0x07, 0x07, 0x07, 0x07, 0x03, 0x01, -0x00, 0x00, 0x00, 0x07, 0x07, 0x07, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x07, 0x07, 0x07, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x07, 0x07, -0x07, 0x00, 0x00, 0x00, 0x01, 0x03, -0x07, 0x07, 0x07, 0x07, 0x07, 0x07, -0x07, 0x07, 0x03, 0x01, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; diff --git a/keyboards/rgbkb/zygomorph/common/glcdfont.c b/keyboards/rgbkb/zygomorph/common/glcdfont.c deleted file mode 100644 index 697d58886e..0000000000 --- a/keyboards/rgbkb/zygomorph/common/glcdfont.c +++ /dev/null @@ -1,233 +0,0 @@ -// This is the 'classic' fixed-space bitmap font for Adafruit_GFX since 1.0. -// See gfxfont.h for newer custom bitmap font info. - -#include "progmem.h" - -// Standard ASCII 5x7 font - -static const unsigned char font[] PROGMEM = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00, - 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00, - 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00, - 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00, - 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00, - 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00, - 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00, - 0x00, 0x18, 0x24, 0x18, 0x00, 0x00, - 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00, - 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00, - 0x26, 0x29, 0x79, 0x29, 0x26, 0x00, - 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00, - 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00, - 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00, - 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00, - 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00, - 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00, - 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00, - 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00, - 0x60, 0x60, 0x60, 0x60, 0x60, 0x00, - 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00, - 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00, - 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00, - 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00, - 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00, - 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00, - 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00, - 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00, - 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, - 0x00, 0x07, 0x00, 0x07, 0x00, 0x00, - 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00, - 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00, - 0x23, 0x13, 0x08, 0x64, 0x62, 0x00, - 0x36, 0x49, 0x56, 0x20, 0x50, 0x00, - 0x00, 0x08, 0x07, 0x03, 0x00, 0x00, - 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00, - 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00, - 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00, - 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00, - 0x00, 0x80, 0x70, 0x30, 0x00, 0x00, - 0x08, 0x08, 0x08, 0x08, 0x08, 0x00, - 0x00, 0x00, 0x60, 0x60, 0x00, 0x00, - 0x20, 0x10, 0x08, 0x04, 0x02, 0x00, - 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00, - 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00, - 0x72, 0x49, 0x49, 0x49, 0x46, 0x00, - 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00, - 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00, - 0x27, 0x45, 0x45, 0x45, 0x39, 0x00, - 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00, - 0x41, 0x21, 0x11, 0x09, 0x07, 0x00, - 0x36, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00, - 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, - 0x00, 0x40, 0x34, 0x00, 0x00, 0x00, - 0x00, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x14, 0x14, 0x14, 0x14, 0x14, 0x00, - 0x00, 0x41, 0x22, 0x14, 0x08, 0x00, - 0x02, 0x01, 0x59, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00, - 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00, - 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00, - 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00, - 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00, - 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00, - 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00, - 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00, - 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00, - 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00, - 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00, - 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00, - 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00, - 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00, - 0x26, 0x49, 0x49, 0x49, 0x32, 0x00, - 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00, - 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00, - 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00, - 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00, - 0x63, 0x14, 0x08, 0x14, 0x63, 0x00, - 0x03, 0x04, 0x78, 0x04, 0x03, 0x00, - 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00, - 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00, - 0x02, 0x04, 0x08, 0x10, 0x20, 0x00, - 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00, - 0x04, 0x02, 0x01, 0x02, 0x04, 0x00, - 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, - 0x00, 0x03, 0x07, 0x08, 0x00, 0x00, - 0x20, 0x54, 0x54, 0x78, 0x40, 0x00, - 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x28, 0x00, - 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00, - 0x38, 0x54, 0x54, 0x54, 0x18, 0x00, - 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00, - 0x18, 0xA4, 0xA4, 0x9C, 0x78, 0x00, - 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00, - 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00, - 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00, - 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00, - 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00, - 0x38, 0x44, 0x44, 0x44, 0x38, 0x00, - 0xFC, 0x18, 0x24, 0x24, 0x18, 0x00, - 0x18, 0x24, 0x24, 0x18, 0xFC, 0x00, - 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00, - 0x48, 0x54, 0x54, 0x54, 0x24, 0x00, - 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00, - 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00, - 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00, - 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00, - 0x44, 0x28, 0x10, 0x28, 0x44, 0x00, - 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00, - 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00, - 0x00, 0x08, 0x36, 0x41, 0x00, 0x00, - 0x00, 0x00, 0x77, 0x00, 0x00, 0x00, - 0x00, 0x41, 0x36, 0x08, 0x00, 0x00, - 0x02, 0x01, 0x02, 0x04, 0x02, 0x00, - 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00, - 0x03, 0x07, 0x1F, 0x7F, 0xFF, 0xFF, - 0xFE, 0xF8, 0xF0, 0xC0, 0x20, 0xF8, - 0xFE, 0xFF, 0xFE, 0x79, 0x27, 0x1F, - 0x7F, 0xFF, 0xFF, 0xFE, 0xF8, 0xF0, - 0xC0, 0x20, 0xF8, 0xFE, 0xFF, 0xFF, - 0x7F, 0x3F, 0x3F, 0x7F, 0xFF, 0xFE, - 0xF8, 0xF0, 0xC0, 0x00, 0x00, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0x7F, 0x7F, 0x7F, - 0xBF, 0xBF, 0xC0, 0xC0, 0xC0, 0xE0, - 0xE0, 0xE0, 0xE0, 0xF0, 0xF0, 0xF0, - 0xF8, 0x78, 0x78, 0x7C, 0x3C, 0x3C, - 0xFE, 0xFE, 0xFE, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, - 0xBF, 0xBF, 0xDF, 0xDF, 0xEF, 0xEF, - 0x00, 0x03, 0x07, 0x1F, 0x7F, 0xFF, - 0xFF, 0xFF, 0xFE, 0xF8, 0xE0, 0xC0, - 0xE0, 0xF8, 0xFE, 0xFF, 0xFF, 0xFF, - 0x7F, 0x1F, 0x07, 0x03, 0x00, 0x00, - 0xE0, 0xF0, 0xF0, 0xF0, 0xE0, 0xEC, - 0xEE, 0xF7, 0xF3, 0x70, 0x20, 0x00, - 0x7C, 0x7C, 0x7C, 0x7E, 0x00, 0x7E, - 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x00, - 0x00, 0x80, 0xC0, 0xE0, 0x7E, 0x5B, - 0x4F, 0x5B, 0xFE, 0xC0, 0x00, 0x00, - 0xC0, 0x00, 0xDC, 0xD7, 0xDE, 0xDE, - 0xDE, 0xD7, 0xDC, 0x00, 0xC0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC1, 0xF3, - 0xCF, 0xBF, 0x7F, 0xFF, 0xFF, 0xFC, - 0xFB, 0xE7, 0x81, 0x00, 0x00, 0x00, - 0x00, 0x80, 0xE3, 0xCF, 0x3F, 0xFF, - 0xFF, 0xFF, 0xFC, 0xFB, 0xE7, 0x81, - 0x00, 0x00, 0x00, 0x00, 0x81, 0xE7, - 0xFF, 0xFF, 0xFF, 0xFF, 0x3C, 0x00, - 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xF8, 0xF8, 0xFC, 0x7C, 0x7E, - 0x7E, 0x3E, 0xFE, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xF7, 0xF7, 0xF7, 0xFB, - 0xFB, 0x7D, 0x7D, 0x7D, 0xBE, 0xBE, - 0xBE, 0xDF, 0xDF, 0xE0, 0xE0, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0xFC, 0xFC, 0x7C, 0x7E, 0x7E, - 0x3E, 0x3E, 0x1F, 0x1F, 0x1F, 0x0F, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, - 0xE7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xE7, 0x81, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x0F, 0x1F, 0x3F, 0x7F, 0x7F, 0x7F, - 0x7F, 0x7F, 0x3F, 0x1E, 0x0C, 0x00, - 0x1F, 0x1F, 0x1F, 0x3F, 0x00, 0x3F, - 0x3F, 0x3F, 0x7F, 0x7F, 0x7F, 0x00, - 0x30, 0x7B, 0x7F, 0x78, 0x30, 0x20, - 0x20, 0x30, 0x78, 0x7F, 0x3B, 0x00, - 0x03, 0x00, 0x0F, 0x7F, 0x0F, 0x0F, - 0x0F, 0x7F, 0x0F, 0x00, 0x03, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x60, 0x70, 0x7C, 0x7F, 0x7F, 0x7F, - 0x7F, 0x1F, 0x06, 0x01, 0x03, 0x0F, - 0x3F, 0x7F, 0x7F, 0x7E, 0x7C, 0x7C, - 0x7E, 0x7F, 0x7F, 0x7F, 0x1F, 0x06, - 0x01, 0x07, 0x0F, 0x3F, 0x7F, 0x7F, - 0x7E, 0x7C, 0x7C, 0x7E, 0x7F, 0x7F, - 0x3F, 0x0F, 0x03, 0x00, 0x00, 0x00, - 0x00, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, - 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x7F, 0x7F, 0x7F, 0x7F, - 0x7F, 0x7F, 0x7D, 0x7D, 0x3D, 0x3E, - 0x1E, 0x1F, 0x1F, 0x1F, 0x0F, 0x0F, - 0x07, 0x07, 0x07, 0x03, 0x03, 0x00, - 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, - 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, - 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x00, - 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, - 0x00, 0x40, 0x70, 0x78, 0x7E, 0x7F, - 0x7F, 0x7F, 0x3F, 0x0F, 0x03, 0x01, - 0x03, 0x0F, 0x3F, 0x7F, 0x7F, 0x7F, - 0x7E, 0x78, 0x70, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; From 883465d9fb29cd793684ee0ac688ff3517cf8bc0 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 22 Sep 2025 00:01:23 +0100 Subject: [PATCH 061/255] Add generic handling to cycle LED/RGB Matrix flags (#24649) --- data/constants/keycodes/keycodes_0.0.8.hjson | 0 .../keycodes/keycodes_0.0.8_lighting.hjson | 37 ++++++++++++++ data/mappings/info_config.hjson | 2 + data/schemas/keyboard.jsonschema | 10 ++++ docs/reference_info_json.md | 6 +++ lib/python/qmk/info.py | 8 +++ quantum/keycodes.h | 22 +++++--- quantum/led_matrix/led_matrix.c | 51 +++++++++++++++++++ quantum/led_matrix/led_matrix.h | 4 ++ quantum/process_keycode/process_led_matrix.c | 6 +++ quantum/process_keycode/process_rgb_matrix.c | 14 +++++ quantum/rgb_matrix/rgb_matrix.c | 51 +++++++++++++++++++ quantum/rgb_matrix/rgb_matrix.h | 4 ++ 13 files changed, 208 insertions(+), 7 deletions(-) create mode 100644 data/constants/keycodes/keycodes_0.0.8.hjson create mode 100644 data/constants/keycodes/keycodes_0.0.8_lighting.hjson diff --git a/data/constants/keycodes/keycodes_0.0.8.hjson b/data/constants/keycodes/keycodes_0.0.8.hjson new file mode 100644 index 0000000000..e69de29bb2 diff --git a/data/constants/keycodes/keycodes_0.0.8_lighting.hjson b/data/constants/keycodes/keycodes_0.0.8_lighting.hjson new file mode 100644 index 0000000000..fa7227235e --- /dev/null +++ b/data/constants/keycodes/keycodes_0.0.8_lighting.hjson @@ -0,0 +1,37 @@ +{ + "keycodes": { + "0x7819": { + "group": "led_matrix", + "key": "QK_LED_MATRIX_FLAG_NEXT", + "label": "LED Matrix Flag Next", + "aliases": [ + "LM_FLGN" + ] + }, + "0x781A": { + "group": "led_matrix", + "key": "QK_LED_MATRIX_FLAG_PREVIOUS", + "label": "LED Matrix Flag Previous", + "aliases": [ + "LM_FLGP" + ] + }, + + "0x784D": { + "group": "rgb_matrix", + "key": "QK_RGB_MATRIX_FLAG_NEXT", + "label": "RGB Matrix Flag Next", + "aliases": [ + "RM_FLGN" + ] + }, + "0x784E": { + "group": "rgb_matrix", + "key": "QK_RGB_MATRIX_FLAG_PREVIOUS", + "label": "RGB Matrix Flag Previous", + "aliases": [ + "RM_FLGP" + ] + } + } +} diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index 4c53aa4339..c4052c64f6 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -98,6 +98,7 @@ // LED Matrix "LED_MATRIX_CENTER": {"info_key": "led_matrix.center_point", "value_type": "array.int"}, + "LED_MATRIX_FLAG_STEPS": {"info_key": "led_matrix.flag_steps", "value_type": "array.int"}, "LED_MATRIX_KEYRELEASES": {"info_key": "led_matrix.react_on_keyup", "value_type": "flag"}, "LED_MATRIX_LED_FLUSH_LIMIT": {"info_key": "led_matrix.led_flush_limit", "value_type": "int"}, "LED_MATRIX_LED_PROCESS_LIMIT": {"info_key": "led_matrix.led_process_limit", "value_type": "int", "to_json": false}, @@ -147,6 +148,7 @@ // RGB Matrix "RGB_MATRIX_CENTER": {"info_key": "rgb_matrix.center_point", "value_type": "array.int"}, + "RGB_MATRIX_FLAG_STEPS": {"info_key": "rgb_matrix.flag_steps", "value_type": "array.int"}, "RGB_MATRIX_HUE_STEP": {"info_key": "rgb_matrix.hue_steps", "value_type": "int"}, "RGB_MATRIX_KEYRELEASES": {"info_key": "rgb_matrix.react_on_keyup", "value_type": "flag"}, "RGB_MATRIX_LED_FLUSH_LIMIT": {"info_key": "rgb_matrix.led_flush_limit", "value_type": "int"}, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 93b1c82b1c..93fc4ed8a2 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -571,6 +571,11 @@ "maxItems": 2, "items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} }, + "flag_steps": { + "type": "array", + "minItems": 1, + "items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} + }, "max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "val_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"}, @@ -656,6 +661,11 @@ "maxItems": 2, "items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} }, + "flag_steps": { + "type": "array", + "minItems": 1, + "items": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} + }, "max_brightness": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "timeout": {"$ref": "./definitions.jsonschema#/unsigned_int"}, "hue_steps": {"$ref": "./definitions.jsonschema#/unsigned_int"}, diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 84377ef36c..e7cb8c31e8 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -415,6 +415,9 @@ Configures the [LED Matrix](features/led_matrix) feature. * `center_point` Array: Number * The centroid (geometric center) of the LEDs. Used for certain effects. * Default: `[112, 32]` + * `flag_steps` Array: Number + * A list of flag bitfields that can be cycled through. + * Default: `[255, 5, 0]` * `default` * `animation` String * The default effect. Must be one of `led_matrix.animations` @@ -660,6 +663,9 @@ Configures the [RGB Matrix](features/rgb_matrix) feature. * `center_point` Array: Number * The centroid (geometric center) of the LEDs. Used for certain effects. * Default: `[112, 32]` + * `flag_steps` Array: Number + * A list of flag bitfields that can be cycled through. + * Default: `[255, 5, 2, 0]` * `default` * `animation` String * The default effect. Must be one of `rgb_matrix.animations` diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index f63228b2bc..59a64095e7 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -800,6 +800,14 @@ def _extract_led_config(info_data, keyboard): 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']) + if info_data[feature].get('layout', None) and not info_data[feature].get('flag_steps', None): + flags = {0xFF, 0} + # if only a single flag is used, assume only all+none flags + unique_flags = set(x.get('flags', 0) for x in info_data[feature]['layout']) + if len(unique_flags) > 1: + flags.update(unique_flags) + info_data[feature]['flag_steps'] = sorted(list(flags), reverse=True) + return info_data diff --git a/quantum/keycodes.h b/quantum/keycodes.h index 6a59aa376d..e5a64d9a71 100644 --- a/quantum/keycodes.h +++ b/quantum/keycodes.h @@ -26,11 +26,11 @@ #pragma once // clang-format off -#define QMK_KEYCODES_VERSION "0.0.7" -#define QMK_KEYCODES_VERSION_BCD 0x00000007 +#define QMK_KEYCODES_VERSION "0.0.8" +#define QMK_KEYCODES_VERSION_BCD 0x00000008 #define QMK_KEYCODES_VERSION_MAJOR 0 #define QMK_KEYCODES_VERSION_MINOR 0 -#define QMK_KEYCODES_VERSION_PATCH 7 +#define QMK_KEYCODES_VERSION_PATCH 8 enum qk_keycode_ranges { // Ranges @@ -663,6 +663,8 @@ enum qk_keycode_defines { QK_LED_MATRIX_BRIGHTNESS_DOWN = 0x7816, QK_LED_MATRIX_SPEED_UP = 0x7817, QK_LED_MATRIX_SPEED_DOWN = 0x7818, + QK_LED_MATRIX_FLAG_NEXT = 0x7819, + QK_LED_MATRIX_FLAG_PREVIOUS = 0x781A, QK_UNDERGLOW_TOGGLE = 0x7820, QK_UNDERGLOW_MODE_NEXT = 0x7821, QK_UNDERGLOW_MODE_PREVIOUS = 0x7822, @@ -697,6 +699,8 @@ enum qk_keycode_defines { QK_RGB_MATRIX_VALUE_DOWN = 0x784A, QK_RGB_MATRIX_SPEED_UP = 0x784B, QK_RGB_MATRIX_SPEED_DOWN = 0x784C, + QK_RGB_MATRIX_FLAG_NEXT = 0x784D, + QK_RGB_MATRIX_FLAG_PREVIOUS = 0x784E, QK_BOOTLOADER = 0x7C00, QK_REBOOT = 0x7C01, QK_DEBUG_TOGGLE = 0x7C02, @@ -1352,6 +1356,8 @@ enum qk_keycode_defines { LM_BRID = QK_LED_MATRIX_BRIGHTNESS_DOWN, LM_SPDU = QK_LED_MATRIX_SPEED_UP, LM_SPDD = QK_LED_MATRIX_SPEED_DOWN, + LM_FLGN = QK_LED_MATRIX_FLAG_NEXT, + LM_FLGP = QK_LED_MATRIX_FLAG_PREVIOUS, UG_TOGG = QK_UNDERGLOW_TOGGLE, UG_NEXT = QK_UNDERGLOW_MODE_NEXT, UG_PREV = QK_UNDERGLOW_MODE_PREVIOUS, @@ -1386,6 +1392,8 @@ enum qk_keycode_defines { RM_VALD = QK_RGB_MATRIX_VALUE_DOWN, RM_SPDU = QK_RGB_MATRIX_SPEED_UP, RM_SPDD = QK_RGB_MATRIX_SPEED_DOWN, + RM_FLGN = QK_RGB_MATRIX_FLAG_NEXT, + RM_FLGP = QK_RGB_MATRIX_FLAG_PREVIOUS, QK_BOOT = QK_BOOTLOADER, QK_RBT = QK_REBOOT, DB_TOGG = QK_DEBUG_TOGGLE, @@ -1511,10 +1519,10 @@ enum qk_keycode_defines { #define IS_MACRO_KEYCODE(code) ((code) >= QK_MACRO_0 && (code) <= QK_MACRO_31) #define IS_CONNECTION_KEYCODE(code) ((code) >= QK_OUTPUT_AUTO && (code) <= QK_BLUETOOTH_PROFILE5) #define IS_BACKLIGHT_KEYCODE(code) ((code) >= QK_BACKLIGHT_ON && (code) <= QK_BACKLIGHT_TOGGLE_BREATHING) -#define IS_LED_MATRIX_KEYCODE(code) ((code) >= QK_LED_MATRIX_ON && (code) <= QK_LED_MATRIX_SPEED_DOWN) +#define IS_LED_MATRIX_KEYCODE(code) ((code) >= QK_LED_MATRIX_ON && (code) <= QK_LED_MATRIX_FLAG_PREVIOUS) #define IS_UNDERGLOW_KEYCODE(code) ((code) >= QK_UNDERGLOW_TOGGLE && (code) <= QK_UNDERGLOW_SPEED_DOWN) #define IS_RGB_KEYCODE(code) ((code) >= RGB_MODE_PLAIN && (code) <= RGB_MODE_TWINKLE) -#define IS_RGB_MATRIX_KEYCODE(code) ((code) >= QK_RGB_MATRIX_ON && (code) <= QK_RGB_MATRIX_SPEED_DOWN) +#define IS_RGB_MATRIX_KEYCODE(code) ((code) >= QK_RGB_MATRIX_ON && (code) <= QK_RGB_MATRIX_FLAG_PREVIOUS) #define IS_QUANTUM_KEYCODE(code) ((code) >= QK_BOOTLOADER && (code) <= QK_LAYER_LOCK) #define IS_KB_KEYCODE(code) ((code) >= QK_KB_0 && (code) <= QK_KB_31) #define IS_USER_KEYCODE(code) ((code) >= QK_USER_0 && (code) <= QK_USER_31) @@ -1537,10 +1545,10 @@ enum qk_keycode_defines { #define MACRO_KEYCODE_RANGE QK_MACRO_0 ... QK_MACRO_31 #define CONNECTION_KEYCODE_RANGE QK_OUTPUT_AUTO ... QK_BLUETOOTH_PROFILE5 #define BACKLIGHT_KEYCODE_RANGE QK_BACKLIGHT_ON ... QK_BACKLIGHT_TOGGLE_BREATHING -#define LED_MATRIX_KEYCODE_RANGE QK_LED_MATRIX_ON ... QK_LED_MATRIX_SPEED_DOWN +#define LED_MATRIX_KEYCODE_RANGE QK_LED_MATRIX_ON ... QK_LED_MATRIX_FLAG_PREVIOUS #define UNDERGLOW_KEYCODE_RANGE QK_UNDERGLOW_TOGGLE ... QK_UNDERGLOW_SPEED_DOWN #define RGB_KEYCODE_RANGE RGB_MODE_PLAIN ... RGB_MODE_TWINKLE -#define RGB_MATRIX_KEYCODE_RANGE QK_RGB_MATRIX_ON ... QK_RGB_MATRIX_SPEED_DOWN +#define RGB_MATRIX_KEYCODE_RANGE QK_RGB_MATRIX_ON ... QK_RGB_MATRIX_FLAG_PREVIOUS #define QUANTUM_KEYCODE_RANGE QK_BOOTLOADER ... QK_LAYER_LOCK #define KB_KEYCODE_RANGE QK_KB_0 ... QK_KB_31 #define USER_KEYCODE_RANGE QK_USER_0 ... QK_USER_31 diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c index 9c8004cc17..b2665597df 100644 --- a/quantum/led_matrix/led_matrix.c +++ b/quantum/led_matrix/led_matrix.c @@ -70,6 +70,13 @@ uint8_t g_led_frame_buffer[MATRIX_ROWS][MATRIX_COLS] = {{0}}; last_hit_t g_last_hit_tracker; #endif // LED_MATRIX_KEYREACTIVE_ENABLED +#ifndef LED_MATRIX_FLAG_STEPS +# define LED_MATRIX_FLAG_STEPS \ + { LED_FLAG_ALL, LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER, LED_FLAG_NONE } +#endif +static const uint8_t led_matrix_flag_steps[] = LED_MATRIX_FLAG_STEPS; +#define LED_MATRIX_FLAG_STEPS_COUNT ARRAY_SIZE(led_matrix_flag_steps) + // internals static bool suspend_state = false; static uint8_t led_last_enable = UINT8_MAX; @@ -661,6 +668,50 @@ void led_matrix_set_flags_noeeprom(led_flags_t flags) { led_matrix_set_flags_eeprom_helper(flags, false); } +void led_matrix_flags_step_helper(bool write_to_eeprom) { + led_flags_t flags = led_matrix_get_flags(); + + uint8_t next = 0; + for (uint8_t i = 0; i < LED_MATRIX_FLAG_STEPS_COUNT; i++) { + if (led_matrix_flag_steps[i] == flags) { + next = i == LED_MATRIX_FLAG_STEPS_COUNT - 1 ? 0 : i + 1; + break; + } + } + + led_matrix_set_flags_eeprom_helper(led_matrix_flag_steps[next], write_to_eeprom); +} + +void led_matrix_flags_step_noeeprom(void) { + led_matrix_flags_step_helper(false); +} + +void led_matrix_flags_step(void) { + led_matrix_flags_step_helper(true); +} + +void led_matrix_flags_step_reverse_helper(bool write_to_eeprom) { + led_flags_t flags = led_matrix_get_flags(); + + uint8_t next = 0; + for (uint8_t i = 0; i < LED_MATRIX_FLAG_STEPS_COUNT; i++) { + if (led_matrix_flag_steps[i] == flags) { + next = i == 0 ? LED_MATRIX_FLAG_STEPS_COUNT - 1 : i - 1; + break; + } + } + + led_matrix_set_flags_eeprom_helper(led_matrix_flag_steps[next], write_to_eeprom); +} + +void led_matrix_flags_step_reverse_noeeprom(void) { + led_matrix_flags_step_reverse_helper(false); +} + +void led_matrix_flags_step_reverse(void) { + led_matrix_flags_step_reverse_helper(true); +} + // LED Matrix naming #undef LED_MATRIX_EFFECT #ifdef LED_MATRIX_MODE_NAME_ENABLE diff --git a/quantum/led_matrix/led_matrix.h b/quantum/led_matrix/led_matrix.h index 9a49515ab2..f484c700f4 100644 --- a/quantum/led_matrix/led_matrix.h +++ b/quantum/led_matrix/led_matrix.h @@ -183,6 +183,10 @@ void led_matrix_decrease_speed_noeeprom(void); led_flags_t led_matrix_get_flags(void); void led_matrix_set_flags(led_flags_t flags); void led_matrix_set_flags_noeeprom(led_flags_t flags); +void led_matrix_flags_step_noeeprom(void); +void led_matrix_flags_step(void); +void led_matrix_flags_step_reverse_noeeprom(void); +void led_matrix_flags_step_reverse(void); #ifdef LED_MATRIX_MODE_NAME_ENABLE const char *led_matrix_get_mode_name(uint8_t mode); diff --git a/quantum/process_keycode/process_led_matrix.c b/quantum/process_keycode/process_led_matrix.c index 7f95bf1011..3342b33b92 100644 --- a/quantum/process_keycode/process_led_matrix.c +++ b/quantum/process_keycode/process_led_matrix.c @@ -40,6 +40,12 @@ bool process_led_matrix(uint16_t keycode, keyrecord_t *record) { case QK_LED_MATRIX_SPEED_DOWN: led_matrix_decrease_speed(); return false; + case QK_LED_MATRIX_FLAG_NEXT: + led_matrix_flags_step(); + return false; + case QK_LED_MATRIX_FLAG_PREVIOUS: + led_matrix_flags_step_reverse(); + return false; } } diff --git a/quantum/process_keycode/process_rgb_matrix.c b/quantum/process_keycode/process_rgb_matrix.c index fd2aa1a0c7..c18212294d 100644 --- a/quantum/process_keycode/process_rgb_matrix.c +++ b/quantum/process_keycode/process_rgb_matrix.c @@ -94,6 +94,20 @@ bool process_rgb_matrix(uint16_t keycode, keyrecord_t *record) { rgb_matrix_decrease_speed(); } return false; + case QK_RGB_MATRIX_FLAG_NEXT: + if (shifted) { + rgb_matrix_flags_step_reverse(); + } else { + rgb_matrix_flags_step(); + } + return false; + case QK_RGB_MATRIX_FLAG_PREVIOUS: + if (shifted) { + rgb_matrix_flags_step(); + } else { + rgb_matrix_flags_step_reverse(); + } + return false; } } diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c index ab0aa17512..19edfb52b0 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c @@ -72,6 +72,13 @@ uint8_t g_rgb_frame_buffer[MATRIX_ROWS][MATRIX_COLS] = {{0}}; last_hit_t g_last_hit_tracker; #endif // RGB_MATRIX_KEYREACTIVE_ENABLED +#ifndef RGB_MATRIX_FLAG_STEPS +# define RGB_MATRIX_FLAG_STEPS \ + { LED_FLAG_ALL, LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER, LED_FLAG_UNDERGLOW, LED_FLAG_NONE } +#endif +static const uint8_t rgb_matrix_flag_steps[] = RGB_MATRIX_FLAG_STEPS; +#define RGB_MATRIX_FLAG_STEPS_COUNT ARRAY_SIZE(rgb_matrix_flag_steps) + // internals static bool suspend_state = false; static uint8_t rgb_last_enable = UINT8_MAX; @@ -747,6 +754,50 @@ void rgb_matrix_set_flags_noeeprom(led_flags_t flags) { rgb_matrix_set_flags_eeprom_helper(flags, false); } +void rgb_matrix_flags_step_helper(bool write_to_eeprom) { + led_flags_t flags = rgb_matrix_get_flags(); + + uint8_t next = 0; + for (uint8_t i = 0; i < RGB_MATRIX_FLAG_STEPS_COUNT; i++) { + if (rgb_matrix_flag_steps[i] == flags) { + next = i == RGB_MATRIX_FLAG_STEPS_COUNT - 1 ? 0 : i + 1; + break; + } + } + + rgb_matrix_set_flags_eeprom_helper(rgb_matrix_flag_steps[next], write_to_eeprom); +} + +void rgb_matrix_flags_step_noeeprom(void) { + rgb_matrix_flags_step_helper(false); +} + +void rgb_matrix_flags_step(void) { + rgb_matrix_flags_step_helper(true); +} + +void rgb_matrix_flags_step_reverse_helper(bool write_to_eeprom) { + led_flags_t flags = rgb_matrix_get_flags(); + + uint8_t next = 0; + for (uint8_t i = 0; i < RGB_MATRIX_FLAG_STEPS_COUNT; i++) { + if (rgb_matrix_flag_steps[i] == flags) { + next = i == 0 ? RGB_MATRIX_FLAG_STEPS_COUNT - 1 : i - 1; + break; + } + } + + rgb_matrix_set_flags_eeprom_helper(rgb_matrix_flag_steps[next], write_to_eeprom); +} + +void rgb_matrix_flags_step_reverse_noeeprom(void) { + rgb_matrix_flags_step_reverse_helper(false); +} + +void rgb_matrix_flags_step_reverse(void) { + rgb_matrix_flags_step_reverse_helper(true); +} + //---------------------------------------------------------- // RGB Matrix naming #undef RGB_MATRIX_EFFECT diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h index a91dded4a8..f800679b46 100644 --- a/quantum/rgb_matrix/rgb_matrix.h +++ b/quantum/rgb_matrix/rgb_matrix.h @@ -218,6 +218,10 @@ void rgb_matrix_decrease_speed_noeeprom(void); led_flags_t rgb_matrix_get_flags(void); void rgb_matrix_set_flags(led_flags_t flags); void rgb_matrix_set_flags_noeeprom(led_flags_t flags); +void rgb_matrix_flags_step_noeeprom(void); +void rgb_matrix_flags_step(void); +void rgb_matrix_flags_step_reverse_noeeprom(void); +void rgb_matrix_flags_step_reverse(void); void rgb_matrix_update_pwm_buffers(void); #ifdef RGB_MATRIX_MODE_NAME_ENABLE From 0a4c1caf204bd9750ef8af8296b2e225682b6029 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 29 Sep 2025 20:26:47 +0100 Subject: [PATCH 062/255] Add DD {LED,RGB}_MATRIX_DEFAULT_FLAGS support (#25671) --- data/mappings/info_config.hjson | 2 ++ data/mappings/info_defaults.hjson | 6 ++++-- data/schemas/keyboard.jsonschema | 6 ++++-- docs/reference_info_json.md | 6 ++++++ keyboards/xelus/valor/rev2/keyboard.json | 3 +++ keyboards/xelus/valor/rev2/rev2.c | 5 ----- 6 files changed, 19 insertions(+), 9 deletions(-) diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index c4052c64f6..1c6e86d876 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -112,6 +112,7 @@ "LED_MATRIX_DEFAULT_ON": {"info_key": "led_matrix.default.on", "value_type": "bool"}, "LED_MATRIX_DEFAULT_VAL": {"info_key": "led_matrix.default.val", "value_type": "int"}, "LED_MATRIX_DEFAULT_SPD": {"info_key": "led_matrix.default.speed", "value_type": "int"}, + "LED_MATRIX_DEFAULT_FLAGS": {"info_key": "led_matrix.default.flags", "value_type": "int"}, // Locking Switch "LOCKING_SUPPORT_ENABLE": {"info_key": "qmk.locking.enabled", "value_type": "flag"}, @@ -166,6 +167,7 @@ "RGB_MATRIX_DEFAULT_SAT": {"info_key": "rgb_matrix.default.sat", "value_type": "int"}, "RGB_MATRIX_DEFAULT_VAL": {"info_key": "rgb_matrix.default.val", "value_type": "int"}, "RGB_MATRIX_DEFAULT_SPD": {"info_key": "rgb_matrix.default.speed", "value_type": "int"}, + "RGB_MATRIX_DEFAULT_FLAGS": {"info_key": "rgb_matrix.default.flags", "value_type": "int"}, // RGBLight "RGBLED_SPLIT": {"info_key": "rgblight.split_count", "value_type": "array.int"}, diff --git a/data/mappings/info_defaults.hjson b/data/mappings/info_defaults.hjson index b33cb4fa1f..d1f1579c55 100644 --- a/data/mappings/info_defaults.hjson +++ b/data/mappings/info_defaults.hjson @@ -23,7 +23,8 @@ "animation": "solid", "on": true, "val": 255, - "speed": 128 + "speed": 128, + "flags": 255 }, "led_flush_limit": 16, "max_brightness": 255, @@ -53,7 +54,8 @@ "hue": 0, "sat": 255, "val": 255, - "speed": 128 + "speed": 128, + "flags": 255 }, "hue_steps": 8, "led_flush_limit": 16, diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 93fc4ed8a2..57aeb3de22 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -543,7 +543,8 @@ "on": {"type": "boolean"}, "animation": {"type": "string"}, "val": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, - "speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} + "speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, + "flags": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} } }, "driver": { @@ -631,7 +632,8 @@ "hue": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "sat": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, "val": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, - "speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} + "speed": {"$ref": "./definitions.jsonschema#/unsigned_int_8"}, + "flags": {"$ref": "./definitions.jsonschema#/unsigned_int_8"} } }, "driver": { diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index e7cb8c31e8..91ab7f4577 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -431,6 +431,9 @@ Configures the [LED Matrix](features/led_matrix) feature. * `speed` Number * The default animation speed. * Default: `128` + * `flags` Number + * The default LED flags. + * Default: `255` * `driver` String Required * The driver to use. Must be one of `custom`, `is31fl3218`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`. * `layout` Array: Object Required @@ -685,6 +688,9 @@ Configures the [RGB Matrix](features/rgb_matrix) feature. * `speed` Number * The default animation speed. * Default: `128` + * `flags` Number + * The default LED flags. + * Default: `255` * `driver` String Required * The driver to use. Must be one of `aw20216s`, `custom`, `is31fl3218`, `is31fl3236`, `is31fl3729`, `is31fl3731`, `is31fl3733`, `is31fl3736`, `is31fl3737`, `is31fl3741`, `is31fl3742a`, `is31fl3743a`, `is31fl3745`, `is31fl3746a`, `snled27351`, `ws2812`. * `hue_steps` Number diff --git a/keyboards/xelus/valor/rev2/keyboard.json b/keyboards/xelus/valor/rev2/keyboard.json index 451eeb99ff..6356f69646 100644 --- a/keyboards/xelus/valor/rev2/keyboard.json +++ b/keyboards/xelus/valor/rev2/keyboard.json @@ -67,6 +67,9 @@ "solid_splash": true, "solid_multisplash": true }, + "default": { + "flags": 7 + }, "driver": "ws2812", "max_brightness": 200, "sleep": true diff --git a/keyboards/xelus/valor/rev2/rev2.c b/keyboards/xelus/valor/rev2/rev2.c index 34a32cfc61..99db45e08d 100644 --- a/keyboards/xelus/valor/rev2/rev2.c +++ b/keyboards/xelus/valor/rev2/rev2.c @@ -64,9 +64,4 @@ led_config_t g_led_config = { { 8, 8, 8, 8 } }; - -void keyboard_pre_init_kb(void) { - rgb_matrix_set_flags(LED_FLAG_MODIFIER|LED_FLAG_UNDERGLOW|LED_FLAG_KEYLIGHT); - keyboard_pre_init_user(); -} #endif From 6f93a86e6e12ddc999da3cf940f5c327d5f9b91a Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 29 Sep 2025 20:27:07 +0100 Subject: [PATCH 063/255] Add LED/RGB Matrix flags API docs (#25673) --- docs/features/led_matrix.md | 59 +++++++++++++++++++++++++++++++++++++ docs/features/rgb_matrix.md | 59 +++++++++++++++++++++++++++++++++++++ docs/keycodes.md | 4 +++ 3 files changed, 122 insertions(+) diff --git a/docs/features/led_matrix.md b/docs/features/led_matrix.md index 28d24bc400..f14fb47d62 100644 --- a/docs/features/led_matrix.md +++ b/docs/features/led_matrix.md @@ -88,6 +88,8 @@ As mentioned earlier, the center of the keyboard by default is expected to be `{ |`QK_LED_MATRIX_BRIGHTNESS_DOWN`|`LM_BRID`|Decrease the brightness level | |`QK_LED_MATRIX_SPEED_UP` |`LM_SPDU`|Increase the animation speed | |`QK_LED_MATRIX_SPEED_DOWN` |`LM_SPDD`|Decrease the animation speed | +|`QK_LED_MATRIX_FLAG_NEXT` |`LM_FLGN`|Cycle through flags | +|`QK_LED_MATRIX_FLAG_PREVIOUS` |`LM_FLGP`|Cycle through flags in reverse | ## LED Matrix Effects {#led-matrix-effects} @@ -253,6 +255,7 @@ const char* effect_name = led_matrix_get_mode_name(led_matrix_get_mode()); #define LED_MATRIX_DEFAULT_FLAGS LED_FLAG_ALL // Sets the default LED flags, if none has been set #define LED_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right. // If reactive effects are enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR +#define LED_MATRIX_FLAG_STEPS { LED_FLAG_ALL, LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER, LED_FLAG_NONE } // Sets the flags which can be cycled through. ``` ## EEPROM storage {#eeprom-storage} @@ -505,6 +508,62 @@ The current effect speed, from 0 to 255. --- +### `void led_matrix_set_flags(led_flags_t flags)` {#api-led-matrix-set-flags} + +Set the global effect flags. + +#### Arguments {#api-led-matrix-set-flags-arguments} + + - `led_flags_t flags` + The [flags](#flags) value to set. + +--- + +### `void led_matrix_set_flags_noeeprom(led_flags_t flags)` {#api-led-matrix-set-flags-noeeprom} + +Set the global effect flags. New state is not written to EEPROM. + +#### Arguments {#api-led-matrix-set-flags-noeeprom-arguments} + + - `led_flags_t flags` + The [flags](#flags) value to set. + +--- + +### `void led_matrix_flags_step(void)` {#api-led-matrix-flags-step} + +Move to the next flag combination. + +--- + +### `void led_matrix_flags_step_noeeprom(void)` {#api-led-matrix-flags-step-noeeprom} + +Move to the next flag combination. New state is not written to EEPROM. + +--- + +### `void led_matrix_flags_step_reverse(void)` {#api-led-matrix-flags-step-reverse} + +Move to the previous flag combination. + +--- + +### `void led_matrix_flags_step_reverse_noeeprom(void)` {#api-led-matrix-flags-step-reverse-noeeprom} + +Move to the previous flag combination. New state is not written to EEPROM. + +--- + +### `uint8_t led_matrix_get_flags(void)` {#api-led-matrix-get-flags} + +Get the current global effect flags. + +#### Return Value {#api-led-matrix-get-flags-return} + +The current effect [flags](#flags). + +--- + ### `void led_matrix_reload_from_eeprom(void)` {#api-led-matrix-reload-from-eeprom} Reload the effect configuration (enabled, mode and brightness) from EEPROM. diff --git a/docs/features/rgb_matrix.md b/docs/features/rgb_matrix.md index 95ee4c4896..36680f24a2 100644 --- a/docs/features/rgb_matrix.md +++ b/docs/features/rgb_matrix.md @@ -96,6 +96,8 @@ As mentioned earlier, the center of the keyboard by default is expected to be `{ |`QK_RGB_MATRIX_VALUE_DOWN` |`RM_VALD`|Decrease the brightness level | |`QK_RGB_MATRIX_SPEED_UP` |`RM_SPDU`|Increase the animation speed | |`QK_RGB_MATRIX_SPEED_DOWN` |`RM_SPDD`|Decrease the animation speed | +|`QK_RGB_MATRIX_FLAG_NEXT` |`RM_FLGN`|Cycle through flags | +|`QK_RGB_MATRIX_FLAG_PREVIOUS` |`RM_FLGP`|Cycle through flags in reverse | ## RGB Matrix Effects {#rgb-matrix-effects} @@ -409,6 +411,7 @@ const char* effect_name = rgb_matrix_get_mode_name(rgb_matrix_get_mode()); #define RGB_MATRIX_SPLIT { X, Y } // (Optional) For split keyboards, the number of LEDs connected on each half. X = left, Y = Right. // If reactive effects are enabled, you also will want to enable SPLIT_TRANSPORT_MIRROR #define RGB_TRIGGER_ON_KEYDOWN // Triggers RGB keypress events on key down. This makes RGB control feel more responsive. This may cause RGB to not function properly on some boards +#define RGB_MATRIX_FLAG_STEPS { LED_FLAG_ALL, LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER, LED_FLAG_UNDERGLOW, LED_FLAG_NONE } // Sets the flags which can be cycled through. ``` ## EEPROM storage {#eeprom-storage} @@ -852,6 +855,62 @@ The current effect speed, from 0 to 255. --- +### `void rgb_matrix_set_flags(led_flags_t flags)` {#api-rgb-matrix-set-flags} + +Set the global effect flags. + +#### Arguments {#api-rgb-matrix-set-flags-arguments} + + - `led_flags_t flags` + The [flags](#flags) value to set. + +--- + +### `void rgb_matrix_set_flags_noeeprom(led_flags_t flags)` {#api-rgb-matrix-set-flags-noeeprom} + +Set the global effect flags. New state is not written to EEPROM. + +#### Arguments {#api-rgb-matrix-set-flags-noeeprom-arguments} + + - `led_flags_t flags` + The [flags](#flags) value to set. + +--- + +### `void rgb_matrix_flags_step(void)` {#api-rgb-matrix-flags-step} + +Move to the next flag combination. + +--- + +### `void rgb_matrix_flags_step_noeeprom(void)` {#api-rgb-matrix-flags-step-noeeprom} + +Move to the next flag combination. New state is not written to EEPROM. + +--- + +### `void rgb_matrix_flags_step_reverse(void)` {#api-rgb-matrix-flags-step-reverse} + +Move to the previous flag combination. + +--- + +### `void rgb_matrix_flags_step_reverse_noeeprom(void)` {#api-rgb-matrix-flags-step-reverse-noeeprom} + +Move to the previous flag combination. New state is not written to EEPROM. + +--- + +### `uint8_t rgb_matrix_get_flags(void)` {#api-rgb-matrix-get-flags} + +Get the current global effect flags. + +#### Return Value {#api-rgb-matrix-get-flags-return} + +The current effect [flags](#flags). + +--- + ### `void rgb_matrix_sethsv(uint8_t h, uint8_t s, uint8_t v)` {#api-rgb-matrix-sethsv} Set the global effect hue, saturation, and value (brightness). diff --git a/docs/keycodes.md b/docs/keycodes.md index e569e87431..9a4ca7ea0c 100644 --- a/docs/keycodes.md +++ b/docs/keycodes.md @@ -433,6 +433,8 @@ See also: [LED Matrix](features/led_matrix) |`QK_LED_MATRIX_BRIGHTNESS_DOWN`|`LM_BRID`|Decrease the brightness level | |`QK_LED_MATRIX_SPEED_UP` |`LM_SPDU`|Increase the animation speed | |`QK_LED_MATRIX_SPEED_DOWN` |`LM_SPDD`|Decrease the animation speed | +|`QK_LED_MATRIX_FLAG_NEXT` |`LM_FLGN`|Cycle through flags | +|`QK_LED_MATRIX_FLAG_PREVIOUS` |`LM_FLGP`|Cycle through flags in reverse | ## Magic Keycodes {#magic-keycodes} @@ -783,6 +785,8 @@ See also: [RGB Matrix](features/rgb_matrix) |`QK_RGB_MATRIX_VALUE_DOWN` |`RM_VALD`|Decrease the brightness level | |`QK_RGB_MATRIX_SPEED_UP` |`RM_SPDU`|Increase the animation speed | |`QK_RGB_MATRIX_SPEED_DOWN` |`RM_SPDD`|Decrease the animation speed | +|`QK_RGB_MATRIX_FLAG_NEXT` |`RM_FLGN`|Cycle through flags | +|`QK_RGB_MATRIX_FLAG_PREVIOUS` |`RM_FLGP`|Cycle through flags in reverse | ## US ANSI Shifted Symbols {#us-ansi-shifted-symbols} From bbd6e8ab340bb4b3f25671fea59fd608397e8a34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Mart=C3=ADnez?= <58857054+elpekenin@users.noreply.github.com> Date: Tue, 30 Sep 2025 16:52:43 +0200 Subject: [PATCH 064/255] [Feature] Implement `mod_t` packed struct (#25168) --- quantum/action_util.c | 47 ++++++++++++++++++++++++++++++++++++------- quantum/action_util.h | 21 +++++++++++++++++++ 2 files changed, 61 insertions(+), 7 deletions(-) diff --git a/quantum/action_util.c b/quantum/action_util.c index e821e113ef..0996ff908e 100644 --- a/quantum/action_util.c +++ b/quantum/action_util.c @@ -46,9 +46,20 @@ extern inline void clear_keys(void); #ifndef NO_ACTION_ONESHOT static uint8_t oneshot_mods = 0; static uint8_t oneshot_locked_mods = 0; -uint8_t get_oneshot_locked_mods(void) { +/** + * @brief Retrieve current state of locked oneshot modifiers. + * + * @return Current state of the locked oneshot modifier keys as a bitmask. + */ +uint8_t get_oneshot_locked_mods(void) { return oneshot_locked_mods; } +/** + * Same as \ref get_oneshot_locked_mods but returns \ref mod_t for convenience. + */ +mod_t get_oneshot_locked_mod_state(void) { + return (mod_t)get_oneshot_locked_mods(); +} void add_oneshot_locked_mods(uint8_t mods) { if ((oneshot_locked_mods & mods) != mods) { oneshot_locked_mods |= mods; @@ -326,13 +337,20 @@ void send_keyboard_report(void) { send_6kro_report(); } -/** \brief Get mods +/** + * @brief Retrieve current state of modifiers. * - * FIXME: needs doc + * @return Current state of the modifier keys as a bitmask. */ uint8_t get_mods(void) { return real_mods; } +/** + * Same as \ref get_mods but returns \ref mod_t for convenience. + */ +mod_t get_mod_state(void) { + return (mod_t)get_mods(); +} /** \brief add mods * * FIXME: needs doc @@ -362,13 +380,20 @@ void clear_mods(void) { real_mods = 0; } -/** \brief get weak mods +/** + * @brief Retrieve current state of weak modifiers. * - * FIXME: needs doc + * @return Current state of the weak modifier keys as a bitmask. */ uint8_t get_weak_mods(void) { return weak_mods; } +/** + * Same as \ref get_weak_mods but returns \ref mod_t for convenience. + */ +mod_t get_weak_mod_state(void) { + return (mod_t)get_weak_mods(); +} /** \brief add weak mods * * FIXME: needs doc @@ -423,14 +448,22 @@ void clear_suppressed_override_mods(void) { #endif #ifndef NO_ACTION_ONESHOT -/** \brief get oneshot mods +/** + * @brief Retrieve current state of oneshot modifiers. * - * FIXME: needs doc + * @return Current state of the oneshot modifier keys as a bitmask. */ uint8_t get_oneshot_mods(void) { return oneshot_mods; } +/** + * Same as \ref get_oneshot_mods but returns \ref mod_t for convenience. + */ +mod_t get_oneshot_mod_state(void) { + return (mod_t)get_oneshot_mods(); +} + void add_oneshot_mods(uint8_t mods) { if ((oneshot_mods & mods) != mods) { # if (defined(ONESHOT_TIMEOUT) && (ONESHOT_TIMEOUT > 0)) diff --git a/quantum/action_util.h b/quantum/action_util.h index d2ecb145be..8b1974cd32 100644 --- a/quantum/action_util.h +++ b/quantum/action_util.h @@ -18,6 +18,8 @@ along with this program. If not, see . #pragma once #include + +#include "compiler_support.h" #include "report.h" #include "modifiers.h" @@ -25,6 +27,21 @@ along with this program. If not, see . extern "C" { #endif +typedef union { + uint8_t raw; + struct { + bool left_ctrl : 1; + bool left_shift : 1; + bool left_alt : 1; + bool left_gui : 1; + bool right_ctrl : 1; + bool right_shift : 1; + bool right_alt : 1; + bool right_gui : 1; + }; +} PACKED mod_t; +STATIC_ASSERT(sizeof(mod_t) == sizeof(uint8_t), "Invalid size for 'mod_t'"); + extern report_keyboard_t *keyboard_report; #ifdef NKRO_ENABLE extern report_nkro_t *nkro_report; @@ -47,6 +64,7 @@ inline void clear_keys(void) { /* modifier */ uint8_t get_mods(void); +mod_t get_mod_state(void); void add_mods(uint8_t mods); void del_mods(uint8_t mods); void set_mods(uint8_t mods); @@ -54,6 +72,7 @@ void clear_mods(void); /* weak modifier */ uint8_t get_weak_mods(void); +mod_t get_weak_mod_state(void); void add_weak_mods(uint8_t mods); void del_weak_mods(uint8_t mods); void set_weak_mods(uint8_t mods); @@ -61,6 +80,7 @@ void clear_weak_mods(void); /* oneshot modifier */ uint8_t get_oneshot_mods(void); +mod_t get_oneshot_mod_state(void); void add_oneshot_mods(uint8_t mods); void del_oneshot_mods(uint8_t mods); void set_oneshot_mods(uint8_t mods); @@ -68,6 +88,7 @@ void clear_oneshot_mods(void); bool has_oneshot_mods_timed_out(void); uint8_t get_oneshot_locked_mods(void); +mod_t get_oneshot_locked_mod_state(void); void add_oneshot_locked_mods(uint8_t mods); void set_oneshot_locked_mods(uint8_t mods); void clear_oneshot_locked_mods(void); From 36fd2437b07e5326722fc1f20b44cbb7bbdba6ea Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 30 Sep 2025 10:09:31 -0600 Subject: [PATCH 065/255] Migrate `g_led_config` to DD (0-9, A) (#25558) --- keyboards/1upkeyboards/super16/keyboard.json | 20 ++- keyboards/1upkeyboards/super16/super16.c | 39 ----- .../1upkeyboards/super16v2/keyboard.json | 22 +++ keyboards/1upkeyboards/super16v2/super16v2.c | 41 ----- .../4pplet/perk60_iso/rev_a/keyboard.json | 66 +++++++- keyboards/4pplet/perk60_iso/rev_a/rev_a.c | 155 +++++++----------- keyboards/acheron/apollo/87h/delta/delta.c | 38 ----- .../acheron/apollo/87h/delta/keyboard.json | 89 ++++++++++ keyboards/acheron/apollo/87h/gamma/gamma.c | 23 --- .../acheron/apollo/87h/gamma/keyboard.json | 89 ++++++++++ keyboards/acheron/apollo/87htsc/87htsc.c | 24 --- keyboards/acheron/apollo/87htsc/keyboard.json | 88 ++++++++++ keyboards/acheron/apollo/88htsc/88htsc.c | 42 ----- keyboards/acheron/apollo/88htsc/keyboard.json | 89 ++++++++++ keyboards/adpenrose/akemipad/akemipad.c | 27 --- keyboards/adpenrose/akemipad/keyboard.json | 30 +++- .../aeboards/satellite/rev1/keyboard.json | 74 +++++++++ keyboards/aeboards/satellite/rev1/rev1.c | 40 ----- keyboards/aleblazer/zodiark/keyboard.json | 70 ++++++++ keyboards/aleblazer/zodiark/zodiark.c | 54 ------ keyboards/axolstudio/yeti/hotswap/hotswap.c | 22 --- .../axolstudio/yeti/hotswap/keyboard.json | 66 ++++++++ 22 files changed, 762 insertions(+), 446 deletions(-) delete mode 100644 keyboards/1upkeyboards/super16/super16.c delete mode 100644 keyboards/1upkeyboards/super16v2/super16v2.c delete mode 100644 keyboards/acheron/apollo/88htsc/88htsc.c delete mode 100644 keyboards/adpenrose/akemipad/akemipad.c delete mode 100644 keyboards/aleblazer/zodiark/zodiark.c diff --git a/keyboards/1upkeyboards/super16/keyboard.json b/keyboards/1upkeyboards/super16/keyboard.json index 3b5859474a..bd8c8fe00d 100644 --- a/keyboards/1upkeyboards/super16/keyboard.json +++ b/keyboards/1upkeyboards/super16/keyboard.json @@ -74,7 +74,25 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "ws2812" + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 224, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 150, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 75, "y": 21, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 43, "flags": 4}, + {"matrix": [2, 1], "x": 75, "y": 43, "flags": 4}, + {"matrix": [2, 2], "x": 150, "y": 43, "flags": 4}, + {"matrix": [2, 3], "x": 224, "y": 43, "flags": 4}, + {"matrix": [3, 3], "x": 224, "y": 64, "flags": 4}, + {"matrix": [3, 2], "x": 150, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 75, "y": 64, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4} + ] }, "features": { "bootmagic": true, diff --git a/keyboards/1upkeyboards/super16/super16.c b/keyboards/1upkeyboards/super16/super16.c deleted file mode 100644 index a9946c7525..0000000000 --- a/keyboards/1upkeyboards/super16/super16.c +++ /dev/null @@ -1,39 +0,0 @@ -/* Copyright 2019 MechMerlin - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3 }, - { 7, 6, 5, 4 }, - { 8, 9, 10, 11 }, - { 15, 14, 13, 12 } -}, { - // LED Index to Physical Position - { 0, 0 }, { 75, 0 }, { 150, 0 }, { 224, 0 }, - { 224, 21 }, { 150, 21 }, { 75, 21 }, { 0, 21 }, - { 0, 43 }, { 75, 43 }, { 150, 43 }, { 224, 43 }, - { 224, 64 }, { 150, 64 }, { 75, 64 }, { 0, 64 }, - -}, { - // LED Index to Flag - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4 -} }; -#endif diff --git a/keyboards/1upkeyboards/super16v2/keyboard.json b/keyboards/1upkeyboards/super16v2/keyboard.json index 5c5123453c..1fb14d86da 100644 --- a/keyboards/1upkeyboards/super16v2/keyboard.json +++ b/keyboards/1upkeyboards/super16v2/keyboard.json @@ -46,6 +46,28 @@ "splash": true }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 3], "x": 28, "y": 12, "flags": 4}, + {"matrix": [0, 2], "x": 84, "y": 12, "flags": 4}, + {"matrix": [0, 1], "x": 140, "y": 12, "flags": 4}, + {"matrix": [0, 0], "x": 196, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 28, "y": 28, "flags": 4}, + {"matrix": [1, 2], "x": 84, "y": 28, "flags": 4}, + {"matrix": [1, 1], "x": 140, "y": 28, "flags": 4}, + {"matrix": [1, 0], "x": 196, "y": 28, "flags": 4}, + {"matrix": [2, 3], "x": 28, "y": 44, "flags": 4}, + {"matrix": [2, 2], "x": 84, "y": 44, "flags": 4}, + {"matrix": [2, 1], "x": 140, "y": 44, "flags": 4}, + {"matrix": [2, 0], "x": 196, "y": 44, "flags": 4}, + {"matrix": [3, 3], "x": 28, "y": 60, "flags": 4}, + {"matrix": [3, 2], "x": 84, "y": 60, "flags": 4}, + {"matrix": [3, 1], "x": 140, "y": 60, "flags": 4}, + {"matrix": [3, 0], "x": 196, "y": 60, "flags": 4}, + {"x": 168, "y": 48, "flags": 2}, + {"x": 168, "y": 16, "flags": 2}, + {"x": 58, "y": 16, "flags": 2}, + {"x": 56, "y": 48, "flags": 2} + ], "sleep": true }, "features": { diff --git a/keyboards/1upkeyboards/super16v2/super16v2.c b/keyboards/1upkeyboards/super16v2/super16v2.c deleted file mode 100644 index 56e5fe7e7f..0000000000 --- a/keyboards/1upkeyboards/super16v2/super16v2.c +++ /dev/null @@ -1,41 +0,0 @@ -/* Copyright 2022 MechMerlin - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 3, 2, 1, 0 }, - { 7, 6, 5, 4 }, - { 11, 10, 9, 8 }, - { 15, 14, 13, 12 } -}, { - // LED Index to Physical Position - { 28, 12 }, { 84, 12 }, { 140, 12 }, { 196, 12 }, - { 28, 28 }, { 84, 28 }, { 140, 28 }, { 196, 28 }, - { 28, 44 }, { 84, 44 }, { 140, 44 }, { 196, 44 }, - { 28, 60 }, { 84, 60 }, { 140, 60 }, { 196, 60 }, - { 168, 48 }, { 168, 16 }, { 58, 16 }, { 56, 48 } -}, { - // LED Index to Flag - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, - 4, 4, 4, 4, - 2, 2, 2, 2, -} }; -#endif diff --git a/keyboards/4pplet/perk60_iso/rev_a/keyboard.json b/keyboards/4pplet/perk60_iso/rev_a/keyboard.json index 8d3a519a87..2e50d02a52 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/keyboard.json +++ b/keyboards/4pplet/perk60_iso/rev_a/keyboard.json @@ -37,7 +37,71 @@ "default": { "val": 80 }, - "driver": "is31fl3733" + "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 32, "y": 0, "flags": 4}, + {"matrix": [1, 1], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 65, "y": 0, "flags": 4}, + {"matrix": [1, 2], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 97, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 113, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 129, "y": 0, "flags": 4}, + {"matrix": [1, 4], "x": 145, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 161, "y": 0, "flags": 4}, + {"matrix": [1, 5], "x": 178, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 194, "y": 0, "flags": 4}, + {"matrix": [3, 6], "x": 218, "y": 0, "flags": 1}, + {"matrix": [2, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [3, 0], "x": 24, "y": 16, "flags": 4}, + {"matrix": [2, 1], "x": 40, "y": 16, "flags": 4}, + {"matrix": [3, 1], "x": 57, "y": 16, "flags": 4}, + {"matrix": [2, 2], "x": 73, "y": 16, "flags": 4}, + {"matrix": [3, 2], "x": 89, "y": 16, "flags": 4}, + {"matrix": [2, 3], "x": 105, "y": 16, "flags": 4}, + {"matrix": [3, 3], "x": 121, "y": 16, "flags": 4}, + {"matrix": [2, 4], "x": 137, "y": 16, "flags": 4}, + {"matrix": [3, 4], "x": 153, "y": 16, "flags": 4}, + {"matrix": [2, 5], "x": 170, "y": 16, "flags": 4}, + {"matrix": [3, 5], "x": 186, "y": 16, "flags": 4}, + {"matrix": [2, 6], "x": 202, "y": 16, "flags": 4}, + {"matrix": [7, 6], "x": 224, "y": 24, "flags": 1}, + {"matrix": [4, 0], "x": 6, "y": 32, "flags": 8}, + {"matrix": [5, 0], "x": 28, "y": 32, "flags": 4}, + {"matrix": [4, 1], "x": 44, "y": 32, "flags": 4}, + {"matrix": [5, 1], "x": 61, "y": 32, "flags": 4}, + {"matrix": [4, 2], "x": 77, "y": 32, "flags": 4}, + {"matrix": [5, 2], "x": 93, "y": 32, "flags": 4}, + {"matrix": [4, 3], "x": 109, "y": 32, "flags": 4}, + {"matrix": [5, 3], "x": 125, "y": 32, "flags": 4}, + {"matrix": [4, 4], "x": 141, "y": 32, "flags": 4}, + {"matrix": [5, 4], "x": 157, "y": 32, "flags": 4}, + {"matrix": [4, 5], "x": 174, "y": 32, "flags": 4}, + {"matrix": [5, 5], "x": 190, "y": 32, "flags": 4}, + {"matrix": [4, 6], "x": 206, "y": 32, "flags": 1}, + {"matrix": [6, 0], "x": 2, "y": 48, "flags": 1}, + {"matrix": [7, 0], "x": 20, "y": 48, "flags": 4}, + {"matrix": [6, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [7, 1], "x": 52, "y": 48, "flags": 4}, + {"matrix": [6, 2], "x": 69, "y": 48, "flags": 4}, + {"matrix": [7, 2], "x": 85, "y": 48, "flags": 4}, + {"matrix": [6, 3], "x": 101, "y": 48, "flags": 4}, + {"matrix": [7, 3], "x": 117, "y": 48, "flags": 4}, + {"matrix": [6, 4], "x": 133, "y": 48, "flags": 4}, + {"matrix": [7, 4], "x": 149, "y": 48, "flags": 4}, + {"matrix": [6, 5], "x": 165, "y": 48, "flags": 4}, + {"matrix": [7, 5], "x": 182, "y": 48, "flags": 4}, + {"matrix": [8, 6], "x": 212, "y": 48, "flags": 1}, + {"matrix": [8, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [8, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [9, 0], "x": 42, "y": 64, "flags": 1}, + {"matrix": [8, 3], "x": 103, "y": 64, "flags": 4}, + {"matrix": [9, 3], "x": 163, "y": 64, "flags": 1}, + {"matrix": [9, 4], "x": 184, "y": 64, "flags": 1}, + {"matrix": [8, 5], "x": 204, "y": 64, "flags": 1}, + {"matrix": [9, 5], "x": 224, "y": 64, "flags": 1} + ] }, "features": { "bootmagic": true, diff --git a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c index c4ab064cb2..431400a6b8 100644 --- a/keyboards/4pplet/perk60_iso/rev_a/rev_a.c +++ b/keyboards/4pplet/perk60_iso/rev_a/rev_a.c @@ -31,99 +31,68 @@ along with this program. If not, see . #ifdef RGB_MATRIX_ENABLE const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { - { 0, SW11_CS2, SW10_CS2, SW12_CS2 }, //D402 - { 0, SW11_CS3, SW10_CS3, SW12_CS3 }, //D403 - { 0, SW11_CS4, SW10_CS4, SW12_CS4 }, //D404 - { 0, SW11_CS5, SW10_CS5, SW12_CS5 }, //D405 - { 0, SW11_CS6, SW10_CS6, SW12_CS6 }, //D406 - { 0, SW11_CS7, SW10_CS7, SW12_CS7 }, //D407 - { 0, SW11_CS8, SW10_CS8, SW12_CS8 }, //D408 - { 0, SW11_CS9, SW10_CS9, SW12_CS9 }, //D409 - { 0, SW11_CS10, SW10_CS10, SW12_CS10 }, //D410 - { 0, SW11_CS11, SW10_CS11, SW12_CS11 }, //D411 - { 0, SW11_CS12, SW10_CS12, SW12_CS12 }, //D412 - { 0, SW11_CS13, SW10_CS13, SW12_CS13 }, //D413 - { 0, SW11_CS14, SW10_CS14, SW12_CS14 }, //D414 - { 0, SW11_CS15, SW10_CS15, SW12_CS15 }, //D415 - { 0, SW11_CS1, SW10_CS1, SW12_CS1 }, //D401 - { 0, SW8_CS4, SW7_CS4, SW9_CS4 }, //D420 - { 0, SW8_CS5, SW7_CS5, SW9_CS5 }, //D421 - { 0, SW8_CS6, SW7_CS6, SW9_CS6 }, //D422 - { 0, SW8_CS7, SW7_CS7, SW9_CS7 }, //D423 - { 0, SW8_CS8, SW7_CS8, SW9_CS8 }, //D424 - { 0, SW8_CS9, SW7_CS9, SW9_CS9 }, //D425 - { 0, SW8_CS10, SW7_CS10, SW9_CS10 }, //D426 - { 0, SW8_CS11, SW7_CS11, SW9_CS11 }, //D427 - { 0, SW8_CS12, SW7_CS12, SW9_CS12 }, //D428 - { 0, SW8_CS13, SW7_CS13, SW9_CS13 }, //D429 - { 0, SW8_CS14, SW7_CS14, SW9_CS14 }, //D430 - { 0, SW8_CS15, SW7_CS15, SW9_CS15 }, //D431 - { 0, SW11_CS16, SW10_CS16, SW12_CS16 }, //D416 - { 0, SW8_CS2, SW7_CS2, SW9_CS2 }, //D418 - { 0, SW8_CS3, SW7_CS3, SW9_CS3 }, //D419 - { 0, SW5_CS5, SW4_CS5, SW6_CS5 }, //D437 - { 0, SW5_CS6, SW4_CS6, SW6_CS6 }, //D438 - { 0, SW5_CS7, SW4_CS7, SW6_CS7 }, //D439 - { 0, SW5_CS8, SW4_CS8, SW6_CS8 }, //D440 - { 0, SW5_CS9, SW4_CS9, SW6_CS9 }, //D441 - { 0, SW5_CS10, SW4_CS10, SW6_CS10 }, //D442 - { 0, SW5_CS11, SW4_CS11, SW6_CS11 }, //D443 - { 0, SW5_CS12, SW4_CS12, SW6_CS12 }, //D444 - { 0, SW5_CS13, SW4_CS13, SW6_CS13 }, //D445 - { 0, SW5_CS14, SW4_CS14, SW6_CS14 }, //D446 - { 0, SW8_CS16, SW7_CS16, SW9_CS16 }, //D432 - { 0, SW8_CS1, SW7_CS1, SW9_CS1 }, //D417 - { 0, SW5_CS3, SW4_CS3, SW6_CS3 }, //D435 - { 0, SW5_CS4, SW4_CS4, SW6_CS4 }, //D436 - { 0, SW2_CS2, SW1_CS2, SW3_CS2 }, //D450 - { 0, SW2_CS3, SW1_CS3, SW3_CS3 }, //D451 - { 0, SW2_CS4, SW1_CS4, SW3_CS4 }, //D452 - { 0, SW2_CS6, SW1_CS6, SW3_CS6 }, //D454 - { 0, SW2_CS8, SW1_CS8, SW3_CS8 }, //D456 - { 0, SW2_CS9, SW1_CS9, SW3_CS9 }, //D457 - { 0, SW2_CS10, SW1_CS10, SW3_CS10 }, //D458 - { 0, SW2_CS12, SW1_CS12, SW3_CS12 }, //D460 - { 0, SW2_CS13, SW1_CS13, SW3_CS13 }, //D461 - { 0, SW5_CS15, SW4_CS15, SW6_CS15 }, //D447 - { 0, SW5_CS1, SW4_CS1, SW6_CS1 }, //D433 - { 0, SW5_CS2, SW4_CS2, SW6_CS2 }, //D434 - { 0, SW2_CS1, SW1_CS1, SW3_CS1 }, //D449 - { 0, SW2_CS7, SW1_CS7, SW3_CS7 }, //D455 - { 0, SW2_CS11, SW1_CS11, SW3_CS11 }, //D459 - { 0, SW2_CS14, SW1_CS14, SW3_CS14 }, //D462 - { 0, SW2_CS15, SW1_CS15, SW3_CS15 }, //D463 - { 0, SW2_CS16, SW1_CS16, SW3_CS16 } //D464 -}; - -#define XXX NO_LED -led_config_t g_led_config = { - { - { 0, 2, 4, 6, 8, 10, 12 }, - { 1, 3, 5, 7, 9, 11, XXX }, - { 14, 16, 18, 20, 22, 24, 26 }, - { 15, 17, 19, 21, 23, 25, 13 }, - { 28, 30, 32, 34, 36, 38, 40 }, - { 29, 31, 33, 35, 37, 39, XXX }, - { 41, 43, 45, 47, 49, 51, XXX }, - { 42, 44, 46, 48, 50, 52, 27 }, - { 54, 55, XXX, 57, XXX, 60, 53 }, - { 56, XXX, XXX, 58, 59, 61, XXX }, - - }, { - { 0,0 }, { 16,0 }, { 32,0 }, { 48,0 }, { 65,0 }, { 81,0 }, { 97,0 }, {113,0 }, {129,0 }, {145,0 }, - {161,0 }, {178,0 }, {194,0 }, {218,0 }, { 4,16 }, { 24,16 }, { 40,16 }, { 57,16 }, { 73,16 }, { 89,16 }, - {105,16 }, {121,16 }, {137,16 }, {153,16 }, {170,16 }, {186,16 }, {202,16 }, {224,24 }, { 6,32 }, { 28,32 }, - { 44,32 }, { 61,32 }, { 77,32 }, { 93,32 }, {109,32 }, {125,32 }, {141,32 }, {157,32 }, {174,32 }, {190,32 }, - {206,32 }, { 2,48 }, { 20,48 }, { 36,48 }, { 52,48 }, { 69,48 }, { 85,48 }, {101,48 }, {117,48 }, {133,48 }, - {149,48 }, {165,48 }, {182,48 }, {212,48 }, { 2,64 }, { 22,64 }, { 42,64 }, {103,64 }, {163,64 }, {184,64 }, - {204,64 }, {224,64 }, - }, { - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 8, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 4, 1, 1, 1, 1 - } + {0, SW11_CS2, SW10_CS2, SW12_CS2}, // D402 + {0, SW11_CS3, SW10_CS3, SW12_CS3}, // D403 + {0, SW11_CS4, SW10_CS4, SW12_CS4}, // D404 + {0, SW11_CS5, SW10_CS5, SW12_CS5}, // D405 + {0, SW11_CS6, SW10_CS6, SW12_CS6}, // D406 + {0, SW11_CS7, SW10_CS7, SW12_CS7}, // D407 + {0, SW11_CS8, SW10_CS8, SW12_CS8}, // D408 + {0, SW11_CS9, SW10_CS9, SW12_CS9}, // D409 + {0, SW11_CS10, SW10_CS10, SW12_CS10}, // D410 + {0, SW11_CS11, SW10_CS11, SW12_CS11}, // D411 + {0, SW11_CS12, SW10_CS12, SW12_CS12}, // D412 + {0, SW11_CS13, SW10_CS13, SW12_CS13}, // D413 + {0, SW11_CS14, SW10_CS14, SW12_CS14}, // D414 + {0, SW11_CS15, SW10_CS15, SW12_CS15}, // D415 + {0, SW11_CS1, SW10_CS1, SW12_CS1}, // D401 + {0, SW8_CS4, SW7_CS4, SW9_CS4}, // D420 + {0, SW8_CS5, SW7_CS5, SW9_CS5}, // D421 + {0, SW8_CS6, SW7_CS6, SW9_CS6}, // D422 + {0, SW8_CS7, SW7_CS7, SW9_CS7}, // D423 + {0, SW8_CS8, SW7_CS8, SW9_CS8}, // D424 + {0, SW8_CS9, SW7_CS9, SW9_CS9}, // D425 + {0, SW8_CS10, SW7_CS10, SW9_CS10}, // D426 + {0, SW8_CS11, SW7_CS11, SW9_CS11}, // D427 + {0, SW8_CS12, SW7_CS12, SW9_CS12}, // D428 + {0, SW8_CS13, SW7_CS13, SW9_CS13}, // D429 + {0, SW8_CS14, SW7_CS14, SW9_CS14}, // D430 + {0, SW8_CS15, SW7_CS15, SW9_CS15}, // D431 + {0, SW11_CS16, SW10_CS16, SW12_CS16}, // D416 + {0, SW8_CS2, SW7_CS2, SW9_CS2}, // D418 + {0, SW8_CS3, SW7_CS3, SW9_CS3}, // D419 + {0, SW5_CS5, SW4_CS5, SW6_CS5}, // D437 + {0, SW5_CS6, SW4_CS6, SW6_CS6}, // D438 + {0, SW5_CS7, SW4_CS7, SW6_CS7}, // D439 + {0, SW5_CS8, SW4_CS8, SW6_CS8}, // D440 + {0, SW5_CS9, SW4_CS9, SW6_CS9}, // D441 + {0, SW5_CS10, SW4_CS10, SW6_CS10}, // D442 + {0, SW5_CS11, SW4_CS11, SW6_CS11}, // D443 + {0, SW5_CS12, SW4_CS12, SW6_CS12}, // D444 + {0, SW5_CS13, SW4_CS13, SW6_CS13}, // D445 + {0, SW5_CS14, SW4_CS14, SW6_CS14}, // D446 + {0, SW8_CS16, SW7_CS16, SW9_CS16}, // D432 + {0, SW8_CS1, SW7_CS1, SW9_CS1}, // D417 + {0, SW5_CS3, SW4_CS3, SW6_CS3}, // D435 + {0, SW5_CS4, SW4_CS4, SW6_CS4}, // D436 + {0, SW2_CS2, SW1_CS2, SW3_CS2}, // D450 + {0, SW2_CS3, SW1_CS3, SW3_CS3}, // D451 + {0, SW2_CS4, SW1_CS4, SW3_CS4}, // D452 + {0, SW2_CS6, SW1_CS6, SW3_CS6}, // D454 + {0, SW2_CS8, SW1_CS8, SW3_CS8}, // D456 + {0, SW2_CS9, SW1_CS9, SW3_CS9}, // D457 + {0, SW2_CS10, SW1_CS10, SW3_CS10}, // D458 + {0, SW2_CS12, SW1_CS12, SW3_CS12}, // D460 + {0, SW2_CS13, SW1_CS13, SW3_CS13}, // D461 + {0, SW5_CS15, SW4_CS15, SW6_CS15}, // D447 + {0, SW5_CS1, SW4_CS1, SW6_CS1}, // D433 + {0, SW5_CS2, SW4_CS2, SW6_CS2}, // D434 + {0, SW2_CS1, SW1_CS1, SW3_CS1}, // D449 + {0, SW2_CS7, SW1_CS7, SW3_CS7}, // D455 + {0, SW2_CS11, SW1_CS11, SW3_CS11}, // D459 + {0, SW2_CS14, SW1_CS14, SW3_CS14}, // D462 + {0, SW2_CS15, SW1_CS15, SW3_CS15}, // D463 + {0, SW2_CS16, SW1_CS16, SW3_CS16} // D464 }; bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { diff --git a/keyboards/acheron/apollo/87h/delta/delta.c b/keyboards/acheron/apollo/87h/delta/delta.c index b17fce5c3a..a03bd01ec7 100644 --- a/keyboards/acheron/apollo/87h/delta/delta.c +++ b/keyboards/acheron/apollo/87h/delta/delta.c @@ -21,41 +21,3 @@ void board_init(void) { gpio_set_pin_input(B9); gpio_set_pin_input(B10); } - -led_config_t g_led_config = { { -// { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , NO_LED , 13 , 14 , 15 }, -// { 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 }, -// { 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 , 48 , 49 }, -// { 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , NO_LED , NO_LED , NO_LED , NO_LED }, -// { 63 , NO_LED , 64 , 65 , 66 , 67 , 68 , 69 , 70 , 71 , 72 , 73 , 74 , NO_LED , NO_LED , 75 , NO_LED }, -// { 76 , 77 , 78 , NO_LED , NO_LED , NO_LED , 79 , NO_LED , NO_LED , 80 , 81 , 82 , 83 , NO_LED , 84 , 85 , 86 } -// - { 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , NO_LED , 2 , 1 , 0 }, - { 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 }, - { 49 , 48 , 47 , 46 , 45 , 44 , 43 , 42 , 41 , 40 , 39 , 38 , 37 , 36 , 35 , 34 , 33 }, - { 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , NO_LED , NO_LED , NO_LED , NO_LED }, - { 75 , NO_LED , 74 , 73 , 72 , 71 , 70 , 69 , 68 , 67 , 66 , 65 , 64 , NO_LED , NO_LED , 63 , NO_LED }, - { 76 , 77 , 78 , NO_LED , NO_LED , NO_LED , 79 , NO_LED , NO_LED , 80 , 81 , 82 , 83 , NO_LED , 84 , 85 , 86 } -},{ -// "Fine-tuned" complex configuration - { 210, 0}, { 196, 0}, { 182, 0}, { 168, 0}, { 154, 0}, { 140, 0}, { 140, 0}, { 126, 0}, { 112, 0}, { 98, 0}, { 84, 0}, { 70, 0}, { 56, 0}, { 28, 0}, { 14, 0}, { 0, 0}, - { 0, 45}, { 14, 45}, { 28, 45}, { 42, 45}, { 56, 45}, { 70, 45}, { 84, 45}, { 98, 45}, { 112, 45}, { 126, 45}, { 140, 45}, { 154, 45}, { 168, 45}, { 182, 45}, { 196, 45}, { 210, 45}, { 224, 45}, - { 224, 90}, { 210, 90}, { 196, 90}, { 182, 90}, { 168, 90}, { 154, 90}, { 140, 90}, { 126, 90}, { 112, 90}, { 98, 90}, { 84, 90}, { 70, 90}, { 56, 90}, { 42, 90}, { 28, 90}, { 14, 90}, { 0, 90}, - { 0, 135}, { 14, 135}, { 28, 135}, { 42, 135}, { 56, 135}, { 70, 135}, { 84, 135}, { 98, 135}, { 112, 135}, { 126, 135}, { 140, 135}, { 154, 135}, { 168, 135}, - { 192, 180}, { 168, 180}, { 154, 180}, { 140, 180}, { 126, 180}, { 112, 180}, { 98, 180}, { 84, 180}, { 70, 180}, { 56, 180}, { 42, 180}, { 28, 180}, { 14, 180}, - { 0, 225}, { 14, 225}, { 28, 225}, { 84, 225}, { 126, 225}, { 140, 225}, { 154, 225}, { 168, 225}, { 196, 45}, { 210, 45}, { 224, 90} -// "Stock" simple configuration -// { 224, 0}, { 210, 0}, { 196, 0}, { 182, 0}, { 168, 0}, { 154, 0}, { 140, 0}, { 126, 0}, { 112, 0}, { 98, 0}, { 84, 0}, { 70, 0}, { 56, 0}, { 28, 0}, { 14, 0}, { 0, 0}, -// { 0, 45}, { 14, 45}, { 28, 45}, { 42, 45}, { 56, 45}, { 70, 45}, { 84, 45}, { 98, 45}, { 112, 45}, { 126, 45}, { 140, 45}, { 154, 45}, { 168, 45}, { 182, 45}, { 196, 45}, { 210, 45}, { 224, 45}, -// { 224, 90}, { 210, 90}, { 196, 90}, { 182, 90}, { 168, 90}, { 154, 90}, { 140, 90}, { 126, 90}, { 112, 90}, { 98, 90}, { 84, 90}, { 70, 90}, { 56, 90}, { 42, 90}, { 28, 90}, { 14, 90}, { 0, 90}, -// { 0, 135}, { 14, 135}, { 28, 135}, { 42, 135}, { 56, 135}, { 70, 135}, { 84, 135}, { 98, 135}, { 112, 135}, { 126, 135}, { 140, 135}, { 154, 135}, { 168, 135}, -// { 224, 180}, { 196, 180}, { 182, 180}, { 168, 180}, { 154, 180}, { 140, 180}, { 126, 180}, { 112, 180}, { 98, 180}, { 84, 180}, { 70, 180}, { 56, 180}, { 14, 180}, -// { 0, 225}, { 14, 225}, { 28, 225}, { 84, 225}, { 126, 225}, { 140, 225}, { 154, 225}, { 168, 225}, { 196, 45}, { 210, 45}, { 224, 90} -}, { - 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , - 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 , - 1 , 1 , 1 , 4 , 1 , 1 , 1 , 1 , 1 , 1 , 1 -} }; diff --git a/keyboards/acheron/apollo/87h/delta/keyboard.json b/keyboards/acheron/apollo/87h/delta/keyboard.json index f5bdf28d96..d9f6de197a 100644 --- a/keyboards/acheron/apollo/87h/delta/keyboard.json +++ b/keyboards/acheron/apollo/87h/delta/keyboard.json @@ -57,6 +57,95 @@ "val": 60 }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 16], "x": 224, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 210, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 196, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 182, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 168, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 154, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 126, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 98, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 70, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 28, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 42, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 56, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 70, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 84, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 98, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 112, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 126, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 140, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 154, "y": 12, "flags": 4}, + {"matrix": [1, 12], "x": 168, "y": 12, "flags": 4}, + {"matrix": [1, 13], "x": 182, "y": 12, "flags": 4}, + {"matrix": [1, 14], "x": 196, "y": 12, "flags": 4}, + {"matrix": [1, 15], "x": 210, "y": 12, "flags": 4}, + {"matrix": [1, 16], "x": 224, "y": 12, "flags": 4}, + {"matrix": [2, 16], "x": 224, "y": 25, "flags": 4}, + {"matrix": [2, 15], "x": 210, "y": 25, "flags": 4}, + {"matrix": [2, 14], "x": 196, "y": 25, "flags": 4}, + {"matrix": [2, 13], "x": 182, "y": 25, "flags": 4}, + {"matrix": [2, 12], "x": 168, "y": 25, "flags": 4}, + {"matrix": [2, 11], "x": 154, "y": 25, "flags": 4}, + {"matrix": [2, 10], "x": 140, "y": 25, "flags": 4}, + {"matrix": [2, 9], "x": 126, "y": 25, "flags": 4}, + {"matrix": [2, 8], "x": 112, "y": 25, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 25, "flags": 4}, + {"matrix": [2, 6], "x": 84, "y": 25, "flags": 4}, + {"matrix": [2, 5], "x": 70, "y": 25, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 25, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 25, "flags": 4}, + {"matrix": [2, 2], "x": 28, "y": 25, "flags": 4}, + {"matrix": [2, 1], "x": 14, "y": 25, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 14, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 28, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 42, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 98, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 112, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 126, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 38, "flags": 4}, + {"matrix": [3, 12], "x": 168, "y": 38, "flags": 1}, + {"matrix": [4, 15], "x": 210, "y": 51, "flags": 1}, + {"matrix": [4, 12], "x": 168, "y": 51, "flags": 4}, + {"matrix": [4, 11], "x": 154, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 140, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 126, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 112, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 98, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 84, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 70, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 56, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 51, "flags": 4}, + {"matrix": [4, 2], "x": 28, "y": 51, "flags": 1}, + {"matrix": [4, 0], "x": 14, "y": 51, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 28, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 84, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 126, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 140, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 154, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 168, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 196, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 210, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1} + ], "sleep": true }, "features": { diff --git a/keyboards/acheron/apollo/87h/gamma/gamma.c b/keyboards/acheron/apollo/87h/gamma/gamma.c index f047db0fea..92c6697a1c 100644 --- a/keyboards/acheron/apollo/87h/gamma/gamma.c +++ b/keyboards/acheron/apollo/87h/gamma/gamma.c @@ -120,27 +120,4 @@ const is31fl3741_led_t PROGMEM g_is31fl3741_leds[IS31FL3741_LED_COUNT] = { {0, SW3_CS24, SW3_CS23, SW3_CS22 }, //RIGHT 86 }; - -led_config_t g_led_config = { { - { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 }, - { 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 }, - { 33 , 34 , 35 , 36 , 37 , 38 , 39 , 40 , 41 , 41 , 43 , 44 , 45 , 46 , 47 , 48 }, - { 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , NO_LED , NO_LED , NO_LED }, - { 63 , NO_LED , 64 , 65 , 66 , 67 , 68 , 69 , 70 , 71 , 72 , 73 , 74 , 75 , 49 , 32 }, - { 76 , 77 , 78 , NO_LED , NO_LED , NO_LED , 79 , NO_LED , NO_LED , 80 , 81 , 82 , 83 , 84 , 85 , 86 } -},{ - { 0, 0}, { 15, 0}, { 30, 0}, { 45, 0}, { 60, 0}, { 75, 0}, { 90, 0}, { 105, 0}, { 120, 0}, { 135, 0}, { 150, 0}, { 165, 0}, { 180, 0}, { 210, 0}, { 210, 0}, { 225, 0}, - { 0, 45}, { 15, 45}, { 30, 45}, { 45, 45}, { 60, 45}, { 75, 45}, { 90, 45}, { 105, 45}, { 120, 45}, { 135, 45}, { 150, 45}, { 165, 45}, { 180, 45}, { 210, 45}, { 210, 45}, { 215, 45}, - { 0, 90}, { 15, 90}, { 30, 90}, { 45, 90}, { 60, 90}, { 75, 90}, { 90, 90}, { 105, 90}, { 120, 90}, { 135, 90}, { 150, 90}, { 165, 90}, { 180, 90}, { 195, 90}, { 210, 90}, { 215, 90}, - { 0, 135}, { 15, 135}, { 30, 135}, { 45, 135}, { 60, 135}, { 75, 135}, { 90, 135}, { 105, 135}, { 120, 135}, { 135, 135}, { 150, 135}, { 165, 135}, { 180, 135}, - { 0, 180}, { 30, 180}, { 45, 180}, { 60, 180}, { 75, 180}, { 90, 180}, { 105, 180}, { 120, 180}, { 135, 180}, { 150, 180}, { 165, 180}, { 180, 180}, { 210, 180}, { 225, 45}, { 225, 0}, - { 0, 225}, { 15, 225}, { 30, 225}, { 90, 225}, { 135, 225}, { 150, 225}, { 165, 225}, { 180, 225}, { 195, 225}, { 210, 225}, { 225, 225} -}, { - 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , - 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 , 1 , 1 , - 1 , 1 , 1 , 4 , 1 , 1 , 1 , 1 , 1 , 1 , 1 -} }; #endif diff --git a/keyboards/acheron/apollo/87h/gamma/keyboard.json b/keyboards/acheron/apollo/87h/gamma/keyboard.json index 5c2087c968..03ba206526 100644 --- a/keyboards/acheron/apollo/87h/gamma/keyboard.json +++ b/keyboards/acheron/apollo/87h/gamma/keyboard.json @@ -58,6 +58,95 @@ "val": 80 }, "driver": "is31fl3741", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 70, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 98, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 126, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 154, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 168, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 182, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 196, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 210, "y": 0, "flags": 4}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 28, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 42, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 56, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 70, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 84, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 98, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 112, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 126, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 140, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 154, "y": 12, "flags": 4}, + {"matrix": [1, 12], "x": 168, "y": 12, "flags": 4}, + {"matrix": [1, 13], "x": 182, "y": 12, "flags": 4}, + {"matrix": [1, 14], "x": 196, "y": 12, "flags": 4}, + {"matrix": [1, 15], "x": 210, "y": 12, "flags": 4}, + {"matrix": [4, 15], "x": 224, "y": 12, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4}, + {"matrix": [2, 1], "x": 14, "y": 25, "flags": 4}, + {"matrix": [2, 2], "x": 28, "y": 25, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 25, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 25, "flags": 4}, + {"matrix": [2, 5], "x": 70, "y": 25, "flags": 4}, + {"matrix": [2, 6], "x": 84, "y": 25, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 25, "flags": 4}, + {"matrix": [2, 8], "x": 112, "y": 25, "flags": 4}, + {"matrix": [2, 9], "x": 126, "y": 25, "flags": 4}, + {"matrix": [2, 10], "x": 140, "y": 25, "flags": 4}, + {"matrix": [2, 11], "x": 154, "y": 25, "flags": 4}, + {"matrix": [2, 12], "x": 168, "y": 25, "flags": 4}, + {"matrix": [2, 13], "x": 182, "y": 25, "flags": 4}, + {"matrix": [2, 14], "x": 196, "y": 25, "flags": 4}, + {"matrix": [2, 15], "x": 210, "y": 25, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 25, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 14, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 28, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 42, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 98, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 112, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 126, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 38, "flags": 1}, + {"matrix": [3, 11], "x": 156, "y": 38, "flags": 1}, + {"matrix": [3, 12], "x": 168, "y": 38, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 51, "flags": 4}, + {"matrix": [4, 2], "x": 14, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 28, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 42, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 56, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 70, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 84, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 98, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 112, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 126, "y": 51, "flags": 1}, + {"matrix": [4, 11], "x": 140, "y": 51, "flags": 1}, + {"matrix": [4, 12], "x": 156, "y": 51, "flags": 1}, + {"matrix": [4, 13], "x": 210, "y": 51, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 28, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 84, "y": 64, "flags": 4}, + {"matrix": [5, 9], "x": 140, "y": 64, "flags": 1}, + {"matrix": [5, 10], "x": 154, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 168, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 182, "y": 64, "flags": 1}, + {"matrix": [5, 13], "x": 196, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 210, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 224, "y": 64, "flags": 1} + ], "sleep": true }, "features": { diff --git a/keyboards/acheron/apollo/87htsc/87htsc.c b/keyboards/acheron/apollo/87htsc/87htsc.c index 4225c34971..a03bd01ec7 100644 --- a/keyboards/acheron/apollo/87htsc/87htsc.c +++ b/keyboards/acheron/apollo/87htsc/87htsc.c @@ -21,27 +21,3 @@ void board_init(void) { gpio_set_pin_input(B9); gpio_set_pin_input(B10); } - -led_config_t g_led_config = { { - { 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , NO_LED , 2 , 1 , 0 }, - { 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 }, - { 49 , 48 , 47 , 46 , 45 , 44 , 43 , 42 , 41 , 40 , 39 , 38 , 37 , 36 , 35 , 34 , 33 }, - { 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , NO_LED , NO_LED , NO_LED , NO_LED }, - { 75 , NO_LED , 74 , 73 , 72 , 71 , 70 , 69 , 68 , 67 , 66 , 65 , 64 , NO_LED , NO_LED , 63 , NO_LED }, - { 76 , 77 , 78 , NO_LED , NO_LED , NO_LED , 79 , NO_LED , NO_LED , NO_LED , 80 , 81 , 82 , NO_LED , 83 , 84 , 85 } -},{ -// "Fine-tuned" complex configuration - { 210, 0}, { 196, 0}, { 182, 0}, { 168, 0}, { 154, 0}, { 140, 0}, { 140, 0}, { 126, 0}, { 112, 0}, { 98, 0}, { 84, 0}, { 70, 0}, { 56, 0}, { 28, 0}, { 14, 0}, { 0, 0}, - { 0, 45}, { 14, 45}, { 28, 45}, { 42, 45}, { 56, 45}, { 70, 45}, { 84, 45}, { 98, 45}, { 112, 45}, { 126, 45}, { 140, 45}, { 154, 45}, { 168, 45}, { 182, 45}, { 196, 45}, { 210, 45}, { 224, 45}, - { 224, 90}, { 210, 90}, { 196, 90}, { 182, 90}, { 168, 90}, { 154, 90}, { 140, 90}, { 126, 90}, { 112, 90}, { 98, 90}, { 84, 90}, { 70, 90}, { 56, 90}, { 42, 90}, { 28, 90}, { 14, 90}, { 0, 90}, - { 0, 135}, { 14, 135}, { 28, 135}, { 42, 135}, { 56, 135}, { 70, 135}, { 84, 135}, { 98, 135}, { 112, 135}, { 126, 135}, { 140, 135}, { 154, 135}, { 168, 135}, - { 192, 180}, { 168, 180}, { 154, 180}, { 140, 180}, { 126, 180}, { 112, 180}, { 98, 180}, { 84, 180}, { 70, 180}, { 56, 180}, { 42, 180}, { 28, 180}, { 14, 180}, - { 0, 225}, { 14, 225}, { 28, 225}, { 84, 225}, { 140, 225}, { 154, 225}, { 168, 225}, { 196, 225}, { 210, 225}, { 224, 225} -}, { - 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , - 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 , - 1 , 1 , 1 , 4 , 1 , 1 , 1 , 1 , 1 , 1 -} }; diff --git a/keyboards/acheron/apollo/87htsc/keyboard.json b/keyboards/acheron/apollo/87htsc/keyboard.json index 4b2ff1ad66..957c02c1b6 100644 --- a/keyboards/acheron/apollo/87htsc/keyboard.json +++ b/keyboards/acheron/apollo/87htsc/keyboard.json @@ -60,6 +60,94 @@ "val": 60 }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 16], "x": 210, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 196, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 182, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 168, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 154, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 126, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 98, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 70, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 28, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 42, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 56, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 70, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 84, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 98, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 112, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 126, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 140, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 154, "y": 12, "flags": 4}, + {"matrix": [1, 12], "x": 168, "y": 12, "flags": 4}, + {"matrix": [1, 13], "x": 182, "y": 12, "flags": 4}, + {"matrix": [1, 14], "x": 196, "y": 12, "flags": 4}, + {"matrix": [1, 15], "x": 210, "y": 12, "flags": 4}, + {"matrix": [1, 16], "x": 224, "y": 12, "flags": 4}, + {"matrix": [2, 16], "x": 224, "y": 25, "flags": 4}, + {"matrix": [2, 15], "x": 210, "y": 25, "flags": 4}, + {"matrix": [2, 14], "x": 196, "y": 25, "flags": 4}, + {"matrix": [2, 13], "x": 182, "y": 25, "flags": 4}, + {"matrix": [2, 12], "x": 168, "y": 25, "flags": 4}, + {"matrix": [2, 11], "x": 154, "y": 25, "flags": 4}, + {"matrix": [2, 10], "x": 140, "y": 25, "flags": 4}, + {"matrix": [2, 9], "x": 126, "y": 25, "flags": 4}, + {"matrix": [2, 8], "x": 112, "y": 25, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 25, "flags": 4}, + {"matrix": [2, 6], "x": 84, "y": 25, "flags": 4}, + {"matrix": [2, 5], "x": 70, "y": 25, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 25, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 25, "flags": 4}, + {"matrix": [2, 2], "x": 28, "y": 25, "flags": 4}, + {"matrix": [2, 1], "x": 14, "y": 25, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 14, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 28, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 42, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 98, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 112, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 126, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 38, "flags": 4}, + {"matrix": [3, 12], "x": 168, "y": 38, "flags": 1}, + {"matrix": [4, 15], "x": 192, "y": 51, "flags": 1}, + {"matrix": [4, 12], "x": 168, "y": 51, "flags": 4}, + {"matrix": [4, 11], "x": 154, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 140, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 126, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 112, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 98, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 84, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 70, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 56, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 51, "flags": 4}, + {"matrix": [4, 2], "x": 28, "y": 51, "flags": 1}, + {"matrix": [4, 0], "x": 14, "y": 51, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 28, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 84, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 140, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 154, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 168, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 196, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 210, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1} + ], "sleep": true }, "features": { diff --git a/keyboards/acheron/apollo/88htsc/88htsc.c b/keyboards/acheron/apollo/88htsc/88htsc.c deleted file mode 100644 index 8144fc57bc..0000000000 --- a/keyboards/acheron/apollo/88htsc/88htsc.c +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright 2022 Álvaro "Gondolindrim" Volpato - -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 "quantum.h" - -led_config_t g_led_config = { { - { 16 , 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 }, - { 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 , 33 }, - { 50 , 49 , 48 , 47 , 46 , 45 , 44 , 43 , 42 , 41 , 40 , 39 , 38 , 37 , 36 , 35 , 34 }, - { 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 , 61 , 62 , 63 , NO_LED , NO_LED , NO_LED , NO_LED }, - { 76 , NO_LED , 75 , 74 , 73 , 72 , 71 , 70 , 69 , 68 , 67 , 66 , 65 , NO_LED , NO_LED , 64 , NO_LED }, - { 77 , 78 , 79 , NO_LED , NO_LED , NO_LED , 80 , NO_LED , NO_LED , NO_LED , 81 , 82 , 83 , NO_LED , 84 , 85 , 86 } -},{ -// "Fine-tuned" complex configuration - { 210, 0}, { 196, 0}, { 182, 0}, { 168, 0}, { 154, 0}, { 140, 0}, { 140, 0}, { 126, 0}, { 112, 0}, { 98, 0}, { 84, 0}, { 70, 0}, { 56, 0}, { 45, 0}, { 28, 0}, { 14, 0}, { 0, 0}, - { 0, 45}, { 14, 45}, { 28, 45}, { 42, 45}, { 56, 45}, { 70, 45}, { 84, 45}, { 98, 45}, { 112, 45}, { 126, 45}, { 140, 45}, { 154, 45}, { 168, 45}, { 182, 45}, { 196, 45}, { 210, 45}, { 224, 45}, - { 224, 90}, { 210, 90}, { 196, 90}, { 182, 90}, { 168, 90}, { 154, 90}, { 140, 90}, { 126, 90}, { 112, 90}, { 98, 90}, { 84, 90}, { 70, 90}, { 56, 90}, { 42, 90}, { 28, 90}, { 14, 90}, { 0, 90}, - { 0, 135}, { 14, 135}, { 28, 135}, { 42, 135}, { 56, 135}, { 70, 135}, { 84, 135}, { 98, 135}, { 112, 135}, { 126, 135}, { 140, 135}, { 154, 135}, { 168, 135}, - { 192, 180}, { 168, 180}, { 154, 180}, { 140, 180}, { 126, 180}, { 112, 180}, { 98, 180}, { 84, 180}, { 70, 180}, { 56, 180}, { 42, 180}, { 28, 180}, { 14, 180}, - { 0, 225}, { 14, 225}, { 28, 225}, { 84, 225}, { 140, 225}, { 154, 225}, { 168, 225}, { 196, 45}, { 210, 45}, { 224, 90} -}, { - 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , - 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , - 1 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 4 , 1 , 1 , - 1 , 1 , 1 , 4 , 1 , 1 , 1 , 1 , 1 , 1 -} }; diff --git a/keyboards/acheron/apollo/88htsc/keyboard.json b/keyboards/acheron/apollo/88htsc/keyboard.json index 165c8d76eb..182339b4fd 100644 --- a/keyboards/acheron/apollo/88htsc/keyboard.json +++ b/keyboards/acheron/apollo/88htsc/keyboard.json @@ -60,6 +60,95 @@ "val": 60 }, "driver": "ws2812", + "layout": [ + {"matrix": [0, 16], "x": 210, "y": 0, "flags": 1}, + {"matrix": [0, 15], "x": 196, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 182, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 168, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 154, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 140, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 126, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 112, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 98, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 84, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 70, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 28, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 14, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 12, "flags": 4}, + {"matrix": [1, 1], "x": 14, "y": 12, "flags": 4}, + {"matrix": [1, 2], "x": 28, "y": 12, "flags": 4}, + {"matrix": [1, 3], "x": 42, "y": 12, "flags": 4}, + {"matrix": [1, 4], "x": 56, "y": 12, "flags": 4}, + {"matrix": [1, 5], "x": 70, "y": 12, "flags": 4}, + {"matrix": [1, 6], "x": 84, "y": 12, "flags": 4}, + {"matrix": [1, 7], "x": 98, "y": 12, "flags": 4}, + {"matrix": [1, 8], "x": 112, "y": 12, "flags": 4}, + {"matrix": [1, 9], "x": 126, "y": 12, "flags": 4}, + {"matrix": [1, 10], "x": 140, "y": 12, "flags": 4}, + {"matrix": [1, 11], "x": 154, "y": 12, "flags": 4}, + {"matrix": [1, 12], "x": 168, "y": 12, "flags": 4}, + {"matrix": [1, 13], "x": 182, "y": 12, "flags": 4}, + {"matrix": [1, 14], "x": 196, "y": 12, "flags": 4}, + {"matrix": [1, 15], "x": 210, "y": 12, "flags": 4}, + {"matrix": [1, 16], "x": 224, "y": 12, "flags": 4}, + {"matrix": [2, 16], "x": 224, "y": 25, "flags": 4}, + {"matrix": [2, 15], "x": 210, "y": 25, "flags": 4}, + {"matrix": [2, 14], "x": 196, "y": 25, "flags": 4}, + {"matrix": [2, 13], "x": 182, "y": 25, "flags": 4}, + {"matrix": [2, 12], "x": 168, "y": 25, "flags": 4}, + {"matrix": [2, 11], "x": 154, "y": 25, "flags": 4}, + {"matrix": [2, 10], "x": 140, "y": 25, "flags": 4}, + {"matrix": [2, 9], "x": 126, "y": 25, "flags": 4}, + {"matrix": [2, 8], "x": 112, "y": 25, "flags": 4}, + {"matrix": [2, 7], "x": 98, "y": 25, "flags": 4}, + {"matrix": [2, 6], "x": 84, "y": 25, "flags": 4}, + {"matrix": [2, 5], "x": 70, "y": 25, "flags": 4}, + {"matrix": [2, 4], "x": 56, "y": 25, "flags": 4}, + {"matrix": [2, 3], "x": 42, "y": 25, "flags": 4}, + {"matrix": [2, 2], "x": 28, "y": 25, "flags": 4}, + {"matrix": [2, 1], "x": 14, "y": 25, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 25, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 14, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 28, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 42, "y": 38, "flags": 4}, + {"matrix": [3, 4], "x": 56, "y": 38, "flags": 4}, + {"matrix": [3, 5], "x": 70, "y": 38, "flags": 4}, + {"matrix": [3, 6], "x": 84, "y": 38, "flags": 4}, + {"matrix": [3, 7], "x": 98, "y": 38, "flags": 4}, + {"matrix": [3, 8], "x": 112, "y": 38, "flags": 4}, + {"matrix": [3, 9], "x": 126, "y": 38, "flags": 4}, + {"matrix": [3, 10], "x": 140, "y": 38, "flags": 4}, + {"matrix": [3, 11], "x": 154, "y": 38, "flags": 4}, + {"matrix": [3, 12], "x": 168, "y": 38, "flags": 1}, + {"matrix": [4, 15], "x": 192, "y": 51, "flags": 1}, + {"matrix": [4, 12], "x": 168, "y": 51, "flags": 4}, + {"matrix": [4, 11], "x": 154, "y": 51, "flags": 4}, + {"matrix": [4, 10], "x": 140, "y": 51, "flags": 4}, + {"matrix": [4, 9], "x": 126, "y": 51, "flags": 4}, + {"matrix": [4, 8], "x": 112, "y": 51, "flags": 4}, + {"matrix": [4, 7], "x": 98, "y": 51, "flags": 4}, + {"matrix": [4, 6], "x": 84, "y": 51, "flags": 4}, + {"matrix": [4, 5], "x": 70, "y": 51, "flags": 4}, + {"matrix": [4, 4], "x": 56, "y": 51, "flags": 4}, + {"matrix": [4, 3], "x": 42, "y": 51, "flags": 4}, + {"matrix": [4, 2], "x": 28, "y": 51, "flags": 1}, + {"matrix": [4, 0], "x": 14, "y": 51, "flags": 1}, + {"matrix": [5, 0], "x": 0, "y": 64, "flags": 1}, + {"matrix": [5, 1], "x": 14, "y": 64, "flags": 1}, + {"matrix": [5, 2], "x": 28, "y": 64, "flags": 1}, + {"matrix": [5, 6], "x": 84, "y": 64, "flags": 4}, + {"matrix": [5, 10], "x": 140, "y": 64, "flags": 1}, + {"matrix": [5, 11], "x": 154, "y": 64, "flags": 1}, + {"matrix": [5, 12], "x": 168, "y": 64, "flags": 1}, + {"matrix": [5, 14], "x": 196, "y": 64, "flags": 1}, + {"matrix": [5, 15], "x": 210, "y": 64, "flags": 1}, + {"matrix": [5, 16], "x": 224, "y": 64, "flags": 1} + ], "sleep": true }, "features": { diff --git a/keyboards/adpenrose/akemipad/akemipad.c b/keyboards/adpenrose/akemipad/akemipad.c deleted file mode 100644 index 993396dca0..0000000000 --- a/keyboards/adpenrose/akemipad/akemipad.c +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2022 Arturo Avila (@ADPenrose) -// SPDX-License-Identifier: GPL-2.0-or-later - -#include "quantum.h" - -#ifdef RGB_MATRIX_ENABLE - -/* Setting up the LED matrix */ -led_config_t g_led_config = { { - // Key Matrix to LED Index - { 0, 1, 2, 3, NO_LED }, - { 4, 5, 6, 7, NO_LED }, - { 8, 9, 10, 11, 12 }, - { 13, 14, 15, 16, NO_LED }, - { 17, 18, 19, 20, 21 }, - { 22, 23, 24, 25, 26 }, -}, { - // LED Index to Physical Position - { 0,0 }, { 37,0 }, { 74,0 }, {111,0 }, { 0,34 }, { 37,34 }, { 74,34 }, {111,34 }, { 0,62 }, { 37,62 }, - { 74,62 }, {111,62 }, {120,75 }, { 0,89 }, { 37,89 }, { 74,89 }, {111,89 }, { 0,117}, { 37,117}, { 74,117}, - {111,117}, {120,130}, { 0,137}, { 18,144}, { 37,137}, { 74,144}, {111,144} -}, { - // LED Index to Flag - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 -} }; - -#endif diff --git a/keyboards/adpenrose/akemipad/keyboard.json b/keyboards/adpenrose/akemipad/keyboard.json index 085ca5e406..a7981d13ef 100644 --- a/keyboards/adpenrose/akemipad/keyboard.json +++ b/keyboards/adpenrose/akemipad/keyboard.json @@ -15,8 +15,36 @@ "cycle_left_right": true, "cycle_up_down": true }, - "center_point": [60, 77], "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 69, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 138, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 207, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 13, "flags": 4}, + {"matrix": [1, 1], "x": 69, "y": 13, "flags": 4}, + {"matrix": [1, 2], "x": 138, "y": 13, "flags": 4}, + {"matrix": [1, 3], "x": 207, "y": 13, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 26, "flags": 4}, + {"matrix": [2, 1], "x": 69, "y": 26, "flags": 4}, + {"matrix": [2, 2], "x": 138, "y": 26, "flags": 4}, + {"matrix": [2, 3], "x": 207, "y": 26, "flags": 4}, + {"matrix": [2, 4], "x": 224, "y": 30, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 38, "flags": 4}, + {"matrix": [3, 1], "x": 69, "y": 38, "flags": 4}, + {"matrix": [3, 2], "x": 138, "y": 38, "flags": 4}, + {"matrix": [3, 3], "x": 207, "y": 38, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 52, "flags": 4}, + {"matrix": [4, 1], "x": 69, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 138, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 207, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 224, "y": 56, "flags": 4}, + {"matrix": [5, 0], "x": 0, "y": 62, "flags": 4}, + {"matrix": [5, 1], "x": 33, "y": 64, "flags": 4}, + {"matrix": [5, 2], "x": 69, "y": 62, "flags": 4}, + {"matrix": [5, 3], "x": 138, "y": 64, "flags": 4}, + {"matrix": [5, 4], "x": 207, "y": 64, "flags": 4} + ], "max_brightness": 175, "sleep": true }, diff --git a/keyboards/aeboards/satellite/rev1/keyboard.json b/keyboards/aeboards/satellite/rev1/keyboard.json index f9355171fb..a6752565bd 100644 --- a/keyboards/aeboards/satellite/rev1/keyboard.json +++ b/keyboards/aeboards/satellite/rev1/keyboard.json @@ -68,6 +68,80 @@ "val": 80 }, "driver": "custom", + "layout": [ + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 52, "y": 16, "flags": 4}, + {"x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [2, 11], "x": 6, "y": 32, "flags": 1}, + {"matrix": [0, 8], "x": 119, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 9], "x": 134, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 149, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 164, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 179, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 4}, + {"x": 212, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 205, "y": 16, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 4}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 209, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 95, "y": 64, "flags": 4}, + {"matrix": [3, 5], "x": 93, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 78, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 63, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 4}, + {"x": 67, "y": 56, "flags": 4}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 21, "y": 64, "flags": 1}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"x": 0, "y": 64, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"x": 175, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 200, "y": 32, "flags": 4}, + {"matrix": [3, 10], "x": 168, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 189, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 209, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 108, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 123, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 153, "y": 48, "flags": 4}, + {"x": 120, "y": 48, "flags": 4}, + {"x": 120, "y": 56, "flags": 4}, + {"matrix": [4, 9], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 175, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 194, "y": 64, "flags": 1} + ], "sleep": true }, "processor": "atmega32u4", diff --git a/keyboards/aeboards/satellite/rev1/rev1.c b/keyboards/aeboards/satellite/rev1/rev1.c index 28ac5ef302..6e468d713d 100644 --- a/keyboards/aeboards/satellite/rev1/rev1.c +++ b/keyboards/aeboards/satellite/rev1/rev1.c @@ -102,46 +102,6 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C8_16, C7_16, C6_16} //D17 }; -led_config_t g_led_config = { { - { 17, 16, 15, 14, 13, 12, 11, 10, 9, 18, 19, 20, 21, 22, 24 }, - { 7, 6, 6, 4, 4, 2, 1, 0, 27, 18, 29, 30, 31, 32, 25 }, - { 8, 50, 49, 48, 47, 46, 45, 54, 55, 56, 57, 8, 59, NO_LED, 26 }, - { 51, 41, 40, 39, 38, 37, 63, 64, 65, 66, 60, NO_LED, 61, 62, 33 }, - { 52, 44, 43, NO_LED, NO_LED, 36, NO_LED, NO_LED, NO_LED, 69, 70, NO_LED, 71, 35, 34 }, -}, { - //A0 .. A17 - {112,16 }, { 97,16 }, { 82,16 }, { 67,16 }, { 52,16 }, { 37,16 }, { 22,16 }, { 4,16 }, { 6,32 }, - {119,0 }, {105,0 }, { 90,0 }, { 75,0 }, { 60,0 }, { 45,0 }, { 30,0 }, { 15,0 }, { 0,0 }, - - //B0 .. B17 - {134,0 }, {149,0 }, {164,0 }, {179,0 }, {202,0 }, {255,255}, {224,0 }, {224,16 }, {224,32 }, - {127,16 }, {142,16 }, {157,16 }, {172,16 }, {187,16 }, {205,16 }, {224,48 }, {224,64 }, {209,64 }, - - //C0 .. C17 - { 95,64 }, { 93,48 }, { 78,48 }, { 63,48 }, { 49,48 }, { 34,48 }, { 67,56 }, { 39,64 }, { 21,64 }, - {101,32 }, { 86,32 }, { 71,32 }, { 56,32 }, { 41,32 }, { 26,32 }, { 9,48 }, { 2,64 }, {255,255}, - - //D0 .. D17 - {116,32 }, {131,32 }, {146,32 }, {161,32 }, {175,32 }, {200,32 }, {168,48 }, {189,48 }, {209,48 }, - {108,48 }, {123,48 }, {138,48 }, {153,48 }, {255,255}, {120,56 }, {153,64 }, {175,64 }, {194,64 } -}, { - //A0 .. A17 - 4, 4, 4, 4, 4, 4, 4, 1, 1, - 4, 4, 4, 4, 4, 4, 4, 4, 4, - - //B0 .. B17 - 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 1, 1, - - //C0 .. C17 - 4, 4, 4, 4, 4, 4, 4, 1, 1, - 4, 4, 4, 4, 4, 4, 1, 1, 4, - - //D0 .. D17 - 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 1, 1, 1 -} }; - // Custom Driver static void init(void) { i2c_init(); diff --git a/keyboards/aleblazer/zodiark/keyboard.json b/keyboards/aleblazer/zodiark/keyboard.json index 6818797809..396e3ca460 100644 --- a/keyboards/aleblazer/zodiark/keyboard.json +++ b/keyboards/aleblazer/zodiark/keyboard.json @@ -42,6 +42,76 @@ }, "rgb_matrix": { "driver": "ws2812", + "layout": [ + {"matrix": [0, 5], "x": 93, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 74, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 56, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 37, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 19, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 19, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 74, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 93, "y": 16, "flags": 4}, + {"matrix": [0, 6], "x": 112, "y": 24, "flags": 4}, + {"matrix": [1, 6], "x": 112, "y": 40, "flags": 4}, + {"matrix": [2, 5], "x": 93, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 74, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 37, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 19, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 19, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 37, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 56, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 74, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 93, "y": 48, "flags": 4}, + {"matrix": [2, 6], "x": 112, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 112, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 93, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 74, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 56, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 37, "y": 64, "flags": 4}, + {"matrix": [4, 1], "x": 19, "y": 64, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [5, 5], "x": 132, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 150, "y": 0, "flags": 4}, + {"matrix": [5, 3], "x": 169, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 187, "y": 0, "flags": 4}, + {"matrix": [5, 1], "x": 206, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 224, "y": 0, "flags": 4}, + {"matrix": [6, 0], "x": 224, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 206, "y": 16, "flags": 4}, + {"matrix": [6, 2], "x": 187, "y": 16, "flags": 4}, + {"matrix": [6, 3], "x": 169, "y": 16, "flags": 4}, + {"matrix": [6, 4], "x": 150, "y": 16, "flags": 4}, + {"matrix": [6, 5], "x": 132, "y": 16, "flags": 4}, + {"matrix": [5, 6], "x": 113, "y": 24, "flags": 4}, + {"matrix": [6, 6], "x": 113, "y": 40, "flags": 4}, + {"matrix": [7, 5], "x": 132, "y": 32, "flags": 4}, + {"matrix": [7, 4], "x": 150, "y": 32, "flags": 4}, + {"matrix": [7, 3], "x": 169, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 187, "y": 32, "flags": 4}, + {"matrix": [7, 1], "x": 206, "y": 32, "flags": 4}, + {"matrix": [7, 0], "x": 224, "y": 32, "flags": 4}, + {"matrix": [8, 0], "x": 224, "y": 48, "flags": 4}, + {"matrix": [8, 1], "x": 206, "y": 48, "flags": 4}, + {"matrix": [8, 2], "x": 187, "y": 48, "flags": 4}, + {"matrix": [8, 3], "x": 169, "y": 48, "flags": 4}, + {"matrix": [8, 4], "x": 150, "y": 48, "flags": 4}, + {"matrix": [8, 5], "x": 132, "y": 48, "flags": 4}, + {"matrix": [7, 6], "x": 113, "y": 52, "flags": 4}, + {"matrix": [9, 6], "x": 113, "y": 64, "flags": 4}, + {"matrix": [9, 5], "x": 132, "y": 64, "flags": 4}, + {"matrix": [9, 4], "x": 150, "y": 64, "flags": 4}, + {"matrix": [9, 3], "x": 169, "y": 64, "flags": 4}, + {"matrix": [9, 2], "x": 187, "y": 64, "flags": 4}, + {"matrix": [9, 1], "x": 206, "y": 64, "flags": 4}, + {"matrix": [9, 0], "x": 224, "y": 64, "flags": 4} + ], "max_brightness": 150, "sat_steps": 8, "speed_steps": 10, diff --git a/keyboards/aleblazer/zodiark/zodiark.c b/keyboards/aleblazer/zodiark/zodiark.c deleted file mode 100644 index 8829ac8f3c..0000000000 --- a/keyboards/aleblazer/zodiark/zodiark.c +++ /dev/null @@ -1,54 +0,0 @@ -/* -Copyright 2021 Spencer Deven - -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 "quantum.h" - -#ifdef RGB_MATRIX_ENABLE -led_config_t g_led_config = { { -// Key Matrix to LED Index - // Left Hand - { 5, 4, 3, 2, 1, 0, 12 }, - { 6, 7, 8, 9, 10, 11, 13 }, - { 19, 18, 17, 16, 15, 14, 26 }, - { 20, 21, 22, 23, 24, 25, NO_LED }, - { 33, 32, 31, 30, 29, 28, 27}, - // Right Hand - { 39, 38, 37, 36, 35, 34, 46 }, - { 40, 41, 42, 43, 44, 45, 47 }, - { 53, 52, 51, 50, 49, 48, 60 }, - { 54, 55, 56, 57, 58, 59, NO_LED }, - { 67, 66, 65, 64, 63, 62, 61 }, - - -}, { - // LED Index to Physical Position - // Left Hand - { 93, 0 }, { 74, 0 }, { 56, 0 }, { 37, 0 }, { 19, 0 }, { 0, 0 }, { 0, 16 }, - { 19, 16 }, { 37, 16 }, { 56, 16 }, { 74, 16 }, { 93, 16 }, { 112, 24 }, { 112, 40 }, - { 93, 32 }, { 74, 32 }, { 56, 32 }, { 37, 32 }, { 19, 32 }, { 0, 32 }, { 0, 48 }, - { 19, 48 }, { 37, 48 }, { 56, 48 }, { 74, 48 }, { 93, 48 }, { 112, 52 }, - { 112, 64 }, { 93, 64 }, { 74, 64 }, { 56, 64 }, { 37, 64 }, { 19, 64 }, { 0, 64 }, - // Right Hand - { 132, 0 }, { 150, 0 }, { 169, 0 }, { 187, 0 }, { 206, 0 }, { 224, 0 }, { 224, 16 }, - { 206, 16 }, { 187, 16 }, { 169, 16 }, { 150, 16 }, { 132, 16 }, { 113, 24 }, { 113, 40 }, - { 132, 32 }, { 150, 32 }, { 169, 32 }, { 187, 32 }, { 206, 32 }, { 224, 32 }, { 224, 48 }, - { 206, 48 }, { 187, 48 }, { 169, 48 }, { 150, 48 }, { 132, 48 }, { 113, 52 }, - { 113, 64 }, { 132, 64 }, { 150, 64 }, { 169, 64 }, { 187, 64 }, { 206, 64 }, { 224, 64 }, -}, { - // LED Index to Flag - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 -} }; -#endif diff --git a/keyboards/axolstudio/yeti/hotswap/hotswap.c b/keyboards/axolstudio/yeti/hotswap/hotswap.c index df64c80953..8cf9d0f0b2 100644 --- a/keyboards/axolstudio/yeti/hotswap/hotswap.c +++ b/keyboards/axolstudio/yeti/hotswap/hotswap.c @@ -87,28 +87,6 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW8_CS15, SW7_CS15, SW9_CS15 }, { 0, SW11_CS15, SW10_CS15, SW12_CS15 }, }; - -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 }, - { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, NO_LED, 43 }, - { NO_LED, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, NO_LED, 56 }, - { NO_LED, 57, NO_LED, 58, NO_LED, 59, 60, NO_LED, 61, NO_LED, 62, NO_LED, NO_LED, NO_LED, 63 } - }, { - {0, 0},{16, 0},{32, 0},{48, 0},{64, 0},{80, 0},{96, 0},{112, 0},{128, 0},{144, 0},{160, 0},{176, 0},{192, 0},{208, 0},{224, 0}, - {0, 16},{16,16},{32,16},{48,16},{64,16},{80,16},{96,16},{112,16},{128,16},{144,16},{160,16},{176,16},{192,16},{208,16},{224,16}, - {0,32},{16,32},{32,32},{48,32},{64,32},{80,32},{96,32},{112,32},{128,32},{144,32},{160,32},{176,32},{192,32},{224, 32}, - {16,48},{32,48},{48,48},{64,48},{80,48},{96,48},{112,48},{128,48},{144,48},{160,48},{176,48},{192,48},{224,48}, - {16,64},{48,64},{80,64},{96,64},{128,64},{160,64},{224,64} - }, { - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 4, 1, 4, 1, 1 - } -}; #endif bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { diff --git a/keyboards/axolstudio/yeti/hotswap/keyboard.json b/keyboards/axolstudio/yeti/hotswap/keyboard.json index 5607001287..fb3582e0f1 100644 --- a/keyboards/axolstudio/yeti/hotswap/keyboard.json +++ b/keyboards/axolstudio/yeti/hotswap/keyboard.json @@ -44,6 +44,72 @@ "solid_multisplash": true }, "driver": "is31fl3733", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 1}, + {"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": 208, "y": 0, "flags": 4}, + {"matrix": [0, 14], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 16, "y": 16, "flags": 1}, + {"matrix": [1, 2], "x": 32, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 48, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 64, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 80, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 96, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 128, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 144, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 160, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 176, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 192, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 208, "y": 16, "flags": 4}, + {"matrix": [1, 14], "x": 224, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 32, "flags": 1}, + {"matrix": [2, 2], "x": 32, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 48, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 64, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 80, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 96, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 112, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 128, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 144, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 192, "y": 32, "flags": 4}, + {"matrix": [2, 14], "x": 224, "y": 32, "flags": 1}, + {"matrix": [3, 1], "x": 16, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 32, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 64, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 80, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 96, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 112, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 128, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 144, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 160, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 176, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 192, "y": 48, "flags": 4}, + {"matrix": [3, 14], "x": 224, "y": 48, "flags": 1}, + {"matrix": [4, 1], "x": 16, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 48, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 80, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 96, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 128, "y": 64, "flags": 4}, + {"matrix": [4, 10], "x": 160, "y": 64, "flags": 1}, + {"matrix": [4, 14], "x": 224, "y": 64, "flags": 1} + ], "sleep": true }, "build": { From fecfc0f7da46dbf6f9d231098bdc51794509cad6 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Sat, 4 Oct 2025 17:47:45 -0700 Subject: [PATCH 066/255] `atreus`: restore intended matrix implementations (#24082) * `atreus`: restore intended matrix implementations PR 24010 inadvertently changed the switch matrix for the `atreus/astar_mirrored` keyboard in removing the `PCBDOWN` configuration option, and also made PCB up and down implementations available for all Atreus variants, which is not intended usage. This commit restores the intended behaviour, and makes all the keymaps which are currently present agnostic to hardware variant. --- keyboards/atreus/astar/keyboard.json | 61 +++++++++- keyboards/atreus/astar_mirrored/keyboard.json | 61 +++++++++- keyboards/atreus/f103/keyboard.json | 59 ++++++++++ keyboards/atreus/feather/keyboard.json | 59 ++++++++++ keyboards/atreus/info.json | 111 ------------------ keyboards/atreus/keymaps/default/keymap.c | 6 +- keyboards/atreus/keymaps/workman/keymap.c | 6 +- keyboards/atreus/promicro/keyboard.json | 61 +++++++++- keyboards/atreus/teensy2/keyboard.json | 61 +++++++++- 9 files changed, 364 insertions(+), 121 deletions(-) diff --git a/keyboards/atreus/astar/keyboard.json b/keyboards/atreus/astar/keyboard.json index e201078ffe..b730442a55 100644 --- a/keyboards/atreus/astar/keyboard.json +++ b/keyboards/atreus/astar/keyboard.json @@ -5,5 +5,64 @@ }, "diode_direction": "COL2ROW", "processor": "atmega32u4", - "bootloader": "caterina" + "bootloader": "caterina", + "layout_aliases": { + "LAYOUT_pcb_up": "LAYOUT", + "LAYOUT_pcb_down": "LAYOUT" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.6}, + {"matrix": [0, 1], "x": 1, "y": 0.35}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.35}, + {"matrix": [0, 4], "x": 4, "y": 0.7}, + + {"matrix": [0, 6], "x": 8, "y": 0.7}, + {"matrix": [0, 7], "x": 9, "y": 0.35}, + {"matrix": [0, 8], "x": 10, "y": 0}, + {"matrix": [0, 9], "x": 11, "y": 0.35}, + {"matrix": [0, 10], "x": 12, "y": 0.6}, + + {"matrix": [1, 0], "x": 0, "y": 1.6}, + {"matrix": [1, 1], "x": 1, "y": 1.35}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.35}, + {"matrix": [1, 4], "x": 4, "y": 1.7}, + + {"matrix": [1, 6], "x": 8, "y": 1.7}, + {"matrix": [1, 7], "x": 9, "y": 1.35}, + {"matrix": [1, 8], "x": 10, "y": 1}, + {"matrix": [1, 9], "x": 11, "y": 1.35}, + {"matrix": [1, 10], "x": 12, "y": 1.6}, + + {"matrix": [2, 0], "x": 0, "y": 2.6}, + {"matrix": [2, 1], "x": 1, "y": 2.35}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.35}, + {"matrix": [2, 4], "x": 4, "y": 2.7}, + + {"matrix": [2, 6], "x": 8, "y": 2.7}, + {"matrix": [2, 7], "x": 9, "y": 2.35}, + {"matrix": [2, 8], "x": 10, "y": 2}, + {"matrix": [2, 9], "x": 11, "y": 2.35}, + {"matrix": [2, 10], "x": 12, "y": 2.6}, + + {"matrix": [3, 0], "x": 0, "y": 3.6}, + {"matrix": [3, 1], "x": 1, "y": 3.35}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3.35}, + {"matrix": [3, 4], "x": 4, "y": 3.7}, + {"matrix": [2, 5], "x": 5, "y": 2.95, "h": 1.5}, + + {"matrix": [3, 5], "x": 7, "y": 2.95, "h": 1.5}, + {"matrix": [3, 6], "x": 8, "y": 3.7}, + {"matrix": [3, 7], "x": 9, "y": 3.35}, + {"matrix": [3, 8], "x": 10, "y": 3}, + {"matrix": [3, 9], "x": 11, "y": 3.35}, + {"matrix": [3, 10], "x": 12, "y": 3.6} + ] + } + } } diff --git a/keyboards/atreus/astar_mirrored/keyboard.json b/keyboards/atreus/astar_mirrored/keyboard.json index b83be5d29d..ae687c9d2b 100644 --- a/keyboards/atreus/astar_mirrored/keyboard.json +++ b/keyboards/atreus/astar_mirrored/keyboard.json @@ -5,5 +5,64 @@ }, "diode_direction": "COL2ROW", "processor": "atmega32u4", - "bootloader": "caterina" + "bootloader": "caterina", + "layout_aliases": { + "LAYOUT_pcb_up": "LAYOUT", + "LAYOUT_pcb_down": "LAYOUT" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.6}, + {"matrix": [0, 1], "x": 1, "y": 0.35}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.35}, + {"matrix": [0, 4], "x": 4, "y": 0.7}, + + {"matrix": [0, 6], "x": 8, "y": 0.7}, + {"matrix": [0, 7], "x": 9, "y": 0.35}, + {"matrix": [0, 8], "x": 10, "y": 0}, + {"matrix": [0, 9], "x": 11, "y": 0.35}, + {"matrix": [0, 10], "x": 12, "y": 0.6}, + + {"matrix": [1, 0], "x": 0, "y": 1.6}, + {"matrix": [1, 1], "x": 1, "y": 1.35}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.35}, + {"matrix": [1, 4], "x": 4, "y": 1.7}, + + {"matrix": [1, 6], "x": 8, "y": 1.7}, + {"matrix": [1, 7], "x": 9, "y": 1.35}, + {"matrix": [1, 8], "x": 10, "y": 1}, + {"matrix": [1, 9], "x": 11, "y": 1.35}, + {"matrix": [1, 10], "x": 12, "y": 1.6}, + + {"matrix": [2, 0], "x": 0, "y": 2.6}, + {"matrix": [2, 1], "x": 1, "y": 2.35}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.35}, + {"matrix": [2, 4], "x": 4, "y": 2.7}, + + {"matrix": [2, 6], "x": 8, "y": 2.7}, + {"matrix": [2, 7], "x": 9, "y": 2.35}, + {"matrix": [2, 8], "x": 10, "y": 2}, + {"matrix": [2, 9], "x": 11, "y": 2.35}, + {"matrix": [2, 10], "x": 12, "y": 2.6}, + + {"matrix": [3, 0], "x": 0, "y": 3.6}, + {"matrix": [3, 1], "x": 1, "y": 3.35}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3.35}, + {"matrix": [3, 4], "x": 4, "y": 3.7}, + {"matrix": [3, 5], "x": 5, "y": 2.95, "h": 1.5}, + + {"matrix": [2, 5], "x": 7, "y": 2.95, "h": 1.5}, + {"matrix": [3, 6], "x": 8, "y": 3.7}, + {"matrix": [3, 7], "x": 9, "y": 3.35}, + {"matrix": [3, 8], "x": 10, "y": 3}, + {"matrix": [3, 9], "x": 11, "y": 3.35}, + {"matrix": [3, 10], "x": 12, "y": 3.6} + ] + } + } } diff --git a/keyboards/atreus/f103/keyboard.json b/keyboards/atreus/f103/keyboard.json index 813ef97e37..fb49c0c1ca 100644 --- a/keyboards/atreus/f103/keyboard.json +++ b/keyboards/atreus/f103/keyboard.json @@ -8,5 +8,64 @@ "bootloader": "stm32duino", "features": { "bootmagic": true + }, + "layout_aliases": { + "LAYOUT_pcb_up": "LAYOUT", + "LAYOUT_pcb_down": "LAYOUT" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.6}, + {"matrix": [0, 1], "x": 1, "y": 0.35}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.35}, + {"matrix": [0, 4], "x": 4, "y": 0.7}, + + {"matrix": [0, 6], "x": 8, "y": 0.7}, + {"matrix": [0, 7], "x": 9, "y": 0.35}, + {"matrix": [0, 8], "x": 10, "y": 0}, + {"matrix": [0, 9], "x": 11, "y": 0.35}, + {"matrix": [0, 10], "x": 12, "y": 0.6}, + + {"matrix": [1, 0], "x": 0, "y": 1.6}, + {"matrix": [1, 1], "x": 1, "y": 1.35}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.35}, + {"matrix": [1, 4], "x": 4, "y": 1.7}, + + {"matrix": [1, 6], "x": 8, "y": 1.7}, + {"matrix": [1, 7], "x": 9, "y": 1.35}, + {"matrix": [1, 8], "x": 10, "y": 1}, + {"matrix": [1, 9], "x": 11, "y": 1.35}, + {"matrix": [1, 10], "x": 12, "y": 1.6}, + + {"matrix": [2, 0], "x": 0, "y": 2.6}, + {"matrix": [2, 1], "x": 1, "y": 2.35}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.35}, + {"matrix": [2, 4], "x": 4, "y": 2.7}, + + {"matrix": [2, 6], "x": 8, "y": 2.7}, + {"matrix": [2, 7], "x": 9, "y": 2.35}, + {"matrix": [2, 8], "x": 10, "y": 2}, + {"matrix": [2, 9], "x": 11, "y": 2.35}, + {"matrix": [2, 10], "x": 12, "y": 2.6}, + + {"matrix": [3, 0], "x": 0, "y": 3.6}, + {"matrix": [3, 1], "x": 1, "y": 3.35}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3.35}, + {"matrix": [3, 4], "x": 4, "y": 3.7}, + {"matrix": [2, 5], "x": 5, "y": 2.95, "h": 1.5}, + + {"matrix": [3, 5], "x": 7, "y": 2.95, "h": 1.5}, + {"matrix": [3, 6], "x": 8, "y": 3.7}, + {"matrix": [3, 7], "x": 9, "y": 3.35}, + {"matrix": [3, 8], "x": 10, "y": 3}, + {"matrix": [3, 9], "x": 11, "y": 3.35}, + {"matrix": [3, 10], "x": 12, "y": 3.6} + ] + } } } diff --git a/keyboards/atreus/feather/keyboard.json b/keyboards/atreus/feather/keyboard.json index 1392849fd4..12468218ec 100644 --- a/keyboards/atreus/feather/keyboard.json +++ b/keyboards/atreus/feather/keyboard.json @@ -14,5 +14,64 @@ }, "bluetooth": { "driver": "bluefruit_le" + }, + "layout_aliases": { + "LAYOUT_pcb_up": "LAYOUT", + "LAYOUT_pcb_down": "LAYOUT" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.6}, + {"matrix": [0, 1], "x": 1, "y": 0.35}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.35}, + {"matrix": [0, 4], "x": 4, "y": 0.7}, + + {"matrix": [0, 6], "x": 8, "y": 0.7}, + {"matrix": [0, 7], "x": 9, "y": 0.35}, + {"matrix": [0, 8], "x": 10, "y": 0}, + {"matrix": [0, 9], "x": 11, "y": 0.35}, + {"matrix": [0, 10], "x": 12, "y": 0.6}, + + {"matrix": [1, 0], "x": 0, "y": 1.6}, + {"matrix": [1, 1], "x": 1, "y": 1.35}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.35}, + {"matrix": [1, 4], "x": 4, "y": 1.7}, + + {"matrix": [1, 6], "x": 8, "y": 1.7}, + {"matrix": [1, 7], "x": 9, "y": 1.35}, + {"matrix": [1, 8], "x": 10, "y": 1}, + {"matrix": [1, 9], "x": 11, "y": 1.35}, + {"matrix": [1, 10], "x": 12, "y": 1.6}, + + {"matrix": [2, 0], "x": 0, "y": 2.6}, + {"matrix": [2, 1], "x": 1, "y": 2.35}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.35}, + {"matrix": [2, 4], "x": 4, "y": 2.7}, + + {"matrix": [2, 6], "x": 8, "y": 2.7}, + {"matrix": [2, 7], "x": 9, "y": 2.35}, + {"matrix": [2, 8], "x": 10, "y": 2}, + {"matrix": [2, 9], "x": 11, "y": 2.35}, + {"matrix": [2, 10], "x": 12, "y": 2.6}, + + {"matrix": [3, 0], "x": 0, "y": 3.6}, + {"matrix": [3, 1], "x": 1, "y": 3.35}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3.35}, + {"matrix": [3, 4], "x": 4, "y": 3.7}, + {"matrix": [2, 5], "x": 5, "y": 2.95, "h": 1.5}, + + {"matrix": [3, 5], "x": 7, "y": 2.95, "h": 1.5}, + {"matrix": [3, 6], "x": 8, "y": 3.7}, + {"matrix": [3, 7], "x": 9, "y": 3.35}, + {"matrix": [3, 8], "x": 10, "y": 3}, + {"matrix": [3, 9], "x": 11, "y": 3.35}, + {"matrix": [3, 10], "x": 12, "y": 3.6} + ] + } } } diff --git a/keyboards/atreus/info.json b/keyboards/atreus/info.json index cf53b506a0..b479c96542 100644 --- a/keyboards/atreus/info.json +++ b/keyboards/atreus/info.json @@ -21,116 +21,5 @@ "enabled": true, "resync": true } - }, - "layout_aliases": { - "LAYOUT": "LAYOUT_pcb_up" - }, - "layouts": { - "LAYOUT_pcb_up": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.6}, - {"matrix": [0, 1], "x": 1, "y": 0.35}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0.35}, - {"matrix": [0, 4], "x": 4, "y": 0.7}, - - {"matrix": [0, 6], "x": 8, "y": 0.7}, - {"matrix": [0, 7], "x": 9, "y": 0.35}, - {"matrix": [0, 8], "x": 10, "y": 0}, - {"matrix": [0, 9], "x": 11, "y": 0.35}, - {"matrix": [0, 10], "x": 12, "y": 0.6}, - - {"matrix": [1, 0], "x": 0, "y": 1.6}, - {"matrix": [1, 1], "x": 1, "y": 1.35}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1.35}, - {"matrix": [1, 4], "x": 4, "y": 1.7}, - - {"matrix": [1, 6], "x": 8, "y": 1.7}, - {"matrix": [1, 7], "x": 9, "y": 1.35}, - {"matrix": [1, 8], "x": 10, "y": 1}, - {"matrix": [1, 9], "x": 11, "y": 1.35}, - {"matrix": [1, 10], "x": 12, "y": 1.6}, - - {"matrix": [2, 0], "x": 0, "y": 2.6}, - {"matrix": [2, 1], "x": 1, "y": 2.35}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2.35}, - {"matrix": [2, 4], "x": 4, "y": 2.7}, - - {"matrix": [2, 6], "x": 8, "y": 2.7}, - {"matrix": [2, 7], "x": 9, "y": 2.35}, - {"matrix": [2, 8], "x": 10, "y": 2}, - {"matrix": [2, 9], "x": 11, "y": 2.35}, - {"matrix": [2, 10], "x": 12, "y": 2.6}, - - {"matrix": [3, 0], "x": 0, "y": 3.6}, - {"matrix": [3, 1], "x": 1, "y": 3.35}, - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3.35}, - {"matrix": [3, 4], "x": 4, "y": 3.7}, - {"matrix": [2, 5], "x": 5, "y": 2.95, "h": 1.5}, - - {"matrix": [3, 5], "x": 7, "y": 2.95, "h": 1.5}, - {"matrix": [3, 6], "x": 8, "y": 3.7}, - {"matrix": [3, 7], "x": 9, "y": 3.35}, - {"matrix": [3, 8], "x": 10, "y": 3}, - {"matrix": [3, 9], "x": 11, "y": 3.35}, - {"matrix": [3, 10], "x": 12, "y": 3.6} - ] - }, - "LAYOUT_pcb_down": { - "layout": [ - {"matrix": [0, 0], "x": 0, "y": 0.6}, - {"matrix": [0, 1], "x": 1, "y": 0.35}, - {"matrix": [0, 2], "x": 2, "y": 0}, - {"matrix": [0, 3], "x": 3, "y": 0.35}, - {"matrix": [0, 4], "x": 4, "y": 0.7}, - - {"matrix": [0, 6], "x": 8, "y": 0.7}, - {"matrix": [0, 7], "x": 9, "y": 0.35}, - {"matrix": [0, 8], "x": 10, "y": 0}, - {"matrix": [0, 9], "x": 11, "y": 0.35}, - {"matrix": [0, 10], "x": 12, "y": 0.6}, - - {"matrix": [1, 0], "x": 0, "y": 1.6}, - {"matrix": [1, 1], "x": 1, "y": 1.35}, - {"matrix": [1, 2], "x": 2, "y": 1}, - {"matrix": [1, 3], "x": 3, "y": 1.35}, - {"matrix": [1, 4], "x": 4, "y": 1.7}, - - {"matrix": [1, 6], "x": 8, "y": 1.7}, - {"matrix": [1, 7], "x": 9, "y": 1.35}, - {"matrix": [1, 8], "x": 10, "y": 1}, - {"matrix": [1, 9], "x": 11, "y": 1.35}, - {"matrix": [1, 10], "x": 12, "y": 1.6}, - - {"matrix": [2, 0], "x": 0, "y": 2.6}, - {"matrix": [2, 1], "x": 1, "y": 2.35}, - {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [2, 3], "x": 3, "y": 2.35}, - {"matrix": [2, 4], "x": 4, "y": 2.7}, - - {"matrix": [2, 6], "x": 8, "y": 2.7}, - {"matrix": [2, 7], "x": 9, "y": 2.35}, - {"matrix": [2, 8], "x": 10, "y": 2}, - {"matrix": [2, 9], "x": 11, "y": 2.35}, - {"matrix": [2, 10], "x": 12, "y": 2.6}, - - {"matrix": [3, 0], "x": 0, "y": 3.6}, - {"matrix": [3, 1], "x": 1, "y": 3.35}, - {"matrix": [3, 2], "x": 2, "y": 3}, - {"matrix": [3, 3], "x": 3, "y": 3.35}, - {"matrix": [3, 4], "x": 4, "y": 3.7}, - {"matrix": [3, 5], "x": 5, "y": 2.95, "h": 1.5}, - - {"matrix": [2, 5], "x": 7, "y": 2.95, "h": 1.5}, - {"matrix": [3, 6], "x": 8, "y": 3.7}, - {"matrix": [3, 7], "x": 9, "y": 3.35}, - {"matrix": [3, 8], "x": 10, "y": 3}, - {"matrix": [3, 9], "x": 11, "y": 3.35}, - {"matrix": [3, 10], "x": 12, "y": 3.6} - ] - } } } diff --git a/keyboards/atreus/keymaps/default/keymap.c b/keyboards/atreus/keymaps/default/keymap.c index e458810537..ca1333230c 100644 --- a/keyboards/atreus/keymaps/default/keymap.c +++ b/keyboards/atreus/keymaps/default/keymap.c @@ -12,7 +12,7 @@ #define _LW 2 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = LAYOUT_pcb_up( /* Qwerty */ + [_QW] = LAYOUT( /* Qwerty */ 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 , KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH , @@ -25,7 +25,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * [ ] ( ) & || ` 1 2 3 \ * lower insert super shift bksp ctrl || alt space fn . 0 = */ - [_RS] = LAYOUT_pcb_up( /* [> RAISE <] */ + [_RS] = LAYOUT( /* [> RAISE <] */ KC_EXLM, KC_AT, KC_UP, KC_LCBR, KC_RCBR, KC_PGUP, KC_7, KC_8, KC_9, KC_ASTR , KC_HASH, KC_LEFT, KC_DOWN, KC_RGHT, KC_DLR, KC_PGDN, KC_4, KC_5, KC_6, KC_PLUS , KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_AMPR, KC_GRV, KC_1, KC_2, KC_3, KC_BSLS , @@ -36,7 +36,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * volup reset || F1 F2 F3 F12 * voldn super shift bksp ctrl || alt space L0 prtsc scroll pause */ - [_LW] = LAYOUT_pcb_up( /* [> LOWER <] */ + [_LW] = LAYOUT( /* [> LOWER <] */ KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_UP, KC_F7, KC_F8, KC_F9, KC_F10 , KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_DOWN, KC_F4, KC_F5, KC_F6, KC_F11 , KC_NO, KC_VOLU, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_F1, KC_F2, KC_F3, KC_F12 , diff --git a/keyboards/atreus/keymaps/workman/keymap.c b/keyboards/atreus/keymaps/workman/keymap.c index e8b5b6b4e3..c0633f6362 100644 --- a/keyboards/atreus/keymaps/workman/keymap.c +++ b/keyboards/atreus/keymaps/workman/keymap.c @@ -25,7 +25,7 @@ enum custom_keycodes { */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QW] = LAYOUT_pcb_down( /* Workman */ + [_QW] = LAYOUT( /* Workman */ KC_Q, KC_D, KC_R, KC_W, KC_B, KC_J, KC_F, KC_U, KC_P, KC_SCLN, KC_A, KC_S, KC_H, KC_T, KC_G, KC_Y, KC_N, KC_E, KC_O, KC_I, KC_Z, KC_X, KC_M, KC_C, KC_V, KC_K, KC_L, KC_COMM, KC_DOT, KC_SLSH, @@ -39,7 +39,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * menu caps < > del || _ 0 = */ - [_RS] = LAYOUT_pcb_down( /* [> RAISE <] */ + [_RS] = LAYOUT( /* [> RAISE <] */ KC_EXLM, KC_AT, KC_LCBR, KC_RCBR, KC_PIPE, KC_MINS, KC_7, KC_8, KC_9, KC_ASTR, KC_HASH, KC_DLR, KC_LPRN, KC_RPRN, KC_GRV, KC_DOT, KC_4, KC_5, KC_6, KC_PLUS, KC_PERC, KC_CIRC, KC_LBRC, KC_RBRC, KC_TILD, KC_AMPR, KC_1, KC_2, KC_3, KC_BSLS, @@ -52,7 +52,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * || – ¨ reset */ - [_LW] = LAYOUT_pcb_down( /* [> LOWER <] */ + [_LW] = LAYOUT( /* [> LOWER <] */ KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_VOLU, KC_F7, KC_F8, KC_F9, KC_F10, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_VOLD, KC_F4, KC_F5, KC_F6, KC_F11, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MUTE, KC_F1, KC_F2, KC_F3, KC_F12, diff --git a/keyboards/atreus/promicro/keyboard.json b/keyboards/atreus/promicro/keyboard.json index 10c0ca1b22..9f7e50526c 100644 --- a/keyboards/atreus/promicro/keyboard.json +++ b/keyboards/atreus/promicro/keyboard.json @@ -4,5 +4,64 @@ "rows": ["F4", "B2", "B4", "B5"] }, "diode_direction": "COL2ROW", - "development_board": "promicro" + "development_board": "promicro", + "layout_aliases": { + "LAYOUT_pcb_up": "LAYOUT", + "LAYOUT_pcb_down": "LAYOUT" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.6}, + {"matrix": [0, 1], "x": 1, "y": 0.35}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.35}, + {"matrix": [0, 4], "x": 4, "y": 0.7}, + + {"matrix": [0, 6], "x": 8, "y": 0.7}, + {"matrix": [0, 7], "x": 9, "y": 0.35}, + {"matrix": [0, 8], "x": 10, "y": 0}, + {"matrix": [0, 9], "x": 11, "y": 0.35}, + {"matrix": [0, 10], "x": 12, "y": 0.6}, + + {"matrix": [1, 0], "x": 0, "y": 1.6}, + {"matrix": [1, 1], "x": 1, "y": 1.35}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.35}, + {"matrix": [1, 4], "x": 4, "y": 1.7}, + + {"matrix": [1, 6], "x": 8, "y": 1.7}, + {"matrix": [1, 7], "x": 9, "y": 1.35}, + {"matrix": [1, 8], "x": 10, "y": 1}, + {"matrix": [1, 9], "x": 11, "y": 1.35}, + {"matrix": [1, 10], "x": 12, "y": 1.6}, + + {"matrix": [2, 0], "x": 0, "y": 2.6}, + {"matrix": [2, 1], "x": 1, "y": 2.35}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.35}, + {"matrix": [2, 4], "x": 4, "y": 2.7}, + + {"matrix": [2, 6], "x": 8, "y": 2.7}, + {"matrix": [2, 7], "x": 9, "y": 2.35}, + {"matrix": [2, 8], "x": 10, "y": 2}, + {"matrix": [2, 9], "x": 11, "y": 2.35}, + {"matrix": [2, 10], "x": 12, "y": 2.6}, + + {"matrix": [3, 0], "x": 0, "y": 3.6}, + {"matrix": [3, 1], "x": 1, "y": 3.35}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3.35}, + {"matrix": [3, 4], "x": 4, "y": 3.7}, + {"matrix": [2, 5], "x": 5, "y": 2.95, "h": 1.5}, + + {"matrix": [3, 5], "x": 7, "y": 2.95, "h": 1.5}, + {"matrix": [3, 6], "x": 8, "y": 3.7}, + {"matrix": [3, 7], "x": 9, "y": 3.35}, + {"matrix": [3, 8], "x": 10, "y": 3}, + {"matrix": [3, 9], "x": 11, "y": 3.35}, + {"matrix": [3, 10], "x": 12, "y": 3.6} + ] + } + } } diff --git a/keyboards/atreus/teensy2/keyboard.json b/keyboards/atreus/teensy2/keyboard.json index 067ea9a01d..bdcc8f394d 100644 --- a/keyboards/atreus/teensy2/keyboard.json +++ b/keyboards/atreus/teensy2/keyboard.json @@ -5,5 +5,64 @@ }, "diode_direction": "COL2ROW", "processor": "atmega32u4", - "bootloader": "halfkay" + "bootloader": "halfkay", + "layout_aliases": { + "LAYOUT_pcb_up": "LAYOUT", + "LAYOUT_pcb_down": "LAYOUT" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0.6}, + {"matrix": [0, 1], "x": 1, "y": 0.35}, + {"matrix": [0, 2], "x": 2, "y": 0}, + {"matrix": [0, 3], "x": 3, "y": 0.35}, + {"matrix": [0, 4], "x": 4, "y": 0.7}, + + {"matrix": [0, 6], "x": 8, "y": 0.7}, + {"matrix": [0, 7], "x": 9, "y": 0.35}, + {"matrix": [0, 8], "x": 10, "y": 0}, + {"matrix": [0, 9], "x": 11, "y": 0.35}, + {"matrix": [0, 10], "x": 12, "y": 0.6}, + + {"matrix": [1, 0], "x": 0, "y": 1.6}, + {"matrix": [1, 1], "x": 1, "y": 1.35}, + {"matrix": [1, 2], "x": 2, "y": 1}, + {"matrix": [1, 3], "x": 3, "y": 1.35}, + {"matrix": [1, 4], "x": 4, "y": 1.7}, + + {"matrix": [1, 6], "x": 8, "y": 1.7}, + {"matrix": [1, 7], "x": 9, "y": 1.35}, + {"matrix": [1, 8], "x": 10, "y": 1}, + {"matrix": [1, 9], "x": 11, "y": 1.35}, + {"matrix": [1, 10], "x": 12, "y": 1.6}, + + {"matrix": [2, 0], "x": 0, "y": 2.6}, + {"matrix": [2, 1], "x": 1, "y": 2.35}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2.35}, + {"matrix": [2, 4], "x": 4, "y": 2.7}, + + {"matrix": [2, 6], "x": 8, "y": 2.7}, + {"matrix": [2, 7], "x": 9, "y": 2.35}, + {"matrix": [2, 8], "x": 10, "y": 2}, + {"matrix": [2, 9], "x": 11, "y": 2.35}, + {"matrix": [2, 10], "x": 12, "y": 2.6}, + + {"matrix": [3, 0], "x": 0, "y": 3.6}, + {"matrix": [3, 1], "x": 1, "y": 3.35}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [3, 3], "x": 3, "y": 3.35}, + {"matrix": [3, 4], "x": 4, "y": 3.7}, + {"matrix": [2, 5], "x": 5, "y": 2.95, "h": 1.5}, + + {"matrix": [3, 5], "x": 7, "y": 2.95, "h": 1.5}, + {"matrix": [3, 6], "x": 8, "y": 3.7}, + {"matrix": [3, 7], "x": 9, "y": 3.35}, + {"matrix": [3, 8], "x": 10, "y": 3}, + {"matrix": [3, 9], "x": 11, "y": 3.35}, + {"matrix": [3, 10], "x": 12, "y": 3.6} + ] + } + } } From 05355bc49d9e5ff764cb3d2c9272bb941651ddd1 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Sun, 5 Oct 2025 21:06:55 -0600 Subject: [PATCH 067/255] Fixup `rgbkb/pan` (#25678) Tidy up rgbkb/pan - Migrate g_led_config to DD and fix coordinates - Remove RGBLight configuration - Migrate keymaps to JSON - Move keymap OLED code to keyboard level - Remove cutom layout selection logic (post_rules.mk) - Use short SPDX license headers --- keyboards/rgbkb/pan/config.h | 19 +-- keyboards/rgbkb/pan/info.json | 82 ++++++++--- keyboards/rgbkb/pan/keymaps/default/keymap.c | 116 ---------------- .../rgbkb/pan/keymaps/default/keymap.json | 35 +++++ keyboards/rgbkb/pan/keymaps/default/rules.mk | 3 - .../rgbkb/pan/keymaps/default_eee/keymap.c | 116 ---------------- .../rgbkb/pan/keymaps/default_eee/keymap.json | 35 +++++ .../rgbkb/pan/keymaps/default_eee/rules.mk | 3 - .../rgbkb/pan/keymaps/default_sss/keymap.c | 116 ---------------- .../rgbkb/pan/keymaps/default_sss/keymap.json | 35 +++++ .../rgbkb/pan/keymaps/default_sss/rules.mk | 3 - keyboards/rgbkb/pan/pan.c | 130 +++++------------- keyboards/rgbkb/pan/post_rules.mk | 28 ---- 13 files changed, 208 insertions(+), 513 deletions(-) delete mode 100644 keyboards/rgbkb/pan/keymaps/default/keymap.c create mode 100644 keyboards/rgbkb/pan/keymaps/default/keymap.json delete mode 100644 keyboards/rgbkb/pan/keymaps/default/rules.mk delete mode 100644 keyboards/rgbkb/pan/keymaps/default_eee/keymap.c create mode 100644 keyboards/rgbkb/pan/keymaps/default_eee/keymap.json delete mode 100644 keyboards/rgbkb/pan/keymaps/default_eee/rules.mk delete mode 100644 keyboards/rgbkb/pan/keymaps/default_sss/keymap.c create mode 100644 keyboards/rgbkb/pan/keymaps/default_sss/keymap.json delete mode 100644 keyboards/rgbkb/pan/keymaps/default_sss/rules.mk delete mode 100644 keyboards/rgbkb/pan/post_rules.mk diff --git a/keyboards/rgbkb/pan/config.h b/keyboards/rgbkb/pan/config.h index be719c1437..29b60e739c 100644 --- a/keyboards/rgbkb/pan/config.h +++ b/keyboards/rgbkb/pan/config.h @@ -1,20 +1,5 @@ -/*Copyright 2020 RGBKB - -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 . -*/ - +// Copyright 2020 RGBKB +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define RGB_MATRIX_LED_COUNT 64 #define WS2812_LED_COUNT 64 diff --git a/keyboards/rgbkb/pan/info.json b/keyboards/rgbkb/pan/info.json index ad56ba5e4b..4358881075 100644 --- a/keyboards/rgbkb/pan/info.json +++ b/keyboards/rgbkb/pan/info.json @@ -66,23 +66,71 @@ "solid_splash": true, "solid_multisplash": true }, - "driver": "custom" - }, - "rgblight": { - "led_count": 64, - "max_brightness": 120, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "rgb_test": true, - "alternating": true, - "twinkle": true - } + "driver": "custom", + "layout": [ + {"x": 0, "y": 0, "flags": 1}, + {"x": 224, "y": 0, "flags": 1}, + {"matrix": [0, 0], "x": 9, "y": 13, "flags": 1}, + {"matrix": [0, 1], "x": 28, "y": 13, "flags": 4}, + {"matrix": [0, 2], "x": 47, "y": 13, "flags": 4}, + {"matrix": [0, 3], "x": 66, "y": 13, "flags": 4}, + {"matrix": [0, 4], "x": 84, "y": 13, "flags": 4}, + {"matrix": [0, 5], "x": 104, "y": 13, "flags": 4}, + {"matrix": [0, 6], "x": 123, "y": 13, "flags": 4}, + {"matrix": [0, 7], "x": 142, "y": 13, "flags": 4}, + {"matrix": [0, 8], "x": 161, "y": 13, "flags": 4}, + {"matrix": [0, 9], "x": 180, "y": 13, "flags": 4}, + {"matrix": [0, 10], "x": 199, "y": 13, "flags": 4}, + {"matrix": [0, 12], "x": 215, "y": 13, "flags": 1}, + {"matrix": [1, 11], "x": 215, "y": 26, "flags": 1}, + {"matrix": [1, 10], "x": 199, "y": 26, "flags": 4}, + {"matrix": [1, 9], "x": 180, "y": 26, "flags": 4}, + {"matrix": [1, 8], "x": 161, "y": 26, "flags": 4}, + {"matrix": [1, 7], "x": 142, "y": 26, "flags": 4}, + {"matrix": [1, 6], "x": 123, "y": 26, "flags": 4}, + {"matrix": [1, 5], "x": 104, "y": 26, "flags": 4}, + {"matrix": [1, 4], "x": 84, "y": 26, "flags": 4}, + {"matrix": [1, 3], "x": 66, "y": 26, "flags": 4}, + {"matrix": [1, 2], "x": 47, "y": 26, "flags": 4}, + {"matrix": [1, 1], "x": 28, "y": 26, "flags": 4}, + {"matrix": [1, 0], "x": 9, "y": 26, "flags": 1}, + {"matrix": [2, 0], "x": 9, "y": 38, "flags": 1}, + {"matrix": [2, 1], "x": 28, "y": 38, "flags": 4}, + {"matrix": [2, 2], "x": 47, "y": 38, "flags": 4}, + {"matrix": [2, 3], "x": 66, "y": 38, "flags": 4}, + {"matrix": [2, 4], "x": 84, "y": 38, "flags": 4}, + {"matrix": [2, 5], "x": 104, "y": 38, "flags": 4}, + {"matrix": [2, 6], "x": 123, "y": 38, "flags": 4}, + {"matrix": [2, 7], "x": 142, "y": 38, "flags": 4}, + {"matrix": [2, 8], "x": 161, "y": 38, "flags": 4}, + {"matrix": [2, 9], "x": 180, "y": 38, "flags": 4}, + {"matrix": [2, 10], "x": 199, "y": 38, "flags": 4}, + {"matrix": [2, 11], "x": 215, "y": 38, "flags": 1}, + {"matrix": [3, 12], "x": 215, "y": 51, "flags": 1}, + {"matrix": [3, 10], "x": 199, "y": 51, "flags": 4}, + {"matrix": [3, 9], "x": 180, "y": 51, "flags": 4}, + {"matrix": [3, 8], "x": 161, "y": 51, "flags": 4}, + {"matrix": [3, 7], "x": 142, "y": 51, "flags": 4}, + {"matrix": [3, 6], "x": 123, "y": 51, "flags": 4}, + {"matrix": [3, 5], "x": 104, "y": 51, "flags": 4}, + {"matrix": [3, 4], "x": 84, "y": 51, "flags": 4}, + {"matrix": [3, 3], "x": 66, "y": 51, "flags": 4}, + {"matrix": [3, 2], "x": 47, "y": 51, "flags": 4}, + {"matrix": [3, 1], "x": 28, "y": 51, "flags": 4}, + {"matrix": [3, 0], "x": 9, "y": 51, "flags": 1}, + {"matrix": [4, 0], "x": 9, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 28, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 47, "y": 64, "flags": 1}, + {"matrix": [4, 3], "x": 66, "y": 64, "flags": 1}, + {"matrix": [4, 4], "x": 84, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 104, "y": 64, "flags": 1}, + {"matrix": [4, 6], "x": 123, "y": 64, "flags": 1}, + {"matrix": [4, 7], "x": 142, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 161, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 180, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 199, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 215, "y": 64, "flags": 1} + ] }, "layouts": { "LAYOUT_all": { diff --git a/keyboards/rgbkb/pan/keymaps/default/keymap.c b/keyboards/rgbkb/pan/keymaps/default/keymap.c deleted file mode 100644 index 3647ae2ad6..0000000000 --- a/keyboards/rgbkb/pan/keymaps/default/keymap.c +++ /dev/null @@ -1,116 +0,0 @@ - /* Copyright 2020 RGBKB - * - * 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 . - */ -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#include QMK_KEYBOARD_H - -enum layer_number { - _QWERTY, - _COLEMAK, - _FN, - _ADJ -}; - -#define FN_ESC LT(_FN, KC_ESC) -#define FN_CAPS LT(_FN, KC_CAPS) -#define QWERTY DF(_QWERTY) -#define COLEMAK DF(_COLEMAK) - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = 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_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_BSLS, - FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, - KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, - KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT - ), - - [_COLEMAK] = 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_BSPC, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, - FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, SC_RSPC, KC_ENT, - KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT - ), - - [_FN] = 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_PSCR, - _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END, - _______, _______, _______, _______, _______, _______, _______, KC_LBRC, _______, KC_RBRC, _______, _______, _______, - _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [_ADJ] = 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_PSCR, - _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, - _______, RM_HUED, RM_VALD, RM_HUEU, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, - _______, RM_SPDD, _______, RM_SPDU, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, - _______, _______, _______, RM_NEXT, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, _QWERTY, _COLEMAK - ) -}; - -#ifdef OLED_ENABLE -bool oled_task_user(void) { - // Host Keyboard Layer Status - oled_write_P(PSTR("RGBKB Pan\n"), false); - oled_write_P(PSTR("Layer: "), false); - uint8_t layer = get_highest_layer(layer_state|default_layer_state); - switch (layer) { - case _QWERTY: - oled_write_P(PSTR("Default\n"), false); - break; - case _COLEMAK: - oled_write_P(PSTR("Colemak\n"), false); - break; - case _FN: - oled_write_P(PSTR("Function\n"), false); - break; - case _ADJ: - oled_write_P(PSTR("Adjust\n"), false); - break; - default: - oled_write_P(PSTR("Undefined\n"), false); - // Or use the write_ln shortcut over adding '\n' to the end of your string - //oled_write_ln_P(PSTR("Undefined"), false); - } - led_t led_state = host_keyboard_led_state(); - oled_write_P(led_state.num_lock ? PSTR("Numlock On\n") : PSTR(" \n"), false); - oled_write_P(led_state.caps_lock ? PSTR("Capslock On \n") : PSTR(" \n"), false); - - return false; -} -#endif - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { // First encoder - right - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } else if (index == 1) { // Second encoder - left - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - return true; -} diff --git a/keyboards/rgbkb/pan/keymaps/default/keymap.json b/keyboards/rgbkb/pan/keymaps/default/keymap.json new file mode 100644 index 0000000000..e2f50556f0 --- /dev/null +++ b/keyboards/rgbkb/pan/keymaps/default/keymap.json @@ -0,0 +1,35 @@ +{ + "keyboard": "rgbkb/pan/rev1/32a", + "keymap": "default", + "layout": "LAYOUT_all", + "layers": [ + [ + "QK_GESC", "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_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSLS", + "LT(2, 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_LSFT", "KC_BSLS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "SC_RSPC", + "KC_LCTL", "KC_LGUI", "KC_LALT", "RM_TOGG", "MO(3)", "KC_SPC", "KC_SPC", "MO(2)", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RIGHT" + ], + [ + "QK_GESC", "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_TAB", "KC_Q", "KC_W", "KC_F", "KC_P", "KC_G", "KC_J", "KC_L", "KC_U", "KC_Y", "KC_SCLN", "KC_BSLS", + "LT(2, KC_CAPS)", "KC_A", "KC_R", "KC_S", "KC_T", "KC_D", "KC_H", "KC_N", "KC_E", "KC_I", "KC_O", "KC_ENT", + "KC_LSFT", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", "SC_RSPC", "KC_ENT", + "KC_LCTL", "KC_LGUI", "KC_LALT", "RM_TOGG", "MO(3)", "KC_SPC", "KC_SPC", "MO(2)", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RIGHT" + ], + [ + "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_PGDN", "KC_UP", "KC_PGUP", "_______", "_______", "_______", "KC_PGDN", "KC_UP", "KC_PGUP", "KC_PSCR", "KC_HOME", + "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "_______", "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_INS", "KC_END", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_LBRC", "_______", "KC_RBRC", "_______", "_______", "_______", + "_______", "_______", "_______", "RM_NEXT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" + ], + [ + "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", + "_______", "RM_SATD", "RM_VALU", "RM_SATU", "QK_BOOT", "_______", "_______", "KC_P7", "KC_P8", "KC_P9", "_______", "_______", + "_______", "RM_HUED", "RM_VALD", "RM_HUEU", "_______", "_______", "_______", "KC_P4", "KC_P5", "KC_P6", "_______", "_______", + "_______", "RM_SPDD", "_______", "RM_SPDU", "_______", "_______", "_______", "KC_P1", "KC_P2", "KC_P3", "_______", "_______", "_______", + "_______", "_______", "_______", "RM_NEXT", "_______", "_______", "_______", "KC_P0", "KC_PDOT", "KC_NUM", "DF(0)", "DF(1)" + ] + ] +} diff --git a/keyboards/rgbkb/pan/keymaps/default/rules.mk b/keyboards/rgbkb/pan/keymaps/default/rules.mk deleted file mode 100644 index c4f4ee04da..0000000000 --- a/keyboards/rgbkb/pan/keymaps/default/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -# RGB layout selection -RGB_ENCODERS = yes # For RGB encoders, solder on both WS2811 chips -STAGGERED_LAYOUT = no # If you soldered R1-A12 and R4-A12, enable this. diff --git a/keyboards/rgbkb/pan/keymaps/default_eee/keymap.c b/keyboards/rgbkb/pan/keymaps/default_eee/keymap.c deleted file mode 100644 index 2de45d88e6..0000000000 --- a/keyboards/rgbkb/pan/keymaps/default_eee/keymap.c +++ /dev/null @@ -1,116 +0,0 @@ - /* Copyright 2020 RGBKB - * - * 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 . - */ -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#include QMK_KEYBOARD_H - -enum layer_number { - _QWERTY, - _COLEMAK, - _FN, - _ADJ -}; - -#define FN_ESC LT(_FN, KC_ESC) -#define FN_CAPS LT(_FN, KC_CAPS) -#define QWERTY DF(_QWERTY) -#define COLEMAK DF(_COLEMAK) - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_eee( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, 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_BSLS, - FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, - KC_LSFT, KC_BSLS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, SC_RSPC, - KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), - - [_COLEMAK] = LAYOUT_eee( - QK_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_DEL, - KC_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, - FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, 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_ENT, - KC_LCTL, KC_LGUI, KC_LALT, RM_TOGG, MO(_ADJ),KC_SPC, KC_SPC, MO(_FN), KC_LEFT, KC_DOWN, KC_UP, KC_RGHT - ), - - [_FN] = LAYOUT_eee( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_PSCR, - _______, KC_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END, - _______, _______, _______, _______, _______, _______, _______, KC_LBRC, _______, KC_RBRC, _______, _______, - _______, _______, _______, RM_NEXT, _______, _______, _______, _______, _______, _______, _______, _______ - ), - - [_ADJ] = LAYOUT_eee( - KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_PSCR, - _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, - _______, RM_HUED, RM_VALD, RM_HUEU, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, - _______, RM_SPDD, _______, RM_SPDU, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, - _______, _______, _______, RM_NEXT, _______, _______, _______, KC_P0, KC_PDOT, KC_NUM, QWERTY, COLEMAK - ) -}; - -#ifdef OLED_ENABLE -bool oled_task_user(void) { - // Host Keyboard Layer Status - oled_write_P(PSTR("RGBKB Pan\n"), false); - oled_write_P(PSTR("Layer: "), false); - uint8_t layer = get_highest_layer(layer_state|default_layer_state); - switch (layer) { - case _QWERTY: - oled_write_P(PSTR("Default\n"), false); - break; - case _COLEMAK: - oled_write_P(PSTR("Colemak\n"), false); - break; - case _FN: - oled_write_P(PSTR("Function\n"), false); - break; - case _ADJ: - oled_write_P(PSTR("Adjust\n"), false); - break; - default: - oled_write_P(PSTR("Undefined\n"), false); - // Or use the write_ln shortcut over adding '\n' to the end of your string - //oled_write_ln_P(PSTR("Undefined"), false); - } - led_t led_state = host_keyboard_led_state(); - oled_write_P(led_state.num_lock ? PSTR("Numlock On\n") : PSTR(" \n"), false); - oled_write_P(led_state.caps_lock ? PSTR("Capslock On \n") : PSTR(" \n"), false); - - return false; -} -#endif - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { // First encoder - right - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } else if (index == 1) { // Second encoder - left - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - return true; -} diff --git a/keyboards/rgbkb/pan/keymaps/default_eee/keymap.json b/keyboards/rgbkb/pan/keymaps/default_eee/keymap.json new file mode 100644 index 0000000000..c46fc40a3d --- /dev/null +++ b/keyboards/rgbkb/pan/keymaps/default_eee/keymap.json @@ -0,0 +1,35 @@ +{ + "keyboard": "rgbkb/pan/rev1/32a", + "keymap": "default_eee", + "layout": "LAYOUT_eee", + "layers": [ + [ + "QK_GESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "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_BSLS", + "LT(2, 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_LSFT", "KC_BSLS", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "SC_RSPC", + "KC_LCTL", "KC_LGUI", "KC_LALT", "RM_TOGG", "MO(3)", "KC_SPC", "KC_SPC", "MO(2)", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT" + ], + [ + "QK_GESC", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", "KC_DEL", + "KC_TAB", "KC_Q", "KC_W", "KC_F", "KC_P", "KC_G", "KC_J", "KC_L", "KC_U", "KC_Y", "KC_SCLN", "KC_BSLS", + "LT(2, KC_CAPS)", "KC_A", "KC_R", "KC_S", "KC_T", "KC_D", "KC_H", "KC_N", "KC_E", "KC_I", "KC_O", "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_ENT", + "KC_LCTL", "KC_LGUI", "KC_LALT", "RM_TOGG", "MO(3)", "KC_SPC", "KC_SPC", "MO(2)", "KC_LEFT", "KC_DOWN", "KC_UP", "KC_RGHT" + ], + [ + "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_PSCR", + "_______", "KC_PGDN", "KC_UP", "KC_PGUP", "_______", "_______", "_______", "KC_PGDN", "KC_UP", "KC_PGUP", "KC_PSCR", "KC_HOME", + "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "_______", "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_INS", "KC_END", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_LBRC", "_______", "KC_RBRC", "_______", "_______", + "_______", "_______", "_______", "RM_NEXT", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" + ], + [ + "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_PSCR", + "_______", "RM_SATD", "RM_VALU", "RM_SATU", "QK_BOOT", "_______", "_______", "KC_P7", "KC_P8", "KC_P9", "_______", "_______", + "_______", "RM_HUED", "RM_VALD", "RM_HUEU", "_______", "_______", "_______", "KC_P4", "KC_P5", "KC_P6", "_______", "_______", + "_______", "RM_SPDD", "_______", "RM_SPDU", "_______", "_______", "_______", "KC_P1", "KC_P2", "KC_P3", "_______", "_______", + "_______", "_______", "_______", "RM_NEXT", "_______", "_______", "_______", "KC_P0", "KC_PDOT", "KC_NUM", "DF(0)", "DF(1)" + ] + ] +} diff --git a/keyboards/rgbkb/pan/keymaps/default_eee/rules.mk b/keyboards/rgbkb/pan/keymaps/default_eee/rules.mk deleted file mode 100644 index c4f4ee04da..0000000000 --- a/keyboards/rgbkb/pan/keymaps/default_eee/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -# RGB layout selection -RGB_ENCODERS = yes # For RGB encoders, solder on both WS2811 chips -STAGGERED_LAYOUT = no # If you soldered R1-A12 and R4-A12, enable this. diff --git a/keyboards/rgbkb/pan/keymaps/default_sss/keymap.c b/keyboards/rgbkb/pan/keymaps/default_sss/keymap.c deleted file mode 100644 index b0b8bd1898..0000000000 --- a/keyboards/rgbkb/pan/keymaps/default_sss/keymap.c +++ /dev/null @@ -1,116 +0,0 @@ - /* Copyright 2020 RGBKB - * - * 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 . - */ -// Each layer gets a name for readability, which is then used in the keymap matrix below. -// The underscores don't mean anything - you can have a layer called STUFF or any other name. -// Layer names don't all need to be of the same length, obviously, and you can also skip them -// entirely and just use numbers. -#include QMK_KEYBOARD_H - -enum layer_number { - _QWERTY, - _COLEMAK, - _FN, - _ADJ -}; - -#define FN_ESC LT(_FN, KC_ESC) -#define FN_CAPS LT(_FN, KC_CAPS) -#define QWERTY DF(_QWERTY) -#define COLEMAK DF(_COLEMAK) - - -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_QWERTY] = LAYOUT_sss( - QK_GESC, 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSLS, - FN_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_ENT, - 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_ADJ),KC_RCTL - ), - - [_COLEMAK] = LAYOUT_sss( - QK_GESC, 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_TAB, KC_Q, KC_W, KC_F, KC_P, KC_G, KC_J, KC_L, KC_U, KC_Y, KC_SCLN, KC_BSLS, - FN_CAPS, KC_A, KC_R, KC_S, KC_T, KC_D, KC_H, KC_N, KC_E, KC_I, KC_O, KC_ENT, - 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_ADJ),KC_RCTL - ), - - [_FN] = LAYOUT_sss( - 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_PGDN, KC_UP, KC_PGUP, _______, _______, _______, KC_PGDN, KC_UP, KC_PGUP, KC_PSCR, KC_HOME, - _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, KC_LEFT, KC_DOWN, KC_RGHT, KC_INS, KC_END, - _______, _______, _______, _______, _______, _______, _______, KC_LBRC, _______, KC_RBRC, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______ - ), - - [_ADJ] = LAYOUT_sss( - 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, - _______, RM_SATD, RM_VALU, RM_SATU, QK_BOOT, _______, _______, KC_P7, KC_P8, KC_P9, _______, _______, - _______, RM_HUED, RM_VALD, RM_HUEU, _______, _______, _______, KC_P4, KC_P5, KC_P6, _______, _______, - _______, RM_SPDD, _______, RM_SPDU, _______, _______, _______, KC_P1, KC_P2, KC_P3, _______, _______, _______, - _______, _______, _______, _______, QWERTY, _______, COLEMAK - ) -}; - -#ifdef OLED_ENABLE -bool oled_task_user(void) { - // Host Keyboard Layer Status - oled_write_P(PSTR("RGBKB Pan\n"), false); - oled_write_P(PSTR("Layer: "), false); - uint8_t layer = get_highest_layer(layer_state|default_layer_state); - switch (layer) { - case _QWERTY: - oled_write_P(PSTR("Default\n"), false); - break; - case _COLEMAK: - oled_write_P(PSTR("Colemak\n"), false); - break; - case _FN: - oled_write_P(PSTR("Function\n"), false); - break; - case _ADJ: - oled_write_P(PSTR("Adjust\n"), false); - break; - default: - oled_write_P(PSTR("Undefined\n"), false); - // Or use the write_ln shortcut over adding '\n' to the end of your string - //oled_write_ln_P(PSTR("Undefined"), false); - } - led_t led_state = host_keyboard_led_state(); - oled_write_P(led_state.num_lock ? PSTR("Numlock On\n") : PSTR(" \n"), false); - oled_write_P(led_state.caps_lock ? PSTR("Capslock On \n") : PSTR(" \n"), false); - - return false; -} -#endif - -bool encoder_update_user(uint8_t index, bool clockwise) { - if (index == 0) { // First encoder - right - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } else if (index == 1) { // Second encoder - left - if (clockwise) { - tap_code(KC_VOLU); - } else { - tap_code(KC_VOLD); - } - } - return true; -} diff --git a/keyboards/rgbkb/pan/keymaps/default_sss/keymap.json b/keyboards/rgbkb/pan/keymaps/default_sss/keymap.json new file mode 100644 index 0000000000..ab216429f0 --- /dev/null +++ b/keyboards/rgbkb/pan/keymaps/default_sss/keymap.json @@ -0,0 +1,35 @@ +{ + "keyboard": "rgbkb/pan/rev1/32a", + "keymap": "default_sss", + "layout": "LAYOUT_sss", + "layers": [ + [ + "QK_GESC", "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_TAB", "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", "KC_BSLS", + "LT(2, 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_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_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(3)", "KC_RCTL" + ], + [ + "QK_GESC", "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_TAB", "KC_Q", "KC_W", "KC_F", "KC_P", "KC_G", "KC_J", "KC_L", "KC_U", "KC_Y", "KC_SCLN", "KC_BSLS", + "LT(2, KC_CAPS)", "KC_A", "KC_R", "KC_S", "KC_T", "KC_D", "KC_H", "KC_N", "KC_E", "KC_I", "KC_O", "KC_ENT", + "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_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(3)", "KC_RCTL" + ], + [ + "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_PGDN", "KC_UP", "KC_PGUP", "_______", "_______", "_______", "KC_PGDN", "KC_UP", "KC_PGUP", "KC_PSCR", "KC_HOME", + "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "_______", "_______", "_______", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_INS", "KC_END", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "KC_LBRC", "_______", "KC_RBRC", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______" + ], + [ + "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", + "_______", "RM_SATD", "RM_VALU", "RM_SATU", "QK_BOOT", "_______", "_______", "KC_P7", "KC_P8", "KC_P9", "_______", "_______", + "_______", "RM_HUED", "RM_VALD", "RM_HUEU", "_______", "_______", "_______", "KC_P4", "KC_P5", "KC_P6", "_______", "_______", + "_______", "RM_SPDD", "_______", "RM_SPDU", "_______", "_______", "_______", "KC_P1", "KC_P2", "KC_P3", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "DF(0)", "_______", "DF(1)" + ] + ] +} diff --git a/keyboards/rgbkb/pan/keymaps/default_sss/rules.mk b/keyboards/rgbkb/pan/keymaps/default_sss/rules.mk deleted file mode 100644 index c4f4ee04da..0000000000 --- a/keyboards/rgbkb/pan/keymaps/default_sss/rules.mk +++ /dev/null @@ -1,3 +0,0 @@ -# RGB layout selection -RGB_ENCODERS = yes # For RGB encoders, solder on both WS2811 chips -STAGGERED_LAYOUT = no # If you soldered R1-A12 and R4-A12, enable this. diff --git a/keyboards/rgbkb/pan/pan.c b/keyboards/rgbkb/pan/pan.c index 20cc4dd248..ce5c2ae249 100644 --- a/keyboards/rgbkb/pan/pan.c +++ b/keyboards/rgbkb/pan/pan.c @@ -1,34 +1,15 @@ -/* Copyright 2020 RGBKB - * - * 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 . - */ +// Copyright 2020 RGBKB +// SPDX-License-Identifier: GPL-2.0-or-later #include "quantum.h" -#include "rgb_matrix_types.h" -#if defined RGB_MATRIX_ENABLE -# if defined(KEYBOARD_rgbkb_pan_rev1) -# include "ws2812.h" +#ifdef RGB_MATRIX_ENABLE +# include "ws2812.h" -// Set an led in the buffer to a color static inline void setled(int i, uint8_t r, uint8_t g, uint8_t b) { -# if defined(RGB_ENCODERS) || defined(STAGGERED_RGB_ENCODERS) - if (i == 0 || i == 1) { // if encoder LEDs, change LEDs + if (i == 0 || i == 1) { // Encoder LEDs require GBR sequence ws2812_set_color(i, g, b, r); - } else -# endif - { + } else { ws2812_set_color(i, r, g, b); } } @@ -39,74 +20,35 @@ const rgb_matrix_driver_t rgb_matrix_driver = { .set_color = setled, .set_color_all = ws2812_set_color_all, }; -# endif +#endif -// clang-format off - led_config_t g_led_config = { { - { 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 }, - { 0, 26, 25, 24, 23, 22, 21, 20, 19, 18, 17, 16, 15 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 1 }, - { 52, 51, 50, 49, 48, 47, 46, 45, 44, 43, 42, 41, 40 }, - { 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, NO_LED } - }, { -# ifdef STAGGERED_RGB_ENCODERS - {0, -19},{228, -19}, - {0, 0}, {14, 0}, {33, 0}, {52, 0}, {71, 0}, {90, 0}, {109, 0}, {128, 0}, {147, 0}, {166, 0}, {185, 0}, {204, 0}, {223, 0}, - {209, 19}, {190, 19}, {171, 19}, {152, 19}, {133, 19}, {114, 19}, {95, 19}, {76, 19}, {57, 19}, {38, 19}, {19, 19}, {0, 19}, - {0, 38}, {19, 38}, {38, 38}, {57, 38}, {76, 38}, {95, 38}, {114, 38}, {133, 38}, {152, 38}, {171, 38}, {190, 38}, {209, 38}, - {223, 57}, {204, 57}, {185, 57}, {171, 57}, {147, 57}, {128, 57}, {109, 57}, {90, 57}, {71, 57}, {52, 57}, {33, 57}, {14, 57}, {0, 57}, - {0, 76}, {19, 76}, {38, 76}, {57, 76}, {76, 76}, {95, 76}, {114, 76}, {133, 76}, {152, 76}, {171, 76}, {190, 76}, {209, 76}, -# elif defined RGB_ENCODERS - {0, -19},{228, -19}, - {0, 0}, {19, 0}, {38, 0}, {57, 0}, {76, 0}, {95, 0}, {114, 0}, {133, 0}, {152, 0}, {171, 0}, {190, 0}, {209, 0}, - {209, 19}, {190, 19}, {171, 19}, {152, 19}, {133, 19}, {114, 19}, {95, 19}, {76, 19}, {57, 19}, {38, 19}, {19, 19}, {0, 19}, - {0, 38}, {19, 38}, {38, 38}, {57, 38}, {76, 38}, {95, 38}, {114, 38}, {133, 38}, {152, 38}, {171, 38}, {190, 38}, {209, 38}, - {209, 57}, {190, 57}, {171, 57}, {152, 57}, {133, 57}, {114, 57}, {95, 57}, {76, 57}, {57, 57}, {38, 57}, {19, 57}, {0, 57}, - {0, 76}, {19, 76}, {38, 76}, {57, 76}, {76, 76}, {95, 76}, {114, 76}, {133, 76}, {152, 76}, {171, 76}, {190, 76}, {209, 76}, - {0, 95},{19, 95}, //not used -# elif defined STAGGERED_LAYOUT - {0, 0}, {19, 0}, {38, 0}, {57, 0}, {76, 0}, {95, 0}, {114, 0}, {133, 0}, {152, 0}, {171, 0}, {190, 0}, {209, 0}, {0, 0}, - {209, 19}, {190, 19}, {171, 19}, {152, 19}, {133, 19}, {114, 19}, {95, 19}, {76, 19}, {57, 19}, {38, 19}, {19, 19}, {0, 19}, - {0, 38}, {19, 38}, {38, 38}, {57, 38}, {76, 38}, {95, 38}, {114, 38}, {133, 38}, {152, 38}, {171, 38}, {190, 38}, {209, 38}, - {209, 57}, {190, 57}, {171, 57}, {152, 57}, {133, 57}, {114, 57}, {95, 57}, {76, 57}, {57, 57}, {38, 57}, {19, 57}, {0, 57}, {0, 0}, - {0, 76}, {19, 76}, {38, 76}, {57, 76}, {76, 76}, {95, 76}, {114, 76}, {133, 76}, {152, 76}, {171, 76}, {190, 76}, {209, 76}, - {0, 95},{19, 95},//not used -# else - {0, 0}, {19, 0}, {38, 0}, {57, 0}, {76, 0}, {95, 0}, {114, 0}, {133, 0}, {152, 0}, {171, 0}, {190, 0}, {209, 0}, - {209, 19}, {190, 19}, {171, 19}, {152, 19}, {133, 19}, {114, 19}, {95, 19}, {76, 19}, {57, 19}, {38, 19}, {19, 19}, {0, 19}, - {0, 38}, {19, 38}, {38, 38}, {57, 38}, {76, 38}, {95, 38}, {114, 38}, {133, 38}, {152, 38}, {171, 38}, {190, 38}, {209, 38}, - {209, 57}, {190, 57}, {171, 57}, {152, 57}, {133, 57}, {114, 57}, {95, 57}, {76, 57}, {57, 57}, {38, 57}, {19, 57}, {0, 57}, - {0, 76}, {19, 76}, {38, 76}, {57, 76}, {76, 76}, {95, 76}, {114, 76}, {133, 76}, {152, 76}, {171, 76}, {190, 76}, {209, 76}, - {0, 0},{0, 0}, {0, 0},{0, 0},//not used -# endif - }, { -# ifdef STAGGERED_RGB_ENCODERS - 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -# elif defined RGB_ENCODERS - 1, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -# elif defined STAGGERED_LAYOUT - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -# else - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 -# endif - } }; -// clang-format on +#ifdef OLED_ENABLE +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + oled_write_P(PSTR("RGBKB Pan\n"), false); + oled_write_P(PSTR("Layer: "), false); + uint8_t layer = get_highest_layer(layer_state | default_layer_state); + switch (layer) { + case 0: + oled_write_P(PSTR("Default\n"), false); + break; + case 1: + oled_write_P(PSTR("Colemak\n"), false); + break; + case 2: + oled_write_P(PSTR("Function\n"), false); + break; + case 3: + oled_write_P(PSTR("Adjust\n"), false); + break; + default: + oled_write_P(PSTR("Undefined\n"), false); + } + led_t led_state = host_keyboard_led_state(); + oled_write_P(led_state.num_lock ? PSTR("Numlock On\n") : PSTR(" \n"), false); + oled_write_P(led_state.caps_lock ? PSTR("Capslock On \n") : PSTR(" \n"), false); + return false; +} #endif diff --git a/keyboards/rgbkb/pan/post_rules.mk b/keyboards/rgbkb/pan/post_rules.mk deleted file mode 100644 index afa3b555b2..0000000000 --- a/keyboards/rgbkb/pan/post_rules.mk +++ /dev/null @@ -1,28 +0,0 @@ -RGB_MATRIX_KEYPRESSES ?= no # Enable reactive per-key effects. -RGB_MATRIX_FRAMEBUFFER_EFFECTS ?= no # Enable frame buffer effects like the typing heatmap. - -# RGB layout selection -STAGGERED_LAYOUT ?= no # If you soldered R1-A12 and R4-A12, enable this. -RGB_ENCODERS ?= yes # For RGB encoders, solder on both WS2811 chips - -ifeq ($(strip $(RGB_MATRIX_KEYPRESSES)), yes) - OPT_DEFS += -DRGB_MATRIX_KEYPRESSES -endif - -ifeq ($(strip $(RGB_MATRIX_FRAMEBUFFER)), yes) - OPT_DEFS += -DRGB_MATRIX_FRAMEBUFFER_EFFECTS -endif - -ifeq ($(strip $(STAGGERED_LAYOUT)), yes) - OPT_DEFS += -DSTAGGERED_LAYOUT -endif - -ifeq ($(strip $(RGB_ENCODERS)), yes) - OPT_DEFS += -DRGB_ENCODERS -endif - -ifeq ($(strip $(RGB_ENCODERS)), yes) - ifeq ($(strip $(STAGGERED_LAYOUT)), yes) - OPT_DEFS += -DSTAGGERED_RGB_ENCODERS=$(strip $(STAGGERED_RGB_ENCODERS)) - endif -endif From 466e0856f553d5fd1e50d990f97b8bb5de899145 Mon Sep 17 00:00:00 2001 From: Pascal Hansjosten <33342805+pascalhansjosten@users.noreply.github.com> Date: Mon, 6 Oct 2025 18:26:16 +0200 Subject: [PATCH 068/255] add durgod venus iso support (#25526) --- data/mappings/keyboard_aliases.hjson | 2 +- keyboards/durgod/dgk6x/readme.md | 3 +- .../dgk6x/{venus => venus_ansi}/config.h | 0 .../dgk6x/{venus => venus_ansi}/keyboard.json | 0 .../keymaps/default/keymap.json | 2 +- .../keymaps/default/readme.md | 0 .../dgk6x/{venus => venus_ansi}/readme.md | 4 +- .../venus.c => venus_ansi/venus_ansi.c} | 0 keyboards/durgod/dgk6x/venus_iso/config.h | 19 +++ .../durgod/dgk6x/venus_iso/keyboard.json | 151 ++++++++++++++++++ .../venus_iso/keymaps/default/keymap.json | 37 +++++ keyboards/durgod/dgk6x/venus_iso/readme.md | 26 +++ keyboards/durgod/dgk6x/venus_iso/venus_iso.c | 97 +++++++++++ keyboards/durgod/venus/readme.md | 2 +- 14 files changed, 337 insertions(+), 6 deletions(-) rename keyboards/durgod/dgk6x/{venus => venus_ansi}/config.h (100%) rename keyboards/durgod/dgk6x/{venus => venus_ansi}/keyboard.json (100%) rename keyboards/durgod/dgk6x/{venus => venus_ansi}/keymaps/default/keymap.json (98%) rename keyboards/durgod/dgk6x/{venus => venus_ansi}/keymaps/default/readme.md (100%) rename keyboards/durgod/dgk6x/{venus => venus_ansi}/readme.md (90%) rename keyboards/durgod/dgk6x/{venus/venus.c => venus_ansi/venus_ansi.c} (100%) create mode 100644 keyboards/durgod/dgk6x/venus_iso/config.h create mode 100644 keyboards/durgod/dgk6x/venus_iso/keyboard.json create mode 100644 keyboards/durgod/dgk6x/venus_iso/keymaps/default/keymap.json create mode 100644 keyboards/durgod/dgk6x/venus_iso/readme.md create mode 100644 keyboards/durgod/dgk6x/venus_iso/venus_iso.c diff --git a/data/mappings/keyboard_aliases.hjson b/data/mappings/keyboard_aliases.hjson index c958cecbc9..71a7e880a3 100644 --- a/data/mappings/keyboard_aliases.hjson +++ b/data/mappings/keyboard_aliases.hjson @@ -1750,7 +1750,7 @@ "target": "durgod/dgk6x/galaxy" }, "durgod/venus": { - "target": "durgod/dgk6x/venus" + "target": "durgod/dgk6x/venus_ansi" }, "dztech/tofu/ii": { "target": "dztech/tofu/ii/v1" diff --git a/keyboards/durgod/dgk6x/readme.md b/keyboards/durgod/dgk6x/readme.md index a14dfcb9f4..58ba599069 100644 --- a/keyboards/durgod/dgk6x/readme.md +++ b/keyboards/durgod/dgk6x/readme.md @@ -11,7 +11,8 @@ This DGK6X code is shared between the ANSI variants of Venus, Hades and Galaxy k ### Build Instructions for building the Venus, Hades and Galaxy firmware can be found here: -* [Venus](venus/readme.md) +* [Venus ANSI](venus_ansi/readme.md) +* [Venus ISO](venus_iso/readme.md) * [Hades ANSI](hades_ansi/readme.md) * [Hades ISO](hades_iso/readme.md) * [Galaxy](galaxy/readme.md) diff --git a/keyboards/durgod/dgk6x/venus/config.h b/keyboards/durgod/dgk6x/venus_ansi/config.h similarity index 100% rename from keyboards/durgod/dgk6x/venus/config.h rename to keyboards/durgod/dgk6x/venus_ansi/config.h diff --git a/keyboards/durgod/dgk6x/venus/keyboard.json b/keyboards/durgod/dgk6x/venus_ansi/keyboard.json similarity index 100% rename from keyboards/durgod/dgk6x/venus/keyboard.json rename to keyboards/durgod/dgk6x/venus_ansi/keyboard.json diff --git a/keyboards/durgod/dgk6x/venus/keymaps/default/keymap.json b/keyboards/durgod/dgk6x/venus_ansi/keymaps/default/keymap.json similarity index 98% rename from keyboards/durgod/dgk6x/venus/keymaps/default/keymap.json rename to keyboards/durgod/dgk6x/venus_ansi/keymaps/default/keymap.json index 8acd302a05..be4d435839 100644 --- a/keyboards/durgod/dgk6x/venus/keymaps/default/keymap.json +++ b/keyboards/durgod/dgk6x/venus_ansi/keymaps/default/keymap.json @@ -1,5 +1,5 @@ { - "keyboard": "durgod/dgk6x/venus", + "keyboard": "durgod/dgk6x/venus_ansi", "keymap": "default", "layout": "LAYOUT_60_ansi", "layers": [ diff --git a/keyboards/durgod/dgk6x/venus/keymaps/default/readme.md b/keyboards/durgod/dgk6x/venus_ansi/keymaps/default/readme.md similarity index 100% rename from keyboards/durgod/dgk6x/venus/keymaps/default/readme.md rename to keyboards/durgod/dgk6x/venus_ansi/keymaps/default/readme.md diff --git a/keyboards/durgod/dgk6x/venus/readme.md b/keyboards/durgod/dgk6x/venus_ansi/readme.md similarity index 90% rename from keyboards/durgod/dgk6x/venus/readme.md rename to keyboards/durgod/dgk6x/venus_ansi/readme.md index 9e37d49633..d8009dcb22 100644 --- a/keyboards/durgod/dgk6x/venus/readme.md +++ b/keyboards/durgod/dgk6x/venus_ansi/readme.md @@ -12,11 +12,11 @@ This is a standard off-the-shelf Durgod Venus 60% ANSI Layout keyboard with RGB Make command example for this keyboard (after setting up your build environment): - make durgod/venus:default + make durgod/dgk6x/venus_ansi:default Flashing example for this keyboard: - make durgod/venus:default:flash + make durgod/dgk6x/venus_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). diff --git a/keyboards/durgod/dgk6x/venus/venus.c b/keyboards/durgod/dgk6x/venus_ansi/venus_ansi.c similarity index 100% rename from keyboards/durgod/dgk6x/venus/venus.c rename to keyboards/durgod/dgk6x/venus_ansi/venus_ansi.c diff --git a/keyboards/durgod/dgk6x/venus_iso/config.h b/keyboards/durgod/dgk6x/venus_iso/config.h new file mode 100644 index 0000000000..f23b355905 --- /dev/null +++ b/keyboards/durgod/dgk6x/venus_iso/config.h @@ -0,0 +1,19 @@ +/* Copyright 2021 Jessica Sullivan and Don Kjer + * + * 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 CAPS_LED 29 diff --git a/keyboards/durgod/dgk6x/venus_iso/keyboard.json b/keyboards/durgod/dgk6x/venus_iso/keyboard.json new file mode 100644 index 0000000000..46b88427eb --- /dev/null +++ b/keyboards/durgod/dgk6x/venus_iso/keyboard.json @@ -0,0 +1,151 @@ +{ + "manufacturer": "Hoksi Technology", + "keyboard_name": "DURGOD Venus (QMK)", + "maintainer": "pascalhansjosten", + "diode_direction": "ROW2COL", + "matrix_pins": { + "cols": ["B0", "B1", "B2", "B10", "B11", "B12", "B13", "B14", "B15", "C6", "C7", "C8", "C9", "C10"], + "rows": ["A0", "A1", "A2", "A3", "A4"] + }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"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": 216, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 88, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 136, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 152, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 168, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 184, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 200, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 76, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 92, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 108, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 124, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 140, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 156, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 172, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 188, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 204, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 220, "y": 24, "flags": 1}, + {"matrix": [3, 0], "x": 2, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 19, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 68, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 84, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 116, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 132, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 148, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 164, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 180, "y": 48, "flags": 4}, + {"matrix": [3, 12], "x": 202, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 102, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 162, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 182, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 202, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 222, "y": 64, "flags": 4} + ] + }, + "url": "https://www.amazon.com/dp/B07XFP5MMZ", + "usb": { + "device_version": "0.0.1", + "pid": "0x7EC6", + "vid": "0xD60D" + }, + "community_layouts": ["60_iso"], + "layouts": { + "LAYOUT_60_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": "#", "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, "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": "CapsLock", "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, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, + {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "\\", "matrix": [3, 1], "x": 1.25, "y": 3}, + {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"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": "K45", "matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"label": "Fn1", "matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Fn2", "matrix": [4, 11], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/durgod/dgk6x/venus_iso/keymaps/default/keymap.json b/keyboards/durgod/dgk6x/venus_iso/keymaps/default/keymap.json new file mode 100644 index 0000000000..da53f1d9b5 --- /dev/null +++ b/keyboards/durgod/dgk6x/venus_iso/keymaps/default/keymap.json @@ -0,0 +1,37 @@ +{ + "keyboard": "durgod/dgk6x/venus_iso", + "keymap": "default", + "layout": "LAYOUT_60_iso", + "layers": [ + [ + "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_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", "RSFT_T(KC_UP)", + "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT","LT(1,KC_LEFT)","LT(2,KC_DOWN)","RCTL_T(KC_RIGHT)" + ], + [ + "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_TRNS", "KC_UP", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_PSCR", "KC_INS", "KC_HOME", "KC_END", "KC_DEL", + "KC_TRNS", "KC_LEFT", "KC_DOWN", "KC_RIGHT","KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_PGUP", "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", "GU_TOGG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "MO(3)", "KC_TRNS" + ], + [ + "KC_TRNS", "KC_MPLY", "KC_MSTP", "KC_MPRV", "KC_MNXT", "KC_MUTE", "KC_VOLD", "KC_VOLU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_TOGG", "RM_NEXT", "RM_PREV", + "KC_TRNS", "KC_TRNS", "RM_VALU", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + "KC_TRNS", "RM_SPDD", "RM_VALD", "RM_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", "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", "MO(3)", "KC_TRNS", "KC_TRNS" + ], + [ + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "RM_SATU", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "RM_HUED", "RM_SATD", "RM_HUEU", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", + "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "KC_TRNS", "KC_TRNS", "XXXXXXX" + ] + ], + "author":"pascalhansjosten", + "version":1 +} diff --git a/keyboards/durgod/dgk6x/venus_iso/readme.md b/keyboards/durgod/dgk6x/venus_iso/readme.md new file mode 100644 index 0000000000..2f40fedd96 --- /dev/null +++ b/keyboards/durgod/dgk6x/venus_iso/readme.md @@ -0,0 +1,26 @@ +# Venus + +This is a standard off-the-shelf Durgod Venus 60% ISO Layout keyboard with RGB matrix. + +* Keyboard Maintainer: [pascalhansjosten](https://github.com/pascalhansjosten), based on the work of [J-Sully](https://github.com/J-Sully) and [dkjer](https://github.com/dkjer) +* Hardware Supported: Durgod Venus ISO board with STM32F070RBT6 +* Hardware Availability: https://www.amazon.de/dp/B08H28DNQV/ + +## Instructions + +### Build + +Make command example for this keyboard (after setting up your build environment): + + make durgod/dgk6x/venus_iso:default + +Flashing example for this keyboard: + + make durgod/dgk6x/venus_iso: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). + +### Initial Flash + +Instructions for Flashing from initial Stock Firmware: +* [Initial Flashing](../readme.md#initial-flash) diff --git a/keyboards/durgod/dgk6x/venus_iso/venus_iso.c b/keyboards/durgod/dgk6x/venus_iso/venus_iso.c new file mode 100644 index 0000000000..4cc9bf3364 --- /dev/null +++ b/keyboards/durgod/dgk6x/venus_iso/venus_iso.c @@ -0,0 +1,97 @@ +/* Copyright 2021 Jessica Sullivan and Don Kjer + * + * 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 "dgk6x.h" + +#ifdef RGB_MATRIX_ENABLE + +const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { +/* Refer to IS31 manual for these locations + * driver + * | R location + * | | G location + * | | | B location + * | | | | */ + + {0, SW3_CS1, SW2_CS1, SW1_CS1}, // Esc + {0, SW3_CS2, SW2_CS2, SW1_CS2}, // 1 + {0, SW3_CS3, SW2_CS3, SW1_CS3}, // 2 + {0, SW3_CS4, SW2_CS4, SW1_CS4}, // 3 + {0, SW3_CS5, SW2_CS5, SW1_CS5}, // 4 + {0, SW3_CS6, SW2_CS6, SW1_CS6}, // 5 + {0, SW3_CS7, SW2_CS7, SW1_CS7}, // 6 + {0, SW3_CS8, SW2_CS8, SW1_CS8}, // 7 + {0, SW3_CS9, SW2_CS9, SW1_CS9}, // 8 + {0, SW3_CS10, SW2_CS10, SW1_CS10}, // 9 + {0, SW3_CS11, SW2_CS11, SW1_CS11}, // 0 + {0, SW3_CS12, SW2_CS12, SW1_CS12}, // - + {0, SW3_CS13, SW2_CS13, SW1_CS13}, // = + {0, SW3_CS14, SW2_CS14, SW1_CS14}, // Bksp + + {0, SW6_CS1, SW5_CS1, SW4_CS1}, // Tab + {0, SW6_CS2, SW5_CS2, SW4_CS2}, // Q + {0, SW6_CS3, SW5_CS3, SW4_CS3}, // W + {0, SW6_CS4, SW5_CS4, SW4_CS4}, // E + {0, SW6_CS5, SW5_CS5, SW4_CS5}, // R + {0, SW6_CS6, SW5_CS6, SW4_CS6}, // T + {0, SW6_CS7, SW5_CS7, SW4_CS7}, // Y + {0, SW6_CS8, SW5_CS8, SW4_CS8}, // U + {0, SW6_CS9, SW5_CS9, SW4_CS9}, // I + {0, SW6_CS10, SW5_CS10, SW4_CS10}, // O + {0, SW6_CS11, SW5_CS11, SW4_CS11}, // P + {0, SW6_CS12, SW5_CS12, SW4_CS12}, // [ + {0, SW6_CS13, SW5_CS13, SW4_CS13}, // ] + + {0, SW9_CS1, SW8_CS1, SW7_CS1}, // Caps + {0, SW9_CS2, SW8_CS2, SW7_CS2}, // A + {0, SW9_CS3, SW8_CS3, SW7_CS3}, // S + {0, SW9_CS4, SW8_CS4, SW7_CS4}, // D + {0, SW9_CS5, SW8_CS5, SW7_CS5}, // F + {0, SW9_CS6, SW8_CS6, SW7_CS6}, // G + {0, SW9_CS7, SW8_CS7, SW7_CS7}, // H + {0, SW9_CS8, SW8_CS8, SW7_CS8}, // J + {0, SW9_CS9, SW8_CS9, SW7_CS9}, // K + {0, SW9_CS10, SW8_CS10, SW7_CS10}, // L + {0, SW9_CS11, SW8_CS11, SW7_CS11}, // : + {0, SW9_CS12, SW8_CS12, SW7_CS12}, // ' + {0, SW9_CS13, SW8_CS13, SW7_CS13}, // NUHS + {0, SW9_CS14, SW8_CS14, SW7_CS14}, // Enter + + {0, SW12_CS1, SW11_CS1, SW10_CS1}, // LShift + {0, SW12_CS2, SW11_CS2, SW10_CS2}, // NUBS + {0, SW12_CS3, SW11_CS3, SW10_CS3}, // Z + {0, SW12_CS4, SW11_CS4, SW10_CS4}, // X + {0, SW12_CS5, SW11_CS5, SW10_CS5}, // C + {0, SW12_CS6, SW11_CS6, SW10_CS6}, // V + {0, SW12_CS7, SW11_CS7, SW10_CS7}, // B + {0, SW12_CS8, SW11_CS8, SW10_CS8}, // N + {0, SW12_CS9, SW11_CS9, SW10_CS9}, // M + {0, SW12_CS10, SW11_CS10, SW10_CS10}, // < + {0, SW12_CS11, SW11_CS11, SW10_CS11}, // > + {0, SW12_CS12, SW11_CS12, SW10_CS12}, // ? + {0, SW12_CS13, SW11_CS13, SW10_CS13}, // RShift + + {1, SW3_CS1, SW2_CS1, SW1_CS1}, // LCtrl + {1, SW3_CS2, SW2_CS2, SW1_CS2}, // LAlt + {1, SW3_CS3, SW2_CS3, SW1_CS3}, // Windows + {1, SW3_CS6, SW2_CS6, SW1_CS6}, // Space + {1, SW3_CS10, SW2_CS10, SW1_CS10}, // Fn1/RAlt hades/venus + {1, SW3_CS11, SW2_CS11, SW1_CS11}, // Fn2/Fn1 + {1, SW3_CS12, SW2_CS12, SW1_CS12}, // RCtrl/Fn2 + {1, SW3_CS13, SW2_CS13, SW1_CS13}, // LEFT/RCtrl +}; + +#endif /* RGB_MATRIX_ENABLE */ diff --git a/keyboards/durgod/venus/readme.md b/keyboards/durgod/venus/readme.md index c2228583a9..685a9d2bc0 100644 --- a/keyboards/durgod/venus/readme.md +++ b/keyboards/durgod/venus/readme.md @@ -1,3 +1,3 @@ # Venus -See: [Venus](../dgk6x/venus/readme.md) +See: [Venus ANSI](../dgk6x/venus_ansi/readme.md) and [Venus ISO](../dgk6x/venus_iso/readme.md) From c7ed9038d71275a98b490c3fc1df8217164666fe Mon Sep 17 00:00:00 2001 From: Aidan Smith Date: Mon, 6 Oct 2025 12:38:27 -0400 Subject: [PATCH 069/255] E7-V2 Implementation (#25594) --- keyboards/exclusive/e7v2/keyboard.json | 392 ++++++++++++++++++ .../exclusive/e7v2/keymaps/default/keymap.c | 30 ++ .../e7v2/keymaps/default_iso/keymap.c | 30 ++ keyboards/exclusive/e7v2/readme.md | 27 ++ keyboards/exclusive/readme.md | 1 + 5 files changed, 480 insertions(+) create mode 100644 keyboards/exclusive/e7v2/keyboard.json create mode 100644 keyboards/exclusive/e7v2/keymaps/default/keymap.c create mode 100644 keyboards/exclusive/e7v2/keymaps/default_iso/keymap.c create mode 100644 keyboards/exclusive/e7v2/readme.md diff --git a/keyboards/exclusive/e7v2/keyboard.json b/keyboards/exclusive/e7v2/keyboard.json new file mode 100644 index 0000000000..542237e1bf --- /dev/null +++ b/keyboards/exclusive/e7v2/keyboard.json @@ -0,0 +1,392 @@ +{ + "manufacturer": "Exclusive / E-Team", + "keyboard_name": "E7V2", + "maintainer": "Aidan Smith", + "bootloader": "atmel-dfu", + "diode_direction": "ROW2COL", + "features": { + "backlight": true, + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "ws2812": { + "pin": "E2" + }, + "rgblight": { + "driver": "ws2812", + "saturation_steps": 8, + "brightness_steps": 8, + "led_count": 54, + "animations": { + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "knight": true, + "christmas": true, + "static_gradient": true, + "alternating": true, + "twinkle": true + } + }, + "backlight": { + "pin": "B6", + "levels": 6 + }, + "matrix_pins": { + "cols": ["D0", "D1", "D2", "D3", "D5", "D4", "D6", "D7", "B4", "F7", "F6", "F5", "F4", "F1", "F0"], + "rows": ["C6", "B0", "B1", "B2", "B3", "B7"] + }, + "processor": "atmega32u4", + "url": "https://exclusive.run/collections/e7-v2", + "usb": { + "device_version": "1.0.0", + "pid": "0xE702", + "vid": "0x4558" + }, + "layouts": { + "LAYOUT_75_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.50, "y": 0}, + {"matrix": [0, 6], "x": 6.50, "y": 0}, + {"matrix": [0, 7], "x": 7.50, "y": 0}, + {"matrix": [0, 8], "x": 8.50, "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": [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": [5, 14], "x": 15.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, 12], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.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": [2, 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.25, "y": 4.5}, + {"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, 8], "x": 10, "y": 5.25, "w": 1.50}, + {"matrix": [5, 10], "x": 11.5, "y": 5.25, "w": 1.50}, + {"matrix": [5, 11], "x": 13.25, "y": 5.5}, + {"matrix": [5, 12], "x": 14.25, "y": 5.5}, + {"matrix": [5, 13], "x": 15.25, "y": 5.5} + ] + }, + "LAYOUT_75_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.50, "y": 0}, + {"matrix": [0, 6], "x": 6.50, "y": 0}, + {"matrix": [0, 7], "x": 7.50, "y": 0}, + {"matrix": [0, 8], "x": 8.50, "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": [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": [5, 14], "x": 15.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": 15.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": [2, 13], "x": 13.75, "y": 2.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": [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.25, "y": 4.5}, + {"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, 8], "x": 10, "y": 5.25, "w": 1.50}, + {"matrix": [5, 10], "x": 11.5, "y": 5.25, "w": 1.50}, + {"matrix": [5, 11], "x": 13.25, "y": 5.5}, + {"matrix": [5, 12], "x": 14.25, "y": 5.5}, + {"matrix": [5, 13], "x": 15.25, "y": 5.5} + ] + }, + "LAYOUT_75_ansi_split_bs": { + "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.50, "y": 0}, + {"matrix": [0, 6], "x": 6.50, "y": 0}, + {"matrix": [0, 7], "x": 7.50, "y": 0}, + {"matrix": [0, 8], "x": 8.50, "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": [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": [5, 14], "x": 15.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, 12], "x": 13.5, "y": 2.25, "w": 1.5}, + {"matrix": [2, 14], "x": 15.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": [2, 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.25, "y": 4.5}, + {"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, 8], "x": 10, "y": 5.25, "w": 1.50}, + {"matrix": [5, 10], "x": 11.5, "y": 5.25, "w": 1.50}, + {"matrix": [5, 11], "x": 13.25, "y": 5.5}, + {"matrix": [5, 12], "x": 14.25, "y": 5.5}, + {"matrix": [5, 13], "x": 15.25, "y": 5.5} + ] + }, + "LAYOUT_75_iso_split_bs": { + "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.50, "y": 0}, + {"matrix": [0, 6], "x": 6.50, "y": 0}, + {"matrix": [0, 7], "x": 7.50, "y": 0}, + {"matrix": [0, 8], "x": 8.50, "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": [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": [5, 14], "x": 15.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": 15.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": [2, 13], "x": 13.75, "y": 2.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": [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.25, "y": 4.5}, + {"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, 8], "x": 10, "y": 5.25, "w": 1.50}, + {"matrix": [5, 10], "x": 11.5, "y": 5.25, "w": 1.50}, + {"matrix": [5, 11], "x": 13.25, "y": 5.5}, + {"matrix": [5, 12], "x": 14.25, "y": 5.5}, + {"matrix": [5, 13], "x": 15.25, "y": 5.5} + ] + } + } +} diff --git a/keyboards/exclusive/e7v2/keymaps/default/keymap.c b/keyboards/exclusive/e7v2/keymaps/default/keymap.c new file mode 100644 index 0000000000..f41b387732 --- /dev/null +++ b/keyboards/exclusive/e7v2/keymaps/default/keymap.c @@ -0,0 +1,30 @@ +// 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│F11│F12│PSc│ │Del│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │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 │ GUI │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘ + */ + [0] = LAYOUT_75_ansi( + 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, KC_PSCR, + 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_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_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/exclusive/e7v2/keymaps/default_iso/keymap.c b/keyboards/exclusive/e7v2/keymaps/default_iso/keymap.c new file mode 100644 index 0000000000..e6cff42f3f --- /dev/null +++ b/keyboards/exclusive/e7v2/keymaps/default_iso/keymap.c @@ -0,0 +1,30 @@ +// 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│F11│F12│Del│ │PSC│ + * ├───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┴───┼───┤ + * │ ` │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│PgU│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ ENT │PgD│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐ ├───┘ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ # │ │ + * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤ + * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │ + * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┴┬──┴──┬───┼───┼───┐ + * │Ctrl│GUI │Alt │ │ Alt │ GUI │ ← │ ↓ │ → │ + * └────┴────┴────┴────────────────────────┴─────┴─────┴───┴───┴───┘ + */ + [0] = LAYOUT_75_iso( + 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, KC_PSCR, + 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_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_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_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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT + ) +}; diff --git a/keyboards/exclusive/e7v2/readme.md b/keyboards/exclusive/e7v2/readme.md new file mode 100644 index 0000000000..77345ede70 --- /dev/null +++ b/keyboards/exclusive/e7v2/readme.md @@ -0,0 +1,27 @@ +# E7-V2 + +![E7-V2](https://i.imgur.com/p7Gi1fZ.jpeg) + +The second revision of a 75% keyboard made by Exclusive and run in a Geekhack group buy. + +* Keyboard Maintainer: [AidanSmith.dev](https://github.com/Aidan-OS) +* Hardware Supported: E7-V2 QMK Solder PCB +* Hardware Availability: [Exclusive's Website](https://exclusive.run/collections/e7-v2) + +Make example for this keyboard (after setting up your build environment): + + make exclusive/e7v2:default + +Flashing example for this keyboard: + + make exclusive/e7v2: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/exclusive/readme.md b/keyboards/exclusive/readme.md index bee613bf45..7bfc559d79 100644 --- a/keyboards/exclusive/readme.md +++ b/keyboards/exclusive/readme.md @@ -7,5 +7,6 @@ All files related to firmware of keyboards designed by Exclusive. * [e6_rgb](./e6_rgb/): maintainer [astro](https://github.com/yulei) * [e6-v2](./e6v2/): maintainers [MechMerlin](https://github.com/mechmerlin), [amnesia0287](https://github.com/amnesia0287) * [e7-v1](./e7v1): maintainer [masterzen](https://github.com/masterzen) +* [e7-v2](./e7v2): [AidanSmith.dev](https://github.com/Aidan-OS) * [e6.5](./e65): maintainer [masterzen](https://github.com/masterzen) * [e8.5](./e85): maintainer [MechMerlin](https://github.com/mechmerlin) From 02cf2b56fdb7ce80de7c4f3e6e5708076f38aee1 Mon Sep 17 00:00:00 2001 From: "Martin W." Date: Mon, 6 Oct 2025 18:46:41 +0200 Subject: [PATCH 070/255] Add Royal Kludge RK61 (#25694) --- keyboards/royal_kludge/rk61/config.h | 11 + keyboards/royal_kludge/rk61/halconf.h | 9 + keyboards/royal_kludge/rk61/keyboard.json | 223 ++++++++++++++++++ .../rk61/keymaps/default/keymap.c | 111 +++++++++ keyboards/royal_kludge/rk61/mcuconf.h | 9 + keyboards/royal_kludge/rk61/readme.md | 25 ++ keyboards/royal_kludge/rk61/rules.mk | 1 + 7 files changed, 389 insertions(+) create mode 100644 keyboards/royal_kludge/rk61/config.h create mode 100644 keyboards/royal_kludge/rk61/halconf.h create mode 100644 keyboards/royal_kludge/rk61/keyboard.json create mode 100644 keyboards/royal_kludge/rk61/keymaps/default/keymap.c create mode 100644 keyboards/royal_kludge/rk61/mcuconf.h create mode 100644 keyboards/royal_kludge/rk61/readme.md create mode 100644 keyboards/royal_kludge/rk61/rules.mk diff --git a/keyboards/royal_kludge/rk61/config.h b/keyboards/royal_kludge/rk61/config.h new file mode 100644 index 0000000000..22c9d1d3e9 --- /dev/null +++ b/keyboards/royal_kludge/rk61/config.h @@ -0,0 +1,11 @@ +// Copyright 2025 QMK +// 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 + +#define CAPS_LOCK_LED_INDEX 40 diff --git a/keyboards/royal_kludge/rk61/halconf.h b/keyboards/royal_kludge/rk61/halconf.h new file mode 100644 index 0000000000..b7fd8398a2 --- /dev/null +++ b/keyboards/royal_kludge/rk61/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next + diff --git a/keyboards/royal_kludge/rk61/keyboard.json b/keyboards/royal_kludge/rk61/keyboard.json new file mode 100644 index 0000000000..d98ce4765b --- /dev/null +++ b/keyboards/royal_kludge/rk61/keyboard.json @@ -0,0 +1,223 @@ +{ + "manufacturer": "Royal Kludge", + "keyboard_name": "RK61", + "maintainer": "DEREFERENC3D", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 16 + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": false, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["A10", "A9", "B2", "A15", "B3", "B4", "B5", "B8", "B9", "C13", "C14", "C15", "A0", "A1"], + "rows": ["A6", "A5", "A4", "A3", "A2"] + }, + "processor": "STM32F072", + "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, + "starlight_smooth": true, + "typing_heatmap": true + }, + "default": { + "hue": 170, + "val": 150 + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 13], "x": 218, "y": 0, "flags": 1}, + {"matrix": [0, 12], "x": 193, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 177, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 161, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 145, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 129, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 113, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 97, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 81, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 64, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 48, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 32, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 16, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 24, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 56, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 73, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 89, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 105, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 121, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 137, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 153, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 169, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 185, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 202, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 222, "y": 16, "flags": 1}, + {"matrix": [2, 12], "x": 216, "y": 32, "flags": 1}, + {"matrix": [2, 11], "x": 189, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 173, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 157, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 141, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 125, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 109, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 93, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 77, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 44, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 28, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 10, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 36, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 52, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 69, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 85, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 101, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 117, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 133, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 149, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 181, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 212, "y": 48, "flags": 1}, + {"matrix": [4, 12], "x": 224, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 204, "y": 64, "flags": 1}, + {"matrix": [4, 9], "x": 184, "y": 64, "flags": 1}, + {"matrix": [4, 8], "x": 164, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 103, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 42, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 1} + ], + "max_brightness": 200, + "sleep": true + }, + "url": "http://en.rkgaming.com/", + "usb": { + "device_version": "1.0.1", + "pid": "0x6461", + "vid": "0x1480" + }, + "ws2812": { + "pin": "B15", + "driver": "spi" + }, + "community_layouts": ["60_ansi"], + "layouts": { + "LAYOUT_60_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": "\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": "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 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": 2.75}, + {"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}, + {"matrix": [4, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "AltGr", "matrix": [4, 8], "x": 10, "y": 4, "w": 1.25}, + {"label": "Menu", "matrix": [4, 9], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "Ctrl", "matrix": [4, 10], "x": 12.5, "y": 4, "w": 1.25}, + {"label": "Fn", "matrix": [4, 12], "x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/royal_kludge/rk61/keymaps/default/keymap.c b/keyboards/royal_kludge/rk61/keymaps/default/keymap.c new file mode 100644 index 0000000000..2efc47913b --- /dev/null +++ b/keyboards/royal_kludge/rk61/keymaps/default/keymap.c @@ -0,0 +1,111 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum layers { + WIN_BASE, + WIN_T, + WIN_ALT, + ARROW_FN, + LWIN_DIS, + WIN_FN, + WIN_T_FN, + WIN_ALT_FN, + MAC_BASE, + MAC_FN, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [WIN_BASE] = LAYOUT_60_ansi( + 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_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_UP, KC_RSFT, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_LEFT, KC_DOWN, KC_RIGHT, MO(WIN_FN) + ), + [WIN_FN] = LAYOUT_60_ansi( + 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_PSCR, KC_SCRL, KC_PAUS, _______, _______, RM_VALD, RM_VALU, RM_NEXT, + _______, _______, DF(MAC_BASE), _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, RM_SPDD, RM_SPDU, TG(ARROW_FN), + _______, _______, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, RM_HUEU, _______, _______, + DF(WIN_ALT), TG(LWIN_DIS), _______, _______, _______, _______, _______, _______ + ), + [WIN_T] = LAYOUT_60_ansi( + 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(WIN_T_FN) + ), + [WIN_T_FN] = LAYOUT_60_ansi( + KC_ESC, KC_MYCM, KC_WHOM, KC_MAIL, KC_CALC, KC_MSEL, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSPC, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, DF(MAC_BASE), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, TG(ARROW_FN), + DF(WIN_BASE), TG(LWIN_DIS), _______, _______, _______, _______, _______, _______ + ), + [WIN_ALT] = LAYOUT_60_ansi( + 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_PSCR, KC_SCRL, KC_PAUS, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGUP, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_DEL, KC_END, KC_PGDN, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, MO(WIN_ALT_FN) + ), + [WIN_ALT_FN] = LAYOUT_60_ansi( + KC_ESC, KC_MYCM, KC_WHOM, KC_MAIL, KC_CALC, KC_MSEL, KC_MSTP, KC_MPRV, KC_MPLY, KC_MNXT, KC_MUTE, KC_VOLD, KC_VOLU, KC_BSPC, + _______, _______, _______, _______, _______, _______, KC_Y, KC_U, KC_I, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_H, KC_J, KC_K, _______, _______, _______, TG(ARROW_FN), + _______, _______, _______, _______, _______, _______, KC_N, KC_M, KC_COMM, _______, _______, _______, + DF(WIN_T), TG(LWIN_DIS), _______, _______, _______, _______, _______, _______ + ), + [MAC_BASE] = LAYOUT_60_ansi( + 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_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_LOPT, KC_LCMD, KC_SPC, KC_RCMD, KC_APP, KC_RCTL, MO(MAC_FN) + ), + [MAC_FN] = LAYOUT_60_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, DF(WIN_BASE), _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, _______, + _______, _______, _______, _______, _______, KC_F1, KC_RCTL, KC_F2 + ), + [ARROW_FN] = LAYOUT_60_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_SLSH, _______, + _______, _______, _______, _______, KC_RALT, KC_APP, KC_RCTL, _______ + ), + [LWIN_DIS] = LAYOUT_60_ansi( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_NO, _______, _______, _______, _______, _______, _______ + ), +}; + +#ifdef CAPS_LOCK_LED_INDEX +bool rgb_matrix_indicators_user(void) { + if (host_keyboard_led_state().caps_lock) { + rgb_matrix_set_color(CAPS_LOCK_LED_INDEX, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + rgb_matrix_set_color(CAPS_LOCK_LED_INDEX, 0, 0, 0); + } + } + + if (layer_state_is(LWIN_DIS)) { + rgb_matrix_set_color(59, 255, 255, 255); + } else { + if (!rgb_matrix_get_flags()) { + rgb_matrix_set_color(59, 0, 0, 0); + } + } + + return false; +} +#endif diff --git a/keyboards/royal_kludge/rk61/mcuconf.h b/keyboards/royal_kludge/rk61/mcuconf.h new file mode 100644 index 0000000000..f459d17ee9 --- /dev/null +++ b/keyboards/royal_kludge/rk61/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2025 QMK +// 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/royal_kludge/rk61/readme.md b/keyboards/royal_kludge/rk61/readme.md new file mode 100644 index 0000000000..d8ba3a3a4f --- /dev/null +++ b/keyboards/royal_kludge/rk61/readme.md @@ -0,0 +1,25 @@ +# Royal Kludge RK61 + +![Royal Kludge RK61](https://imgur.com/9YoEEkH.jpg) + +* Keyboard Maintainer: [DEREFERENC3D](https://github.com/DEREFERENC3D) +* Hardware Supported: Royal Kludge RK61 - wired-only QMK version +* Hardware Availability: [RKGaming.com](https://en.rkgaming.com/product/43/), [Amazon.com](https://www.amazon.com/RK-ROYAL-KLUDGE-Mechanical-Ultra-Compact/dp/B0832LSV8N) + +Make example for this keyboard (after setting up your build environment): + + make royal_kludge/rk61:default + +Flashing example for this keyboard: + + make royal_kludge/rk61: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 (this one might be disabled on the stock firmware) +* **Physical reset button**: Briefly press the button on the PCB, located under the space bar keycap, to the right of the space bar's switch +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. On the stock firmware, VIA should allow it to be mapped. diff --git a/keyboards/royal_kludge/rk61/rules.mk b/keyboards/royal_kludge/rk61/rules.mk new file mode 100644 index 0000000000..fb3dcdbf7a --- /dev/null +++ b/keyboards/royal_kludge/rk61/rules.mk @@ -0,0 +1 @@ +DFU_SUFFIX_ARGS = -p FFFF -v FFFF From 0550830909e854d2ac0203905c861a868e82b289 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Mart=C3=ADnez?= <58857054+elpekenin@users.noreply.github.com> Date: Wed, 8 Oct 2025 04:10:38 +0200 Subject: [PATCH 071/255] [QP] Minor cleanup and support for RGB888 surface (#25706) Co-authored-by: Drashna Jaelre --- docs/quantum_painter.md | 2 + drivers/painter/comms/qp_comms_spi.c | 2 +- drivers/painter/generic/qp_surface.h | 10 ++ drivers/painter/generic/qp_surface_internal.h | 1 + drivers/painter/generic/qp_surface_rgb565.c | 2 +- drivers/painter/generic/qp_surface_rgb888.c | 143 ++++++++++++++++++ drivers/painter/ili9xxx/qp_ili9486.c | 2 +- drivers/painter/tft_panel/qp_tft_panel.c | 7 +- quantum/painter/qff.h | 10 +- quantum/painter/qgf.c | 2 +- quantum/painter/qgf.h | 16 +- quantum/painter/qp_draw_core.c | 22 +-- quantum/painter/qp_draw_ellipse.c | 2 +- quantum/painter/qp_internal.h | 8 +- quantum/painter/qp_internal_formats.h | 15 +- quantum/painter/rules.mk | 3 +- 16 files changed, 194 insertions(+), 53 deletions(-) create mode 100644 drivers/painter/generic/qp_surface_rgb888.c diff --git a/docs/quantum_painter.md b/docs/quantum_painter.md index bbe8944516..fbc72cb053 100644 --- a/docs/quantum_painter.md +++ b/docs/quantum_painter.md @@ -534,6 +534,8 @@ QUANTUM_PAINTER_DRIVERS += surface Creating a surface in firmware can then be done with the following APIs: ```c +// 24bpp RGB888 surface: +painter_device_t qp_make_rgb888_surface(uint16_t panel_width, uint16_t panel_height, void *buffer); // 16bpp RGB565 surface: painter_device_t qp_make_rgb565_surface(uint16_t panel_width, uint16_t panel_height, void *buffer); // 1bpp monochrome surface: diff --git a/drivers/painter/comms/qp_comms_spi.c b/drivers/painter/comms/qp_comms_spi.c index 4e6067394b..8f4fc12a3c 100644 --- a/drivers/painter/comms/qp_comms_spi.c +++ b/drivers/painter/comms/qp_comms_spi.c @@ -36,7 +36,7 @@ uint32_t qp_comms_spi_send_data(painter_device_t device, const void *data, uint3 const uint32_t max_msg_length = 1024; while (bytes_remaining > 0) { - uint32_t bytes_this_loop = QP_MIN(bytes_remaining, max_msg_length); + uint32_t bytes_this_loop = MIN(bytes_remaining, max_msg_length); spi_transmit(p, bytes_this_loop); p += bytes_this_loop; bytes_remaining -= bytes_this_loop; diff --git a/drivers/painter/generic/qp_surface.h b/drivers/painter/generic/qp_surface.h index a291793649..f602a8770b 100644 --- a/drivers/painter/generic/qp_surface.h +++ b/drivers/painter/generic/qp_surface.h @@ -50,6 +50,16 @@ painter_device_t qp_make_rgb565_surface(uint16_t panel_width, uint16_t panel_hei */ painter_device_t qp_make_mono1bpp_surface(uint16_t panel_width, uint16_t panel_height, void *buffer); +/** + * Factory method for an RGB888 surface (aka framebuffer). + * + * @param panel_width[in] the width of the display panel + * @param panel_height[in] the height of the display panel + * @param buffer[in] pointer to a preallocated uint8_t buffer of size `SURFACE_REQUIRED_BUFFER_BYTE_SIZE(panel_width, panel_height, 16)` + * @return the device handle used with all drawing routines in Quantum Painter + */ +painter_device_t qp_make_rgb888_surface(uint16_t panel_width, uint16_t panel_height, void *buffer); + /** * Helper method to draw the contents of the framebuffer to the target device. * diff --git a/drivers/painter/generic/qp_surface_internal.h b/drivers/painter/generic/qp_surface_internal.h index 71f82e924d..e05a58594b 100644 --- a/drivers/painter/generic/qp_surface_internal.h +++ b/drivers/painter/generic/qp_surface_internal.h @@ -45,6 +45,7 @@ typedef struct surface_painter_device_t { void * buffer; uint8_t * u8buffer; uint16_t *u16buffer; + rgb_t * rgbbuffer; }; // Manually manage the viewport for streaming pixel data to the display diff --git a/drivers/painter/generic/qp_surface_rgb565.c b/drivers/painter/generic/qp_surface_rgb565.c index c5b351311a..2426d53c0c 100644 --- a/drivers/painter/generic/qp_surface_rgb565.c +++ b/drivers/painter/generic/qp_surface_rgb565.c @@ -52,7 +52,7 @@ static bool qp_surface_pixdata_rgb565(painter_device_t device, const void *pixel // Pixel colour conversion static bool qp_surface_palette_convert_rgb565_swapped(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) { for (int16_t i = 0; i < palette_size; ++i) { - rgb_t rgb = hsv_to_rgb_nocie((hsv_t){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v}); + rgb_t rgb = hsv_to_rgb_nocie(palette[i].hsv888); uint16_t rgb565 = (((uint16_t)rgb.r) >> 3) << 11 | (((uint16_t)rgb.g) >> 2) << 5 | (((uint16_t)rgb.b) >> 3); palette[i].rgb565 = __builtin_bswap16(rgb565); } diff --git a/drivers/painter/generic/qp_surface_rgb888.c b/drivers/painter/generic/qp_surface_rgb888.c new file mode 100644 index 0000000000..68c824b0e4 --- /dev/null +++ b/drivers/painter/generic/qp_surface_rgb888.c @@ -0,0 +1,143 @@ +// Copyright 2022 Nick Brassel (@tzarc) +// SPDX-License-Identifier: GPL-2.0-or-later + +#ifdef QUANTUM_PAINTER_SURFACE_ENABLE + +# include "color.h" +# include "qp_draw.h" +# include "qp_surface_internal.h" +# include "qp_comms_dummy.h" + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// Surface driver impl: rgb888 + +static inline void setpixel_rgb888(surface_painter_device_t *surface, uint16_t x, uint16_t y, rgb_t rgb888) { + uint16_t w = surface->base.panel_width; + uint16_t h = surface->base.panel_height; + + // Drop out if it's off-screen + if (x >= w || y >= h) { + return; + } + + // Skip messing with the dirty info if the original value already matches + if (memcmp(&surface->rgbbuffer[y * w + x], &rgb888, sizeof(rgb_t)) != 0) { + // Update the dirty region + qp_surface_update_dirty(&surface->dirty, x, y); + + // Update the pixel data in the buffer + surface->rgbbuffer[y * w + x] = rgb888; + } +} + +static inline void append_pixel_rgb888(surface_painter_device_t *surface, rgb_t rgb888) { + setpixel_rgb888(surface, surface->viewport.pixdata_x, surface->viewport.pixdata_y, rgb888); + qp_surface_increment_pixdata_location(&surface->viewport); +} + +static inline void stream_pixdata_rgb888(surface_painter_device_t *surface, const rgb_t *data, uint32_t native_pixel_count) { + for (uint32_t pixel_counter = 0; pixel_counter < native_pixel_count; ++pixel_counter) { + append_pixel_rgb888(surface, data[pixel_counter]); + } +} + +// Stream pixel data to the current write position in GRAM +static bool qp_surface_pixdata_rgb888(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count) { + painter_driver_t * driver = (painter_driver_t *)device; + surface_painter_device_t *surface = (surface_painter_device_t *)driver; + stream_pixdata_rgb888(surface, (const rgb_t *)pixel_data, native_pixel_count); + return true; +} + +// Pixel colour conversion +static bool qp_surface_palette_convert_rgb888(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) { + for (int16_t i = 0; i < palette_size; ++i) { + palette[i].rgb888 = hsv_to_rgb_nocie(palette[i].hsv888); + } + return true; +} + +// Append pixels to the target location, keyed by the pixel index +static bool qp_surface_append_pixels_rgb888(painter_device_t device, uint8_t *target_buffer, qp_pixel_t *palette, uint32_t pixel_offset, uint32_t pixel_count, uint8_t *palette_indices) { + rgb_t *buf = (rgb_t *)target_buffer; + for (uint32_t i = 0; i < pixel_count; ++i) { + buf[pixel_offset + i] = palette[palette_indices[i]].rgb888; + } + return true; +} + +static bool rgb888_target_pixdata_transfer(painter_driver_t *surface_driver, painter_driver_t *target_driver, uint16_t x, uint16_t y, bool entire_surface) { + surface_painter_device_t *surface_handle = (surface_painter_device_t *)surface_driver; + + uint16_t l = entire_surface ? 0 : surface_handle->dirty.l; + uint16_t t = entire_surface ? 0 : surface_handle->dirty.t; + uint16_t r = entire_surface ? (surface_handle->base.panel_width - 1) : surface_handle->dirty.r; + uint16_t b = entire_surface ? (surface_handle->base.panel_height - 1) : surface_handle->dirty.b; + + // Set the target drawing area + bool ok = qp_viewport((painter_device_t)target_driver, x + l, y + t, x + r, y + b); + if (!ok) { + qp_dprintf("rgb888_target_pixdata_transfer: fail (could not set target viewport)\n"); + return false; + } + + // Housekeeping of the amount of pixels to transfer + uint32_t total_pixel_count = (8 * QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE) / surface_driver->native_bits_per_pixel; + uint32_t pixel_counter = 0; + rgb_t * target_buffer = (rgb_t *)qp_internal_global_pixdata_buffer; + + // Fill the global pixdata area so that we can start transferring to the panel + for (uint16_t y = t; y <= b; ++y) { + for (uint16_t x = l; x <= r; ++x) { + // Update the target buffer + target_buffer[pixel_counter++] = surface_handle->rgbbuffer[y * surface_handle->base.panel_width + x]; + + // If we've accumulated enough data, send it + if (pixel_counter == total_pixel_count) { + ok = qp_pixdata((painter_device_t)target_driver, qp_internal_global_pixdata_buffer, pixel_counter); + if (!ok) { + qp_dprintf("rgb888_target_pixdata_transfer: fail (could not stream pixdata to target)\n"); + return false; + } + // Reset the counter + pixel_counter = 0; + } + } + } + + // If there's any leftover data, send it + if (pixel_counter > 0) { + ok = qp_pixdata((painter_device_t)target_driver, qp_internal_global_pixdata_buffer, pixel_counter); + if (!ok) { + qp_dprintf("rgb888_target_pixdata_transfer: fail (could not stream pixdata to target)\n"); + return false; + } + } + + return true; +} + +static bool qp_surface_append_pixdata_rgb888(painter_device_t device, uint8_t *target_buffer, uint32_t pixdata_offset, uint8_t pixdata_byte) { + target_buffer[pixdata_offset] = pixdata_byte; + return true; +} + +const surface_painter_driver_vtable_t rgb888_surface_driver_vtable = { + .base = + { + .init = qp_surface_init, + .power = qp_surface_power, + .clear = qp_surface_clear, + .flush = qp_surface_flush, + .pixdata = qp_surface_pixdata_rgb888, + .viewport = qp_surface_viewport, + .palette_convert = qp_surface_palette_convert_rgb888, + .append_pixels = qp_surface_append_pixels_rgb888, + .append_pixdata = qp_surface_append_pixdata_rgb888, + }, + .target_pixdata_transfer = rgb888_target_pixdata_transfer, +}; + +SURFACE_FACTORY_FUNCTION_IMPL(qp_make_rgb888_surface, rgb888_surface_driver_vtable, 24); + +#endif // QUANTUM_PAINTER_SURFACE_ENABLE diff --git a/drivers/painter/ili9xxx/qp_ili9486.c b/drivers/painter/ili9xxx/qp_ili9486.c index 48db779c04..5a2e226668 100644 --- a/drivers/painter/ili9xxx/qp_ili9486.c +++ b/drivers/painter/ili9xxx/qp_ili9486.c @@ -90,7 +90,7 @@ static uint32_t qp_comms_spi_send_data_odd_cs_pulse(painter_device_t device, con gpio_write_pin_high(comms_config->dc_pin); while (bytes_remaining > 0) { - uint32_t bytes_this_loop = QP_MIN(bytes_remaining, max_msg_length); + uint32_t bytes_this_loop = MIN(bytes_remaining, max_msg_length); bool odd_bytes = bytes_this_loop & 1; // send data diff --git a/drivers/painter/tft_panel/qp_tft_panel.c b/drivers/painter/tft_panel/qp_tft_panel.c index c8e33343d4..a6c72b4f6f 100644 --- a/drivers/painter/tft_panel/qp_tft_panel.c +++ b/drivers/painter/tft_panel/qp_tft_panel.c @@ -90,7 +90,7 @@ bool qp_tft_panel_pixdata(painter_device_t device, const void *pixel_data, uint3 bool qp_tft_panel_palette_convert_rgb565_swapped(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) { for (int16_t i = 0; i < palette_size; ++i) { - rgb_t rgb = hsv_to_rgb_nocie((hsv_t){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v}); + rgb_t rgb = hsv_to_rgb_nocie(palette[i].hsv888); uint16_t rgb565 = (((uint16_t)rgb.r) >> 3) << 11 | (((uint16_t)rgb.g) >> 2) << 5 | (((uint16_t)rgb.b) >> 3); palette[i].rgb565 = __builtin_bswap16(rgb565); } @@ -99,10 +99,7 @@ bool qp_tft_panel_palette_convert_rgb565_swapped(painter_device_t device, int16_ bool qp_tft_panel_palette_convert_rgb888(painter_device_t device, int16_t palette_size, qp_pixel_t *palette) { for (int16_t i = 0; i < palette_size; ++i) { - rgb_t rgb = hsv_to_rgb_nocie((hsv_t){palette[i].hsv888.h, palette[i].hsv888.s, palette[i].hsv888.v}); - palette[i].rgb888.r = rgb.r; - palette[i].rgb888.g = rgb.g; - palette[i].rgb888.b = rgb.b; + palette[i].rgb888 = hsv_to_rgb_nocie(palette[i].hsv888); } return true; } diff --git a/quantum/painter/qff.h b/quantum/painter/qff.h index ed88508d73..f5c59b315b 100644 --- a/quantum/painter/qff.h +++ b/quantum/painter/qff.h @@ -22,7 +22,7 @@ #define QFF_FONT_DESCRIPTOR_TYPEID 0x00 -typedef struct QP_PACKED qff_font_descriptor_v1_t { +typedef struct PACKED qff_font_descriptor_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x00, .neg_type_id = (~0x00), .length = 20 } uint32_t magic : 24; // constant, equal to 0x464651 ("QFF") uint8_t qff_version; // constant, equal to 0x01 @@ -51,13 +51,13 @@ STATIC_ASSERT(sizeof(qff_font_descriptor_v1_t) == (sizeof(qgf_block_header_v1_t) #define QFF_GLYPH_OFFSET_BITS 18 #define QFF_GLYPH_OFFSET_MASK (((1 << QFF_GLYPH_OFFSET_BITS) - 1) << QFF_GLYPH_WIDTH_BITS) -typedef struct QP_PACKED qff_ascii_glyph_v1_t { +typedef struct PACKED qff_ascii_glyph_v1_t { uint32_t value : 24; // Uses QFF_GLYPH_*_(BITS|MASK) as bitfield ordering is compiler-defined } qff_ascii_glyph_v1_t; STATIC_ASSERT(sizeof(qff_ascii_glyph_v1_t) == 3, "qff_ascii_glyph_v1_t must be 3 bytes in v1 of QFF"); -typedef struct QP_PACKED qff_ascii_glyph_table_v1_t { +typedef struct PACKED qff_ascii_glyph_table_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x01, .neg_type_id = (~0x01), .length = 285 } qff_ascii_glyph_v1_t glyph[95]; // 95 glyphs, 0x20..0x7E } qff_ascii_glyph_table_v1_t; @@ -69,14 +69,14 @@ STATIC_ASSERT(sizeof(qff_ascii_glyph_table_v1_t) == (sizeof(qgf_block_header_v1_ #define QFF_UNICODE_GLYPH_DESCRIPTOR_TYPEID 0x02 -typedef struct QP_PACKED qff_unicode_glyph_v1_t { +typedef struct PACKED qff_unicode_glyph_v1_t { uint32_t code_point : 24; uint32_t value : 24; // Uses QFF_GLYPH_*_(BITS|MASK) as bitfield ordering is compiler-defined } qff_unicode_glyph_v1_t; STATIC_ASSERT(sizeof(qff_unicode_glyph_v1_t) == 6, "qff_unicode_glyph_v1_t must be 6 bytes in v1 of QFF"); -typedef struct QP_PACKED qff_unicode_glyph_table_v1_t { +typedef struct PACKED qff_unicode_glyph_table_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x02, .neg_type_id = (~0x02), .length = (N * 6) } qff_unicode_glyph_v1_t glyph[0]; // Extent of '0' signifies that this struct is immediately followed by the glyph data } qff_unicode_glyph_table_v1_t; diff --git a/quantum/painter/qgf.c b/quantum/painter/qgf.c index 07c3f80314..e5a1895b74 100644 --- a/quantum/painter/qgf.c +++ b/quantum/painter/qgf.c @@ -26,7 +26,7 @@ bool qgf_validate_block_header(qgf_block_header_v1_t *desc, uint8_t expected_typ bool qgf_parse_format(qp_image_format_t format, uint8_t *bpp, bool *has_palette, bool *is_panel_native) { // clang-format off - static const struct QP_PACKED { + static const struct PACKED { uint8_t bpp; bool has_palette; bool is_panel_native; diff --git a/quantum/painter/qgf.h b/quantum/painter/qgf.h index a1e245f15d..87a9124f27 100644 --- a/quantum/painter/qgf.h +++ b/quantum/painter/qgf.h @@ -19,7 +19,7 @@ ///////////////////////////////////////// // Common block header -typedef struct QP_PACKED qgf_block_header_v1_t { +typedef struct PACKED qgf_block_header_v1_t { uint8_t type_id; // See each respective block type below. uint8_t neg_type_id; // Negated type ID, used for detecting parsing errors. uint32_t length : 24; // 24-bit blob length, allowing for block sizes of a maximum of 16MB. @@ -32,7 +32,7 @@ STATIC_ASSERT(sizeof(qgf_block_header_v1_t) == 5, "qgf_block_header_v1_t must be #define QGF_GRAPHICS_DESCRIPTOR_TYPEID 0x00 -typedef struct QP_PACKED qgf_graphics_descriptor_v1_t { +typedef struct PACKED qgf_graphics_descriptor_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x00, .neg_type_id = (~0x00), .length = 18 } uint32_t magic : 24; // constant, equal to 0x464751 ("QGF") uint8_t qgf_version; // constant, equal to 0x01 @@ -52,7 +52,7 @@ STATIC_ASSERT(sizeof(qgf_graphics_descriptor_v1_t) == (sizeof(qgf_block_header_v #define QGF_FRAME_OFFSET_DESCRIPTOR_TYPEID 0x01 -typedef struct QP_PACKED qgf_frame_offsets_v1_t { +typedef struct PACKED qgf_frame_offsets_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x01, .neg_type_id = (~0x01), .length = (N * sizeof(uint32_t)) } uint32_t offset[0]; // '0' signifies that this struct is immediately followed by the frame offsets } qgf_frame_offsets_v1_t; @@ -64,7 +64,7 @@ STATIC_ASSERT(sizeof(qgf_frame_offsets_v1_t) == sizeof(qgf_block_header_v1_t), " #define QGF_FRAME_DESCRIPTOR_TYPEID 0x02 -typedef struct QP_PACKED qgf_frame_v1_t { +typedef struct PACKED qgf_frame_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x02, .neg_type_id = (~0x02), .length = 6 } qp_image_format_t format : 8; // Frame format, see qp_internal_formats.h. uint8_t flags; // Frame flags, see below. @@ -83,7 +83,7 @@ STATIC_ASSERT(sizeof(qgf_frame_v1_t) == (sizeof(qgf_block_header_v1_t) + 6), "qg #define QGF_FRAME_PALETTE_DESCRIPTOR_TYPEID 0x03 -typedef struct QP_PACKED qgf_palette_entry_v1_t { +typedef struct PACKED qgf_palette_entry_v1_t { uint8_t h; // hue component: `[0,360)` degrees is mapped to `[0,255]` uint8_t. uint8_t s; // saturation component: `[0,1]` is mapped to `[0,255]` uint8_t. uint8_t v; // value component: `[0,1]` is mapped to `[0,255]` uint8_t. @@ -91,7 +91,7 @@ typedef struct QP_PACKED qgf_palette_entry_v1_t { STATIC_ASSERT(sizeof(qgf_palette_entry_v1_t) == 3, "Palette entry is not 3 bytes in size"); -typedef struct QP_PACKED qgf_palette_v1_t { +typedef struct PACKED qgf_palette_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x03, .neg_type_id = (~0x03), .length = (N * 3 * sizeof(uint8_t)) } qgf_palette_entry_v1_t hsv[0]; // N * hsv, where N is the number of palette entries depending on the frame format in the descriptor } qgf_palette_v1_t; @@ -103,7 +103,7 @@ STATIC_ASSERT(sizeof(qgf_palette_v1_t) == sizeof(qgf_block_header_v1_t), "qgf_pa #define QGF_FRAME_DELTA_DESCRIPTOR_TYPEID 0x04 -typedef struct QP_PACKED qgf_delta_v1_t { +typedef struct PACKED qgf_delta_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x04, .neg_type_id = (~0x04), .length = 8 } uint16_t left; // The left pixel location to draw the delta image uint16_t top; // The top pixel location to draw the delta image @@ -118,7 +118,7 @@ STATIC_ASSERT(sizeof(qgf_delta_v1_t) == (sizeof(qgf_block_header_v1_t) + 8), "qg #define QGF_FRAME_DATA_DESCRIPTOR_TYPEID 0x05 -typedef struct QP_PACKED qgf_data_v1_t { +typedef struct PACKED qgf_data_v1_t { qgf_block_header_v1_t header; // = { .type_id = 0x05, .neg_type_id = (~0x05), .length = N } uint8_t data[0]; // 0 signifies that this struct is immediately followed by the length of data specified in the header } qgf_data_v1_t; diff --git a/quantum/painter/qp_draw_core.c b/quantum/painter/qp_draw_core.c index 852abb19e8..3958045943 100644 --- a/quantum/painter/qp_draw_core.c +++ b/quantum/painter/qp_draw_core.c @@ -52,7 +52,7 @@ bool qp_internal_setpixel_impl(painter_device_t device, uint16_t x, uint16_t y) void qp_internal_fill_pixdata(painter_device_t device, uint32_t num_pixels, uint8_t hue, uint8_t sat, uint8_t val) { painter_driver_t *driver = (painter_driver_t *)device; uint32_t pixels_in_pixdata = qp_internal_num_pixels_in_buffer(device); - num_pixels = QP_MIN(pixels_in_pixdata, num_pixels); + num_pixels = MIN(pixels_in_pixdata, num_pixels); // Convert the color to native pixel format qp_pixel_t color = {.hsv888 = {.h = hue, .s = sat, .v = val}}; @@ -232,17 +232,17 @@ bool qp_internal_fillrect_helper_impl(painter_device_t device, uint16_t left, ui uint32_t pixels_in_pixdata = qp_internal_num_pixels_in_buffer(device); painter_driver_t *driver = (painter_driver_t *)device; - uint16_t l = QP_MIN(left, right); - uint16_t r = QP_MAX(left, right); - uint16_t t = QP_MIN(top, bottom); - uint16_t b = QP_MAX(top, bottom); + uint16_t l = MIN(left, right); + uint16_t r = MAX(left, right); + uint16_t t = MIN(top, bottom); + uint16_t b = MAX(top, bottom); uint16_t w = r - l + 1; uint16_t h = b - t + 1; uint32_t remaining = w * h; driver->driver_vtable->viewport(device, l, t, r, b); while (remaining > 0) { - uint32_t transmit = QP_MIN(remaining, pixels_in_pixdata); + uint32_t transmit = MIN(remaining, pixels_in_pixdata); if (!driver->driver_vtable->pixdata(device, qp_internal_global_pixdata_buffer, transmit)) { return false; } @@ -260,10 +260,10 @@ bool qp_rect(painter_device_t device, uint16_t left, uint16_t top, uint16_t righ } // Cater for cases where people have submitted the coordinates backwards - uint16_t l = QP_MIN(left, right); - uint16_t r = QP_MAX(left, right); - uint16_t t = QP_MIN(top, bottom); - uint16_t b = QP_MAX(top, bottom); + uint16_t l = MIN(left, right); + uint16_t r = MAX(left, right); + uint16_t t = MIN(top, bottom); + uint16_t b = MAX(top, bottom); uint16_t w = r - l + 1; uint16_t h = b - t + 1; @@ -281,7 +281,7 @@ bool qp_rect(painter_device_t device, uint16_t left, uint16_t top, uint16_t righ ret = qp_internal_fillrect_helper_impl(device, l, t, r, b); } else { // Fill up the pixdata buffer with the required number of native pixels - qp_internal_fill_pixdata(device, QP_MAX(w, h), hue, sat, val); + qp_internal_fill_pixdata(device, MAX(w, h), hue, sat, val); // Draw 4x filled single-width rects to create an outline if (!qp_internal_fillrect_helper_impl(device, l, t, r, t) || !qp_internal_fillrect_helper_impl(device, l, b, r, b) || !qp_internal_fillrect_helper_impl(device, l, t + 1, l, b - 1) || !qp_internal_fillrect_helper_impl(device, r, t + 1, r, b - 1)) { diff --git a/quantum/painter/qp_draw_ellipse.c b/quantum/painter/qp_draw_ellipse.c index 9e77bca8b0..22f019d179 100644 --- a/quantum/painter/qp_draw_ellipse.c +++ b/quantum/painter/qp_draw_ellipse.c @@ -75,7 +75,7 @@ bool qp_ellipse(painter_device_t device, uint16_t x, uint16_t y, uint16_t sizex, int16_t dx = 0; int16_t dy = ((int16_t)sizey); - qp_internal_fill_pixdata(device, QP_MAX(sizex, sizey), hue, sat, val); + qp_internal_fill_pixdata(device, MAX(sizex, sizey), hue, sat, val); if (!qp_comms_start(device)) { qp_dprintf("qp_ellipse: fail (could not start comms)\n"); diff --git a/quantum/painter/qp_internal.h b/quantum/painter/qp_internal.h index e7a6d113c5..52b1b5c69d 100644 --- a/quantum/painter/qp_internal.h +++ b/quantum/painter/qp_internal.h @@ -5,17 +5,11 @@ #include "quantum.h" #include "qp.h" +#include "util.h" // PACKED/MIN/MAX //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Helpers -// Mark certain types that there should be no padding bytes between members. -#define QP_PACKED __attribute__((packed)) - -// Min/max defines -#define QP_MIN(X, Y) (((X) < (Y)) ? (X) : (Y)) -#define QP_MAX(X, Y) (((X) > (Y)) ? (X) : (Y)) - #ifdef QUANTUM_PAINTER_DEBUG # include # include diff --git a/quantum/painter/qp_internal_formats.h b/quantum/painter/qp_internal_formats.h index bd7105cab2..28cff0cd61 100644 --- a/quantum/painter/qp_internal_formats.h +++ b/quantum/painter/qp_internal_formats.h @@ -3,6 +3,7 @@ #pragma once +#include "color.h" #include "compiler_support.h" #include "qp_internal.h" @@ -10,21 +11,13 @@ // Quantum Painter pixel formats // Datatype containing a pixel's color. The internal member used is dependent on the external context. -typedef union QP_PACKED qp_pixel_t { +typedef union PACKED qp_pixel_t { uint8_t mono; uint8_t palette_idx; - struct QP_PACKED { - uint8_t h; - uint8_t s; - uint8_t v; - } hsv888; + hsv_t hsv888; - struct QP_PACKED { - uint8_t r; - uint8_t g; - uint8_t b; - } rgb888; + rgb_t rgb888; uint16_t rgb565; diff --git a/quantum/painter/rules.mk b/quantum/painter/rules.mk index 10c2698092..2c5bc17eed 100644 --- a/quantum/painter/rules.mk +++ b/quantum/painter/rules.mk @@ -247,7 +247,8 @@ ifeq ($(strip $(QUANTUM_PAINTER_NEEDS_SURFACE)), yes) SRC += \ $(DRIVER_PATH)/painter/generic/qp_surface_common.c \ $(DRIVER_PATH)/painter/generic/qp_surface_mono1bpp.c \ - $(DRIVER_PATH)/painter/generic/qp_surface_rgb565.c + $(DRIVER_PATH)/painter/generic/qp_surface_rgb565.c \ + $(DRIVER_PATH)/painter/generic/qp_surface_rgb888.c endif # If dummy comms is needed, set up the required files From 0aae222ab6fd15355e5bc3b113b05484373cc8b1 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Wed, 8 Oct 2025 08:00:50 -0600 Subject: [PATCH 072/255] Fixup `kprepublic/bm60hsrgb_poker/rev2` (#25649) Fixup kprepublic/bm60hsrgb/rev2 - Remove RGBLight configuration and throw error if RGBLight & RGB Matrix are enabled together - the WS2812 driver cannot be used for RGBLight as it is being used by this keyboard's custom RGB Matrix driver - Migrate RGB Matrix configuration to DD - Migrate default keymap to JSON - Use short SPDX license headers --- .../kprepublic/bm60hsrgb_poker/rev2/config.h | 28 +----- .../bm60hsrgb_poker/rev2/keyboard.json | 93 ++++++++++++++----- .../rev2/keymaps/default/keymap.c | 35 ------- .../rev2/keymaps/default/keymap.json | 21 +++++ .../kprepublic/bm60hsrgb_poker/rev2/rev2.c | 69 ++------------ .../kprepublic/bm60hsrgb_poker/rev2/rules.mk | 6 +- 6 files changed, 103 insertions(+), 149 deletions(-) delete mode 100644 keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.c create mode 100644 keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.json diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h index 843c5b2625..52d273230f 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/config.h @@ -1,29 +1,7 @@ -/* Copyright 2021 bdtc123 - * - * 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 . - */ +// Copyright 2021 bdtc123 +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_LED_COUNT 61 - -// Underglow LEDs are WS2812, but someone might want to use RGBLIGHT for them; -// don't use those LEDs in RGB Matrix in that case. -#ifdef RGBLIGHT_ENABLE -# define WS2812_LED_COUNT 0 -#else -# define WS2812_LED_COUNT 6 -#endif - -#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_COUNT) +#define WS2812_LED_COUNT 6 diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json index f3edf59fec..e5bb84c8ff 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keyboard.json @@ -56,29 +56,78 @@ "solid_multisplash": true }, "driver": "custom", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 9}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 18, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 30, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 60, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 90, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 105, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 120, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 135, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 150, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 165, "y": 48, "flags": 4}, + {"matrix": [3, 13], "x": 191, "y": 48, "flags": 1}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"x": 28, "y": 40, "flags": 2}, + {"x": 62, "y": 40, "flags": 2}, + {"x": 96, "y": 40, "flags": 2}, + {"x": 130, "y": 40, "flags": 2}, + {"x": 164, "y": 40, "flags": 2}, + {"x": 198, "y": 40, "flags": 2} + ], "max_brightness": 120, "sleep": true }, - "rgblight": { - "saturation_steps": 8, - "brightness_steps": 8, - "led_count": 6, - "max_brightness": 150, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "rgb_test": true, - "alternating": true - }, - "default": { - "animation": "rainbow_mood" - } - }, "matrix_pins": { "cols": ["B2", "B3", "B7", "B0", "B1", "F7", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7"], "rows": ["E6", "D2", "D3", "D5", "F6"] @@ -114,7 +163,6 @@ {"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, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -129,7 +177,6 @@ {"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}, @@ -143,7 +190,6 @@ {"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, 1], "x": 2.25, "y": 3}, {"matrix": [3, 2], "x": 3.25, "y": 3}, @@ -156,7 +202,6 @@ {"matrix": [3, 9], "x": 10.25, "y": 3}, {"matrix": [3, 10], "x": 11.25, "y": 3}, {"matrix": [3, 13], "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}, diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.c deleted file mode 100644 index 637d49d467..0000000000 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2021 bdtc123 - * - * 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( - 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_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_RGUI, KC_RCTL - ), - [1] = LAYOUT_60_ansi( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ), - -}; diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.json b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.json new file mode 100644 index 0000000000..98e6b5a609 --- /dev/null +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/keymaps/default/keymap.json @@ -0,0 +1,21 @@ +{ + "keyboard": "kprepublic/bm60hsrgb_poker/rev2", + "keymap": "default", + "layout": "LAYOUT_60_ansi", + "layers": [ + [ + "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_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_RGUI", "KC_RCTL" + ], + [ + "_______", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "QK_BOOT", + "_______", "RM_TOGG", "RM_NEXT", "RM_HUEU", "RM_HUED", "RM_SATU", "RM_SATD", "RM_VALU", "RM_VALD", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "NK_TOGG", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______" + ] + ] +} diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c index 5766942b34..865754b423 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rev2.c @@ -1,26 +1,18 @@ -/* Copyright 2021 bdtc123 - * - * 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 . - */ +// Copyright 2021 bdtc123 +// SPDX-License-Identifier: GPL-2.0-or-later #include "quantum.h" +#if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) +# error "RGBLight must not be enabled due to this keyboard's custom RGB Matrix driver" +#endif + #ifdef RGB_MATRIX_ENABLE # include "i2c_master.h" # include "is31fl3733.h" # include "ws2812.h" +// clang-format off const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW2_CS1, SW1_CS1, SW3_CS1 }, { 0, SW2_CS2, SW1_CS2, SW3_CS2 }, @@ -88,44 +80,7 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW11_CS12, SW10_CS12, SW12_CS12 }, { 0, SW5_CS16, SW4_CS16, SW6_CS16 } }; - -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, NO_LED, NO_LED, 52 }, - { 53, 54, 55, NO_LED, NO_LED, 56, NO_LED, NO_LED, NO_LED, 57, 58, 59, NO_LED, 60 } - }, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 210, 64 }, { 225, 64 } -# if WS2812_LED_COUNT > 0 - ,{ 28, 40}, { 62, 40}, { 96, 40}, {130, 40}, {164, 40}, {198, 40} -# endif -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], backslash - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1 -# if WS2812_LED_COUNT > 0 - ,2, 2, 2, 2, 2, 2 -# endif - } -}; +// clang-format on bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { @@ -137,8 +92,6 @@ bool rgb_matrix_indicators_kb(void) { return true; } -// clang-format on - // ========================================================================== // Custom RGB Matrix driver that combines IS31FL3733 and WS2812 // ========================================================================== @@ -156,26 +109,20 @@ static void rgb_matrix_driver_init(void) { static void rgb_matrix_driver_flush(void) { is31fl3733_update_pwm_buffers(0); -# if WS2812_LED_COUNT > 0 ws2812_flush(); -# endif } static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { if (index < IS31FL3733_LED_COUNT) { is31fl3733_set_color(index, red, green, blue); -# if WS2812_LED_COUNT > 0 } else { ws2812_set_color(index - IS31FL3733_LED_COUNT, red, green, blue); -# endif } } static void rgb_matrix_driver_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { is31fl3733_set_color_all(red, green, blue); -# if WS2812_LED_COUNT > 0 ws2812_set_color_all(red, green, blue); -# endif } // clang-format off diff --git a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk index 7012deda8c..bb6c11ea53 100644 --- a/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk +++ b/keyboards/kprepublic/bm60hsrgb_poker/rev2/rules.mk @@ -1,7 +1,5 @@ -# The custom RGB Matrix driver combines IS31FL3733 and WS2812; things that are -# normally done by common_features.mk for both of these drivers need to be done -# here manually. +WS2812_DRIVER_REQUIRED = yes + COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3733.c I2C_DRIVER_REQUIRED = yes -WS2812_DRIVER_REQUIRED = yes From 7dca4e8bda2031c7fa2c85fc9c7a5557e24256df Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Wed, 8 Oct 2025 08:01:08 -0600 Subject: [PATCH 073/255] Fixup `kprepublic/bm60hsrgb_iso/rev2` (#25648) Fixup kprepublic/bm60hsrgb_iso/rev2 - Remove RGBLight configuration and throw error if RGBLight & RGB Matrix are enabled together - the WS2812 driver cannot be used for RGBLight as it is being used by this keyboard's custom RGB Matrix driver - Migrate RGB Matrix configuration to DD - Migrate default keymap to JSON - Use short SPDX license headers --- .../kprepublic/bm60hsrgb_iso/rev2/config.h | 32 +----- .../bm60hsrgb_iso/rev2/keyboard.json | 97 ++++++++++++++----- .../rev2/keymaps/default/keymap.c | 34 ------- .../rev2/keymaps/default/keymap.json | 21 ++++ .../kprepublic/bm60hsrgb_iso/rev2/rev2.c | 72 ++------------ .../kprepublic/bm60hsrgb_iso/rev2/rules.mk | 6 +- 6 files changed, 110 insertions(+), 152 deletions(-) delete mode 100644 keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c create mode 100644 keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.json diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h index 710e240aa4..1567ce3eb1 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/config.h @@ -1,31 +1,9 @@ -/* Copyright 2021 bdtc123 - * Copyright 2021 sigprof - * Copyright 2021 peepeetee - * - * 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 . - */ +// Copyright 2021 bdtc123 +// Copyright 2021 sigprof +// Copyright 2021 peepeetee +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_LED_COUNT 64 - -// Underglow LEDs are WS2812, but someone might want to use RGBLIGHT for them; -// don't use those LEDs in RGB Matrix in that case. -#ifdef RGBLIGHT_ENABLE -# define WS2812_LED_COUNT 0 -#else -# define WS2812_LED_COUNT 6 -#endif - -#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_COUNT) +#define WS2812_LED_COUNT 6 diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json index 3a0df3e414..fec641b886 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keyboard.json @@ -59,30 +59,81 @@ "animation": "cycle_all" }, "driver": "custom", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 1}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 9}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 12], "x": 198, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 3, "y": 48, "flags": 1}, + {"matrix": [3, 2], "x": 22, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 33, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 48, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 63, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 78, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 93, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 108, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 123, "y": 48, "flags": 4}, + {"x": 138, "y": 48, "flags": 4}, + {"matrix": [3, 10], "x": 153, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 168, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 194, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 213, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"x": 28, "y": 40, "flags": 2}, + {"x": 62, "y": 40, "flags": 2}, + {"x": 96, "y": 40, "flags": 2}, + {"x": 130, "y": 40, "flags": 2}, + {"x": 164, "y": 40, "flags": 2}, + {"x": 198, "y": 40, "flags": 2} + ], "max_brightness": 180, "sleep": true }, - "rgblight": { - "saturation_steps": 8, - "brightness_steps": 8, - "led_count": 6, - "max_brightness": 150, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "rgb_test": true, - "alternating": true, - "twinkle": true - }, - "default": { - "animation": "rainbow_mood" - } - }, "matrix_pins": { "cols": ["B2", "B3", "B7", "B0", "B1", "F7", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7"], "rows": ["E6", "D2", "D3", "D5", "F6"] @@ -118,7 +169,6 @@ {"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, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -132,7 +182,6 @@ {"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], "x": 0, "y": 2, "w": 1.75}, {"matrix": [2, 1], "x": 1.75, "y": 2}, {"matrix": [2, 2], "x": 2.75, "y": 2}, @@ -147,7 +196,6 @@ {"matrix": [2, 11], "x": 11.75, "y": 2}, {"matrix": [2, 12], "x": 12.75, "y": 2}, {"matrix": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 2}, - {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, {"matrix": [4, 3], "x": 1.25, "y": 3}, {"matrix": [3, 1], "x": 2.25, "y": 3}, @@ -162,7 +210,6 @@ {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75}, {"matrix": [3, 12], "x": 13, "y": 3}, {"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}, diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c deleted file mode 100644 index f3aa8083f1..0000000000 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.c +++ /dev/null @@ -1,34 +0,0 @@ -/* Copyright 2020 markva - * Copyright 2021 bdtc123 - * - * 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_iso_arrow( - 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_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_RSFT, KC_UP, KC_SLSH, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_60_iso_arrow( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, KC_PGUP, _______, - _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END - ) -}; diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.json b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.json new file mode 100644 index 0000000000..ea074ba006 --- /dev/null +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/keymaps/default/keymap.json @@ -0,0 +1,21 @@ +{ + "keyboard": "kprepublic/bm60hsrgb_iso/rev2", + "keymap": "default", + "layout": "LAYOUT_60_iso_arrow", + "layers": [ + [ + "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_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_RSFT", "KC_UP", "KC_SLSH", + "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(1)", "KC_LEFT", "KC_DOWN", "KC_RGHT" + ], + [ + "_______", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "QK_BOOT", + "_______", "RM_TOGG", "RM_NEXT", "RM_HUEU", "RM_HUED", "RM_SATU", "RM_SATD", "RM_VALU", "RM_VALD", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "NK_TOGG", "_______", "_______", "_______", "_______", "KC_PGUP", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "KC_HOME", "KC_PGDN", "KC_END" + ] + ] +} diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c index 0d52d1bacb..9e617bb8ef 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rev2.c @@ -1,29 +1,20 @@ -/* Copyright 2021 bdtc123 - * Copyright 2021 sigprof - * Copyright 2021 peepeetee - * - * 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 . - */ +// Copyright 2021 bdtc123 +// Copyright 2021 sigprof +// Copyright 2021 peepeetee +// SPDX-License-Identifier: GPL-2.0-or-later #include "quantum.h" +#if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) +# error "RGBLight must not be enabled due to this keyboard's custom RGB Matrix driver" +#endif + #ifdef RGB_MATRIX_ENABLE # include "i2c_master.h" # include "is31fl3733.h" # include "ws2812.h" - +// clang-format off const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW2_CS1, SW1_CS1, SW3_CS1 }, { 0, SW2_CS2, SW1_CS2, SW3_CS2 }, @@ -94,42 +85,7 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW2_CS15, SW1_CS15, SW3_CS15 }, { 0, SW5_CS16, SW4_CS16, SW6_CS16 } }; - -led_config_t g_led_config = { { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,NO_LED}, - { 41, 58, 42, 43, 44, 45, 46, 47, 48, 49, 51, 52, 53, 54 }, - { 55, 56, 57,NO_LED,NO_LED, 58,NO_LED,NO_LED,NO_LED, 59, 60, 61, 62, 63 } -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ', Enter - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, - // LShift, <, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - { 3, 48 }, { 22, 48 }, { 33, 48 }, { 48, 48 }, { 63, 48 }, { 78, 48 }, { 93, 48 }, { 108, 48 }, { 123, 48 }, { 138, 48 }, { 153, 48 }, { 168, 48 }, { 194, 48 }, { 213, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 } -# if WS2812_LED_COUNT > 0 - ,{ 28, 40}, { 62, 40}, { 96, 40}, {130, 40}, {164, 40}, {198, 40} -# endif -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], Enter - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Capslock, A, S, D, F, G, H, J, K, L, ;, ',# - 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - // LShift,backslash, Z, X, C, V, B, N, M, ,, ., Shift, Up, / - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1, 1 -# if WS2812_LED_COUNT > 0 - ,2, 2, 2, 2, 2, 2 -# endif -} }; +// clang-format on bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { @@ -141,8 +97,6 @@ bool rgb_matrix_indicators_kb(void) { return true; } -// clang-format on - // ========================================================================== // Custom RGB Matrix driver that combines IS31FL3733 and WS2812 // ========================================================================== @@ -160,26 +114,20 @@ static void rgb_matrix_driver_init(void) { static void rgb_matrix_driver_flush(void) { is31fl3733_update_pwm_buffers(0); -# if WS2812_LED_COUNT > 0 ws2812_flush(); -# endif } static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { if (index < IS31FL3733_LED_COUNT) { is31fl3733_set_color(index, red, green, blue); -# if WS2812_LED_COUNT > 0 } else { ws2812_set_color(index - IS31FL3733_LED_COUNT, red, green, blue); -# endif } } static void rgb_matrix_driver_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { is31fl3733_set_color_all(red, green, blue); -# if WS2812_LED_COUNT > 0 ws2812_set_color_all(red, green, blue); -# endif } // clang-format off diff --git a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk index 7012deda8c..bb6c11ea53 100644 --- a/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk +++ b/keyboards/kprepublic/bm60hsrgb_iso/rev2/rules.mk @@ -1,7 +1,5 @@ -# The custom RGB Matrix driver combines IS31FL3733 and WS2812; things that are -# normally done by common_features.mk for both of these drivers need to be done -# here manually. +WS2812_DRIVER_REQUIRED = yes + COMMON_VPATH += $(DRIVER_PATH)/led/issi SRC += is31fl3733.c I2C_DRIVER_REQUIRED = yes -WS2812_DRIVER_REQUIRED = yes From 9f1a7380ab37d7887e33d726eb6f6f678cba3c6f Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Wed, 8 Oct 2025 08:01:26 -0600 Subject: [PATCH 074/255] Fixup `kprepublic/bm60hsrgb/rev2` (#25644) * Fixup kprepublic/bm60hsrgb/rev2 - Remove RGBLight configuration and throw error if RGBLight & RGB Matrix are enabled together - the WS2812 driver cannot be used for RGBLight as it is being used by this keyboard's custom RGB Matrix driver - Migrate RGB Matrix configuration to DD - Migrate default keymap to JSON - Use short SPDX license headers * Fix OOB coordinate --- keyboards/kprepublic/bm60hsrgb/rev2/config.h | 28 +----- .../kprepublic/bm60hsrgb/rev2/keyboard.json | 96 ++++++++++++++----- .../bm60hsrgb/rev2/keymaps/default/keymap.c | 35 ------- .../rev2/keymaps/default/keymap.json | 21 ++++ keyboards/kprepublic/bm60hsrgb/rev2/rev2.c | 74 ++------------ 5 files changed, 105 insertions(+), 149 deletions(-) delete mode 100644 keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c create mode 100644 keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.json diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/config.h b/keyboards/kprepublic/bm60hsrgb/rev2/config.h index 98858cd164..c3fca3563e 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/config.h +++ b/keyboards/kprepublic/bm60hsrgb/rev2/config.h @@ -1,29 +1,7 @@ -/* Copyright 2021 bdtc123 - * - * 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 . - */ +// Copyright 2021 bdtc123 +// SPDX-License-Identifier: GPL-2.0-or-later #pragma once #define IS31FL3733_I2C_ADDRESS_1 IS31FL3733_I2C_ADDRESS_GND_GND #define IS31FL3733_LED_COUNT 63 - -// Underglow LEDs are WS2812, but someone might want to use RGBLIGHT for them; -// don't use those LEDs in RGB Matrix in that case. -#ifdef RGBLIGHT_ENABLE -# define WS2812_LED_COUNT 0 -#else -# define WS2812_LED_COUNT 6 -#endif - -#define RGB_MATRIX_LED_COUNT (IS31FL3733_LED_COUNT + WS2812_LED_COUNT) +#define WS2812_LED_COUNT 6 diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json b/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json index 3783ebb8b2..88d4c5d9ce 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json +++ b/keyboards/kprepublic/bm60hsrgb/rev2/keyboard.json @@ -51,30 +51,80 @@ "solid_multisplash": true }, "driver": "custom", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 90, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 105, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 9], "x": 135, "y": 0, "flags": 4}, + {"matrix": [0, 10], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 11], "x": 165, "y": 0, "flags": 4}, + {"matrix": [0, 12], "x": 180, "y": 0, "flags": 4}, + {"matrix": [0, 13], "x": 202, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 7, "y": 16, "flags": 1}, + {"matrix": [1, 1], "x": 22, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 4}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 4}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 4}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 4}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 4}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 4}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 4}, + {"matrix": [1, 13], "x": 206, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 11, "y": 32, "flags": 9}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 4}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 4}, + {"matrix": [2, 9], "x": 146, "y": 32, "flags": 4}, + {"matrix": [2, 10], "x": 161, "y": 32, "flags": 4}, + {"matrix": [2, 11], "x": 176, "y": 32, "flags": 4}, + {"matrix": [2, 13], "x": 198, "y": 32, "flags": 1}, + {"matrix": [3, 0], "x": 18, "y": 48, "flags": 1}, + {"matrix": [3, 1], "x": 30, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 60, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 75, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 90, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 105, "y": 48, "flags": 4}, + {"matrix": [3, 7], "x": 120, "y": 48, "flags": 4}, + {"matrix": [3, 8], "x": 135, "y": 48, "flags": 4}, + {"matrix": [3, 9], "x": 150, "y": 48, "flags": 4}, + {"matrix": [3, 11], "x": 165, "y": 48, "flags": 1}, + {"matrix": [3, 12], "x": 191, "y": 48, "flags": 1}, + {"matrix": [3, 13], "x": 210, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 3, "y": 64, "flags": 1}, + {"matrix": [4, 1], "x": 22, "y": 64, "flags": 1}, + {"matrix": [4, 2], "x": 33, "y": 64, "flags": 1}, + {"matrix": [4, 5], "x": 101, "y": 64, "flags": 4}, + {"matrix": [4, 9], "x": 135, "y": 64, "flags": 1}, + {"matrix": [4, 10], "x": 153, "y": 64, "flags": 1}, + {"matrix": [4, 11], "x": 195, "y": 64, "flags": 1}, + {"matrix": [4, 12], "x": 210, "y": 64, "flags": 1}, + {"matrix": [4, 13], "x": 224, "y": 64, "flags": 1}, + {"x": 28, "y": 40, "flags": 2}, + {"x": 62, "y": 40, "flags": 2}, + {"x": 96, "y": 40, "flags": 2}, + {"x": 130, "y": 40, "flags": 2}, + {"x": 164, "y": 40, "flags": 2}, + {"x": 198, "y": 40, "flags": 2} + ], "max_brightness": 120, "sleep": true }, - "rgblight": { - "saturation_steps": 8, - "brightness_steps": 8, - "led_count": 6, - "max_brightness": 150, - "animations": { - "breathing": true, - "rainbow_mood": true, - "rainbow_swirl": true, - "snake": true, - "knight": true, - "christmas": true, - "static_gradient": true, - "rgb_test": true, - "alternating": true, - "twinkle": true - }, - "default": { - "animation": "rainbow_mood" - } - }, "matrix_pins": { "cols": ["B2", "B3", "B7", "B0", "B1", "F7", "D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7"], "rows": ["E6", "D2", "D3", "D5", "F6"] @@ -110,7 +160,6 @@ {"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, 0], "x": 0, "y": 1, "w": 1.5}, {"matrix": [1, 1], "x": 1.5, "y": 1}, {"matrix": [1, 2], "x": 2.5, "y": 1}, @@ -125,7 +174,6 @@ {"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}, @@ -139,7 +187,6 @@ {"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, 1], "x": 2.25, "y": 3}, {"matrix": [3, 2], "x": 3.25, "y": 3}, @@ -153,7 +200,6 @@ {"matrix": [3, 11], "x": 11.25, "y": 3, "w": 1.75}, {"matrix": [3, 12], "x": 13, "y": 3}, {"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}, diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c b/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c deleted file mode 100644 index 7b6d1ae693..0000000000 --- a/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.c +++ /dev/null @@ -1,35 +0,0 @@ -/* Copyright 2021 bdtc123 - * Copyright 2022 peepeetee - * - * 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_arrow( - 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_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_RSFT, KC_UP, KC_SLSH, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_60_ansi_arrow( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, QK_BOOT, - _______, RM_TOGG, RM_NEXT, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, NK_TOGG, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______ - ) - -}; diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.json b/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.json new file mode 100644 index 0000000000..caf08550a0 --- /dev/null +++ b/keyboards/kprepublic/bm60hsrgb/rev2/keymaps/default/keymap.json @@ -0,0 +1,21 @@ +{ + "keyboard": "kprepublic/bm60hsrgb/rev2", + "keymap": "default", + "layout": "LAYOUT_60_ansi_arrow", + "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_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_RSFT", "KC_UP", "KC_SLSH", + "KC_LCTL", "KC_LGUI", "KC_LALT", "KC_SPC", "KC_RALT", "MO(1)", "KC_LEFT", "KC_DOWN", "KC_RGHT" + ], + [ + "_______", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_F11", "KC_F12", "QK_BOOT", + "_______", "RM_TOGG", "RM_NEXT", "RM_HUEU", "RM_HUED", "RM_SATU", "RM_SATD", "RM_VALU", "RM_VALD", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "NK_TOGG", "_______", "_______", "_______", "_______", "_______", "_______", + "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______", "_______" + ] + ] +} diff --git a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c index e7ff5a9ddc..b0e68a8cd6 100644 --- a/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c +++ b/keyboards/kprepublic/bm60hsrgb/rev2/rev2.c @@ -1,27 +1,19 @@ -/* Copyright 2021 bdtc123 - * Copyright 2021 sigprof - * - * 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 . - */ +// Copyright 2021 bdtc123 +// Copyright 2021 sigprof +// SPDX-License-Identifier: GPL-2.0-or-later #include "quantum.h" +#if defined(RGB_MATRIX_ENABLE) && defined(RGBLIGHT_ENABLE) +# error "RGBLight must not be enabled due to this keyboard's custom RGB Matrix driver" +#endif + #ifdef RGB_MATRIX_ENABLE # include "i2c_master.h" # include "is31fl3733.h" # include "ws2812.h" +// clang-format off const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW2_CS1, SW1_CS1, SW3_CS1 }, { 0, SW2_CS2, SW1_CS2, SW3_CS2 }, @@ -91,44 +83,7 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { { 0, SW2_CS16, SW1_CS16, SW3_CS16 }, { 0, SW5_CS16, SW4_CS16, SW6_CS16 } }; - -led_config_t g_led_config = { - { - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 }, - { 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27 }, - { 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, NO_LED, 40 }, - { 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, NO_LED, 51, 52, 53 }, - { 54, 55, 56, NO_LED, NO_LED, 57, NO_LED, NO_LED, NO_LED, 58, 59, 60, 61, 62 } - }, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - { 0, 0 }, { 15, 0 }, { 30, 0 }, { 45, 0 }, { 60, 0 }, { 75, 0 }, { 90, 0 }, { 105, 0 }, { 120, 0 }, { 135, 0 }, { 150, 0 }, { 165, 0 }, { 180, 0 }, { 202, 0 }, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], , - { 7, 16 }, { 22, 16 }, { 37, 16 }, { 52, 16 }, { 67, 16 }, { 82, 16 }, { 97, 16 }, { 112, 16 }, { 127, 16 }, { 142, 16 }, { 157, 16 }, { 172, 16 }, { 187, 16 }, { 206, 16 }, - // Capslock, A, S, D, F, G, H, A, K, L, ;, ', Enter - { 11, 32 }, { 26, 32 }, { 41, 32 }, { 56, 32 }, { 71, 32 }, { 86, 32 }, { 101, 32 }, { 116, 32 }, { 131, 32 }, { 146, 32 }, { 161, 32 }, { 176, 32 }, { 198, 32 }, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, - { 18, 48 }, { 30, 48 }, { 45, 48 }, { 60, 48 }, { 75, 48 }, { 90, 48 }, { 105, 48 }, { 120, 48 }, { 135, 48 }, { 150, 48 }, { 165, 48 }, { 191, 48 }, { 210, 48 }, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - { 3, 64 }, { 22, 64 }, { 33, 64 }, { 101, 64 }, { 135, 64 }, { 153, 64 }, { 195, 64 }, { 210, 64 }, { 225, 64 } -# if WS2812_LED_COUNT > 0 - ,{ 28, 40}, { 62, 40}, { 96, 40}, {130, 40}, {164, 40}, {198, 40} -# endif -}, { - // Esc, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, -, =, Backspace - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // Tab, Q, W, E, R, T, Y, U, I, O, P, [, ], - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - // Capslock, A, S, D, F, G, H, A, K, L, ;, ', Enter - 9, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, - // LShift, Z, X, C, V, B, N, M, ,, ., /, Shift, Up, ? - 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 1, 4, - // Ctrl, GUI, Alt, Space, RAlt, FN, Left, Down, Right - 1, 1, 1, 4, 1, 1, 1, 1, 1 -# if WS2812_LED_COUNT > 0 - ,2, 2, 2, 2, 2, 2 -# endif - } -}; +// clang-format on bool rgb_matrix_indicators_kb(void) { if (!rgb_matrix_indicators_user()) { @@ -140,9 +95,6 @@ bool rgb_matrix_indicators_kb(void) { return true; } - -// clang-format on - // ========================================================================== // Custom RGB Matrix driver that combines IS31FL3733 and WS2812 // ========================================================================== @@ -160,26 +112,20 @@ static void rgb_matrix_driver_init(void) { static void rgb_matrix_driver_flush(void) { is31fl3733_update_pwm_buffers(0); -# if WS2812_LED_COUNT > 0 ws2812_flush(); -# endif } static void rgb_matrix_driver_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { if (index < IS31FL3733_LED_COUNT) { is31fl3733_set_color(index, red, green, blue); -# if WS2812_LED_COUNT > 0 } else { ws2812_set_color(index - IS31FL3733_LED_COUNT, red, green, blue); -# endif } } static void rgb_matrix_driver_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { is31fl3733_set_color_all(red, green, blue); -# if WS2812_LED_COUNT > 0 - ws2812_set_color_all(red, green, blue); -# endif + ws2812_set_color_all(red, green, blue); } // clang-format off From 08405df1505293acb9a4e89bcf98935d78902094 Mon Sep 17 00:00:00 2001 From: Marek Schmitt <62243375+mawaeg@users.noreply.github.com> Date: Sat, 11 Oct 2025 06:45:17 +0200 Subject: [PATCH 075/255] Add new macropad Sharkropad (#24961) --- keyboards/mawaeg/sharkropad/chconf.h | 22 +++ keyboards/mawaeg/sharkropad/config.h | 30 ++++ keyboards/mawaeg/sharkropad/halconf.h | 22 +++ keyboards/mawaeg/sharkropad/keyboard.json | 136 ++++++++++++++++++ .../sharkropad/keymaps/default/keymap.c | 45 ++++++ .../sharkropad/keymaps/default/rules.mk | 1 + keyboards/mawaeg/sharkropad/mcuconf.h | 28 ++++ keyboards/mawaeg/sharkropad/readme.md | 24 ++++ keyboards/mawaeg/sharkropad/sharkropad.c | 90 ++++++++++++ 9 files changed, 398 insertions(+) create mode 100644 keyboards/mawaeg/sharkropad/chconf.h create mode 100644 keyboards/mawaeg/sharkropad/config.h create mode 100644 keyboards/mawaeg/sharkropad/halconf.h create mode 100644 keyboards/mawaeg/sharkropad/keyboard.json create mode 100644 keyboards/mawaeg/sharkropad/keymaps/default/keymap.c create mode 100644 keyboards/mawaeg/sharkropad/keymaps/default/rules.mk create mode 100644 keyboards/mawaeg/sharkropad/mcuconf.h create mode 100644 keyboards/mawaeg/sharkropad/readme.md create mode 100644 keyboards/mawaeg/sharkropad/sharkropad.c diff --git a/keyboards/mawaeg/sharkropad/chconf.h b/keyboards/mawaeg/sharkropad/chconf.h new file mode 100644 index 0000000000..c0a2323234 --- /dev/null +++ b/keyboards/mawaeg/sharkropad/chconf.h @@ -0,0 +1,22 @@ +/* Copyright 2025 @mawaeg + * + * 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 CH_CFG_ST_RESOLUTION 16 +#define CH_CFG_ST_FREQUENCY 10000 + +#include_next diff --git a/keyboards/mawaeg/sharkropad/config.h b/keyboards/mawaeg/sharkropad/config.h new file mode 100644 index 0000000000..2e57c56f0f --- /dev/null +++ b/keyboards/mawaeg/sharkropad/config.h @@ -0,0 +1,30 @@ +/* Copyright 2025 @mawaeg + * + * 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 STM32_FLASH_SECTORS_PER_BANK 128 + +#define I2C1_SCL_PIN A9 +#define I2C1_SDA_PIN A10 + +#define WS2812_PWM_DRIVER PWMD2 +#define WS2812_PWM_CHANNEL 2 +#define WS2812_PWM_PAL_MODE 1 +#define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_PWM_DMA_CHANNEL 4 + +#define RGB_MATRIX_MODE_NAME_ENABLE diff --git a/keyboards/mawaeg/sharkropad/halconf.h b/keyboards/mawaeg/sharkropad/halconf.h new file mode 100644 index 0000000000..9f0b573732 --- /dev/null +++ b/keyboards/mawaeg/sharkropad/halconf.h @@ -0,0 +1,22 @@ +/* Copyright 2025 @mawaeg + * + * 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 +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/mawaeg/sharkropad/keyboard.json b/keyboards/mawaeg/sharkropad/keyboard.json new file mode 100644 index 0000000000..c262d3e3cc --- /dev/null +++ b/keyboards/mawaeg/sharkropad/keyboard.json @@ -0,0 +1,136 @@ +{ + "manufacturer": "mawaeg", + "keyboard_name": "Sharkropad", + "maintainer": "mawaeg", + "bootloader": "stm32-dfu", + "bootmagic": { + "matrix": [0, 3] + }, + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "A0", "pin_b": "A1"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "nkro": true, + "oled": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["B1", "B0", "A4", "A2"], + "rows": ["A3", "A7", "A6", "A5"] + }, + "processor": "STM32L432", + "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 + }, + "default": { + "animation": "cycle_up_down" + }, + "driver": "ws2812", + "layout": [ + {"matrix": [1, 0], "x": 189, "y": 27, "flags": 4}, + {"matrix": [1, 1], "x": 137, "y": 27, "flags": 4}, + {"matrix": [1, 2], "x": 86, "y": 27, "flags": 4}, + {"matrix": [1, 3], "x": 35, "y": 27, "flags": 4}, + {"matrix": [2, 0], "x": 189, "y": 41, "flags": 4}, + {"matrix": [2, 1], "x": 137, "y": 41, "flags": 4}, + {"matrix": [2, 2], "x": 86, "y": 41, "flags": 4}, + {"matrix": [2, 3], "x": 35, "y": 41, "flags": 4}, + {"matrix": [3, 0], "x": 189, "y": 55, "flags": 4}, + {"matrix": [3, 1], "x": 137, "y": 55, "flags": 4}, + {"matrix": [3, 2], "x": 86, "y": 55, "flags": 4}, + {"matrix": [3, 3], "x": 35, "y": 55, "flags": 4}, + {"x": 76, "y": 3, "flags": 2}, + {"x": 148, "y": 3, "flags": 2}, + {"x": 216, "y": 17, "flags": 2}, + {"x": 216, "y": 45, "flags": 2}, + {"x": 224, "y": 61, "flags": 2}, + {"x": 60, "y": 61, "flags": 2}, + {"x": 8, "y": 45, "flags": 2}, + {"x": 8, "y": 17, "flags": 2} + ], + "max_brightness": 180 + }, + "url": "https://github.com/mawaeg/sharkropad", + "usb": { + "device_version": "1.0.0", + "pid": "0xAFFE", + "vid": "0x6D73" + }, + "ws2812": { + "driver": "pwm", + "pin": "B3" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"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/mawaeg/sharkropad/keymaps/default/keymap.c b/keyboards/mawaeg/sharkropad/keymaps/default/keymap.c new file mode 100644 index 0000000000..6a95257a1c --- /dev/null +++ b/keyboards/mawaeg/sharkropad/keymaps/default/keymap.c @@ -0,0 +1,45 @@ +/* Copyright 2025 @mawaeg + * + * 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 + /* + * ┌────────────┐ + * │ RGB_MOD │ + * ┌───┬───┬───┼────────────┤ + * │ 7 │ 8 │ 9 │ RGB_TOGGLE │ + * ├───┼───┼───┼────────────┤ + * │ 4 │ 5 │ 6 │ NUM │ + * ├───┼───┼───┼────────────┤ + * │ 1 │ 2 │ 3 │ 0 │ + * └───┴───┴───┴────────────┘ + */ + [0] = LAYOUT( + RM_NEXT, + KC_P7, KC_P8, KC_P9, RM_TOGG, + KC_P4, KC_P5, KC_P6, KC_NUM, + KC_P1, KC_P2, KC_P3, KC_P0 + ) + // clang-format on +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(RM_SPDD, RM_SPDU)}, +}; +#endif diff --git a/keyboards/mawaeg/sharkropad/keymaps/default/rules.mk b/keyboards/mawaeg/sharkropad/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/mawaeg/sharkropad/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/mawaeg/sharkropad/mcuconf.h b/keyboards/mawaeg/sharkropad/mcuconf.h new file mode 100644 index 0000000000..2a66cc8d7b --- /dev/null +++ b/keyboards/mawaeg/sharkropad/mcuconf.h @@ -0,0 +1,28 @@ +/* Copyright 2025 @mawaeg + * + * 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_I2C_USE_I2C1 +#define STM32_I2C_USE_I2C1 TRUE + +#undef STM32_PWM_USE_TIM2 +#define STM32_PWM_USE_TIM2 TRUE + +#undef STM32_ST_USE_TIMER +#define STM32_ST_USE_TIMER 15 diff --git a/keyboards/mawaeg/sharkropad/readme.md b/keyboards/mawaeg/sharkropad/readme.md new file mode 100644 index 0000000000..d6faf506c5 --- /dev/null +++ b/keyboards/mawaeg/sharkropad/readme.md @@ -0,0 +1,24 @@ +# sharkropad + +![sharkropad](https://i.imgur.com/qatvstX.jpeg) + +**Sharkropad** is an open-source hotswappable macropad. + +* Keyboard Maintainer: [Marek Schmitt](https://github.com/mawaeg) +* Hardware Supported: PCB included in the [Sharkropad repository](https://github.com/mawaeg/sharkropad). +* Hardware Availability: PCB has to be sourced yourserlf + +Make example for this keyboard (after setting up your build environment): + + make mawaeg/sharkropad:default + +Flashing example for this keyboard: + + make mawaeg/sharkropad: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: +* **Bootmagic reset**: Hold down the rotary encoder knob and plug in the keyboard diff --git a/keyboards/mawaeg/sharkropad/sharkropad.c b/keyboards/mawaeg/sharkropad/sharkropad.c new file mode 100644 index 0000000000..391f59800b --- /dev/null +++ b/keyboards/mawaeg/sharkropad/sharkropad.c @@ -0,0 +1,90 @@ +/* Copyright 2025 @mawaeg + * + * 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 "quantum.h" +#include +#include +#include + +static uint8_t effect_name_len = 0; + +const char *rgb_matrix_get_effect_name(void) { + static char buf[32] = {0}; + + snprintf(buf, sizeof(buf), "%s", rgb_matrix_get_mode_name(rgb_matrix_get_mode())); + for (uint8_t i = 1; i < sizeof(buf); ++i) { + if (buf[i] == 0) { + effect_name_len = i; + break; + } else if (buf[i] == '_') + buf[i] = ' '; + else if (buf[i - 1] == ' ') + buf[i] = toupper(buf[i]); + else if (buf[i - 1] != ' ') + buf[i] = tolower(buf[i]); + } + return buf; +} + +bool oled_task_kb(void) { + if (!oled_task_user()) { + return false; + } + + static uint8_t last_effect = 0; + static uint8_t last_speed = 0; + static uint16_t key_timer = 0; + static uint8_t start_index = 0; + + uint8_t speedPercentage = scale8(rgb_matrix_get_speed(), 100); + bool is_timer_elapsed = timer_elapsed(key_timer) > 200; + + if (last_effect != rgb_matrix_get_mode() || last_speed != speedPercentage || is_timer_elapsed) { + last_effect = rgb_matrix_get_mode(); + last_speed = speedPercentage; + + oled_write_ln_P(PSTR("Mode: "), false); + const char *name = rgb_matrix_get_effect_name(); + if (effect_name_len > 21) { + if (!is_timer_elapsed && start_index != 0) { + start_index -= 1; + } else { + key_timer = timer_read(); + } + if (start_index > effect_name_len) { + start_index = 0; + } + for (uint8_t char_index = 0; char_index < 21; char_index++) { + if ((start_index + char_index) % effect_name_len == 0 && char_index != 0) { + oled_write_char(' ', false); + } else { + oled_write_char(name[(start_index + char_index) % (effect_name_len + 1)], false); + } + } + start_index += 1; + } else { + oled_write_ln(name, false); + start_index = 0; + } + + oled_set_cursor(0, 2); + oled_write_ln_P(PSTR("RGB Speed: "), false); + oled_write(get_u8_str(speedPercentage, ' '), false); + oled_write("%", false); + } + + return true; +} From f4068dbfb0a5bc8ba0daf4e714ff3cbe89ef92c2 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 13 Oct 2025 06:40:45 +0100 Subject: [PATCH 076/255] Update STM32F446 default HSE to 8MHz (#25717) --- keyboards/handwired/onekey/nucleo_f446re/board.h | 3 +-- keyboards/handwired/onekey/nucleo_f446re/mcuconf.h | 6 ------ keyboards/handwired/onekey/nucleo_f446re/readme.md | 2 +- .../ibm/model_m_4th_gen/overnumpad_1xb/mcuconf.h | 11 +++++++++++ .../overnumpad_1xb/mcuconf.h | 11 +++++++++++ .../classic_ultracl_pre_2013/overnumpad_1xb/mcuconf.h | 11 +++++++++++ keyboards/unicomp/pc122/overnumpad_1xb/mcuconf.h | 11 +++++++++++ .../spacesaver_m_post_2013/overnumpad_1xb/mcuconf.h | 11 +++++++++++ .../spacesaver_m_pre_2013/overnumpad_1xb/mcuconf.h | 11 +++++++++++ .../boards/GENERIC_STM32_F446XE/configs/board.h | 1 - .../boards/GENERIC_STM32_F446XE/configs/config.h | 1 + .../boards/GENERIC_STM32_F446XE/configs/mcuconf.h | 4 ++-- 12 files changed, 71 insertions(+), 12 deletions(-) create mode 100644 keyboards/ibm/model_m_4th_gen/overnumpad_1xb/mcuconf.h create mode 100644 keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/mcuconf.h create mode 100644 keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/mcuconf.h create mode 100644 keyboards/unicomp/pc122/overnumpad_1xb/mcuconf.h create mode 100644 keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/mcuconf.h create mode 100644 keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/mcuconf.h diff --git a/keyboards/handwired/onekey/nucleo_f446re/board.h b/keyboards/handwired/onekey/nucleo_f446re/board.h index 0c5f4dde79..54c93c551a 100644 --- a/keyboards/handwired/onekey/nucleo_f446re/board.h +++ b/keyboards/handwired/onekey/nucleo_f446re/board.h @@ -4,6 +4,5 @@ #include_next -#undef STM32_HSECLK -#define STM32_HSECLK 8000000U +// Configure clocks to use onboard STLINKs MCO as HSE is not populated by default #define STM32_HSE_BYPASS diff --git a/keyboards/handwired/onekey/nucleo_f446re/mcuconf.h b/keyboards/handwired/onekey/nucleo_f446re/mcuconf.h index 701d61d31d..ba463bf4f7 100644 --- a/keyboards/handwired/onekey/nucleo_f446re/mcuconf.h +++ b/keyboards/handwired/onekey/nucleo_f446re/mcuconf.h @@ -4,12 +4,6 @@ #include_next -#undef STM32_PLLM_VALUE -#define STM32_PLLM_VALUE 4 - -#undef STM32_PLLSAIM_VALUE -#define STM32_PLLSAIM_VALUE 4 - #undef STM32_ADC_USE_ADC1 #define STM32_ADC_USE_ADC1 TRUE diff --git a/keyboards/handwired/onekey/nucleo_f446re/readme.md b/keyboards/handwired/onekey/nucleo_f446re/readme.md index b0645b65fe..71a5e48184 100644 --- a/keyboards/handwired/onekey/nucleo_f446re/readme.md +++ b/keyboards/handwired/onekey/nucleo_f446re/readme.md @@ -1,4 +1,4 @@ -# STM32 Nucleo-L432 onekey +# STM32 Nucleo-F446 onekey To trigger keypress, short together pins *A0* and *A1*. Note that the pin numbering is relative to the MCU, so that A0 and A1 refer to PA0 and PA1 on the MCU (which are also labelled A0 and A1 on the board, but this isn't true for the other PAx pins). diff --git a/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/mcuconf.h b/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/mcuconf.h new file mode 100644 index 0000000000..0e89bead66 --- /dev/null +++ b/keyboards/ibm/model_m_4th_gen/overnumpad_1xb/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 8 + +#undef STM32_PLLSAIM_VALUE +#define STM32_PLLSAIM_VALUE 8 diff --git a/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/mcuconf.h b/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/mcuconf.h new file mode 100644 index 0000000000..0e89bead66 --- /dev/null +++ b/keyboards/unicomp/classic_ultracl_post_2013/overnumpad_1xb/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 8 + +#undef STM32_PLLSAIM_VALUE +#define STM32_PLLSAIM_VALUE 8 diff --git a/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/mcuconf.h b/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/mcuconf.h new file mode 100644 index 0000000000..0e89bead66 --- /dev/null +++ b/keyboards/unicomp/classic_ultracl_pre_2013/overnumpad_1xb/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 8 + +#undef STM32_PLLSAIM_VALUE +#define STM32_PLLSAIM_VALUE 8 diff --git a/keyboards/unicomp/pc122/overnumpad_1xb/mcuconf.h b/keyboards/unicomp/pc122/overnumpad_1xb/mcuconf.h new file mode 100644 index 0000000000..0e89bead66 --- /dev/null +++ b/keyboards/unicomp/pc122/overnumpad_1xb/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 8 + +#undef STM32_PLLSAIM_VALUE +#define STM32_PLLSAIM_VALUE 8 diff --git a/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/mcuconf.h b/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/mcuconf.h new file mode 100644 index 0000000000..0e89bead66 --- /dev/null +++ b/keyboards/unicomp/spacesaver_m_post_2013/overnumpad_1xb/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 8 + +#undef STM32_PLLSAIM_VALUE +#define STM32_PLLSAIM_VALUE 8 diff --git a/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/mcuconf.h b/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/mcuconf.h new file mode 100644 index 0000000000..0e89bead66 --- /dev/null +++ b/keyboards/unicomp/spacesaver_m_pre_2013/overnumpad_1xb/mcuconf.h @@ -0,0 +1,11 @@ +// Copyright 2025 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#include_next + +#undef STM32_PLLM_VALUE +#define STM32_PLLM_VALUE 8 + +#undef STM32_PLLSAIM_VALUE +#define STM32_PLLSAIM_VALUE 8 diff --git a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h index f05762c9b4..b06d96b5d7 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h +++ b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/board.h @@ -15,7 +15,6 @@ */ #pragma once -#define STM32_HSECLK 16000000 // The following is required to disable the pull-down on PA9, when PA9 is used for the keyboard matrix: #define BOARD_OTG_NOVBUSSENS diff --git a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h index 362327efde..9af5c14d52 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h +++ b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/config.h @@ -13,6 +13,7 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ +#pragma once #ifndef EARLY_INIT_PERFORM_BOOTLOADER_JUMP # define EARLY_INIT_PERFORM_BOOTLOADER_JUMP TRUE diff --git a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h index 566c146c25..9c5cb82436 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h @@ -48,7 +48,7 @@ #define STM32_CLOCK48_REQUIRED TRUE #define STM32_SW STM32_SW_PLL #define STM32_PLLSRC STM32_PLLSRC_HSE -#define STM32_PLLM_VALUE 8 +#define STM32_PLLM_VALUE 4 #define STM32_PLLN_VALUE 180 #define STM32_PLLP_VALUE 2 #define STM32_PLLQ_VALUE 7 @@ -58,7 +58,7 @@ #define STM32_PLLI2SP_VALUE 4 #define STM32_PLLI2SQ_VALUE 4 #define STM32_PLLSAIN_VALUE 192 -#define STM32_PLLSAIM_VALUE 8 +#define STM32_PLLSAIM_VALUE 4 #define STM32_PLLSAIP_VALUE 8 #define STM32_PLLSAIQ_VALUE 4 #define STM32_HPRE STM32_HPRE_DIV1 From 4f21beb7153c2b0a1f4d41de7dad5a2173f896b6 Mon Sep 17 00:00:00 2001 From: Boudewijn van Groos Date: Sat, 18 Oct 2025 23:31:52 +0200 Subject: [PATCH 077/255] Fix drv haptics docs by using the correct function name (#25733) --- docs/features/haptic_feedback.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/haptic_feedback.md b/docs/features/haptic_feedback.md index 08e66ea8e1..d380b1b999 100644 --- a/docs/features/haptic_feedback.md +++ b/docs/features/haptic_feedback.md @@ -121,7 +121,7 @@ Linear resonant actuators (LRA, also know as a linear vibrator) works different #### DRV2605L waveform library -DRV2605L comes with preloaded library of various waveform sequences that can be called and played. If writing a macro, these waveforms can be played using `DRV_pulse(*sequence name or number*)` +DRV2605L comes with preloaded library of various waveform sequences that can be called and played. If writing a macro, these waveforms can be played using `drv2605l_pulse(*sequence name or number*)` after adding `#include "drv2605l.h"`. List of waveform sequences from the datasheet: From 81df54308687713371ed5fbf4947e38963c7867b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Sun, 19 Oct 2025 10:14:37 +0800 Subject: [PATCH 078/255] Debounce: Deprecate num_rows parameter (#25632) --- docs/ChangeLog/20251130/PR25632.md | 4 + docs/custom_matrix.md | 4 +- keyboards/bpiphany/pegasushoof/2015/matrix.c | 202 ++++++----- keyboards/gboards/gergo/gergo.c | 3 + keyboards/gboards/gergo/gergo.h | 3 + keyboards/gboards/gergo/matrix.c | 315 +++++++++--------- .../gergoplex/keymaps/default/config.h | 3 + keyboards/gboards/gergoplex/matrix.c | 35 +- keyboards/halfcliff/matrix.c | 56 ++-- keyboards/handwired/owlet60/matrix.c | 144 ++++---- .../symmetric70_proto/matrix_debug/matrix.c | 42 ++- .../symmetric70_proto/matrix_fast/matrix.c | 4 +- keyboards/kakunpc/angel64/alpha/matrix.c | 156 ++++----- keyboards/kakunpc/angel64/rev1/matrix.c | 156 ++++----- keyboards/kakunpc/thedogkeyboard/matrix.c | 156 ++++----- keyboards/kbdmania/kmac/matrix.c | 32 +- keyboards/redscarf_iiplus/verb/matrix.c | 183 +++++----- keyboards/redscarf_iiplus/verc/matrix.c | 183 +++++----- keyboards/redscarf_iiplus/verd/matrix.c | 183 +++++----- keyboards/ymdk/sp64/keymaps/default/keymap.c | 3 + keyboards/ymdk/sp64/matrix.c | 169 +++++----- quantum/debounce.h | 5 +- quantum/debounce/asym_eager_defer_pk.c | 4 +- quantum/debounce/none.c | 6 +- quantum/debounce/sym_defer_g.c | 6 +- quantum/debounce/sym_defer_pk.c | 4 +- quantum/debounce/sym_defer_pr.c | 4 +- quantum/debounce/sym_eager_pk.c | 4 +- quantum/debounce/sym_eager_pr.c | 4 +- .../debounce/tests/debounce_test_common.cpp | 4 +- quantum/matrix.c | 6 +- quantum/matrix_common.c | 6 +- 32 files changed, 983 insertions(+), 1106 deletions(-) create mode 100644 docs/ChangeLog/20251130/PR25632.md mode change 100755 => 100644 keyboards/redscarf_iiplus/verb/matrix.c mode change 100755 => 100644 keyboards/redscarf_iiplus/verc/matrix.c diff --git a/docs/ChangeLog/20251130/PR25632.md b/docs/ChangeLog/20251130/PR25632.md new file mode 100644 index 0000000000..39136067b9 --- /dev/null +++ b/docs/ChangeLog/20251130/PR25632.md @@ -0,0 +1,4 @@ +# Changes Requiring User Action +## Debounce: Deprecate init and remove num_rows parameter [#25632](https://github.com/qmk/qmk_firmware/pull/25632) + +With dynamic memory allocation removed from all debounce implementations ([#25515](https://github.com/qmk/qmk_firmware/pull/25515)), the `num_rows` parameter has been removed from the `debounce_init()` and `debounce()` functions. The `MATRIX_ROWS_PER_HAND` is now used by default in every implementation. diff --git a/docs/custom_matrix.md b/docs/custom_matrix.md index ef206944e1..294b88bb0b 100644 --- a/docs/custom_matrix.md +++ b/docs/custom_matrix.md @@ -74,7 +74,7 @@ void matrix_init(void) { // TODO: initialize hardware and global matrix state here // Unless hardware debouncing - Init the configured debounce routine - debounce_init(MATRIX_ROWS); + debounce_init(); // This *must* be called for correct keyboard behavior matrix_init_kb(); @@ -86,7 +86,7 @@ uint8_t matrix_scan(void) { // TODO: add matrix scanning routine here // Unless hardware debouncing - use the configured debounce routine - changed = debounce(raw_matrix, matrix, MATRIX_ROWS, changed); + changed = debounce(raw_matrix, matrix, changed); // This *must* be called for correct keyboard behavior matrix_scan_kb(); diff --git a/keyboards/bpiphany/pegasushoof/2015/matrix.c b/keyboards/bpiphany/pegasushoof/2015/matrix.c index 6fc1fd6e9e..61135e5833 100644 --- a/keyboards/bpiphany/pegasushoof/2015/matrix.c +++ b/keyboards/bpiphany/pegasushoof/2015/matrix.c @@ -31,13 +31,17 @@ static matrix_row_t matrix[MATRIX_ROWS]; static matrix_row_t matrix_debouncing[MATRIX_ROWS]; static matrix_row_t read_cols(void); -static void select_row(uint8_t col); +static void select_row(uint8_t col); // user-defined overridable functions -__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } +__attribute__((weak)) void matrix_init_kb(void) { + matrix_init_user(); +} -__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } +__attribute__((weak)) void matrix_scan_kb(void) { + matrix_scan_user(); +} __attribute__((weak)) void matrix_init_user(void) {} @@ -45,105 +49,125 @@ __attribute__((weak)) void matrix_scan_user(void) {} // helper functions -inline uint8_t matrix_rows(void) -{ - return MATRIX_ROWS; +inline uint8_t matrix_rows(void) { + return MATRIX_ROWS; } -inline uint8_t matrix_cols(void) -{ - return MATRIX_COLS; +inline uint8_t matrix_cols(void) { + return MATRIX_COLS; } -void matrix_init(void) -{ - /* Column output pins */ - DDRD |= 0b01111011; - /* Row input pins */ - DDRC &= ~0b10000000; - DDRB &= ~0b01111111; - PORTC |= 0b10000000; - PORTB |= 0b01111111; +void matrix_init(void) { + /* Column output pins */ + DDRD |= 0b01111011; + /* Row input pins */ + DDRC &= ~0b10000000; + DDRB &= ~0b01111111; + PORTC |= 0b10000000; + PORTB |= 0b01111111; - for (uint8_t i=0; i < matrix_rows(); i++) { - matrix[i] = 0; - matrix_debouncing[i] = 0; - } - - matrix_init_kb(); -} - -uint8_t matrix_scan(void) -{ - bool changed = false; - for (uint8_t col = 0; col < MATRIX_COLS; col++) { - select_row(col); - wait_us(30); - matrix_row_t rows = read_cols(); - for (uint8_t row = 0; row < matrix_rows(); row++) { - bool prev_bit = matrix_debouncing[row] & ((matrix_row_t)1<. #include "gergo.h" #ifdef BALLER -#include -#include "pointing_device.h" +# include +# include "pointing_device.h" #endif #ifndef DEBOUNCE -# define DEBOUNCE 5 +# define DEBOUNCE 5 #endif // MCP Pin Defs -#define RROW1 (1u<<3) -#define RROW2 (1u<<2) -#define RROW3 (1u<<1) -#define RROW4 (1u<<0) -#define COL0 (1u<<0) -#define COL1 (1u<<1) -#define COL2 (1u<<2) -#define COL3 (1u<<3) -#define COL4 (1u<<4) -#define COL5 (1u<<5) -#define COL6 (1u<<6) +#define RROW1 (1u << 3) +#define RROW2 (1u << 2) +#define RROW3 (1u << 1) +#define RROW4 (1u << 0) +#define COL0 (1u << 0) +#define COL1 (1u << 1) +#define COL2 (1u << 2) +#define COL3 (1u << 3) +#define COL4 (1u << 4) +#define COL5 (1u << 5) +#define COL6 (1u << 6) // ATmega pin defs -#define ROW1 (1u<<6) -#define ROW2 (1u<<5) -#define ROW3 (1u<<4) -#define ROW4 (1u<<1) -#define COL7 (1u<<0) -#define COL8 (1u<<1) -#define COL9 (1u<<2) -#define COL10 (1u<<3) -#define COL11 (1u<<2) -#define COL12 (1u<<3) -#define COL13 (1u<<6) - -//Trackball pin defs -#define TRKUP (1u<<4) -#define TRKDN (1u<<5) -#define TRKLT (1u<<6) -#define TRKRT (1u<<7) -#define TRKBTN (1u<<6) +#define ROW1 (1u << 6) +#define ROW2 (1u << 5) +#define ROW3 (1u << 4) +#define ROW4 (1u << 1) +#define COL7 (1u << 0) +#define COL8 (1u << 1) +#define COL9 (1u << 2) +#define COL10 (1u << 3) +#define COL11 (1u << 2) +#define COL12 (1u << 3) +#define COL13 (1u << 6) +// Trackball pin defs +#define TRKUP (1u << 4) +#define TRKDN (1u << 5) +#define TRKLT (1u << 6) +#define TRKRT (1u << 7) +#define TRKBTN (1u << 6) // Multiple for mouse moves #ifndef TRKSTEP -#define TRKSTEP 20 +# define TRKSTEP 20 #endif // multiple for mouse scroll #ifndef SCROLLSTEP -#define SCROLLSTEP 5 +# define SCROLLSTEP 5 #endif // bit masks -#define BMASK (COL7 | COL8 | COL9 | COL10) -#define CMASK (COL13) -#define DMASK (COL11 | COL12) -#define FMASK (ROW1 | ROW2 | ROW3 | ROW4) -#define RROWMASK (RROW1 | RROW2 | RROW3 | RROW4) -#define MCPMASK (COL0 | COL1 | COL2 | COL3 | COL4 | COL5 | COL6) -#define TRKMASK (TRKUP | TRKDN | TRKRT | TRKLT) +#define BMASK (COL7 | COL8 | COL9 | COL10) +#define CMASK (COL13) +#define DMASK (COL11 | COL12) +#define FMASK (ROW1 | ROW2 | ROW3 | ROW4) +#define RROWMASK (RROW1 | RROW2 | RROW3 | RROW4) +#define MCPMASK (COL0 | COL1 | COL2 | COL3 | COL4 | COL5 | COL6) +#define TRKMASK (TRKUP | TRKDN | TRKRT | TRKLT) // Trackball interrupts accumulate over here. Processed on scan // Stores prev state of mouse, high bits store direction uint8_t trkState = 0; uint8_t trkBtnState = 0; -volatile uint8_t tbUpCnt = 0; -volatile uint8_t tbDnCnt = 0; -volatile uint8_t tbLtCnt = 0; -volatile uint8_t tbRtCnt = 0; +volatile uint8_t tbUpCnt = 0; +volatile uint8_t tbDnCnt = 0; +volatile uint8_t tbLtCnt = 0; +volatile uint8_t tbRtCnt = 0; /* matrix state(1:on, 0:off) */ static matrix_row_t matrix[MATRIX_ROWS]; @@ -111,29 +110,30 @@ 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 void enableInterrupts(void); +static void enableInterrupts(void); static uint8_t mcp23018_reset_loop; // static uint16_t mcp23018_reset_loop; -__attribute__ ((weak)) void matrix_init_user(void) {} +__attribute__((weak)) void matrix_init_user(void) {} -__attribute__ ((weak)) void matrix_scan_user(void) {} +__attribute__((weak)) void matrix_scan_user(void) {} -__attribute__ ((weak)) -void matrix_init_kb(void) { - matrix_init_user(); +__attribute__((weak)) void matrix_init_kb(void) { + matrix_init_user(); } -__attribute__ ((weak)) -void matrix_scan_kb(void) { - matrix_scan_user(); +__attribute__((weak)) void matrix_scan_kb(void) { + matrix_scan_user(); } -inline uint8_t matrix_rows(void) { return MATRIX_ROWS; } - -inline uint8_t matrix_cols(void) { return MATRIX_COLS; } +inline uint8_t matrix_rows(void) { + return MATRIX_ROWS; +} +inline uint8_t matrix_cols(void) { + return MATRIX_COLS; +} void matrix_init(void) { // initialize row and col @@ -141,13 +141,13 @@ void matrix_init(void) { unselect_rows(); init_cols(); - // initialize matrix state: all keys off - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - matrix[i] = 0; - raw_matrix[i] = 0; - } + // initialize matrix state: all keys off + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { + matrix[i] = 0; + raw_matrix[i] = 0; + } - debounce_init(MATRIX_ROWS); + debounce_init(); matrix_init_kb(); } @@ -158,7 +158,7 @@ void matrix_power_up(void) { init_cols(); // initialize matrix state: all keys off - for (uint8_t i=0; i < MATRIX_ROWS; i++) { + for (uint8_t i = 0; i < MATRIX_ROWS; i++) { matrix[i] = 0; } } @@ -166,63 +166,66 @@ void matrix_power_up(void) { // Reads and stores a row, returning // whether a change occurred. static inline bool store_raw_matrix_row(uint8_t index) { - matrix_row_t temp = read_cols(index); - if (raw_matrix[index] != temp) { - raw_matrix[index] = temp; - return true; - } - return false; + matrix_row_t temp = read_cols(index); + if (raw_matrix[index] != temp) { + raw_matrix[index] = temp; + return true; + } + return false; } - - uint8_t matrix_scan(void) { // TODO: Find what is trashing interrupts enableInterrupts(); // First we handle the mouse inputs #ifdef BALLER - uint8_t pBtn = PINE & TRKBTN; + uint8_t pBtn = PINE & TRKBTN; - #ifdef DEBUG_BALLER +# ifdef DEBUG_BALLER // Compare to previous, mod report - if (tbUpCnt + tbDnCnt + tbLtCnt + tbRtCnt != 0) - xprintf("U: %d D: %d L: %d R: %d B: %d\n", tbUpCnt, tbDnCnt, tbLtCnt, tbRtCnt, (trkBtnState >> 6)); - #endif + if (tbUpCnt + tbDnCnt + tbLtCnt + tbRtCnt != 0) xprintf("U: %d D: %d L: %d R: %d B: %d\n", tbUpCnt, tbDnCnt, tbLtCnt, tbRtCnt, (trkBtnState >> 6)); +# endif // Modify the report report_mouse_t pRprt = pointing_device_get_report(); // Scroll by default, move on layer if (layer_state == 0) { - pRprt.h += tbLtCnt * SCROLLSTEP; tbLtCnt = 0; - pRprt.h -= tbRtCnt * SCROLLSTEP; tbRtCnt = 0; - pRprt.v -= tbUpCnt * SCROLLSTEP; tbUpCnt = 0; - pRprt.v += tbDnCnt * SCROLLSTEP; tbDnCnt = 0; + pRprt.h += tbLtCnt * SCROLLSTEP; + tbLtCnt = 0; + pRprt.h -= tbRtCnt * SCROLLSTEP; + tbRtCnt = 0; + pRprt.v -= tbUpCnt * SCROLLSTEP; + tbUpCnt = 0; + pRprt.v += tbDnCnt * SCROLLSTEP; + tbDnCnt = 0; } else { - pRprt.x -= tbLtCnt * TRKSTEP * (layer_state - 1); tbLtCnt = 0; - pRprt.x += tbRtCnt * TRKSTEP * (layer_state - 1); tbRtCnt = 0; - pRprt.y -= tbUpCnt * TRKSTEP * (layer_state - 1); tbUpCnt = 0; - pRprt.y += tbDnCnt * TRKSTEP * (layer_state - 1); tbDnCnt = 0; + pRprt.x -= tbLtCnt * TRKSTEP * (layer_state - 1); + tbLtCnt = 0; + pRprt.x += tbRtCnt * TRKSTEP * (layer_state - 1); + tbRtCnt = 0; + pRprt.y -= tbUpCnt * TRKSTEP * (layer_state - 1); + tbUpCnt = 0; + pRprt.y += tbDnCnt * TRKSTEP * (layer_state - 1); + tbDnCnt = 0; } -#ifdef DEBUG_BALLER - if (pRprt.x != 0 || pRprt.y != 0) - xprintf("X: %d Y: %d\n", pRprt.x, pRprt.y); -#endif +# ifdef DEBUG_BALLER + if (pRprt.x != 0 || pRprt.y != 0) xprintf("X: %d Y: %d\n", pRprt.x, pRprt.y); +# endif - if ((pBtn != trkBtnState) && ((pBtn >> 6) == 0)) pRprt.buttons |= MOUSE_BTN1; - if ((pBtn != trkBtnState) && ((pBtn >> 6) == 1)) pRprt.buttons &= ~MOUSE_BTN1; + if ((pBtn != trkBtnState) && ((pBtn >> 6) == 0)) pRprt.buttons |= MOUSE_BTN1; + if ((pBtn != trkBtnState) && ((pBtn >> 6) == 1)) pRprt.buttons &= ~MOUSE_BTN1; // Save state, push update - if (pRprt.x != 0 || pRprt.y != 0 || pRprt.h != 0 || pRprt.v != 0 || (trkBtnState != pBtn)) - pointing_device_set_report(pRprt); + if (pRprt.x != 0 || pRprt.y != 0 || pRprt.h != 0 || pRprt.v != 0 || (trkBtnState != pBtn)) pointing_device_set_report(pRprt); trkBtnState = pBtn; #endif // Then the keyboard - if (mcp23018_status) { // if there was an error + if (mcp23018_status) { // if there was an error if (++mcp23018_reset_loop == 0) { // if (++mcp23018_reset_loop >= 1300) { // since mcp23018_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans @@ -240,7 +243,7 @@ uint8_t matrix_scan(void) { 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 left_index = i; uint8_t right_index = i + MATRIX_ROWS_PER_SIDE; select_row(left_index); select_row(right_index); @@ -254,41 +257,46 @@ uint8_t matrix_scan(void) { unselect_rows(); } - debounce(raw_matrix, matrix, MATRIX_ROWS, changed); + debounce(raw_matrix, matrix, changed); matrix_scan_kb(); enableInterrupts(); #ifdef DEBUG_MATRIX for (uint8_t c = 0; c < MATRIX_COLS; c++) - for (uint8_t r = 0; r < MATRIX_ROWS; r++) - if (matrix_is_on(r, c)) xprintf("r:%d c:%d \n", r, c); + for (uint8_t r = 0; r < MATRIX_ROWS; r++) + if (matrix_is_on(r, c)) xprintf("r:%d c:%d \n", r, c); #endif return 1; } -inline bool matrix_is_on(uint8_t row, uint8_t col) { return (matrix[row] & ((matrix_row_t)1 << col)); } +inline bool matrix_is_on(uint8_t row, uint8_t col) { + return (matrix[row] & ((matrix_row_t)1 << col)); +} -inline matrix_row_t matrix_get_row(uint8_t row) { return matrix[row]; } +inline matrix_row_t matrix_get_row(uint8_t row) { + return matrix[row]; +} void matrix_print(void) { print("\nr/c 0123456789ABCDEF\n"); for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - print_hex8(row); print(": "); + print_hex8(row); + print(": "); print_bin_reverse16(matrix_get_row(row)); print("\n"); } } // Remember this means ROWS -static void init_cols(void) { +static void init_cols(void) { // init on mcp23018 // not needed, already done as part of init_mcp23018() // Input with pull-up(DDR:0, PORT:1) - DDRF &= ~FMASK; - PORTF |= FMASK; + DDRF &= ~FMASK; + PORTF |= FMASK; } static matrix_row_t read_cols(uint8_t row) { @@ -296,7 +304,7 @@ static matrix_row_t read_cols(uint8_t row) { if (mcp23018_status) { // if there was an error return 0; } else { - uint8_t data = 0; + uint8_t data = 0; mcp23018_status = i2c_read_register(I2C_ADDR, GPIOB, &data, 1, I2C_TIMEOUT); #ifdef DEBUG_MATRIX @@ -305,113 +313,106 @@ static matrix_row_t read_cols(uint8_t row) { return ~data; } } else { - /* read from teensy - * bitmask is 0b0111001, but we want the lower four - * we'll return 1s for the top two, but that's harmless. - */ + /* read from teensy + * bitmask is 0b0111001, but we want the lower four + * we'll return 1s for the top two, but that's harmless. + */ // So I need to confuckulate all this - //return ~(((PIND & DMASK) >> 1 | ((PINC & CMASK) >> 6) | (PIN))); - //return ~((PINF & 0x03) | ((PINF & 0xF0) >> 2)); - return ~( - (((PINF & ROW4) >> 1) - | ((PINF & (ROW1 | ROW2 | ROW3)) >> 3)) - & 0xF); + // return ~(((PIND & DMASK) >> 1 | ((PINC & CMASK) >> 6) | (PIN))); + // return ~((PINF & 0x03) | ((PINF & 0xF0) >> 2)); + return ~((((PINF & ROW4) >> 1) | ((PINF & (ROW1 | ROW2 | ROW3)) >> 3)) & 0xF); } } // Row pin configuration -static void unselect_rows(void) -{ +static void unselect_rows(void) { // no need to unselect on mcp23018, because the select step sets all // the other row bits high, and it's not changing to a different // direction // Hi-Z(DDR:0, PORT:0) to unselect - DDRB &= ~(BMASK | TRKMASK); + DDRB &= ~(BMASK | TRKMASK); PORTB &= ~(BMASK); - DDRC &= ~CMASK; + DDRC &= ~CMASK; PORTC &= ~CMASK; - DDRD &= ~DMASK; + DDRD &= ~DMASK; PORTD &= ~DMASK; - // Fix trashing of DDRB for TB + // Fix trashing of DDRB for TB PORTB |= TRKMASK; } -static void select_row(uint8_t row) -{ +static void select_row(uint8_t row) { if (row < 7) { // select on mcp23018 if (mcp23018_status) { // do nothing on error - } else { // set active row low : 0 // set other rows hi-Z : 1 - uint8_t data = 0xFF & ~(1<= 1300) { // since mcp23018_reset_loop is 8 bit - we'll try to reset once in 255 matrix scans @@ -140,7 +142,7 @@ uint8_t matrix_scan(void) { unselect_rows(); } - debounce(raw_matrix, matrix, MATRIX_ROWS, changed); + debounce(raw_matrix, matrix, changed); matrix_scan_kb(); #ifdef DEBUG_MATRIX @@ -152,8 +154,12 @@ uint8_t matrix_scan(void) { return 1; } -inline bool matrix_is_on(uint8_t row, uint8_t col) { return (matrix[row] & ((matrix_row_t)1 << col)); } -inline matrix_row_t matrix_get_row(uint8_t row) { return matrix[row]; } +inline bool matrix_is_on(uint8_t row, uint8_t col) { + return (matrix[row] & ((matrix_row_t)1 << col)); +} +inline matrix_row_t matrix_get_row(uint8_t row) { + return matrix[row]; +} void matrix_print(void) { print("\nr/c 0123456789ABCDEF\n"); @@ -168,16 +174,16 @@ void matrix_print(void) { // Remember this means ROWS static void init_cols(void) { for (uint8_t col = 0; col < MATRIX_COLS; col++) { - gpio_set_pin_input_high(col_pins[col]); + gpio_set_pin_input_high(col_pins[col]); } } static matrix_row_t read_cols(uint8_t row) { if (row < 5) { - if (mcp23018_status) { // if there was an error + if (mcp23018_status) { // if there was an error return 0; } else { - uint8_t data = 0; + uint8_t data = 0; mcp23018_status = i2c_receive(I2C_ADDR, &data, 1, I2C_TIMEOUT); #ifdef DEBUG_MATRIX if (~data != 0x00) xprintf("I2C: %d\n", ~data); @@ -195,20 +201,19 @@ static void unselect_rows(void) { // the other row bits high, and it's not changing to a different direction for (uint8_t row = 0; row < MATRIX_ROWS_PER_SIDE; row++) { - gpio_set_pin_input(row_pins[row]); - gpio_write_pin_low(row_pins[row]); + gpio_set_pin_input(row_pins[row]); + gpio_write_pin_low(row_pins[row]); } } static void select_row(uint8_t row) { if (row < 5) { // select on mcp23018 - if (mcp23018_status) { // do nothing on error - } else { // set active row low : 0 // set other rows hi-Z : 1 + if (mcp23018_status) { // do nothing on error + } else { // set active row low : 0 // set other rows hi-Z : 1 uint8_t data; - data = 0xFF & ~(1 << (row + 1)); + data = 0xFF & ~(1 << (row + 1)); mcp23018_status = i2c_write_register(I2C_ADDR, GPIOA, &data, 1, I2C_TIMEOUT); - } } else { gpio_set_pin_output(row_pins[row - MATRIX_ROWS_PER_SIDE]); diff --git a/keyboards/halfcliff/matrix.c b/keyboards/halfcliff/matrix.c index 790f8c41bb..fc9d437a45 100644 --- a/keyboards/halfcliff/matrix.c +++ b/keyboards/halfcliff/matrix.c @@ -29,16 +29,20 @@ static pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; /* matrix state(1:on, 0:off) */ -static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values -static matrix_row_t matrix[MATRIX_ROWS]; // debounced values +static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values // row offsets for each hand uint8_t thisHand, thatHand; // user-defined overridable functions -__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } +__attribute__((weak)) void matrix_init_kb(void) { + matrix_init_user(); +} -__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } +__attribute__((weak)) void matrix_scan_kb(void) { + matrix_scan_user(); +} __attribute__((weak)) void matrix_init_user(void) {} @@ -46,7 +50,9 @@ __attribute__((weak)) void matrix_scan_user(void) {} __attribute__((weak)) void matrix_slave_scan_user(void) {} -matrix_row_t matrix_get_row(uint8_t row) { return matrix[row]; } +matrix_row_t matrix_get_row(uint8_t row) { + return matrix[row]; +} void matrix_print(void) {} @@ -58,13 +64,19 @@ static inline void gpio_atomic_set_pin_output_low(pin_t pin) { } static inline void gpio_atomic_set_pin_input_high(pin_t pin) { - ATOMIC_BLOCK_FORCEON { gpio_set_pin_input_high(pin); } + ATOMIC_BLOCK_FORCEON { + gpio_set_pin_input_high(pin); + } } // matrix code -static void select_row(uint8_t row) { gpio_atomic_set_pin_output_low(row_pins[row]); } +static void select_row(uint8_t row) { + gpio_atomic_set_pin_output_low(row_pins[row]); +} -static void unselect_row(uint8_t row) { gpio_atomic_set_pin_input_high(row_pins[row]); } +static void unselect_row(uint8_t row) { + gpio_atomic_set_pin_input_high(row_pins[row]); +} static void unselect_rows(void) { for (uint8_t x = 0; x < ROWS_PER_HAND; x++) { @@ -92,7 +104,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) // Unselect row unselect_row(current_row); if (current_row + 1 < MATRIX_ROWS) { - wait_us(30); // wait for row signal to go HIGH + wait_us(30); // wait for row signal to go HIGH } // If the row has changed, store the row and return the changed flag. @@ -103,9 +115,13 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) return false; } -static void select_col(uint8_t col) { gpio_atomic_set_pin_output_low(col_pins[col]); } +static void select_col(uint8_t col) { + gpio_atomic_set_pin_output_low(col_pins[col]); +} -static void unselect_col(uint8_t col) { gpio_atomic_set_pin_input_high(col_pins[col]); } +static void unselect_col(uint8_t col) { + gpio_atomic_set_pin_input_high(col_pins[col]); +} static void unselect_cols(void) { for (uint8_t x = 0; x < MATRIX_COLS; x++) { @@ -156,7 +172,7 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) // Unselect col unselect_col(current_col); if (current_col + 1 < MATRIX_COLS) { - wait_us(30); // wait for col signal to go HIGH + wait_us(30); // wait for col signal to go HIGH } return matrix_changed; @@ -201,7 +217,7 @@ void matrix_init(void) { matrix[i] = 0; } - debounce_init(ROWS_PER_HAND); + debounce_init(); matrix_init_kb(); @@ -248,26 +264,26 @@ bool matrix_post_scan(void) { } uint8_t matrix_scan(void) { - bool local_changed = false; - static matrix_row_t temp_raw_matrix[MATRIX_ROWS]; // temp raw values + bool local_changed = false; + static matrix_row_t temp_raw_matrix[MATRIX_ROWS]; // temp raw values // Set row, read cols - for (uint8_t current_row = 0; current_row < ROWS_PER_HAND/2; current_row++) { + for (uint8_t current_row = 0; current_row < ROWS_PER_HAND / 2; current_row++) { local_changed |= read_cols_on_row(raw_matrix, current_row); } // Set col, read rows for (uint8_t current_col = 0; current_col < MATRIX_COLS; current_col++) { local_changed |= read_rows_on_col(temp_raw_matrix, current_col); - //Updated key matrix on lines 6-10 (or lines 16-20) - if(local_changed) { - for (uint8_t i = ROWS_PER_HAND/2; i < ROWS_PER_HAND; i++) { + // Updated key matrix on lines 6-10 (or lines 16-20) + if (local_changed) { + for (uint8_t i = ROWS_PER_HAND / 2; i < ROWS_PER_HAND; i++) { raw_matrix[i] = temp_raw_matrix[i]; } } } - debounce(raw_matrix, matrix + thisHand, ROWS_PER_HAND, local_changed); + debounce(raw_matrix, matrix + thisHand, local_changed); bool remote_changed = matrix_post_scan(); return (uint8_t)(local_changed || remote_changed); diff --git a/keyboards/handwired/owlet60/matrix.c b/keyboards/handwired/owlet60/matrix.c index 7ef5d66a9f..2017b4de85 100644 --- a/keyboards/handwired/owlet60/matrix.c +++ b/keyboards/handwired/owlet60/matrix.c @@ -29,82 +29,62 @@ along with this program. If not, see . #include "timer.h" #if (MATRIX_COLS <= 8) -# define print_matrix_header() print("\nr/c 01234567\n") -# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) # define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) # define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) +# define ROW_SHIFTER ((uint32_t)1) #endif static const uint8_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; -static const uint8_t col_select_pins[3] = MATRIX_COL_SELECT_PINS; -static const uint8_t dat_pin = MATRIX_COL_DATA_PIN; +static const uint8_t col_select_pins[3] = MATRIX_COL_SELECT_PINS; +static const uint8_t dat_pin = MATRIX_COL_DATA_PIN; /* matrix state(1:on, 0:off) */ -static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values -static matrix_row_t matrix[MATRIX_ROWS]; //raw values +static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t matrix[MATRIX_ROWS]; // raw values /* 2d array containing binary representation of its index */ static const uint8_t num_in_binary[8][3] = { - {0, 0, 0}, - {0, 0, 1}, - {0, 1, 0}, - {0, 1, 1}, - {1, 0, 0}, - {1, 0, 1}, - {1, 1, 0}, - {1, 1, 1}, + {0, 0, 0}, {0, 0, 1}, {0, 1, 0}, {0, 1, 1}, {1, 0, 0}, {1, 0, 1}, {1, 1, 0}, {1, 1, 1}, }; static void select_col_analog(uint8_t col); static void mux_pin_control(const uint8_t binary[]); -void debounce_init(uint8_t num_rows); -void debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed); +void debounce_init(void); +void debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed); +__attribute__((weak)) void matrix_init_user(void) {} -__attribute__ ((weak)) -void matrix_init_user(void) {} +__attribute__((weak)) void matrix_scan_user(void) {} -__attribute__ ((weak)) -void matrix_scan_user(void) {} - -__attribute__ ((weak)) -void matrix_init_kb(void) { - matrix_init_user(); +__attribute__((weak)) void matrix_init_kb(void) { + matrix_init_user(); } -__attribute__ ((weak)) -void matrix_scan_kb(void) { - matrix_scan_user(); +__attribute__((weak)) void matrix_scan_kb(void) { + matrix_scan_user(); } -inline -uint8_t matrix_rows(void) -{ +inline uint8_t matrix_rows(void) { return MATRIX_ROWS; } -inline -uint8_t matrix_cols(void) -{ +inline uint8_t matrix_cols(void) { return MATRIX_COLS; } -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1<. #include "debounce.h" #if (MATRIX_COLS <= 8) -# define print_matrix_header() print("\nr/c 01234567\n") -# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) # define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) # define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) +# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED - extern const matrix_row_t matrix_mask[]; +extern const matrix_row_t matrix_mask[]; #endif static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; /* matrix state(1:on, 0:off) */ -static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values -static matrix_row_t matrix[MATRIX_ROWS]; //debounced values +static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values -__attribute__ ((weak)) -void matrix_init_kb(void) { +__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } -__attribute__ ((weak)) -void matrix_scan_kb(void) { +__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } -__attribute__ ((weak)) -void matrix_init_user(void) { -} +__attribute__((weak)) void matrix_init_user(void) {} -__attribute__ ((weak)) -void matrix_scan_user(void) { -} +__attribute__((weak)) void matrix_scan_user(void) {} -inline -uint8_t matrix_rows(void) { +inline uint8_t matrix_rows(void) { return MATRIX_ROWS; } -inline -uint8_t matrix_cols(void) { +inline uint8_t matrix_cols(void) { return MATRIX_COLS; } -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1<. #include "debounce.h" #if (MATRIX_COLS <= 8) -# define print_matrix_header() print("\nr/c 01234567\n") -# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) # define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) # define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) +# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED - extern const matrix_row_t matrix_mask[]; +extern const matrix_row_t matrix_mask[]; #endif static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; /* matrix state(1:on, 0:off) */ -static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values -static matrix_row_t matrix[MATRIX_ROWS]; //debounced values +static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values -__attribute__ ((weak)) -void matrix_init_kb(void) { +__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } -__attribute__ ((weak)) -void matrix_scan_kb(void) { +__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } -__attribute__ ((weak)) -void matrix_init_user(void) { -} +__attribute__((weak)) void matrix_init_user(void) {} -__attribute__ ((weak)) -void matrix_scan_user(void) { -} +__attribute__((weak)) void matrix_scan_user(void) {} -inline -uint8_t matrix_rows(void) { +inline uint8_t matrix_rows(void) { return MATRIX_ROWS; } -inline -uint8_t matrix_cols(void) { +inline uint8_t matrix_cols(void) { return MATRIX_COLS; } -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1<. #include "debounce.h" #if (MATRIX_COLS <= 8) -# define print_matrix_header() print("\nr/c 01234567\n") -# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) # define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) # define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) +# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED - extern const matrix_row_t matrix_mask[]; +extern const matrix_row_t matrix_mask[]; #endif static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; /* matrix state(1:on, 0:off) */ -static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values -static matrix_row_t matrix[MATRIX_ROWS]; //debounced values +static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values -__attribute__ ((weak)) -void matrix_init_kb(void) { +__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } -__attribute__ ((weak)) -void matrix_scan_kb(void) { +__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } -__attribute__ ((weak)) -void matrix_init_user(void) { -} +__attribute__((weak)) void matrix_init_user(void) {} -__attribute__ ((weak)) -void matrix_scan_user(void) { -} +__attribute__((weak)) void matrix_scan_user(void) {} -inline -uint8_t matrix_rows(void) { +inline uint8_t matrix_rows(void) { return MATRIX_ROWS; } -inline -uint8_t matrix_cols(void) { +inline uint8_t matrix_cols(void) { return MATRIX_COLS; } -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1<. #include "debounce.h" #if (MATRIX_COLS <= 8) -# define print_matrix_header() print("\nr/c 01234567\n") -# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) # define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) # define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) +# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED - extern const matrix_row_t matrix_mask[]; +extern const matrix_row_t matrix_mask[]; #endif #ifdef DIRECT_PINS @@ -47,46 +47,34 @@ static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; #endif /* matrix state(1:on, 0:off) */ -static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values -static matrix_row_t matrix[MATRIX_ROWS]; //debounced values +static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values -__attribute__ ((weak)) -void matrix_init_kb(void) { +__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } -__attribute__ ((weak)) -void matrix_scan_kb(void) { +__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } -__attribute__ ((weak)) -void matrix_init_user(void) { -} +__attribute__((weak)) void matrix_init_user(void) {} -__attribute__ ((weak)) -void matrix_scan_user(void) { -} +__attribute__((weak)) void matrix_scan_user(void) {} -inline -uint8_t matrix_rows(void) { +inline uint8_t matrix_rows(void) { return MATRIX_ROWS; } -inline -uint8_t matrix_cols(void) { +inline uint8_t matrix_cols(void) { return MATRIX_COLS; } -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1<. #include "debounce.h" #if (MATRIX_COLS <= 8) -# define print_matrix_header() print("\nr/c 01234567\n") -# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) # define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) # define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) +# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED - extern const matrix_row_t matrix_mask[]; +extern const matrix_row_t matrix_mask[]; #endif #ifdef DIRECT_PINS @@ -47,46 +47,34 @@ static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; #endif /* matrix state(1:on, 0:off) */ -static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values -static matrix_row_t matrix[MATRIX_ROWS]; //debounced values +static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values -__attribute__ ((weak)) -void matrix_init_kb(void) { +__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } -__attribute__ ((weak)) -void matrix_scan_kb(void) { +__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } -__attribute__ ((weak)) -void matrix_init_user(void) { -} +__attribute__((weak)) void matrix_init_user(void) {} -__attribute__ ((weak)) -void matrix_scan_user(void) { -} +__attribute__((weak)) void matrix_scan_user(void) {} -inline -uint8_t matrix_rows(void) { +inline uint8_t matrix_rows(void) { return MATRIX_ROWS; } -inline -uint8_t matrix_cols(void) { +inline uint8_t matrix_cols(void) { return MATRIX_COLS; } -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1<. #include "debounce.h" #if (MATRIX_COLS <= 8) -# define print_matrix_header() print("\nr/c 01234567\n") -# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) +# define print_matrix_header() print("\nr/c 01234567\n") +# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) # define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) # define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) +# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") +# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) +# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED - extern const matrix_row_t matrix_mask[]; +extern const matrix_row_t matrix_mask[]; #endif #ifdef DIRECT_PINS @@ -47,46 +47,34 @@ static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; #endif /* matrix state(1:on, 0:off) */ -static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values -static matrix_row_t matrix[MATRIX_ROWS]; //debounced values +static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values +static matrix_row_t matrix[MATRIX_ROWS]; // debounced values -__attribute__ ((weak)) -void matrix_init_kb(void) { +__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } -__attribute__ ((weak)) -void matrix_scan_kb(void) { +__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } -__attribute__ ((weak)) -void matrix_init_user(void) { -} +__attribute__((weak)) void matrix_init_user(void) {} -__attribute__ ((weak)) -void matrix_scan_user(void) { -} +__attribute__((weak)) void matrix_scan_user(void) {} -inline -uint8_t matrix_rows(void) { +inline uint8_t matrix_rows(void) { return MATRIX_ROWS; } -inline -uint8_t matrix_cols(void) { +inline uint8_t matrix_cols(void) { return MATRIX_COLS; } -inline -bool matrix_is_on(uint8_t row, uint8_t col) -{ - return (matrix[row] & ((matrix_row_t)1<= 1300) { - // since mcp23018_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 - print("trying to reset mcp23018\n"); - mcp23018_status = init_mcp23018(); - if (mcp23018_status) { - print("left side not responding\n"); - } else { - print("left side attached\n"); - } + // Then the keyboard + if (mcp23018_status != I2C_STATUS_SUCCESS) { + if (++mcp23018_reset_loop == 0) { + // if (++mcp23018_reset_loop >= 1300) { + // since mcp23018_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 + print("trying to reset mcp23018\n"); + mcp23018_status = init_mcp23018(); + if (mcp23018_status) { + print("left side not responding\n"); + } else { + print("left side attached\n"); + } + } } - } #endif - bool changed = false; - for (uint8_t row = 0; row < MATRIX_ROWS; row++) - { - matrix_row_t cols; + bool changed = false; + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + matrix_row_t cols; - matrix_select_row(row); + matrix_select_row(row); #ifndef RIGHT_HALF - _delay_us(5); + _delay_us(5); #endif - cols = ( - // cols 0..7, PORTA 0 -> 7 - (~PINA) & 0xFF - ); + cols = ( + // cols 0..7, PORTA 0 -> 7 + (~PINA) & 0xFF); #ifdef RIGHT_HALF - uint8_t data = 0x7F; - // Receive the columns from right half - i2c_receive(I2C_ADDR, &data, 1, MCP23018_I2C_TIMEOUT); - cols |= ((~(data) & 0x7F) << 7); + uint8_t data = 0x7F; + // Receive the columns from right half + i2c_receive(I2C_ADDR, &data, 1, MCP23018_I2C_TIMEOUT); + cols |= ((~(data) & 0x7F) << 7); #endif - if (matrix_debouncing[row] != cols) { - matrix_debouncing[row] = cols; - //debouncing = DEBOUNCE; - changed = true; + if (matrix_debouncing[row] != cols) { + matrix_debouncing[row] = cols; + // debouncing = DEBOUNCE; + changed = true; + } } - } - debounce(matrix_debouncing, matrix, MATRIX_ROWS, changed); + debounce(matrix_debouncing, matrix, changed); - matrix_scan_kb(); + matrix_scan_kb(); #ifdef DEBUG_MATRIX - for (uint8_t c = 0; c < MATRIX_COLS; c++) - for (uint8_t r = 0; r < MATRIX_ROWS; r++) - if (matrix_is_on(r, c)) xprintf("r:%d c:%d \n", r, c); + for (uint8_t c = 0; c < MATRIX_COLS; c++) + for (uint8_t r = 0; r < MATRIX_ROWS; r++) + if (matrix_is_on(r, c)) xprintf("r:%d c:%d \n", r, c); #endif - return (uint8_t)changed; + return (uint8_t)changed; } -inline -matrix_row_t matrix_get_row(uint8_t row) -{ +inline matrix_row_t matrix_get_row(uint8_t row) { return matrix[row]; } -void matrix_print(void) -{ - print("\nr/c 0123456789ABCDEF\n"); - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - print_hex8(row); print(": "); - print_bin_reverse16(matrix_get_row(row)); - print("\n"); - } +void matrix_print(void) { + print("\nr/c 0123456789ABCDEF\n"); + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + print_hex8(row); + print(": "); + print_bin_reverse16(matrix_get_row(row)); + print("\n"); + } } -static void matrix_select_row(uint8_t row) -{ +static void matrix_select_row(uint8_t row) { #ifdef RIGHT_HALF - uint8_t txdata[3]; + uint8_t txdata[3]; - //Set the remote row on port A - txdata[0] = GPIOA; - txdata[1] = 0xFF & ~(1< -void debounce_init(uint8_t num_rows) {} +void debounce_init(void) {} -bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { +bool debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed) { bool cooked_changed = false; if (changed) { - size_t matrix_size = num_rows * sizeof(matrix_row_t); + size_t matrix_size = MATRIX_ROWS_PER_HAND * sizeof(matrix_row_t); if (memcmp(cooked, raw, matrix_size) != 0) { memcpy(cooked, raw, matrix_size); cooked_changed = true; diff --git a/quantum/debounce/sym_defer_g.c b/quantum/debounce/sym_defer_g.c index 81f351c126..a60a131072 100644 --- a/quantum/debounce/sym_defer_g.c +++ b/quantum/debounce/sym_defer_g.c @@ -20,9 +20,9 @@ #if DEBOUNCE > 0 -void debounce_init(uint8_t num_rows) {} +void debounce_init(void) {} -bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { +bool debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed) { static fast_timer_t debouncing_time; static bool debouncing = false; bool cooked_changed = false; @@ -31,7 +31,7 @@ bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool debouncing = true; debouncing_time = timer_read_fast(); } else if (debouncing && timer_elapsed_fast(debouncing_time) >= DEBOUNCE) { - size_t matrix_size = num_rows * sizeof(matrix_row_t); + size_t matrix_size = MATRIX_ROWS_PER_HAND * sizeof(matrix_row_t); if (memcmp(cooked, raw, matrix_size) != 0) { memcpy(cooked, raw, matrix_size); cooked_changed = true; diff --git a/quantum/debounce/sym_defer_pk.c b/quantum/debounce/sym_defer_pk.c index 063094efe5..b910571219 100644 --- a/quantum/debounce/sym_defer_pk.c +++ b/quantum/debounce/sym_defer_pk.c @@ -32,9 +32,9 @@ static bool cooked_changed; static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time); static inline void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[]); -void debounce_init(uint8_t num_rows) {} +void debounce_init(void) {} -bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { +bool debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed) { static fast_timer_t last_time; bool updated_last = false; cooked_changed = false; diff --git a/quantum/debounce/sym_defer_pr.c b/quantum/debounce/sym_defer_pr.c index 2382fae898..feaf55b08a 100644 --- a/quantum/debounce/sym_defer_pr.c +++ b/quantum/debounce/sym_defer_pr.c @@ -33,9 +33,9 @@ static bool cooked_changed; static inline void update_debounce_counters_and_transfer_if_expired(matrix_row_t raw[], matrix_row_t cooked[], uint8_t elapsed_time); static inline void start_debounce_counters(matrix_row_t raw[], matrix_row_t cooked[]); -void debounce_init(uint8_t num_rows) {} +void debounce_init(void) {} -bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { +bool debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed) { static fast_timer_t last_time; bool updated_last = false; cooked_changed = false; diff --git a/quantum/debounce/sym_eager_pk.c b/quantum/debounce/sym_eager_pk.c index c3a7afde24..1f53330e9c 100644 --- a/quantum/debounce/sym_eager_pk.c +++ b/quantum/debounce/sym_eager_pk.c @@ -46,9 +46,9 @@ static bool cooked_changed; static inline void update_debounce_counters(uint8_t elapsed_time); static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]); -void debounce_init(uint8_t num_rows) {} +void debounce_init(void) {} -bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { +bool debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed) { static fast_timer_t last_time; bool updated_last = false; cooked_changed = false; diff --git a/quantum/debounce/sym_eager_pr.c b/quantum/debounce/sym_eager_pr.c index 5a1e3a1bda..c929ff53dc 100644 --- a/quantum/debounce/sym_eager_pr.c +++ b/quantum/debounce/sym_eager_pr.c @@ -33,9 +33,9 @@ static bool cooked_changed; static inline void update_debounce_counters(uint8_t elapsed_time); static inline void transfer_matrix_values(matrix_row_t raw[], matrix_row_t cooked[]); -void debounce_init(uint8_t num_rows) {} +void debounce_init(void) {} -bool debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed) { +bool debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed) { static fast_timer_t last_time; bool updated_last = false; cooked_changed = false; diff --git a/quantum/debounce/tests/debounce_test_common.cpp b/quantum/debounce/tests/debounce_test_common.cpp index 3782f51411..84b91f85e1 100644 --- a/quantum/debounce/tests/debounce_test_common.cpp +++ b/quantum/debounce/tests/debounce_test_common.cpp @@ -60,7 +60,7 @@ void DebounceTest::runEventsInternal() { bool first = true; /* Initialise keyboard with start time (offset to avoid testing at 0) and all keys UP */ - debounce_init(MATRIX_ROWS); + debounce_init(); set_time(time_offset_); simulate_async_tick(async_time_jumps_); std::fill(std::begin(input_matrix_), std::end(input_matrix_), 0); @@ -129,7 +129,7 @@ void DebounceTest::runDebounce(bool changed) { reset_access_counter(); - bool cooked_changed = debounce(raw_matrix_, cooked_matrix_, MATRIX_ROWS, changed); + bool cooked_changed = debounce(raw_matrix_, cooked_matrix_, changed); if (!std::equal(std::begin(input_matrix_), std::end(input_matrix_), std::begin(raw_matrix_))) { FAIL() << "Fatal error: debounce() modified raw matrix at " << strTime() << "\ninput_matrix: changed=" << changed << "\n" << strMatrix(input_matrix_) << "\nraw_matrix:\n" << strMatrix(raw_matrix_); diff --git a/quantum/matrix.c b/quantum/matrix.c index 167a70e5b6..2e7ea085f4 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c @@ -303,7 +303,7 @@ void matrix_init(void) { memset(matrix, 0, sizeof(matrix)); memset(raw_matrix, 0, sizeof(raw_matrix)); - debounce_init(MATRIX_ROWS_PER_HAND); + debounce_init(); matrix_init_kb(); } @@ -336,9 +336,9 @@ uint8_t matrix_scan(void) { if (changed) memcpy(raw_matrix, curr_matrix, sizeof(curr_matrix)); #ifdef SPLIT_KEYBOARD - changed = debounce(raw_matrix, matrix + thisHand, MATRIX_ROWS_PER_HAND, changed) | matrix_post_scan(); + changed = debounce(raw_matrix, matrix + thisHand, changed) | matrix_post_scan(); #else - changed = debounce(raw_matrix, matrix, MATRIX_ROWS_PER_HAND, changed); + changed = debounce(raw_matrix, matrix, changed); matrix_scan_kb(); #endif return (uint8_t)changed; diff --git a/quantum/matrix_common.c b/quantum/matrix_common.c index b4a86fc483..26589f29a6 100644 --- a/quantum/matrix_common.c +++ b/quantum/matrix_common.c @@ -156,7 +156,7 @@ __attribute__((weak)) void matrix_init(void) { matrix[i] = 0; } - debounce_init(MATRIX_ROWS_PER_HAND); + debounce_init(); matrix_init_kb(); } @@ -165,9 +165,9 @@ __attribute__((weak)) uint8_t matrix_scan(void) { bool changed = matrix_scan_custom(raw_matrix); #ifdef SPLIT_KEYBOARD - changed = debounce(raw_matrix, matrix + thisHand, MATRIX_ROWS_PER_HAND, changed) | matrix_post_scan(); + changed = debounce(raw_matrix, matrix + thisHand, changed) | matrix_post_scan(); #else - changed = debounce(raw_matrix, matrix, MATRIX_ROWS_PER_HAND, changed); + changed = debounce(raw_matrix, matrix, changed); matrix_scan_kb(); #endif From cb3149b7f26bc8efb0bb9b8ab489fa3eb0f963b9 Mon Sep 17 00:00:00 2001 From: Filios92 Date: Mon, 27 Oct 2025 00:47:04 +0100 Subject: [PATCH 079/255] Fix RGB matrix not syncing and turning off properly on timeout (#25467) --- quantum/led_matrix/led_matrix.c | 32 ++++++++++++++++++-------------- quantum/rgb_matrix/rgb_matrix.c | 32 ++++++++++++++++++-------------- 2 files changed, 36 insertions(+), 28 deletions(-) diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c index b2665597df..715d520d1c 100644 --- a/quantum/led_matrix/led_matrix.c +++ b/quantum/led_matrix/led_matrix.c @@ -78,11 +78,12 @@ static const uint8_t led_matrix_flag_steps[] = LED_MATRIX_FLAG_STEPS; #define LED_MATRIX_FLAG_STEPS_COUNT ARRAY_SIZE(led_matrix_flag_steps) // internals -static bool suspend_state = false; -static uint8_t led_last_enable = UINT8_MAX; -static uint8_t led_last_effect = UINT8_MAX; -static effect_params_t led_effect_params = {0, LED_FLAG_ALL, false}; -static led_task_states led_task_state = SYNCING; +static bool suspend_state = false; +static uint8_t led_last_enable = UINT8_MAX; +static uint8_t led_last_effect = UINT8_MAX; +static uint8_t led_current_effect = 0; +static effect_params_t led_effect_params = {0, LED_FLAG_ALL, false}; +static led_task_states led_task_state = SYNCING; // double buffers static uint32_t led_timer_buffer; @@ -268,6 +269,17 @@ static void led_task_start(void) { g_last_hit_tracker = last_hit_buffer; #endif // LED_MATRIX_KEYREACTIVE_ENABLED + // Ideally we would also stop sending zeros to the LED driver PWM buffers + // while suspended and just do a software shutdown. This is a cheap hack for now. + bool suspend_backlight = suspend_state || +#if LED_MATRIX_TIMEOUT > 0 + (last_input_activity_elapsed() > (uint32_t)LED_MATRIX_TIMEOUT) || +#endif // LED_MATRIX_TIMEOUT > 0 + false; + + // Set effect to be renedered + led_current_effect = suspend_backlight || !led_matrix_eeconfig.enable ? 0 : led_matrix_eeconfig.mode; + // next task led_task_state = RENDERING; } @@ -349,15 +361,7 @@ static void led_task_flush(uint8_t effect) { void led_matrix_task(void) { led_task_timers(); - // Ideally we would also stop sending zeros to the LED driver PWM buffers - // while suspended and just do a software shutdown. This is a cheap hack for now. - bool suspend_backlight = suspend_state || -#if LED_MATRIX_TIMEOUT > 0 - (last_input_activity_elapsed() > (uint32_t)LED_MATRIX_TIMEOUT) || -#endif // LED_MATRIX_TIMEOUT > 0 - false; - - uint8_t effect = suspend_backlight || !led_matrix_eeconfig.enable ? 0 : led_matrix_eeconfig.mode; + uint8_t effect = led_current_effect; switch (led_task_state) { case STARTING: diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c index 19edfb52b0..f517190e35 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c @@ -80,11 +80,12 @@ static const uint8_t rgb_matrix_flag_steps[] = RGB_MATRIX_FLAG_STEPS; #define RGB_MATRIX_FLAG_STEPS_COUNT ARRAY_SIZE(rgb_matrix_flag_steps) // internals -static bool suspend_state = false; -static uint8_t rgb_last_enable = UINT8_MAX; -static uint8_t rgb_last_effect = UINT8_MAX; -static effect_params_t rgb_effect_params = {0, LED_FLAG_ALL, false}; -static rgb_task_states rgb_task_state = SYNCING; +static bool suspend_state = false; +static uint8_t rgb_last_enable = UINT8_MAX; +static uint8_t rgb_last_effect = UINT8_MAX; +static uint8_t rgb_current_effect = 0; +static effect_params_t rgb_effect_params = {0, LED_FLAG_ALL, false}; +static rgb_task_states rgb_task_state = SYNCING; // double buffers static uint32_t rgb_timer_buffer; @@ -296,6 +297,17 @@ static void rgb_task_start(void) { g_last_hit_tracker = last_hit_buffer; #endif // RGB_MATRIX_KEYREACTIVE_ENABLED + // Ideally we would also stop sending zeros to the LED driver PWM buffers + // while suspended and just do a software shutdown. This is a cheap hack for now. + bool suspend_backlight = suspend_state || +#if RGB_MATRIX_TIMEOUT > 0 + (last_input_activity_elapsed() > (uint32_t)RGB_MATRIX_TIMEOUT) || +#endif // RGB_MATRIX_TIMEOUT > 0 + false; + + // Set effect to be renedered + rgb_current_effect = suspend_backlight || !rgb_matrix_config.enable ? 0 : rgb_matrix_config.mode; + // next task rgb_task_state = RENDERING; } @@ -384,15 +396,7 @@ static void rgb_task_flush(uint8_t effect) { void rgb_matrix_task(void) { rgb_task_timers(); - // Ideally we would also stop sending zeros to the LED driver PWM buffers - // while suspended and just do a software shutdown. This is a cheap hack for now. - bool suspend_backlight = suspend_state || -#if RGB_MATRIX_TIMEOUT > 0 - (last_input_activity_elapsed() > (uint32_t)RGB_MATRIX_TIMEOUT) || -#endif // RGB_MATRIX_TIMEOUT > 0 - false; - - uint8_t effect = suspend_backlight || !rgb_matrix_config.enable ? 0 : rgb_matrix_config.mode; + uint8_t effect = rgb_current_effect; switch (rgb_task_state) { case STARTING: From cbd55b7890b5679bb35dffabc5b4dd411b46f13e Mon Sep 17 00:00:00 2001 From: Aleks <8698469+aleksbrgt@users.noreply.github.com> Date: Mon, 27 Oct 2025 05:11:57 +0100 Subject: [PATCH 080/255] Restrict mouse timer activation to movement keycodes (#25716) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: フィルターペーパー <76888457+filterpaper@users.noreply.github.com> --- quantum/mousekey.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/quantum/mousekey.c b/quantum/mousekey.c index 9649943a0d..863c6baccc 100644 --- a/quantum/mousekey.c +++ b/quantum/mousekey.c @@ -386,7 +386,8 @@ void mousekey_task(void) { void mousekey_on(uint8_t code) { # ifdef MK_KINETIC_SPEED - if (mouse_timer == 0) { + // Start kinetic timer when movement keycodes are pressed + if (mouse_timer == 0 && (IS_MOUSEKEY_MOVE(code) || IS_MOUSEKEY_WHEEL(code))) { mouse_timer = timer_read(); } # endif From acd7ad37e662b2d4dc5c0c6af79232929c84deda Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Tue, 28 Oct 2025 23:32:31 +1100 Subject: [PATCH 081/255] Update ChibiOS-Contrib. (#25751) --- lib/chibios-contrib | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/chibios-contrib b/lib/chibios-contrib index 3ac181e4ca..8d863d9ee4 160000 --- a/lib/chibios-contrib +++ b/lib/chibios-contrib @@ -1 +1 @@ -Subproject commit 3ac181e4ca5cafddaf8b472baa1d09c2b24c77b6 +Subproject commit 8d863d9ee4eecea68ad8d15f7e7c2b451aea79d9 From 8c93a33cd3c77ad3296c84a642d5f889fd13fac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nimish=20G=C3=A5tam?= Date: Sun, 2 Nov 2025 00:17:50 +0100 Subject: [PATCH 082/255] making flowtap timer public so it can be used easily with combos (#25731) --- quantum/action_tapping.c | 7 +++++++ quantum/action_tapping.h | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/quantum/action_tapping.c b/quantum/action_tapping.c index b105cd60a9..c2f45ea178 100644 --- a/quantum/action_tapping.c +++ b/quantum/action_tapping.c @@ -883,6 +883,13 @@ static bool flow_tap_key_if_within_term(keyrecord_t *record, uint16_t prev_time) return false; } +// Checks both flow_tap_expired flag and elapsed time to determine +// if the key is within the flow tap term. +bool within_flow_tap_term(uint16_t keycode, keyrecord_t *record) { + uint16_t term = get_flow_tap_term(keycode, record, flow_tap_prev_keycode); + return !flow_tap_expired && TIMER_DIFF_16(record->event.time, flow_tap_prev_time) <= term; +} + // By default, enable Flow Tap for the keys in the main alphas area and Space. // This should work reasonably even if the layout is remapped on the host to an // alt layout or international layout (e.g. Dvorak or AZERTY), where these same diff --git a/quantum/action_tapping.h b/quantum/action_tapping.h index 0cf4aa1200..8220952706 100644 --- a/quantum/action_tapping.h +++ b/quantum/action_tapping.h @@ -169,6 +169,16 @@ uint16_t get_flow_tap_term(uint16_t keycode, keyrecord_t *record, uint16_t prev_ /** Updates the Flow Tap last key and timer. */ void flow_tap_update_last_event(keyrecord_t *record); + +/** + * Checks if the pressed key is within the flow tap term. + * Can be used to avoid triggering combos or other actions within the flow tap term. + * + * @param keycode The keycode of the pressed key. + * @param record The keyrecord of the pressed key. + * @return True if the pressed key is within the flow tap term; false otherwise. + */ +bool within_flow_tap_term(uint16_t keycode, keyrecord_t *record); #endif // FLOW_TAP_TERM #ifdef DYNAMIC_TAPPING_TERM_ENABLE From 5ba424ca17c33ca8f2ba049fceb804315679d3ae Mon Sep 17 00:00:00 2001 From: Tvrd Rad Keyboards <103246902+TvrdRadKeyboards@users.noreply.github.com> Date: Sun, 2 Nov 2025 06:53:04 +0100 Subject: [PATCH 083/255] Add TRKeyboard TRK2 keyboard (#25754) Co-authored-by: Jack Sangdahl Co-authored-by: Joel Challis --- keyboards/trkeyboards/trk2/keyboard.json | 124 ++++++++++++++++++ .../trkeyboards/trk2/keymaps/default/keymap.c | 29 ++++ .../trkeyboards/trk2/keymaps/default/rules.mk | 1 + keyboards/trkeyboards/trk2/readme.md | 26 ++++ 4 files changed, 180 insertions(+) create mode 100644 keyboards/trkeyboards/trk2/keyboard.json create mode 100644 keyboards/trkeyboards/trk2/keymaps/default/keymap.c create mode 100644 keyboards/trkeyboards/trk2/keymaps/default/rules.mk create mode 100644 keyboards/trkeyboards/trk2/readme.md diff --git a/keyboards/trkeyboards/trk2/keyboard.json b/keyboards/trkeyboards/trk2/keyboard.json new file mode 100644 index 0000000000..f62ee53a03 --- /dev/null +++ b/keyboards/trkeyboards/trk2/keyboard.json @@ -0,0 +1,124 @@ +{ + "manufacturer": "Tvrd Rad Keyboards", + "keyboard_name": "Tvrd Rad Keyboards TRK2", + "maintainer": "tvrdrad-keyboards", + "bootloader": "halfkay", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "B0", "pin_b": "B1", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["B3", "B2", "D2", "D3", "C6", "C7", "D5", "F6", "F7", "B6", "B5", "B4", "D7", "D6", "D4"], + "rows": ["F5", "F4", "F1", "F0", "B7"] + }, + "processor": "atmega32u4", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true + }, + "led_count": 19, + "max_brightness": 120 + }, + "url": "https://www.trkeyboards.com/", + "usb": { + "device_version": "0.0.1", + "pid": "0x0002", + "vid": "0x5452" + }, + "ws2812": { + "pin": "E6" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [0, 0], "x": 0.75, "y": 0}, + {"matrix": [0, 1], "x": 1.75, "y": 0}, + {"matrix": [0, 2], "x": 2.75, "y": 0}, + {"matrix": [0, 3], "x": 4, "y": 0}, + {"matrix": [0, 4], "x": 5, "y": 0}, + {"matrix": [0, 5], "x": 6, "y": 0}, + {"matrix": [0, 6], "x": 7, "y": 0}, + {"matrix": [0, 7], "x": 10, "y": 0}, + {"matrix": [0, 8], "x": 11, "y": 0}, + {"matrix": [0, 9], "x": 12, "y": 0}, + {"matrix": [0, 10], "x": 13, "y": 0}, + {"matrix": [0, 11], "x": 14.25, "y": 0}, + {"matrix": [0, 12], "x": 15.25, "y": 0}, + {"matrix": [0, 13], "x": 16.25, "y": 0}, + {"matrix": [0, 14], "x": 17.25, "y": 0}, + {"matrix": [1, 0], "x": 0.5, "y": 1, "w": 1.5}, + {"matrix": [1, 1], "x": 2, "y": 1}, + {"matrix": [1, 2], "x": 3.5, "y": 1}, + {"matrix": [1, 3], "x": 4.5, "y": 1}, + {"matrix": [1, 4], "x": 5.5, "y": 1}, + {"matrix": [1, 5], "x": 6.5, "y": 1}, + {"matrix": [1, 6], "x": 9.25, "y": 1}, + {"matrix": [1, 7], "x": 10.25, "y": 1}, + {"matrix": [1, 8], "x": 11.25, "y": 1}, + {"matrix": [1, 9], "x": 12.25, "y": 1}, + {"matrix": [1, 10], "x": 13.25, "y": 1}, + {"matrix": [1, 11], "x": 14.75, "y": 1}, + {"matrix": [1, 12], "x": 15.75, "y": 1}, + {"matrix": [1, 13], "x": 16.75, "y": 1, "w": 1.5}, + {"matrix": [1, 14], "x": 18.25, "y": 1}, + {"matrix": [2, 0], "x": 0.25, "y": 2, "w": 1.75}, + {"matrix": [2, 1], "x": 2, "y": 2}, + {"matrix": [2, 2], "x": 3.75, "y": 2}, + {"matrix": [2, 3], "x": 4.75, "y": 2}, + {"matrix": [2, 4], "x": 5.75, "y": 2}, + {"matrix": [2, 5], "x": 6.75, "y": 2}, + {"matrix": [2, 6], "x": 9.5, "y": 2}, + {"matrix": [2, 7], "x": 10.5, "y": 2}, + {"matrix": [2, 8], "x": 11.5, "y": 2}, + {"matrix": [2, 9], "x": 12.5, "y": 2}, + {"matrix": [2, 10], "x": 18.25, "y": 0}, + {"matrix": [2, 11], "x": 14, "y": 2}, + {"matrix": [2, 12], "x": 15, "y": 2}, + {"matrix": [2, 13], "x": 16, "y": 2, "w": 2.25}, + {"matrix": [2, 14], "x": 18.25, "y": 2}, + {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"matrix": [3, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 4.25, "y": 3}, + {"matrix": [3, 3], "x": 5.25, "y": 3}, + {"matrix": [3, 4], "x": 6.25, "y": 3}, + {"matrix": [3, 5], "x": 7.25, "y": 3}, + {"matrix": [4, 5], "x": 8.75, "y": 3}, + {"matrix": [3, 6], "x": 9.75, "y": 3}, + {"matrix": [3, 7], "x": 10.75, "y": 3}, + {"matrix": [3, 8], "x": 11.75, "y": 3}, + {"matrix": [3, 9], "x": 12.75, "y": 3}, + {"matrix": [3, 11], "x": 14.5, "y": 3}, + {"matrix": [3, 12], "x": 15.5, "y": 3, "w": 1.75}, + {"matrix": [3, 13], "x": 17.25, "y": 3}, + {"matrix": [3, 14], "x": 18.25, "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": 4.5, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 5.75, "y": 4, "w": 2.75}, + {"matrix": [4, 6], "x": 9, "y": 4, "w": 2.25}, + {"matrix": [4, 8], "x": 11.25, "y": 4}, + {"matrix": [4, 11], "x": 15, "y": 4, "w": 1.25}, + {"matrix": [4, 12], "x": 16.25, "y": 4}, + {"matrix": [4, 13], "x": 17.25, "y": 4}, + {"matrix": [4, 14], "x": 18.25, "y": 4} + ] + } + } +} diff --git a/keyboards/trkeyboards/trk2/keymaps/default/keymap.c b/keyboards/trkeyboards/trk2/keymaps/default/keymap.c new file mode 100644 index 0000000000..0791908af1 --- /dev/null +++ b/keyboards/trkeyboards/trk2/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +// Copyright 2025 Tvrd Rad Keyboards +// 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_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_KP_SLASH, KC_KP_ASTERISK, + 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_MUTE, KC_SCLN, KC_QUOTE, KC_ENTER, KC_END, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RSFT, KC_UP, KC_DELETE, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPACE, KC_BSPC, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT( + QK_BOOT, 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_PMNS, KC_PPLS, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGDN, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, + [1] = { ENCODER_CCW_CW(_______, _______) } +}; +#endif diff --git a/keyboards/trkeyboards/trk2/keymaps/default/rules.mk b/keyboards/trkeyboards/trk2/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/trkeyboards/trk2/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/trkeyboards/trk2/readme.md b/keyboards/trkeyboards/trk2/readme.md new file mode 100644 index 0000000000..7e6edbac04 --- /dev/null +++ b/keyboards/trkeyboards/trk2/readme.md @@ -0,0 +1,26 @@ +# Tvrd Rad Keyboards TRK2 + +![TRK2](https://i.imgur.com/iO2zIIT.jpeg) + +Custom keyboard designed by Tvrd Rad Keyboards aka TRK2 + +* Keyboard Maintainer: [Tvrd Rad Keyboards](https://www.trkeyboards.com) +* Hardware Supported: TRK2 PCB +* Hardware Availability: https://www.trkeyboards.com/rs/tastature/5-trk2/ + +Make example for this keyboard (after setting up your build environment): + + make trkeyboards/trk2:default + +Flashing example for this keyboard: + + make trkeyboards/trk2: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 or Escape) and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From c67e4c2caee2102ba863124bfc60caefeffecae1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Jim=C3=A9nez=20Mateo?= Date: Sun, 2 Nov 2025 06:55:16 +0100 Subject: [PATCH 084/255] Add classic48 keyboard (#25492) Co-authored-by: Pablo Jimenez Mateo --- .../pablojimenezmateo/classic48/config.h | 23 +++ .../pablojimenezmateo/classic48/keyboard.json | 152 ++++++++++++++++++ .../classic48/keymaps/default/keymap.c | 72 +++++++++ .../pablojimenezmateo/classic48/readme.md | 28 ++++ 4 files changed, 275 insertions(+) create mode 100644 keyboards/pablojimenezmateo/classic48/config.h create mode 100644 keyboards/pablojimenezmateo/classic48/keyboard.json create mode 100644 keyboards/pablojimenezmateo/classic48/keymaps/default/keymap.c create mode 100644 keyboards/pablojimenezmateo/classic48/readme.md diff --git a/keyboards/pablojimenezmateo/classic48/config.h b/keyboards/pablojimenezmateo/classic48/config.h new file mode 100644 index 0000000000..8716f34b75 --- /dev/null +++ b/keyboards/pablojimenezmateo/classic48/config.h @@ -0,0 +1,23 @@ +/* Copyright 2025 Pablo Jiménez Mateo (@pablojimenezmateo) + * + * 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 EE_HANDS + +#define MK_KINETIC_SPEED +#define MOUSEKEY_INITIAL_SPEED 200 +#define MOUSEKEY_WHEEL_INITIAL_MOVEMENTS 2 +#define MOUSEKEY_WHEEL_BASE_MOVEMENTS 16 diff --git a/keyboards/pablojimenezmateo/classic48/keyboard.json b/keyboards/pablojimenezmateo/classic48/keyboard.json new file mode 100644 index 0000000000..ba65022860 --- /dev/null +++ b/keyboards/pablojimenezmateo/classic48/keyboard.json @@ -0,0 +1,152 @@ +{ + "manufacturer": "Pablo Jim\u00e9nez Mateo", + "keyboard_name": "classic48", + "maintainer": "pablojimenezmateo", + "development_board": "promicro_rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP23", "GP21", "GP16", "GP15", "GP14", "GP13"], + "rows": ["GP27", "GP26", "GP22", "GP20"] + }, + "rgb_matrix": { + "default": { + "hue": 180, + "sat": 100, + "val": 60 + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 20, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 40, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 60, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 80, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 100, "y": 0, "flags": 4}, + {"matrix": [4, 0], "x": 240, "y": 0, "flags": 4}, + {"matrix": [4, 1], "x": 220, "y": 0, "flags": 4}, + {"matrix": [4, 2], "x": 200, "y": 0, "flags": 4}, + {"matrix": [4, 3], "x": 180, "y": 0, "flags": 4}, + {"matrix": [4, 4], "x": 160, "y": 0, "flags": 4}, + {"matrix": [4, 5], "x": 140, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 20, "flags": 4}, + {"matrix": [1, 1], "x": 20, "y": 20, "flags": 4}, + {"matrix": [1, 2], "x": 40, "y": 20, "flags": 4}, + {"matrix": [1, 3], "x": 60, "y": 20, "flags": 4}, + {"matrix": [1, 4], "x": 80, "y": 20, "flags": 4}, + {"matrix": [1, 5], "x": 100, "y": 20, "flags": 4}, + {"matrix": [5, 0], "x": 240, "y": 20, "flags": 4}, + {"matrix": [5, 1], "x": 220, "y": 20, "flags": 4}, + {"matrix": [5, 2], "x": 200, "y": 20, "flags": 4}, + {"matrix": [5, 3], "x": 180, "y": 20, "flags": 4}, + {"matrix": [5, 4], "x": 160, "y": 20, "flags": 4}, + {"matrix": [5, 5], "x": 140, "y": 20, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 40, "flags": 4}, + {"matrix": [2, 1], "x": 20, "y": 40, "flags": 4}, + {"matrix": [2, 2], "x": 40, "y": 40, "flags": 4}, + {"matrix": [2, 3], "x": 60, "y": 40, "flags": 4}, + {"matrix": [2, 4], "x": 80, "y": 40, "flags": 4}, + {"matrix": [2, 5], "x": 100, "y": 40, "flags": 4}, + {"matrix": [6, 0], "x": 240, "y": 40, "flags": 4}, + {"matrix": [6, 1], "x": 220, "y": 40, "flags": 4}, + {"matrix": [6, 2], "x": 200, "y": 40, "flags": 4}, + {"matrix": [6, 3], "x": 180, "y": 40, "flags": 4}, + {"matrix": [6, 4], "x": 160, "y": 40, "flags": 4}, + {"matrix": [6, 5], "x": 140, "y": 40, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 60, "flags": 4}, + {"matrix": [3, 1], "x": 20, "y": 60, "flags": 4}, + {"matrix": [3, 2], "x": 40, "y": 60, "flags": 4}, + {"matrix": [3, 3], "x": 60, "y": 60, "flags": 4}, + {"matrix": [3, 4], "x": 80, "y": 60, "flags": 4}, + {"matrix": [3, 5], "x": 100, "y": 60, "flags": 4}, + {"matrix": [7, 0], "x": 240, "y": 60, "flags": 4}, + {"matrix": [7, 1], "x": 220, "y": 60, "flags": 4}, + {"matrix": [7, 2], "x": 200, "y": 60, "flags": 4}, + {"matrix": [7, 3], "x": 180, "y": 60, "flags": 4}, + {"matrix": [7, 4], "x": 160, "y": 60, "flags": 4}, + {"matrix": [7, 5], "x": 140, "y": 60, "flags": 4} + ], + "max_brightness": 200 + }, + "split": { + "enabled": true, + "serial": { + "driver": "vendor", + "pin": "GP28" + }, + "transport": { + "sync": { + "layer_state": true + } + } + }, + "url": "https://github.com/pablojimenezmateo/classic48", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP29" + }, + "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": [4, 5], "x": 7, "y": 0}, + {"matrix": [4, 4], "x": 8, "y": 0}, + {"matrix": [4, 3], "x": 9, "y": 0}, + {"matrix": [4, 2], "x": 10, "y": 0}, + {"matrix": [4, 1], "x": 11, "y": 0}, + {"matrix": [4, 0], "x": 12, "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": [5, 5], "x": 7, "y": 1}, + {"matrix": [5, 4], "x": 8, "y": 1}, + {"matrix": [5, 3], "x": 9, "y": 1}, + {"matrix": [5, 2], "x": 10, "y": 1}, + {"matrix": [5, 1], "x": 11, "y": 1}, + {"matrix": [5, 0], "x": 12, "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": [6, 5], "x": 7, "y": 2}, + {"matrix": [6, 4], "x": 8, "y": 2}, + {"matrix": [6, 3], "x": 9, "y": 2}, + {"matrix": [6, 2], "x": 10, "y": 2}, + {"matrix": [6, 1], "x": 11, "y": 2}, + {"matrix": [6, 0], "x": 12, "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": [7, 5], "x": 7, "y": 3}, + {"matrix": [7, 4], "x": 8, "y": 3}, + {"matrix": [7, 3], "x": 9, "y": 3}, + {"matrix": [7, 2], "x": 10, "y": 3}, + {"matrix": [7, 1], "x": 11, "y": 3}, + {"matrix": [7, 0], "x": 12, "y": 3} + ] + } + } +} diff --git a/keyboards/pablojimenezmateo/classic48/keymaps/default/keymap.c b/keyboards/pablojimenezmateo/classic48/keymaps/default/keymap.c new file mode 100644 index 0000000000..20dbf6269e --- /dev/null +++ b/keyboards/pablojimenezmateo/classic48/keymaps/default/keymap.c @@ -0,0 +1,72 @@ +/* Copyright 2025 Pablo Jiménez Mateo (@pablojimenezmateo) + * + * 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 layer_names { + _MAIN, + _NUMBERS, + _SYMBOLS, + _NAVIGATION +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_MAIN] = LAYOUT( + KC_NO, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_NO, + 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_ESCAPE, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_NO, + LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_NO, MO(_NUMBERS), LT(3, KC_SPC), LT(2, KC_ENTER), KC_LSFT, KC_NO, KC_LGUI, KC_NO, LCTL(KC_F) + ), + [_NUMBERS] = LAYOUT( + KC_NO, KC_F1, KC_F2, KC_F3, KC_F4, KC_NO, KC_NO, KC_7, KC_8, KC_9, KC_NO, KC_NO, + KC_NO, KC_F5, KC_F6, KC_F7, KC_F8, KC_NO, KC_NO, KC_4, KC_5, KC_6, KC_NO, KC_NO, + KC_NO, KC_F9, KC_F10, KC_F11, KC_F12, KC_NO, KC_NO, KC_1, KC_2, KC_3, KC_NO, KC_NO, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_0, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO + ), + [_SYMBOLS] = LAYOUT( + KC_NO, KC_PIPE, KC_AT, KC_LCBR, KC_RCBR, KC_CIRC, KC_QUOT, KC_DQUO, KC_EQL, KC_AMPR, KC_ASTR, KC_GRV, + KC_NO, KC_EXLM, KC_EXLM, KC_LPRN, KC_RPRN, KC_DLR, KC_EXLM, KC_QUES, KC_SLSH, KC_COLN, KC_SCLN, KC_PLUS, + KC_NO, KC_HASH, KC_PERC, KC_LBRC, KC_RBRC, KC_TILD, KC_LT, KC_GT, KC_MINS, KC_UNDS, KC_BSLS, KC_PSCR, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_BSPC, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, QK_BOOT + ), + [_NAVIGATION] = LAYOUT( + KC_NO, KC_NO, MS_BTN4, MS_UP, MS_BTN5, KC_NO, LSFT(KC_LEFT), LALT(KC_DOWN), LALT(KC_UP), LSFT(KC_RGHT), KC_NO, KC_VOLU, + KC_NO, KC_NO, MS_LEFT, MS_DOWN, MS_RGHT, KC_LEFT_CTRL, KC_HOME, MS_BTN1, MS_BTN3, MS_BTN2, KC_END, KC_VOLD, + KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_NO, KC_BRIU, + LCTL(KC_X), LCTL(KC_C), LCTL(KC_V), KC_NO, KC_NO, KC_NO, MS_WHLD, MS_WHLU, KC_NO, KC_NO, KC_NO, KC_BRID + ), +}; + +layer_state_t layer_state_set_user(layer_state_t state) { + switch (get_highest_layer(state)) { + case _MAIN: + /* Yellow */ + rgb_matrix_sethsv_noeeprom(50, 255, 255); break; + case _NUMBERS: + /* Cyan */ + rgb_matrix_sethsv_noeeprom(170, 255, 255); break; + case _SYMBOLS: + /* Purple */ + rgb_matrix_sethsv_noeeprom(200, 255, 255); break; + case _NAVIGATION: + /* Green */ + rgb_matrix_sethsv_noeeprom(85, 255, 255); break; + default: + /* Off */ + rgb_matrix_sethsv_noeeprom(0, 0, 0); break; + } + return state; +} diff --git a/keyboards/pablojimenezmateo/classic48/readme.md b/keyboards/pablojimenezmateo/classic48/readme.md new file mode 100644 index 0000000000..ff3dd072c5 --- /dev/null +++ b/keyboards/pablojimenezmateo/classic48/readme.md @@ -0,0 +1,28 @@ +# pablojimenezmateo/classic48 + +![pablojimenezmateo/classic48](https://i.imgur.com/czFWWhX.jpeg) + +A custom split keyboard with 48 keys and addressable LEDs. + +* Keyboard Maintainer: [Pablo Jimenez Mateo](https://github.com/pablojimenezmateo) +* Hardware Supported: RP2040 Pro Micro +* Hardware Availability: https://github.com/pablojimenezmateo/classic48 + +Make example for this keyboard (after setting up your build environment): + + make pablojimenezmateo/classic48:default + +Flashing example for this keyboard: + + qmk flash -kb pablojimenezmateo/classic48 -km default -bl uf2-split-left + qmk flash -kb pablojimenezmateo/classic48 -km default -bl uf2-split-right + +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 547d75145bb8b1ab9fde7c7f485f873d70d7d4d7 Mon Sep 17 00:00:00 2001 From: Alin Marin Elena Date: Tue, 4 Nov 2025 03:45:08 +0000 Subject: [PATCH 085/255] add SteelSeries prime, a stripped down prime+ (#24719) --- keyboards/steelseries/prime/board.h | 9 +++ keyboards/steelseries/prime/config.h | 23 +++++++ keyboards/steelseries/prime/halconf.h | 9 +++ keyboards/steelseries/prime/keyboard.json | 58 +++++++++++++++++ .../prime/keymaps/default/keymap.c | 29 +++++++++ .../prime/keymaps/default/rules.mk | 1 + keyboards/steelseries/prime/mcuconf.h | 15 +++++ keyboards/steelseries/prime/prime.c | 16 +++++ keyboards/steelseries/prime/readme.md | 41 ++++++++++++ keyboards/steelseries/prime/rgblight_custom.c | 65 +++++++++++++++++++ keyboards/steelseries/prime/rules.mk | 5 ++ 11 files changed, 271 insertions(+) create mode 100644 keyboards/steelseries/prime/board.h create mode 100644 keyboards/steelseries/prime/config.h create mode 100644 keyboards/steelseries/prime/halconf.h create mode 100644 keyboards/steelseries/prime/keyboard.json create mode 100644 keyboards/steelseries/prime/keymaps/default/keymap.c create mode 100644 keyboards/steelseries/prime/keymaps/default/rules.mk create mode 100644 keyboards/steelseries/prime/mcuconf.h create mode 100644 keyboards/steelseries/prime/prime.c create mode 100644 keyboards/steelseries/prime/readme.md create mode 100644 keyboards/steelseries/prime/rgblight_custom.c create mode 100644 keyboards/steelseries/prime/rules.mk diff --git a/keyboards/steelseries/prime/board.h b/keyboards/steelseries/prime/board.h new file mode 100644 index 0000000000..edb9e1072c --- /dev/null +++ b/keyboards/steelseries/prime/board.h @@ -0,0 +1,9 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_HSECLK +#define STM32_HSECLK 12000000 diff --git a/keyboards/steelseries/prime/config.h b/keyboards/steelseries/prime/config.h new file mode 100644 index 0000000000..2e041f4a46 --- /dev/null +++ b/keyboards/steelseries/prime/config.h @@ -0,0 +1,23 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define POINTING_DEVICE_CS_PIN A4 +#define POINTING_DEVICE_MOTION_PIN B0 +#define POINTING_DEVICE_TASK_THROTTLE_MS 1 + +#define SPI_DRIVER SPID1 +#define SPI_SCK_PIN A5 +#define SPI_MOSI_PIN A7 +#define SPI_MISO_PIN A6 + +#define RGB_PWM_DRIVER PWMD1 +#define RGB_BLUE_PIN A10 +#define RGB_BLUE_PWM_CHANNEL 3 +#define RGB_GREEN_PIN A8 +#define RGB_GREEN_PWM_CHANNEL 1 +#define RGB_RED_PIN A9 +#define RGB_RED_PWM_CHANNEL 2 + +#define OPTICAL_SW_PWR A2 diff --git a/keyboards/steelseries/prime/halconf.h b/keyboards/steelseries/prime/halconf.h new file mode 100644 index 0000000000..e1498a877a --- /dev/null +++ b/keyboards/steelseries/prime/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SPI TRUE +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/steelseries/prime/keyboard.json b/keyboards/steelseries/prime/keyboard.json new file mode 100644 index 0000000000..e267b7506a --- /dev/null +++ b/keyboards/steelseries/prime/keyboard.json @@ -0,0 +1,58 @@ +{ + "manufacturer": "SteelSeries", + "keyboard_name": "Prime", + "maintainer": "Dasky", + "bootloader": "uf2boot", + "build": { + "debounce_type": "asym_eager_defer_pk", + "lto": true + }, + "encoder": { + "rotary": [ + {"pin_a": "B5", "pin_b": "B4", "resolution": 2} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "pointing_device": true, + "rgblight": true + }, + "matrix_pins": { + "direct": [ + ["A0", "C15", "A1", "C13", "C14", "A3"] + ] + }, + "processor": "STM32F103", + "rgblight": { + "animations": { + "breathing": true, + "rainbow_mood": true + }, + "default": { + "animation": "rainbow_mood" + }, + "driver": "custom", + "led_count": 1 + }, + "url": "https://steelseries.com/gaming-mice/prime", + "usb": { + "device_version": "1.0.0", + "pid": "0x0000", + "vid": "0xFEED" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Left Click", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "Middle Click", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "Right Click", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "Side forward", "matrix": [0, 3], "x": 0, "y": 2}, + {"label": "Side back", "matrix": [0, 4], "x": 0, "y": 3}, + {"label": "boot", "matrix": [0, 5], "x": 1, "y": 1} + ] + } + } +} diff --git a/keyboards/steelseries/prime/keymaps/default/keymap.c b/keyboards/steelseries/prime/keymaps/default/keymap.c new file mode 100644 index 0000000000..803f6b47da --- /dev/null +++ b/keyboards/steelseries/prime/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// clang-format off +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + // Left, Middle, Right, + // Forward + // Back + // Underneath + [0] = LAYOUT( + MS_BTN1, MS_BTN3, MS_BTN2, + MS_BTN5, + MS_BTN4, + QK_BOOT + ) +}; +// clang-format on + +void pointing_device_init_kb(void) { + pointing_device_set_cpi(1600); +} + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [0] = {ENCODER_CCW_CW(MS_WHLU, MS_WHLD)}, +}; +#endif diff --git a/keyboards/steelseries/prime/keymaps/default/rules.mk b/keyboards/steelseries/prime/keymaps/default/rules.mk new file mode 100644 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/steelseries/prime/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/steelseries/prime/mcuconf.h b/keyboards/steelseries/prime/mcuconf.h new file mode 100644 index 0000000000..f49ef0edf7 --- /dev/null +++ b/keyboards/steelseries/prime/mcuconf.h @@ -0,0 +1,15 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +#undef STM32_PWM_USE_TIM1 +#define STM32_PWM_USE_TIM1 TRUE + +#undef STM32_SPI_USE_SPI1 +#define STM32_SPI_USE_SPI1 TRUE + +#undef STM32_PLLMUL_VALUE +#define STM32_PLLMUL_VALUE 6 diff --git a/keyboards/steelseries/prime/prime.c b/keyboards/steelseries/prime/prime.c new file mode 100644 index 0000000000..11c528eea8 --- /dev/null +++ b/keyboards/steelseries/prime/prime.c @@ -0,0 +1,16 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + + +void board_init(void) { + + gpio_set_pin_output(A15); + gpio_write_pin_high(A15); // Activate D+ pullup + + gpio_set_pin_output(OPTICAL_SW_PWR); + gpio_write_pin_low(OPTICAL_SW_PWR); // Enable power for optical switches + +} + diff --git a/keyboards/steelseries/prime/readme.md b/keyboards/steelseries/prime/readme.md new file mode 100644 index 0000000000..e5a70afd4c --- /dev/null +++ b/keyboards/steelseries/prime/readme.md @@ -0,0 +1,41 @@ +# SteelSeries Prime + +![Prime](https://i.imgur.com/rPIKok3.jpeg) + +Erase with an stlink and flash this [uf2boot bootloader](https://github.com/daskygit/uf2-prime-plus), this is a a one way procedure voiding any warranty so be sure you don't want to use the original manufacturers firmware. + +you may need to remove write protection to flash, e.g. with openocd in linux + +```sh +openocd -f interface/stlink.cfg -f target/stm32f1x.cfg -c "init; reset halt; stm32f1x unlock 0; flash protect 0 0 last off; reset halt; exit" + +``` + +and write the new bootloader + +```sh + +openocd -f interface/stlink.cfg -f target/stm32f1x.cfg -c "program build/PRIME_PLUS/uf2boot.bin verify reset exit 0x8000000" + +``` + +* Keyboard Maintainer: [Dasky](https://github.com/daskygit) +* Hardware Supported: SteelSeries Prime +* Hardware Availability: https://steelseries.com/gaming-mice/prime + +Make example for this keyboard (after setting up your build environment): + + make steelseries/prime:default + +Flashing example for this keyboard: + + make steelseries/prime: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 left mouse button and plug in. +* **Bootloader entry**: Hold the underneath button while plugging in. diff --git a/keyboards/steelseries/prime/rgblight_custom.c b/keyboards/steelseries/prime/rgblight_custom.c new file mode 100644 index 0000000000..2736052587 --- /dev/null +++ b/keyboards/steelseries/prime/rgblight_custom.c @@ -0,0 +1,65 @@ +// Copyright 2024 Dasky (@daskygit) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include +#include "chibios_config.h" +#include "gpio.h" +#include "color.h" +#include "rgblight_drivers.h" + +static PWMConfig pwmCFG = { + .frequency = 0xFFFF, + .period = 256, +}; + +rgb_t prime_leds[RGBLIGHT_LED_COUNT]; + +void init_custom(void) { + palSetPadMode(PAL_PORT(RGB_RED_PIN), PAL_PAD(RGB_RED_PIN), PAL_MODE_ALTERNATE_PUSHPULL); + palSetPadMode(PAL_PORT(RGB_GREEN_PIN), PAL_PAD(RGB_GREEN_PIN), PAL_MODE_ALTERNATE_PUSHPULL); + palSetPadMode(PAL_PORT(RGB_BLUE_PIN), PAL_PAD(RGB_BLUE_PIN), PAL_MODE_ALTERNATE_PUSHPULL); + pwmCFG.channels[RGB_RED_PWM_CHANNEL - 1].mode = PWM_OUTPUT_ACTIVE_HIGH; + pwmCFG.channels[RGB_GREEN_PWM_CHANNEL - 1].mode = PWM_OUTPUT_ACTIVE_HIGH; + pwmCFG.channels[RGB_BLUE_PWM_CHANNEL - 1].mode = PWM_OUTPUT_ACTIVE_HIGH; + pwmStart(&RGB_PWM_DRIVER, &pwmCFG); +} + +void set_color_custom(int index, uint8_t red, uint8_t green, uint8_t blue) { + prime_leds[index].r = red; + prime_leds[index].g = green; + prime_leds[index].b = blue; +} + +void set_color_all_custom(uint8_t red, uint8_t green, uint8_t blue) { + for (int i = 0; i < RGBLIGHT_LED_COUNT; i++) { + set_color_custom(i, red, green, blue); + } +} + +void flush_custom(void) { + if (prime_leds[0].r == 0) { + pwmDisableChannel(&RGB_PWM_DRIVER, RGB_RED_PWM_CHANNEL - 1); + } else { + uint32_t duty = ((uint32_t)0xFFFF * prime_leds[0].r) / 0xFF; + pwmEnableChannel(&RGB_PWM_DRIVER, RGB_RED_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&RGB_PWM_DRIVER, 0xFFFF, duty)); + } + if (prime_leds[0].g == 0) { + pwmDisableChannel(&RGB_PWM_DRIVER, RGB_GREEN_PWM_CHANNEL - 1); + } else { + uint32_t duty = ((uint32_t)0xFFFF * prime_leds[0].g) / 0xFF; + pwmEnableChannel(&RGB_PWM_DRIVER, RGB_GREEN_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&RGB_PWM_DRIVER, 0xFFFF, duty)); + } + if (prime_leds[0].b == 0) { + pwmDisableChannel(&RGB_PWM_DRIVER, RGB_BLUE_PWM_CHANNEL - 1); + } else { + uint32_t duty = ((uint32_t)0xFFFF * prime_leds[0].b) / 0xFF; + pwmEnableChannel(&RGB_PWM_DRIVER, RGB_BLUE_PWM_CHANNEL - 1, PWM_FRACTION_TO_WIDTH(&RGB_PWM_DRIVER, 0xFFFF, duty)); + } +} + +const rgblight_driver_t rgblight_driver = { + .init = init_custom, + .set_color = set_color_custom, + .set_color_all = set_color_all_custom, + .flush = flush_custom, +}; diff --git a/keyboards/steelseries/prime/rules.mk b/keyboards/steelseries/prime/rules.mk new file mode 100644 index 0000000000..5ab86b1b69 --- /dev/null +++ b/keyboards/steelseries/prime/rules.mk @@ -0,0 +1,5 @@ +MCU_LDSCRIPT = STM32F103xB_uf2boot + +POINTING_DEVICE_DRIVER = pmw3389 + +SRC += rgblight_custom.c From 01d81b95508f8411490467fe785b84d73495bdb9 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 6 Nov 2025 18:36:07 +0000 Subject: [PATCH 086/255] Rework converter docs (#18314) --- docs/feature_converters.md | 342 +++++++++++++++++------- docs/public/pin_compatible_elite_c.svg | 61 +++++ docs/public/pin_compatible_promicro.svg | 61 +++++ 3 files changed, 366 insertions(+), 98 deletions(-) create mode 100644 docs/public/pin_compatible_elite_c.svg create mode 100644 docs/public/pin_compatible_promicro.svg diff --git a/docs/feature_converters.md b/docs/feature_converters.md index 06cc7b3a11..4e0a23752c 100644 --- a/docs/feature_converters.md +++ b/docs/feature_converters.md @@ -2,8 +2,22 @@ This page documents the automated process for converting keyboards to use drop-in replacement controllers. This process is designed to be easy to use and can be completed in a few simple steps. +You can generate the firmware by appending `-e CONVERT_TO=` to your compile/flash command. For example: + +```sh +qmk flash -c -kb keebio/bdn9/rev1 -km default -e CONVERT_TO=proton_c +``` + +You can also configure this within your [keymap](#keymap) to accomplish the same thing. + +::: tip +If you get build errors, you will need to convert the keyboard's code to be [compatible](#keyboard-req) with the converter feature, or provide additional [keymap](#keymap-add) configuration. +::: + ## Supported Converters +Each converter category is broken down by its declared `pin compatibility`. This ensures that only valid combinations are attempted. + The following converters are available at this time: | From | To | @@ -28,86 +42,56 @@ The following converters are available at this time: | `elite_c` | `helios` | | `elite_c` | `liatris` | +## Configuration -## Overview +Configuring a converter to use can be done by adding one of the following lines to your keymaps's configuration: -Each converter category is broken down by its declared `pin compatibility`. This ensures that only valid combinations are attempted. You can generate the firmware by appending `-e CONVERT_TO=` to your compile/flash command. For example: +:::::tabs -```sh -qmk flash -c -kb keebio/bdn9/rev1 -km default -e CONVERT_TO=proton_c +==== keymap.json + +```json [keymap.json] +{ + "version": 1, + "keyboard": "keebio/bdn9/rev1", + "keymap": "keebio_bdn9_rev1_layout_2025-05-20", + "converter": "proton_c", // [!code focus] + "layout": "LAYOUT", +} ``` -You can also add the same `CONVERT_TO=` to your keymap's `rules.mk`, which will accomplish the same thing. - -::: tip -If you get errors about `PORTB/DDRB`, etc not being defined, you'll need to convert the keyboard's code to use the [GPIO Controls](drivers/gpio) that will work for both ARM and AVR. This shouldn't affect the AVR builds at all. -::: - -### Conditional Configuration - -Once a converter is enabled, it exposes the `CONVERT_TO_` flag that you can use in your code with `#ifdef`s, For example: - -```c -#ifdef CONVERT_TO_PROTON_C - // Proton C code -#else - // Pro Micro code -#endif -``` - -### Pin Compatibility - -To ensure compatibility, provide validation, and enable future workflows, a keyboard should declare its `pin compatibility`. For legacy reasons, this is currently assumed to be `promicro`. The following pin compatibility interfaces are currently defined: - -| Pin Compatibility | Notes | -|-------------------|-----------------------------------| -| `promicro` | Includes RX/TX LEDs | -| `elite_c` | Includes bottom row pins, no LEDs | - -To declare the base for conversions, add this line to your keyboard's `rules.mk`: +==== rules.mk ```makefile -PIN_COMPATIBLE = elite_c +CONVERT_TO = proton_c ``` -## Pro Micro +::::: -If a board currently supported in QMK uses a [Pro Micro](https://www.sparkfun.com/products/12640) (or compatible board), the supported alternative controllers are: +::: tip +If you get build errors, you will need to convert the keyboard's code to be [compatible](#keyboard-req) with the converter feature, or provide additional [keymap](#keymap-add) configuration. +::: -| Device | Target | -|------------------------------------------------------------------------------------------|-------------------| -| [Proton C](https://qmk.fm/proton-c/) | `proton_c` | -| [Adafruit KB2040](https://learn.adafruit.com/adafruit-kb2040) | `kb2040` | -| [SparkFun Pro Micro - RP2040](https://www.sparkfun.com/products/18288) | `sparkfun_pm2040` | -| [Blok](https://boardsource.xyz/store/628b95b494dfa308a6581622) | `blok` | -| [Bit-C PRO](https://nullbits.co/bit-c-pro) | `bit_c_pro` | -| [STeMCell](https://github.com/megamind4089/STeMCell) | `stemcell` | -| [customMK Bonsai C4](https://shop.custommk.com/products/bonsai-c4-microcontroller-board) | `bonsai_c4` | -| [Elite-Pi](https://keeb.io/products/elite-pi-usb-c-pro-micro-replacement-rp2040) | `elite_pi` | -| [0xCB Helios](https://keeb.supply/products/0xcb-helios) | `helios` | -| [Liatris](https://splitkb.com/products/liatris) | `liatris` | -| [Imera](https://splitkb.com/products/imera) | `imera` | -| [Michi](https://github.com/ci-bus/michi-promicro-rp2040) | `michi` | -| [Svlinky](https://github.com/sadekbaroudi/svlinky) | `svlinky` | +## Pro Micro Converters -Converter summary: +If a board currently supported by QMK uses a [Pro Micro](https://www.sparkfun.com/products/12640) (or compatible board), the supported alternative controllers are: -| Target | Argument | `rules.mk` | Condition | -|-------------------|---------------------------------|------------------------------|-------------------------------------| -| `proton_c` | `-e CONVERT_TO=proton_c` | `CONVERT_TO=proton_c` | `#ifdef CONVERT_TO_PROTON_C` | -| `kb2040` | `-e CONVERT_TO=kb2040` | `CONVERT_TO=kb2040` | `#ifdef CONVERT_TO_KB2040` | -| `sparkfun_pm2040` | `-e CONVERT_TO=sparkfun_pm2040` | `CONVERT_TO=sparkfun_pm2040` | `#ifdef CONVERT_TO_SPARKFUN_PM2040` | -| `blok` | `-e CONVERT_TO=blok` | `CONVERT_TO=blok` | `#ifdef CONVERT_TO_BLOK` | -| `bit_c_pro` | `-e CONVERT_TO=bit_c_pro` | `CONVERT_TO=bit_c_pro` | `#ifdef CONVERT_TO_BIT_C_PRO` | -| `stemcell` | `-e CONVERT_TO=stemcell` | `CONVERT_TO=stemcell` | `#ifdef CONVERT_TO_STEMCELL` | -| `bonsai_c4` | `-e CONVERT_TO=bonsai_c4` | `CONVERT_TO=bonsai_c4` | `#ifdef CONVERT_TO_BONSAI_C4` | -| `rp2040_ce` | `-e CONVERT_TO=rp2040_ce` | `CONVERT_TO=rp2040_ce` | `#ifdef CONVERT_TO_RP2040_CE` | -| `elite_pi` | `-e CONVERT_TO=elite_pi` | `CONVERT_TO=elite_pi` | `#ifdef CONVERT_TO_ELITE_PI` | -| `helios` | `-e CONVERT_TO=helios` | `CONVERT_TO=helios` | `#ifdef CONVERT_TO_HELIOS` | -| `liatris` | `-e CONVERT_TO=liatris` | `CONVERT_TO=liatris` | `#ifdef CONVERT_TO_LIATRIS` | -| `imera` | `-e CONVERT_TO=imera` | `CONVERT_TO=imera` | `#ifdef CONVERT_TO_IMERA` | -| `michi` | `-e CONVERT_TO=michi` | `CONVERT_TO=michi` | `#ifdef CONVERT_TO_MICHI` | -| `svlinky` | `-e CONVERT_TO=svlinky` | `CONVERT_TO=svlinky` | `#ifdef CONVERT_TO_SVLINKY` | +| Device | Target | CLI Argument | `rules.mk` | Condition | +|------------------------------------------------------------------------------------------|-------------------|---------------------------------|------------------------------|-------------------------------------| +| [Proton C](https://qmk.fm/proton-c/) | `proton_c` | `-e CONVERT_TO=proton_c` | `CONVERT_TO=proton_c` | `#ifdef CONVERT_TO_PROTON_C` | +| [Adafruit KB2040](https://learn.adafruit.com/adafruit-kb2040) | `kb2040` | `-e CONVERT_TO=kb2040` | `CONVERT_TO=kb2040` | `#ifdef CONVERT_TO_KB2040` | +| [SparkFun Pro Micro - RP2040](https://www.sparkfun.com/products/18288) | `sparkfun_pm2040` | `-e CONVERT_TO=sparkfun_pm2040` | `CONVERT_TO=sparkfun_pm2040` | `#ifdef CONVERT_TO_SPARKFUN_PM2040` | +| [Blok](https://boardsource.xyz/store/628b95b494dfa308a6581622) | `blok` | `-e CONVERT_TO=blok` | `CONVERT_TO=blok` | `#ifdef CONVERT_TO_BLOK` | +| [Bit-C PRO](https://nullbits.co/bit-c-pro) | `bit_c_pro` | `-e CONVERT_TO=bit_c_pro` | `CONVERT_TO=bit_c_pro` | `#ifdef CONVERT_TO_BIT_C_PRO` | +| [STeMCell](https://github.com/megamind4089/STeMCell) | `stemcell` | `-e CONVERT_TO=stemcell` | `CONVERT_TO=stemcell` | `#ifdef CONVERT_TO_STEMCELL` | +| [customMK Bonsai C4](https://shop.custommk.com/products/bonsai-c4-microcontroller-board) | `bonsai_c4` | `-e CONVERT_TO=bonsai_c4` | `CONVERT_TO=bonsai_c4` | `#ifdef CONVERT_TO_BONSAI_C4` | +| [RP2040 Community Edition](#rp2040_ce) | `rp2040_ce` | `-e CONVERT_TO=rp2040_ce` | `CONVERT_TO=rp2040_ce` | `#ifdef CONVERT_TO_RP2040_CE` | +| [Elite-Pi](https://keeb.io/products/elite-pi-usb-c-pro-micro-replacement-rp2040) | `elite_pi` | `-e CONVERT_TO=elite_pi` | `CONVERT_TO=elite_pi` | `#ifdef CONVERT_TO_ELITE_PI` | +| [0xCB Helios](https://keeb.supply/products/0xcb-helios) | `helios` | `-e CONVERT_TO=helios` | `CONVERT_TO=helios` | `#ifdef CONVERT_TO_HELIOS` | +| [Liatris](https://splitkb.com/products/liatris) | `liatris` | `-e CONVERT_TO=liatris` | `CONVERT_TO=liatris` | `#ifdef CONVERT_TO_LIATRIS` | +| [Imera](https://splitkb.com/products/imera) | `imera` | `-e CONVERT_TO=imera` | `CONVERT_TO=imera` | `#ifdef CONVERT_TO_IMERA` | +| [Michi](https://github.com/ci-bus/michi-promicro-rp2040) | `michi` | `-e CONVERT_TO=michi` | `CONVERT_TO=michi` | `#ifdef CONVERT_TO_MICHI` | +| [Svlinky](https://github.com/sadekbaroudi/svlinky) | `svlinky` | `-e CONVERT_TO=svlinky` | `CONVERT_TO=svlinky` | `#ifdef CONVERT_TO_SVLINKY` | ### Proton C {#proton_c} @@ -119,26 +103,26 @@ The Proton C only has one on-board LED (C13), and by default, the TXLED (D5) is The following defaults are based on what has been implemented for STM32 boards. -| Feature | Notes | -|----------------------------------------------|------------------------------------------------------------------------------------------------------------------| -| [Audio](features/audio) | Enabled | -| [RGB Lighting](features/rgblight) | Disabled | +| Feature | Notes | +|--------------------------------------------|----------------------------------------------------------------------------------------------------------------| +| [Audio](features/audio) | Enabled | +| [RGB Lighting](features/rgblight) | Disabled | | [Backlight](features/backlight) | Forces [task driven PWM](features/backlight#software-pwm-driver) until ARM can provide automatic configuration | -| USB Host (e.g. USB-USB converter) | Not supported (USB host code is AVR specific and is not currently supported on ARM) | -| [Split keyboards](features/split_keyboard) | Partial - heavily dependent on enabled features | +| USB Host (e.g. USB-USB converter) | Not supported (USB host code is AVR specific and is not currently supported on ARM) | +| [Split keyboards](features/split_keyboard) | Partial - heavily dependent on enabled features | ### Adafruit KB2040 {#kb2040} The following defaults are based on what has been implemented for [RP2040](platformdev_rp2040) boards. -| Feature | Notes | -|----------------------------------------------|------------------------------------------------------------------------------------------------------------------| -| [RGB Lighting](features/rgblight) | Enabled via `PIO` vendor driver | +| Feature | Notes | +|--------------------------------------------|----------------------------------------------------------------------------------------------------------------| +| [RGB Lighting](features/rgblight) | Enabled via `PIO` vendor driver | | [Backlight](features/backlight) | Forces [task driven PWM](features/backlight#software-pwm-driver) until ARM can provide automatic configuration | -| USB Host (e.g. USB-USB converter) | Not supported (USB host code is AVR specific and is not currently supported on ARM) | -| [Split keyboards](features/split_keyboard) | Partial via `PIO` vendor driver - heavily dependent on enabled features | +| USB Host (e.g. USB-USB converter) | Not supported (USB host code is AVR specific and is not currently supported on ARM) | +| [Split keyboards](features/split_keyboard) | Partial via `PIO` vendor driver - heavily dependent on enabled features | -### SparkFun Pro Micro - RP2040, Blok, Bit-C PRO and Michi {#sparkfun_pm2040 } +### SparkFun Pro Micro - RP2040, Blok, Bit-C PRO and Michi {#sparkfun_pm2040} Feature set is identical to [Adafruit KB2040](#kb2040). @@ -177,31 +161,193 @@ Feature set is identical to [Adafruit KB2040](#kb2040). VBUS detection is enable Feature set is a pro micro equivalent of the [RP2040 Community Edition](#rp2040_ce), except that two of the analog GPIO have been replaced with digital only GPIO. These two were moved to the FPC connector to support the [VIK specification](https://github.com/sadekbaroudi/vik). This means that if you are expecting analog support on all 4 pins as provided on a RP2040 Community Edition pinout, you will not have that. Please see the [Svlinky github page](https://github.com/sadekbaroudi/svlinky) for more details. -## Elite-C +## Elite-C Converters -If a board currently supported in QMK uses an [Elite-C](https://keeb.io/products/elite-c-low-profile-version-usb-c-pro-micro-replacement-atmega32u4), the supported alternative controllers are: +If a board currently supported by QMK uses an [Elite-C](https://keeb.io/products/elite-c-low-profile-version-usb-c-pro-micro-replacement-atmega32u4), the supported alternative controllers are: -| Device | Target | -|----------------------------------------------------------------------------------|-------------------| -| [STeMCell](https://github.com/megamind4089/STeMCell) | `stemcell` | -| [Elite-Pi](https://keeb.io/products/elite-pi-usb-c-pro-micro-replacement-rp2040) | `elite_pi` | -| [0xCB Helios](https://keeb.supply/products/0xcb-helios) | `helios` | -| [Liatris](https://splitkb.com/products/liatris) | `liatris` | +| Device | Target | CLI Argument | `rules.mk` | Condition | +|----------------------------------------------------------------------------------|-------------|---------------------------|------------------------|-------------------------------| +| [STeMCell](https://github.com/megamind4089/STeMCell) | `stemcell` | `-e CONVERT_TO=stemcell` | `CONVERT_TO=stemcell` | `#ifdef CONVERT_TO_STEMCELL` | +| [RP2040 Community Edition](#rp2040_ce_elite) | `rp2040_ce` | `-e CONVERT_TO=rp2040_ce` | `CONVERT_TO=rp2040_ce` | `#ifdef CONVERT_TO_RP2040_CE` | +| [Elite-Pi](https://keeb.io/products/elite-pi-usb-c-pro-micro-replacement-rp2040) | `elite_pi` | `-e CONVERT_TO=elite_pi` | `CONVERT_TO=elite_pi` | `#ifdef CONVERT_TO_ELITE_PI` | +| [0xCB Helios](https://keeb.supply/products/0xcb-helios) | `helios` | `-e CONVERT_TO=helios` | `CONVERT_TO=helios` | `#ifdef CONVERT_TO_HELIOS` | +| [Liatris](https://splitkb.com/products/liatris) | `liatris` | `-e CONVERT_TO=liatris` | `CONVERT_TO=liatris` | `#ifdef CONVERT_TO_LIATRIS` | -Converter summary: - -| Target | Argument | `rules.mk` | Condition | -|-------------------|---------------------------------|------------------------------|-------------------------------------| -| `stemcell` | `-e CONVERT_TO=stemcell` | `CONVERT_TO=stemcell` | `#ifdef CONVERT_TO_STEMCELL` | -| `rp2040_ce` | `-e CONVERT_TO=rp2040_ce` | `CONVERT_TO=rp2040_ce` | `#ifdef CONVERT_TO_RP2040_CE` | -| `elite_pi` | `-e CONVERT_TO=elite_pi` | `CONVERT_TO=elite_pi` | `#ifdef CONVERT_TO_ELITE_PI` | -| `helios` | `-e CONVERT_TO=helios` | `CONVERT_TO=helios` | `#ifdef CONVERT_TO_HELIOS` | -| `liatris` | `-e CONVERT_TO=liatris` | `CONVERT_TO=liatris` | `#ifdef CONVERT_TO_LIATRIS` | - -### STeMCell {#stemcell}_elite +### STeMCell {#stemcell_elite} Identical to [Pro Micro - STeMCell](#stemcell) with support for the additional bottom row of pins. ### RP2040 Community Edition {#rp2040_ce_elite} Identical to [Pro Micro - RP2040 Community Edition](#rp2040_ce) with support for the additional bottom row of pins. + +## Advanced Topics + +### Keyboard Configuration + +To configure a keyboard to allow the converter feature, add the following line to your keyboard's `.json` configuration: + +```json [keyboard.json] +{ + "maintainer": "QMK", + "development_board": "promicro", // [!code focus] + "diode_direction": "COL2ROW", +} +``` + +See the [pin compatibility](#pin_compatible) for more information. + +#### Additional Requirements {#keyboard-req} + +Keyboards must use the platform agnostic abstractions provided by QMK. This includes: + +* Use of [GPIO Controls](drivers/gpio). + +### Additional Keymap Configuration {#keymap-add} + +While effort has been made to make converters as compatible as possible, sometimes additional platform specific configuration is required. + +For example, enabling hardware peripherals by adding a keymap level `mcuconf.h` with something like the following: +```c +#pragma once + +#include_next + +#undef RP_SIO_USE_UART0 +#define RP_SIO_USE_UART0 TRUE +``` + +You can find details on how to configure drivers on their respective pages. + +Alternatively, you may have to disable incompatible features. For example: + +:::::tabs + +==== keymap.json + +```json [keymap.json] +{ + "version": 1, + "keyboard": "keebio/bdn9/rev1", + "keymap": "keebio_bdn9_rev1_layout_2025-05-20", + "converter": "proton_c", + "config": { // [!code focus] + "features": { // [!code focus] + "audio": false // [!code focus] + } + } + "layout": "LAYOUT", +} +``` + +==== rules.mk + +```makefile +AUDIO_ENABLE = no +``` + +::::: + +### Conditional Configuration + +Once a converter is enabled, it exposes the `CONVERT_TO_` flag that you can use in your code with `#ifdef`s, For example: + +```c +#ifdef CONVERT_TO_PROTON_C + // Proton C code +#else + // Pro Micro code +#endif +``` + +### Pin Compatibility {#pin_compatible} + +To ensure compatibility, provide validation, and power future workflows, a keyboard should declare its `pin compatibility`. This ensures that only valid combinations are attempted. + +::: tip Note +This will already be configured for you if are using the `promicro` development board preset. +::: + +To declare the base interface for conversions, add the following line to your keyboard's configuration: + +```json [keyboard.json] +{ + "maintainer": "QMK", + "development_board": "elite_c", // [!code focus] + "pin_compatible": "elite_c", // [!code focus] + "diode_direction": "COL2ROW", +} +``` + +The above example, configures a keyboard for a default of `elite_c` while allowing any of the `elite_c` converter targets. + +The framework then allows mapping of pins from `` to converter ``. + +::: warning +Mapped pins should adhere strictly to the defined interface, any extras present on the hardware should be ignored. +::: + +#### Available Pin Compatibility + +:::::tabs + +==== promicro + +![promicro](/pin_compatible_promicro.svg) + + + +::: info Notes: +Includes LEDs - these may be mapped to unused/unavailable pins when not present. +::: + +==== elite_c + +![elite_c](/pin_compatible_elite_c.svg) + + + +::: info Notes: +Includes bottom row pins, no LEDs. +::: + +::::: diff --git a/docs/public/pin_compatible_elite_c.svg b/docs/public/pin_compatible_elite_c.svg new file mode 100644 index 0000000000..cb54d9dfe4 --- /dev/null +++ b/docs/public/pin_compatible_elite_c.svg @@ -0,0 +1,61 @@ +pinsBDCFF75710D3D2D1D0D4C6D7E6B4B5F4F5F6F7B1B3B2B6 \ No newline at end of file diff --git a/docs/public/pin_compatible_promicro.svg b/docs/public/pin_compatible_promicro.svg new file mode 100644 index 0000000000..044b265a57 --- /dev/null +++ b/docs/public/pin_compatible_promicro.svg @@ -0,0 +1,61 @@ +pinsLEDsB0D5D3D2D1D0D4C6D7E6B4B5F4F5F6F7B1B3B2B6 \ No newline at end of file From 1a991ffd24b8a5414b72c10dfc0fbea0afc085c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Fri, 7 Nov 2025 07:03:28 +0800 Subject: [PATCH 087/255] Guard remapping logic with MAGIC_ENABLE (#25537) * Only perform key and mod remapping in keycode_config() and mod_config() when MAGIC_ENABLE is defined. * If not set, these functions now return the original keycode or modifier unchanged. * Reduces firmware size, and unnecessary code when MAGIC_ENABLE is not enabled. * Removed space saving suggestion with magic functions from squeezing AVR documentation --- docs/squeezing_avr.md | 20 -------------------- quantum/keycode_config.c | 6 ++++++ 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/docs/squeezing_avr.md b/docs/squeezing_avr.md index 458b442d59..3eed847f07 100644 --- a/docs/squeezing_avr.md +++ b/docs/squeezing_avr.md @@ -87,26 +87,6 @@ Or if you're not using layers at all, you can outright remove the functionality #define NO_ACTION_LAYER ``` -## Magic Functions - -There are two `__attribute__ ((weak))` placeholder functions available to customize magic keycodes. If you are not using that feature to swap keycodes, such as backslash with backspace, add the following to your `keymap.c` or user space code: -```c -#ifndef MAGIC_ENABLE -uint16_t keycode_config(uint16_t keycode) { - return keycode; -} -#endif -``` -Likewise, if you are not using magic keycodes to swap modifiers, such as Control with GUI, add the following to your `keymap.c` or user space code: -```c -#ifndef MAGIC_ENABLE -uint8_t mod_config(uint8_t mod) { - return mod; -} -#endif -``` -Both of them will overwrite the placeholder functions with a simple return statement to reduce firmware size. - ## OLED tweaks One place you can save a bunch of space here is by not using `sprintf` or `snprintf`. This function call takes up ~1.5kB of firmware space, and can be rewritten. For instance, WPM uses this a lot. diff --git a/quantum/keycode_config.c b/quantum/keycode_config.c index cbfbcc8140..f5068902d5 100644 --- a/quantum/keycode_config.c +++ b/quantum/keycode_config.c @@ -24,6 +24,7 @@ keymap_config_t keymap_config; * and will return the corrected keycode, when appropriate. */ __attribute__((weak)) uint16_t keycode_config(uint16_t keycode) { +#ifdef MAGIC_ENABLE switch (keycode) { case KC_CAPS_LOCK: case KC_LOCKING_CAPS_LOCK: @@ -115,6 +116,9 @@ __attribute__((weak)) uint16_t keycode_config(uint16_t keycode) { default: return keycode; } +#else + return keycode; +#endif // MAGIC_ENABLE } /** \brief mod_config @@ -124,6 +128,7 @@ __attribute__((weak)) uint16_t keycode_config(uint16_t keycode) { */ __attribute__((weak)) uint8_t mod_config(uint8_t mod) { +#ifdef MAGIC_ENABLE /** * Note: This function is for the 5-bit packed mods, NOT the full 8-bit mods. * More info about the mods can be seen in modifiers.h. @@ -161,5 +166,6 @@ __attribute__((weak)) uint8_t mod_config(uint8_t mod) { mod &= ~MOD_RGUI; } +#endif // MAGIC_ENABLE return mod; } From 01952bf39aadc42a70221f91d8cc0536ad458b04 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 6 Nov 2025 23:34:23 +0000 Subject: [PATCH 088/255] Implement minimal connection update logic (#25334) --- quantum/keyboard.c | 4 ++++ tmk_core/protocol/host.c | 44 ++++++++++++++++++++++++++++++++++++++-- tmk_core/protocol/host.h | 3 +++ 3 files changed, 49 insertions(+), 2 deletions(-) diff --git a/quantum/keyboard.c b/quantum/keyboard.c index 173c696e2d..ce8c8efa68 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -29,6 +29,7 @@ along with this program. If not, see . #include "debug.h" #include "command.h" #include "util.h" +#include "host.h" #include "sendchar.h" #include "eeconfig.h" #include "action_layer.h" @@ -471,6 +472,7 @@ void keyboard_init(void) { #ifdef CONNECTION_ENABLE connection_init(); #endif + host_init(); led_init_ports(); #ifdef BACKLIGHT_ENABLE backlight_init_ports(); @@ -699,6 +701,8 @@ void quantum_task(void) { #ifdef LAYER_LOCK_ENABLE layer_lock_task(); #endif + + host_task(); } /** \brief Main task that is repeatedly called as fast as possible. */ diff --git a/tmk_core/protocol/host.c b/tmk_core/protocol/host.c index 4874d7c1d3..f4fa9064e0 100644 --- a/tmk_core/protocol/host.c +++ b/tmk_core/protocol/host.c @@ -18,6 +18,7 @@ along with this program. If not, see . #include #include "keyboard.h" #include "keycode.h" +#include "action.h" #include "host.h" #include "util.h" #include "debug.h" @@ -78,9 +79,48 @@ host_driver_t *host_get_driver(void) { return driver; } +#ifdef CONNECTION_ENABLE +static connection_host_t active_host = CONNECTION_HOST_NONE; + +__attribute__((weak)) void host_disconnect_active_driver_user(connection_host_t host) {} +__attribute__((weak)) void host_disconnect_active_driver_kb(connection_host_t host) {} + +__attribute__((weak)) void host_connect_active_driver_user(connection_host_t host) {} +__attribute__((weak)) void host_connect_active_driver_kb(connection_host_t host) {} + +// TODO: Additionally have host_driver_t handle swap +static void host_update_active_driver(connection_host_t current, connection_host_t next) { + host_disconnect_active_driver_user(current); + host_disconnect_active_driver_kb(current); + + if (current != CONNECTION_HOST_NONE) { + clear_keyboard(); + } + + host_connect_active_driver_user(next); + host_connect_active_driver_kb(next); +} + +#endif + +void host_init(void) { + // currently do nothing +} + +void host_task(void) { +#ifdef CONNECTION_ENABLE + connection_host_t next_host = connection_get_host(); + if (next_host != active_host) { + host_update_active_driver(active_host, next_host); + + active_host = next_host; + } +#endif +} + static host_driver_t *host_get_active_driver(void) { #ifdef CONNECTION_ENABLE - switch (connection_get_host()) { + switch (active_host) { # ifdef BLUETOOTH_ENABLE case CONNECTION_HOST_BLUETOOTH: return &bt_driver; @@ -96,7 +136,7 @@ static host_driver_t *host_get_active_driver(void) { bool host_can_send_nkro(void) { #ifdef CONNECTION_ENABLE - switch (connection_get_host()) { + switch (active_host) { # ifdef BLUETOOTH_ENABLE case CONNECTION_HOST_BLUETOOTH: return bluetooth_can_send_nkro(); diff --git a/tmk_core/protocol/host.h b/tmk_core/protocol/host.h index a0b1e73dcc..7ff6d0df08 100644 --- a/tmk_core/protocol/host.h +++ b/tmk_core/protocol/host.h @@ -27,6 +27,9 @@ along with this program. If not, see . extern "C" { #endif +void host_init(void); +void host_task(void); + /* host driver */ void host_set_driver(host_driver_t *driver); host_driver_t *host_get_driver(void); From 6e35013bc2e30af022cdb8c176e869c5c94ee17a Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 8 Nov 2025 20:48:48 +0000 Subject: [PATCH 089/255] Generate `CUSTOM_MATRIX = lite` without `matrix_pins.custom` (#25453) --- keyboards/argyle/keyboard.json | 1 - keyboards/keychron/c2_pro/info.json | 1 - keyboards/keychron/q1v2/info.json | 1 - lib/python/qmk/cli/generate/rules_mk.py | 9 +++--- lib/python/qmk/info.py | 42 ++++++++++++++++--------- 5 files changed, 31 insertions(+), 23 deletions(-) diff --git a/keyboards/argyle/keyboard.json b/keyboards/argyle/keyboard.json index a7bfc335df..d97f067be8 100755 --- a/keyboards/argyle/keyboard.json +++ b/keyboards/argyle/keyboard.json @@ -11,7 +11,6 @@ }, "matrix_pins": { "cols": ["D1", "D4", "D5", "D6", "D7", "B0", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN"], - "custom": true, "custom_lite": true, "rows": ["D0", "C3", "B1", "B2", "B3"] }, diff --git a/keyboards/keychron/c2_pro/info.json b/keyboards/keychron/c2_pro/info.json index 9c0e1ac72e..8a7d0968b1 100644 --- a/keyboards/keychron/c2_pro/info.json +++ b/keyboards/keychron/c2_pro/info.json @@ -26,7 +26,6 @@ "matrix_pins": { "cols": ["A10", "A9", "A8", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "NO_PIN", "C14"], "rows": ["B5", "B4", "B3", "A15", "A14", "A13"], - "custom": true, "custom_lite": true }, "diode_direction": "ROW2COL" diff --git a/keyboards/keychron/q1v2/info.json b/keyboards/keychron/q1v2/info.json index f0342254fa..ba6f908bbb 100644 --- a/keyboards/keychron/q1v2/info.json +++ b/keyboards/keychron/q1v2/info.json @@ -27,7 +27,6 @@ "matrix_pins": { "cols": ["C14", "C15", "A0", "A1", "A2", "A3", "A4", "A5", null, null, null, null, null, null, null, null], "rows": ["B5", "B4", "B3", "A15", "A14", "A13"], - "custom": true, "custom_lite": true }, "diode_direction": "ROW2COL", diff --git a/lib/python/qmk/cli/generate/rules_mk.py b/lib/python/qmk/cli/generate/rules_mk.py index 358a22fd1d..16084bded1 100755 --- a/lib/python/qmk/cli/generate/rules_mk.py +++ b/lib/python/qmk/cli/generate/rules_mk.py @@ -96,11 +96,10 @@ def generate_rules_mk(cli): rules_mk_lines.append(generate_rule('SPLIT_TRANSPORT', 'custom')) # Set CUSTOM_MATRIX, if needed - if kb_info_json.get('matrix_pins', {}).get('custom'): - if kb_info_json.get('matrix_pins', {}).get('custom_lite'): - rules_mk_lines.append(generate_rule('CUSTOM_MATRIX', 'lite')) - else: - rules_mk_lines.append(generate_rule('CUSTOM_MATRIX', 'yes')) + if kb_info_json.get('matrix_pins', {}).get('custom_lite'): + rules_mk_lines.append(generate_rule('CUSTOM_MATRIX', 'lite')) + elif kb_info_json.get('matrix_pins', {}).get('custom'): + rules_mk_lines.append(generate_rule('CUSTOM_MATRIX', 'yes')) if converter: rules_mk_lines.append(generate_rule('CONVERT_TO', converter)) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index 59a64095e7..e6d51e1239 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -302,6 +302,24 @@ def _extract_features(info_data, rules): return info_data +def _extract_matrix_rules(info_data, rules): + """Find all the features enabled in rules.mk. + """ + if rules.get('CUSTOM_MATRIX', 'no') != 'no': + if 'matrix_pins' in info_data and 'custom' in info_data['matrix_pins']: + _log_warning(info_data, 'Custom Matrix is specified in both info.json and rules.mk, the rules.mk values win.') + + if 'matrix_pins' not in info_data: + info_data['matrix_pins'] = {} + + if rules['CUSTOM_MATRIX'] == 'lite': + info_data['matrix_pins']['custom_lite'] = True + else: + info_data['matrix_pins']['custom'] = True + + return info_data + + def _pin_name(pin): """Returns the proper representation for a pin. """ @@ -552,7 +570,6 @@ def _extract_matrix_info(info_data, config_c): row_pins = config_c.get('MATRIX_ROW_PINS', '').replace('{', '').replace('}', '').strip() col_pins = config_c.get('MATRIX_COL_PINS', '').replace('{', '').replace('}', '').strip() direct_pins = config_c.get('DIRECT_PINS', '').replace(' ', '')[1:-1] - info_snippet = {} if 'MATRIX_ROWS' in config_c and 'MATRIX_COLS' in config_c: if 'matrix_size' in info_data: @@ -567,26 +584,20 @@ def _extract_matrix_info(info_data, config_c): if 'matrix_pins' in info_data and 'cols' in info_data['matrix_pins'] and 'rows' in info_data['matrix_pins']: _log_warning(info_data, 'Matrix pins are specified in both info.json and config.h, the config.h values win.') - info_snippet['cols'] = _extract_pins(col_pins) - info_snippet['rows'] = _extract_pins(row_pins) + if 'matrix_pins' not in info_data: + info_data['matrix_pins'] = {} + + info_data['matrix_pins']['cols'] = _extract_pins(col_pins) + info_data['matrix_pins']['rows'] = _extract_pins(row_pins) if direct_pins: if 'matrix_pins' in info_data and 'direct' in info_data['matrix_pins']: _log_warning(info_data, 'Direct pins are specified in both info.json and config.h, the config.h values win.') - info_snippet['direct'] = _extract_direct_matrix(direct_pins) + if 'matrix_pins' not in info_data: + info_data['matrix_pins'] = {} - if config_c.get('CUSTOM_MATRIX', 'no') != 'no': - if 'matrix_pins' in info_data and 'custom' in info_data['matrix_pins']: - _log_warning(info_data, 'Custom Matrix is specified in both info.json and config.h, the config.h values win.') - - info_snippet['custom'] = True - - if config_c['CUSTOM_MATRIX'] == 'lite': - info_snippet['custom_lite'] = True - - if info_snippet: - info_data['matrix_pins'] = info_snippet + info_data['matrix_pins']['direct'] = _extract_direct_matrix(direct_pins) return info_data @@ -755,6 +766,7 @@ def _extract_rules_mk(info_data, rules): # Merge in config values that can't be easily mapped _extract_features(info_data, rules) + _extract_matrix_rules(info_data, rules) return info_data From efc5d63383b64291f25c8377bcfae8178dd63302 Mon Sep 17 00:00:00 2001 From: Pascal Getreuer <50221757+getreuer@users.noreply.github.com> Date: Tue, 11 Nov 2025 03:27:12 -0800 Subject: [PATCH 090/255] [Core] Speculative Hold option for mod-taps: hold mods instantly while unsettled. (#25572) --- data/mappings/info_config.hjson | 1 + docs/tap_hold.md | 33 + quantum/action.c | 5 + quantum/action.h | 2 +- quantum/action_tapping.c | 171 +++ quantum/action_tapping.h | 30 + quantum/action_util.c | 5 + .../speculative_hold/default/config.h | 23 + .../speculative_hold/default/test.mk | 21 + .../speculative_hold/default/test_keymap.c | 20 + .../default/test_tap_hold.cpp | 794 ++++++++++++ .../speculative_hold/flow_tap/config.h | 25 + .../speculative_hold/flow_tap/test.mk | 15 + .../flow_tap/test_tap_hold.cpp | 1114 +++++++++++++++++ .../retro_shift_permissive_hold/config.h | 30 + .../retro_shift_permissive_hold/test.mk | 17 + .../test_retro_shift.cpp | 689 ++++++++++ .../speculative_hold/retro_tapping/config.h | 24 + .../speculative_hold/retro_tapping/test.mk | 15 + .../retro_tapping/test_tap_hold.cpp | 629 ++++++++++ 20 files changed, 3662 insertions(+), 1 deletion(-) create mode 100644 tests/tap_hold_configurations/speculative_hold/default/config.h create mode 100644 tests/tap_hold_configurations/speculative_hold/default/test.mk create mode 100644 tests/tap_hold_configurations/speculative_hold/default/test_keymap.c create mode 100644 tests/tap_hold_configurations/speculative_hold/default/test_tap_hold.cpp create mode 100644 tests/tap_hold_configurations/speculative_hold/flow_tap/config.h create mode 100644 tests/tap_hold_configurations/speculative_hold/flow_tap/test.mk create mode 100644 tests/tap_hold_configurations/speculative_hold/flow_tap/test_tap_hold.cpp create mode 100644 tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/config.h create mode 100644 tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/test.mk create mode 100644 tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/test_retro_shift.cpp create mode 100644 tests/tap_hold_configurations/speculative_hold/retro_tapping/config.h create mode 100644 tests/tap_hold_configurations/speculative_hold/retro_tapping/test.mk create mode 100644 tests/tap_hold_configurations/speculative_hold/retro_tapping/test_tap_hold.cpp diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index 1c6e86d876..8a0c93e5ac 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -224,6 +224,7 @@ "PERMISSIVE_HOLD_PER_KEY": {"info_key": "tapping.permissive_hold_per_key", "value_type": "flag"}, "RETRO_TAPPING": {"info_key": "tapping.retro", "value_type": "flag"}, "RETRO_TAPPING_PER_KEY": {"info_key": "tapping.retro_per_key", "value_type": "flag"}, + "SPECULATIVE_HOLD": {"info_key": "tapping.speculative_hold", "value_type": "flag"}, "TAP_CODE_DELAY": {"info_key": "qmk.tap_keycode_delay", "value_type": "int"}, "TAP_HOLD_CAPS_DELAY": {"info_key": "qmk.tap_capslock_delay", "value_type": "int"}, "TAPPING_TERM": {"info_key": "tapping.term", "value_type": "int"}, diff --git a/docs/tap_hold.md b/docs/tap_hold.md index bc2c505040..2aa628c535 100644 --- a/docs/tap_hold.md +++ b/docs/tap_hold.md @@ -779,6 +779,39 @@ Do not use `MOD_xxx` constants like `MOD_LSFT` or `MOD_RALT`, since they're 5-bi [Auto Shift](features/auto_shift) has its own version of `retro tapping` called `retro shift`. It is extremely similar to `retro tapping`, but holding the key past `AUTO_SHIFT_TIMEOUT` results in the value it sends being shifted. Other configurations also affect it differently; see [here](features/auto_shift#retro-shift) for more information. +### Speculative Hold + +Speculative Hold makes mod-tap keys more responsive by applying the modifier instantly on keydown, before the tap-hold decision is made. This is especially useful for actions like Shift+Click with a mouse, which can feel laggy with standard mod-taps. + +The firmware holds the modifier speculatively. Once the key's behavior is settled: + +* If held, the modifier remains active as expected until the key is released. +* If tapped, the speculative modifier is canceled just before the tapping keycode is sent. + +Speculative Hold applies the modifier early but does not change the underlying tap-hold decision logic. Speculative Hold is compatible to use in combination with any other tap-hold options. + +To enable Speculative Hold, add the following to your `config.h`: + +```c +#define SPECULATIVE_HOLD +``` + +By default, Speculative Hold applies to mod-taps using Shift, Ctrl, or Shift + Ctrl. You can override this behavior by defining the `get_speculative_hold()` callback in your keymap, for instance: + +```c +bool get_speculative_hold(uint16_t keycode, keyrecord_t* record) { + switch (keycode) { // These keys may be speculatively held. + case LCTL_T(KC_ESC): + case LSFT_T(KC_Z): + case RSFT_T(KC_SLSH): + return true; + } + return false; // Disable otherwise. +} +``` + +Some operating systems or applications assign actions to tapping a modifier key by itself, e.g., tapping GUI to open a start menu. Because Speculative Hold sends a lone modifier key press in some cases, it can falsely trigger these actions. To prevent this, set `DUMMY_MOD_NEUTRALIZER_KEYCODE` (and optionally `MODS_TO_NEUTRALIZE`) in your `config.h` in the same way as described above for [Retro Tapping](#retro-tapping). + ## Why do we include the key record for the per key functions? One thing that you may notice is that we include the key record for all of the "per key" functions, and may be wondering why we do that. diff --git a/quantum/action.c b/quantum/action.c index dd82c9ec99..aacafbe2ff 100644 --- a/quantum/action.c +++ b/quantum/action.c @@ -281,6 +281,11 @@ void process_record(keyrecord_t *record) { if (IS_NOEVENT(record->event)) { return; } +#ifdef SPECULATIVE_HOLD + if (record->event.pressed) { + speculative_key_settled(record); + } +#endif // SPECULATIVE_HOLD #ifdef FLOW_TAP_TERM flow_tap_update_last_event(record); #endif // FLOW_TAP_TERM diff --git a/quantum/action.h b/quantum/action.h index 7616486c6d..a459c438c1 100644 --- a/quantum/action.h +++ b/quantum/action.h @@ -38,7 +38,7 @@ extern "C" { /* tapping count and state */ typedef struct { bool interrupted : 1; - bool reserved2 : 1; + bool speculated : 1; bool reserved1 : 1; bool reserved0 : 1; uint8_t count : 4; diff --git a/quantum/action_tapping.c b/quantum/action_tapping.c index c2f45ea178..5d43dd99ea 100644 --- a/quantum/action_tapping.c +++ b/quantum/action_tapping.c @@ -6,8 +6,10 @@ #include "action_tapping.h" #include "action_util.h" #include "keycode.h" +#include "keycode_config.h" #include "quantum_keycodes.h" #include "timer.h" +#include "wait.h" #ifndef NO_ACTION_TAPPING @@ -51,6 +53,21 @@ __attribute__((weak)) bool get_permissive_hold(uint16_t keycode, keyrecord_t *re } # endif +# ifdef SPECULATIVE_HOLD +typedef struct { + keypos_t key; + uint8_t mods; +} speculative_key_t; +# define SPECULATIVE_KEYS_SIZE 8 +static speculative_key_t speculative_keys[SPECULATIVE_KEYS_SIZE] = {}; +static uint8_t num_speculative_keys = 0; +static uint8_t prev_speculative_mods = 0; +static uint8_t speculative_mods = 0; + +/** Handler to be called on incoming press events. */ +static void speculative_key_press(keyrecord_t *record); +# endif // SPECULATIVE_HOLD + # if defined(CHORDAL_HOLD) || defined(FLOW_TAP_TERM) # define REGISTERED_TAPS_SIZE 8 // Array of tap-hold keys that have been settled as tapped but not yet released. @@ -129,6 +146,13 @@ static void debug_waiting_buffer(void); * FIXME: Needs doc */ void action_tapping_process(keyrecord_t record) { +# ifdef SPECULATIVE_HOLD + prev_speculative_mods = speculative_mods; + if (record.event.pressed) { + speculative_key_press(&record); + } +# endif // SPECULATIVE_HOLD + if (process_tapping(&record)) { if (IS_EVENT(record.event)) { ac_dprintf("processed: "); @@ -145,6 +169,12 @@ void action_tapping_process(keyrecord_t record) { } } +# ifdef SPECULATIVE_HOLD + if (speculative_mods != prev_speculative_mods) { + send_keyboard_report(); + } +# endif // SPECULATIVE_HOLD + // process waiting_buffer if (IS_EVENT(record.event) && waiting_buffer_head != waiting_buffer_tail) { ac_dprintf("---- action_exec: process waiting_buffer -----\n"); @@ -708,6 +738,147 @@ void waiting_buffer_scan_tap(void) { } } +# ifdef SPECULATIVE_HOLD +static void debug_speculative_keys(void) { + ac_dprintf("mods = { "); + for (int8_t i = 0; i < num_speculative_keys; ++i) { + ac_dprintf("%02X ", speculative_keys[i].mods); + } + ac_dprintf("}, keys = { "); + for (int8_t i = 0; i < num_speculative_keys; ++i) { + ac_dprintf("%02X%02X ", speculative_keys[i].key.row, speculative_keys[i].key.col); + } + ac_dprintf("}\n"); +} + +// Find key in speculative_keys. Returns num_speculative_keys if not found. +static int8_t speculative_keys_find(keypos_t key) { + uint8_t i; + for (i = 0; i < num_speculative_keys; ++i) { + if (KEYEQ(speculative_keys[i].key, key)) { + break; + } + } + return i; +} + +static void speculative_key_press(keyrecord_t *record) { + if (num_speculative_keys >= SPECULATIVE_KEYS_SIZE) { // Overflow! + ac_dprintf("SPECULATIVE KEYS OVERFLOW: IGNORING EVENT\n"); + return; // Don't trigger: speculative_keys is full. + } + if (speculative_keys_find(record->event.key) < num_speculative_keys) { + return; // Don't trigger: key is already in speculative_keys. + } + + const uint16_t keycode = get_record_keycode(record, false); + if (!IS_QK_MOD_TAP(keycode)) { + return; // Don't trigger: not a mod-tap key. + } + + uint8_t mods = mod_config(QK_MOD_TAP_GET_MODS(keycode)); + if ((mods & 0x10) != 0) { // Unpack 5-bit mods to 8-bit representation. + mods <<= 4; + } + if ((~(get_mods() | speculative_mods) & mods) == 0) { + return; // Don't trigger: mods are already active. + } + + // Don't do Speculative Hold when there are non-speculated buffered events, + // since that could result in sending keys out of order. + for (uint8_t i = waiting_buffer_tail; i != waiting_buffer_head; i = (i + 1) % WAITING_BUFFER_SIZE) { + if (!waiting_buffer[i].tap.speculated) { + return; + } + } + + if (get_speculative_hold(keycode, record)) { + record->tap.speculated = true; + speculative_mods |= mods; + // Remember the keypos and mods associated with this key. + speculative_keys[num_speculative_keys] = (speculative_key_t){ + .key = record->event.key, + .mods = mods, + }; + ++num_speculative_keys; + + ac_dprintf("Speculative Hold: "); + debug_speculative_keys(); + } +} + +uint8_t get_speculative_mods(void) { + return speculative_mods; +} + +__attribute__((weak)) bool get_speculative_hold(uint16_t keycode, keyrecord_t *record) { + const uint8_t mods = mod_config(QK_MOD_TAP_GET_MODS(keycode)); + return (mods & (MOD_LCTL | MOD_LSFT)) == mods; +} + +void speculative_key_settled(keyrecord_t *record) { + if (num_speculative_keys == 0) { + return; // Early return when there are no active speculative keys. + } + + uint8_t i = speculative_keys_find(record->event.key); + + const uint16_t keycode = get_record_keycode(record, false); + if (IS_QK_MOD_TAP(keycode) && record->tap.count == 0) { // MT hold press. + if (i < num_speculative_keys) { + --num_speculative_keys; + const uint8_t cleared_mods = speculative_keys[i].mods; + + if (num_speculative_keys) { + speculative_mods &= ~cleared_mods; + // Don't call send_keyboard_report() here; allow default + // handling to reapply the mod before the next report. + + // Remove the ith entry from speculative_keys. + for (uint8_t j = i; j < num_speculative_keys; ++j) { + speculative_keys[j] = speculative_keys[j + 1]; + } + } else { + speculative_mods = 0; + } + + ac_dprintf("Speculative Hold: settled %02x, ", cleared_mods); + debug_speculative_keys(); + } + } else { // Tap press event; cancel speculatively-held mod. + if (i >= num_speculative_keys) { + i = 0; + } + + // Clear mods for the ith key and all keys that follow. + uint8_t cleared_mods = 0; + for (uint8_t j = i; j < num_speculative_keys; ++j) { + cleared_mods |= speculative_keys[j].mods; + } + + num_speculative_keys = i; // Remove ith and following entries. + + if ((prev_speculative_mods & cleared_mods) != 0) { +# ifdef DUMMY_MOD_NEUTRALIZER_KEYCODE + neutralize_flashing_modifiers(get_mods() | prev_speculative_mods); +# endif // DUMMY_MOD_NEUTRALIZER_KEYCODE + } + + if (num_speculative_keys) { + speculative_mods &= ~cleared_mods; + } else { + speculative_mods = 0; + } + + send_keyboard_report(); + wait_ms(TAP_CODE_DELAY); + + ac_dprintf("Speculative Hold: canceled %02x, ", cleared_mods); + debug_speculative_keys(); + } +} +# endif // SPECULATIVE_HOLD + # if defined(CHORDAL_HOLD) || defined(FLOW_TAP_TERM) static void registered_taps_add(keypos_t key) { if (num_registered_taps >= REGISTERED_TAPS_SIZE) { diff --git a/quantum/action_tapping.h b/quantum/action_tapping.h index 8220952706..227e3330e1 100644 --- a/quantum/action_tapping.h +++ b/quantum/action_tapping.h @@ -46,6 +46,36 @@ bool get_permissive_hold(uint16_t keycode, keyrecord_t *record); bool get_retro_tapping(uint16_t keycode, keyrecord_t *record); bool get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record); +#ifdef SPECULATIVE_HOLD +/** Gets the currently active speculative mods. */ +uint8_t get_speculative_mods(void); + +/** + * Callback to say if a mod-tap key may be speculatively held. + * + * By default, speculative hold is enabled for mod-tap keys where the mod is + * Ctrl, Shift, and Ctrl+Shift for either hand. + * + * @param keycode Keycode of the mod-tap key. + * @param record Record associated with the mod-tap press event. + * @return True if the mod-tap key may be speculatively held. + */ +bool get_speculative_hold(uint16_t keycode, keyrecord_t *record); + +/** + * Handler to be called on press events after tap-holds are settled. + * + * This function is to be called in process_record() in action.c, that is, just + * after tap-hold events are settled as either tapped or held. When `record` + * corresponds to a speculatively-held key, the speculative mod is cleared. + * + * @param record Record associated with the mod-tap press event. + */ +void speculative_key_settled(keyrecord_t *record); +#else +# define get_speculative_mods() 0 +#endif // SPECULATIVE_HOLD + #ifdef CHORDAL_HOLD /** * Callback to say when a key chord before the tapping term may be held. diff --git a/quantum/action_util.c b/quantum/action_util.c index 0996ff908e..00cec24e3f 100644 --- a/quantum/action_util.c +++ b/quantum/action_util.c @@ -19,6 +19,7 @@ along with this program. If not, see . #include "debug.h" #include "action_util.h" #include "action_layer.h" +#include "action_tapping.h" #include "timer.h" #include "keycode_config.h" #include @@ -284,6 +285,10 @@ static uint8_t get_mods_for_report(void) { } #endif +#ifdef SPECULATIVE_HOLD + mods |= get_speculative_mods(); +#endif + #ifdef KEY_OVERRIDE_ENABLE // These need to be last to be able to properly control key overrides mods &= ~suppressed_mods; diff --git a/tests/tap_hold_configurations/speculative_hold/default/config.h b/tests/tap_hold_configurations/speculative_hold/default/config.h new file mode 100644 index 0000000000..e4bcba13c1 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/default/config.h @@ -0,0 +1,23 @@ +/* Copyright 2022 Vladislav Kucheriavykh + * Copyright 2025 Google LLC + * + * 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 "test_common.h" + +#define SPECULATIVE_HOLD +#define DUMMY_MOD_NEUTRALIZER_KEYCODE KC_F24 diff --git a/tests/tap_hold_configurations/speculative_hold/default/test.mk b/tests/tap_hold_configurations/speculative_hold/default/test.mk new file mode 100644 index 0000000000..c03d99f686 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/default/test.mk @@ -0,0 +1,21 @@ +# Copyright 2022 Vladislav Kucheriavykh +# Copyright 2025 Google LLC +# +# 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 . + +KEY_OVERRIDE_ENABLE = yes +MAGIC_ENABLE = yes + +INTROSPECTION_KEYMAP_C = test_keymap.c + diff --git a/tests/tap_hold_configurations/speculative_hold/default/test_keymap.c b/tests/tap_hold_configurations/speculative_hold/default/test_keymap.c new file mode 100644 index 0000000000..db65374618 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/default/test_keymap.c @@ -0,0 +1,20 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "quantum.h" + +// Shift + Esc = Home +const key_override_t home_esc_override = ko_make_basic(MOD_MASK_SHIFT, KC_ESC, KC_HOME); + +const key_override_t *key_overrides[] = {&home_esc_override}; diff --git a/tests/tap_hold_configurations/speculative_hold/default/test_tap_hold.cpp b/tests/tap_hold_configurations/speculative_hold/default/test_tap_hold.cpp new file mode 100644 index 0000000000..c92ed5a2d0 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/default/test_tap_hold.cpp @@ -0,0 +1,794 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +using testing::_; +using testing::AnyNumber; +using testing::InSequence; + +namespace { + +// Gets the unpacked 8-bit mods corresponding to a given mod-tap keycode. +uint8_t unpack_mod_tap_mods(uint16_t keycode) { + const uint8_t mods5 = QK_MOD_TAP_GET_MODS(keycode); + return (mods5 & 0x10) != 0 ? (mods5 << 4) : mods5; +} + +bool get_speculative_hold_all_keys(uint16_t keycode, keyrecord_t *record) { + return true; // Enable Speculative Hold for all mod-tap keys. +} + +bool process_record_user_default(uint16_t keycode, keyrecord_t *record) { + return true; +} + +// Indirection so that get_speculative_hold() and process_record_user() can be +// replaced with other functions in the test cases below. +std::function get_speculative_hold_fun = get_speculative_hold_all_keys; +std::function process_record_user_fun = process_record_user_default; + +extern "C" bool get_speculative_hold(uint16_t keycode, keyrecord_t *record) { + return get_speculative_hold_fun(keycode, record); +} + +extern "C" bool process_record_user(uint16_t keycode, keyrecord_t *record) { + return process_record_user_fun(keycode, record); +} + +class SpeculativeHoldDefault : public TestFixture { + public: + void SetUp() override { + get_speculative_hold_fun = get_speculative_hold_all_keys; + process_record_user_fun = process_record_user_default; + } +}; + +TEST_F(SpeculativeHoldDefault, tap_mod_tap) { + TestDriver driver; + InSequence s; + static int process_record_user_calls = 0; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + + set_keymap({mod_tap_key}); + + process_record_user_fun = [](uint16_t keycode, keyrecord_t *record) { + ++process_record_user_calls; + return true; + }; + + // Press mod-tap-hold key. Mod is held speculatively. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + idle_for(10); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), MOD_BIT_LSHIFT); + // Speculative mod holds and releases are made directly, bypassing regular + // event processing. No calls have been made yet to process_record_user(). + EXPECT_EQ(process_record_user_calls, 0); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); // Speculative mod canceled. + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), 0); + // Two calls have now been made, for pressing and releasing KC_P. + EXPECT_EQ(process_record_user_calls, 2); + + // Idle for tapping term of mod tap hold key. + idle_for(TAPPING_TERM - 10); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldDefault, tap_mod_tap_neutralized) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, GUI_T(KC_P)); + + set_keymap({mod_tap_key}); + + // Press mod-tap-hold key. Mod is held speculatively. + EXPECT_REPORT(driver, (KC_LGUI)); + mod_tap_key.press(); + idle_for(10); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. Speculative mod is neutralized and canceled. + EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Idle for tapping term of mod tap hold key. + idle_for(TAPPING_TERM - 10); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldDefault, hold_two_mod_taps) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, LCTL_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, RALT_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Press first mod-tap key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), MOD_BIT_LCTRL); + + // Press second mod-tap key. + EXPECT_REPORT(driver, (KC_LCTL, KC_RALT)); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), MOD_BIT_LCTRL | MOD_BIT_RALT); + + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), MOD_BIT_LCTRL | MOD_BIT_RALT); + + // Release first mod-tap key. + EXPECT_REPORT(driver, (KC_RALT)); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release second mod-tap key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldDefault, two_mod_taps_same_mods) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, GUI_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, GUI_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Press first mod-tap key. + EXPECT_REPORT(driver, (KC_LGUI)); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Tap second mod-tap key. + EXPECT_NO_REPORT(driver); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release first mod-tap key. + EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldDefault, respects_get_speculative_hold_callback) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 0, 0, LSFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 1, 0, LSFT_T(KC_B)); + auto mod_tap_key3 = KeymapKey(0, 2, 0, LCTL_T(KC_C)); + auto mod_tap_key4 = KeymapKey(0, 3, 0, LCTL_T(KC_D)); + auto mod_tap_key5 = KeymapKey(0, 4, 0, RSFT_T(KC_E)); + auto mod_tap_key6 = KeymapKey(0, 5, 0, RSFT_T(KC_F)); + + set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3, mod_tap_key4, mod_tap_key5, mod_tap_key6}); + + // Enable Speculative Hold selectively for some of the keys. + get_speculative_hold_fun = [](uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LSFT_T(KC_B): + case LCTL_T(KC_D): + case RSFT_T(KC_F): + return true; + } + return false; + }; + + for (KeymapKey *mod_tap_key : {&mod_tap_key2, &mod_tap_key4, &mod_tap_key6}) { + SCOPED_TRACE(std::string("mod_tap_key = ") + mod_tap_key->name); + const uint8_t mods = unpack_mod_tap_mods(mod_tap_key->code); + + // Long press and release mod_tap_key. + // For these keys where Speculative Hold is enabled, then the mod should + // activate immediately on keydown. + EXPECT_REPORT(driver, (KC_LCTL + biton(mods))); + mod_tap_key->press(); + run_one_scan_loop(); + EXPECT_EQ(get_speculative_mods(), mods); + EXPECT_EQ(get_mods(), 0); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), mods); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key->release(); + idle_for(TAPPING_TERM + 1); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), 0); + VERIFY_AND_CLEAR(driver); + } + + for (KeymapKey *mod_tap_key : {&mod_tap_key1, &mod_tap_key3, &mod_tap_key5}) { + SCOPED_TRACE(std::string("mod_tap_key = ") + mod_tap_key->name); + const uint8_t mods = unpack_mod_tap_mods(mod_tap_key->code); + + // Long press and release mod_tap_key. + // For these keys where Speculative Hold is disabled, the mod should + // activate when the key has settled after the tapping term. + EXPECT_NO_REPORT(driver); + mod_tap_key->press(); + run_one_scan_loop(); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), 0); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL + biton(mods))); + idle_for(TAPPING_TERM + 1); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), mods); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key->release(); + idle_for(TAPPING_TERM + 1); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), 0); + VERIFY_AND_CLEAR(driver); + } +} + +TEST_F(SpeculativeHoldDefault, respects_magic_mod_config) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, CTL_T(KC_P)); + + set_keymap({mod_tap_key}); + + keymap_config.swap_lctl_lgui = true; + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LGUI)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + keymap_config.swap_lctl_lgui = false; + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldDefault, key_overrides) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, LSFT_T(KC_A)); + auto esc_key = KeymapKey(0, 3, 0, KC_ESC); + + set_keymap({mod_tap_key, esc_key}); + + // Press mod-tap Shift key. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press Esc key. + EXPECT_EMPTY_REPORT(driver).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_HOME)); + esc_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release Esc key. + EXPECT_EMPTY_REPORT(driver).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LSFT)); + esc_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap Shift key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldDefault, tap_regular_key_while_mod_tap_key_is_held) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + auto regular_key = KeymapKey(0, 2, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Tap regular key. + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_REPORT(driver, (KC_P, KC_A)); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Idle for tapping term of mod tap hold key. + idle_for(TAPPING_TERM - 3); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldDefault, tap_a_mod_tap_key_while_another_mod_tap_key_is_held) { + TestDriver driver; + InSequence s; + auto first_mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + auto second_mod_tap_key = KeymapKey(0, 2, 0, RSFT_T(KC_A)); + + set_keymap({first_mod_tap_key, second_mod_tap_key}); + + // Press first mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LSFT)); + first_mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press second tap-hold key. + EXPECT_REPORT(driver, (KC_LSFT, KC_RSFT)); + second_mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release second tap-hold key. + EXPECT_NO_REPORT(driver); + second_mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release first mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_REPORT(driver, (KC_P, KC_A)); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + first_mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldDefault, tap_mod_tap_key_two_times) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + + set_keymap({mod_tap_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap-hold key again. + EXPECT_REPORT(driver, (KC_P)); + mod_tap_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldDefault, tap_mod_tap_key_twice_and_hold_on_second_time) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + + set_keymap({mod_tap_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap-hold key again. + EXPECT_REPORT(driver, (KC_P)); + mod_tap_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldDefault, tap_and_hold_mod_tap_key) { + TestDriver driver; + InSequence s; + static int process_record_user_calls = 0; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + + set_keymap({mod_tap_key}); + + process_record_user_fun = [](uint16_t keycode, keyrecord_t *record) { + ++process_record_user_calls; + return true; + }; + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + idle_for(TAPPING_TERM - 1); + EXPECT_EQ(get_speculative_mods(), MOD_BIT_LSHIFT); + EXPECT_EQ(get_mods(), 0); + // Speculative mod holds and releases are made directly, bypassing regular + // event processing. No calls have been made yet to process_record_user(). + EXPECT_EQ(process_record_user_calls, 0); + idle_for(2); + // Now that the key has settled, one call has been made for the hold event. + EXPECT_EQ(process_record_user_calls, 1); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), MOD_BIT_LSHIFT); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + EXPECT_EQ(process_record_user_calls, 2); + VERIFY_AND_CLEAR(driver); +} + +// Test with layer tap and speculative mod tap keys on the same layer, +// rolling from LT to MT key: +// "LT down, MT down, (wait out tapping term), LT up, MT up." +TEST_F(SpeculativeHoldDefault, lt_mt_same_layer_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + // Press layer tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key, after flow tap term but within tapping term. The + // speculative mod activates. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Wait for the layer tap key to settle. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with layer tap and speculative mod tap keys on the same layer, trying a +// nested press: +// "LT down, MT down, (wait out tapping term), MT up, LT up." +TEST_F(SpeculativeHoldDefault, lt_mt_same_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys: MT first, LT second. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with layer tap and speculative mod tap keys on the same layer, trying a +// nested press with the MT first: +// "MT down, LT down, (wait out tapping term), LT up, MT up." +TEST_F(SpeculativeHoldDefault, mt_lt_same_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, rolling from +// LT to MT key: +// "LT down, MT down, (wait out tapping term), LT up, MT up." +TEST_F(SpeculativeHoldDefault, lt_mt_different_layer_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, SFT_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + // Press layer tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + // Press mod tap key. + mod_tap_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_LSFT)); + layer_tap_key.release(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, slowly +// rolling from LT to MT key: +// "LT down, (wait), MT down, (wait), LT up, MT up." +TEST_F(SpeculativeHoldDefault, lt_mt_different_layer_slow_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, SFT_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, trying a +// nested press: +// "LT down, MT down, (wait out tapping term), MT up, LT up." +TEST_F(SpeculativeHoldDefault, lt_mt_different_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, SFT_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + mod_tap_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, trying a +// slow nested press: +// "LT down, (wait), MT down, MT up, LT up." +TEST_F(SpeculativeHoldDefault, lt_mt_different_layer_slow_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, SFT_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +} // namespace diff --git a/tests/tap_hold_configurations/speculative_hold/flow_tap/config.h b/tests/tap_hold_configurations/speculative_hold/flow_tap/config.h new file mode 100644 index 0000000000..6988484226 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/flow_tap/config.h @@ -0,0 +1,25 @@ +/* Copyright 2022 Vladislav Kucheriavykh + * Copyright 2025 Google LLC + * + * 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 "test_common.h" + +#define SPECULATIVE_HOLD +#define FLOW_TAP_TERM 150 +#define PERMISSIVE_HOLD +#define DUMMY_MOD_NEUTRALIZER_KEYCODE KC_F24 diff --git a/tests/tap_hold_configurations/speculative_hold/flow_tap/test.mk b/tests/tap_hold_configurations/speculative_hold/flow_tap/test.mk new file mode 100644 index 0000000000..ad8675da9d --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/flow_tap/test.mk @@ -0,0 +1,15 @@ +# Copyright 2022 Vladislav Kucheriavykh +# +# 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 . + diff --git a/tests/tap_hold_configurations/speculative_hold/flow_tap/test_tap_hold.cpp b/tests/tap_hold_configurations/speculative_hold/flow_tap/test_tap_hold.cpp new file mode 100644 index 0000000000..0433a2548d --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/flow_tap/test_tap_hold.cpp @@ -0,0 +1,1114 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +using testing::_; +using testing::AnyNumber; +using testing::InSequence; + +extern "C" bool get_speculative_hold(uint16_t keycode, keyrecord_t *record) { + return true; +} + +class SpeculativeHoldFlowTapTest : public TestFixture {}; + +TEST_F(SpeculativeHoldFlowTapTest, tap_mod_tap) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + + set_keymap({mod_tap_key}); + + // Press mod-tap-hold key. Mod is held speculatively. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + idle_for(10); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), MOD_BIT_LSHIFT); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); // Speculative mod canceled. + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), 0); + + // Idle for tapping term of mod tap hold key. + idle_for(TAPPING_TERM - 10); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldFlowTapTest, hold_two_mod_taps) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, LCTL_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, RALT_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Press first mod-tap key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key1.press(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), MOD_BIT_LCTRL); + + // Press second mod-tap key. + EXPECT_REPORT(driver, (KC_LCTL, KC_RALT)); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), MOD_BIT_LCTRL | MOD_BIT_RALT); + + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), MOD_BIT_LCTRL | MOD_BIT_RALT); + + // Release first mod-tap key. + EXPECT_REPORT(driver, (KC_RALT)); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release second mod-tap key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldFlowTapTest, two_mod_taps_same_mods) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, GUI_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, GUI_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Press first mod-tap key. + EXPECT_REPORT(driver, (KC_LGUI)); + mod_tap_key1.press(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Tap second mod-tap key. + EXPECT_NO_REPORT(driver); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LGUI, KC_B)); + EXPECT_REPORT(driver, (KC_LGUI)); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release first mod-tap key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test an input of quick distinct taps. All should be settled as tapped. +TEST_F(SpeculativeHoldFlowTapTest, distinct_taps) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 0, 0, KC_A); + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_C)); + auto mod_tap_key3 = KeymapKey(0, 3, 0, ALT_T(KC_D)); + + set_keymap({regular_key, mod_tap_key1, mod_tap_key2, mod_tap_key3}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key, FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Tap mod-tap 1. + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Tap mod-tap 2. + EXPECT_REPORT(driver, (KC_C)); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Tap mod-tap 3. + EXPECT_REPORT(driver, (KC_D)); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key3.release(); + idle_for(FLOW_TAP_TERM + 1); // Pause between taps. + VERIFY_AND_CLEAR(driver); + + // Tap mod-tap 1. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Tap mod-tap 2. + EXPECT_REPORT(driver, (KC_C)); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + idle_for(TAPPING_TERM + 1); + mod_tap_key2.release(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// By default, Flow Tap is disabled when mods other than Shift and AltGr are on. +TEST_F(SpeculativeHoldFlowTapTest, hotkey_taps) { + TestDriver driver; + InSequence s; + auto ctrl_key = KeymapKey(0, 0, 0, KC_LCTL); + auto shft_key = KeymapKey(0, 1, 0, KC_LSFT); + auto alt_key = KeymapKey(0, 2, 0, KC_LALT); + auto gui_key = KeymapKey(0, 3, 0, KC_LGUI); + auto regular_key = KeymapKey(0, 4, 0, KC_A); + auto mod_tap_key = KeymapKey(0, 5, 0, RCTL_T(KC_B)); + + set_keymap({ctrl_key, shft_key, alt_key, gui_key, regular_key, mod_tap_key}); + + for (KeymapKey *mod_key : {&ctrl_key, &alt_key, &gui_key}) { + // Hold mod key. + EXPECT_REPORT(driver, (mod_key->code)); + mod_key->press(); + run_one_scan_loop(); + + // Tap regular key. + EXPECT_REPORT(driver, (mod_key->code, KC_A)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (mod_key->code)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap, where Flow Tap is disabled due to the held mod. + EXPECT_REPORT(driver, (mod_key->code, KC_RCTL)); + mod_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap. + EXPECT_REPORT(driver, (mod_key->code)); + mod_tap_key.release(); + run_one_scan_loop(); + + // Release mod key. + EXPECT_EMPTY_REPORT(driver); + mod_key->release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + } + + // Hold Shift key. + EXPECT_REPORT(driver, (KC_LSFT)); + shft_key.press(); + run_one_scan_loop(); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap, where Flow Tap applies to settle as tapped. + EXPECT_REPORT(driver, (KC_LSFT, KC_B)); + mod_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.release(); + run_one_scan_loop(); + + // Release Shift key. + EXPECT_EMPTY_REPORT(driver); + shft_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test input with two mod-taps in a rolled press quickly after a regular key. +TEST_F(SpeculativeHoldFlowTapTest, rolled_press) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 0, 0, KC_A); + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_C)); + + set_keymap({regular_key, mod_tap_key1, mod_tap_key2}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key 1 quickly after regular key. The mod-tap should settle + // immediately as tapped, sending `KC_B`. + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key 2 quickly. + EXPECT_REPORT(driver, (KC_B, KC_C)); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Hold for longer than the tapping term. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap keys. + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, long_flow_tap_settled_as_held) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 0, 0, KC_A); + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_B)); + + set_keymap({regular_key, mod_tap_key}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Hold for the tapping term. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, holding_multiple_mod_taps) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 0, 0, KC_A); + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_C)); + + set_keymap({regular_key, mod_tap_key1, mod_tap_key2}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap keys. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL)); + mod_tap_key2.press(); + idle_for(TAPPING_TERM - 5); // Hold almost until tapping term. + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL, KC_A)); + regular_key.press(); + idle_for(10); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL)); + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + mod_tap_key1.release(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, holding_mod_tap_with_regular_mod) { + TestDriver driver; + InSequence s; + auto regular_key = KeymapKey(0, 0, 0, KC_A); + auto mod_key = KeymapKey(0, 1, 0, KC_LSFT); + auto mod_tap_key = KeymapKey(0, 2, 0, CTL_T(KC_C)); + + set_keymap({regular_key, mod_key, mod_tap_key}); + + // Tap regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Press mod and mod-tap keys. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL)); + mod_tap_key.press(); + idle_for(TAPPING_TERM - 5); // Hold almost until tapping term. + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL, KC_A)); + regular_key.press(); + idle_for(10); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL)); + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + mod_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, layer_tap_ignored_with_disabled_key) { + TestDriver driver; + InSequence s; + auto no_key = KeymapKey(0, 0, 0, KC_NO); + auto regular_key = KeymapKey(1, 0, 0, KC_ESC); + auto layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 2, 0, CTL_T(KC_B)); + + set_keymap({no_key, regular_key, layer_tap_key, mod_tap_key}); + + EXPECT_REPORT(driver, (KC_ESC)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + tap_key(regular_key); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, layer_tap_ignored_with_disabled_key_complex) { + TestDriver driver; + InSequence s; + auto regular_key1 = KeymapKey(0, 0, 0, KC_Q); + auto layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_SPC)); + auto mod_tap_key1 = KeymapKey(0, 2, 0, CTL_T(KC_T)); + // Place RALT_T(KC_I), where Flow Tap is enabled, in the same position on + // layer 0 as KC_RGHT, where Flow Tap is disabled. This tests that Flow Tap + // tracks the keycode from the correct layer. + auto mod_tap_key2 = KeymapKey(0, 3, 0, RALT_T(KC_I)); + auto regular_key2 = KeymapKey(1, 3, 0, KC_RGHT); + + set_keymap({regular_key1, layer_tap_key, mod_tap_key1, mod_tap_key2, regular_key2}); + + // Tap regular key 1. + EXPECT_REPORT(driver, (KC_Q)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key1); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Hold layer-tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Tap regular key 2. + EXPECT_REPORT(driver, (KC_RALT)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_RGHT)); + EXPECT_EMPTY_REPORT(driver); + tap_key(regular_key2); + VERIFY_AND_CLEAR(driver); + + // Release layer-tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Quickly hold mod-tap key 1. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL, KC_Q)); + EXPECT_REPORT(driver, (KC_LCTL)); + tap_key(regular_key1); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, layer_tap_ignored_with_enabled_key) { + TestDriver driver; + InSequence s; + auto no_key = KeymapKey(0, 0, 0, KC_NO); + auto regular_key = KeymapKey(1, 0, 0, KC_C); + auto layer_tap_key = KeymapKey(0, 1, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 2, 0, CTL_T(KC_B)); + + set_keymap({no_key, regular_key, layer_tap_key, mod_tap_key}); + + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + tap_key(regular_key); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + idle_for(TAPPING_TERM + 1); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, quick_tap) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_A)); + + set_keymap({mod_tap_key}); + + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + tap_key(mod_tap_key); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_A)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, rolling_mt_mt) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, SFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, CTL_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + EXPECT_NO_REPORT(driver); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_REPORT(driver, (KC_LSFT, KC_LCTL)); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Hold for longer than the tapping term. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap keys. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, rolling_lt_mt_regular) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, CTL_T(KC_B)); + auto regular_key = KeymapKey(0, 2, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + EXPECT_REPORT(driver, (KC_LCTL)); + idle_for(FLOW_TAP_TERM + 1); + layer_tap_key.press(); + run_one_scan_loop(); + mod_tap_key.press(); + run_one_scan_loop(); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); + EXPECT_REPORT(driver, (KC_B, KC_C)); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Hold for longer than the tapping term. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap keys. + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, rolling_lt_regular_mt) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto mod_tap_key = KeymapKey(0, 2, 0, CTL_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + idle_for(FLOW_TAP_TERM + 1); + layer_tap_key.press(); + run_one_scan_loop(); + regular_key.press(); + run_one_scan_loop(); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); + EXPECT_REPORT(driver, (KC_B, KC_C)); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Hold for longer than the tapping term. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap keys. + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, rolling_mt_mt_mt) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 0, 0, CTL_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 1, 0, GUI_T(KC_B)); + auto mod_tap_key3 = KeymapKey(0, 2, 0, ALT_T(KC_C)); + + set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); + + // Press mod-tap keys. + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_REPORT(driver, (KC_LCTL, KC_LGUI)); + EXPECT_REPORT(driver, (KC_LCTL, KC_LGUI, KC_LALT)); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release first mod-tap key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_A, KC_B, KC_C)); + EXPECT_REPORT(driver, (KC_B, KC_C)); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Hold for longer than the tapping term. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Release other mod-tap keys. + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + mod_tap_key3.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +TEST_F(SpeculativeHoldFlowTapTest, roll_release_132) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 0, 0, CTL_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 1, 0, GUI_T(KC_B)); + auto mod_tap_key3 = KeymapKey(0, 2, 0, ALT_T(KC_C)); + + set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3}); + + // Press mod-tap keys. + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_REPORT(driver, (KC_LCTL, KC_LGUI)); + EXPECT_REPORT(driver, (KC_LCTL, KC_LGUI, KC_LALT)); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key1.press(); + run_one_scan_loop(); + mod_tap_key2.press(); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key3.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release first mod-tap key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release other mod-tap keys. + EXPECT_REPORT(driver, (KC_B, KC_C)); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key3.release(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with layer tap and speculative mod tap keys on the same layer, rolling +// from LT to MT key: +// "LT down, MT down, (wait out tapping term), LT up, MT up." +TEST_F(SpeculativeHoldFlowTapTest, lt_mt_same_layer_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + // Press layer tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key, after flow tap term but within tapping term. The + // speculative mod activates. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Wait for the layer tap key to settle. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + idle_for(TAPPING_TERM - FLOW_TAP_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with layer tap and speculative mod tap keys on the same layer, trying +// a nested press from LT to MT key: +// "LT down, MT down, (wait out tapping term), MT up, LT up." +TEST_F(SpeculativeHoldFlowTapTest, lt_mt_same_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + idle_for(TAPPING_TERM - FLOW_TAP_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys: MT first, LT second. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with layer tap and speculative mod tap keys on the same layer, trying +// a nested press with the MT first: +// "MT down, LT down, (wait out tapping term), LT up, MT up." +TEST_F(SpeculativeHoldFlowTapTest, mt_lt_same_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, rolling from +// LT to MT key: +// "LT down, MT down, (wait out tapping term), LT up, MT up." +TEST_F(SpeculativeHoldFlowTapTest, lt_mt_different_layer_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, SFT_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + // Press layer tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(FLOW_TAP_TERM + 1); + // Press mod tap key. + mod_tap_key.press(); + idle_for(TAPPING_TERM - FLOW_TAP_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_B)); + layer_tap_key.release(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, slowly +// rolling from LT to MT key: +// "LT down, (wait), MT down, (wait), LT up, MT up." +TEST_F(SpeculativeHoldFlowTapTest, lt_mt_different_layer_slow_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, SFT_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, trying a +// nested press: +// "LT down, MT down, (wait out tapping term), MT up, LT up." +TEST_F(SpeculativeHoldFlowTapTest, lt_mt_different_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, SFT_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(FLOW_TAP_TERM + 1); + mod_tap_key.press(); + idle_for(TAPPING_TERM - FLOW_TAP_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, trying a +// slow nested press: +// "LT down, (wait), MT down, MT up, LT up." +TEST_F(SpeculativeHoldFlowTapTest, lt_mt_different_layer_slow_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, SFT_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + idle_for(FLOW_TAP_TERM + 1); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} diff --git a/tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/config.h b/tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/config.h new file mode 100644 index 0000000000..5b16a60687 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/config.h @@ -0,0 +1,30 @@ +/* Copyright 2022 Isaac Elenbaas + * Copyright 2025 Google LLC + * + * 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 "test_common.h" + +#define SPECULATIVE_HOLD +#define PERMISSIVE_HOLD + +#define RETRO_SHIFT 2 * TAPPING_TERM +// releases between AUTO_SHIFT_TIMEOUT and TAPPING_TERM are not tested +#define AUTO_SHIFT_TIMEOUT TAPPING_TERM +#define AUTO_SHIFT_MODIFIERS + +#define DUMMY_MOD_NEUTRALIZER_KEYCODE KC_F24 diff --git a/tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/test.mk b/tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/test.mk new file mode 100644 index 0000000000..7a19bcab59 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/test.mk @@ -0,0 +1,17 @@ +# Copyright 2022 Isaac Elenbaas +# Copyright 2025 Google LLC +# +# 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 . + +AUTO_SHIFT_ENABLE = yes diff --git a/tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/test_retro_shift.cpp b/tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/test_retro_shift.cpp new file mode 100644 index 0000000000..b81485865b --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/retro_shift_permissive_hold/test_retro_shift.cpp @@ -0,0 +1,689 @@ +// Copyright 2022 Isaac Elenbaas +// Copyright 2025 Google LLC +// +// 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 "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +extern "C" { +bool get_speculative_hold(uint16_t keycode, keyrecord_t *record) { + return true; +} + +bool get_auto_shifted_key(uint16_t keycode, keyrecord_t *record) { + return true; +} +} // extern "C" + +using testing::_; +using testing::AnyNumber; +using testing::AnyOf; +using testing::InSequence; + +class RetroShiftPermissiveHold : public TestFixture {}; + +TEST_F(RetroShiftPermissiveHold, tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroShiftPermissiveHold, tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, LALT_T(KC_A)); + + set_keymap({mod_tap_key, mod_tap_regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap-regular key. + EXPECT_REPORT(driver, (KC_LCTL, KC_LALT)); + mod_tap_regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-regular key. + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroShiftPermissiveHold, tap_regular_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroShiftPermissiveHold, tap_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, LALT_T(KC_A)); + + set_keymap({mod_tap_key, mod_tap_regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap-regular key. + EXPECT_REPORT(driver, (KC_LCTL, KC_LALT)); + mod_tap_regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-regular key. + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LCTL))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroShiftPermissiveHold, hold_regular_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroShiftPermissiveHold, hold_mod_tap_key_while_mod_tap_key_is_held_over_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, LALT_T(KC_A)); + + set_keymap({mod_tap_key, mod_tap_regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap-regular key. + EXPECT_REPORT(driver, (KC_LCTL, KC_LALT)); + mod_tap_regular_key.press(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-regular key. + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT), + KeyboardReport(KC_LCTL)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + // clang-format off + EXPECT_CALL(driver, send_keyboard_mock(AnyOf( + KeyboardReport(KC_LCTL, KC_LSFT), + KeyboardReport(KC_LSFT)))) + .Times(AnyNumber()); + // clang-format on + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_regular_key.release(); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroShiftPermissiveHold, roll_tap_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroShiftPermissiveHold, roll_tap_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, LALT_T(KC_A)); + + set_keymap({mod_tap_key, mod_tap_regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap-regular key. + EXPECT_REPORT(driver, (KC_LCTL, KC_LALT)); + mod_tap_regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-regular key. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroShiftPermissiveHold, roll_hold_regular_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, KC_A); + + set_keymap({mod_tap_key, regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press regular key. + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + idle_for(AUTO_SHIFT_TIMEOUT); + VERIFY_AND_CLEAR(driver); + + // Release regular key. + EXPECT_NO_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(RetroShiftPermissiveHold, roll_hold_mod_tap_key_while_mod_tap_key_is_held_under_tapping_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 0, 0, LCTL_T(KC_P)); + auto mod_tap_regular_key = KeymapKey(0, MATRIX_COLS - 1, 0, LALT_T(KC_A)); + + set_keymap({mod_tap_key, mod_tap_regular_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap-regular key. + EXPECT_REPORT(driver, (KC_LCTL, KC_LALT)); + mod_tap_regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-regular key. + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_CALL(driver, send_keyboard_mock(KeyboardReport(KC_LSFT))).Times(AnyNumber()); + EXPECT_EMPTY_REPORT(driver); + idle_for(AUTO_SHIFT_TIMEOUT); + mod_tap_regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +// Test with layer tap and speculative mod tap keys on the same layer, rolling +// from LT to MT key: +// "LT down, MT down, (wait out tapping term), LT up, MT up." +TEST_F(RetroShiftPermissiveHold, lt_mt_same_layer_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, LCTL_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + // Press layer tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key, after flow tap term but within tapping term. The + // speculative mod activates. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Wait for the layer tap key to settle. + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with layer tap and speculative mod tap keys on the same layer, trying +// a nested press from LT to MT key: +// "LT down, MT down, (wait out tapping term), MT up, LT up." +TEST_F(RetroShiftPermissiveHold, lt_mt_same_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, LCTL_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + run_one_scan_loop(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys: MT first, LT second. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_LSFT, KC_C)); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with layer tap and speculative mod tap keys on the same layer, trying +// a nested press with the MT first: +// "MT down, LT down, (wait out tapping term), LT up, MT up." +TEST_F(RetroShiftPermissiveHold, mt_lt_same_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, LCTL_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT)); + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, rolling from +// LT to MT key: +// "LT down, MT down, (wait out tapping term), LT up, MT up." +TEST_F(RetroShiftPermissiveHold, lt_mt_different_layer_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, LCTL_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + // Press layer tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + // Press mod tap key. + mod_tap_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_B)); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, slowly +// rolling from LT to MT key: +// "LT down, (wait), MT down, (wait), LT up, MT up." +TEST_F(RetroShiftPermissiveHold, lt_mt_different_layer_slow_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, LCTL_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_A)); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, try a nested +// press: +// "LT down, MT down, (wait out tapping term), MT up, LT up." +TEST_F(RetroShiftPermissiveHold, lt_mt_different_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, LCTL_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + mod_tap_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_LSFT, KC_C)); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, try a slow +// nested press: +// "LT down, (wait), MT down, MT up, LT up." +TEST_F(RetroShiftPermissiveHold, lt_mt_different_layer_slow_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, LCTL_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} diff --git a/tests/tap_hold_configurations/speculative_hold/retro_tapping/config.h b/tests/tap_hold_configurations/speculative_hold/retro_tapping/config.h new file mode 100644 index 0000000000..b20ddbdcad --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/retro_tapping/config.h @@ -0,0 +1,24 @@ +/* Copyright 2022 Vladislav Kucheriavykh + * Copyright 2025 Google LLC + * + * 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 "test_common.h" + +#define SPECULATIVE_HOLD +#define RETRO_TAPPING +#define DUMMY_MOD_NEUTRALIZER_KEYCODE KC_F24 diff --git a/tests/tap_hold_configurations/speculative_hold/retro_tapping/test.mk b/tests/tap_hold_configurations/speculative_hold/retro_tapping/test.mk new file mode 100644 index 0000000000..9bc3366e14 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/retro_tapping/test.mk @@ -0,0 +1,15 @@ +# Copyright 2022 Vladislav Kucheriavykh +# Copyright 2025 Google LLC +# +# 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 . diff --git a/tests/tap_hold_configurations/speculative_hold/retro_tapping/test_tap_hold.cpp b/tests/tap_hold_configurations/speculative_hold/retro_tapping/test_tap_hold.cpp new file mode 100644 index 0000000000..de70bf09fd --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/retro_tapping/test_tap_hold.cpp @@ -0,0 +1,629 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +using testing::_; +using testing::InSequence; + +extern "C" bool get_speculative_hold(uint16_t keycode, keyrecord_t *record) { + return true; +} + +class SpeculativeHoldRetroTappingTest : public TestFixture {}; + +TEST_F(SpeculativeHoldRetroTappingTest, roll_regular_to_lgui_mod) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto regular_key = KeymapKey(0, 2, 0, KC_B); + + set_keymap({mod_tap_key, regular_key}); + + EXPECT_REPORT(driver, (KC_B)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_B, KC_LGUI)); + mod_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LGUI)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Neutralizer invoked by Speculative Hold. + EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldRetroTappingTest, regular_to_mod_under_tap_term) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, LSFT_T(KC_A)); + auto regular_key = KeymapKey(0, 2, 0, KC_B); + + set_keymap({mod_tap_key, regular_key}); + + EXPECT_REPORT(driver, (KC_B)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_B, KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT)); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldRetroTappingTest, mod_under_tap_term_to_regular) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto regular_key = KeymapKey(0, 2, 0, KC_B); + + set_keymap({mod_tap_key, regular_key}); + + EXPECT_REPORT(driver, (KC_LGUI)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Neutralizer invoked by Speculative Hold. + EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_REPORT(driver, (KC_B, KC_P)); + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldRetroTappingTest, mod_over_tap_term_to_regular) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, LSFT_T(KC_A)); + auto regular_key = KeymapKey(0, 2, 0, KC_B); + + set_keymap({mod_tap_key, regular_key}); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_B)); + regular_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_B)); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + regular_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldRetroTappingTest, mod_under_tap_term_to_mod_under_tap_term) { + TestDriver driver; + InSequence s; + auto mod_tap_lgui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto mod_tap_lsft = KeymapKey(0, 2, 0, LSFT_T(KC_A)); + + set_keymap({mod_tap_lgui, mod_tap_lsft}); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_lsft.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_LGUI)); + mod_tap_lgui.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_lsft.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_lgui.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldRetroTappingTest, mod_over_tap_term_to_mod_under_tap_term) { + TestDriver driver; + InSequence s; + auto mod_tap_lgui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto mod_tap_lsft = KeymapKey(0, 2, 0, LSFT_T(KC_A)); + + set_keymap({mod_tap_lgui, mod_tap_lsft}); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_lsft.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_LGUI)); + mod_tap_lgui.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + mod_tap_lsft.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_REPORT(driver, (KC_LSFT, KC_P)); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_lgui.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldRetroTappingTest, mod_under_tap_term_to_mod_over_tap_term) { + TestDriver driver; + InSequence s; + auto mod_tap_lgui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto mod_tap_lsft = KeymapKey(0, 2, 0, LSFT_T(KC_A)); + + set_keymap({mod_tap_lgui, mod_tap_lsft}); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_lsft.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_LGUI)); + mod_tap_lgui.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LGUI)); + mod_tap_lsft.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Neutralizer invoked by Retro Tapping. + EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_REPORT(driver, (KC_P, KC_LSFT)); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_lgui.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldRetroTappingTest, mod_under_tap_term_to_mod_over_tap_term_offset) { + TestDriver driver; + InSequence s; + auto mod_tap_lgui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto mod_tap_lsft = KeymapKey(0, 2, 0, LSFT_T(KC_A)); + + set_keymap({mod_tap_lgui, mod_tap_lsft}); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_lsft.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_LGUI)); + mod_tap_lgui.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_lsft.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LGUI)); + // Neutralizer invoked by Retro Tapping. + EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + idle_for(TAPPING_TERM); + mod_tap_lgui.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldRetroTappingTest, mod_over_tap_term_to_mod_over_tap_term) { + TestDriver driver; + InSequence s; + auto mod_tap_lgui = KeymapKey(0, 1, 0, LGUI_T(KC_P)); + auto mod_tap_lsft = KeymapKey(0, 2, 0, LSFT_T(KC_A)); + + set_keymap({mod_tap_lgui, mod_tap_lsft}); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_lsft.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_LGUI)); + mod_tap_lgui.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LGUI)); + mod_tap_lsft.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Neutralizer invoked by Retro Tapping. + EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_REPORT(driver, (KC_P, KC_LSFT)); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_lgui.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldRetroTappingTest, mod_to_mod_to_mod) { + TestDriver driver; + InSequence s; + auto mod_tap_lalt = KeymapKey(0, 1, 0, LALT_T(KC_R)); + auto mod_tap_lsft = KeymapKey(0, 2, 0, SFT_T(KC_A)); + auto mod_tap_lctl = KeymapKey(0, 3, 0, LCTL_T(KC_C)); + + set_keymap({mod_tap_lalt, mod_tap_lsft, mod_tap_lctl}); + + EXPECT_REPORT(driver, (KC_LALT)); + mod_tap_lalt.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT, KC_LALT)); + mod_tap_lsft.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_lalt.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL, KC_LSFT)); + mod_tap_lctl.press(); + idle_for(TAPPING_TERM); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_lsft.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_REPORT(driver, (KC_C, KC_LSFT)); + EXPECT_REPORT(driver, (KC_LSFT)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_lctl.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +// Test with layer tap and speculative mod tap keys on the same layer, rolling +// from LT to MT key: +// "LT down, MT down, (wait out tapping term), LT up, MT up." +TEST_F(SpeculativeHoldRetroTappingTest, lt_mt_same_layer_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, LCTL_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + // Press layer tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap key, after flow tap term but within tapping term. The + // speculative mod activates. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Wait for the layer tap key to settle. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with layer tap and speculative mod tap keys on the same layer, trying a +// nested press: +// "LT down, MT down, (wait out tapping term), MT up, LT up." +TEST_F(SpeculativeHoldRetroTappingTest, lt_mt_same_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, LCTL_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys: MT first, LT second. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with layer tap and speculative mod tap keys on the same layer, trying a +// nested press with the MT first: +// "MT down, LT down, (wait out tapping term), LT up, MT up." +TEST_F(SpeculativeHoldRetroTappingTest, mt_lt_same_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto mod_tap_key = KeymapKey(0, 1, 0, LCTL_T(KC_B)); + auto regular_key = KeymapKey(1, 1, 0, KC_C); + + set_keymap({layer_tap_key, mod_tap_key, regular_key}); + + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL, KC_A)); + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, rolling from +// LT to MT key: +// "LT down, MT down, (wait out tapping term), LT up, MT up." +TEST_F(SpeculativeHoldRetroTappingTest, lt_mt_different_layer_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, LCTL_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + // Press layer tap key. + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + // Press mod tap key. + mod_tap_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_LCTL)); + layer_tap_key.release(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, slowly +// rolling from LT to MT key: +// "LT down, (wait), MT down, (wait), LT up, MT up." +TEST_F(SpeculativeHoldRetroTappingTest, lt_mt_different_layer_slow_roll) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, LCTL_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_REPORT(driver, (KC_LCTL)); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + layer_tap_key.release(); + run_one_scan_loop(); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, trying a +// nested press: +// "LT down, MT down, (wait out tapping term), MT up, LT up." +TEST_F(SpeculativeHoldRetroTappingTest, lt_mt_different_layer_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, LCTL_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_NO_REPORT(driver); + layer_tap_key.press(); + run_one_scan_loop(); + mod_tap_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release keys. + EXPECT_REPORT(driver, (KC_LCTL)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} + +// Test with a speculative mod tap key reached by a layer tap key, slowly making +// a nested press from LT to MT key: +// "LT down, (wait), MT down, MT up, LT up." +TEST_F(SpeculativeHoldRetroTappingTest, lt_mt_different_layer_slow_nested_press) { + TestDriver driver; + InSequence s; + auto layer_tap_key = KeymapKey(0, 0, 0, LT(1, KC_A)); + auto regular_key = KeymapKey(0, 1, 0, KC_B); + auto placeholder_key = KeymapKey(1, 0, 0, KC_NO); + auto mod_tap_key = KeymapKey(1, 1, 0, LCTL_T(KC_C)); + + set_keymap({layer_tap_key, regular_key, placeholder_key, mod_tap_key}); + + EXPECT_REPORT(driver, (KC_LCTL)); + layer_tap_key.press(); + idle_for(TAPPING_TERM + 1); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_C)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + layer_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + // All mods are released. + EXPECT_EQ(get_mods() | get_speculative_mods(), 0); +} From 28eeb92f8eec5b8268d2a74ad0561670d14e189a Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Tue, 11 Nov 2025 04:02:35 -0800 Subject: [PATCH 091/255] Add I2C Transmit and Receive function (#25637) * feat: adds a transmit and receive i2c method * fix: address the i2c transmit and receive length on u16 * Add AVR/LUFA implementation Didn't add a progmem version, since that would only apply to receive. Figured it wasn't worth it, but can add. * Rearrange order of functions * Add docs * Fix doc gen error * Fix lint issues * fix more lint issues --- docs/drivers/i2c.md | 25 +++++++++++++++++++++++++ drivers/i2c_master.h | 15 +++++++++++++++ platforms/avr/drivers/i2c_master.c | 26 ++++++++++++++++++++++++++ platforms/chibios/drivers/i2c_master.c | 6 ++++++ 4 files changed, 72 insertions(+) diff --git a/docs/drivers/i2c.md b/docs/drivers/i2c.md index ad74d0e481..75823c682b 100644 --- a/docs/drivers/i2c.md +++ b/docs/drivers/i2c.md @@ -221,6 +221,31 @@ Receive multiple bytes from the selected I2C device. --- +### `i2c_status_t i2c_transmit_and_receive(uint8_t address, const uint8_t* tx_data, uint16_t tx_length, uint8_t* rx_data, uint16_t rx_length, uint16_t timeout)` {#api-i2c-transmit-and-receive} + +Send and receive multiple bytes from the selected I2C device. + +#### Arguments {#api-i2c-transmit-and-receive-arguments} + + - `uint8_t address` + The 7-bit I2C address of the device. + - `const uint8_t* tx_data` + A pointer to the data to transmit. + - `uint16_t tx_length` + The number of bytes to write. Take care not to overrun the length of `tx_data`. + - `uint8_t* rx_data` + A pointer to a buffer to read into. + - `uint16_t rx_length` + The number of bytes to read. Take care not to overrun the length of `data`. + - `uint16_t timeout` + The time in milliseconds to wait for a response from the target device. + +#### Return Value {#api-i2c-transmit-and-receive-return} + +`I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + +--- + ### `i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout)` {#api-i2c-write-register} Write to a register with an 8-bit address on the I2C device. diff --git a/drivers/i2c_master.h b/drivers/i2c_master.h index dbe1cd42fa..5f6094bc81 100644 --- a/drivers/i2c_master.h +++ b/drivers/i2c_master.h @@ -72,6 +72,21 @@ i2c_status_t i2c_transmit_P(uint8_t address, const uint8_t* data, uint16_t lengt */ i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16_t timeout); +/** + * \brief Send multiple bytes and then receive multiple bytes from the selected I2C device. + * + * \param address The 7-bit I2C address of the device. + * \param tx_data A pointer to the data to transmit. + * \param tx_length The number of bytes to write. Take care not to overrun the length of `tx_data`. + * \param rx_data A pointer to a buffer to read into. + * \param rx_length The number of bytes to read. Take care not to overrun the length of `rx_data`. + * \param timeout The time in milliseconds to wait for a response from the target device. + * + * \return `I2C_STATUS_TIMEOUT` if the timeout period elapses, `I2C_STATUS_ERROR` if some other error occurs, otherwise `I2C_STATUS_SUCCESS`. + */ + +i2c_status_t i2c_transmit_and_receive(uint8_t address, const uint8_t* tx_data, uint16_t tx_length, uint8_t* rx_data, uint16_t rx_length, uint16_t timeout); + /** * \brief Write to a register with an 8-bit address on the I2C device. * diff --git a/platforms/avr/drivers/i2c_master.c b/platforms/avr/drivers/i2c_master.c index 9136f4a7b9..e5caa995cf 100644 --- a/platforms/avr/drivers/i2c_master.c +++ b/platforms/avr/drivers/i2c_master.c @@ -207,6 +207,32 @@ i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16 return (status < 0) ? status : I2C_STATUS_SUCCESS; } +i2c_status_t i2c_transmit_and_receive(uint8_t address, const uint8_t* tx_data, uint16_t tx_length, uint8_t* rx_data, uint16_t rx_length, uint16_t timeout) { + i2c_status_t status = i2c_start(address | I2C_ACTION_WRITE, timeout); + + for (uint16_t i = 0; i < tx_length && status >= 0; i++) { + status = i2c_write(tx_data[i], timeout); + } + + for (uint16_t i = 0; i < (rx_length - 1) && status >= 0; i++) { + status = i2c_read_ack(timeout); + if (status >= 0) { + rx_data[i] = status; + } + } + + if (status >= 0) { + status = i2c_read_nack(timeout); + if (status >= 0) { + rx_data[(rx_length - 1)] = status; + } + } + + i2c_stop(); + + return status; +} + i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout) { i2c_status_t status = i2c_start(devaddr | 0x00, timeout); if (status >= 0) { diff --git a/platforms/chibios/drivers/i2c_master.c b/platforms/chibios/drivers/i2c_master.c index 20850859b5..a44051b82a 100644 --- a/platforms/chibios/drivers/i2c_master.c +++ b/platforms/chibios/drivers/i2c_master.c @@ -160,6 +160,12 @@ i2c_status_t i2c_receive(uint8_t address, uint8_t* data, uint16_t length, uint16 return i2c_epilogue(status); } +i2c_status_t i2c_transmit_and_receive(uint8_t address, const uint8_t* tx_data, uint16_t tx_length, uint8_t* rx_data, uint16_t rx_length, uint16_t timeout) { + i2cStart(&I2C_DRIVER, &i2cconfig); + msg_t status = i2cMasterTransmitTimeout(&I2C_DRIVER, (address >> 1), tx_data, tx_length, rx_data, rx_length, TIME_MS2I(timeout)); + return i2c_epilogue(status); +} + i2c_status_t i2c_write_register(uint8_t devaddr, uint8_t regaddr, const uint8_t* data, uint16_t length, uint16_t timeout) { i2cStart(&I2C_DRIVER, &i2cconfig); From 1ddcf57382f94548aba23871c57c7ce835f203b9 Mon Sep 17 00:00:00 2001 From: Chaser Huang Date: Tue, 11 Nov 2025 07:30:42 -0500 Subject: [PATCH 092/255] [Feature Improvement]add option to keep layer state when recording dynamic macros (#24418) * feat: add option to keep layer state when recording dynamic macros * Better option macro name and lint changes --- docs/features/dynamic_macros.md | 13 ++++++----- .../process_keycode/process_dynamic_macro.c | 23 ++++++++++++++++++- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/docs/features/dynamic_macros.md b/docs/features/dynamic_macros.md index a642ced43e..fa7373a4bd 100644 --- a/docs/features/dynamic_macros.md +++ b/docs/features/dynamic_macros.md @@ -32,12 +32,13 @@ For the details about the internals of the dynamic macros, please read the comme There are a number of options added that should allow some additional degree of customization -|Define |Default |Description | -|----------------------------|----------------|-----------------------------------------------------------------------------------------------------------------| -|`DYNAMIC_MACRO_SIZE` |128 |Sets the amount of memory that Dynamic Macros can use. This is a limited resource, dependent on the controller. | -|`DYNAMIC_MACRO_USER_CALL` |*Not defined* |Defining this falls back to using the user `keymap.c` file to trigger the macro behavior. | -|`DYNAMIC_MACRO_NO_NESTING` |*Not Defined* |Defining this disables the ability to call a macro from another macro (nested macros). | -|`DYNAMIC_MACRO_DELAY` |*Not Defined* |Sets the waiting time (ms unit) when sending each key. | +|Define |Default |Description | +|------------------------------------------|----------------|-----------------------------------------------------------------------------------------------------------------| +|`DYNAMIC_MACRO_SIZE` |128 |Sets the amount of memory that Dynamic Macros can use. This is a limited resource, dependent on the controller. | +|`DYNAMIC_MACRO_USER_CALL` |*Not defined* |Defining this falls back to using the user `keymap.c` file to trigger the macro behavior. | +|`DYNAMIC_MACRO_NO_NESTING` |*Not Defined* |Defining this disables the ability to call a macro from another macro (nested macros). | +|`DYNAMIC_MACRO_DELAY` |*Not Defined* |Sets the waiting time (ms unit) when sending each key. | +|`DYNAMIC_MACRO_KEEP_ORIGINAL_LAYER_STATE` |*Not Defined* |Defining this keeps the layer state when starting to record a macro | If the LEDs start blinking during the recording with each keypress, it means there is no more space for the macro in the macro buffer. To fit the macro in, either make the other macro shorter (they share the same buffer) or increase the buffer size by adding the `DYNAMIC_MACRO_SIZE` define in your `config.h` (default value: 128; please read the comments for it in the header). diff --git a/quantum/process_keycode/process_dynamic_macro.c b/quantum/process_keycode/process_dynamic_macro.c index f8e8256ac8..20e90c6e14 100644 --- a/quantum/process_keycode/process_dynamic_macro.c +++ b/quantum/process_keycode/process_dynamic_macro.c @@ -89,6 +89,11 @@ __attribute__((weak)) bool dynamic_macro_valid_key_user(uint16_t keycode, keyrec #define DYNAMIC_MACRO_CURRENT_LENGTH(BEGIN, POINTER) ((int)(direction * ((POINTER) - (BEGIN)))) #define DYNAMIC_MACRO_CURRENT_CAPACITY(BEGIN, END2) ((int)(direction * ((END2) - (BEGIN)) + 1)) +#ifdef DYNAMIC_MACRO_KEEP_ORIGINAL_LAYER_STATE +static layer_state_t dm1_layer_state; +static layer_state_t dm2_layer_state; +#endif + /** * Start recording of the dynamic macro. * @@ -100,8 +105,16 @@ void dynamic_macro_record_start(keyrecord_t **macro_pointer, keyrecord_t *macro_ dynamic_macro_record_start_kb(direction); - clear_keyboard(); +#ifdef DYNAMIC_MACRO_KEEP_ORIGINAL_LAYER_STATE + if (direction == 1) { + dm1_layer_state = layer_state; + } else if (direction == -1) { + dm2_layer_state = layer_state; + } +#else layer_clear(); +#endif + clear_keyboard(); *macro_pointer = macro_buffer; } @@ -118,7 +131,15 @@ void dynamic_macro_play(keyrecord_t *macro_buffer, keyrecord_t *macro_end, int8_ layer_state_t saved_layer_state = layer_state; clear_keyboard(); +#ifdef DYNAMIC_MACRO_KEEP_ORIGINAL_LAYER_STATE + if (direction == 1) { + layer_state_set(dm1_layer_state); + } else if (direction == -1) { + layer_state_set(dm2_layer_state); + } +#else layer_clear(); +#endif while (macro_buffer != macro_end) { process_record(macro_buffer); From c68e4dec10db07f16f6d2b5dd883bbcfc09cde25 Mon Sep 17 00:00:00 2001 From: Stefan Kerkmann Date: Tue, 11 Nov 2025 13:35:03 +0100 Subject: [PATCH 093/255] [Core] suspend: suppress wake up keypress (#23389) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * suspend: suppress wake up keypress Waking the host from suspend is done by pressing any key on the keyboard, the regular key codes assigned to the keys are not important and must not be sent - otherwise they usually end up in password prompts as ghost characters that have to be deleted again. This commit adds suppression for all keys pressed at the time of wake up. Once a key is released it functions as a regular key again. Signed-off-by: Stefan Kerkmann * suspend: update wake up matrix after wake up delay If USB_SUSPEND_WAKEUP_DELAY is set, the keyboard sleeps during wake up - which can be up to multiple seconds. To handle key presses and releases in that time frame we have to handle the following cases: 1. Key not pressed before suspend, and not pressed after wakeup → do nothing (normal case). 2. Key not pressed before suspend, but pressed after wakeup → set the wakeup_matrix bit to 1 (so that the press and release events would be suppressed). 3. Key pressed before suspend, but not pressed after wakeup → do nothing (the release event will be generated on the first matrix_task() call after the wakeup). 4. Key pressed before suspend, and still pressed after wakeup → do nothing (the release event will be generated some time later). Signed-off-by: Stefan Kerkmann Co-authored-by: Sergey Vlasov * keyboards: anavi: macropad8: disable snake and rgb_test effects ...to shrink the binary size. --- keyboards/anavi/macropad8/keyboard.json | 2 -- platforms/suspend.c | 35 ++++++++++++++++++++++--- platforms/suspend.h | 4 +++ quantum/keyboard.c | 8 +++--- tmk_core/protocol/chibios/chibios.c | 3 +++ tmk_core/protocol/lufa/lufa.c | 3 +++ tmk_core/protocol/vusb/protocol.c | 3 +++ 7 files changed, 50 insertions(+), 8 deletions(-) diff --git a/keyboards/anavi/macropad8/keyboard.json b/keyboards/anavi/macropad8/keyboard.json index 8073a038a2..2fb24e58bb 100644 --- a/keyboards/anavi/macropad8/keyboard.json +++ b/keyboards/anavi/macropad8/keyboard.json @@ -20,10 +20,8 @@ "breathing": true, "rainbow_mood": true, "rainbow_swirl": true, - "snake": true, "knight": true, "static_gradient": true, - "rgb_test": true, "alternating": true, "twinkle": true } diff --git a/platforms/suspend.c b/platforms/suspend.c index fea23cbd02..4756796ea4 100644 --- a/platforms/suspend.c +++ b/platforms/suspend.c @@ -4,6 +4,9 @@ #include "suspend.h" #include "matrix.h" +extern matrix_row_t matrix_previous[MATRIX_ROWS]; +static matrix_row_t wakeup_matrix[MATRIX_ROWS]; + // TODO: Move to more correct location __attribute__((weak)) void matrix_power_up(void) {} __attribute__((weak)) void matrix_power_down(void) {} @@ -44,8 +47,34 @@ bool suspend_wakeup_condition(void) { matrix_power_up(); matrix_scan(); matrix_power_down(); - for (uint8_t r = 0; r < MATRIX_ROWS; r++) { - if (matrix_get_row(r)) return true; + + bool wakeup = false; + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + wakeup_matrix[row] = matrix_get_row(row); + wakeup |= wakeup_matrix[row] != 0; + } + + return wakeup; +} + +void update_matrix_state_after_wakeup(void) { + matrix_power_up(); + matrix_scan(); + matrix_power_down(); + + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + const matrix_row_t current_row = matrix_get_row(row); + wakeup_matrix[row] |= current_row & ~matrix_previous[row]; + matrix_previous[row] |= current_row; + } +} + +bool keypress_is_wakeup_key(uint8_t row, uint8_t col) { + return (wakeup_matrix[row] & ((matrix_row_t)1 << col)); +} + +void wakeup_matrix_handle_key_event(uint8_t row, uint8_t col, bool pressed) { + if (!pressed) { + wakeup_matrix[row] &= ~((matrix_row_t)1 << col); } - return false; } diff --git a/platforms/suspend.h b/platforms/suspend.h index e4f7f39ddb..3a7f51f9f0 100644 --- a/platforms/suspend.h +++ b/platforms/suspend.h @@ -14,6 +14,10 @@ void suspend_power_down_user(void); void suspend_power_down_kb(void); void suspend_power_down_quantum(void); +bool keypress_is_wakeup_key(uint8_t row, uint8_t col); +void update_matrix_state_after_wakeup(void); +void wakeup_matrix_handle_key_event(uint8_t row, uint8_t col, bool pressed); + #ifndef USB_SUSPEND_WAKEUP_DELAY # define USB_SUSPEND_WAKEUP_DELAY 0 #endif diff --git a/quantum/keyboard.c b/quantum/keyboard.c index ce8c8efa68..e0c9373165 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -33,6 +33,7 @@ along with this program. If not, see . #include "sendchar.h" #include "eeconfig.h" #include "action_layer.h" +#include "suspend.h" #ifdef BOOTMAGIC_ENABLE # include "bootmagic.h" #endif @@ -563,6 +564,7 @@ void switch_events(uint8_t row, uint8_t col, bool pressed) { #if defined(RGB_MATRIX_ENABLE) rgb_matrix_handle_key_event(row, col, pressed); #endif + wakeup_matrix_handle_key_event(row, col, pressed); } /** @@ -578,6 +580,8 @@ static inline void generate_tick_event(void) { } } +matrix_row_t matrix_previous[MATRIX_ROWS]; + /** * @brief This task scans the keyboards matrix and processes any key presses * that occur. @@ -591,8 +595,6 @@ static bool matrix_task(void) { return false; } - static matrix_row_t matrix_previous[MATRIX_ROWS]; - matrix_scan(); bool matrix_changed = false; for (uint8_t row = 0; row < MATRIX_ROWS && !matrix_changed; row++) { @@ -626,7 +628,7 @@ static bool matrix_task(void) { if (row_changes & col_mask) { const bool key_pressed = current_row & col_mask; - if (process_keypress) { + if (process_keypress && !keypress_is_wakeup_key(row, col)) { action_exec(MAKE_KEYEVENT(row, col, key_pressed)); } diff --git a/tmk_core/protocol/chibios/chibios.c b/tmk_core/protocol/chibios/chibios.c index 5720bc3c4c..b8cded99fc 100644 --- a/tmk_core/protocol/chibios/chibios.c +++ b/tmk_core/protocol/chibios/chibios.c @@ -191,6 +191,9 @@ void protocol_pre_task(void) { // // Pause for a while to let things settle... wait_ms(USB_SUSPEND_WAKEUP_DELAY); + // ...and then update the wakeup matrix again as the waking key + // might have been released during the delay + update_matrix_state_after_wakeup(); # endif } } diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index e13f4b548e..3e442ba033 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -826,6 +826,9 @@ void protocol_pre_task(void) { // // Pause for a while to let things settle... wait_ms(USB_SUSPEND_WAKEUP_DELAY); + // ...and then update the wakeup matrix again as the waking key + // might have been released during the delay + update_matrix_state_after_wakeup(); # endif } } diff --git a/tmk_core/protocol/vusb/protocol.c b/tmk_core/protocol/vusb/protocol.c index e2d0c4112e..b95750306a 100644 --- a/tmk_core/protocol/vusb/protocol.c +++ b/tmk_core/protocol/vusb/protocol.c @@ -125,6 +125,9 @@ void protocol_pre_task(void) { // // Pause for a while to let things settle... wait_ms(USB_SUSPEND_WAKEUP_DELAY); + // ...and then update the wakeup matrix again as the waking key + // might have been released during the delay + update_matrix_state_after_wakeup(); # endif } } From 8ec3de0f92219ee783425f406ff188597ec5e8c6 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 11 Nov 2025 21:59:06 +0000 Subject: [PATCH 094/255] Add return code to `qmk userspace-doctor` (#25775) --- lib/python/qmk/cli/userspace/doctor.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/python/qmk/cli/userspace/doctor.py b/lib/python/qmk/cli/userspace/doctor.py index 2b7e29aa7e..7c016e5a2f 100644 --- a/lib/python/qmk/cli/userspace/doctor.py +++ b/lib/python/qmk/cli/userspace/doctor.py @@ -2,10 +2,12 @@ # SPDX-License-Identifier: GPL-2.0-or-later from milc import cli -from qmk.constants import QMK_FIRMWARE +from qmk.constants import QMK_FIRMWARE, HAS_QMK_USERSPACE from qmk.cli.doctor.main import userspace_tests @cli.subcommand('Checks userspace configuration.') def userspace_doctor(cli): userspace_tests(QMK_FIRMWARE) + + return 0 if HAS_QMK_USERSPACE else 1 From 98504424b1748c6db4eb26fde2c45c8d76eec7b9 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 11 Nov 2025 22:00:28 +0000 Subject: [PATCH 095/255] Align use of keymap level `_kb` callbacks (#25774) --- .../default_pimoroni/pimoroni_trackball.c | 10 ++------ keyboards/bastardkb/dilemma/dilemma.c | 1 - .../xealous/keymaps/default/keymap.c | 2 +- keyboards/lime/keymaps/default/keymap.c | 2 +- .../rp2040_orbweaver/keymaps/default/keymap.c | 6 ++--- .../rmi_kb/tkl_ff/keymaps/default/keymap.c | 24 +++++++------------ keyboards/rmi_kb/tkl_ff/keymaps/iso/keymap.c | 24 +++++++------------ .../rmi_kb/wete/v2/keymaps/default/keymap.c | 24 +++++++------------ keyboards/rmi_kb/wete/v2/keymaps/iso/keymap.c | 24 +++++++------------ keyboards/spleeb/spleeb.c | 1 - .../prime/keymaps/default/keymap.c | 2 +- .../prime_plus/keymaps/default/keymap.c | 2 +- .../synthlabs/solo/keymaps/gamepad/keymap.c | 4 ++-- 13 files changed, 46 insertions(+), 80 deletions(-) diff --git a/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c b/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c index 0fe7cdc247..4964f59217 100644 --- a/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c +++ b/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.c @@ -72,14 +72,7 @@ __attribute__((weak)) void trackball_check_click(bool pressed, report_mouse_t* m } } -bool process_record_kb(uint16_t keycode, keyrecord_t* record) { - if (true) { - xprintf("KL: kc: %u, col: %u, row: %u, pressed: %u\n", keycode, record->event.key.col, record->event.key.row, record->event.pressed); - } - - - if (!process_record_user(keycode, record)) { return false; } - +bool process_record_user(uint16_t keycode, keyrecord_t* record) { /* If Mousekeys is disabled, then use handle the mouse button * keycodes. This makes things simpler, and allows usage of * the keycodes in a consistent manner. But only do this if @@ -95,6 +88,7 @@ bool process_record_kb(uint16_t keycode, keyrecord_t* record) { } pointing_device_set_report(currentReport); pointing_device_send(); + return false; } #endif diff --git a/keyboards/bastardkb/dilemma/dilemma.c b/keyboards/bastardkb/dilemma/dilemma.c index c14345d075..138f363346 100644 --- a/keyboards/bastardkb/dilemma/dilemma.c +++ b/keyboards/bastardkb/dilemma/dilemma.c @@ -176,7 +176,6 @@ void dilemma_set_pointer_dragscroll_enabled(bool enable) { void pointing_device_init_kb(void) { maybe_update_pointing_device_cpi(&g_dilemma_config); - pointing_device_init_user(); } /** diff --git a/keyboards/handwired/xealous/keymaps/default/keymap.c b/keyboards/handwired/xealous/keymaps/default/keymap.c index 88aa4ddfc9..b581015b54 100644 --- a/keyboards/handwired/xealous/keymaps/default/keymap.c +++ b/keyboards/handwired/xealous/keymaps/default/keymap.c @@ -87,7 +87,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { float tone_qwerty[][2] = TONE_QWERTY; float tone_numpad[][2] = TONE_NUMPAD; -layer_state_t default_layer_state_set_kb(layer_state_t state) { +layer_state_t default_layer_state_set_user(layer_state_t state) { if (state == 1UL<<_QWERTY) { PLAY_SONG(tone_qwerty); } else if (state == 1UL<<_NUMPAD) { diff --git a/keyboards/lime/keymaps/default/keymap.c b/keyboards/lime/keymaps/default/keymap.c index 8f4e6eb8a4..8e5923c14e 100644 --- a/keyboards/lime/keymaps/default/keymap.c +++ b/keyboards/lime/keymaps/default/keymap.c @@ -172,7 +172,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { # endif /* Joystick + Encoder fix */ - void keyboard_post_init_kb(void) { + void keyboard_post_init_user(void) { if (is_keyboard_master()) { gpio_write_pin_low(JOYSTICK_X_PIN); gpio_write_pin_low(JOYSTICK_Y_PIN); diff --git a/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c b/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c index df59752ce0..382cb2b960 100644 --- a/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c +++ b/keyboards/lostdotfish/rp2040_orbweaver/keymaps/default/keymap.c @@ -76,15 +76,13 @@ layer_state_t layer_state_set_user(layer_state_t state) { } return state; } -void suspend_power_down_kb(void) { +void suspend_power_down_user(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) { +void suspend_wakeup_init_user(void) { layer_state_set_kb(layer_state); - suspend_wakeup_init_user(); } diff --git a/keyboards/rmi_kb/tkl_ff/keymaps/default/keymap.c b/keyboards/rmi_kb/tkl_ff/keymaps/default/keymap.c index d49d9d0b77..65c5560556 100644 --- a/keyboards/rmi_kb/tkl_ff/keymaps/default/keymap.c +++ b/keyboards/rmi_kb/tkl_ff/keymaps/default/keymap.c @@ -42,25 +42,19 @@ const rgblight_segment_t PROGMEM ll_sl[] = RGBLIGHT_LAYER_SEGMENTS( const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(ll_none, ll_cl, ll_sl); -void keyboard_post_init_kb(void) { +void keyboard_post_init_user(void) { rgblight_layers = rgb_layers; - - keyboard_post_init_user(); } -bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - - if (res) { - uint8_t lock_bits = led_state.scroll_lock << 1 | led_state.caps_lock; - for (uint8_t i=0; i<3; i++) { - rgblight_set_layer_state(i, false); - } - if (lock_bits < 3) { - rgblight_set_layer_state(lock_bits, true); - } +bool led_update_user(led_t led_state) { + uint8_t lock_bits = led_state.scroll_lock << 1 | led_state.caps_lock; + for (uint8_t i=0; i<3; i++) { + rgblight_set_layer_state(i, false); + } + if (lock_bits < 3) { + rgblight_set_layer_state(lock_bits, true); } - return res; + return false; } #endif diff --git a/keyboards/rmi_kb/tkl_ff/keymaps/iso/keymap.c b/keyboards/rmi_kb/tkl_ff/keymaps/iso/keymap.c index 90319d52e6..4414fa2832 100644 --- a/keyboards/rmi_kb/tkl_ff/keymaps/iso/keymap.c +++ b/keyboards/rmi_kb/tkl_ff/keymaps/iso/keymap.c @@ -42,25 +42,19 @@ const rgblight_segment_t PROGMEM ll_sl[] = RGBLIGHT_LAYER_SEGMENTS( const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(ll_none, ll_cl, ll_sl); -void keyboard_post_init_kb(void) { +void keyboard_post_init_user(void) { rgblight_layers = rgb_layers; - - keyboard_post_init_user(); } -bool led_update_kb(led_t led_state) { - bool res = led_update_user(led_state); - - if (res) { - uint8_t lock_bits = led_state.scroll_lock << 1 | led_state.caps_lock; - for (uint8_t i=0; i<3; i++) { - rgblight_set_layer_state(i, false); - } - if (lock_bits < 3) { - rgblight_set_layer_state(lock_bits, true); - } +bool led_update_user(led_t led_state) { + uint8_t lock_bits = led_state.scroll_lock << 1 | led_state.caps_lock; + for (uint8_t i=0; i<3; i++) { + rgblight_set_layer_state(i, false); + } + if (lock_bits < 3) { + rgblight_set_layer_state(lock_bits, true); } - return res; + return false; } #endif diff --git a/keyboards/rmi_kb/wete/v2/keymaps/default/keymap.c b/keyboards/rmi_kb/wete/v2/keymaps/default/keymap.c index 3916d18366..067a278381 100644 --- a/keyboards/rmi_kb/wete/v2/keymaps/default/keymap.c +++ b/keyboards/rmi_kb/wete/v2/keymaps/default/keymap.c @@ -73,25 +73,19 @@ const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST( ll_slcl ); -void keyboard_post_init_kb(void) { +void keyboard_post_init_user(void) { rgblight_layers = rgb_layers; - - keyboard_post_init_user(); } -bool led_update_kb (led_t led_state) { - bool res = led_update_user(led_state); - - if (res) { - uint8_t lock_bits = led_state.scroll_lock << 2 | led_state.caps_lock << 1 | led_state.num_lock; - for (uint8_t i=0; i<7; i++) { - rgblight_set_layer_state(i, false); - } - if (lock_bits < 7) { - rgblight_set_layer_state(lock_bits, true); - } +bool led_update_user (led_t led_state) { + uint8_t lock_bits = led_state.scroll_lock << 2 | led_state.caps_lock << 1 | led_state.num_lock; + for (uint8_t i=0; i<7; i++) { + rgblight_set_layer_state(i, false); + } + if (lock_bits < 7) { + rgblight_set_layer_state(lock_bits, true); } - return res; + return false; } #endif diff --git a/keyboards/rmi_kb/wete/v2/keymaps/iso/keymap.c b/keyboards/rmi_kb/wete/v2/keymaps/iso/keymap.c index 12933c4b57..66e8f7e8da 100644 --- a/keyboards/rmi_kb/wete/v2/keymaps/iso/keymap.c +++ b/keyboards/rmi_kb/wete/v2/keymaps/iso/keymap.c @@ -73,25 +73,19 @@ const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST( ll_slcl ); -void keyboard_post_init_kb(void) { +void keyboard_post_init_user(void) { rgblight_layers = rgb_layers; - - keyboard_post_init_user(); } -bool led_update_kb (led_t led_state) { - bool res = led_update_user(led_state); - - if (res) { - uint8_t lock_bits = led_state.scroll_lock << 2 | led_state.caps_lock << 1 | led_state.num_lock; - for (uint8_t i=0; i<7; i++) { - rgblight_set_layer_state(i, false); - } - if (lock_bits < 7) { - rgblight_set_layer_state(lock_bits, true); - } +bool led_update_user (led_t led_state) { + uint8_t lock_bits = led_state.scroll_lock << 2 | led_state.caps_lock << 1 | led_state.num_lock; + for (uint8_t i=0; i<7; i++) { + rgblight_set_layer_state(i, false); + } + if (lock_bits < 7) { + rgblight_set_layer_state(lock_bits, true); } - return res; + return false; } #endif diff --git a/keyboards/spleeb/spleeb.c b/keyboards/spleeb/spleeb.c index 33131fa3e2..96cf622743 100644 --- a/keyboards/spleeb/spleeb.c +++ b/keyboards/spleeb/spleeb.c @@ -283,7 +283,6 @@ void pointing_device_init_kb(void) { cirque_pinnacle_enable_cursor_glide(false); set_auto_mouse_enable(true); - pointing_device_init_user(); } /** diff --git a/keyboards/steelseries/prime/keymaps/default/keymap.c b/keyboards/steelseries/prime/keymaps/default/keymap.c index 803f6b47da..0855107bf7 100644 --- a/keyboards/steelseries/prime/keymaps/default/keymap.c +++ b/keyboards/steelseries/prime/keymaps/default/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format on -void pointing_device_init_kb(void) { +void pointing_device_init_user(void) { pointing_device_set_cpi(1600); } diff --git a/keyboards/steelseries/prime_plus/keymaps/default/keymap.c b/keyboards/steelseries/prime_plus/keymaps/default/keymap.c index 803f6b47da..0855107bf7 100644 --- a/keyboards/steelseries/prime_plus/keymaps/default/keymap.c +++ b/keyboards/steelseries/prime_plus/keymaps/default/keymap.c @@ -18,7 +18,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { }; // clang-format on -void pointing_device_init_kb(void) { +void pointing_device_init_user(void) { pointing_device_set_cpi(1600); } diff --git a/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c b/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c index 7bafe6b191..f21b7e3411 100644 --- a/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c +++ b/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c @@ -20,11 +20,11 @@ joystick_config_t joystick_axes[JOYSTICK_AXIS_COUNT] = { [0] = JOYSTICK_AXIS_VIRTUAL }; -bool encoder_update_kb(uint8_t index, bool clockwise) { +bool encoder_update_user(uint8_t index, bool clockwise) { joystick_position += (clockwise ? 2 : -2) * (full_joystick_value / pulses_per_revolution); // +2 and -2 are used, since +1.0 and -1.0 axis output refers to positions at half of a full rotation joystick_set_axis(0, joystick_position); - return true; + return false; } #endif From 99b1dc84da8ed3d2544824f3480090cdb201f0fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Wed, 12 Nov 2025 06:02:08 +0800 Subject: [PATCH 096/255] Fix Magic GUI masking logic (#25780) --- quantum/keycode_config.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/quantum/keycode_config.c b/quantum/keycode_config.c index f5068902d5..90b910e960 100644 --- a/quantum/keycode_config.c +++ b/quantum/keycode_config.c @@ -162,8 +162,9 @@ __attribute__((weak)) uint8_t mod_config(uint8_t mod) { } } if (keymap_config.no_gui) { - mod &= ~MOD_LGUI; - mod &= ~MOD_RGUI; + if (mod & MOD_LGUI) { + mod &= ~MOD_RGUI; + } } #endif // MAGIC_ENABLE From 1a4af3adf90bd7c20e2faa4eed6715845e7f7fd6 Mon Sep 17 00:00:00 2001 From: ploopyco <54917504+ploopyco@users.noreply.github.com> Date: Tue, 11 Nov 2025 17:02:52 -0500 Subject: [PATCH 097/255] Add PixArt PAW-3222 mouse sensor driver (#25763) --- builddefs/common_features.mk | 4 +- docs/features/pointing_device.md | 17 +++ drivers/sensors/paw3222.c | 174 ++++++++++++++++++++++ drivers/sensors/paw3222.h | 47 ++++++ quantum/pointing_device/pointing_device.h | 4 + 5 files changed, 245 insertions(+), 1 deletion(-) create mode 100644 drivers/sensors/paw3222.c create mode 100644 drivers/sensors/paw3222.h diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 1da13997b5..cd4e67a4bd 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -125,7 +125,7 @@ ifeq ($(strip $(MOUSEKEY_ENABLE)), yes) MOUSE_ENABLE := yes endif -VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick azoteq_iqs5xx cirque_pinnacle_i2c cirque_pinnacle_spi paw3204 pmw3320 pmw3360 pmw3389 pimoroni_trackball custom +VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick azoteq_iqs5xx cirque_pinnacle_i2c cirque_pinnacle_spi paw3204 paw3222 pmw3320 pmw3360 pmw3389 pimoroni_trackball custom ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) ifeq ($(filter $(POINTING_DEVICE_DRIVER),$(VALID_POINTING_DEVICE_DRIVER_TYPES)),) $(call CATASTROPHIC_ERROR,Invalid POINTING_DEVICE_DRIVER,POINTING_DEVICE_DRIVER="$(POINTING_DEVICE_DRIVER)" is not a valid pointing device type) @@ -157,6 +157,8 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) SRC += drivers/sensors/cirque_pinnacle.c SRC += drivers/sensors/cirque_pinnacle_gestures.c SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_gestures.c + else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), paw3222) + SPI_DRIVER_REQUIRED = yes else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), pimoroni_trackball) I2C_DRIVER_REQUIRED = yes else ifneq ($(filter $(strip $(POINTING_DEVICE_DRIVER)),pmw3360 pmw3389),) diff --git a/docs/features/pointing_device.md b/docs/features/pointing_device.md index d6dcddcdf0..eedbf59b95 100644 --- a/docs/features/pointing_device.md +++ b/docs/features/pointing_device.md @@ -267,6 +267,23 @@ The paw 3204 sensor uses a serial type protocol for communication, and requires The CPI range is 400-1600, with supported values of (400, 500, 600, 800, 1000, 1200 and 1600). Defaults to 1000 CPI. +### PAW-3222 Sensor + +To use the PAW-3222 sensor, add this to your `rules.mk`: + +```make +POINTING_DEVICE_DRIVER = paw3222 +``` + +The following pins must be defined in `config.h`: + +| Setting (`config.h`) | Description | Default | +| --------------------- | ------------------------------------------------------------------ | ---------------------------- | +| `PAW3222_CS_PIN` | (Required) The pin connected to the chip select pin of the sensor. | `POINTING_DEVICE_CS_PIN` | +| `PAW3222_SPI_DIVISOR` | (Required) The SPI clock divisor. This is dependent on your MCU. | _not defined_ | + +The CPI range is up to 4,000. Defaults to 1,000 CPI. + ### Pimoroni Trackball To use the Pimoroni Trackball module, add this to your `rules.mk`: diff --git a/drivers/sensors/paw3222.c b/drivers/sensors/paw3222.c new file mode 100644 index 0000000000..57f89a12d6 --- /dev/null +++ b/drivers/sensors/paw3222.c @@ -0,0 +1,174 @@ +/* Copyright 2024 Colin Lam (Ploopy Corporation) + * + * 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 "paw3222.h" +#include "wait.h" +#include "gpio.h" +#include "spi_master.h" +#include "pointing_device_internal.h" + +#define MSB1 0x80 +#define MSB0 0x7F + +const pointing_device_driver_t paw3222_pointing_device_driver = { + .init = paw3222_init, + .get_report = paw3222_get_report, + .set_cpi = paw3222_set_cpi, + .get_cpi = paw3222_get_cpi, +}; + +// Convert a 12-bit twos complement binary-represented number into a +// signed 12-bit integer. +static int16_t convert_twoscomp_12(uint16_t data) { + if ((data & 0x800) == 0x800) + return -2048 + (data & 0x7FF); + else + return data; +} + +void paw3222_write(uint8_t reg_addr, uint8_t data) { + spi_start(PAW3222_CS_PIN, false, 3, PAW3222_SPI_DIVISOR); + wait_us(1); // Tncs_lead + spi_write(reg_addr | MSB1); + spi_write(data); + wait_us(1); // Tncs_lag + spi_stop(); +} + +uint8_t paw3222_read(uint8_t reg_addr) { + spi_start(PAW3222_CS_PIN, false, 3, PAW3222_SPI_DIVISOR); + wait_us(1); // Tncs_lead + spi_write(reg_addr & MSB0); + wait_us(10); // Tprep_rd + uint8_t data = spi_read(); + wait_us(1); // Tncs_lag + spi_stop(); + + return data; +} + +bool paw3222_init(void) { + gpio_set_pin_output(PAW3222_CS_PIN); + + // CS must be kept low at power-up stage for at least 1ms + gpio_write_pin_low(PAW3222_CS_PIN); + wait_ms(10); + gpio_write_pin_high(PAW3222_CS_PIN); + + spi_init(); + + // reboot + paw3222_write(0x06, 0x80); + wait_ms(50); + + if (!paw3222_check_signature()) { + return false; + } + + // initialize + paw3222_write(0x09, 0x5A); + paw3222_write(0x0D, 0x23); + paw3222_write(0x0E, 0x24); + paw3222_write(0x19, 0x1C); + paw3222_write(0x05, 0xA1); + paw3222_write(0x2B, 0x6D); + paw3222_write(0x30, 0x2E); + paw3222_write(0x5C, 0xDF); + paw3222_write(0x7F, 0x01); + paw3222_write(0x06, 0x14); + paw3222_write(0x31, 0x25); + paw3222_write(0x34, 0xC4); + paw3222_write(0x36, 0xCC); + paw3222_write(0x37, 0x42); + paw3222_write(0x38, 0x01); + paw3222_write(0x3A, 0x76); + paw3222_write(0x3B, 0x34); + paw3222_write(0x42, 0x39); + paw3222_write(0x43, 0xF2); + paw3222_write(0x44, 0x39); + paw3222_write(0x45, 0xF0); + paw3222_write(0x46, 0x12); + paw3222_write(0x47, 0x39); + paw3222_write(0x48, 0xE3); + paw3222_write(0x49, 0x48); + paw3222_write(0x4A, 0xD3); + paw3222_write(0x4B, 0x98); + paw3222_write(0x64, 0x46); + paw3222_write(0x71, 0x28); + paw3222_write(0x72, 0x28); + paw3222_write(0x7F, 0x00); + paw3222_write(0x09, 0x00); + + // read a burst, then discard + paw3222_read_burst(); + + return true; +} + +report_paw3222_t paw3222_read_burst(void) { + report_paw3222_t report = {0}; + + uint8_t motion = paw3222_read(0x02); + if ((motion & MSB1) == MSB1) { + // Motion detected + uint16_t dx = (uint16_t)paw3222_read(0x03); + uint16_t dy = (uint16_t)paw3222_read(0x04); + uint16_t dxy_hi = (uint16_t)paw3222_read(0x12); + + dx = dx | ((dxy_hi & 0xF0) << 4); + dy = dy | ((dxy_hi & 0x0F) << 8); + + report.dx = convert_twoscomp_12(dx); + report.dy = convert_twoscomp_12(dy); + } + + return report; +} + +void paw3222_set_cpi(uint16_t cpi) { + uint16_t cpival = (cpi) < (480) ? (480) : ((cpi) > (4020) ? (4020) : (cpi)); + uint8_t cpival_x = (cpival + (30 / 2)) / 30; + uint8_t cpival_y = (cpival + (29 / 2)) / 29; + + paw3222_write(0x09, 0x5A); + paw3222_write(0x0D, cpival_x); + paw3222_write(0x0E, cpival_y); + paw3222_write(0x09, 0x00); +} + +uint16_t paw3222_get_cpi(void) { + uint8_t cpival = paw3222_read(0x0D); + return (uint16_t)(cpival * 30); +} + +report_mouse_t paw3222_get_report(report_mouse_t mouse_report) { + report_paw3222_t data = paw3222_read_burst(); + + if (data.dx != 0 || data.dy != 0) { + pd_dprintf("Raw ] X: %d, Y: %d\n", data.dx, data.dy); + mouse_report.x = CONSTRAIN_HID_XY(data.dx); + mouse_report.y = CONSTRAIN_HID_XY(data.dy); + } + + return mouse_report; +} + +bool paw3222_check_signature(void) { + uint8_t checkval_1 = paw3222_read(0x00); + uint8_t checkval_2 = paw3222_read(0x01); + + return (checkval_1 == 0x30 && checkval_2 == 0x02); +} diff --git a/drivers/sensors/paw3222.h b/drivers/sensors/paw3222.h new file mode 100644 index 0000000000..8dbf6a38bb --- /dev/null +++ b/drivers/sensors/paw3222.h @@ -0,0 +1,47 @@ +/* Copyright 2024 Colin Lam (Ploopy Corporation) + * + * 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 +#include +#include "pointing_device.h" + +#ifndef PAW3222_CS_PIN +# ifdef POINTING_DEVICE_CS_PIN +# define PAW3222_CS_PIN POINTING_DEVICE_CS_PIN +# else +# error "No chip select pin defined -- missing POINTING_DEVICE_CS_PIN or PAW3222_CS_PIN define" +# endif +#endif + +#ifndef PAW3222_SPI_DIVISOR +# error "No PAW3222 SPI divisor defined -- missing PAW3222_SPI_DIVISOR" +#endif + +typedef struct { + int16_t dx; + int16_t dy; +} report_paw3222_t; + +extern const pointing_device_driver_t paw3222_pointing_device_driver; + +bool paw3222_init(void); +report_paw3222_t paw3222_read_burst(void); +void paw3222_set_cpi(uint16_t cpi); +uint16_t paw3222_get_cpi(void); +report_mouse_t paw3222_get_report(report_mouse_t mouse_report); +bool paw3222_check_signature(void); diff --git a/quantum/pointing_device/pointing_device.h b/quantum/pointing_device/pointing_device.h index 5dfb9ce196..bb0e43af3c 100644 --- a/quantum/pointing_device/pointing_device.h +++ b/quantum/pointing_device/pointing_device.h @@ -39,6 +39,10 @@ typedef struct { #elif defined(POINTING_DEVICE_DRIVER_pmw3320) # include "drivers/sensors/pmw3320.h" # define POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW +#elif defined(POINTING_DEVICE_DRIVER_paw3222) +# include "spi_master.h" +# include "drivers/sensors/paw3222.h" +# define POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW #elif defined(POINTING_DEVICE_DRIVER_adns9800) # include "spi_master.h" # include "drivers/sensors/adns9800.h" From a58d2dd7c9d0fcd5d86a1d63c7429af934c18f4c Mon Sep 17 00:00:00 2001 From: "Ricardo (XenGi) Band" Date: Sat, 15 Nov 2025 18:39:35 +0100 Subject: [PATCH 098/255] wip --- keyboards/mkbd65/config.h | 19 +- keyboards/mkbd65/info.json | 16 -- keyboards/mkbd65/keyboard.json | 167 ++++++++++++++++++ keyboards/mkbd65/keymaps/ansi/README.md | 5 +- keyboards/mkbd65/keymaps/ansi/keymap.c | 1 + keyboards/mkbd65/keymaps/de/README.md | 5 +- keyboards/mkbd65/keymaps/en_us_intl/README.md | 5 +- keyboards/mkbd65/keymaps/iso/README.md | 1 + keyboards/mkbd65/rev0/mkbd65.c | 2 + keyboards/mkbd65/rev0/mkbd65.h | 2 - keyboards/mkbd65/rules.mk | 31 +++- 11 files changed, 219 insertions(+), 35 deletions(-) delete mode 100644 keyboards/mkbd65/info.json create mode 100644 keyboards/mkbd65/keyboard.json diff --git a/keyboards/mkbd65/config.h b/keyboards/mkbd65/config.h index 4ac3a7eaf5..4b3907c132 100644 --- a/keyboards/mkbd65/config.h +++ b/keyboards/mkbd65/config.h @@ -1,13 +1,12 @@ -// Copyright 2023 XenGi (@XenGi) +// Copyright 2023 XenGi // SPDX-License-Identifier: GPL-2.0-or-later -#pragma once +// optimize firmware +#undef LOCKING_SUPPORT_ENABLE +#undef LOCKING_RESYNC_ENABLE +#define LAYER_STATE_8BIT + +// disable features to save on code size +#define NO_ACTION_TAPPING +#define NO_ACTION_ONESHOT -// disable debugging -//#define NO_DEBUG -// disable printing/debugging using hid_listen -//#define NO_PRINT -// disable tap dance and other tapping features -//#define NO_ACTION_TAPPING -// disable one-shot modifiers -//#define NO_ACTION_ONESHOT diff --git a/keyboards/mkbd65/info.json b/keyboards/mkbd65/info.json deleted file mode 100644 index 7a2cd0c8f7..0000000000 --- a/keyboards/mkbd65/info.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "keyboard_name": "mkbd65", - "manufacturer": "XenGi", - "url": "https://mkbd65.xengi.de", - "maintainer": "XenGi", - "author": ["XenGi"], - "debounce": 5, - "diode_direction": "ROW2COL", - "bootmagic": { - "enabled": true, - "matrix": [0, 0] - }, - "tags": ["mobile", "65%"], - "description": "A mobile keyboard addon for modern smartphones. Fits any smartphones within some minimal size requirements. Supports any keyboard layout you want, as long as it doesn't need more keys.", - "short": "A mobile keyboard addon for modern smartphones." -} diff --git a/keyboards/mkbd65/keyboard.json b/keyboards/mkbd65/keyboard.json new file mode 100644 index 0000000000..3d1fe2ec2a --- /dev/null +++ b/keyboards/mkbd65/keyboard.json @@ -0,0 +1,167 @@ +{ + "manufacturer": "XenGi", + "keyboard_name": "mkbd65", + "maintainer": "XenGi", + "bootloader": "atmel-dfu", + "diode_direction": "ROW2COL", + "debounce": 5, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": false, + "rgblight": false + }, + "bootmagic": { + "enabled": true, + "matrix": [0, 0] + }, + "matrix_pins": { + "cols": ["D4", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"], + "rows": ["D5", "D3", "D2", "D1", "D0"] + }, + "processor": "atmega32u4", + "url": "https://mkbd65.xengi.de", + "bootloader_instructions": "Press the button marked RESET on the back of the PCB", + "tags": ["mobile", "65%"], + "usb": { + "device_version": "0.0.1", + "pid": "0x4803", + "vid": "0x1209" + }, + "build": { + "lto": true + }, + "layouts": { + "LAYOUT": { + "layout_ansi": [ + { "matrix": [0, 0], "x": 0, "y": 0, "label": "Esc" }, + { "matrix": [0, 1], "x": 1, "y": 0, "label": "1" }, + { "matrix": [0, 2], "x": 2, "y": 0, "label": "2" }, + { "matrix": [0, 3], "x": 3, "y": 0, "label": "3" }, + { "matrix": [0, 4], "x": 4, "y": 0, "label": "4" }, + { "matrix": [0, 5], "x": 5, "y": 0, "label": "5" }, + { "matrix": [0, 6], "x": 6, "y": 0, "label": "6" }, + { "matrix": [0, 7], "x": 7, "y": 0, "label": "7" }, + { "matrix": [0, 8], "x": 8, "y": 0, "label": "8" }, + { "matrix": [0, 9], "x": 9, "y": 0, "label": "9" }, + { "matrix": [0, 10], "x": 10, "y": 0, "label": "0" }, + { "matrix": [0, 11], "x": 11, "y": 0, "w": 2, "label": "Backspace" }, + { "matrix": [1, 0], "x": 1, "y": 0, "label": "Q" }, + { "matrix": [1, 1], "x": 1, "y": 1, "label": "W" }, + { "matrix": [1, 2], "x": 1, "y": 2, "label": "E" }, + { "matrix": [1, 3], "x": 1, "y": 3, "label": "R" }, + { "matrix": [1, 4], "x": 1, "y": 4, "label": "T" }, + { "matrix": [1, 5], "x": 1, "y": 5, "label": "Y" }, + { "matrix": [1, 6], "x": 1, "y": 6, "label": "U" }, + { "matrix": [1, 7], "x": 1, "y": 7, "label": "I" }, + { "matrix": [1, 8], "x": 1, "y": 8, "label": "O" }, + { "matrix": [1, 9], "x": 1, "y": 9, "label": "P" }, + { "matrix": [1, 10], "x": 1, "y": 10, "label": "[" }, + { "matrix": [1, 11], "x": 1, "y": 11, "label": "]" }, + { "matrix": [1, 11], "x": 1, "y": 12, "label": "\\" }, + { "matrix": [2, 0], "x": 2, "y": 0, "label": "A" }, + { "matrix": [2, 1], "x": 2, "y": 1, "label": "S" }, + { "matrix": [2, 2], "x": 2, "y": 2, "label": "D" }, + { "matrix": [2, 3], "x": 2, "y": 3, "label": "F" }, + { "matrix": [2, 4], "x": 2, "y": 4, "label": "G" }, + { "matrix": [2, 5], "x": 2, "y": 5, "label": "H" }, + { "matrix": [2, 6], "x": 2, "y": 6, "label": "J" }, + { "matrix": [2, 7], "x": 2, "y": 7, "label": "K" }, + { "matrix": [2, 8], "x": 2, "y": 8, "label": "L" }, + { "matrix": [2, 9], "x": 2, "y": 9, "label": ";" }, + { "matrix": [2, 10], "x": 2, "y": 10, "label": "'" }, + { "matrix": [2, 11], "x": 2, "y": 11, "w": 2, "label": "Enter" }, + { "matrix": [3, 0], "x": 3, "y": 0, "label": "Z" }, + { "matrix": [3, 1], "x": 3, "y": 1, "label": "X" }, + { "matrix": [3, 2], "x": 3, "y": 2, "label": "C" }, + { "matrix": [3, 3], "x": 3, "y": 3, "label": "V" }, + { "matrix": [3, 4], "x": 3, "y": 4, "label": "B" }, + { "matrix": [3, 5], "x": 3, "y": 5, "label": "N" }, + { "matrix": [3, 6], "x": 3, "y": 6, "label": "M" }, + { "matrix": [3, 7], "x": 3, "y": 7, "label": "," }, + { "matrix": [3, 8], "x": 3, "y": 8, "label": "." }, + { "matrix": [3, 9], "x": 3, "y": 9, "label": "/" }, + { "matrix": [3, 10], "x": 3, "y": 10, "label": "Up" }, + { "matrix": [3, 11], "x": 3, "y": 11, "w": 2, "label": "ShiftR" }, + { "matrix": [4, 0], "x": 4, "y": 0, "label": "CtrlL" }, + { "matrix": [4, 1], "x": 4, "y": 1, "label": "Fn" }, + { "matrix": [4, 2], "x": 4, "y": 2, "label": "ShiftL" }, + { "matrix": [4, 3], "x": 4, "y": 3, "label": "Alt" }, + { "matrix": [4, 4], "x": 4, "y": 4, "w": 3, "label": "Space" }, + { "matrix": [4, 7], "x": 4, "y": 7, "label": "-" }, + { "matrix": [4, 8], "x": 4, "y": 8, "label": "=" }, + { "matrix": [4, 9], "x": 4, "y": 9, "label": "Left" }, + { "matrix": [4, 10], "x": 4, "y": 10, "label": "Down" }, + { "matrix": [4, 11], "x": 4, "y": 11, "label": "Right" }, + { "matrix": [4, 12], "x": 4, "y": 12, "label": "CtrlR" } + ], + "layout_iso": [ + { "matrix": [0, 0], "x": 0, "y": 0, "label": "Esc" }, + { "matrix": [0, 1], "x": 1, "y": 0, "label": "1" }, + { "matrix": [0, 2], "x": 2, "y": 0, "label": "2" }, + { "matrix": [0, 3], "x": 3, "y": 0, "label": "3" }, + { "matrix": [0, 4], "x": 4, "y": 0, "label": "4" }, + { "matrix": [0, 5], "x": 5, "y": 0, "label": "5" }, + { "matrix": [0, 6], "x": 6, "y": 0, "label": "6" }, + { "matrix": [0, 7], "x": 7, "y": 0, "label": "7" }, + { "matrix": [0, 8], "x": 8, "y": 0, "label": "8" }, + { "matrix": [0, 9], "x": 9, "y": 0, "label": "9" }, + { "matrix": [0, 10], "x": 10, "y": 0, "label": "0" }, + { "matrix": [0, 11], "x": 11, "y": 0, "w": 2, "label": "Backspace" }, + { "matrix": [1, 0], "x": 1, "y": 0, "label": "Q" }, + { "matrix": [1, 1], "x": 1, "y": 1, "label": "W" }, + { "matrix": [1, 2], "x": 1, "y": 2, "label": "E" }, + { "matrix": [1, 3], "x": 1, "y": 3, "label": "R" }, + { "matrix": [1, 4], "x": 1, "y": 4, "label": "T" }, + { "matrix": [1, 5], "x": 1, "y": 5, "label": "Y" }, + { "matrix": [1, 6], "x": 1, "y": 6, "label": "U" }, + { "matrix": [1, 7], "x": 1, "y": 7, "label": "I" }, + { "matrix": [1, 8], "x": 1, "y": 8, "label": "O" }, + { "matrix": [1, 9], "x": 1, "y": 9, "label": "P" }, + { "matrix": [1, 10], "x": 1, "y": 10, "label": "[" }, + { "matrix": [1, 11], "x": 1, "y": 11, "label": "]" }, + { "matrix": [2, 0], "x": 2, "y": 0, "label": "A" }, + { "matrix": [2, 1], "x": 2, "y": 1, "label": "S" }, + { "matrix": [2, 2], "x": 2, "y": 2, "label": "D" }, + { "matrix": [2, 3], "x": 2, "y": 3, "label": "F" }, + { "matrix": [2, 4], "x": 2, "y": 4, "label": "G" }, + { "matrix": [2, 5], "x": 2, "y": 5, "label": "H" }, + { "matrix": [2, 6], "x": 2, "y": 6, "label": "J" }, + { "matrix": [2, 7], "x": 2, "y": 7, "label": "K" }, + { "matrix": [2, 8], "x": 2, "y": 8, "label": "L" }, + { "matrix": [2, 9], "x": 2, "y": 9, "label": ";" }, + { "matrix": [2, 10], "x": 2, "y": 10, "label": "'" }, + { "matrix": [2, 11], "x": 2, "y": 11, "label": "\\" }, + { "matrix": [1, 12], "x": 1, "y": 12, "h": 2, "label": "Enter" }, + { "matrix": [3, 0], "x": 3, "y": 0, "label": "Z" }, + { "matrix": [3, 1], "x": 3, "y": 1, "label": "X" }, + { "matrix": [3, 2], "x": 3, "y": 2, "label": "C" }, + { "matrix": [3, 3], "x": 3, "y": 3, "label": "V" }, + { "matrix": [3, 4], "x": 3, "y": 4, "label": "B" }, + { "matrix": [3, 5], "x": 3, "y": 5, "label": "N" }, + { "matrix": [3, 6], "x": 3, "y": 6, "label": "M" }, + { "matrix": [3, 7], "x": 3, "y": 7, "label": "," }, + { "matrix": [3, 8], "x": 3, "y": 8, "label": "." }, + { "matrix": [3, 9], "x": 3, "y": 9, "label": "/" }, + { "matrix": [3, 10], "x": 3, "y": 10, "label": "Up" }, + { "matrix": [3, 11], "x": 3, "y": 11, "w": 2, "label": "ShiftR" }, + { "matrix": [4, 0], "x": 4, "y": 0, "label": "CtrlL" }, + { "matrix": [4, 1], "x": 4, "y": 1, "label": "Fn" }, + { "matrix": [4, 2], "x": 4, "y": 2, "label": "ShiftL" }, + { "matrix": [4, 3], "x": 4, "y": 3, "label": "Alt" }, + { "matrix": [4, 4], "x": 4, "y": 4, "w": 3, "label": "Space" }, + { "matrix": [4, 7], "x": 4, "y": 7, "label": "-" }, + { "matrix": [4, 8], "x": 4, "y": 8, "label": "=" }, + { "matrix": [4, 9], "x": 4, "y": 9, "label": "Left" }, + { "matrix": [4, 10], "x": 4, "y": 10, "label": "Down" }, + { "matrix": [4, 11], "x": 4, "y": 11, "label": "Right" }, + { "matrix": [4, 12], "x": 4, "y": 12, "label": "CtrlR" } + ] + } + } +} + diff --git a/keyboards/mkbd65/keymaps/ansi/README.md b/keyboards/mkbd65/keymaps/ansi/README.md index 96e8f7bb14..f68aaf41fc 100644 --- a/keyboards/mkbd65/keymaps/ansi/README.md +++ b/keyboards/mkbd65/keymaps/ansi/README.md @@ -39,7 +39,7 @@ This is the key matrix (no label means the key from layer 0 will be used): ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ ║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ║ ║ +║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ║ ║ ╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ ║ ║ ║ ║░░░░║ ║ ║ ║ ║ ║ ║ ║ ╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ @@ -49,10 +49,11 @@ This is the key matrix (no label means the key from layer 0 will be used): ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ` ║ Super ║ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ` ║ Super ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ ║ ╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ ║ ║░░░░║ ║ ║ Tab ║ ║ ║Pos1║PgDn║ End║ ║ ╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ ``` + diff --git a/keyboards/mkbd65/keymaps/ansi/keymap.c b/keyboards/mkbd65/keymaps/ansi/keymap.c index fb5f196098..b023feab91 100644 --- a/keyboards/mkbd65/keymaps/ansi/keymap.c +++ b/keyboards/mkbd65/keymaps/ansi/keymap.c @@ -2,6 +2,7 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H +#include "quantum.h" const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ansi( /* Base layer */ diff --git a/keyboards/mkbd65/keymaps/de/README.md b/keyboards/mkbd65/keymaps/de/README.md index f5c29d8e85..c37325f914 100644 --- a/keyboards/mkbd65/keymaps/de/README.md +++ b/keyboards/mkbd65/keymaps/de/README.md @@ -37,7 +37,7 @@ This is the key matrix (no label means the key from layer 0 will be used): ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ -║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ║ ║ | ║ ║ +║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ║ ║ | ║ ║ ╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╬════╣ ║ ║ ║ ║░░░░║ ║ \ ║ ║ ║ ║ ║ ║ ╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ @@ -47,10 +47,11 @@ This is the key matrix (no label means the key from layer 0 will be used): ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣Supr║ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ^ ║ ║ ║ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ^ ║ ║ ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╣ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ ║ ║ ╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╬════╣ ║ ║░░░░║ ║ ║ Tab ║ ║ ║Pos1║PgDn║ End║ ║ ╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ ``` + diff --git a/keyboards/mkbd65/keymaps/en_us_intl/README.md b/keyboards/mkbd65/keymaps/en_us_intl/README.md index 96e8f7bb14..f68aaf41fc 100644 --- a/keyboards/mkbd65/keymaps/en_us_intl/README.md +++ b/keyboards/mkbd65/keymaps/en_us_intl/README.md @@ -39,7 +39,7 @@ This is the key matrix (no label means the key from layer 0 will be used): ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ ║ ║ ß ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ -║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ║ ║ +║ ║ ║ ║ ║ ║ ║ µ ║ ║ ║ ¿ ║ ║ ║ ╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ ║ ║ ║ ║░░░░║ ║ ║ ║ ║ ║ ║ ║ ╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ @@ -49,10 +49,11 @@ This is the key matrix (no label means the key from layer 0 will be used): ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╦════╣ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ F11║ F12║ ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╩════╣ -║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ` ║ Super ║ +║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ` ║ Super ║ ╠════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬════╬═════════╣ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║ ║PgUp║ ║ ╠════╬════╬════╬════╬════╩════╩════╬════╬════╬════╬════╬════╦════╣ ║ ║░░░░║ ║ ║ Tab ║ ║ ║Pos1║PgDn║ End║ ║ ╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ ``` + diff --git a/keyboards/mkbd65/keymaps/iso/README.md b/keyboards/mkbd65/keymaps/iso/README.md index beb5cc2783..9a5f9b176f 100644 --- a/keyboards/mkbd65/keymaps/iso/README.md +++ b/keyboards/mkbd65/keymaps/iso/README.md @@ -52,3 +52,4 @@ It's actually just ANSI but with an upright `Enter` key. ║Ctrl║░░░░║Shft║AltG║ Tab ║ ║ ` ║Pos1║PgDn║ End║Ctrl║ ╚════╩════╩════╩════╩══════════════╩════╩════╩════╩════╩════╩════╝ ``` + diff --git a/keyboards/mkbd65/rev0/mkbd65.c b/keyboards/mkbd65/rev0/mkbd65.c index baca6508d4..2cde260fa0 100644 --- a/keyboards/mkbd65/rev0/mkbd65.c +++ b/keyboards/mkbd65/rev0/mkbd65.c @@ -2,3 +2,5 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "mkbd65.h" +#include "quantum.h" + diff --git a/keyboards/mkbd65/rev0/mkbd65.h b/keyboards/mkbd65/rev0/mkbd65.h index aae0d388fa..798a87ce44 100644 --- a/keyboards/mkbd65/rev0/mkbd65.h +++ b/keyboards/mkbd65/rev0/mkbd65.h @@ -4,8 +4,6 @@ #ifndef MKBD65_H #define MKBD65_H -#include "quantum.h" - /* LAYOUT_ansi * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ * │ │ │ │ │ │ │ │ │ │ │ │ 2.0U │ diff --git a/keyboards/mkbd65/rules.mk b/keyboards/mkbd65/rules.mk index cc4a04ee68..da0535c8f2 100644 --- a/keyboards/mkbd65/rules.mk +++ b/keyboards/mkbd65/rules.mk @@ -1,6 +1,35 @@ +# build options +#LAYOUTS = [] + +# AVR MCU Options +MCU = atmega32u4 +F_CPU = 16000000 +ARCH = AVR8 +F_USB = $(F_CPU) +OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT +BOOTLOADER = atmel-dfu + +# Feature Options +MAGIC_ENABLE = no +COMBO_ENABLE = no +AUDIO_ENABLE = no +KEY_OVERRIDE_ENABLE = no +LEADER_ENABLE = no +MIDI_ENABLE = no +UNICODE_ENABLE = no +BLUETOOTH_ENABLE = no +SPLIT_KEYBOARD = no +MUSIC_ENABLE = no +SPACE_CADET_ENABLE = no +GRAVE_ESC_ENABLE = yes +AVR_USE_MINIMAL_PRINTF = yes +ENCODER_ENABLE = no + DEFAULT_FOLDER = rev1 # Enables Link Time Optimization (LTO) when compiling the keyboard. This makes the process take longer, but it can # significantly reduce the compiled size (and since the firmware is small, the added time is not noticeable). LTO_ENABLE = yes -EXTRAKEY_ENABLE = yes # Audio control and System control +# Audio control and System control +EXTRAKEY_ENABLE = yes + From f91cd00de8ff373d616bcbc7e5935a3cc66333ad Mon Sep 17 00:00:00 2001 From: "Ricardo (XenGi) Band" Date: Sat, 15 Nov 2025 21:21:55 +0100 Subject: [PATCH 099/255] fix rev0 --- keyboards/mkbd65/rev0/info.json | 149 ------------------ keyboards/mkbd65/rev0/keyboard.json | 174 ++++++++++++++++++++++ keyboards/mkbd65/rev0/rules.mk | 2 - keyboards/mkbd65/rev1/info.json | 159 -------------------- keyboards/mkbd65/{ => rev1}/keyboard.json | 64 +++++--- keyboards/mkbd65/rules.mk | 16 -- 6 files changed, 216 insertions(+), 348 deletions(-) delete mode 100644 keyboards/mkbd65/rev0/info.json create mode 100644 keyboards/mkbd65/rev0/keyboard.json delete mode 100644 keyboards/mkbd65/rev1/info.json rename keyboards/mkbd65/{ => rev1}/keyboard.json (79%) diff --git a/keyboards/mkbd65/rev0/info.json b/keyboards/mkbd65/rev0/info.json deleted file mode 100644 index 5d2c940129..0000000000 --- a/keyboards/mkbd65/rev0/info.json +++ /dev/null @@ -1,149 +0,0 @@ -{ - "usb": { - "vid": "0x1209", - "pid": "0x4803", - "device_version": "0.0.0" - }, - "layouts": { - "LAYOUT_ansi": { - "layout": [ - {"x": 0, "y": 0, "label": "Esc", "matrix": [0, 0]}, - {"x": 1, "y": 0, "label": "1", "matrix": [0, 1]}, - {"x": 2, "y": 0, "label": "2", "matrix": [0, 2]}, - {"x": 3, "y": 0, "label": "3", "matrix": [0, 3]}, - {"x": 4, "y": 0, "label": "4", "matrix": [0, 4]}, - {"x": 5, "y": 0, "label": "5", "matrix": [0, 5]}, - {"x": 6, "y": 0, "label": "6", "matrix": [0, 6]}, - {"x": 7, "y": 0, "label": "7", "matrix": [0, 7]}, - {"x": 8, "y": 0, "label": "8", "matrix": [0, 8]}, - {"x": 9, "y": 0, "label": "9", "matrix": [0, 9]}, - {"x": 10, "y": 0, "label": "0", "matrix": [0, 10]}, - {"x": 11, "y": 0, "w": 2, "label": "Backspace", "matrix": [0, 11]}, - - {"x": 0, "y": 1, "label": "Q", "matrix": [1, 0]}, - {"x": 1, "y": 1, "label": "W", "matrix": [1, 1]}, - {"x": 2, "y": 1, "label": "E", "matrix": [1, 2]}, - {"x": 3, "y": 1, "label": "R", "matrix": [1, 3]}, - {"x": 4, "y": 1, "label": "T", "matrix": [1, 4]}, - {"x": 5, "y": 1, "label": "Y", "matrix": [1, 5]}, - {"x": 6, "y": 1, "label": "U", "matrix": [1, 6]}, - {"x": 7, "y": 1, "label": "I", "matrix": [1, 7]}, - {"x": 8, "y": 1, "label": "O", "matrix": [1, 8]}, - {"x": 9, "y": 1, "label": "P", "matrix": [1, 9]}, - {"x": 10, "y": 1, "label": "[", "matrix": [1, 10]}, - {"x": 11, "y": 1, "label": "]", "matrix": [1, 11]}, - {"x": 12, "y": 1, "label": "\\", "matrix": [1, 12]}, - - {"x": 0, "y": 2, "label": "A", "matrix": [2, 0]}, - {"x": 1, "y": 2, "label": "S", "matrix": [2, 1]}, - {"x": 2, "y": 2, "label": "D", "matrix": [2, 2]}, - {"x": 3, "y": 2, "label": "F", "matrix": [2, 3]}, - {"x": 4, "y": 2, "label": "G", "matrix": [2, 4]}, - {"x": 5, "y": 2, "label": "H", "matrix": [2, 5]}, - {"x": 6, "y": 2, "label": "J", "matrix": [2, 6]}, - {"x": 7, "y": 2, "label": "K", "matrix": [2, 7]}, - {"x": 8, "y": 2, "label": "L", "matrix": [2, 8]}, - {"x": 9, "y": 2, "label": ";", "matrix": [2, 9]}, - {"x": 10, "y": 2, "label": "'", "matrix": [2, 10]}, - {"x": 11, "y": 2, "w": 2, "label": "Enter", "matrix": [2, 11]}, - - {"x": 0, "y": 3, "label": "Z", "matrix": [3, 0]}, - {"x": 1, "y": 3, "label": "X", "matrix": [3, 1]}, - {"x": 2, "y": 3, "label": "C", "matrix": [3, 2]}, - {"x": 3, "y": 3, "label": "V", "matrix": [3, 3]}, - {"x": 4, "y": 3, "label": "B", "matrix": [3, 4]}, - {"x": 5, "y": 3, "label": "N", "matrix": [3, 5]}, - {"x": 6, "y": 3, "label": "M", "matrix": [3, 6]}, - {"x": 7, "y": 3, "label": ",", "matrix": [3, 7]}, - {"x": 8, "y": 3, "label": ".", "matrix": [3, 8]}, - {"x": 9, "y": 3, "label": "/", "matrix": [3, 9]}, - {"x": 10, "y": 3, "label": "Up", "matrix": [3, 10]}, - {"x": 11, "y": 3, "w": 2, "label": "RShift", "matrix": [3, 11]}, - - {"x": 0, "y": 4, "label": "LCtrl", "matrix": [4, 0]}, - {"x": 1, "y": 4, "label": "LShift", "matrix": [4, 1]}, - {"x": 2, "y": 4, "label": "Fn", "matrix": [4, 2]}, - {"x": 3, "y": 4, "label": "AltGr", "matrix": [4, 3]}, - {"x": 4, "y": 4, "w": 3, "label": "Space", "matrix": [4, 4]}, - {"x": 7, "y": 4, "label": "-", "matrix": [4, 7]}, - {"x": 8, "y": 4, "label": "=", "matrix": [4, 8]}, - {"x": 9, "y": 4, "label": "Left", "matrix": [4, 9]}, - {"x": 10, "y": 4, "label": "Down", "matrix": [4, 10]}, - {"x": 11, "y": 4, "label": "Right", "matrix": [4, 11]}, - {"x": 12, "y": 4, "label": "RCtrl", "matrix": [4, 12]} - ] - }, - "LAYOUT_iso": { - "layout": [ - {"x": 0, "y": 0, "label": "Esc", "matrix": [0, 0]}, - {"x": 1, "y": 0, "label": "1", "matrix": [0, 1]}, - {"x": 2, "y": 0, "label": "2", "matrix": [0, 2]}, - {"x": 3, "y": 0, "label": "3", "matrix": [0, 3]}, - {"x": 4, "y": 0, "label": "4", "matrix": [0, 4]}, - {"x": 5, "y": 0, "label": "5", "matrix": [0, 5]}, - {"x": 6, "y": 0, "label": "6", "matrix": [0, 6]}, - {"x": 7, "y": 0, "label": "7", "matrix": [0, 7]}, - {"x": 8, "y": 0, "label": "8", "matrix": [0, 8]}, - {"x": 9, "y": 0, "label": "9", "matrix": [0, 9]}, - {"x": 10, "y": 0, "label": "0", "matrix": [0, 10]}, - {"x": 11, "y": 0, "w": 2, "label": "Backspace", "matrix": [0, 11]}, - - {"x": 0, "y": 1, "label": "Q", "matrix": [1, 0]}, - {"x": 1, "y": 1, "label": "W", "matrix": [1, 1]}, - {"x": 2, "y": 1, "label": "E", "matrix": [1, 2]}, - {"x": 3, "y": 1, "label": "R", "matrix": [1, 3]}, - {"x": 4, "y": 1, "label": "T", "matrix": [1, 4]}, - {"x": 5, "y": 1, "label": "Y", "matrix": [1, 5]}, - {"x": 6, "y": 1, "label": "U", "matrix": [1, 6]}, - {"x": 7, "y": 1, "label": "I", "matrix": [1, 7]}, - {"x": 8, "y": 1, "label": "O", "matrix": [1, 8]}, - {"x": 9, "y": 1, "label": "P", "matrix": [1, 9]}, - {"x": 10, "y": 1, "label": "[", "matrix": [1, 10]}, - {"x": 11, "y": 1, "label": "]", "matrix": [1, 11]}, - - {"x": 0, "y": 2, "label": "A", "matrix": [2, 0]}, - {"x": 1, "y": 2, "label": "S", "matrix": [2, 1]}, - {"x": 2, "y": 2, "label": "D", "matrix": [2, 2]}, - {"x": 3, "y": 2, "label": "F", "matrix": [2, 3]}, - {"x": 4, "y": 2, "label": "G", "matrix": [2, 4]}, - {"x": 5, "y": 2, "label": "H", "matrix": [2, 5]}, - {"x": 6, "y": 2, "label": "J", "matrix": [2, 6]}, - {"x": 7, "y": 2, "label": "K", "matrix": [2, 7]}, - {"x": 8, "y": 2, "label": "L", "matrix": [2, 8]}, - {"x": 9, "y": 2, "label": ";", "matrix": [2, 9]}, - {"x": 10, "y": 2, "label": "'", "matrix": [2, 10]}, - {"x": 11, "y": 2, "label": "\\", "matrix": [2, 11]}, - {"x": 12, "y": 2, "h": 2, "label": "Enter", "matrix": [2, 12]}, - - {"x": 0, "y": 3, "label": "Z", "matrix": [3, 0]}, - {"x": 1, "y": 3, "label": "X", "matrix": [3, 1]}, - {"x": 2, "y": 3, "label": "C", "matrix": [3, 2]}, - {"x": 3, "y": 3, "label": "V", "matrix": [3, 3]}, - {"x": 4, "y": 3, "label": "B", "matrix": [3, 4]}, - {"x": 5, "y": 3, "label": "N", "matrix": [3, 5]}, - {"x": 6, "y": 3, "label": "M", "matrix": [3, 6]}, - {"x": 7, "y": 3, "label": ",", "matrix": [3, 7]}, - {"x": 8, "y": 3, "label": ".", "matrix": [3, 8]}, - {"x": 9, "y": 3, "label": "/", "matrix": [3, 9]}, - {"x": 10, "y": 3, "label": "Up", "matrix": [3, 10]}, - {"x": 11, "y": 3, "w": 2, "label": "RShift", "matrix": [3, 11]}, - - {"x": 0, "y": 4, "label": "LCtrl", "matrix": [4, 0]}, - {"x": 1, "y": 4, "label": "LShift", "matrix": [4, 1]}, - {"x": 2, "y": 4, "label": "Fn", "matrix": [4, 2]}, - {"x": 3, "y": 4, "label": "AltGr", "matrix": [4, 3]}, - {"x": 4, "y": 4, "w": 3, "label": "Space", "matrix": [4, 4]}, - {"x": 7, "y": 4, "label": "-", "matrix": [4, 7]}, - {"x": 8, "y": 4, "label": "=", "matrix": [4, 8]}, - {"x": 9, "y": 4, "label": "Left", "matrix": [4, 9]}, - {"x": 10, "y": 4, "label": "Down", "matrix": [4, 10]}, - {"x": 11, "y": 4, "label": "Right", "matrix": [4, 11]}, - {"x": 12, "y": 4, "label": "RCtrl", "matrix": [4, 12]} - ] - } - }, - "matrix_pins": { - "cols": ["D4", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"], - "rows": ["D5", "D3", "D2", "D1", "D0"] - } -} diff --git a/keyboards/mkbd65/rev0/keyboard.json b/keyboards/mkbd65/rev0/keyboard.json new file mode 100644 index 0000000000..35269aaa5c --- /dev/null +++ b/keyboards/mkbd65/rev0/keyboard.json @@ -0,0 +1,174 @@ +{ + "manufacturer": "XenGi", + "keyboard_name": "mkbd65", + "maintainer": "XenGi", + "bootloader": "atmel-dfu", + "bootloader_instructions": "Press the button marked RESET on the back of the PCB", + "bootmagic": { + "enabled": true, + "matrix": [0, 0] + }, + "build": { + "lto": true + }, + "debounce": 5, + "diode_direction": "ROW2COL", + "encoder": { + "enabled": false + }, + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": false, + "rgblight": false + }, + "matrix_pins": { + "cols": ["D4", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"], + "rows": ["D5", "D3", "D2", "D1", "D0"] + }, + "processor": "atmega32u4", + "split": { + "enabled": false + }, + "tags": ["mobile", "65%"], + "url": "https://mkbd65.xengi.de", + "usb": { + "device_version": "0.0.1", + "pid": "0x4803", + "vid": "0x1209" + }, + "layouts": { + "LAYOUT_ansi": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "Backspace", "matrix": [0, 11], "x": 11, "y": 0, "w": 2}, + {"label": "Q", "matrix": [1, 0], "x": 1, "y": 0}, + {"label": "W", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "E", "matrix": [1, 2], "x": 1, "y": 2}, + {"label": "R", "matrix": [1, 3], "x": 1, "y": 3}, + {"label": "T", "matrix": [1, 4], "x": 1, "y": 4}, + {"label": "Y", "matrix": [1, 5], "x": 1, "y": 5}, + {"label": "U", "matrix": [1, 6], "x": 1, "y": 6}, + {"label": "I", "matrix": [1, 7], "x": 1, "y": 7}, + {"label": "O", "matrix": [1, 8], "x": 1, "y": 8}, + {"label": "P", "matrix": [1, 9], "x": 1, "y": 9}, + {"label": "[", "matrix": [1, 10], "x": 1, "y": 10}, + {"label": "]", "matrix": [1, 11], "x": 1, "y": 11}, + {"label": "\\", "matrix": [1, 12], "x": 1, "y": 12}, + {"label": "A", "matrix": [2, 0], "x": 2, "y": 0}, + {"label": "S", "matrix": [2, 1], "x": 2, "y": 1}, + {"label": "D", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "F", "matrix": [2, 3], "x": 2, "y": 3}, + {"label": "G", "matrix": [2, 4], "x": 2, "y": 4}, + {"label": "H", "matrix": [2, 5], "x": 2, "y": 5}, + {"label": "J", "matrix": [2, 6], "x": 2, "y": 6}, + {"label": "K", "matrix": [2, 7], "x": 2, "y": 7}, + {"label": "L", "matrix": [2, 8], "x": 2, "y": 8}, + {"label": ";", "matrix": [2, 9], "x": 2, "y": 9}, + {"label": "'", "matrix": [2, 10], "x": 2, "y": 10}, + {"label": "Enter", "matrix": [2, 11], "x": 2, "y": 11, "w": 2}, + {"label": "Z", "matrix": [3, 0], "x": 3, "y": 0}, + {"label": "X", "matrix": [3, 1], "x": 3, "y": 1}, + {"label": "C", "matrix": [3, 2], "x": 3, "y": 2}, + {"label": "V", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "B", "matrix": [3, 4], "x": 3, "y": 4}, + {"label": "N", "matrix": [3, 5], "x": 3, "y": 5}, + {"label": "M", "matrix": [3, 6], "x": 3, "y": 6}, + {"label": ",", "matrix": [3, 7], "x": 3, "y": 7}, + {"label": ".", "matrix": [3, 8], "x": 3, "y": 8}, + {"label": "/", "matrix": [3, 9], "x": 3, "y": 9}, + {"label": "Up", "matrix": [3, 10], "x": 3, "y": 10}, + {"label": "ShiftR", "matrix": [3, 11], "x": 3, "y": 11, "w": 2}, + {"label": "CtrlL", "matrix": [4, 0], "x": 4, "y": 0}, + {"label": "Fn", "matrix": [4, 1], "x": 4, "y": 1}, + {"label": "ShiftL", "matrix": [4, 2], "x": 4, "y": 2}, + {"label": "Alt", "matrix": [4, 3], "x": 4, "y": 3}, + {"label": "Space", "matrix": [4, 4], "x": 4, "y": 4, "w": 3}, + {"label": "-", "matrix": [4, 7], "x": 4, "y": 7}, + {"label": "=", "matrix": [4, 8], "x": 4, "y": 8}, + {"label": "Left", "matrix": [4, 9], "x": 4, "y": 9}, + {"label": "Down", "matrix": [4, 10], "x": 4, "y": 10}, + {"label": "Right", "matrix": [4, 11], "x": 4, "y": 11}, + {"label": "CtrlR", "matrix": [4, 12], "x": 4, "y": 12} + ] + }, + "LAYOUT_iso": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "1", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "2", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "3", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "4", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "5", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "6", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "7", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "8", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "9", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "0", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "Backspace", "matrix": [0, 11], "x": 11, "y": 0, "w": 2}, + {"label": "Q", "matrix": [1, 0], "x": 1, "y": 0}, + {"label": "W", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "E", "matrix": [1, 2], "x": 1, "y": 2}, + {"label": "R", "matrix": [1, 3], "x": 1, "y": 3}, + {"label": "T", "matrix": [1, 4], "x": 1, "y": 4}, + {"label": "Y", "matrix": [1, 5], "x": 1, "y": 5}, + {"label": "U", "matrix": [1, 6], "x": 1, "y": 6}, + {"label": "I", "matrix": [1, 7], "x": 1, "y": 7}, + {"label": "O", "matrix": [1, 8], "x": 1, "y": 8}, + {"label": "P", "matrix": [1, 9], "x": 1, "y": 9}, + {"label": "[", "matrix": [1, 10], "x": 1, "y": 10}, + {"label": "]", "matrix": [1, 11], "x": 1, "y": 11}, + {"label": "A", "matrix": [2, 0], "x": 2, "y": 0}, + {"label": "S", "matrix": [2, 1], "x": 2, "y": 1}, + {"label": "D", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "F", "matrix": [2, 3], "x": 2, "y": 3}, + {"label": "G", "matrix": [2, 4], "x": 2, "y": 4}, + {"label": "H", "matrix": [2, 5], "x": 2, "y": 5}, + {"label": "J", "matrix": [2, 6], "x": 2, "y": 6}, + {"label": "K", "matrix": [2, 7], "x": 2, "y": 7}, + {"label": "L", "matrix": [2, 8], "x": 2, "y": 8}, + {"label": ";", "matrix": [2, 9], "x": 2, "y": 9}, + {"label": "'", "matrix": [2, 10], "x": 2, "y": 10}, + {"label": "\\", "matrix": [2, 11], "x": 2, "y": 11}, + {"label": "Enter", "matrix": [1, 12], "x": 1, "y": 12, "h": 2}, + {"label": "Z", "matrix": [3, 0], "x": 3, "y": 0}, + {"label": "X", "matrix": [3, 1], "x": 3, "y": 1}, + {"label": "C", "matrix": [3, 2], "x": 3, "y": 2}, + {"label": "V", "matrix": [3, 3], "x": 3, "y": 3}, + {"label": "B", "matrix": [3, 4], "x": 3, "y": 4}, + {"label": "N", "matrix": [3, 5], "x": 3, "y": 5}, + {"label": "M", "matrix": [3, 6], "x": 3, "y": 6}, + {"label": ",", "matrix": [3, 7], "x": 3, "y": 7}, + {"label": ".", "matrix": [3, 8], "x": 3, "y": 8}, + {"label": "/", "matrix": [3, 9], "x": 3, "y": 9}, + {"label": "Up", "matrix": [3, 10], "x": 3, "y": 10}, + {"label": "ShiftR", "matrix": [3, 11], "x": 3, "y": 11, "w": 2}, + {"label": "CtrlL", "matrix": [4, 0], "x": 4, "y": 0}, + {"label": "Fn", "matrix": [4, 1], "x": 4, "y": 1}, + {"label": "ShiftL", "matrix": [4, 2], "x": 4, "y": 2}, + {"label": "Alt", "matrix": [4, 3], "x": 4, "y": 3}, + {"label": "Space", "matrix": [4, 4], "x": 4, "y": 4, "w": 3}, + {"label": "-", "matrix": [4, 7], "x": 4, "y": 7}, + {"label": "=", "matrix": [4, 8], "x": 4, "y": 8}, + {"label": "Left", "matrix": [4, 9], "x": 4, "y": 9}, + {"label": "Down", "matrix": [4, 10], "x": 4, "y": 10}, + {"label": "Right", "matrix": [4, 11], "x": 4, "y": 11}, + {"label": "CtrlR", "matrix": [4, 12], "x": 4, "y": 12} + ] + } + } +} \ No newline at end of file diff --git a/keyboards/mkbd65/rev0/rules.mk b/keyboards/mkbd65/rev0/rules.mk index 2d23977af0..de2da8afe1 100644 --- a/keyboards/mkbd65/rev0/rules.mk +++ b/keyboards/mkbd65/rev0/rules.mk @@ -1,6 +1,4 @@ -MCU = atmega32u4 F_CPU = 16000000 ARCH = AVR8 F_USB = $(F_CPU) OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT -BOOTLOADER = atmel-dfu diff --git a/keyboards/mkbd65/rev1/info.json b/keyboards/mkbd65/rev1/info.json deleted file mode 100644 index 42ed48f137..0000000000 --- a/keyboards/mkbd65/rev1/info.json +++ /dev/null @@ -1,159 +0,0 @@ -{ - "usb": { - "vid": "0x1209", - "pid": "0x4803", - "device_version": "1.0.0" - }, - "layouts": { - "LAYOUT_en_us_intl": { - "layout": [ - {"x": 0, "y": 0, "label": "Esc", "matrix": [0, 0]}, - {"x": 1, "y": 0, "label": "1", "matrix": [0, 1]}, - {"x": 2, "y": 0, "label": "2", "matrix": [0, 2]}, - {"x": 3, "y": 0, "label": "3", "matrix": [0, 3]}, - {"x": 4, "y": 0, "label": "4", "matrix": [0, 4]}, - {"x": 5, "y": 0, "label": "5", "matrix": [0, 5]}, - {"x": 6, "y": 0, "label": "6", "matrix": [0, 6]}, - {"x": 7, "y": 0, "label": "7", "matrix": [0, 7]}, - {"x": 8, "y": 0, "label": "8", "matrix": [0, 8]}, - {"x": 9, "y": 0, "label": "9", "matrix": [0, 9]}, - {"x": 10, "y": 0, "label": "0", "matrix": [0, 10]}, - {"x": 11, "y": 0, "label": "Backspace", "matrix": [0, 11]}, - {"x": 12, "y": 0, "label": "Backspace", "matrix": [0, 12]}, - - {"x": 0, "y": 1, "label": "Q", "matrix": [1, 0]}, - {"x": 1, "y": 1, "label": "W", "matrix": [1, 1]}, - {"x": 2, "y": 1, "label": "E", "matrix": [1, 2]}, - {"x": 3, "y": 1, "label": "R", "matrix": [1, 3]}, - {"x": 4, "y": 1, "label": "T", "matrix": [1, 4]}, - {"x": 5, "y": 1, "label": "Y", "matrix": [1, 5]}, - {"x": 6, "y": 1, "label": "U", "matrix": [1, 6]}, - {"x": 7, "y": 1, "label": "I", "matrix": [1, 7]}, - {"x": 8, "y": 1, "label": "O", "matrix": [1, 8]}, - {"x": 9, "y": 1, "label": "P", "matrix": [1, 9]}, - {"x": 10, "y": 1, "label": "[", "matrix": [1, 10]}, - {"x": 11, "y": 1, "label": "]", "matrix": [1, 11]}, - {"x": 12, "y": 1, "label": "\\", "matrix": [1, 12]}, - - {"x": 0, "y": 2, "label": "A", "matrix": [2, 0]}, - {"x": 1, "y": 2, "label": "S", "matrix": [2, 1]}, - {"x": 2, "y": 2, "label": "D", "matrix": [2, 2]}, - {"x": 3, "y": 2, "label": "F", "matrix": [2, 3]}, - {"x": 4, "y": 2, "label": "G", "matrix": [2, 4]}, - {"x": 5, "y": 2, "label": "H", "matrix": [2, 5]}, - {"x": 6, "y": 2, "label": "J", "matrix": [2, 6]}, - {"x": 7, "y": 2, "label": "K", "matrix": [2, 7]}, - {"x": 8, "y": 2, "label": "L", "matrix": [2, 8]}, - {"x": 9, "y": 2, "label": ";", "matrix": [2, 9]}, - {"x": 10, "y": 2, "label": "'", "matrix": [2, 10]}, - {"x": 11, "y": 2, "label": "Enter", "matrix": [2, 11]}, - {"x": 12, "y": 2, "label": "Enter", "matrix": [2, 12]}, - - {"x": 0, "y": 3, "label": "Z", "matrix": [3, 0]}, - {"x": 1, "y": 3, "label": "X", "matrix": [3, 1]}, - {"x": 2, "y": 3, "label": "C", "matrix": [3, 2]}, - {"x": 3, "y": 3, "label": "V", "matrix": [3, 3]}, - {"x": 4, "y": 3, "label": "B", "matrix": [3, 4]}, - {"x": 5, "y": 3, "label": "N", "matrix": [3, 5]}, - {"x": 6, "y": 3, "label": "M", "matrix": [3, 6]}, - {"x": 7, "y": 3, "label": ",", "matrix": [3, 7]}, - {"x": 8, "y": 3, "label": ".", "matrix": [3, 8]}, - {"x": 9, "y": 3, "label": "/", "matrix": [3, 9]}, - {"x": 10, "y": 3, "label": "Up", "matrix": [3, 10]}, - {"x": 11, "y": 3, "label": "RShift", "matrix": [3, 11]}, - {"x": 12, "y": 3, "label": "RShift", "matrix": [3, 12]}, - - {"x": 0, "y": 4, "label": "LCtrl", "matrix": [4, 0]}, - {"x": 1, "y": 4, "label": "LShift", "matrix": [4, 1]}, - {"x": 2, "y": 4, "label": "Fn", "matrix": [4, 2]}, - {"x": 3, "y": 4, "label": "AltGr", "matrix": [4, 3]}, - {"x": 4, "y": 4, "label": "Space", "matrix": [4, 4]}, - {"x": 5, "y": 4, "label": "Space", "matrix": [4, 5]}, - {"x": 6, "y": 4, "label": "Space", "matrix": [4, 6]}, - {"x": 7, "y": 4, "label": "-", "matrix": [4, 7]}, - {"x": 8, "y": 4, "label": "=", "matrix": [4, 8]}, - {"x": 9, "y": 4, "label": "Left", "matrix": [4, 9]}, - {"x": 10, "y": 4, "label": "Down", "matrix": [4, 10]}, - {"x": 11, "y": 4, "label": "Right", "matrix": [4, 11]}, - {"x": 12, "y": 4, "label": "RCtrl", "matrix": [4, 12]} - ] - }, - "LAYOUT_de": { - "layout": [ - {"x": 0, "y": 0, "label": "Esc", "matrix": [0, 0]}, - {"x": 1, "y": 0, "label": "1", "matrix": [0, 1]}, - {"x": 2, "y": 0, "label": "2", "matrix": [0, 2]}, - {"x": 3, "y": 0, "label": "3", "matrix": [0, 3]}, - {"x": 4, "y": 0, "label": "4", "matrix": [0, 4]}, - {"x": 5, "y": 0, "label": "5", "matrix": [0, 5]}, - {"x": 6, "y": 0, "label": "6", "matrix": [0, 6]}, - {"x": 7, "y": 0, "label": "7", "matrix": [0, 7]}, - {"x": 8, "y": 0, "label": "8", "matrix": [0, 8]}, - {"x": 9, "y": 0, "label": "9", "matrix": [0, 9]}, - {"x": 10, "y": 0, "label": "0", "matrix": [0, 10]}, - {"x": 11, "y": 0, "label": "Backspace", "matrix": [0, 11]}, - {"x": 12, "y": 0, "label": "Backspace", "matrix": [0, 12]}, - - {"x": 0, "y": 1, "label": "Q", "matrix": [1, 0]}, - {"x": 1, "y": 1, "label": "W", "matrix": [1, 1]}, - {"x": 2, "y": 1, "label": "E", "matrix": [1, 2]}, - {"x": 3, "y": 1, "label": "R", "matrix": [1, 3]}, - {"x": 4, "y": 1, "label": "T", "matrix": [1, 4]}, - {"x": 5, "y": 1, "label": "Z", "matrix": [1, 5]}, - {"x": 6, "y": 1, "label": "U", "matrix": [1, 6]}, - {"x": 7, "y": 1, "label": "I", "matrix": [1, 7]}, - {"x": 8, "y": 1, "label": "O", "matrix": [1, 8]}, - {"x": 9, "y": 1, "label": "P", "matrix": [1, 9]}, - {"x": 10, "y": 1, "label": "Ü", "matrix": [1, 10]}, - {"x": 11, "y": 1, "label": "+", "matrix": [1, 11]}, - {"x": 12, "y": 1, "label": "Enter", "matrix": [1, 12]}, - - {"x": 0, "y": 2, "label": "A", "matrix": [2, 0]}, - {"x": 1, "y": 2, "label": "S", "matrix": [2, 1]}, - {"x": 2, "y": 2, "label": "D", "matrix": [2, 2]}, - {"x": 3, "y": 2, "label": "F", "matrix": [2, 3]}, - {"x": 4, "y": 2, "label": "G", "matrix": [2, 4]}, - {"x": 5, "y": 2, "label": "H", "matrix": [2, 5]}, - {"x": 6, "y": 2, "label": "J", "matrix": [2, 6]}, - {"x": 7, "y": 2, "label": "K", "matrix": [2, 7]}, - {"x": 8, "y": 2, "label": "L", "matrix": [2, 8]}, - {"x": 9, "y": 2, "label": "Ö", "matrix": [2, 9]}, - {"x": 10, "y": 2, "label": "Ä", "matrix": [2, 10]}, - {"x": 11, "y": 2, "label": "#", "matrix": [2, 11]}, - {"x": 12, "y": 2, "label": "Enter", "matrix": [2, 12]}, - - {"x": 0, "y": 3, "label": "Y", "matrix": [3, 0]}, - {"x": 1, "y": 3, "label": "X", "matrix": [3, 1]}, - {"x": 2, "y": 3, "label": "C", "matrix": [3, 2]}, - {"x": 3, "y": 3, "label": "V", "matrix": [3, 3]}, - {"x": 4, "y": 3, "label": "B", "matrix": [3, 4]}, - {"x": 5, "y": 3, "label": "N", "matrix": [3, 5]}, - {"x": 6, "y": 3, "label": "M", "matrix": [3, 6]}, - {"x": 7, "y": 3, "label": ",", "matrix": [3, 7]}, - {"x": 8, "y": 3, "label": ".", "matrix": [3, 8]}, - {"x": 9, "y": 3, "label": "-", "matrix": [3, 9]}, - {"x": 10, "y": 3, "label": "Up", "matrix": [3, 10]}, - {"x": 11, "y": 3, "label": "<", "matrix": [3, 11]}, - {"x": 12, "y": 3, "label": "RShift", "matrix": [3, 12]}, - - {"x": 0, "y": 4, "label": "LCtrl", "matrix": [4, 0]}, - {"x": 1, "y": 4, "label": "LShift", "matrix": [4, 1]}, - {"x": 2, "y": 4, "label": "Fn", "matrix": [4, 2]}, - {"x": 3, "y": 4, "label": "AltGr", "matrix": [4, 3]}, - {"x": 4, "y": 4, "label": "Space", "matrix": [4, 4]}, - {"x": 5, "y": 4, "label": "Space", "matrix": [4, 5]}, - {"x": 6, "y": 4, "label": "Space", "matrix": [4, 6]}, - {"x": 7, "y": 4, "label": "ß", "matrix": [4, 7]}, - {"x": 8, "y": 4, "label": "´", "matrix": [4, 8]}, - {"x": 9, "y": 4, "label": "Left", "matrix": [4, 9]}, - {"x": 10, "y": 4, "label": "Down", "matrix": [4, 10]}, - {"x": 11, "y": 4, "label": "Right", "matrix": [4, 11]}, - {"x": 12, "y": 4, "label": "RCtrl", "matrix": [4, 12]} - ] - } - }, - "matrix_pins": { - "cols": ["A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "B2", "B10", "B11"], - "rows": ["B12", "B13", "B14", "B15", "A8"] - } -} diff --git a/keyboards/mkbd65/keyboard.json b/keyboards/mkbd65/rev1/keyboard.json similarity index 79% rename from keyboards/mkbd65/keyboard.json rename to keyboards/mkbd65/rev1/keyboard.json index 3d1fe2ec2a..2329e8bc52 100644 --- a/keyboards/mkbd65/keyboard.json +++ b/keyboards/mkbd65/rev1/keyboard.json @@ -20,15 +20,15 @@ "matrix": [0, 0] }, "matrix_pins": { - "cols": ["D4", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0"], - "rows": ["D5", "D3", "D2", "D1", "D0"] + "cols": ["A0", "A1", "A2", "A3", "A4", "A5", "A6", "A7", "B0", "B1", "B2", "B10", "B11"], + "rows": ["B12", "B13", "B14", "B15", "A8"] }, "processor": "atmega32u4", "url": "https://mkbd65.xengi.de", "bootloader_instructions": "Press the button marked RESET on the back of the PCB", "tags": ["mobile", "65%"], "usb": { - "device_version": "0.0.1", + "device_version": "1.0.0", "pid": "0x4803", "vid": "0x1209" }, @@ -36,8 +36,8 @@ "lto": true }, "layouts": { - "LAYOUT": { - "layout_ansi": [ + "LAYOUT_ansi": { + "layout": [ { "matrix": [0, 0], "x": 0, "y": 0, "label": "Esc" }, { "matrix": [0, 1], "x": 1, "y": 0, "label": "1" }, { "matrix": [0, 2], "x": 2, "y": 0, "label": "2" }, @@ -49,7 +49,9 @@ { "matrix": [0, 8], "x": 8, "y": 0, "label": "8" }, { "matrix": [0, 9], "x": 9, "y": 0, "label": "9" }, { "matrix": [0, 10], "x": 10, "y": 0, "label": "0" }, - { "matrix": [0, 11], "x": 11, "y": 0, "w": 2, "label": "Backspace" }, + { "matrix": [0, 11], "x": 11, "y": 0, "label": "Backspace" }, + { "matrix": [0, 12], "x": 12, "y": 0, "label": "Backspace" }, + { "matrix": [1, 0], "x": 1, "y": 0, "label": "Q" }, { "matrix": [1, 1], "x": 1, "y": 1, "label": "W" }, { "matrix": [1, 2], "x": 1, "y": 2, "label": "E" }, @@ -62,7 +64,8 @@ { "matrix": [1, 9], "x": 1, "y": 9, "label": "P" }, { "matrix": [1, 10], "x": 1, "y": 10, "label": "[" }, { "matrix": [1, 11], "x": 1, "y": 11, "label": "]" }, - { "matrix": [1, 11], "x": 1, "y": 12, "label": "\\" }, + { "matrix": [1, 12], "x": 1, "y": 12, "label": "\\" }, + { "matrix": [2, 0], "x": 2, "y": 0, "label": "A" }, { "matrix": [2, 1], "x": 2, "y": 1, "label": "S" }, { "matrix": [2, 2], "x": 2, "y": 2, "label": "D" }, @@ -74,7 +77,9 @@ { "matrix": [2, 8], "x": 2, "y": 8, "label": "L" }, { "matrix": [2, 9], "x": 2, "y": 9, "label": ";" }, { "matrix": [2, 10], "x": 2, "y": 10, "label": "'" }, - { "matrix": [2, 11], "x": 2, "y": 11, "w": 2, "label": "Enter" }, + { "matrix": [2, 11], "x": 2, "y": 11, "label": "Enter" }, + { "matrix": [2, 12], "x": 2, "y": 12, "label": "Enter" }, + { "matrix": [3, 0], "x": 3, "y": 0, "label": "Z" }, { "matrix": [3, 1], "x": 3, "y": 1, "label": "X" }, { "matrix": [3, 2], "x": 3, "y": 2, "label": "C" }, @@ -86,20 +91,26 @@ { "matrix": [3, 8], "x": 3, "y": 8, "label": "." }, { "matrix": [3, 9], "x": 3, "y": 9, "label": "/" }, { "matrix": [3, 10], "x": 3, "y": 10, "label": "Up" }, - { "matrix": [3, 11], "x": 3, "y": 11, "w": 2, "label": "ShiftR" }, - { "matrix": [4, 0], "x": 4, "y": 0, "label": "CtrlL" }, + { "matrix": [3, 11], "x": 3, "y": 11, "w": 2, "label": "RShift" }, + { "matrix": [3, 12], "x": 3, "y": 11, "w": 2, "label": "RShift" }, + + { "matrix": [4, 0], "x": 4, "y": 0, "label": "LCtrl" }, { "matrix": [4, 1], "x": 4, "y": 1, "label": "Fn" }, - { "matrix": [4, 2], "x": 4, "y": 2, "label": "ShiftL" }, + { "matrix": [4, 2], "x": 4, "y": 2, "label": "LShift" }, { "matrix": [4, 3], "x": 4, "y": 3, "label": "Alt" }, - { "matrix": [4, 4], "x": 4, "y": 4, "w": 3, "label": "Space" }, + { "matrix": [4, 4], "x": 4, "y": 4, "label": "Space" }, + { "matrix": [4, 5], "x": 4, "y": 5, "label": "Space" }, + { "matrix": [4, 6], "x": 4, "y": 6, "label": "Space" }, { "matrix": [4, 7], "x": 4, "y": 7, "label": "-" }, { "matrix": [4, 8], "x": 4, "y": 8, "label": "=" }, { "matrix": [4, 9], "x": 4, "y": 9, "label": "Left" }, { "matrix": [4, 10], "x": 4, "y": 10, "label": "Down" }, { "matrix": [4, 11], "x": 4, "y": 11, "label": "Right" }, - { "matrix": [4, 12], "x": 4, "y": 12, "label": "CtrlR" } - ], - "layout_iso": [ + { "matrix": [4, 12], "x": 4, "y": 12, "label": "RCtrl" } + ] + }, + "LAYOUT_iso": { + "layout": [ { "matrix": [0, 0], "x": 0, "y": 0, "label": "Esc" }, { "matrix": [0, 1], "x": 1, "y": 0, "label": "1" }, { "matrix": [0, 2], "x": 2, "y": 0, "label": "2" }, @@ -111,7 +122,9 @@ { "matrix": [0, 8], "x": 8, "y": 0, "label": "8" }, { "matrix": [0, 9], "x": 9, "y": 0, "label": "9" }, { "matrix": [0, 10], "x": 10, "y": 0, "label": "0" }, - { "matrix": [0, 11], "x": 11, "y": 0, "w": 2, "label": "Backspace" }, + { "matrix": [0, 11], "x": 11, "y": 0, "label": "Backspace" }, + { "matrix": [0, 12], "x": 12, "y": 0, "label": "Backspace" }, + { "matrix": [1, 0], "x": 1, "y": 0, "label": "Q" }, { "matrix": [1, 1], "x": 1, "y": 1, "label": "W" }, { "matrix": [1, 2], "x": 1, "y": 2, "label": "E" }, @@ -124,6 +137,8 @@ { "matrix": [1, 9], "x": 1, "y": 9, "label": "P" }, { "matrix": [1, 10], "x": 1, "y": 10, "label": "[" }, { "matrix": [1, 11], "x": 1, "y": 11, "label": "]" }, + { "matrix": [1, 12], "x": 1, "y": 12, "label": "Enter" }, + { "matrix": [2, 0], "x": 2, "y": 0, "label": "A" }, { "matrix": [2, 1], "x": 2, "y": 1, "label": "S" }, { "matrix": [2, 2], "x": 2, "y": 2, "label": "D" }, @@ -136,7 +151,8 @@ { "matrix": [2, 9], "x": 2, "y": 9, "label": ";" }, { "matrix": [2, 10], "x": 2, "y": 10, "label": "'" }, { "matrix": [2, 11], "x": 2, "y": 11, "label": "\\" }, - { "matrix": [1, 12], "x": 1, "y": 12, "h": 2, "label": "Enter" }, + { "matrix": [2, 12], "x": 2, "y": 12, "label": "Enter" }, + { "matrix": [3, 0], "x": 3, "y": 0, "label": "Z" }, { "matrix": [3, 1], "x": 3, "y": 1, "label": "X" }, { "matrix": [3, 2], "x": 3, "y": 2, "label": "C" }, @@ -148,18 +164,22 @@ { "matrix": [3, 8], "x": 3, "y": 8, "label": "." }, { "matrix": [3, 9], "x": 3, "y": 9, "label": "/" }, { "matrix": [3, 10], "x": 3, "y": 10, "label": "Up" }, - { "matrix": [3, 11], "x": 3, "y": 11, "w": 2, "label": "ShiftR" }, - { "matrix": [4, 0], "x": 4, "y": 0, "label": "CtrlL" }, + { "matrix": [3, 11], "x": 3, "y": 11, "label": "RShift" }, + { "matrix": [3, 12], "x": 3, "y": 12, "label": "RShift" }, + + { "matrix": [4, 0], "x": 4, "y": 0, "label": "LCtrl" }, { "matrix": [4, 1], "x": 4, "y": 1, "label": "Fn" }, - { "matrix": [4, 2], "x": 4, "y": 2, "label": "ShiftL" }, + { "matrix": [4, 2], "x": 4, "y": 2, "label": "LShift" }, { "matrix": [4, 3], "x": 4, "y": 3, "label": "Alt" }, - { "matrix": [4, 4], "x": 4, "y": 4, "w": 3, "label": "Space" }, + { "matrix": [4, 4], "x": 4, "y": 4, "label": "Space" }, + { "matrix": [4, 5], "x": 4, "y": 5, "label": "Space" }, + { "matrix": [4, 6], "x": 4, "y": 6, "label": "Space" }, { "matrix": [4, 7], "x": 4, "y": 7, "label": "-" }, { "matrix": [4, 8], "x": 4, "y": 8, "label": "=" }, { "matrix": [4, 9], "x": 4, "y": 9, "label": "Left" }, { "matrix": [4, 10], "x": 4, "y": 10, "label": "Down" }, { "matrix": [4, 11], "x": 4, "y": 11, "label": "Right" }, - { "matrix": [4, 12], "x": 4, "y": 12, "label": "CtrlR" } + { "matrix": [4, 12], "x": 4, "y": 12, "label": "RCtrl" } ] } } diff --git a/keyboards/mkbd65/rules.mk b/keyboards/mkbd65/rules.mk index da0535c8f2..3287da9fbd 100644 --- a/keyboards/mkbd65/rules.mk +++ b/keyboards/mkbd65/rules.mk @@ -1,35 +1,19 @@ -# build options -#LAYOUTS = [] - # AVR MCU Options -MCU = atmega32u4 F_CPU = 16000000 ARCH = AVR8 F_USB = $(F_CPU) OPT_DEFS += -DINTERRUPT_CONTROL_ENDPOINT -BOOTLOADER = atmel-dfu # Feature Options MAGIC_ENABLE = no -COMBO_ENABLE = no AUDIO_ENABLE = no KEY_OVERRIDE_ENABLE = no LEADER_ENABLE = no MIDI_ENABLE = no UNICODE_ENABLE = no BLUETOOTH_ENABLE = no -SPLIT_KEYBOARD = no MUSIC_ENABLE = no SPACE_CADET_ENABLE = no GRAVE_ESC_ENABLE = yes AVR_USE_MINIMAL_PRINTF = yes -ENCODER_ENABLE = no - -DEFAULT_FOLDER = rev1 -# Enables Link Time Optimization (LTO) when compiling the keyboard. This makes the process take longer, but it can -# significantly reduce the compiled size (and since the firmware is small, the added time is not noticeable). -LTO_ENABLE = yes - -# Audio control and System control -EXTRAKEY_ENABLE = yes From bb2ca21647d0d78e3cb4512a8a5974a324404fed Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 17 Nov 2025 02:06:59 +0000 Subject: [PATCH 100/255] Fix detection of hid bootloader flashing tool (#25790) --- lib/python/qmk/flashers.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/python/qmk/flashers.py b/lib/python/qmk/flashers.py index 22d9133d65..b70b5fb035 100644 --- a/lib/python/qmk/flashers.py +++ b/lib/python/qmk/flashers.py @@ -153,6 +153,7 @@ def _flash_atmel_dfu(mcu, file): def _flash_hid_bootloader(mcu, details, file): + cmd = None if details == 'halfkay': if shutil.which('teensy-loader-cli'): cmd = 'teensy-loader-cli' From eb5703d12ef7390da20e251367d936c8f5d68bb7 Mon Sep 17 00:00:00 2001 From: Ivan Gromov <38141348+key10iq@users.noreply.github.com> Date: Mon, 17 Nov 2025 05:09:09 +0300 Subject: [PATCH 101/255] Add imi60-HS (#25773) --- keyboards/keyten/imi60_hs/keyboard.json | 292 ++++++++++++++++++ .../keyten/imi60_hs/keymaps/default/keymap.c | 23 ++ keyboards/keyten/imi60_hs/readme.md | 27 ++ 3 files changed, 342 insertions(+) create mode 100644 keyboards/keyten/imi60_hs/keyboard.json create mode 100644 keyboards/keyten/imi60_hs/keymaps/default/keymap.c create mode 100644 keyboards/keyten/imi60_hs/readme.md diff --git a/keyboards/keyten/imi60_hs/keyboard.json b/keyboards/keyten/imi60_hs/keyboard.json new file mode 100644 index 0000000000..c9c805e403 --- /dev/null +++ b/keyboards/keyten/imi60_hs/keyboard.json @@ -0,0 +1,292 @@ +{ + "manufacturer": "La-Versa x keyten", + "keyboard_name": "imi60-HS", + "maintainer": "key10iq", + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "usb": { + "vid": "0xEB69", + "pid": "0x6009", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["B1", "B0", "A6", "A5", "B11"], + "cols": ["A3", "A4", "A7", "B2", "B10", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"] + }, + "community_layouts": [ + "60_ansi_wkl_split_bs_rshift", + "60_hhkb", + "60_ansi_tsangan_split_bs_rshift" + ], + "layout_aliases": { + "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + }, + "layouts": { + "LAYOUT_60_ansi_wkl_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": [2, 13], "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, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 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.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "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, 13], "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, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 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, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_ansi_tsangan_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": [2, 13], "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, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 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.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, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_tsangan_split_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": [2, 13], "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, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 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.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, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/keyten/imi60_hs/keymaps/default/keymap.c b/keyboards/keyten/imi60_hs/keymaps/default/keymap.c new file mode 100644 index 0000000000..3325867867 --- /dev/null +++ b/keyboards/keyten/imi60_hs/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2025 key10iq +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + 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_GRV, 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, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL + ), + + [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( + QK_BOOT, 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_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 + ) +}; diff --git a/keyboards/keyten/imi60_hs/readme.md b/keyboards/keyten/imi60_hs/readme.md new file mode 100644 index 0000000000..9fd3d3579d --- /dev/null +++ b/keyboards/keyten/imi60_hs/readme.md @@ -0,0 +1,27 @@ +# keyten imi60-HS + +imi60-HS - 60% Hot-Swap PCB compatible with keyboards by La-Versa: Animi, Mirimi, Otsukimi and Abyss + +![imi60-HS](https://live.staticflickr.com/65535/54904885051_339dbff9d8_b.jpg) + +* Keyboard Maintainer: [keyten](https://github.com/key10iq) +* Hardware Supported: keyten imi60-HS +* Hardware Availability: private GB + +Make example for this keyboard (after setting up your build environment): + + make keyten/imi60_hs:default + +Flashing example for this keyboard: + + make keyten/imi60_hs: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 +* Physical reset button: Hold the button on the back of the PCB From 6242c09f7d04a52349dc68edc784d57f3606dc81 Mon Sep 17 00:00:00 2001 From: yiancar Date: Mon, 17 Nov 2025 02:10:59 +0000 Subject: [PATCH 102/255] Hyper7 v4 (#25728) --- keyboards/yiancardesigns/hyper7/v4/config.h | 5 + .../yiancardesigns/hyper7/v4/keyboard.json | 429 ++++++++++++++++++ .../hyper7/v4/keymaps/default/keymap.c | 111 +++++ keyboards/yiancardesigns/hyper7/v4/readme.md | 25 + 4 files changed, 570 insertions(+) create mode 100644 keyboards/yiancardesigns/hyper7/v4/config.h create mode 100644 keyboards/yiancardesigns/hyper7/v4/keyboard.json create mode 100644 keyboards/yiancardesigns/hyper7/v4/keymaps/default/keymap.c create mode 100644 keyboards/yiancardesigns/hyper7/v4/readme.md diff --git a/keyboards/yiancardesigns/hyper7/v4/config.h b/keyboards/yiancardesigns/hyper7/v4/config.h new file mode 100644 index 0000000000..a33e746458 --- /dev/null +++ b/keyboards/yiancardesigns/hyper7/v4/config.h @@ -0,0 +1,5 @@ +// Copyright 2025 Yiancar-Designs, Bit-Shifter +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define DYNAMIC_KEYMAP_MACRO_COUNT 30 diff --git a/keyboards/yiancardesigns/hyper7/v4/keyboard.json b/keyboards/yiancardesigns/hyper7/v4/keyboard.json new file mode 100644 index 0000000000..b6cab6df6a --- /dev/null +++ b/keyboards/yiancardesigns/hyper7/v4/keyboard.json @@ -0,0 +1,429 @@ +{ + "manufacturer": "Yiancar-Designs", + "keyboard_name": "Hyper7 v4", + "maintainer": "Yiancar-Designs", + "bootloader": "stm32-dfu", + "bootmagic": { + "matrix": [3, 0] + }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["B11", "B10", "B2", "B1", "B0", "C5", "C4", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0", "B12", "B13", "B14", "B15", "A8", "C9", "C8", "C7", "C6", "C11", "C10", "A15", "A14"], + "rows": ["C1", "C2", "C3", "A13", "C12", "B3", "B4", "B5"] + }, + "processor": "STM32F072", + "url": "https://yiancar-designs.com", + "usb": { + "device_version": "0.0.1", + "pid": "0x6837", + "vid": "0x8968" + }, + "layouts": { + "LAYOUT_modern": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "w":2}, + {"matrix": [0, 2], "x": 2, "y": 0, "w":2}, + {"matrix": [0, 4], "x": 4.5, "y": 0, "w":2}, + {"matrix": [0, 6], "x": 6.5, "y": 0, "w":2}, + {"matrix": [0, 8], "x": 8.5, "y": 0, "w":2}, + {"matrix": [0, 10], "x": 10.5, "y": 0, "w":2}, + {"matrix": [0, 12], "x": 12.5, "y": 0, "w":2}, + {"matrix": [0, 14], "x": 14.5, "y": 0, "w":2}, + {"matrix": [0, 16], "x": 16.5, "y": 0, "w":2}, + {"matrix": [0, 18], "x": 18.5, "y": 0, "w":2}, + {"matrix": [0, 20], "x": 20.5, "y": 0, "w":2}, + {"matrix": [0, 22], "x": 22.5, "y": 0, "w":2}, + {"matrix": [0, 24], "x": 25, "y": 0, "w":2}, + {"matrix": [0, 26], "x": 27, "y": 0, "w":2}, + {"matrix": [1, 0], "x": 0, "y": 1, "w":2}, + {"matrix": [1, 2], "x": 2, "y": 1, "w":2}, + {"matrix": [1, 4], "x": 4.5, "y": 1, "w":2}, + {"matrix": [1, 6], "x": 6.5, "y": 1, "w":2}, + {"matrix": [1, 8], "x": 8.5, "y": 1, "w":2}, + {"matrix": [1, 10], "x": 10.5, "y": 1, "w":2}, + {"matrix": [1, 12], "x": 12.5, "y": 1, "w":2}, + {"matrix": [1, 14], "x": 14.5, "y": 1, "w":2}, + {"matrix": [1, 16], "x": 16.5, "y": 1, "w":2}, + {"matrix": [1, 18], "x": 18.5, "y": 1, "w":2}, + {"matrix": [1, 20], "x": 20.5, "y": 1, "w":2}, + {"matrix": [1, 22], "x": 22.5, "y": 1, "w":2}, + {"matrix": [1, 24], "x": 25, "y": 1, "w":2}, + {"matrix": [1, 26], "x": 27, "y": 1, "w":2}, + {"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.5, "y": 2, "w":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}, + {"matrix": [2, 14], "x": 14.5, "y": 2}, + {"matrix": [2, 15], "x": 15.5, "y": 2}, + {"matrix": [2, 16], "x": 16.5, "y": 2}, + {"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": [2, 21], "x": 21.5, "y": 2}, + {"matrix": [2, 22], "x": 22.5, "y": 2, "w":2}, + {"matrix": [2, 24], "x": 25, "y": 2}, + {"matrix": [2, 25], "x": 26, "y": 2}, + {"matrix": [2, 26], "x": 27, "y": 2}, + {"matrix": [2, 27], "x": 28, "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.5}, + {"matrix": [3, 4], "x": 4.5, "y": 3.5, "w": 1.5}, + {"matrix": [3, 6], "x": 6, "y": 3.5}, + {"matrix": [3, 7], "x": 7, "y": 3.5}, + {"matrix": [3, 8], "x": 8, "y": 3.5}, + {"matrix": [3, 9], "x": 9, "y": 3.5}, + {"matrix": [3, 10], "x": 10, "y": 3.5}, + {"matrix": [3, 11], "x": 11, "y": 3.5}, + {"matrix": [3, 12], "x": 12, "y": 3.5}, + {"matrix": [3, 13], "x": 13, "y": 3.5}, + {"matrix": [3, 14], "x": 14, "y": 3.5}, + {"matrix": [3, 15], "x": 15, "y": 3.5}, + {"matrix": [3, 16], "x": 16, "y": 3.5}, + {"matrix": [3, 17], "x": 17, "y": 3.5}, + {"matrix": [3, 18], "x": 18, "y": 3.5}, + {"matrix": [3, 19], "x": 19, "y": 3.5}, + {"matrix": [3, 20], "x": 20, "y": 3.5}, + {"matrix": [3, 21], "x": 21, "y": 3.5}, + {"matrix": [3, 22], "x": 22, "y": 3.5}, + {"matrix": [3, 23], "x": 23, "y": 3.5, "w": 1.5}, + {"matrix": [3, 24], "x": 25, "y": 3.5}, + {"matrix": [3, 25], "x": 26, "y": 3.5}, + {"matrix": [3, 26], "x": 27, "y": 3.5}, + {"matrix": [3, 27], "x": 28, "y": 3.5}, + {"matrix": [4, 0], "x": 0, "y": 4.5}, + {"matrix": [4, 1], "x": 1, "y": 4.5}, + {"matrix": [4, 2], "x": 2, "y": 4.5}, + {"matrix": [4, 3], "x": 3, "y": 4.5}, + {"matrix": [4, 4], "x": 4.5, "y": 4.5}, + {"matrix": [4, 5], "x": 5.5, "y": 4.5, "w": 1.5}, + {"matrix": [4, 7], "x": 7, "y": 4.5, "w": 1.5}, + {"matrix": [4, 8], "x": 8.5, "y": 4.5}, + {"matrix": [4, 9], "x": 9.5, "y": 4.5}, + {"matrix": [4, 10], "x": 10.5, "y": 4.5}, + {"matrix": [4, 11], "x": 11.5, "y": 4.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4.5}, + {"matrix": [4, 14], "x": 14.5, "y": 4.5}, + {"matrix": [4, 15], "x": 15.5, "y": 4.5}, + {"matrix": [4, 16], "x": 16.5, "y": 4.5}, + {"matrix": [4, 17], "x": 17.5, "y": 4.5}, + {"matrix": [4, 18], "x": 18.5, "y": 4.5}, + {"matrix": [4, 19], "x": 19.5, "y": 4.5}, + {"matrix": [4, 20], "x": 20.5, "y": 4.5, "w": 1.5}, + {"matrix": [4, 22], "x": 22, "y": 4.5, "w": 1.5}, + {"matrix": [4, 23], "x": 23.5, "y": 4.5}, + {"matrix": [4, 24], "x": 25, "y": 4.5}, + {"matrix": [4, 25], "x": 26, "y": 4.5}, + {"matrix": [4, 26], "x": 27, "y": 4.5}, + {"matrix": [4, 27], "x": 28, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.5}, + {"matrix": [5, 1], "x": 1, "y": 5.5}, + {"matrix": [5, 2], "x": 2, "y": 5.5}, + {"matrix": [5, 3], "x": 3, "y": 5.5}, + {"matrix": [5, 4], "x": 4.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 6], "x": 6, "y": 5.5, "w": 1.5}, + {"matrix": [5, 7], "x": 7.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 9], "x": 9, "y": 5.5}, + {"matrix": [5, 10], "x": 10, "y": 5.5}, + {"matrix": [5, 11], "x": 11, "y": 5.5}, + {"matrix": [5, 12], "x": 12, "y": 5.5}, + {"matrix": [5, 13], "x": 13, "y": 5.5}, + {"matrix": [5, 14], "x": 14, "y": 5.5}, + {"matrix": [5, 15], "x": 15, "y": 5.5}, + {"matrix": [5, 16], "x": 16, "y": 5.5}, + {"matrix": [5, 17], "x": 17, "y": 5.5}, + {"matrix": [5, 18], "x": 18, "y": 5.5}, + {"matrix": [5, 19], "x": 19, "y": 5.5}, + {"matrix": [5, 20], "x": 20, "y": 5.5, "w": 1.5}, + {"matrix": [5, 21], "x": 21.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 23], "x": 23, "y": 5.5, "w": 1.5}, + {"matrix": [5, 24], "x": 25, "y": 5.5}, + {"matrix": [5, 25], "x": 26, "y": 5.5}, + {"matrix": [5, 26], "x": 27, "y": 5.5}, + {"matrix": [5, 27], "x": 28, "y": 5.5}, + {"matrix": [6, 0], "x": 0, "y": 6.5}, + {"matrix": [6, 1], "x": 1, "y": 6.5}, + {"matrix": [6, 2], "x": 2, "y": 6.5}, + {"matrix": [6, 3], "x": 3, "y": 6.5}, + {"matrix": [6, 4], "x": 4.5, "y": 6.5}, + {"matrix": [6, 5], "x": 5.5, "y": 6.5}, + {"matrix": [6, 6], "x": 6.5, "y": 6.5, "w": 1.5}, + {"matrix": [6, 8], "x": 8, "y": 6.5, "w": 1.5}, + {"matrix": [6, 9], "x": 9.5, "y": 6.5}, + {"matrix": [6, 10], "x": 10.5, "y": 6.5}, + {"matrix": [6, 11], "x": 11.5, "y": 6.5}, + {"matrix": [6, 12], "x": 12.5, "y": 6.5}, + {"matrix": [6, 13], "x": 13.5, "y": 6.5}, + {"matrix": [6, 14], "x": 14.5, "y": 6.5}, + {"matrix": [6, 15], "x": 15.5, "y": 6.5}, + {"matrix": [6, 16], "x": 16.5, "y": 6.5}, + {"matrix": [6, 17], "x": 17.5, "y": 6.5}, + {"matrix": [6, 18], "x": 18.5, "y": 6.5}, + {"matrix": [6, 19], "x": 19.5, "y": 6.5, "w": 1.5}, + {"matrix": [6, 21], "x": 21, "y": 6.5, "w": 1.5}, + {"matrix": [6, 22], "x": 22.5, "y": 6.5}, + {"matrix": [6, 23], "x": 23.5, "y": 6.5}, + {"matrix": [6, 24], "x": 25, "y": 6.5}, + {"matrix": [6, 25], "x": 26, "y": 6.5}, + {"matrix": [6, 26], "x": 27, "y": 6.5}, + {"matrix": [6, 27], "x": 28, "y": 6.5}, + {"matrix": [7, 0], "x": 0, "y": 7.5}, + {"matrix": [7, 1], "x": 1, "y": 7.5}, + {"matrix": [7, 2], "x": 2, "y": 7.5}, + {"matrix": [7, 3], "x": 3, "y": 7.5}, + {"matrix": [7, 4], "x": 4.5, "y": 7.5}, + {"matrix": [7, 5], "x": 5.5, "y": 7.5}, + {"matrix": [7, 6], "x": 6.5, "y": 7.5}, + {"matrix": [7, 7], "x": 7.5, "y": 7.5, "w": 1.5}, + {"matrix": [7, 8], "x": 9, "y": 7.5, "w": 1.5}, + {"matrix": [7, 13], "x": 10.5, "y": 7.5, "w": 7}, + {"matrix": [7, 18], "x": 17.5, "y": 7.5}, + {"matrix": [7, 19], "x": 18.5, "y": 7.5, "w": 1.5}, + {"matrix": [7, 20], "x": 20, "y": 7.5, "w": 1.5}, + {"matrix": [7, 21], "x": 21.5, "y": 7.5}, + {"matrix": [7, 22], "x": 22.5, "y": 7.5}, + {"matrix": [7, 23], "x": 23.5, "y": 7.5}, + {"matrix": [7, 24], "x": 25, "y": 7.5}, + {"matrix": [7, 25], "x": 26, "y": 7.5}, + {"matrix": [7, 26], "x": 27, "y": 7.5}, + {"matrix": [7, 27], "x": 28, "y": 7.5} + ] + }, + "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.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}, + {"matrix": [0, 14], "x": 14.5, "y": 0}, + {"matrix": [0, 15], "x": 15.5, "y": 0}, + {"matrix": [0, 16], "x": 16.5, "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": [0, 21], "x": 21.5, "y": 0}, + {"matrix": [0, 22], "x": 22.5, "y": 0}, + {"matrix": [0, 23], "x": 23.5, "y": 0}, + {"matrix": [0, 24], "x": 25, "y": 0}, + {"matrix": [0, 25], "x": 26, "y": 0}, + {"matrix": [0, 26], "x": 27, "y": 0}, + {"matrix": [0, 27], "x": 28, "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.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}, + {"matrix": [1, 14], "x": 14.5, "y": 1}, + {"matrix": [1, 15], "x": 15.5, "y": 1}, + {"matrix": [1, 16], "x": 16.5, "y": 1}, + {"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": [1, 21], "x": 21.5, "y": 1}, + {"matrix": [1, 22], "x": 22.5, "y": 1}, + {"matrix": [1, 23], "x": 23.5, "y": 1}, + {"matrix": [1, 24], "x": 25, "y": 1}, + {"matrix": [1, 25], "x": 26, "y": 1}, + {"matrix": [1, 26], "x": 27, "y": 1}, + {"matrix": [1, 27], "x": 28, "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.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}, + {"matrix": [2, 14], "x": 14.5, "y": 2}, + {"matrix": [2, 15], "x": 15.5, "y": 2}, + {"matrix": [2, 16], "x": 16.5, "y": 2}, + {"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": [2, 21], "x": 21.5, "y": 2}, + {"matrix": [2, 22], "x": 22.5, "y": 2}, + {"matrix": [2, 23], "x": 23.5, "y": 2}, + {"matrix": [2, 24], "x": 25, "y": 2}, + {"matrix": [2, 25], "x": 26, "y": 2}, + {"matrix": [2, 26], "x": 27, "y": 2}, + {"matrix": [2, 27], "x": 28, "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.5}, + {"matrix": [3, 4], "x": 4.5, "y": 3.5, "w": 1.5}, + {"matrix": [3, 6], "x": 6, "y": 3.5}, + {"matrix": [3, 7], "x": 7, "y": 3.5}, + {"matrix": [3, 8], "x": 8, "y": 3.5}, + {"matrix": [3, 9], "x": 9, "y": 3.5}, + {"matrix": [3, 10], "x": 10, "y": 3.5}, + {"matrix": [3, 11], "x": 11, "y": 3.5}, + {"matrix": [3, 12], "x": 12, "y": 3.5}, + {"matrix": [3, 13], "x": 13, "y": 3.5}, + {"matrix": [3, 14], "x": 14, "y": 3.5}, + {"matrix": [3, 15], "x": 15, "y": 3.5}, + {"matrix": [3, 16], "x": 16, "y": 3.5}, + {"matrix": [3, 17], "x": 17, "y": 3.5}, + {"matrix": [3, 18], "x": 18, "y": 3.5}, + {"matrix": [3, 19], "x": 19, "y": 3.5}, + {"matrix": [3, 20], "x": 20, "y": 3.5}, + {"matrix": [3, 21], "x": 21, "y": 3.5}, + {"matrix": [3, 22], "x": 22, "y": 3.5}, + {"matrix": [3, 23], "x": 23, "y": 3.5, "w": 1.5}, + {"matrix": [3, 24], "x": 25, "y": 3.5}, + {"matrix": [3, 25], "x": 26, "y": 3.5}, + {"matrix": [3, 26], "x": 27, "y": 3.5}, + {"matrix": [3, 27], "x": 28, "y": 3.5}, + {"matrix": [4, 0], "x": 0, "y": 4.5}, + {"matrix": [4, 1], "x": 1, "y": 4.5}, + {"matrix": [4, 2], "x": 2, "y": 4.5}, + {"matrix": [4, 3], "x": 3, "y": 4.5}, + {"matrix": [4, 4], "x": 4.5, "y": 4.5}, + {"matrix": [4, 5], "x": 5.5, "y": 4.5, "w": 1.5}, + {"matrix": [4, 7], "x": 7, "y": 4.5, "w": 1.5}, + {"matrix": [4, 8], "x": 8.5, "y": 4.5}, + {"matrix": [4, 9], "x": 9.5, "y": 4.5}, + {"matrix": [4, 10], "x": 10.5, "y": 4.5}, + {"matrix": [4, 11], "x": 11.5, "y": 4.5}, + {"matrix": [4, 12], "x": 12.5, "y": 4.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4.5}, + {"matrix": [4, 14], "x": 14.5, "y": 4.5}, + {"matrix": [4, 15], "x": 15.5, "y": 4.5}, + {"matrix": [4, 16], "x": 16.5, "y": 4.5}, + {"matrix": [4, 17], "x": 17.5, "y": 4.5}, + {"matrix": [4, 18], "x": 18.5, "y": 4.5}, + {"matrix": [4, 19], "x": 19.5, "y": 4.5}, + {"matrix": [4, 20], "x": 20.5, "y": 4.5, "w": 1.5}, + {"matrix": [4, 22], "x": 22, "y": 4.5, "w": 1.5}, + {"matrix": [4, 23], "x": 23.5, "y": 4.5}, + {"matrix": [4, 24], "x": 25, "y": 4.5}, + {"matrix": [4, 25], "x": 26, "y": 4.5}, + {"matrix": [4, 26], "x": 27, "y": 4.5}, + {"matrix": [4, 27], "x": 28, "y": 4.5}, + {"matrix": [5, 0], "x": 0, "y": 5.5}, + {"matrix": [5, 1], "x": 1, "y": 5.5}, + {"matrix": [5, 2], "x": 2, "y": 5.5}, + {"matrix": [5, 3], "x": 3, "y": 5.5}, + {"matrix": [5, 4], "x": 4.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 6], "x": 6, "y": 5.5, "w": 1.5}, + {"matrix": [5, 7], "x": 7.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 9], "x": 9, "y": 5.5}, + {"matrix": [5, 10], "x": 10, "y": 5.5}, + {"matrix": [5, 11], "x": 11, "y": 5.5}, + {"matrix": [5, 12], "x": 12, "y": 5.5}, + {"matrix": [5, 13], "x": 13, "y": 5.5}, + {"matrix": [5, 14], "x": 14, "y": 5.5}, + {"matrix": [5, 15], "x": 15, "y": 5.5}, + {"matrix": [5, 16], "x": 16, "y": 5.5}, + {"matrix": [5, 17], "x": 17, "y": 5.5}, + {"matrix": [5, 18], "x": 18, "y": 5.5}, + {"matrix": [5, 19], "x": 19, "y": 5.5}, + {"matrix": [5, 20], "x": 20, "y": 5.5, "w": 1.5}, + {"matrix": [5, 21], "x": 21.5, "y": 5.5, "w": 1.5}, + {"matrix": [5, 23], "x": 23, "y": 5.5, "w": 1.5}, + {"matrix": [5, 24], "x": 25, "y": 5.5}, + {"matrix": [5, 25], "x": 26, "y": 5.5}, + {"matrix": [5, 26], "x": 27, "y": 5.5}, + {"matrix": [5, 27], "x": 28, "y": 5.5}, + {"matrix": [6, 0], "x": 0, "y": 6.5}, + {"matrix": [6, 1], "x": 1, "y": 6.5}, + {"matrix": [6, 2], "x": 2, "y": 6.5}, + {"matrix": [6, 3], "x": 3, "y": 6.5}, + {"matrix": [6, 4], "x": 4.5, "y": 6.5}, + {"matrix": [6, 5], "x": 5.5, "y": 6.5}, + {"matrix": [6, 6], "x": 6.5, "y": 6.5, "w": 1.5}, + {"matrix": [6, 8], "x": 8, "y": 6.5, "w": 1.5}, + {"matrix": [6, 9], "x": 9.5, "y": 6.5}, + {"matrix": [6, 10], "x": 10.5, "y": 6.5}, + {"matrix": [6, 11], "x": 11.5, "y": 6.5}, + {"matrix": [6, 12], "x": 12.5, "y": 6.5}, + {"matrix": [6, 13], "x": 13.5, "y": 6.5}, + {"matrix": [6, 14], "x": 14.5, "y": 6.5}, + {"matrix": [6, 15], "x": 15.5, "y": 6.5}, + {"matrix": [6, 16], "x": 16.5, "y": 6.5}, + {"matrix": [6, 17], "x": 17.5, "y": 6.5}, + {"matrix": [6, 18], "x": 18.5, "y": 6.5}, + {"matrix": [6, 19], "x": 19.5, "y": 6.5, "w": 1.5}, + {"matrix": [6, 21], "x": 21, "y": 6.5, "w": 1.5}, + {"matrix": [6, 22], "x": 22.5, "y": 6.5}, + {"matrix": [6, 23], "x": 23.5, "y": 6.5}, + {"matrix": [6, 24], "x": 25, "y": 6.5}, + {"matrix": [6, 25], "x": 26, "y": 6.5}, + {"matrix": [6, 26], "x": 27, "y": 6.5}, + {"matrix": [6, 27], "x": 28, "y": 6.5}, + {"matrix": [7, 0], "x": 0, "y": 7.5}, + {"matrix": [7, 1], "x": 1, "y": 7.5}, + {"matrix": [7, 2], "x": 2, "y": 7.5}, + {"matrix": [7, 3], "x": 3, "y": 7.5}, + {"matrix": [7, 4], "x": 4.5, "y": 7.5}, + {"matrix": [7, 5], "x": 5.5, "y": 7.5}, + {"matrix": [7, 6], "x": 6.5, "y": 7.5}, + {"matrix": [7, 7], "x": 7.5, "y": 7.5}, + {"matrix": [7, 8], "x": 8.5, "y": 7.5, "w": 1.5}, + {"matrix": [7, 10], "x": 10, "y": 7.5}, + {"matrix": [7, 11], "x": 11, "y": 7.5, "w": 1.5}, + {"matrix": [7, 12], "x": 12.5, "y": 7.5, "w": 1.5}, + {"matrix": [7, 14], "x": 14, "y": 7.5}, + {"matrix": [7, 15], "x": 15, "y": 7.5, "w": 1.5}, + {"matrix": [7, 16], "x": 16.5, "y": 7.5, "w": 1.5}, + {"matrix": [7, 18], "x": 18, "y": 7.5}, + {"matrix": [7, 19], "x": 19, "y": 7.5, "w": 1.5}, + {"matrix": [7, 20], "x": 20.5, "y": 7.5}, + {"matrix": [7, 21], "x": 21.5, "y": 7.5}, + {"matrix": [7, 22], "x": 22.5, "y": 7.5}, + {"matrix": [7, 23], "x": 23.5, "y": 7.5}, + {"matrix": [7, 24], "x": 25, "y": 7.5}, + {"matrix": [7, 25], "x": 26, "y": 7.5}, + {"matrix": [7, 26], "x": 27, "y": 7.5}, + {"matrix": [7, 27], "x": 28, "y": 7.5}, + {"matrix": [7, 13], "x": 11, "y": 8.5, "w": 7} + ] + } + } +} diff --git a/keyboards/yiancardesigns/hyper7/v4/keymaps/default/keymap.c b/keyboards/yiancardesigns/hyper7/v4/keymaps/default/keymap.c new file mode 100644 index 0000000000..3b2a333ac3 --- /dev/null +++ b/keyboards/yiancardesigns/hyper7/v4/keymaps/default/keymap.c @@ -0,0 +1,111 @@ +// Copyright 2025 Yiancar-Designs, Bit-Shifter +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum my_keycodes { + MACRO = QK_USER_0, + QUOTE, + CLRIN, + SQUAR, + CIRCL, + TRIAN, + DIAMO, + WRITE, + TTY, + PLUSM, + MODE, +}; + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case MACRO: + if (record->event.pressed) { + // when keycode MACRO is pressed + SEND_STRING("Hyper7 is the best thing ever!"); + } + break; + case QUOTE: + if (record->event.pressed) { + // when keycode QUOTE is pressed + SEND_STRING("\"\"" SS_TAP(X_LEFT)); + } + break; + case CLRIN: + if (record->event.pressed) { + // when keycode CLRIN is pressed + SEND_STRING(SS_LCTL("a") SS_TAP(X_DEL)); + } + break; + case SQUAR: + if (record->event.pressed) { + // when keycode SQUAR is pressed + SEND_STRING("I like squares"); + } + break; + case CIRCL: + if (record->event.pressed) { + // when keycode CIRCL is pressed + SEND_STRING("I like circles"); + } + break; + case TRIAN: + if (record->event.pressed) { + // when keycode TRIAN is pressed + SEND_STRING("I like the illuminati"); + } + break; + case DIAMO: + if (record->event.pressed) { + // when keycode DIAMO is pressed + SEND_STRING("Everyone likes diamonds"); + } + break; + case WRITE: + if (record->event.pressed) { + // when keycode WRITE is pressed + SEND_STRING(SS_LGUI("x") "notepad" SS_TAP(X_ENT)); + } + break; + case TTY: + if (record->event.pressed) { + // when keycode TTY is pressed + SEND_STRING(SS_LGUI("x") "cmd" SS_TAP(X_ENT)); + } + break; + case PLUSM: + if (record->event.pressed) { + // when keycode PLUSM is pressed + SEND_STRING("+-"); + } + case MODE: + if (record->event.pressed) { + // when keycode MODE is pressed + SEND_STRING("Mode"); + } + } + return true; +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_modern( + G(KC_F1), MACRO, RCS(KC_ESC), QUOTE, KC_INS, CLRIN, G(KC_D), C(KC_S), C(KC_C), A(KC_F4), KC_PAUS, C(KC_P), G(C(KC_Q)), LCA(KC_DEL), + G(KC_X), KC_WHOM, G(KC_PAUS), C(KC_R), A(KC_TAB), SQUAR, CIRCL, TRIAN, DIAMO, C(KC_Y), LAG(KC_R), RCS(KC_ESC), G(KC_L), KC_CAPS, + KC_F1, KC_F2, A(KC_F4), G(KC_R), KC_ESC, KC_QUES, KC_EXLM, KC_AT, KC_AT, KC_AT, KC_AT, KC_GRV, KC_GRV, KC_GRV, KC_GRV, KC_UNDS, KC_LABK, KC_RABK, KC_PIPE, KC_LCBR, KC_RCBR, C(KC_ENT), KC_CIRC, KC_PERC, KC_HASH, KC_DLR, + KC_F3, KC_F4, C(KC_F), WRITE, LSFT(KC_N), PLUSM, KC_TILD, 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_NUBS, KC_LBRC, KC_RBRC, C(KC_Z), KC_PMNS, KC_PSLS, KC_PAST, KC_PMNS, + KC_F5, KC_F6, C(KC_M), C(KC_Z), C(KC_V), C(KC_X), KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LCBR, KC_RCBR, KC_BSPC, KC_CLEAR, C(KC_HOME),KC_P7, KC_P8, KC_P9, KC_PPLS, + KC_F7, KC_F8, C(KC_A), KC_F12, MO(1), MODE, KC_PGUP, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_COLN, KC_QUOT, KC_ENT, KC_HOME, KC_PGDN, KC_P4, KC_P5, KC_P6, KC_AMPR, + KC_F9, KC_F10, TTY, G(KC_L), C(KC_HOME),KC_END, G(KC_DOT), KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, G(KC_DOT), KC_UP, KC_LGUI, KC_P1, KC_P2, KC_P3, KC_EQL, + KC_F11, KC_F12, KC_HOME, C(KC_END), C(KC_LEFT),C(KC_RGHT),G(KC_DOWN),KC_HYPR, KC_LALT, KC_SPC, KC_RGUI, KC_HYPR, KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL, KC_P0, KC_PDOT, KC_ENTER + ), + [1] = LAYOUT_modern( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/yiancardesigns/hyper7/v4/readme.md b/keyboards/yiancardesigns/hyper7/v4/readme.md new file mode 100644 index 0000000000..264ee7d578 --- /dev/null +++ b/keyboards/yiancardesigns/hyper7/v4/readme.md @@ -0,0 +1,25 @@ +# Hyper7 v4 + +This is a very big pcb... It supports VIA. + +* Keyboard Maintainer: [Yiancar](http://yiancar-designs.com/) and on [GitHub](https://github.com/yiancar) +* Hardware Supported: A very big keyboard with STM32F072RB +* Hardware Availability: https://mechboards.co.uk/ + +Make example for this keyboard (after setting up your build environment): + + make yiancardesigns/hyper7/v4:default + +Flashing example for this keyboard: + + make yiancardesigns/hyper7/v4: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 (3,0) in the matrix (F3) 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 8eebc613cf1ba9ae8213a20b3a500eefcd08ffd3 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 17 Nov 2025 02:24:23 +0000 Subject: [PATCH 103/255] Merge upstream uf2conv changes (#25786) --- util/uf2conv.py | 26 +++++++------ util/uf2families.json | 85 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+), 12 deletions(-) diff --git a/util/uf2conv.py b/util/uf2conv.py index 67cf92f169..a0507b00b9 100755 --- a/util/uf2conv.py +++ b/util/uf2conv.py @@ -142,9 +142,9 @@ def convert_to_uf2(file_content): return b"".join(outp) class Block: - def __init__(self, addr): + def __init__(self, addr, default_data=0xFF): self.addr = addr - self.bytes = bytearray(256) + self.bytes = bytearray([default_data] * 256) def encode(self, blockno, numblocks): global familyid @@ -210,24 +210,26 @@ def to_str(b): def get_drives(): drives = [] if sys.platform == "win32": - r = subprocess.check_output(["wmic", "PATH", "Win32_LogicalDisk", - "get", "DeviceID,", "VolumeName,", - "FileSystem,", "DriveType"]) - for line in to_str(r).split('\n'): - words = re.split(r'\s+', line) - if len(words) >= 3 and words[1] == "2" and words[2] == "FAT": - drives.append(words[0]) + r = subprocess.check_output([ + "powershell", + "-Command", + '(Get-WmiObject Win32_LogicalDisk -Filter "FileSystem=\'FAT\'").DeviceID' + ]) + drives = [drive.strip() for drive in to_str(r).splitlines()] else: - searchpaths = ["/media"] + searchpaths = ["/mnt", "/media"] if sys.platform == "darwin": searchpaths = ["/Volumes"] elif sys.platform == "linux": - searchpaths += ["/media/" + os.environ["USER"], '/run/media/' + os.environ["USER"]] + searchpaths += ["/media/" + os.environ["USER"], "/run/media/" + os.environ["USER"]] + if "SUDO_USER" in os.environ.keys(): + searchpaths += ["/media/" + os.environ["SUDO_USER"]] + searchpaths += ["/run/media/" + os.environ["SUDO_USER"]] for rootpath in searchpaths: if os.path.isdir(rootpath): for d in os.listdir(rootpath): - if os.path.isdir(rootpath): + if os.path.isdir(os.path.join(rootpath, d)): drives.append(os.path.join(rootpath, d)) diff --git a/util/uf2families.json b/util/uf2families.json index e35bf8d428..cd21783fe3 100644 --- a/util/uf2families.json +++ b/util/uf2families.json @@ -34,6 +34,11 @@ "short_name": "STM32WL", "description": "ST STM32WLxx" }, + { + "id": "0x22e0d6fc", + "short_name": "RTL8710B", + "description": "Realtek AmebaZ RTL8710B" + }, { "id": "0x2abc77ec", "short_name": "LPC55", @@ -49,6 +54,11 @@ "short_name": "GD32F350", "description": "GD32F350" }, + { + "id": "0x3379CFE2", + "short_name": "RTL8720D", + "description": "Realtek AmebaD RTL8720D" + }, { "id": "0x04240bdf", "short_name": "STM32L5", @@ -64,6 +74,11 @@ "short_name": "MIMXRT10XX", "description": "NXP i.MX RT10XX" }, + { + "id": "0x51e903a8", + "short_name": "XR809", + "description": "Xradiotech 809" + }, { "id": "0x53b80f00", "short_name": "STM32F7", @@ -104,11 +119,21 @@ "short_name": "STM32F0", "description": "ST STM32F0xx" }, + { + "id": "0x675a40b0", + "short_name": "BK7231U", + "description": "Beken 7231U/7231T" + }, { "id": "0x68ed2b88", "short_name": "SAMD21", "description": "Microchip (Atmel) SAMD21" }, + { + "id": "0x6a82cc42", + "short_name": "BK7251", + "description": "Beken 7251/7252" + }, { "id": "0x6b846188", "short_name": "STM32F3", @@ -119,6 +144,11 @@ "short_name": "STM32F407", "description": "ST STM32F407" }, + { + "id": "0x4e8f1c5d", + "short_name": "STM32H5", + "description": "ST STM32H5xx" + }, { "id": "0x6db66082", "short_name": "STM32H7", @@ -129,6 +159,11 @@ "short_name": "STM32WB", "description": "ST STM32WBxx" }, + { + "id": "0x7b3ef230", + "short_name": "BK7231N", + "description": "Beken 7231N" + }, { "id": "0x7eab61ed", "short_name": "ESP8266", @@ -144,11 +179,21 @@ "short_name": "STM32F407VG", "description": "ST STM32F407VG" }, + { + "id": "0x9fffd543", + "short_name": "RTL8710A", + "description": "Realtek Ameba1 RTL8710A" + }, { "id": "0xada52840", "short_name": "NRF52840", "description": "Nordic NRF52840" }, + { + "id": "0x820d9a5f", + "short_name": "NRF52820", + "description": "Nordic NRF52820_xxAA" + }, { "id": "0xbfdd4eee", "short_name": "ESP32S2", @@ -194,6 +239,26 @@ "short_name": "ESP32C61", "description": "ESP32-C61" }, + { + "id": "0xb6dd00af", + "short_name": "ESP32H21", + "description": "ESP32-H21" + }, + { + "id": "0x9e0baa8a", + "short_name": "ESP32H4", + "description": "ESP32-H4" + }, + { + "id": "0xde1270b7", + "short_name": "BL602", + "description": "Boufallo 602" + }, + { + "id": "0xe08f7564", + "short_name": "RTL8720C", + "description": "Realtek AmebaZ2 RTL8720C" + }, { "id": "0xe48bff56", "short_name": "RP2040", @@ -293,5 +358,25 @@ "id": "0x7be8976d", "short_name": "RA4M1", "description": "Renesas RA4M1" + }, + { + "id": "0x7410520a", + "short_name": "MAX32690", + "description": "Analog Devices MAX32690" + }, + { + "id": "0xd63f8632", + "short_name": "MAX32650", + "description": "Analog Devices MAX32650/1/2" + }, + { + "id": "0xf0c30d71", + "short_name": "MAX32666", + "description": "Analog Devices MAX32665/6" + }, + { + "id": "0x91d3fd18", + "short_name": "MAX78002", + "description": "Analog Devices MAX78002" } ] From 5bb74764005f6a88266bd1295fbb473301676786 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 19 Nov 2025 03:45:29 +0000 Subject: [PATCH 104/255] Short term fix for skip_converter KeyError in 'qmk userspace-add' (#25798) --- lib/python/qmk/cli/userspace/add.py | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/python/qmk/cli/userspace/add.py b/lib/python/qmk/cli/userspace/add.py index 0d6f32cd11..eea70efb95 100644 --- a/lib/python/qmk/cli/userspace/add.py +++ b/lib/python/qmk/cli/userspace/add.py @@ -47,6 +47,7 @@ def userspace_add(cli): from qmk.cli.new.keymap import new_keymap cli.config.new_keymap.keyboard = cli.args.keyboard cli.config.new_keymap.keymap = cli.args.keymap + cli.args.skip_converter = True if new_keymap(cli) is not False: userspace.add_target(keyboard=cli.args.keyboard, keymap=cli.args.keymap, build_env=build_env) else: From 0fde9c9cac5b2e86a2fe28cf8e2ea85b4b9c4c69 Mon Sep 17 00:00:00 2001 From: andrew morton Date: Tue, 18 Nov 2025 20:50:47 -0700 Subject: [PATCH 105/255] [Keyboard] Add Coffee Break Keyboards Acai (#25796) * Add support for Coffee Break Keyboards Acai * Apply suggestions from code review Co-authored-by: Jack Sangdahl * Ran qmk format-json * Misssed one of @waffle87's suggestions * Misssed another of @waffle87's suggestions * Try hosting on imgur.com * Remove empty layers, add boot to layer 2 * Enhance the default keymap * Use correct keycodes for RGB --------- Co-authored-by: Jack Sangdahl --- keyboards/cbkbd/acai/keyboard.json | 174 ++++++++++++++++++ keyboards/cbkbd/acai/keymaps/default/keymap.c | 29 +++ keyboards/cbkbd/acai/readme.md | 26 +++ 3 files changed, 229 insertions(+) create mode 100644 keyboards/cbkbd/acai/keyboard.json create mode 100644 keyboards/cbkbd/acai/keymaps/default/keymap.c create mode 100644 keyboards/cbkbd/acai/readme.md diff --git a/keyboards/cbkbd/acai/keyboard.json b/keyboards/cbkbd/acai/keyboard.json new file mode 100644 index 0000000000..b1babe7797 --- /dev/null +++ b/keyboards/cbkbd/acai/keyboard.json @@ -0,0 +1,174 @@ +{ + "manufacturer": "CoffeeBreakKeyboards", + "keyboard_name": "Acai", + "maintainer": "CoffeeBreakKeyboards", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 6 + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP25", "GP24", "GP23", "GP20", "GP18", "GP7", "GP6", "GP5", "GP4", "GP3"], + "rows": ["GP27", "GP28", "GP19", "GP26"] + }, + "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, 4], "x": 100, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 50, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 25, "y": 0, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 25, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 50, "y": 21, "flags": 4}, + {"matrix": [1, 3], "x": 75, "y": 21, "flags": 4}, + {"matrix": [1, 4], "x": 100, "y": 21, "flags": 4}, + {"matrix": [2, 4], "x": 100, "y": 43, "flags": 4}, + {"matrix": [2, 3], "x": 75, "y": 43, "flags": 4}, + {"matrix": [2, 2], "x": 50, "y": 43, "flags": 4}, + {"matrix": [2, 1], "x": 25, "y": 43, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 43, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 25, "y": 64, "flags": 4}, + {"matrix": [3, 2], "x": 50, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 75, "y": 64, "flags": 4}, + {"matrix": [3, 4], "x": 100, "y": 64, "flags": 4}, + {"matrix": [3, 5], "x": 125, "y": 64, "flags": 4}, + {"matrix": [3, 6], "x": 150, "y": 64, "flags": 4}, + {"matrix": [3, 7], "x": 175, "y": 64, "flags": 4}, + {"matrix": [3, 8], "x": 200, "y": 64, "flags": 4}, + {"matrix": [3, 9], "x": 224, "y": 64, "flags": 4}, + {"matrix": [2, 9], "x": 224, "y": 43, "flags": 4}, + {"matrix": [2, 8], "x": 200, "y": 43, "flags": 4}, + {"matrix": [2, 7], "x": 175, "y": 43, "flags": 4}, + {"matrix": [2, 6], "x": 150, "y": 43, "flags": 4}, + {"matrix": [2, 5], "x": 125, "y": 43, "flags": 4}, + {"matrix": [1, 5], "x": 125, "y": 21, "flags": 4}, + {"matrix": [1, 6], "x": 150, "y": 21, "flags": 4}, + {"matrix": [1, 7], "x": 175, "y": 21, "flags": 4}, + {"matrix": [1, 8], "x": 200, "y": 21, "flags": 4}, + {"matrix": [1, 9], "x": 224, "y": 21, "flags": 4}, + {"matrix": [0, 9], "x": 224, "y": 0, "flags": 4}, + {"matrix": [0, 8], "x": 200, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 175, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 150, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 125, "y": 0, "flags": 4} + ], + "max_brightness": 125, + "sleep": true + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x1075", + "vid": "0x4342" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP29" + }, + "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": [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": [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": [1, 6], "x": 6, "y": 1}, + {"matrix": [1, 7], "x": 7, "y": 1}, + {"matrix": [1, 8], "x": 8, "y": 1}, + {"matrix": [1, 9], "x": 9, "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": [2, 6], "x": 6, "y": 2}, + {"matrix": [2, 7], "x": 7, "y": 2}, + {"matrix": [2, 8], "x": 8, "y": 2}, + {"matrix": [2, 9], "x": 9, "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": [3, 6], "x": 6, "y": 3}, + {"matrix": [3, 7], "x": 7, "y": 3}, + {"matrix": [3, 8], "x": 8, "y": 3}, + {"matrix": [3, 9], "x": 9, "y": 3} + ] + } + } +} diff --git a/keyboards/cbkbd/acai/keymaps/default/keymap.c b/keyboards/cbkbd/acai/keymaps/default/keymap.c new file mode 100644 index 0000000000..90ff4a4f49 --- /dev/null +++ b/keyboards/cbkbd/acai/keymaps/default/keymap.c @@ -0,0 +1,29 @@ +// Copyright 2025 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_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_ENTER, + LSFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, RSFT_T(KC_SLSH), + KC_LCTL, KC_LGUI, KC_LALT, LT(1,KC_BSPC), KC_DEL, KC_ENT, LT(2,KC_SPACE), KC_RALT, KC_RGUI, KC_RCTL + ), + + [1] = LAYOUT( + 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_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 + ), + + [2] = LAYOUT( + RM_TOGG, RM_NEXT, 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_LEFT, KC_DOWN, KC_UP, KC_RGHT, 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/cbkbd/acai/readme.md b/keyboards/cbkbd/acai/readme.md new file mode 100644 index 0000000000..f3c2b1728d --- /dev/null +++ b/keyboards/cbkbd/acai/readme.md @@ -0,0 +1,26 @@ +# Acai + +![Acai](https://imgur.com/eWKoH96.png) + +A 10x4 ortholinear keyboard made and sold by Coffee Break Keyboards. PCB designed by Snipeye. Case designed by Rain and Obabo. [More info on cbkbd.com](https://www.cbkbd.com/product/acai) + +* Hardware Supported: Acai PCB +* Hardware Availability: [cbkbd.com](https://www.cbkbd.com/product/acai-pcb) + +Make example for this keyboard (after setting up your build environment): + + make cbkbd/acai:default + +Flashing example for this keyboard: + + make cbkbd/acai:default:flash + +See the [build environment setup](getting_started_build_tools) and the [make instructions](getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](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 81cc69c2dd58da6cb21e86c2b630dc95e11e85d4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Nov 2025 02:13:14 +0000 Subject: [PATCH 106/255] Bump actions/checkout from 5 to 6 (#25807) Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/api.yml | 2 +- .github/workflows/auto_tag.yml | 2 +- .github/workflows/ci_build_major_branch.yml | 4 ++-- .github/workflows/ci_build_major_branch_keymap.yml | 6 +++--- .github/workflows/cli.yml | 2 +- .github/workflows/develop_update.yml | 2 +- .github/workflows/docs.yml | 2 +- .github/workflows/feature_branch_update.yml | 2 +- .github/workflows/format.yml | 2 +- .github/workflows/format_push.yml | 2 +- .github/workflows/lint.yml | 2 +- .github/workflows/regen.yml | 2 +- .github/workflows/regen_push.yml | 2 +- .github/workflows/unit_test.yml | 2 +- 14 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.github/workflows/api.yml b/.github/workflows/api.yml index cdf6349878..58e12138c5 100644 --- a/.github/workflows/api.yml +++ b/.github/workflows/api.yml @@ -25,7 +25,7 @@ jobs: if: github.repository == 'qmk/qmk_firmware' steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: fetch-depth: 1 persist-credentials: false diff --git a/.github/workflows/auto_tag.yml b/.github/workflows/auto_tag.yml index a2c6a104a8..c6db22ab74 100644 --- a/.github/workflows/auto_tag.yml +++ b/.github/workflows/auto_tag.yml @@ -28,7 +28,7 @@ jobs: if: github.repository == 'qmk/qmk_firmware' steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: fetch-depth: 0 diff --git a/.github/workflows/ci_build_major_branch.yml b/.github/workflows/ci_build_major_branch.yml index 6cefd58901..f21f4c3171 100644 --- a/.github/workflows/ci_build_major_branch.yml +++ b/.github/workflows/ci_build_major_branch.yml @@ -45,7 +45,7 @@ jobs: git config --global --add safe.directory '*' - name: Checkout QMK Firmware - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Determine concurrency id: generate_slice_length @@ -82,7 +82,7 @@ jobs: git config --global --add safe.directory '*' - name: Checkout QMK Firmware - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 diff --git a/.github/workflows/ci_build_major_branch_keymap.yml b/.github/workflows/ci_build_major_branch_keymap.yml index f5533cf07a..89c932553a 100644 --- a/.github/workflows/ci_build_major_branch_keymap.yml +++ b/.github/workflows/ci_build_major_branch_keymap.yml @@ -37,7 +37,7 @@ jobs: git config --global --add safe.directory '*' - name: Checkout QMK Firmware - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Generate build targets id: generate_targets @@ -89,7 +89,7 @@ jobs: git config --global --add safe.directory '*' - name: Checkout QMK Firmware - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Get target definitions uses: actions/download-artifact@v6 @@ -136,7 +136,7 @@ jobs: steps: - name: Checkout QMK Firmware - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Download firmwares uses: actions/download-artifact@v6 diff --git a/.github/workflows/cli.yml b/.github/workflows/cli.yml index fc24c6b366..ca794decf5 100644 --- a/.github/workflows/cli.yml +++ b/.github/workflows/cli.yml @@ -24,7 +24,7 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: submodules: recursive diff --git a/.github/workflows/develop_update.yml b/.github/workflows/develop_update.yml index 5c046b8f64..03d0803fe8 100644 --- a/.github/workflows/develop_update.yml +++ b/.github/workflows/develop_update.yml @@ -15,7 +15,7 @@ jobs: if: github.repository == 'qmk/qmk_firmware' steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: token: ${{ secrets.QMK_BOT_TOKEN }} fetch-depth: 0 diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index fe5d6027e2..20a1372f26 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -30,7 +30,7 @@ jobs: container: ghcr.io/qmk/qmk_cli steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: fetch-depth: 1 diff --git a/.github/workflows/feature_branch_update.yml b/.github/workflows/feature_branch_update.yml index fc33f883a8..1eb5810f9b 100644 --- a/.github/workflows/feature_branch_update.yml +++ b/.github/workflows/feature_branch_update.yml @@ -21,7 +21,7 @@ jobs: - riot steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: token: ${{ secrets.QMK_BOT_TOKEN }} fetch-depth: 0 diff --git a/.github/workflows/format.yml b/.github/workflows/format.yml index be6617e2b2..cc32f6f898 100644 --- a/.github/workflows/format.yml +++ b/.github/workflows/format.yml @@ -26,7 +26,7 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: fetch-depth: 0 diff --git a/.github/workflows/format_push.yml b/.github/workflows/format_push.yml index 74a42669d6..738515251a 100644 --- a/.github/workflows/format_push.yml +++ b/.github/workflows/format_push.yml @@ -19,7 +19,7 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: fetch-depth: 0 diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 7d4ff0a977..ec5e04804d 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -18,7 +18,7 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: fetch-depth: 0 diff --git a/.github/workflows/regen.yml b/.github/workflows/regen.yml index 06759102cc..6eb94c8aaa 100644 --- a/.github/workflows/regen.yml +++ b/.github/workflows/regen.yml @@ -19,7 +19,7 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Run qmk generators run: | diff --git a/.github/workflows/regen_push.yml b/.github/workflows/regen_push.yml index 4798e86c59..df7e9970ea 100644 --- a/.github/workflows/regen_push.yml +++ b/.github/workflows/regen_push.yml @@ -19,7 +19,7 @@ jobs: - name: Disable safe.directory check run : git config --global --add safe.directory '*' - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Run qmk generators run: | diff --git a/.github/workflows/unit_test.yml b/.github/workflows/unit_test.yml index 7ab9969242..2384cfb039 100644 --- a/.github/workflows/unit_test.yml +++ b/.github/workflows/unit_test.yml @@ -26,7 +26,7 @@ jobs: container: ghcr.io/qmk/qmk_cli steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: submodules: recursive - name: Install dependencies From 3e0b22af68da07bf2854ecde6b0f31f98fd027e2 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 22 Nov 2025 04:30:27 +0000 Subject: [PATCH 107/255] Fix community layout keymap discovery (#25802) --- builddefs/build_json.mk | 10 +++++----- builddefs/build_layout.mk | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/builddefs/build_json.mk b/builddefs/build_json.mk index e9d1420f36..54f256480b 100644 --- a/builddefs/build_json.mk +++ b/builddefs/build_json.mk @@ -19,18 +19,18 @@ endif ifneq ($(QMK_USERSPACE),) ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.json)","") KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.json - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5) + KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5) else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.json)","") KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.json - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4) + KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4) else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.json)","") KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.json - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3) + KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3) else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.json)","") KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.json - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2) + KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2) else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.json)","") KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.json - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1) + KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1) endif endif diff --git a/builddefs/build_layout.mk b/builddefs/build_layout.mk index 9ff99cc221..7a5dbf58b6 100644 --- a/builddefs/build_layout.mk +++ b/builddefs/build_layout.mk @@ -10,10 +10,10 @@ define SEARCH_LAYOUTS_REPO LAYOUT_KEYMAP_JSON := $$(LAYOUT_KEYMAP_PATH)/keymap.json LAYOUT_KEYMAP_C := $$(LAYOUT_KEYMAP_PATH)/keymap.c ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_JSON))","") - -include $$(LAYOUT_KEYMAP_PATH)/rules.mk KEYMAP_JSON := $$(LAYOUT_KEYMAP_JSON) - KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH) - else ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_C))","") + KEYMAP_JSON_PATH := $$(LAYOUT_KEYMAP_PATH) + endif + ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_C))","") -include $$(LAYOUT_KEYMAP_PATH)/rules.mk KEYMAP_C := $$(LAYOUT_KEYMAP_C) KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH) From 1a7f544e0df833f9709aaa724f9fd8b5c5c274de Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Fri, 21 Nov 2025 23:57:58 -0700 Subject: [PATCH 108/255] [CLI] Lint error on missing keyboard readme (#25814) --- lib/python/qmk/cli/lint.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/python/qmk/cli/lint.py b/lib/python/qmk/cli/lint.py index 484ddb5bd9..8a128ce6d2 100644 --- a/lib/python/qmk/cli/lint.py +++ b/lib/python/qmk/cli/lint.py @@ -304,6 +304,10 @@ def keyboard_check(kb): # noqa C901 cli.log.error(f'{kb}: The file "{file}" should not exist!') ok = False + if not _get_readme_files(kb): + cli.log.error(f'{kb}: Is missing a readme.md file!') + ok = False + for file in _get_readme_files(kb): if _is_invalid_readme(file): cli.log.error(f'{kb}: The file "{file}" still contains template tokens!') From 28a11ff6f7a721820cc335287e44e2fefe22ac71 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 23 Nov 2025 05:02:32 +0000 Subject: [PATCH 109/255] Fix preference of output file for 'qmk generate-autocorrect-data' (#25818) --- lib/python/qmk/cli/generate/autocorrect_data.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/python/qmk/cli/generate/autocorrect_data.py b/lib/python/qmk/cli/generate/autocorrect_data.py index 01a29b46fe..4f322adce2 100644 --- a/lib/python/qmk/cli/generate/autocorrect_data.py +++ b/lib/python/qmk/cli/generate/autocorrect_data.py @@ -250,8 +250,8 @@ def to_hex(b: int) -> str: @cli.argument('filename', type=normpath, help='The autocorrection database file') -@cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='The keyboard to build a firmware for. Ignored when a configurator export is supplied.') -@cli.argument('-km', '--keymap', completer=keymap_completer, help='The keymap to build a firmware for. Ignored when a configurator export is supplied.') +@cli.argument('-kb', '--keyboard', type=keyboard_folder, completer=keyboard_completer, help='The keyboard to build a firmware for. Ignored when a output file is supplied.') +@cli.argument('-km', '--keymap', completer=keymap_completer, help='The keymap to build a firmware for. Ignored when a output file is supplied.') @cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to') @cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") @cli.subcommand('Generate the autocorrection data file from a dictionary file.') @@ -263,7 +263,7 @@ def generate_autocorrect_data(cli): current_keyboard = cli.args.keyboard or cli.config.user.keyboard or cli.config.generate_autocorrect_data.keyboard current_keymap = cli.args.keymap or cli.config.user.keymap or cli.config.generate_autocorrect_data.keymap - if current_keyboard and current_keymap: + if not cli.args.output and current_keyboard and current_keymap: cli.args.output = locate_keymap(current_keyboard, current_keymap).parent / 'autocorrect_data.h' assert all(0 <= b <= 255 for b in data) From fd65390496cb47b3164c507656798664b8c2fcd1 Mon Sep 17 00:00:00 2001 From: Xelus22 <17491233+Xelus22@users.noreply.github.com> Date: Sun, 23 Nov 2025 22:21:13 +1100 Subject: [PATCH 110/255] [core] add BCD versions of QMK Version (#25804) Co-authored-by: Joel Challis --- lib/python/qmk/cli/generate/version_h.py | 4 ++++ lib/python/qmk/util.py | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/lib/python/qmk/cli/generate/version_h.py b/lib/python/qmk/cli/generate/version_h.py index fd87df3617..8156e85559 100644 --- a/lib/python/qmk/cli/generate/version_h.py +++ b/lib/python/qmk/cli/generate/version_h.py @@ -8,6 +8,7 @@ from qmk.path import normpath from qmk.commands import dump_lines from qmk.git import git_get_qmk_hash, git_get_version, git_is_dirty from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE +from qmk.util import triplet_to_bcd TIME_FMT = '%Y-%m-%d-%H:%M:%S' @@ -32,12 +33,14 @@ def generate_version_h(cli): git_dirty = False git_version = "NA" git_qmk_hash = "NA" + git_bcd_version = "0x00000000" chibios_version = "NA" chibios_contrib_version = "NA" else: git_dirty = git_is_dirty() git_version = git_get_version() or current_time git_qmk_hash = git_get_qmk_hash() or "Unknown" + git_bcd_version = triplet_to_bcd(git_version) chibios_version = git_get_version("chibios", "os") or current_time chibios_contrib_version = git_get_version("chibios-contrib", "os") or current_time @@ -48,6 +51,7 @@ def generate_version_h(cli): f""" #define QMK_VERSION "{git_version}" #define QMK_BUILDDATE "{current_time}" +#define QMK_VERSION_BCD {git_bcd_version} #define QMK_GIT_HASH "{git_qmk_hash}{'*' if git_dirty else ''}" #define CHIBIOS_VERSION "{chibios_version}" #define CHIBIOS_CONTRIB_VERSION "{chibios_contrib_version}" diff --git a/lib/python/qmk/util.py b/lib/python/qmk/util.py index 8f99410e1d..6da684a577 100644 --- a/lib/python/qmk/util.py +++ b/lib/python/qmk/util.py @@ -3,9 +3,12 @@ import contextlib import multiprocessing import sys +import re from milc import cli +TRIPLET_PATTERN = re.compile(r'^(\d+)\.(\d+)\.(\d+)') + maybe_exit_should_exit = True maybe_exit_reraise = False @@ -96,3 +99,10 @@ def parallel_map(*args, **kwargs): # before the results are returned. Returning a list ensures results are # materialised before any worker pool is shut down. return list(map_fn(*args, **kwargs)) + + +def triplet_to_bcd(ver: str): + m = TRIPLET_PATTERN.match(ver) + if not m: + return '0x00000000' + return f'0x{int(m.group(1)):02d}{int(m.group(2)):02d}{int(m.group(3)):04d}' From 53de903fb89d4138fdc38f98d266db0fec9548b1 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 23 Nov 2025 11:21:55 +0000 Subject: [PATCH 111/255] Better defaulting of `{RGB,LED}_MATRIX_DEFAULT_FLAGS` (#25785) --- lib/python/qmk/info.py | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index e6d51e1239..a0b8fe72b6 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -5,6 +5,7 @@ import os from pathlib import Path import jsonschema from dotty_dict import dotty +from enum import IntFlag from milc import cli @@ -21,6 +22,15 @@ true_values = ['1', 'on', 'yes'] false_values = ['0', 'off', 'no'] +class LedFlags(IntFlag): + ALL = 0xFF + NONE = 0x00 + MODIFIER = 0x01 + UNDERGLOW = 0x02 + KEYLIGHT = 0x04 + INDICATOR = 0x08 + + def _keyboard_in_layout_name(keyboard, layout): """Validate that a layout macro does not contain name of keyboard """ @@ -813,12 +823,23 @@ def _extract_led_config(info_data, keyboard): info_data[feature]['led_count'] = len(info_data[feature]['layout']) if info_data[feature].get('layout', None) and not info_data[feature].get('flag_steps', None): - flags = {0xFF, 0} + flags = {LedFlags.ALL, LedFlags.NONE} + default_flags = {LedFlags.MODIFIER | LedFlags.KEYLIGHT, LedFlags.UNDERGLOW} + # if only a single flag is used, assume only all+none flags - unique_flags = set(x.get('flags', 0) for x in info_data[feature]['layout']) - if len(unique_flags) > 1: - flags.update(unique_flags) - info_data[feature]['flag_steps'] = sorted(list(flags), reverse=True) + kb_flags = set(x.get('flags', LedFlags.NONE) for x in info_data[feature]['layout']) + if len(kb_flags) > 1: + # check if any part of LED flag is with the defaults + unique_flags = set() + for candidate in default_flags: + if any(candidate & flag for flag in kb_flags): + unique_flags.add(candidate) + + # if we still have a single flag, assume only all+none + if len(unique_flags) > 1: + flags.update(unique_flags) + + info_data[feature]['flag_steps'] = sorted([int(flag) for flag in flags], reverse=True) return info_data From 4015c40ba4fd9a671c2e919582bbabab7320544b Mon Sep 17 00:00:00 2001 From: Pascal Getreuer <50221757+getreuer@users.noreply.github.com> Date: Sun, 23 Nov 2025 03:24:02 -0800 Subject: [PATCH 112/255] [Bug][Core] Fix Speculative Hold to enable also right-handed RSFT, RCTL by default. (#25797) --- quantum/action_tapping.c | 2 +- .../speculative_hold/all_mods/config.h | 23 ++ .../speculative_hold/all_mods/test.mk | 18 + .../all_mods/test_tap_hold.cpp | 352 ++++++++++++++++++ .../speculative_hold/default/config.h | 1 - .../speculative_hold/default/test.mk | 1 - .../default/test_tap_hold.cpp | 305 ++------------- 7 files changed, 417 insertions(+), 285 deletions(-) create mode 100644 tests/tap_hold_configurations/speculative_hold/all_mods/config.h create mode 100644 tests/tap_hold_configurations/speculative_hold/all_mods/test.mk create mode 100644 tests/tap_hold_configurations/speculative_hold/all_mods/test_tap_hold.cpp diff --git a/quantum/action_tapping.c b/quantum/action_tapping.c index 5d43dd99ea..ccc99bfd8e 100644 --- a/quantum/action_tapping.c +++ b/quantum/action_tapping.c @@ -813,7 +813,7 @@ uint8_t get_speculative_mods(void) { __attribute__((weak)) bool get_speculative_hold(uint16_t keycode, keyrecord_t *record) { const uint8_t mods = mod_config(QK_MOD_TAP_GET_MODS(keycode)); - return (mods & (MOD_LCTL | MOD_LSFT)) == mods; + return (mods & (MOD_LCTL | MOD_LSFT)) == (mods & (MOD_HYPR)); } void speculative_key_settled(keyrecord_t *record) { diff --git a/tests/tap_hold_configurations/speculative_hold/all_mods/config.h b/tests/tap_hold_configurations/speculative_hold/all_mods/config.h new file mode 100644 index 0000000000..e4bcba13c1 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/all_mods/config.h @@ -0,0 +1,23 @@ +/* Copyright 2022 Vladislav Kucheriavykh + * Copyright 2025 Google LLC + * + * 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 "test_common.h" + +#define SPECULATIVE_HOLD +#define DUMMY_MOD_NEUTRALIZER_KEYCODE KC_F24 diff --git a/tests/tap_hold_configurations/speculative_hold/all_mods/test.mk b/tests/tap_hold_configurations/speculative_hold/all_mods/test.mk new file mode 100644 index 0000000000..1765122512 --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/all_mods/test.mk @@ -0,0 +1,18 @@ +# Copyright 2022 Vladislav Kucheriavykh +# Copyright 2025 Google LLC +# +# 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 . + +MAGIC_ENABLE = yes + diff --git a/tests/tap_hold_configurations/speculative_hold/all_mods/test_tap_hold.cpp b/tests/tap_hold_configurations/speculative_hold/all_mods/test_tap_hold.cpp new file mode 100644 index 0000000000..764b97ddde --- /dev/null +++ b/tests/tap_hold_configurations/speculative_hold/all_mods/test_tap_hold.cpp @@ -0,0 +1,352 @@ +// Copyright 2025 Google LLC +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// https://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#include + +#include "keyboard_report_util.hpp" +#include "keycode.h" +#include "test_common.hpp" +#include "action_tapping.h" +#include "test_fixture.hpp" +#include "test_keymap_key.hpp" + +using testing::_; +using testing::AnyNumber; +using testing::InSequence; + +namespace { + +// Gets the unpacked 8-bit mods corresponding to a given mod-tap keycode. +uint8_t unpack_mod_tap_mods(uint16_t keycode) { + const uint8_t mods5 = QK_MOD_TAP_GET_MODS(keycode); + return (mods5 & 0x10) != 0 ? (mods5 << 4) : mods5; +} + +bool get_speculative_hold_all_mods(uint16_t keycode, keyrecord_t *record) { + return true; // Enable Speculative Hold for all mod-tap keys. +} + +// Indirection so that get_speculative_hold() can be +// replaced with other functions in the test cases below. +std::function get_speculative_hold_fun = get_speculative_hold_all_mods; + +extern "C" bool get_speculative_hold(uint16_t keycode, keyrecord_t *record) { + return get_speculative_hold_fun(keycode, record); +} + +class SpeculativeHoldAllMods : public TestFixture { + public: + void SetUp() override { + get_speculative_hold_fun = get_speculative_hold_all_mods; + } +}; + +TEST_F(SpeculativeHoldAllMods, tap_mod_tap_neutralized) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, GUI_T(KC_P)); + + set_keymap({mod_tap_key}); + + // Press mod-tap-hold key. Mod is held speculatively. + EXPECT_REPORT(driver, (KC_LGUI)); + mod_tap_key.press(); + idle_for(10); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. Speculative mod is neutralized and canceled. + EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Idle for tapping term of mod tap hold key. + idle_for(TAPPING_TERM - 10); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldAllMods, hold_two_mod_taps) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, LCTL_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, RALT_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Press first mod-tap key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), MOD_BIT_LCTRL); + + // Press second mod-tap key. + EXPECT_REPORT(driver, (KC_LCTL, KC_RALT)); + mod_tap_key2.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), MOD_BIT_LCTRL | MOD_BIT_RALT); + + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), MOD_BIT_LCTRL | MOD_BIT_RALT); + + // Release first mod-tap key. + EXPECT_REPORT(driver, (KC_RALT)); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release second mod-tap key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldAllMods, two_mod_taps_same_mods) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 1, 0, GUI_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 2, 0, GUI_T(KC_B)); + + set_keymap({mod_tap_key1, mod_tap_key2}); + + // Press first mod-tap key. + EXPECT_REPORT(driver, (KC_LGUI)); + mod_tap_key1.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Tap second mod-tap key. + EXPECT_NO_REPORT(driver); + mod_tap_key2.press(); + run_one_scan_loop(); + mod_tap_key2.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release first mod-tap key. + EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_REPORT(driver, (KC_A, KC_B)); + EXPECT_REPORT(driver, (KC_A)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key1.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldAllMods, respects_get_speculative_hold_callback) { + TestDriver driver; + InSequence s; + auto mod_tap_key1 = KeymapKey(0, 0, 0, LSFT_T(KC_A)); + auto mod_tap_key2 = KeymapKey(0, 1, 0, LSFT_T(KC_B)); + auto mod_tap_key3 = KeymapKey(0, 2, 0, LCTL_T(KC_C)); + auto mod_tap_key4 = KeymapKey(0, 3, 0, LCTL_T(KC_D)); + auto mod_tap_key5 = KeymapKey(0, 4, 0, RSFT_T(KC_E)); + auto mod_tap_key6 = KeymapKey(0, 5, 0, RSFT_T(KC_F)); + + set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3, mod_tap_key4, mod_tap_key5, mod_tap_key6}); + + // Enable Speculative Hold selectively for some of the keys. + get_speculative_hold_fun = [](uint16_t keycode, keyrecord_t *record) { + switch (keycode) { + case LSFT_T(KC_B): + case LCTL_T(KC_D): + case RSFT_T(KC_F): + return true; + } + return false; + }; + + for (KeymapKey *mod_tap_key : {&mod_tap_key2, &mod_tap_key4, &mod_tap_key6}) { + SCOPED_TRACE(std::string("mod_tap_key = ") + mod_tap_key->name); + const uint8_t mods = unpack_mod_tap_mods(mod_tap_key->code); + + // Long press and release mod_tap_key. + // For these keys where Speculative Hold is enabled, then the mod should + // activate immediately on keydown. + EXPECT_REPORT(driver, (KC_LCTL + biton(mods))); + mod_tap_key->press(); + run_one_scan_loop(); + EXPECT_EQ(get_speculative_mods(), mods); + EXPECT_EQ(get_mods(), 0); + VERIFY_AND_CLEAR(driver); + + EXPECT_NO_REPORT(driver); + idle_for(TAPPING_TERM + 1); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), mods); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key->release(); + idle_for(TAPPING_TERM + 1); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), 0); + VERIFY_AND_CLEAR(driver); + } + + for (KeymapKey *mod_tap_key : {&mod_tap_key1, &mod_tap_key3, &mod_tap_key5}) { + SCOPED_TRACE(std::string("mod_tap_key = ") + mod_tap_key->name); + const uint8_t mods = unpack_mod_tap_mods(mod_tap_key->code); + + // Long press and release mod_tap_key. + // For these keys where Speculative Hold is disabled, the mod should + // activate when the key has settled after the tapping term. + EXPECT_NO_REPORT(driver); + mod_tap_key->press(); + run_one_scan_loop(); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), 0); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_LCTL + biton(mods))); + idle_for(TAPPING_TERM + 1); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), mods); + VERIFY_AND_CLEAR(driver); + + EXPECT_EMPTY_REPORT(driver); + mod_tap_key->release(); + idle_for(TAPPING_TERM + 1); + EXPECT_EQ(get_speculative_mods(), 0); + EXPECT_EQ(get_mods(), 0); + VERIFY_AND_CLEAR(driver); + } +} + +TEST_F(SpeculativeHoldAllMods, respects_magic_mod_config) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, CTL_T(KC_P)); + + set_keymap({mod_tap_key}); + + keymap_config.swap_lctl_lgui = true; + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LGUI)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); + EXPECT_REPORT(driver, (KC_LGUI)); + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + idle_for(TAPPING_TERM + 1); + VERIFY_AND_CLEAR(driver); + + keymap_config.swap_lctl_lgui = false; + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LCTL)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldAllMods, tap_a_mod_tap_key_while_another_mod_tap_key_is_held) { + TestDriver driver; + InSequence s; + auto first_mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + auto second_mod_tap_key = KeymapKey(0, 2, 0, RSFT_T(KC_A)); + + set_keymap({first_mod_tap_key, second_mod_tap_key}); + + // Press first mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LSFT)); + first_mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press second tap-hold key. + EXPECT_REPORT(driver, (KC_LSFT, KC_RSFT)); + second_mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release second tap-hold key. + EXPECT_NO_REPORT(driver); + second_mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release first mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_REPORT(driver, (KC_P, KC_A)); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + first_mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +TEST_F(SpeculativeHoldAllMods, tap_mod_tap_key_two_times) { + TestDriver driver; + InSequence s; + auto mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); + + set_keymap({mod_tap_key}); + + // Press mod-tap-hold key. + EXPECT_REPORT(driver, (KC_LSFT)); + mod_tap_key.press(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + EXPECT_REPORT(driver, (KC_P)); + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); + + // Press mod-tap-hold key again. + EXPECT_REPORT(driver, (KC_P)); + mod_tap_key.press(); + idle_for(TAPPING_TERM); + VERIFY_AND_CLEAR(driver); + + // Release mod-tap-hold key. + EXPECT_EMPTY_REPORT(driver); + mod_tap_key.release(); + run_one_scan_loop(); + VERIFY_AND_CLEAR(driver); +} + +} // namespace diff --git a/tests/tap_hold_configurations/speculative_hold/default/config.h b/tests/tap_hold_configurations/speculative_hold/default/config.h index e4bcba13c1..9891296f42 100644 --- a/tests/tap_hold_configurations/speculative_hold/default/config.h +++ b/tests/tap_hold_configurations/speculative_hold/default/config.h @@ -20,4 +20,3 @@ #include "test_common.h" #define SPECULATIVE_HOLD -#define DUMMY_MOD_NEUTRALIZER_KEYCODE KC_F24 diff --git a/tests/tap_hold_configurations/speculative_hold/default/test.mk b/tests/tap_hold_configurations/speculative_hold/default/test.mk index c03d99f686..f5decaeb78 100644 --- a/tests/tap_hold_configurations/speculative_hold/default/test.mk +++ b/tests/tap_hold_configurations/speculative_hold/default/test.mk @@ -15,7 +15,6 @@ # along with this program. If not, see . KEY_OVERRIDE_ENABLE = yes -MAGIC_ENABLE = yes INTROSPECTION_KEYMAP_C = test_keymap.c diff --git a/tests/tap_hold_configurations/speculative_hold/default/test_tap_hold.cpp b/tests/tap_hold_configurations/speculative_hold/default/test_tap_hold.cpp index c92ed5a2d0..bfa022be11 100644 --- a/tests/tap_hold_configurations/speculative_hold/default/test_tap_hold.cpp +++ b/tests/tap_hold_configurations/speculative_hold/default/test_tap_hold.cpp @@ -27,28 +27,13 @@ using testing::InSequence; namespace { -// Gets the unpacked 8-bit mods corresponding to a given mod-tap keycode. -uint8_t unpack_mod_tap_mods(uint16_t keycode) { - const uint8_t mods5 = QK_MOD_TAP_GET_MODS(keycode); - return (mods5 & 0x10) != 0 ? (mods5 << 4) : mods5; -} - -bool get_speculative_hold_all_keys(uint16_t keycode, keyrecord_t *record) { - return true; // Enable Speculative Hold for all mod-tap keys. -} - bool process_record_user_default(uint16_t keycode, keyrecord_t *record) { return true; } -// Indirection so that get_speculative_hold() and process_record_user() can be +// Indirection so that process_record_user() can be // replaced with other functions in the test cases below. -std::function get_speculative_hold_fun = get_speculative_hold_all_keys; -std::function process_record_user_fun = process_record_user_default; - -extern "C" bool get_speculative_hold(uint16_t keycode, keyrecord_t *record) { - return get_speculative_hold_fun(keycode, record); -} +std::function process_record_user_fun = process_record_user_default; extern "C" bool process_record_user(uint16_t keycode, keyrecord_t *record) { return process_record_user_fun(keycode, record); @@ -57,11 +42,30 @@ extern "C" bool process_record_user(uint16_t keycode, keyrecord_t *record) { class SpeculativeHoldDefault : public TestFixture { public: void SetUp() override { - get_speculative_hold_fun = get_speculative_hold_all_keys; - process_record_user_fun = process_record_user_default; + process_record_user_fun = process_record_user_default; } }; +TEST_F(SpeculativeHoldDefault, get_speculative_hold) { + keyrecord_t record = {}; + + // With the default definition of get_speculative_hold(), Speculative Hold + // is enabled for Ctrl and Shift. + EXPECT_TRUE(get_speculative_hold(MT(MOD_LCTL, KC_NO), &record)); + EXPECT_TRUE(get_speculative_hold(MT(MOD_LSFT, KC_NO), &record)); + EXPECT_TRUE(get_speculative_hold(MT(MOD_LCTL | MOD_LSFT, KC_NO), &record)); + EXPECT_TRUE(get_speculative_hold(MT(MOD_RCTL, KC_NO), &record)); + EXPECT_TRUE(get_speculative_hold(MT(MOD_RSFT, KC_NO), &record)); + EXPECT_TRUE(get_speculative_hold(MT(MOD_RCTL | MOD_RSFT, KC_NO), &record)); + + EXPECT_FALSE(get_speculative_hold(MT(MOD_LALT, KC_NO), &record)); + EXPECT_FALSE(get_speculative_hold(MT(MOD_LGUI, KC_NO), &record)); + EXPECT_FALSE(get_speculative_hold(MT(MOD_RALT, KC_NO), &record)); + EXPECT_FALSE(get_speculative_hold(MT(MOD_RGUI, KC_NO), &record)); + EXPECT_FALSE(get_speculative_hold(MT(MOD_MEH, KC_NO), &record)); + EXPECT_FALSE(get_speculative_hold(MT(MOD_HYPR, KC_NO), &record)); +} + TEST_F(SpeculativeHoldDefault, tap_mod_tap) { TestDriver driver; InSequence s; @@ -103,232 +107,6 @@ TEST_F(SpeculativeHoldDefault, tap_mod_tap) { VERIFY_AND_CLEAR(driver); } -TEST_F(SpeculativeHoldDefault, tap_mod_tap_neutralized) { - TestDriver driver; - InSequence s; - auto mod_tap_key = KeymapKey(0, 1, 0, GUI_T(KC_P)); - - set_keymap({mod_tap_key}); - - // Press mod-tap-hold key. Mod is held speculatively. - EXPECT_REPORT(driver, (KC_LGUI)); - mod_tap_key.press(); - idle_for(10); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap-hold key. Speculative mod is neutralized and canceled. - EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); - EXPECT_REPORT(driver, (KC_LGUI)); - EXPECT_EMPTY_REPORT(driver); - EXPECT_REPORT(driver, (KC_P)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Idle for tapping term of mod tap hold key. - idle_for(TAPPING_TERM - 10); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(SpeculativeHoldDefault, hold_two_mod_taps) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, LCTL_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, RALT_T(KC_B)); - - set_keymap({mod_tap_key1, mod_tap_key2}); - - // Press first mod-tap key. - EXPECT_REPORT(driver, (KC_LCTL)); - mod_tap_key1.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - EXPECT_EQ(get_speculative_mods(), MOD_BIT_LCTRL); - - // Press second mod-tap key. - EXPECT_REPORT(driver, (KC_LCTL, KC_RALT)); - mod_tap_key2.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - EXPECT_EQ(get_speculative_mods(), MOD_BIT_LCTRL | MOD_BIT_RALT); - - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - EXPECT_EQ(get_speculative_mods(), 0); - EXPECT_EQ(get_mods(), MOD_BIT_LCTRL | MOD_BIT_RALT); - - // Release first mod-tap key. - EXPECT_REPORT(driver, (KC_RALT)); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release second mod-tap key. - EXPECT_EMPTY_REPORT(driver); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(SpeculativeHoldDefault, two_mod_taps_same_mods) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 1, 0, GUI_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 2, 0, GUI_T(KC_B)); - - set_keymap({mod_tap_key1, mod_tap_key2}); - - // Press first mod-tap key. - EXPECT_REPORT(driver, (KC_LGUI)); - mod_tap_key1.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Tap second mod-tap key. - EXPECT_NO_REPORT(driver); - mod_tap_key2.press(); - run_one_scan_loop(); - mod_tap_key2.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release first mod-tap key. - EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); - EXPECT_REPORT(driver, (KC_LGUI)); - EXPECT_EMPTY_REPORT(driver); - EXPECT_REPORT(driver, (KC_A)); - EXPECT_REPORT(driver, (KC_A, KC_B)); - EXPECT_REPORT(driver, (KC_A)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key1.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - -TEST_F(SpeculativeHoldDefault, respects_get_speculative_hold_callback) { - TestDriver driver; - InSequence s; - auto mod_tap_key1 = KeymapKey(0, 0, 0, LSFT_T(KC_A)); - auto mod_tap_key2 = KeymapKey(0, 1, 0, LSFT_T(KC_B)); - auto mod_tap_key3 = KeymapKey(0, 2, 0, LCTL_T(KC_C)); - auto mod_tap_key4 = KeymapKey(0, 3, 0, LCTL_T(KC_D)); - auto mod_tap_key5 = KeymapKey(0, 4, 0, RSFT_T(KC_E)); - auto mod_tap_key6 = KeymapKey(0, 5, 0, RSFT_T(KC_F)); - - set_keymap({mod_tap_key1, mod_tap_key2, mod_tap_key3, mod_tap_key4, mod_tap_key5, mod_tap_key6}); - - // Enable Speculative Hold selectively for some of the keys. - get_speculative_hold_fun = [](uint16_t keycode, keyrecord_t *record) { - switch (keycode) { - case LSFT_T(KC_B): - case LCTL_T(KC_D): - case RSFT_T(KC_F): - return true; - } - return false; - }; - - for (KeymapKey *mod_tap_key : {&mod_tap_key2, &mod_tap_key4, &mod_tap_key6}) { - SCOPED_TRACE(std::string("mod_tap_key = ") + mod_tap_key->name); - const uint8_t mods = unpack_mod_tap_mods(mod_tap_key->code); - - // Long press and release mod_tap_key. - // For these keys where Speculative Hold is enabled, then the mod should - // activate immediately on keydown. - EXPECT_REPORT(driver, (KC_LCTL + biton(mods))); - mod_tap_key->press(); - run_one_scan_loop(); - EXPECT_EQ(get_speculative_mods(), mods); - EXPECT_EQ(get_mods(), 0); - VERIFY_AND_CLEAR(driver); - - EXPECT_NO_REPORT(driver); - idle_for(TAPPING_TERM + 1); - EXPECT_EQ(get_speculative_mods(), 0); - EXPECT_EQ(get_mods(), mods); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key->release(); - idle_for(TAPPING_TERM + 1); - EXPECT_EQ(get_speculative_mods(), 0); - EXPECT_EQ(get_mods(), 0); - VERIFY_AND_CLEAR(driver); - } - - for (KeymapKey *mod_tap_key : {&mod_tap_key1, &mod_tap_key3, &mod_tap_key5}) { - SCOPED_TRACE(std::string("mod_tap_key = ") + mod_tap_key->name); - const uint8_t mods = unpack_mod_tap_mods(mod_tap_key->code); - - // Long press and release mod_tap_key. - // For these keys where Speculative Hold is disabled, the mod should - // activate when the key has settled after the tapping term. - EXPECT_NO_REPORT(driver); - mod_tap_key->press(); - run_one_scan_loop(); - EXPECT_EQ(get_speculative_mods(), 0); - EXPECT_EQ(get_mods(), 0); - VERIFY_AND_CLEAR(driver); - - EXPECT_REPORT(driver, (KC_LCTL + biton(mods))); - idle_for(TAPPING_TERM + 1); - EXPECT_EQ(get_speculative_mods(), 0); - EXPECT_EQ(get_mods(), mods); - VERIFY_AND_CLEAR(driver); - - EXPECT_EMPTY_REPORT(driver); - mod_tap_key->release(); - idle_for(TAPPING_TERM + 1); - EXPECT_EQ(get_speculative_mods(), 0); - EXPECT_EQ(get_mods(), 0); - VERIFY_AND_CLEAR(driver); - } -} - -TEST_F(SpeculativeHoldDefault, respects_magic_mod_config) { - TestDriver driver; - InSequence s; - auto mod_tap_key = KeymapKey(0, 1, 0, CTL_T(KC_P)); - - set_keymap({mod_tap_key}); - - keymap_config.swap_lctl_lgui = true; - - // Press mod-tap-hold key. - EXPECT_REPORT(driver, (KC_LGUI)); - mod_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap-hold key. - EXPECT_REPORT(driver, (KC_LGUI, DUMMY_MOD_NEUTRALIZER_KEYCODE)); - EXPECT_REPORT(driver, (KC_LGUI)); - EXPECT_EMPTY_REPORT(driver); - EXPECT_REPORT(driver, (KC_P)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - idle_for(TAPPING_TERM + 1); - VERIFY_AND_CLEAR(driver); - - keymap_config.swap_lctl_lgui = false; - - // Press mod-tap-hold key. - EXPECT_REPORT(driver, (KC_LCTL)); - mod_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release mod-tap-hold key. - EXPECT_EMPTY_REPORT(driver); - EXPECT_REPORT(driver, (KC_P)); - EXPECT_EMPTY_REPORT(driver); - mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - TEST_F(SpeculativeHoldDefault, key_overrides) { TestDriver driver; InSequence s; @@ -401,43 +179,6 @@ TEST_F(SpeculativeHoldDefault, tap_regular_key_while_mod_tap_key_is_held) { VERIFY_AND_CLEAR(driver); } -TEST_F(SpeculativeHoldDefault, tap_a_mod_tap_key_while_another_mod_tap_key_is_held) { - TestDriver driver; - InSequence s; - auto first_mod_tap_key = KeymapKey(0, 1, 0, SFT_T(KC_P)); - auto second_mod_tap_key = KeymapKey(0, 2, 0, RSFT_T(KC_A)); - - set_keymap({first_mod_tap_key, second_mod_tap_key}); - - // Press first mod-tap-hold key. - EXPECT_REPORT(driver, (KC_LSFT)); - first_mod_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Press second tap-hold key. - EXPECT_REPORT(driver, (KC_LSFT, KC_RSFT)); - second_mod_tap_key.press(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release second tap-hold key. - EXPECT_NO_REPORT(driver); - second_mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); - - // Release first mod-tap-hold key. - EXPECT_EMPTY_REPORT(driver); - EXPECT_REPORT(driver, (KC_P)); - EXPECT_REPORT(driver, (KC_P, KC_A)); - EXPECT_REPORT(driver, (KC_P)); - EXPECT_EMPTY_REPORT(driver); - first_mod_tap_key.release(); - run_one_scan_loop(); - VERIFY_AND_CLEAR(driver); -} - TEST_F(SpeculativeHoldDefault, tap_mod_tap_key_two_times) { TestDriver driver; InSequence s; From b321789d7b3e0207f9f5e103a8481a0d90ba2814 Mon Sep 17 00:00:00 2001 From: Julian Schuler <31921487+julianschuler@users.noreply.github.com> Date: Sun, 23 Nov 2025 12:25:59 +0100 Subject: [PATCH 113/255] Fix single key combos activating only once (#25198) Co-authored-by: Julian Schuler --- quantum/process_keycode/process_combo.c | 4 ++++ tests/combo/test_combo.cpp | 15 +++++++++++++++ tests/combo/test_combos.c | 6 ++++-- 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/quantum/process_keycode/process_combo.c b/quantum/process_keycode/process_combo.c index c99a66a74b..b02b7f5433 100644 --- a/quantum/process_keycode/process_combo.c +++ b/quantum/process_keycode/process_combo.c @@ -347,6 +347,10 @@ void apply_combo(uint16_t combo_index, combo_t *combo) { qrecord->combo_index = combo_index; ACTIVATE_COMBO(combo); + if (key_count == 1) { + release_combo(combo_index, combo); + } + break; } else { // key was part of the combo but not the last one, "disable" it diff --git a/tests/combo/test_combo.cpp b/tests/combo/test_combo.cpp index d78ec55990..cc6425a94c 100644 --- a/tests/combo/test_combo.cpp +++ b/tests/combo/test_combo.cpp @@ -54,3 +54,18 @@ TEST_F(Combo, combo_osmshift_tapped) { tap_key(key_i); VERIFY_AND_CLEAR(driver); } + +TEST_F(Combo, combo_single_key_twice) { + TestDriver driver; + KeymapKey key_a(0, 0, 1, KC_A); + set_keymap({key_a}); + + EXPECT_REPORT(driver, (KC_B)); + tap_combo({key_a}); + VERIFY_AND_CLEAR(driver); + + EXPECT_REPORT(driver, (KC_B)); + EXPECT_EMPTY_REPORT(driver); + tap_combo({key_a}); + VERIFY_AND_CLEAR(driver); +} diff --git a/tests/combo/test_combos.c b/tests/combo/test_combos.c index 8dcb364c6e..9a0465a9b4 100644 --- a/tests/combo/test_combos.c +++ b/tests/combo/test_combos.c @@ -4,14 +4,16 @@ // SPDX-License-Identifier: GPL-2.0-or-later #include "quantum.h" -enum combos { modtest, osmshift }; +enum combos { modtest, osmshift, single_key }; uint16_t const modtest_combo[] = {KC_Y, KC_U, COMBO_END}; uint16_t const osmshift_combo[] = {KC_Z, KC_X, COMBO_END}; +uint16_t const single_key_combo[] = {KC_A, COMBO_END}; // clang-format off combo_t key_combos[] = { [modtest] = COMBO(modtest_combo, RSFT_T(KC_SPACE)), - [osmshift] = COMBO(osmshift_combo, OSM(MOD_LSFT)) + [osmshift] = COMBO(osmshift_combo, OSM(MOD_LSFT)), + [single_key] = COMBO(single_key_combo, KC_B), }; // clang-format on From c7e17538eea98540dbee71de5d024db99f7786fe Mon Sep 17 00:00:00 2001 From: QMK Bot Date: Sun, 23 Nov 2025 22:28:34 +1100 Subject: [PATCH 114/255] [CI] Format code according to conventions (#25820) --- tests/combo/test_combos.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/combo/test_combos.c b/tests/combo/test_combos.c index 9a0465a9b4..a6f249833f 100644 --- a/tests/combo/test_combos.c +++ b/tests/combo/test_combos.c @@ -6,8 +6,8 @@ enum combos { modtest, osmshift, single_key }; -uint16_t const modtest_combo[] = {KC_Y, KC_U, COMBO_END}; -uint16_t const osmshift_combo[] = {KC_Z, KC_X, COMBO_END}; +uint16_t const modtest_combo[] = {KC_Y, KC_U, COMBO_END}; +uint16_t const osmshift_combo[] = {KC_Z, KC_X, COMBO_END}; uint16_t const single_key_combo[] = {KC_A, COMBO_END}; // clang-format off From 1a954e8da5dcbd81eeccb9d6ac41b6eda64d7b85 Mon Sep 17 00:00:00 2001 From: Stephen Ostermiller Date: Sun, 23 Nov 2025 06:32:36 -0500 Subject: [PATCH 115/255] Reduce tap dance memory usage, move state out of data (#25415) * Use less tap dance memory. Use dynamically allocated sparse array for tap dance state, dynamically allocate tap dance state when needed and free it when the tap dance is done. * new approach * Use null, check for null * Reformat with docker * Use uint8 with idx rather than uint16 with keycode in state * fix accidental change * reformat * Add null check * add documentation tip suggested by tzarc * Only allow tap dance state allocation on key down, not on key up Co-authored-by: Sergey Vlasov * Only allow tap dance allocation on key down, not on key up Co-authored-by: Sergey Vlasov * add user action required section --------- Co-authored-by: Sergey Vlasov --- docs/ChangeLog/20250831/pr25415.md | 47 ++++++++ docs/features/tap_dance.md | 12 +- quantum/process_keycode/process_tap_dance.c | 122 ++++++++++++++------ quantum/process_keycode/process_tap_dance.h | 11 +- tests/tap_dance/examples.c | 4 +- 5 files changed, 152 insertions(+), 44 deletions(-) create mode 100644 docs/ChangeLog/20250831/pr25415.md diff --git a/docs/ChangeLog/20250831/pr25415.md b/docs/ChangeLog/20250831/pr25415.md new file mode 100644 index 0000000000..54eb8c737e --- /dev/null +++ b/docs/ChangeLog/20250831/pr25415.md @@ -0,0 +1,47 @@ +# Tap dance state removed from `tap_dance_action_t` + +The tap dance state has been separated from the action structure. Custom tap dance functions now receive the state as a separate parameter instead of accessing it through `action->state`. + +## User Action Required + +If your keymap uses custom tap dance functions that access the tap dance state, you need to update your code. + + - You can't use `action->state`. Instead you need to call `tap_dance_state_t *tap_dance_get_state(uint8_t tap_dance_idx)` to get the state. + - You now get a pointer to the state, so use `->` notation rather than `.` notation to get fields from it. + +### Before: +```c +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + tap_dance_action_t *action; + + switch (keycode) { + case TD(CT_CLN): + action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(keycode)); + if (!record->event.pressed && action->state.count && !action->state.finished) { + tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; + tap_code16(tap_hold->tap); + } + + } + return true; +} +``` + +### After: +```c +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + tap_dance_action_t *action; + tap_dance_state_t* state; + + switch (keycode) { + case TD(CT_CLN): + action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(keycode)); + state = tap_dance_get_state(QK_TAP_DANCE_GET_INDEX(keycode)); + if (!record->event.pressed && state != NULL && state->count && !state->finished) { + tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; + tap_code16(tap_hold->tap); + } + } + return true; +} +``` diff --git a/docs/features/tap_dance.md b/docs/features/tap_dance.md index d533e41aaa..688241a16b 100644 --- a/docs/features/tap_dance.md +++ b/docs/features/tap_dance.md @@ -40,6 +40,10 @@ Similar to the first option, the second and third option are good for simple lay For more complicated cases, like blink the LEDs, fiddle with the backlighting, and so on, use the fourth or fifth option. Examples of each are listed below. +::: tip +If too many tap dances are active at the same time, later ones won't have any effect. You need to increase `TAP_DANCE_MAX_SIMULTANEOUS` by adding `#define TAP_DANCE_MAX_SIMULTANEOUS 5` (or higher) to your keymap's `config.h` file if you expect that users may hold down many tap dance keys simultaneously. By default, only 3 tap dance keys can be used together at the same time. +::: + ## Implementation Details {#implementation} Well, that's the bulk of it! You should now be able to work through the examples below, and to develop your own Tap Dance functionality. But if you want a deeper understanding of what's going on behind the scenes, then read on for the explanation of how it all works! @@ -209,11 +213,13 @@ tap_dance_action_t tap_dance_actions[] = { bool process_record_user(uint16_t keycode, keyrecord_t *record) { tap_dance_action_t *action; + tap_dance_state_t* state; switch (keycode) { - case TD(CT_CLN): // list all tap dance keycodes with tap-hold configurations - action = &tap_dance_actions[QK_TAP_DANCE_GET_INDEX(keycode)]; - if (!record->event.pressed && action->state.count && !action->state.finished) { + case TD(CT_CLN): + action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(keycode)); + state = tap_dance_get_state(QK_TAP_DANCE_GET_INDEX(keycode)); + if (!record->event.pressed && state != NULL && state->count && !state->finished) { tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; tap_code16(tap_hold->tap); } diff --git a/quantum/process_keycode/process_tap_dance.c b/quantum/process_keycode/process_tap_dance.c index 11df62763d..36a94d8d28 100644 --- a/quantum/process_keycode/process_tap_dance.c +++ b/quantum/process_keycode/process_tap_dance.c @@ -24,8 +24,46 @@ #include "keymap_introspection.h" static uint16_t active_td; + +#ifndef TAP_DANCE_MAX_SIMULTANEOUS +# define TAP_DANCE_MAX_SIMULTANEOUS 3 +#endif + +static tap_dance_state_t tap_dance_states[TAP_DANCE_MAX_SIMULTANEOUS]; + static uint16_t last_tap_time; +static tap_dance_state_t *tap_dance_get_or_allocate_state(uint8_t tap_dance_idx, bool allocate) { + uint8_t i; + if (tap_dance_idx >= tap_dance_count()) { + return NULL; + } + // Search for a state already used for this keycode + for (i = 0; i < TAP_DANCE_MAX_SIMULTANEOUS; i++) { + if (tap_dance_states[i].in_use && tap_dance_states[i].index == tap_dance_idx) { + return &tap_dance_states[i]; + } + } + // No existing state found; bail out if new state allocation is not allowed + if (!allocate) { + return NULL; + } + // Search for the first available state + for (i = 0; i < TAP_DANCE_MAX_SIMULTANEOUS; i++) { + if (!tap_dance_states[i].in_use) { + tap_dance_states[i].index = tap_dance_idx; + tap_dance_states[i].in_use = true; + return &tap_dance_states[i]; + } + } + // No states are available, tap dance won't happen + return NULL; +} + +tap_dance_state_t *tap_dance_get_state(uint8_t tap_dance_idx) { + return tap_dance_get_or_allocate_state(tap_dance_idx, false); +} + void tap_dance_pair_on_each_tap(tap_dance_state_t *state, void *user_data) { tap_dance_pair_t *pair = (tap_dance_pair_t *)user_data; @@ -86,58 +124,64 @@ static inline void _process_tap_dance_action_fn(tap_dance_state_t *state, void * } } -static inline void process_tap_dance_action_on_each_tap(tap_dance_action_t *action) { - action->state.count++; - action->state.weak_mods = get_mods(); - action->state.weak_mods |= get_weak_mods(); +static inline void process_tap_dance_action_on_each_tap(tap_dance_action_t *action, tap_dance_state_t *state) { + state->count++; + state->weak_mods = get_mods(); + state->weak_mods |= get_weak_mods(); #ifndef NO_ACTION_ONESHOT - action->state.oneshot_mods = get_oneshot_mods(); + state->oneshot_mods = get_oneshot_mods(); #endif - _process_tap_dance_action_fn(&action->state, action->user_data, action->fn.on_each_tap); + _process_tap_dance_action_fn(state, action->user_data, action->fn.on_each_tap); } -static inline void process_tap_dance_action_on_each_release(tap_dance_action_t *action) { - _process_tap_dance_action_fn(&action->state, action->user_data, action->fn.on_each_release); +static inline void process_tap_dance_action_on_each_release(tap_dance_action_t *action, tap_dance_state_t *state) { + _process_tap_dance_action_fn(state, action->user_data, action->fn.on_each_release); } -static inline void process_tap_dance_action_on_reset(tap_dance_action_t *action) { - _process_tap_dance_action_fn(&action->state, action->user_data, action->fn.on_reset); - del_weak_mods(action->state.weak_mods); +static inline void process_tap_dance_action_on_reset(tap_dance_action_t *action, tap_dance_state_t *state) { + _process_tap_dance_action_fn(state, action->user_data, action->fn.on_reset); + del_weak_mods(state->weak_mods); #ifndef NO_ACTION_ONESHOT - del_mods(action->state.oneshot_mods); + del_mods(state->oneshot_mods); #endif send_keyboard_report(); - action->state = (const tap_dance_state_t){0}; + // Clear the tap dance state and mark it as unused + memset(state, 0, sizeof(tap_dance_state_t)); } -static inline void process_tap_dance_action_on_dance_finished(tap_dance_action_t *action) { - if (!action->state.finished) { - action->state.finished = true; - add_weak_mods(action->state.weak_mods); +static inline void process_tap_dance_action_on_dance_finished(tap_dance_action_t *action, tap_dance_state_t *state) { + if (!state->finished) { + state->finished = true; + add_weak_mods(state->weak_mods); #ifndef NO_ACTION_ONESHOT - add_mods(action->state.oneshot_mods); + add_mods(state->oneshot_mods); #endif send_keyboard_report(); - _process_tap_dance_action_fn(&action->state, action->user_data, action->fn.on_dance_finished); + _process_tap_dance_action_fn(state, action->user_data, action->fn.on_dance_finished); } active_td = 0; - if (!action->state.pressed) { + if (!state->pressed) { // There will not be a key release event, so reset now. - process_tap_dance_action_on_reset(action); + process_tap_dance_action_on_reset(action, state); } } bool preprocess_tap_dance(uint16_t keycode, keyrecord_t *record) { tap_dance_action_t *action; + tap_dance_state_t * state; if (!record->event.pressed) return false; if (!active_td || keycode == active_td) return false; - action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(active_td)); - action->state.interrupted = true; - action->state.interrupting_keycode = keycode; - process_tap_dance_action_on_dance_finished(action); + action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(active_td)); + state = tap_dance_get_state(QK_TAP_DANCE_GET_INDEX(active_td)); + if (state == NULL) { + return false; + } + state->interrupted = true; + state->interrupting_keycode = keycode; + process_tap_dance_action_on_dance_finished(action, state); // Tap dance actions can leave some weak mods active (e.g., if the tap dance is mapped to a keycode with // modifiers), but these weak mods should not affect the keypress which interrupted the tap dance. @@ -151,8 +195,9 @@ bool preprocess_tap_dance(uint16_t keycode, keyrecord_t *record) { } bool process_tap_dance(uint16_t keycode, keyrecord_t *record) { - int td_index; + uint8_t td_index; tap_dance_action_t *action; + tap_dance_state_t * state; switch (keycode) { case QK_TAP_DANCE ... QK_TAP_DANCE_MAX: @@ -161,16 +206,19 @@ bool process_tap_dance(uint16_t keycode, keyrecord_t *record) { return false; } action = tap_dance_get(td_index); - - action->state.pressed = record->event.pressed; + state = tap_dance_get_or_allocate_state(td_index, record->event.pressed); + if (state == NULL) { + return false; + } + state->pressed = record->event.pressed; if (record->event.pressed) { last_tap_time = timer_read(); - process_tap_dance_action_on_each_tap(action); - active_td = action->state.finished ? 0 : keycode; + process_tap_dance_action_on_each_tap(action, state); + active_td = state->finished ? 0 : keycode; } else { - process_tap_dance_action_on_each_release(action); - if (action->state.finished) { - process_tap_dance_action_on_reset(action); + process_tap_dance_action_on_each_release(action, state); + if (state->finished) { + process_tap_dance_action_on_reset(action, state); if (active_td == keycode) { active_td = 0; } @@ -185,16 +233,18 @@ bool process_tap_dance(uint16_t keycode, keyrecord_t *record) { void tap_dance_task(void) { tap_dance_action_t *action; + tap_dance_state_t * state; if (!active_td || timer_elapsed(last_tap_time) <= GET_TAPPING_TERM(active_td, &(keyrecord_t){})) return; action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(active_td)); - if (!action->state.interrupted) { - process_tap_dance_action_on_dance_finished(action); + state = tap_dance_get_state(QK_TAP_DANCE_GET_INDEX(active_td)); + if (state != NULL && !state->interrupted) { + process_tap_dance_action_on_dance_finished(action, state); } } void reset_tap_dance(tap_dance_state_t *state) { active_td = 0; - process_tap_dance_action_on_reset((tap_dance_action_t *)state); + process_tap_dance_action_on_reset(tap_dance_get(state->index), state); } diff --git a/quantum/process_keycode/process_tap_dance.h b/quantum/process_keycode/process_tap_dance.h index 5cccbdf439..5a972cee5a 100644 --- a/quantum/process_keycode/process_tap_dance.h +++ b/quantum/process_keycode/process_tap_dance.h @@ -28,15 +28,16 @@ typedef struct { #ifndef NO_ACTION_ONESHOT uint8_t oneshot_mods; #endif - bool pressed : 1; - bool finished : 1; - bool interrupted : 1; + bool pressed : 1; + bool finished : 1; + bool interrupted : 1; + bool in_use : 1; + uint8_t index; } tap_dance_state_t; typedef void (*tap_dance_user_fn_t)(tap_dance_state_t *state, void *user_data); typedef struct tap_dance_action_t { - tap_dance_state_t state; struct { tap_dance_user_fn_t on_each_tap; tap_dance_user_fn_t on_dance_finished; @@ -80,6 +81,8 @@ typedef struct { void reset_tap_dance(tap_dance_state_t *state); +tap_dance_state_t *tap_dance_get_state(uint8_t tap_dance_idx); + /* To be used internally */ bool preprocess_tap_dance(uint16_t keycode, keyrecord_t *record); diff --git a/tests/tap_dance/examples.c b/tests/tap_dance/examples.c index 4b6bdb2090..6aaf008232 100644 --- a/tests/tap_dance/examples.c +++ b/tests/tap_dance/examples.c @@ -81,11 +81,13 @@ typedef struct { bool process_record_user(uint16_t keycode, keyrecord_t *record) { tap_dance_action_t *action; + tap_dance_state_t* state; switch (keycode) { case TD(CT_CLN): action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(keycode)); - if (!record->event.pressed && action->state.count && !action->state.finished) { + state = tap_dance_get_state(QK_TAP_DANCE_GET_INDEX(keycode)); + if (!record->event.pressed && state != NULL && state->count && !state->finished) { tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; tap_code16(tap_hold->tap); } From cc567c917b22b49046c9f61eb321c204045eef0d Mon Sep 17 00:00:00 2001 From: Nathan Sunday <61068696+PoctorDepper@users.noreply.github.com> Date: Mon, 24 Nov 2025 19:32:03 -0600 Subject: [PATCH 116/255] [Keyboard] Add Keenome Keys' "The Grid v2" (#25813) * Add 'the_grid_v2' to QMK * Per documentation, formatted keyboard.json and add license to keymap.c * Update keyboards/keenome_keys/the_grid_v2/keyboard.json Co-authored-by: Jack Sangdahl * Create readme.md for The Grid v2 keyboard Added detailed readme for The Grid v2 keyboard including setup and bootloader instructions. * Revise readme for The Grid v2 keyboard Updated readme with specific hardware details. --------- Co-authored-by: Jack Sangdahl --- .../keenome_keys/the_grid_v2/keyboard.json | 131 ++++++++++++++++++ .../the_grid_v2/keymaps/default/keymap.c | 13 ++ keyboards/keenome_keys/the_grid_v2/readme.md | 22 +++ 3 files changed, 166 insertions(+) create mode 100644 keyboards/keenome_keys/the_grid_v2/keyboard.json create mode 100644 keyboards/keenome_keys/the_grid_v2/keymaps/default/keymap.c create mode 100644 keyboards/keenome_keys/the_grid_v2/readme.md diff --git a/keyboards/keenome_keys/the_grid_v2/keyboard.json b/keyboards/keenome_keys/the_grid_v2/keyboard.json new file mode 100644 index 0000000000..69df3ea7f6 --- /dev/null +++ b/keyboards/keenome_keys/the_grid_v2/keyboard.json @@ -0,0 +1,131 @@ +{ + "manufacturer": "Keenome Keys", + "keyboard_name": "The Grid v2", + "maintainer": "Keenome Keys", + "bootloader": "rp2040", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "direct": [ + ["GP25", "GP24", "GP23", "GP22"], + ["GP21", "GP20", "GP19", "GP18"], + ["GP17", "GP16", "GP15", "GP14"], + ["GP13", "GP12", "GP11", "GP10"] + ] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "alpha_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, + "starlight_smooth": true, + "typing_heatmap": true + }, + "default": { + "animation": "cycle_spiral", + "speed": 32, + "val": 144 + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 75, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 149, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 224, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 224, "y": 21, "flags": 4}, + {"matrix": [1, 2], "x": 149, "y": 21, "flags": 4}, + {"matrix": [1, 1], "x": 75, "y": 21, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 21, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 43, "flags": 4}, + {"matrix": [2, 1], "x": 75, "y": 43, "flags": 4}, + {"matrix": [2, 2], "x": 149, "y": 43, "flags": 4}, + {"matrix": [2, 3], "x": 224, "y": 43, "flags": 4}, + {"matrix": [3, 3], "x": 224, "y": 64, "flags": 4}, + {"matrix": [3, 2], "x": 149, "y": 64, "flags": 4}, + {"matrix": [3, 1], "x": 75, "y": 64, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 64, "flags": 4} + ], + "sleep": true + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x6167" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP26" + }, + "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": [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/keenome_keys/the_grid_v2/keymaps/default/keymap.c b/keyboards/keenome_keys/the_grid_v2/keymaps/default/keymap.c new file mode 100644 index 0000000000..296c2af1f8 --- /dev/null +++ b/keyboards/keenome_keys/the_grid_v2/keymaps/default/keymap.c @@ -0,0 +1,13 @@ +// Copyright 2025 Nathan Sunday (@PoctorDepper) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_P7, KC_P8, KC_P9, KC_PSLS, + KC_P4, KC_P5, KC_P6, KC_PAST, + KC_P1, KC_P2, KC_P3, KC_PMNS, + KC_P0, KC_PDOT, KC_PENT, KC_PPLS + ) +}; diff --git a/keyboards/keenome_keys/the_grid_v2/readme.md b/keyboards/keenome_keys/the_grid_v2/readme.md new file mode 100644 index 0000000000..d7721c20d4 --- /dev/null +++ b/keyboards/keenome_keys/the_grid_v2/readme.md @@ -0,0 +1,22 @@ +# The Grid v2 + +* Keyboard Maintainer: [PoctorDepper](https://github.com/PoctorDepper) +* Hardware Supported: Custom PCB using RP2040 + +Make example for this keyboard (after setting up your build environment): + + make keenome_keys/the_grid_v2:default + +Flashing example for this keyboard: + + make keenome_keys/the_grid_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 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 5e1b1f50237ce78a78499fb8ab9810a0d651b921 Mon Sep 17 00:00:00 2001 From: andrew morton Date: Tue, 25 Nov 2025 03:07:01 -0700 Subject: [PATCH 117/255] Add support for Coffee Break Keyboards' Coffeevan (#25805) --- keyboards/cbkbd/coffeevan/keyboard.json | 193 ++++++++++++++++++ .../cbkbd/coffeevan/keymaps/default/keymap.c | 20 ++ keyboards/cbkbd/coffeevan/matrix_diagram.md | 18 ++ keyboards/cbkbd/coffeevan/readme.md | 27 +++ 4 files changed, 258 insertions(+) create mode 100644 keyboards/cbkbd/coffeevan/keyboard.json create mode 100644 keyboards/cbkbd/coffeevan/keymaps/default/keymap.c create mode 100644 keyboards/cbkbd/coffeevan/matrix_diagram.md create mode 100644 keyboards/cbkbd/coffeevan/readme.md diff --git a/keyboards/cbkbd/coffeevan/keyboard.json b/keyboards/cbkbd/coffeevan/keyboard.json new file mode 100644 index 0000000000..a1c96425c4 --- /dev/null +++ b/keyboards/cbkbd/coffeevan/keyboard.json @@ -0,0 +1,193 @@ +{ + "manufacturer": "CoffeeBreakKeyboards", + "keyboard_name": "Coffeevan", + "maintainer": "CoffeeBreakKeyboards", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "dynamic_keymap": { + "layer_count": 6 + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["GP13", "GP12", "GP11", "GP10", "GP24", "GP9", "GP8", "GP28", "GP4", "GP3", "GP2", "GP1"], + "rows": ["GP27", "GP26", "GP25", "GP14"] + }, + "processor": "RP2040", + "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": 20 + }, + "usb": { + "device_version": "1.0.1", + "pid": "0x4356", + "vid": "0x4342" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP16" + }, + "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, "w": 1.75}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1}, + {"matrix": [1, 3], "x": 3.25, "y": 1}, + {"matrix": [1, 4], "x": 4.25, "y": 1}, + {"matrix": [1, 5], "x": 5.25, "y": 1}, + {"matrix": [1, 6], "x": 6.25, "y": 1}, + {"matrix": [1, 7], "x": 7.25, "y": 1}, + {"matrix": [1, 8], "x": 8.25, "y": 1}, + {"matrix": [1, 9], "x": 9.25, "y": 1}, + {"matrix": [1, 10], "x": 10.25, "y": 1}, + {"matrix": [1, 11], "x": 11.25, "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": [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, 3], "x": 3.5, "y": 3, "w": 2.75}, + {"matrix": [3, 6], "x": 3.5, "y": 4, "w": 6.25}, + {"matrix": [3, 5], "x": 6.25, "y": 3, "w": 2.25}, + {"matrix": [3, 8], "x": 8.5, "y": 3, "w": 1.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3} + ] + }, + "LAYOUT_single_space": { + "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, "w": 1.75}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1}, + {"matrix": [1, 3], "x": 3.25, "y": 1}, + {"matrix": [1, 4], "x": 4.25, "y": 1}, + {"matrix": [1, 5], "x": 5.25, "y": 1}, + {"matrix": [1, 6], "x": 6.25, "y": 1}, + {"matrix": [1, 7], "x": 7.25, "y": 1}, + {"matrix": [1, 8], "x": 8.25, "y": 1}, + {"matrix": [1, 9], "x": 9.25, "y": 1}, + {"matrix": [1, 10], "x": 10.25, "y": 1}, + {"matrix": [1, 11], "x": 11.25, "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": [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.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3} + ] + }, + "LAYOUT_split_space": { + "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, "w": 1.75}, + {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.25}, + {"matrix": [1, 1], "x": 1.25, "y": 1}, + {"matrix": [1, 2], "x": 2.25, "y": 1}, + {"matrix": [1, 3], "x": 3.25, "y": 1}, + {"matrix": [1, 4], "x": 4.25, "y": 1}, + {"matrix": [1, 5], "x": 5.25, "y": 1}, + {"matrix": [1, 6], "x": 6.25, "y": 1}, + {"matrix": [1, 7], "x": 7.25, "y": 1}, + {"matrix": [1, 8], "x": 8.25, "y": 1}, + {"matrix": [1, 9], "x": 9.25, "y": 1}, + {"matrix": [1, 10], "x": 10.25, "y": 1}, + {"matrix": [1, 11], "x": 11.25, "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": [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, 3], "x": 3.5, "y": 3, "w": 2.75}, + {"matrix": [3, 5], "x": 6.25, "y": 3, "w": 2.25}, + {"matrix": [3, 8], "x": 8.5, "y": 3, "w": 1.25}, + {"matrix": [3, 9], "x": 9.75, "y": 3}, + {"matrix": [3, 10], "x": 10.75, "y": 3}, + {"matrix": [3, 11], "x": 11.75, "y": 3} + ] + } + } +} diff --git a/keyboards/cbkbd/coffeevan/keymaps/default/keymap.c b/keyboards/cbkbd/coffeevan/keymaps/default/keymap.c new file mode 100644 index 0000000000..5179fd930e --- /dev/null +++ b/keyboards/cbkbd/coffeevan/keymaps/default/keymap.c @@ -0,0 +1,20 @@ +// 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_all( + 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_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_SPC, KC_SPC, MO(1), KC_RALT, KC_RGUI, KC_RCTL + ), + + [1] = LAYOUT_all( + 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, 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 + ), +}; diff --git a/keyboards/cbkbd/coffeevan/matrix_diagram.md b/keyboards/cbkbd/coffeevan/matrix_diagram.md new file mode 100644 index 0000000000..91cd05e6ba --- /dev/null +++ b/keyboards/cbkbd/coffeevan/matrix_diagram.md @@ -0,0 +1,18 @@ +# Matrix Diagram for Coffeevan +``` +Minisub style split-space +┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬──────┐ +│00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │ +├───┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬─────┤ +│10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │ +├────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ +│20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │ +├────┬─┴─┬─┴──┬┴───┴───┴─┬─┴───┴──┬┴───┼───┼───┼───┤ +│30 │31 │32 │33 │35 │38 │39 │3A │3B │ +└────┴───┴────┴──────────┴────────┴────┴───┴───┴───┘ + +JetVan style 6.25u +┌────┬───┬────┬────────────────────────┬───┬───┬───┐ +│30 │31 │32 │36 │39 │3A │3B │ +└────┴───┴────┴────────────────────────┴───┴───┴───┘ +``` \ No newline at end of file diff --git a/keyboards/cbkbd/coffeevan/readme.md b/keyboards/cbkbd/coffeevan/readme.md new file mode 100644 index 0000000000..129a3bd430 --- /dev/null +++ b/keyboards/cbkbd/coffeevan/readme.md @@ -0,0 +1,27 @@ +# Coffeevan + +![Coffeevan](https://imgur.com/1VDxDmp.jpeg) + +Coffeevan is a drop-in replacement PCB for MiniVan cases. Coffeevan supports the Minisub split-space and JetVan 6.25u spacebar layout. + +* Keyboard Maintainer: [Coffee Break Keyboards](https://github.com/CoffeeBreakKeyboards) +* Hardware Supported: Coffeevan +* Hardware Availability: [Coffee Break Keyboards](https://www.cbkbd.com/product/minivan-kits) + +Make example for this keyboard (after setting up your build environment): + + make cbkbd/coffeevan:default + +Flashing example for this keyboard: + + make cbkbd/coffeevan:default:flash + +See the [build environment setup](getting_started_build_tools) and the [make instructions](getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](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 594558ec7b9ac1963870447778426682065e0d20 Mon Sep 17 00:00:00 2001 From: Danny Date: Tue, 25 Nov 2025 05:07:16 -0500 Subject: [PATCH 118/255] Add Demod LM Rev. 1 (#25793) --- keyboards/keebio/demod_lm/info.json | 8 ++ .../demod_lm/keymaps/default/keymap.json | 12 ++ keyboards/keebio/demod_lm/readme.md | 24 ++++ keyboards/keebio/demod_lm/rev1/config.h | 12 ++ keyboards/keebio/demod_lm/rev1/halconf.h | 8 ++ keyboards/keebio/demod_lm/rev1/keyboard.json | 117 ++++++++++++++++++ keyboards/keebio/demod_lm/rev1/mcuconf.h | 10 ++ keyboards/keebio/demod_lm/rev1/rev1.c | 11 ++ 8 files changed, 202 insertions(+) create mode 100644 keyboards/keebio/demod_lm/info.json create mode 100644 keyboards/keebio/demod_lm/keymaps/default/keymap.json create mode 100644 keyboards/keebio/demod_lm/readme.md create mode 100644 keyboards/keebio/demod_lm/rev1/config.h create mode 100644 keyboards/keebio/demod_lm/rev1/halconf.h create mode 100644 keyboards/keebio/demod_lm/rev1/keyboard.json create mode 100644 keyboards/keebio/demod_lm/rev1/mcuconf.h create mode 100644 keyboards/keebio/demod_lm/rev1/rev1.c diff --git a/keyboards/keebio/demod_lm/info.json b/keyboards/keebio/demod_lm/info.json new file mode 100644 index 0000000000..64fa5a05ca --- /dev/null +++ b/keyboards/keebio/demod_lm/info.json @@ -0,0 +1,8 @@ +{ + "manufacturer": "Keebio", + "maintainer": "Keebio", + "url": "https://keeb.io", + "usb": { + "vid": "0xCB10" + } +} diff --git a/keyboards/keebio/demod_lm/keymaps/default/keymap.json b/keyboards/keebio/demod_lm/keymaps/default/keymap.json new file mode 100644 index 0000000000..9115271b3d --- /dev/null +++ b/keyboards/keebio/demod_lm/keymaps/default/keymap.json @@ -0,0 +1,12 @@ +{ + "keyboard": "keebio/demod_lm/rev1", + "keymap": "default", + "layout": "LAYOUT_numpad_5x4", + "layers": [ + ["RM_NEXT", "KC_PSLS", "KC_PAST", "KC_PMNS", + "KC_P7", "KC_P8", "KC_P9", + "KC_P4", "KC_P5", "KC_P6", "KC_PPLS", + "KC_P1", "KC_P2", "KC_P3", + "KC_P0", "KC_PDOT", "KC_PENT" ] + ] +} diff --git a/keyboards/keebio/demod_lm/readme.md b/keyboards/keebio/demod_lm/readme.md new file mode 100644 index 0000000000..c9233d0961 --- /dev/null +++ b/keyboards/keebio/demod_lm/readme.md @@ -0,0 +1,24 @@ +# Demod LM + +A low-profile number pad and sold by Keebio. [More info at Keebio](https://keeb.io). + +* Keyboard Maintainer: [Bakingpy/nooges](https://github.com/nooges) +* Hardware Supported: Demod LM PCB with STM32G431 microcontroller +* Hardware Availability: [Keebio](https://keeb.io) + +Make example for this keyboard (after setting up your build environment): + + make keebio/demod_lm/rev1:default + +Example of flashing this keyboard: + + make keebio/demod_lm/rev1: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 one of two ways: + +* **Physical reset button**: Press and hold the button on the back of the PCB for at least 1 second and let go +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/keebio/demod_lm/rev1/config.h b/keyboards/keebio/demod_lm/rev1/config.h new file mode 100644 index 0000000000..fae0576081 --- /dev/null +++ b/keyboards/keebio/demod_lm/rev1/config.h @@ -0,0 +1,12 @@ +// Copyright 2025 Danny Nguyen (@nooges) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Defines for the RGB matrix */ +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_PWM_CHANNEL 3 +#define WS2812_PWM_PAL_MODE 2 +#define WS2812_DMA_STREAM STM32_DMA1_STREAM2 +#define WS2812_DMA_CHANNEL 2 +#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP diff --git a/keyboards/keebio/demod_lm/rev1/halconf.h b/keyboards/keebio/demod_lm/rev1/halconf.h new file mode 100644 index 0000000000..0249d61fea --- /dev/null +++ b/keyboards/keebio/demod_lm/rev1/halconf.h @@ -0,0 +1,8 @@ +// Copyright 2024 Danny Nguyen (@nooges) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/keebio/demod_lm/rev1/keyboard.json b/keyboards/keebio/demod_lm/rev1/keyboard.json new file mode 100644 index 0000000000..ac35998852 --- /dev/null +++ b/keyboards/keebio/demod_lm/rev1/keyboard.json @@ -0,0 +1,117 @@ +{ + "keyboard_name": "Demod LM Rev. 1", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["A1", "A0", "B3", "B6"], + "rows": ["A15", "F0", "B4", "B5", "F1"] + }, + "processor": "STM32G431", + "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_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 + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 88, "y": 0, "flags": 4}, + {"matrix": [0, 1], "x": 104, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 120, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 136, "y": 0, "flags": 4}, + {"matrix": [1, 3], "x": 136, "y": 24, "flags": 4}, + {"matrix": [1, 2], "x": 120, "y": 16, "flags": 4}, + {"matrix": [1, 1], "x": 104, "y": 16, "flags": 4}, + {"matrix": [1, 0], "x": 88, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 88, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 104, "y": 32, "flags": 4}, + {"matrix": [2, 2], "x": 120, "y": 32, "flags": 4}, + {"matrix": [3, 2], "x": 120, "y": 48, "flags": 4}, + {"matrix": [3, 1], "x": 104, "y": 48, "flags": 4}, + {"matrix": [3, 0], "x": 88, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 96, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 120, "y": 64, "flags": 4}, + {"matrix": [3, 3], "x": 136, "y": 56, "flags": 4} + ], + "max_brightness": 200, + "sleep": true + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x1654" + }, + "ws2812": { + "driver": "pwm", + "pin": "B0" + }, + "community_layouts": ["numpad_5x4"], + "layouts": { + "LAYOUT_numpad_5x4": { + "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": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 1], "x": 1, "y": 2}, + {"matrix": [2, 2], "x": 2, "y": 2}, + {"matrix": [1, 3], "x": 3, "y": 1, "h": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4, "w": 2}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [3, 3], "x": 3, "y": 3, "h": 2} + ] + } + } +} diff --git a/keyboards/keebio/demod_lm/rev1/mcuconf.h b/keyboards/keebio/demod_lm/rev1/mcuconf.h new file mode 100644 index 0000000000..a864dab31e --- /dev/null +++ b/keyboards/keebio/demod_lm/rev1/mcuconf.h @@ -0,0 +1,10 @@ +// Copyright 2024 Danny Nguyen (@nooges) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +/* enable TIM3, used for RGB LED PWM driver */ +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/keebio/demod_lm/rev1/rev1.c b/keyboards/keebio/demod_lm/rev1/rev1.c new file mode 100644 index 0000000000..7843a900a3 --- /dev/null +++ b/keyboards/keebio/demod_lm/rev1/rev1.c @@ -0,0 +1,11 @@ +// Copyright 2024 Danny Nguyen (@nooges) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +void keyboard_pre_init_kb(void) { + // Disable the PD peripheral in pre-init because its pins (B4, B6) are being used in the matrix: + PWR->CR3 |= PWR_CR3_UCPD_DBDIS; + // Call the corresponding _user() function (see https://docs.qmk.fm/#/custom_quantum_functions) + keyboard_pre_init_user(); +} From 9c2ca00074784dbee27b459d71cfc8e75f47b976 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Fri, 28 Nov 2025 00:36:49 +1100 Subject: [PATCH 119/255] QMK CLI Environment bootstrapper (#25038) Co-authored-by: Joel Challis Co-authored-by: Pascal Getreuer --- .github/workflows/bootstrap_testing.yml | 251 ++++++++++ docs/driver_installation_zadig.md | 2 +- docs/faq_build.md | 2 +- docs/newbs_getting_started.md | 74 +-- keyboards/handwired/dactyl/readme.md | 4 +- lib/python/qmk/cli/__init__.py | 24 + lib/python/qmk/cli/doctor/check.py | 74 ++- lib/python/qmk/cli/doctor/main.py | 69 ++- lib/python/qmk/flashers.py | 6 +- lib/python/qmk/info.py | 2 +- lib/python/qmk/keyboard.py | 6 +- lib/python/qmk/{math.py => math_ops.py} | 4 +- platforms/avr/flash.mk | 6 +- platforms/chibios/flash.mk | 6 +- util/env-bootstrap.sh | 594 ++++++++++++++++++++++++ 15 files changed, 1033 insertions(+), 91 deletions(-) create mode 100644 .github/workflows/bootstrap_testing.yml rename lib/python/qmk/{math.py => math_ops.py} (92%) create mode 100755 util/env-bootstrap.sh diff --git a/.github/workflows/bootstrap_testing.yml b/.github/workflows/bootstrap_testing.yml new file mode 100644 index 0000000000..997db3f0b2 --- /dev/null +++ b/.github/workflows/bootstrap_testing.yml @@ -0,0 +1,251 @@ +name: Bootstrap Script Testing + +on: + push: + branches: [bootstrap] + paths: + - "util/env-bootstrap.sh" + - ".github/workflows/bootstrap_testing.yml" + - "lib/python/**" + pull_request: + branches: [master, develop, xap] + paths: + - "util/env-bootstrap.sh" + - ".github/workflows/bootstrap_testing.yml" + - "lib/python/**" + workflow_dispatch: + +permissions: + contents: read + +jobs: + bootstrap-test-linux: + name: Bootstrap (Linux) + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + distribution: + # Ubuntu/Debian based + - debian:11 + - debian:12 + - debian:13 + - ubuntu:20.04 + - ubuntu:22.04 + - ubuntu:24.04 + + # RHEL/CentOS/Fedora based + - fedora:41 + - fedora:42 + - fedora:43 + - rockylinux:8 + - rockylinux:9 + - rockylinux/rockylinux:10 + - almalinux:8 + - almalinux:9 + - almalinux:10 + + # OpenSUSE based (we skip Tumbleweed as it has issues with package versions between pattern installs and other dependencies preinstalled into the base container) + - opensuse/leap:latest + + # Gentoo-based + - gentoo/stage3:latest + + # Arch based + - archlinux:latest + - cachyos/cachyos:latest + - manjarolinux/base:latest + + container: + image: ${{ matrix.distribution }} + options: --privileged + + steps: + - name: Install base dependencies + run: | + # Attempt to run the package installation up to 10 times to mitigate transient network issues + for n in $(seq 1 10); do + { + echo "Attempt #$n of 10 to install base dependencies:" + case "${{ matrix.distribution }}" in + *ubuntu*|*debian*) + apt-get update + apt-get install -y sudo git passwd + ;; + *fedora*|*rockylinux*|*almalinux*) + dnf install -y sudo git passwd findutils # findutils=xargs + ;; + *suse*) + zypper --non-interactive refresh + zypper --non-interactive install sudo git shadow findutils # findutils=xargs + ;; + *gentoo*) + emerge-webrsync + emerge --noreplace --ask=n sudo dev-vcs/git shadow findutils # findutils=xargs + ;; + *archlinux*|*cachyos*|*manjaro*) + pacman -Syu --noconfirm + pacman -S --noconfirm sudo git + ;; + esac + } && break || sleep 10 + done + + # Fix PAM configuration for sudo in containers + # Fix /etc/shadow permissions - common issue in container environments + chmod 640 /etc/shadow || chmod 400 /etc/shadow || true + + # Disable problematic PAM modules that commonly fail in RHEL-like containers + sed -i 's/^session.*pam_systemd.so/#&/' /etc/pam.d/sudo || true + sed -i 's/^session.*pam_loginuid.so/#&/' /etc/pam.d/sudo || true + + # Ensure proper sudoers configuration + echo 'Defaults !requiretty' >> /etc/sudoers + echo 'Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"' >> /etc/sudoers + + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 1 + submodules: recursive + path: qmk_firmware + + - name: Create test user + run: | + # Create a test user for the bootstrap script + useradd -m -s /bin/bash -U testuser + echo 'testuser:testpassword' | chpasswd || true + + # Configure passwordless sudo + echo "root ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers # some distros complain about root not being in sudoers + echo "testuser ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers + + # Test sudo functionality + sudo -u testuser whoami || echo "Sudo test failed, but continuing..." + + - name: Move QMK repository to test user home + run: | + # Add upstream remote to the cloned repository so `qmk doctor` doesn't flag a warning + git -C qmk_firmware remote add upstream https://github.com/qmk/qmk_firmware.git + # Move the QMK repository to the test user's home directory + mv qmk_firmware /home/testuser/qmk_firmware + chown -R testuser:testuser /home/testuser/qmk_firmware + + - name: Run bootstrap script + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + # Ensure the bootstrap script can access sudo + sudo -u testuser --preserve-env=GITHUB_TOKEN bash -c " + export CONFIRM=1 + export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin + cd /home/testuser + bash /home/testuser/qmk_firmware/util/env-bootstrap.sh + " + + - name: Test QMK CLI + run: | + sudo -u testuser bash -c " + export PATH=/home/testuser/.local/bin:\$PATH + cd /home/testuser + qmk setup -y -H /home/testuser/qmk_firmware # setup implies doctor, no need to run it separately + cd /home/testuser/qmk_firmware + qmk mass-compile -j $(nproc) -e DUMP_CI_METADATA=yes -f 'keyboard_name==*onekey*' -km reset -p || touch .failed # Compile a bunch of different platforms + " + + cd /home/testuser/qmk_firmware + ./util/ci/generate_failure_markdown.sh > $GITHUB_STEP_SUMMARY || true + [ ! -e .failed ] || exit 1 + + bootstrap-test-macos: + name: Bootstrap (macOS) + strategy: + fail-fast: false + matrix: + os: + - macos-13 # Intel x64 + - macos-14 # Apple Silicon ARM64 + - macos-15 # Apple Silicon ARM64 + - macos-15-intel # Intel x64 + - macos-26 # Apple Silicon ARM64 + + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 1 + submodules: recursive + + - name: Run bootstrap script + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + # Add upstream remote to the cloned repository so `qmk doctor` doesn't flag a warning + git remote add upstream https://github.com/qmk/qmk_firmware.git + # Run the bootstrap script + export CONFIRM=1 + sh ./util/env-bootstrap.sh + + - name: Test QMK CLI + run: | + # Add QMK CLI to PATH (bootstrap script installs it to ~/.local/bin on macOS) + export PATH="$HOME/.local/bin:$PATH" + qmk setup -y -H . # setup implies doctor, no need to run it separately + qmk mass-compile -j $(sysctl -n hw.ncpu) -e DUMP_CI_METADATA=yes -f 'keyboard_name==*onekey*' -km reset || touch .failed # Compile a bunch of different platforms + + ./util/ci/generate_failure_markdown.sh > $GITHUB_STEP_SUMMARY || true + [ ! -e .failed ] || exit 1 + + bootstrap-test-windows: + name: Bootstrap (Windows) + + strategy: + fail-fast: false + matrix: + msys-variant: + - mingw64 + - clang64 + - ucrt64 + + runs-on: windows-latest + defaults: + run: + shell: msys2 {0} + + steps: + - name: Install MSYS2 + uses: msys2/setup-msys2@v2 + with: + msystem: ${{ matrix.msys-variant }} + pacboy: >- + git: + + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 1 + submodules: recursive + + - name: Run bootstrap script + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + # Add upstream remote to the cloned repository so `qmk doctor` doesn't flag a warning + git remote add upstream https://github.com/qmk/qmk_firmware.git + # Run the bootstrap script + export CONFIRM=1 + sh ./util/env-bootstrap.sh + + - name: Test QMK CLI + run: | + # Add QMK CLI to PATH (bootstrap script installs it to /opt/uv/tools/bin on Windows MSYS2) + export PATH="/opt/uv/tools/bin:$PATH" + qmk setup -y -H . # setup implies doctor, no need to run it separately + qmk mass-compile -j $(nproc) -e DUMP_CI_METADATA=yes -f 'keyboard_name==*onekey*' -km reset || touch .failed # Compile a bunch of different platforms + + ./util/ci/generate_failure_markdown.sh > $GITHUB_STEP_SUMMARY || true + [ ! -e .failed ] || exit 1 + diff --git a/docs/driver_installation_zadig.md b/docs/driver_installation_zadig.md index 6fbcfa3bff..13b445b9b6 100644 --- a/docs/driver_installation_zadig.md +++ b/docs/driver_installation_zadig.md @@ -4,7 +4,7 @@ QMK presents itself to the host as a regular HID keyboard device, and as such re There are two notable exceptions: the Caterina bootloader, usually seen on Pro Micros, and the HalfKay bootloader shipped with PJRC Teensys, appear as a serial port and a generic HID device respectively, and so do not require a driver. -We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have set up the development environment with MSYS2, the `qmk_install.sh` script will have already installed the drivers for you. +We recommend the use of the [Zadig](https://zadig.akeo.ie/) utility. If you have set up the development environment with MSYS2, the QMK CLI installation script will have already installed the drivers for you. ## Installation diff --git a/docs/faq_build.md b/docs/faq_build.md index 54ed576c70..05cb3251c8 100644 --- a/docs/faq_build.md +++ b/docs/faq_build.md @@ -44,7 +44,7 @@ Pro Micro (Atmega32u4), make sure to include `CONFIG_USB_ACM=y`. Other devices m Issues encountered when flashing keyboards on Windows are most often due to having the wrong drivers installed for the bootloader, or none at all. -Re-running the QMK installation script (`./util/qmk_install.sh` from the `qmk_firmware` directory in MSYS2 or WSL) or reinstalling the QMK Toolbox may fix the issue. Alternatively, you can download and run the [`qmk_driver_installer`](https://github.com/qmk/qmk_driver_installer) package manually. +Re-running the QMK installation script (`curl -fsSL https://install.qmk.fm | sh`) or reinstalling the QMK Toolbox may fix the issue. Alternatively, you can download and run the [`qmk_driver_installer`](https://github.com/qmk/qmk_driver_installer) package manually. If that doesn't work, then you may need to download and run Zadig. See [Bootloader Driver Installation with Zadig](driver_installation_zadig) for more detailed information. diff --git a/docs/newbs_getting_started.md b/docs/newbs_getting_started.md index 1d2b60781b..1bc658b9b1 100644 --- a/docs/newbs_getting_started.md +++ b/docs/newbs_getting_started.md @@ -50,90 +50,64 @@ You will need to install [MSYS2](https://www.msys2.org). Once installed, close a Install the QMK CLI by running: ```sh -pacman --needed --noconfirm --disable-download-timeout -S git mingw-w64-x86_64-python-qmk +curl -fsSL https://install.qmk.fm | sh ``` :::: ==== macOS -QMK maintains a Homebrew tap and formula which will automatically install the CLI and all necessary dependencies. - #### Prerequisites You will need to install Homebrew. Follow the instructions on https://brew.sh. -::: tip -If you are using an Apple Silicon machine, the installation process will take significantly longer because GitHub actions do not have native runners to build binary packages for the ARM and AVR toolchains. -::: - #### Installation Install the QMK CLI by running: ```sh -brew install qmk/qmk/qmk +curl -fsSL https://install.qmk.fm | sh ``` ==== Linux/WSL +#### Installation + +::: info +Many Linux distributions are supported, but not all. Mainstream distributions will have best success -- if possible, choose either Debian or its derivatives (such as Ubuntu, or Mint), CentOS or its derivatives (such as Fedora, or Rocky Linux), and Arch or its derivatives (such as Manjaro, or CachyOS). +::: + +Install the QMK CLI by running: + +```sh +curl -fsSL https://install.qmk.fm | sh +``` + ::: tip **Note for WSL users**: By default, the installation process will clone the QMK repository into your WSL home directory, but if you have cloned manually, ensure that it is located inside the WSL instance instead of the Windows filesystem (ie. not in `/mnt`), as accessing it is currently [extremely slow](https://github.com/microsoft/WSL/issues/4197). ::: -#### Prerequisites - -You will need to install Git and Python. It's very likely that you already have both, but if not, one of the following commands should install them: - -* Debian / Ubuntu / Devuan: `sudo apt install -y git python3-pip` -* Fedora / Red Hat / CentOS: `sudo yum -y install git python3-pip` -* Arch / Manjaro: `sudo pacman --needed --noconfirm -S git python-pip libffi` -* Void: `sudo xbps-install -y git python3-pip` -* Solus: `sudo eopkg -y install git python3` -* Sabayon: `sudo equo install dev-vcs/git dev-python/pip` -* Gentoo: `sudo emerge dev-vcs/git dev-python/pip` - -#### Installation - -Install the QMK CLI by running: - -```sh -python3 -m pip install --user qmk -``` - -Alternatively, install the QMK CLI as a [uv](https://docs.astral.sh/uv/) managed tool, kept isolated in a virtual environment (requires uv to be installed): - -```sh -uv tool install qmk -``` - -#### Community Packages - -These packages are maintained by community members, so may not be up to date or completely functional. If you encounter problems, please report them to their respective maintainers. - -On Arch-based distros you can install the CLI from the official repositories (NOTE: at the time of writing this package marks some dependencies as optional that should not be): - -```sh -sudo pacman -S qmk -``` - -You can also try the `qmk-git` package from AUR: - -```sh -yay -S qmk-git -``` +::: warning +Any QMK packages provided by your distribution's package manager are almost certainly out of date. It is strongly suggested the installation script above is used instead. +::: ==== FreeBSD #### Installation +::: warning +FreeBSD support is provided on a best-effort basis by the community instead of the QMK maintainers. It is strongly suggested that you use either Windows, macOS, or a supported distribution of Linux instead. +::: + Install the FreeBSD package for QMK CLI by running: ```sh pkg install -g "py*-qmk" ``` -NOTE: remember to follow the instructions printed at the end of installation (use `pkg info -Dg "py*-qmk"` to show them again). +::: info NOTE +Remember to follow the instructions printed at the end of installation (use `pkg info -Dg "py*-qmk"` to show them again). +::: ::::: diff --git a/keyboards/handwired/dactyl/readme.md b/keyboards/handwired/dactyl/readme.md index e99df7f5a2..608a1b7fe3 100644 --- a/keyboards/handwired/dactyl/readme.md +++ b/keyboards/handwired/dactyl/readme.md @@ -6,7 +6,7 @@ The Dactyl uses the [Teensy Loader](https://www.pjrc.com/teensy/loader.html). Linux users need to modify udev rules as described on the [Teensy Linux page]. Some distributions provide a binary, maybe called -`teensy-loader-cli`. +`teensy_loader_cli`. [Teensy Linux page]: https://www.pjrc.com/teensy/loader_linux.html @@ -26,7 +26,7 @@ To flash the firmware: - Click the button in the Teensy app to download the firmware. -To flash with ´teensy-loader-cli´: +To flash with ´teensy_loader_cli´: - Build the firmware as above diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index 26905ec134..dc2e4726a5 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py @@ -3,6 +3,8 @@ We list each subcommand here explicitly because all the reliable ways of searching for modules are slow and delay startup. """ import os +import platform +import platformdirs import shlex import sys from importlib.util import find_spec @@ -12,6 +14,28 @@ from subprocess import run from milc import cli, __VERSION__ from milc.questions import yesno + +def _get_default_distrib_path(): + if 'windows' in platform.platform().lower(): + try: + result = cli.run(['cygpath', '-w', '/opt/qmk']) + if result.returncode == 0: + return result.stdout.strip() + except Exception: + pass + + return platformdirs.user_data_dir('qmk') + + +# Ensure the QMK distribution is on the `$PATH` if present. This must be kept in sync with qmk/qmk_cli. +QMK_DISTRIB_DIR = Path(os.environ.get('QMK_DISTRIB_DIR', _get_default_distrib_path())) +if QMK_DISTRIB_DIR.exists(): + os.environ['PATH'] = str(QMK_DISTRIB_DIR / 'bin') + os.pathsep + os.environ['PATH'] + +# Prepend any user-defined path prefix +if 'QMK_PATH_PREFIX' in os.environ: + os.environ['PATH'] = os.environ['QMK_PATH_PREFIX'] + os.pathsep + os.environ['PATH'] + import_names = { # A mapping of package name to importable name 'pep8-naming': 'pep8ext_naming', diff --git a/lib/python/qmk/cli/doctor/check.py b/lib/python/qmk/cli/doctor/check.py index 51b0f0c80a..8a13cb0832 100644 --- a/lib/python/qmk/cli/doctor/check.py +++ b/lib/python/qmk/cli/doctor/check.py @@ -1,7 +1,6 @@ """Check for specific programs. """ from enum import Enum -import re import shutil from subprocess import DEVNULL, TimeoutExpired from tempfile import TemporaryDirectory @@ -9,6 +8,7 @@ from pathlib import Path from milc import cli from qmk import submodules +from qmk.commands import find_make class CheckStatus(Enum): @@ -17,7 +17,13 @@ class CheckStatus(Enum): ERROR = 3 +WHICH_MAKE = Path(find_make()).name + ESSENTIAL_BINARIES = { + WHICH_MAKE: {}, + 'git': {}, + 'dos2unix': {}, + 'diff': {}, 'dfu-programmer': {}, 'avrdude': {}, 'dfu-util': {}, @@ -30,14 +36,39 @@ ESSENTIAL_BINARIES = { } -def _parse_gcc_version(version): - m = re.match(r"(\d+)(?:\.(\d+))?(?:\.(\d+))?", version) +def _check_make_version(): + last_line = ESSENTIAL_BINARIES[WHICH_MAKE]['output'].split('\n')[0] + version_number = last_line.split()[2] + cli.log.info('Found %s version %s', WHICH_MAKE, version_number) - return { - 'major': int(m.group(1)), - 'minor': int(m.group(2)) if m.group(2) else 0, - 'patch': int(m.group(3)) if m.group(3) else 0, - } + return CheckStatus.OK + + +def _check_git_version(): + last_line = ESSENTIAL_BINARIES['git']['output'].split('\n')[0] + version_number = last_line.split()[2] + cli.log.info('Found git version %s', version_number) + + return CheckStatus.OK + + +def _check_dos2unix_version(): + last_line = ESSENTIAL_BINARIES['dos2unix']['output'].split('\n')[0] + version_number = last_line.split()[1] + cli.log.info('Found dos2unix version %s', version_number) + + return CheckStatus.OK + + +def _check_diff_version(): + last_line = ESSENTIAL_BINARIES['diff']['output'].split('\n')[0] + if 'Apple diff' in last_line: + version_number = last_line + else: + version_number = last_line.split()[3] + cli.log.info('Found diff version %s', version_number) + + return CheckStatus.OK def _check_arm_gcc_version(): @@ -148,16 +179,24 @@ def check_binaries(): """Iterates through ESSENTIAL_BINARIES and tests them. """ ok = CheckStatus.OK + missing_from_path = [] for binary in sorted(ESSENTIAL_BINARIES): try: - if not is_executable(binary): + if not is_in_path(binary): + ok = CheckStatus.ERROR + missing_from_path.append(binary) + elif not is_executable(binary): ok = CheckStatus.ERROR except TimeoutExpired: cli.log.debug('Timeout checking %s', binary) if ok != CheckStatus.ERROR: ok = CheckStatus.WARNING + if missing_from_path: + location_noun = 'its location' if len(missing_from_path) == 1 else 'their locations' + cli.log.error('{fg_red}' + ', '.join(missing_from_path) + f' may need to be installed, or {location_noun} added to your path.') + return ok @@ -165,6 +204,10 @@ def check_binary_versions(): """Check the versions of ESSENTIAL_BINARIES """ checks = { + WHICH_MAKE: _check_make_version, + 'git': _check_git_version, + 'dos2unix': _check_dos2unix_version, + 'diff': _check_diff_version, 'arm-none-eabi-gcc': _check_arm_gcc_version, 'avr-gcc': _check_avr_gcc_version, 'avrdude': _check_avrdude_version, @@ -196,15 +239,18 @@ def check_submodules(): return CheckStatus.OK -def is_executable(command): - """Returns True if command exists and can be executed. +def is_in_path(command): + """Returns True if command is found in the path. """ - # Make sure the command is in the path. - res = shutil.which(command) - if res is None: + if shutil.which(command) is None: cli.log.error("{fg_red}Can't find %s in your path.", command) return False + return True + +def is_executable(command): + """Returns True if command can be executed. + """ # Make sure the command can be executed version_arg = ESSENTIAL_BINARIES[command].get('version_arg', '--version') check = cli.run([command, version_arg], combined_output=True, stdin=DEVNULL, timeout=5) diff --git a/lib/python/qmk/cli/doctor/main.py b/lib/python/qmk/cli/doctor/main.py index 391353ebbf..45667e8ce2 100755 --- a/lib/python/qmk/cli/doctor/main.py +++ b/lib/python/qmk/cli/doctor/main.py @@ -3,7 +3,6 @@ Check out the user's QMK environment and make sure it's ready to compile. """ import platform -from subprocess import DEVNULL from milc import cli from milc.questions import yesno @@ -16,6 +15,60 @@ from qmk.commands import in_virtualenv from qmk.userspace import qmk_userspace_paths, qmk_userspace_validate, UserspaceValidationError +def distrib_tests(): + def _load_kvp_file(file): + """Load a simple key=value file into a dictionary + """ + vars = {} + with open(file, 'r') as f: + for line in f: + if '=' in line: + key, value = line.split('=', 1) + vars[key.strip()] = value.strip() + return vars + + def _parse_toolchain_release_file(file): + """Parse the QMK toolchain release info file + """ + try: + vars = _load_kvp_file(file) + return f'{vars.get("TOOLCHAIN_HOST", "unknown")}:{vars.get("TOOLCHAIN_TARGET", "unknown")}:{vars.get("COMMIT_HASH", "unknown")}' + except Exception as e: + cli.log.warning('Error reading QMK toolchain release info file: %s', e) + return f'Unknown toolchain release info file: {file}' + + def _parse_flashutils_release_file(file): + """Parse the QMK flashutils release info file + """ + try: + vars = _load_kvp_file(file) + return f'{vars.get("FLASHUTILS_HOST", "unknown")}:{vars.get("COMMIT_HASH", "unknown")}' + except Exception as e: + cli.log.warning('Error reading QMK flashutils release info file: %s', e) + return f'Unknown flashutils release info file: {file}' + + try: + from qmk.cli import QMK_DISTRIB_DIR + if (QMK_DISTRIB_DIR / 'etc').exists(): + cli.log.info('Found QMK tools distribution directory: {fg_cyan}%s', QMK_DISTRIB_DIR) + + toolchains = [_parse_toolchain_release_file(file) for file in (QMK_DISTRIB_DIR / 'etc').glob('toolchain_release_*')] + if len(toolchains) > 0: + cli.log.info('Found QMK toolchains: {fg_cyan}%s', ', '.join(toolchains)) + else: + cli.log.warning('No QMK toolchains manifest found.') + + flashutils = [_parse_flashutils_release_file(file) for file in (QMK_DISTRIB_DIR / 'etc').glob('flashutils_release_*')] + if len(flashutils) > 0: + cli.log.info('Found QMK flashutils: {fg_cyan}%s', ', '.join(flashutils)) + else: + cli.log.warning('No QMK flashutils manifest found.') + except ImportError: + cli.log.info('QMK tools distribution not found.') + + return CheckStatus.OK + + def os_tests(): """Determine our OS and run platform specific tests """ @@ -124,10 +177,12 @@ def doctor(cli): * [ ] Compile a trivial program with each compiler """ cli.log.info('QMK Doctor is checking your environment.') + cli.log.info('Python version: %s', platform.python_version()) cli.log.info('CLI version: %s', cli.version) cli.log.info('QMK home: {fg_cyan}%s', QMK_FIRMWARE) status = os_status = os_tests() + distrib_tests() userspace_tests(None) @@ -141,12 +196,6 @@ def doctor(cli): # Make sure the basic CLI tools we need are available and can be executed. bin_ok = check_binaries() - - if bin_ok == CheckStatus.ERROR: - if yesno('Would you like to install dependencies?', default=True): - cli.run(['util/qmk_install.sh', '-y'], stdin=DEVNULL, capture_output=False) - bin_ok = check_binaries() - if bin_ok == CheckStatus.OK: cli.log.info('All dependencies are installed.') elif bin_ok == CheckStatus.WARNING: @@ -163,7 +212,6 @@ def doctor(cli): # Check out the QMK submodules sub_ok = check_submodules() - if sub_ok == CheckStatus.OK: cli.log.info('Submodules are up to date.') else: @@ -186,6 +234,7 @@ def doctor(cli): cli.log.info('{fg_yellow}QMK is ready to go, but minor problems were found') return 1 else: - cli.log.info('{fg_red}Major problems detected, please fix these problems before proceeding.') - cli.log.info('{fg_blue}Check out the FAQ (https://docs.qmk.fm/#/faq_build) or join the QMK Discord (https://discord.gg/qmk) for help.') + cli.log.info('{fg_red}Major problems detected, please fix these problems before proceeding.{fg_reset}') + cli.log.info('{fg_blue}If you\'re missing dependencies, try following the instructions on: https://docs.qmk.fm/newbs_getting_started{fg_reset}') + cli.log.info('{fg_blue}Additionally, check out the FAQ (https://docs.qmk.fm/#/faq_build) or join the QMK Discord (https://discord.gg/qmk) for help.{fg_reset}') return 2 diff --git a/lib/python/qmk/flashers.py b/lib/python/qmk/flashers.py index b70b5fb035..6b52f4d35a 100644 --- a/lib/python/qmk/flashers.py +++ b/lib/python/qmk/flashers.py @@ -155,10 +155,10 @@ def _flash_atmel_dfu(mcu, file): def _flash_hid_bootloader(mcu, details, file): cmd = None if details == 'halfkay': - if shutil.which('teensy-loader-cli'): - cmd = 'teensy-loader-cli' - elif shutil.which('teensy_loader_cli'): + if shutil.which('teensy_loader_cli'): cmd = 'teensy_loader_cli' + elif shutil.which('teensy-loader-cli'): + cmd = 'teensy-loader-cli' # Use 'hid_bootloader_cli' for QMK HID and as a fallback for HalfKay if not cmd: diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index f63228b2bc..e8aad760de 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -14,7 +14,7 @@ from qmk.json_schema import deep_update, json_load, validate from qmk.keyboard import config_h, rules_mk from qmk.commands import parse_configurator_json from qmk.makefile import parse_rules_mk_file -from qmk.math import compute +from qmk.math_ops import compute from qmk.util import maybe_exit, truthy true_values = ['1', 'on', 'yes'] diff --git a/lib/python/qmk/keyboard.py b/lib/python/qmk/keyboard.py index 254dc62309..e8534492c9 100644 --- a/lib/python/qmk/keyboard.py +++ b/lib/python/qmk/keyboard.py @@ -175,8 +175,9 @@ def keyboard_completer(prefix, action, parser, parsed_args): return list_keyboards() +@lru_cache(maxsize=None) def list_keyboards(): - """Returns a list of all keyboards + """Returns a list of all keyboards. """ # We avoid pathlib here because this is performance critical code. kb_wildcard = os.path.join(base_path, "**", 'keyboard.json') @@ -184,6 +185,9 @@ def list_keyboards(): found = map(_find_name, paths) + # Convert to posix paths for consistency + found = map(lambda x: str(Path(x).as_posix()), found) + return sorted(set(found)) diff --git a/lib/python/qmk/math.py b/lib/python/qmk/math_ops.py similarity index 92% rename from lib/python/qmk/math.py rename to lib/python/qmk/math_ops.py index 88dc4a300c..1f14b18f4e 100644 --- a/lib/python/qmk/math.py +++ b/lib/python/qmk/math_ops.py @@ -23,8 +23,8 @@ def compute(expr): def _eval(node): - if isinstance(node, ast.Num): # - return node.n + if isinstance(node, ast.Constant): # + return node.value elif isinstance(node, ast.BinOp): # return operators[type(node.op)](_eval(node.left), _eval(node.right)) elif isinstance(node, ast.UnaryOp): # e.g., -1 diff --git a/platforms/avr/flash.mk b/platforms/avr/flash.mk index 51731f0aa8..bfb292224c 100644 --- a/platforms/avr/flash.mk +++ b/platforms/avr/flash.mk @@ -5,10 +5,10 @@ # Autodetect teensy loader ifndef TEENSY_LOADER_CLI - ifneq (, $(shell which teensy-loader-cli 2>/dev/null)) - TEENSY_LOADER_CLI ?= teensy-loader-cli - else + ifneq (, $(shell which teensy_loader_cli 2>/dev/null)) TEENSY_LOADER_CLI ?= teensy_loader_cli + else + TEENSY_LOADER_CLI ?= teensy-loader-cli endif endif diff --git a/platforms/chibios/flash.mk b/platforms/chibios/flash.mk index f4db17a58b..0734754834 100644 --- a/platforms/chibios/flash.mk +++ b/platforms/chibios/flash.mk @@ -77,10 +77,10 @@ st-flash: $(BUILD_DIR)/$(TARGET).hex sizeafter # Autodetect teensy loader ifndef TEENSY_LOADER_CLI - ifneq (, $(shell which teensy-loader-cli 2>/dev/null)) - TEENSY_LOADER_CLI ?= teensy-loader-cli - else + ifneq (, $(shell which teensy_loader_cli 2>/dev/null)) TEENSY_LOADER_CLI ?= teensy_loader_cli + else + TEENSY_LOADER_CLI ?= teensy-loader-cli endif endif diff --git a/util/env-bootstrap.sh b/util/env-bootstrap.sh new file mode 100755 index 0000000000..6b0497ffae --- /dev/null +++ b/util/env-bootstrap.sh @@ -0,0 +1,594 @@ +#!/usr/bin/env sh +# Copyright 2025 Nick Brassel (@tzarc) +# SPDX-License-Identifier: GPL-2.0-or-later + +################################################################################ +# This script will install the QMK CLI, toolchains, and flashing utilities. +################################################################################ +# Environment variables: +# CONFIRM: Skip the pre-install delay. (or: --confirm) +# QMK_DISTRIB_DIR: The directory to install the QMK distribution to. (or: --qmk-distrib-dir=...) +# UV_INSTALL_DIR: The directory to install `uv` to. (or: --uv-install-dir=...) +# UV_TOOL_DIR: The directory to install `uv` tools to. (or: --uv-tool-dir=...) +# SKIP_CLEAN: Skip cleaning the distribution directory. (or: --skip-clean) +# SKIP_PACKAGE_MANAGER: Skip installing the necessary packages for the package manager. (or: --skip-package-manager) +# SKIP_UV: Skip installing `uv`. (or: --skip-uv) +# SKIP_QMK_CLI: Skip installing the QMK CLI. (or: --skip-qmk-cli) +# SKIP_QMK_TOOLCHAINS: Skip installing the QMK toolchains. (or: --skip-qmk-toolchains) +# SKIP_QMK_FLASHUTILS: Skip installing the QMK flashing utilities. (or: --skip-qmk-flashutils) +# SKIP_UDEV_RULES: Skip installing the udev rules for Linux. (or: --skip-udev-rules) +# SKIP_WINDOWS_DRIVERS: Skip installing the Windows drivers for the flashing utilities. (or: --skip-windows-drivers) +# +# Arguments above may be negated by prefixing with `--no-` instead (e.g. `--no-skip-clean`). +################################################################################ +# Usage: +# curl -fsSL https://raw.githubusercontent.com/qmk/qmk_firmware/master/util/env-bootstrap.sh | sh +# +# Help: +# curl -fsSL https://raw.githubusercontent.com/qmk/qmk_firmware/master/util/env-bootstrap.sh | sh -s -- --help +# +# An example which skips installing `uv` using environment variables: +# curl -fsSL https://raw.githubusercontent.com/qmk/qmk_firmware/master/util/env-bootstrap.sh | SKIP_UV=1 sh +# +# ...or by using command line arguments: +# curl -fsSL https://raw.githubusercontent.com/qmk/qmk_firmware/master/util/env-bootstrap.sh | sh -s -- --skip-uv +# +# Any other configurable items listed above may be specified in the same way. +################################################################################ + +{ # this ensures the entire script is downloaded # + set -eu + + BOOTSTRAP_TMPDIR="$(mktemp -d /tmp/qmk-bootstrap-failure.XXXXXX)" + trap 'rm -rf "$BOOTSTRAP_TMPDIR" >/dev/null 2>&1 || true' EXIT + FAILURE_FILE="${BOOTSTRAP_TMPDIR}/fail" + + # Work out which `sed` to use + command -v gsed >/dev/null 2>&1 && SED=gsed || SED=sed + + script_args() { + cat <<__EOT__ + --help -- Shows this help text + --confirm -- Skips the delay before installation + --uv-install-dir={path} -- The directory to install \`uv\` into + --uv-tool-dir={path} -- The directory to install \`uv\` tools into + --qmk-distrib-dir={path} -- The directory to install the QMK distribution into + --skip-clean -- Skip cleaning the QMK distribution directory + --skip-package-manager -- Skip installing the necessary packages for the package manager + --skip-uv -- Skip installing \`uv\` + --skip-qmk-cli -- Skip installing the QMK CLI + --skip-qmk-toolchains -- Skip installing the QMK toolchains + --skip-qmk-flashutils -- Skip installing the QMK flashing utilities + --skip-udev-rules -- Skip installing the udev rules for Linux + --skip-windows-drivers -- Skip installing the Windows drivers for the flashing utilities +__EOT__ + # Hidden: + # --wsl-install -- Installs the WSL variant of qmk_flashutils + } + + signal_execution_failure() { + touch "$FAILURE_FILE" >/dev/null 2>&1 || true + } + + exit_if_execution_failed() { + if [ -e "$FAILURE_FILE" ]; then + exit 1 + fi + } + + script_help() { + echo "$(basename ${this_script:-qmk-install.sh}) $(script_args | sort | ${SED} -e 's@^\s*@@g' -e 's@\s\+--.*@@g' -e 's@^@[@' -e 's@$@]@' | tr '\n' ' ')" + echo + echo "Arguments:" + script_args + echo + echo "Switch arguments may be negated by prefixing with '--no-' (e.g. '--no-skip-clean')." + } + + script_parse_args() { + local N + local V + while [ ! -z "${1:-}" ]; do + case "$1" in + --help) + script_help + exit 0 + ;; + --*=*) + N=${1%%=*} + N=${N##--} + N=$(echo $N | tr '-' '_' | tr 'a-z' 'A-Z') + V=${1##*=} + export $N="$V" + ;; + --no-*) + N=${1##--no-} + N=$(echo $N | tr '-' '_' | tr 'a-z' 'A-Z') + unset $N + ;; + --*) + N=${1##--} + N=$(echo $N | tr '-' '_' | tr 'a-z' 'A-Z') + export $N=true + ;; + *) + echo "Unknown argument: '$1'" >&2 + echo + script_help >&2 + exit 1 + ;; + esac + shift + unset N + unset V + done + } + + nsudo() { + if [ "$(fn_os)" = "windows" ]; then + # No need for sudo under QMK MSYS + return + elif [ $(id -u) -ne 0 ]; then + if [ -n "$(command -v sudo 2>/dev/null || true)" ]; then + echo "sudo" + elif [ -n "$(command -v doas 2>/dev/null || true)" ]; then + echo "doas" + else + echo "Please install 'sudo' or 'doas' to continue." >&2 + exit 1 + fi + fi + true + } + + download_url() { + local url=$1 + local filename=${2:-$(basename "$url")} + local quiet='' + if [ -n "$(command -v curl 2>/dev/null || true)" ]; then + [ "$filename" = "-" ] && quiet='-s' || echo "Downloading '$url' => '$filename'" >&2 + curl -LSf $quiet -o "$filename" "$url" + elif [ -n "$(command -v wget 2>/dev/null || true)" ]; then + [ "$filename" = "-" ] && quiet='-q' || echo "Downloading '$url' => '$filename'" >&2 + wget $quiet "-O$filename" "$url" + else + echo "Please install 'curl' to continue." >&2 + exit 1 + fi + } + + github_api_call() { + local url="$1" + local token="${GITHUB_TOKEN:-${GH_TOKEN:-}}" + if [ -n "${token:-}" ]; then + if [ -n "$(command -v curl 2>/dev/null || true)" ]; then + curl -fsSL -H "Authorization: token $token" -H "Accept: application/vnd.github.v3+json" "https://api.github.com/$url" + elif [ -n "$(command -v wget 2>/dev/null || true)" ]; then + wget -q --header="Authorization: token $token" --header="Accept: application/vnd.github.v3+json" "https://api.github.com/$url" -O - + fi + else + download_url "https://api.github.com/$url" - + fi + } + + fn_os() { + local os_name=$(echo ${1:-} | tr 'A-Z' 'a-z') + if [ -z "$os_name" ]; then + os_name=$(uname -s | tr 'A-Z' 'a-z') + fi + case "$os_name" in + *darwin* | *macos* | *apple*) + echo macos + ;; + *windows* | *mingw* | *msys*) + echo windows + ;; + *linux*) + echo linux + ;; + *) + echo unknown + ;; + esac + } + + fn_arch() { + local arch_name=$(echo ${1:-} | tr 'A-Z' 'a-z') + if [ -z "$arch_name" ]; then + arch_name=$(uname -m | tr 'A-Z' 'a-z') + fi + case "$arch_name" in + *arm64* | *aarch64*) + echo ARM64 + ;; + *riscv64*) + echo RV64 + ;; + *x86_64* | *x64*) + echo X64 + ;; + *) + echo unknown + ;; + esac + } + + preinstall_delay() { + [ -z "${CONFIRM:-}" ] || return 0 + echo >&2 + echo "Waiting 10 seconds before proceeding. Press Ctrl+C to cancel installation." >&2 + sleep 10 + } + + get_package_manager_deps() { + case $(fn_os) in + macos) echo "zstd clang-format make hidapi libusb dos2unix git" ;; + windows) echo "base-devel: zstd:p toolchain:p clang:p hidapi:p dos2unix: git: unzip:" ;; + linux) + case $(grep ID /etc/os-release) in + *arch* | *manjaro* | *cachyos*) echo "zstd base-devel clang diffutils wget unzip zip hidapi dos2unix git" ;; + *debian* | *ubuntu*) echo "zstd build-essential clang-format diffutils wget unzip zip libhidapi-hidraw0 dos2unix git" ;; + *fedora*) echo "zstd clang diffutils which gcc git wget unzip zip hidapi dos2unix libusb-devel libusb1-devel libusb-compat-0.1-devel libusb0-devel git epel-release" ;; + *suse*) echo "zstd clang diffutils wget unzip zip libhidapi-hidraw0 dos2unix git libusb-1_0-devel gzip which" ;; + *gentoo*) echo "zstd diffutils wget unzip zip dev-libs/hidapi dos2unix dev-vcs/git dev-libs/libusb app-arch/gzip which" ;; + *) + echo >&2 + echo "Sorry, we don't recognize your distribution." >&2 + echo >&2 + echo "Proceeding with the installation, however you will need to install at least the following tools manually:" >&2 + echo " - make, git, curl, zstd, unzip, [lib]hidapi" >&2 + echo "Other tools may be required depending on your distribution." >&2 + echo >&2 + echo "Alternatively, if you prefer Docker, try using the docker image instead:" >&2 + echo " - https://docs.qmk.fm/#/getting_started_docker" >&2 + ;; + esac + ;; + *) + # We can only really support macOS, Windows, and Linux at this time due to `uv` requirements. + echo >&2 + echo "Sorry, we don't recognize your OS. Try using a compatible OS instead:" >&2 + echo " - https://docs.qmk.fm/newbs_getting_started#set-up-your-environment" >&2 + echo >&2 + echo "If you cannot use a compatible OS, you can try installing the \`qmk\` Python package manually using \`pip\`, most likely requiring a virtual environment:" >&2 + echo " % python3 -m pip install qmk" >&2 + echo >&2 + echo "All other dependencies will need to be installed manually, such as make, git, AVR and ARM toolchains, and associated flashing utilities." >&2 + echo >&2 + echo "**NOTE**: QMK does not provide official support for your environment. Here be dragons, you are on your own." >&2 + signal_execution_failure + ;; + esac + } + + print_package_manager_deps_and_delay() { + get_package_manager_deps | tr ' ' '\n' | sort | xargs -I'{}' echo " - {}" >&2 + exit_if_execution_failed + preinstall_delay || exit 1 + } + + install_package_manager_deps() { + # Install the necessary packages for the package manager + case $(fn_os) in + macos) + if [ -n "$(command -v brew 2>/dev/null || true)" ]; then + echo "It will also install the following system packages using 'brew':" >&2 + print_package_manager_deps_and_delay + + brew update + + local existing="" + local new="" + for dep in $(get_package_manager_deps); do + if brew list --formula | grep -q "^${dep}\$"; then + existing="${existing:-} $dep" + else + new="${new:-} $dep" + fi + done + + if [ -n "${existing:-}" ]; then + brew upgrade $existing + fi + if [ -n "${new:-}" ]; then + brew install $new + fi + else + echo "Please install 'brew' to continue. See https://brew.sh/ for more information." >&2 + exit 1 + fi + ;; + windows) + echo "It will also install the following packages using 'pacman'/'pacboy':" >&2 + print_package_manager_deps_and_delay + $(nsudo) pacman --needed --noconfirm --disable-download-timeout -S pactoys + $(nsudo) pacboy sync --needed --noconfirm --disable-download-timeout $(get_package_manager_deps) + ;; + linux) + case $(grep ID /etc/os-release) in + *arch* | *manjaro* | *cachyos*) + echo "It will also install the following system packages using 'pacman':" >&2 + print_package_manager_deps_and_delay + $(nsudo) pacman --needed --noconfirm -S $(get_package_manager_deps) + ;; + *debian* | *ubuntu*) + echo "It will also install the following system packages using 'apt':" >&2 + print_package_manager_deps_and_delay + $(nsudo) apt-get update + DEBIAN_FRONTEND=noninteractive \ + $(nsudo) apt-get --quiet --yes install $(get_package_manager_deps) + ;; + *fedora*) + echo "It will also install the following system packages using 'dnf':" >&2 + print_package_manager_deps_and_delay + # Some RHEL-likes need EPEL for hidapi + $(nsudo) dnf -y install epel-release 2>/dev/null || true + # RHEL-likes have some naming differences in libusb packages, so manually handle those + $(nsudo) dnf -y install $(get_package_manager_deps | tr ' ' '\n' | grep -v 'epel-release' | grep -v libusb | tr '\n' ' ') + for pkg in $(get_package_manager_deps | tr ' ' '\n' | grep libusb); do + $(nsudo) dnf -y install "$pkg" 2>/dev/null || true + done + ;; + *opensuse* | *suse*) + echo "It will also install development tools as well as the following system packages using 'zypper':" >&2 + print_package_manager_deps_and_delay + $(nsudo) zypper --non-interactive refresh + $(nsudo) zypper --non-interactive install -t pattern devel_basis devel_C_C++ + $(nsudo) zypper --non-interactive install $(get_package_manager_deps) + ;; + *gentoo*) + echo "It will also install the following system packages using 'emerge':" >&2 + print_package_manager_deps_and_delay + $(nsudo) emerge --sync + $(nsudo) emerge --noreplace --ask=n $(get_package_manager_deps | tr ' ' '\n') || signal_execution_failure + exit_if_execution_failed + ;; + *) + print_package_manager_deps_and_delay + echo "Proceeding with the installation, you will need to ensure prerequisites are installed." >&2 + ;; + esac + ;; + *) + print_package_manager_deps_and_delay + ;; + esac + } + + install_uv() { + # Install `uv` (or update as necessary) + download_url https://astral.sh/uv/install.sh - | TMPDIR="$(windows_ish_path "${TMPDIR:-}")" UV_INSTALL_DIR="$(windows_ish_path "${UV_INSTALL_DIR:-}")" sh + } + + setup_paths() { + # Set up the paths for any of the locations `uv` expects + if [ -n "${XDG_BIN_HOME:-}" ]; then + export PATH="$XDG_BIN_HOME:$PATH" + fi + if [ -n "${XDG_DATA_HOME:-}" ]; then + export PATH="$XDG_DATA_HOME/../bin:$PATH" + fi + [ ! -d "$HOME/.local/bin" ] || export PATH="$HOME/.local/bin:$PATH" + + if [ -n "${UV_INSTALL_DIR:-}" ]; then + export PATH="$UV_INSTALL_DIR/bin:$UV_INSTALL_DIR:$PATH" # cater for both "flat" and "hierarchical" installs of `uv` + fi + + if [ -n "${UV_TOOL_BIN_DIR:-}" ]; then + export PATH="$UV_TOOL_BIN_DIR:$PATH" + fi + } + + uv_command() { + if [ "$(fn_os)" = "windows" ]; then + UV_TOOL_DIR="$(windows_ish_path "${UV_TOOL_DIR:-}")" \ + UV_TOOL_BIN_DIR="$(windows_ish_path "${UV_TOOL_BIN_DIR:-}")" \ + uv "$@" + else + uv "$@" + fi + } + + install_qmk_cli() { + # Install the QMK CLI + uv_command tool install --force --with pip --upgrade --python $PYTHON_TARGET_VERSION qmk + + # QMK is installed to... + local qmk_tooldir="$(posix_ish_path "$(uv_command tool dir)/qmk")" + + # Activate the environment + if [ -e "$qmk_tooldir/bin" ]; then + . "$qmk_tooldir/bin/activate" + elif [ -e "$qmk_tooldir/Scripts" ]; then + . "$qmk_tooldir/Scripts/activate" + else + echo "Could not find the QMK environment to activate." >&2 + exit 1 + fi + + # Install the QMK dependencies + uv_command pip install --upgrade -r https://raw.githubusercontent.com/qmk/qmk_firmware/refs/heads/master/requirements.txt + uv_command pip install --upgrade -r https://raw.githubusercontent.com/qmk/qmk_firmware/refs/heads/master/requirements-dev.txt + + # Deactivate the environment + deactivate + } + + install_toolchains() { + # Get the latest toolchain release from https://github.com/qmk/qmk_toolchains + local latest_toolchains_release=$(github_api_call repos/qmk/qmk_toolchains/releases/latest - | grep -oE '"tag_name": "[^"]+' | grep -oE '[^"]+$') + # Download the specific release asset with a matching keyword + local toolchain_url=$(github_api_call repos/qmk/qmk_toolchains/releases/tags/$latest_toolchains_release - | grep -oE '"browser_download_url": "[^"]+"' | grep -oE 'https://[^"]+' | grep $(fn_os)$(fn_arch)) + if [ -z "$toolchain_url" ]; then + echo "No toolchain found for this OS/Arch combination." >&2 + exit 1 + fi + + # Download the toolchain release to the toolchains location + echo "Downloading compiler toolchains..." >&2 + local target_file="$QMK_DISTRIB_DIR/$(basename "$toolchain_url")" + download_url "$toolchain_url" "$target_file" + + # Extract the toolchain + echo "Extracting compiler toolchains to '$QMK_DISTRIB_DIR'..." >&2 + zstdcat "$target_file" | tar xf - -C "$QMK_DISTRIB_DIR" --strip-components=1 + } + + install_flashing_tools() { + local osarchvariant="$(fn_os)$(fn_arch)" + + # Special case for WSL + if [ -n "${WSL_INSTALL:-}" ] || [ -n "${WSL_DISTRO_NAME:-}" ] || [ -f /proc/sys/fs/binfmt_misc/WSLInterop ]; then + osarchvariant="windowsWSL" + fi + + # Get the latest flashing tools release from https://github.com/qmk/qmk_flashutils + local latest_flashutils_release=$(github_api_call repos/qmk/qmk_flashutils/releases/latest - | grep -oE '"tag_name": "[^"]+' | grep -oE '[^"]+$') + # Download the specific release asset with a matching keyword + local flashutils_url=$(github_api_call repos/qmk/qmk_flashutils/releases/tags/$latest_flashutils_release - | grep -oE '"browser_download_url": "[^"]+"' | grep -oE 'https://[^"]+' | grep "$osarchvariant") + if [ -z "$flashutils_url" ]; then + echo "No flashing tools found for this OS/Arch combination." >&2 + exit 1 + fi + + # Download the flashing tools release to the toolchains location + echo "Downloading flashing tools..." >&2 + local target_file="$QMK_DISTRIB_DIR/$(basename "$flashutils_url")" + download_url "$flashutils_url" "$target_file" + + # Extract the flashing tools + echo "Extracting flashing tools to '$QMK_DISTRIB_DIR'..." >&2 + zstdcat "$target_file" | tar xf - -C "$QMK_DISTRIB_DIR/bin" + # Move the release file to etc + mv "$QMK_DISTRIB_DIR/bin/flashutils_release"* "$QMK_DISTRIB_DIR/etc" + } + + install_linux_udev_rules() { + # Download the udev rules to the toolchains location + echo "Downloading QMK udev rules file..." >&2 + local qmk_rules_target_file="$QMK_DISTRIB_DIR/50-qmk.rules" + download_url "https://raw.githubusercontent.com/qmk/qmk_firmware/refs/heads/master/util/udev/50-qmk.rules" "$qmk_rules_target_file" + + # Install the udev rules -- path list is aligned with qmk doctor's linux.py + local udev_rules_paths=" + /usr/lib/udev/rules.d + /usr/local/lib/udev/rules.d + /run/udev/rules.d + /etc/udev/rules.d + " + for udev_rules_dir in $udev_rules_paths; do + if [ -d "$udev_rules_dir" ]; then + echo "Installing udev rules to $udev_rules_dir/50-qmk.rules ..." >&2 + $(nsudo) mv "$qmk_rules_target_file" "$udev_rules_dir" + $(nsudo) chown 0:0 "$udev_rules_dir/50-qmk.rules" + $(nsudo) chmod 644 "$udev_rules_dir/50-qmk.rules" + break + fi + done + + # Reload udev rules + if command -v udevadm >/dev/null 2>&1; then + echo "Reloading udev rules..." >&2 + $(nsudo) udevadm control --reload-rules || true + $(nsudo) udevadm trigger || true + else + echo "udevadm not found, skipping udev rules reload." >&2 + fi + } + + install_windows_drivers() { + # Get the latest driver installer release from https://github.com/qmk/qmk_driver_installer + local latest_driver_installer_release=$(github_api_call repos/qmk/qmk_driver_installer/releases/latest - | grep -oE '"tag_name": "[^"]+' | grep -oE '[^"]+$') + # Download the specific release asset + local driver_installer_url=$(github_api_call repos/qmk/qmk_driver_installer/releases/tags/$latest_driver_installer_release - | grep -oE '"browser_download_url": "[^"]+"' | grep -oE 'https://[^"]+' | grep '\.exe') + if [ -z "$driver_installer_url" ]; then + echo "No driver installer found." >&2 + exit 1 + fi + # Download the driver installer release to the toolchains location + echo "Downloading driver installer..." >&2 + local target_file="$QMK_DISTRIB_DIR/$(basename "$driver_installer_url")" + download_url "$driver_installer_url" "$target_file" + # Download the drivers list + download_url "https://raw.githubusercontent.com/qmk/qmk_firmware/refs/heads/master/util/drivers.txt" "$QMK_DISTRIB_DIR/drivers.txt" + # Execute the driver installer + cd "$QMK_DISTRIB_DIR" + cmd.exe //c "qmk_driver_installer.exe --all --force drivers.txt" + cd - + # Remove the temporary files + rm -f "$QMK_DISTRIB_DIR/qmk_driver_installer.exe" "$QMK_DISTRIB_DIR/drivers.txt" || true + } + + clean_tarballs() { + # Clean up the tarballs + rm -f "$QMK_DISTRIB_DIR"/*.tar.zst || true + } + + windows_ish_path() { + [ -n "$1" ] || return 0 + [ "$(uname -o 2>/dev/null || true)" = "Msys" ] && cygpath -w "$1" || echo "$1" + } + + posix_ish_path() { + [ -n "$1" ] || return 0 + [ "$(uname -o 2>/dev/null || true)" = "Msys" ] && cygpath -u "$1" || echo "$1" + } + + # Set the Python version we want to use with the QMK CLI + export PYTHON_TARGET_VERSION=${PYTHON_TARGET_VERSION:-3.14} + + # Windows/MSYS doesn't like `/tmp` so we need to set a different temporary directory. + # Also set the default `UV_INSTALL_DIR` and `QMK_DISTRIB_DIR` to locations which don't pollute the user's home directory, keeping the installation internal to MSYS. + if [ "$(uname -o 2>/dev/null || true)" = "Msys" ]; then + export TMPDIR="$(posix_ish_path "$TMP")" + export UV_INSTALL_DIR="$(posix_ish_path "${UV_INSTALL_DIR:-/opt/uv}")" + export QMK_DISTRIB_DIR="$(posix_ish_path "${QMK_DISTRIB_DIR:-/opt/qmk}")" + export UV_TOOL_DIR="$(posix_ish_path "${UV_TOOL_DIR:-"$UV_INSTALL_DIR/tools"}")" + export UV_TOOL_BIN_DIR="$(posix_ish_path "$UV_TOOL_DIR/bin")" + fi + + script_parse_args "$@" + + echo "This QMK CLI installation script will install \`uv\`, the QMK CLI, as well as QMK-supplied toolchains and flashing utilities." >&2 + [ -z "${SKIP_PACKAGE_MANAGER:-}" ] || { preinstall_delay || exit 1; } + [ -n "${SKIP_PACKAGE_MANAGER:-}" ] || install_package_manager_deps + [ -n "${SKIP_UV:-}" ] || install_uv + + # Make sure the usual `uv` and other associated directories are on the $PATH + setup_paths + + # Work out where we want to install the distribution and tools now that `uv` is installed + export QMK_DISTRIB_DIR="$(posix_ish_path "${QMK_DISTRIB_DIR:-$(printf 'import platformdirs\nprint(platformdirs.user_data_dir("qmk"))' | uv_command run --quiet --python $PYTHON_TARGET_VERSION --with platformdirs -)}")" + + # Clear out the distrib directory if necessary + if [ -z "${SKIP_CLEAN:-}" ] || [ -z "${SKIP_QMK_TOOLCHAINS:-}" -a -z "${SKIP_QMK_FLASHUTILS:-}" ]; then + if [ -d "$QMK_DISTRIB_DIR" ]; then + echo "Removing old QMK distribution..." >&2 + rm -rf "$QMK_DISTRIB_DIR" + fi + fi + mkdir -p "$QMK_DISTRIB_DIR" + + [ -n "${SKIP_QMK_CLI:-}" ] || install_qmk_cli + [ -n "${SKIP_QMK_TOOLCHAINS:-}" ] || install_toolchains + [ -n "${SKIP_QMK_FLASHUTILS:-}" ] || install_flashing_tools + if [ "$(uname -s 2>/dev/null || true)" = "Linux" ]; then + [ -n "${SKIP_UDEV_RULES:-}" ] || install_linux_udev_rules + fi + if [ "$(uname -o 2>/dev/null || true)" = "Msys" ]; then + [ -n "${SKIP_WINDOWS_DRIVERS:-}" ] || install_windows_drivers + fi + clean_tarballs + + # Notify the user that they may need to restart their shell to get the `qmk` command + echo >&2 + echo "QMK CLI installation complete." >&2 + echo "The QMK CLI has been installed to '$(posix_ish_path "$(dirname "$(command -v qmk)")")'." >&2 + echo "The QMK CLI venv has been created at '$(posix_ish_path "$(uv_command tool dir)/qmk")'." >&2 + echo "Toolchains and flashing utilities have been installed to '$QMK_DISTRIB_DIR'." >&2 + echo >&2 + echo "You may need to restart your shell to gain access to the 'qmk' command." >&2 + echo "Alternatively, add "$(posix_ish_path "$(dirname "$(command -v qmk)")")" to your \$PATH:" >&2 + echo " export PATH=\"$(posix_ish_path "$(dirname "$(command -v qmk)")"):\$PATH\"" >&2 + +} # this ensures the entire script is downloaded # From 330a8597f8fb136374285d2b52a978e311b46ede Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Nov 2025 06:46:53 +1100 Subject: [PATCH 120/255] Bump actions/checkout from 4 to 6 (#25829) --- .github/workflows/bootstrap_testing.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/bootstrap_testing.yml b/.github/workflows/bootstrap_testing.yml index 997db3f0b2..00787c92eb 100644 --- a/.github/workflows/bootstrap_testing.yml +++ b/.github/workflows/bootstrap_testing.yml @@ -105,7 +105,7 @@ jobs: echo 'Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"' >> /etc/sudoers - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 1 submodules: recursive @@ -174,7 +174,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 1 submodules: recursive @@ -224,7 +224,7 @@ jobs: git: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 1 submodules: recursive From b5dfb2bd1ea38a37c58227eb17bde583f0c0e4d6 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 27 Nov 2025 21:29:46 +0000 Subject: [PATCH 121/255] Partially skip generating community modules when none enabled (#25819) --- builddefs/build_keyboard.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index 640dedc31e..dae8c07e3e 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -255,6 +255,8 @@ endif COMMUNITY_RULES_MK = $(shell $(QMK_BIN) generate-community-modules-rules-mk -kb $(KEYBOARD) --quiet --escape --output $(INTERMEDIATE_OUTPUT)/src/community_rules.mk $(KEYMAP_JSON)) include $(COMMUNITY_RULES_MK) +ifneq ($(COMMUNITY_MODULES),) + $(INTERMEDIATE_OUTPUT)/src/community_modules.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) $(eval CMD=$(QMK_BIN) generate-community-modules-h -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(KEYMAP_JSON)) @@ -289,6 +291,8 @@ SRC += $(INTERMEDIATE_OUTPUT)/src/community_modules.c generated-files: $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(INTERMEDIATE_OUTPUT)/src/community_modules.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h $(INTERMEDIATE_OUTPUT)/src/led_matrix_community_modules.inc $(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc +endif + include $(BUILDDEFS_PATH)/converters.mk # Generate the board's version.h file. From 6ed61c65dd66cdbb450a4920a69bae193ec73f15 Mon Sep 17 00:00:00 2001 From: QMK Bot Date: Mon, 1 Dec 2025 06:25:13 +1100 Subject: [PATCH 122/255] [CI] Format code according to conventions (#25827) Format code according to conventions --- drivers/bluetooth/bluefruit_le.cpp | 2 +- drivers/eeprom/eeprom_i2c.c | 2 +- drivers/eeprom/eeprom_spi.c | 2 +- drivers/encoder/encoder_quadrature.c | 2 +- drivers/flash/flash_spi.c | 4 +- drivers/haptic/solenoid.h | 3 +- drivers/lcd/st7565.c | 2 +- drivers/led/snled27351-mono.c | 3 +- drivers/led/snled27351.c | 3 +- drivers/oled/oled_driver.c | 14 ++-- drivers/oled/oled_driver.h | 36 ++++------- drivers/painter/comms/qp_comms_i2c.c | 2 +- drivers/painter/comms/qp_comms_spi.c | 14 ++-- drivers/painter/generic/qp_surface_common.c | 10 +-- drivers/painter/generic/qp_surface_internal.h | 4 +- drivers/painter/generic/qp_surface_mono1bpp.c | 2 +- drivers/painter/generic/qp_surface_rgb565.c | 2 +- drivers/painter/ili9xxx/qp_ili9486.c | 8 +-- drivers/painter/ld7032/qp_ld7032.c | 8 +-- drivers/painter/oled_panel/qp_oled_panel.c | 10 +-- drivers/painter/tft_panel/qp_tft_panel.c | 4 +- drivers/ps2/ps2_mouse.c | 2 +- drivers/sensors/cirque_pinnacle.c | 6 +- drivers/sensors/pmw33xx_common.h | 9 +-- platforms/avr/drivers/analog.c | 2 +- platforms/avr/drivers/ws2812_bitbang.c | 10 +-- platforms/avr/gpio.h | 14 ++-- platforms/avr/hardware_id.c | 2 +- platforms/chibios/bootloaders/rp2040.c | 2 +- platforms/chibios/drivers/analog.c | 2 +- platforms/chibios/drivers/audio_dac_basic.c | 6 +- .../chibios/drivers/audio_pwm_software.c | 8 +-- .../drivers/eeprom/eeprom_kinetis_flexram.c | 6 +- .../eeprom/eeprom_legacy_emulated_flash.c | 4 +- .../chibios/drivers/flash/legacy_flash_ops.c | 2 +- platforms/chibios/drivers/serial_usart.c | 8 +-- platforms/chibios/drivers/uart_sio.c | 8 +-- .../drivers/wear_leveling/wear_leveling_efl.c | 2 +- platforms/chibios/drivers/ws2812_pwm.c | 4 +- platforms/chibios/drivers/ws2812_spi.c | 3 +- platforms/progmem.h | 10 +-- platforms/synchronization_util.h | 4 +- platforms/test/eeprom.c | 6 +- .../eeprom_legacy_emulated_flash_tests.cpp | 2 +- platforms/test/legacy_flash_ops_mock.c | 4 +- quantum/action_code.h | 12 ++-- quantum/action_tapping.c | 38 +++++------ quantum/action_util.h | 3 +- quantum/audio/musical_notes.h | 6 +- quantum/backlight/backlight_driver_common.c | 4 +- quantum/command.c | 2 +- quantum/deferred_exec.h | 2 +- quantum/dip_switch.h | 3 +- quantum/encoder.h | 3 +- quantum/encoder/tests/config_mock.h | 6 +- .../tests/config_mock_split_left_eq_right.h | 12 ++-- .../tests/config_mock_split_left_gt_right.h | 12 ++-- .../tests/config_mock_split_left_lt_right.h | 12 ++-- .../encoder/tests/config_mock_split_no_left.h | 12 ++-- .../tests/config_mock_split_no_right.h | 12 ++-- .../encoder/tests/config_mock_split_role.h | 12 ++-- quantum/joystick.h | 6 +- quantum/keycode.h | 2 +- quantum/matrix.c | 2 +- quantum/mousekey.c | 2 +- quantum/nvm/eeprom/nvm_dynamic_keymap.c | 12 ++-- quantum/nvm/eeprom/nvm_eeconfig.c | 8 +-- quantum/painter/lvgl/qp_lvgl.c | 6 +- quantum/painter/qp_comms.c | 4 +- quantum/painter/qp_draw_text.c | 4 +- quantum/painter/qp_internal_driver.h | 2 +- quantum/painter/qp_stream.h | 4 +- quantum/process_keycode/process_autocorrect.c | 2 +- quantum/process_keycode/process_combo.c | 14 ++-- quantum/process_keycode/process_combo.h | 10 ++- quantum/process_keycode/process_key_lock.c | 2 +- .../process_keycode/process_key_override.c | 3 +- quantum/process_keycode/process_tap_dance.h | 38 ++++++++--- quantum/quantum_keycodes.h | 64 +++++++++---------- quantum/rgblight/rgblight.c | 2 +- quantum/rgblight/rgblight.h | 9 +-- quantum/secure.c | 5 +- quantum/split_common/split_util.c | 2 +- quantum/split_common/transactions.c | 9 +-- quantum/util.h | 2 +- quantum/via.c | 4 +- quantum/wear_leveling/wear_leveling.c | 6 +- .../retro_tapping/config.h | 3 +- tmk_core/protocol/chibios/usb_driver.c | 2 +- tmk_core/protocol/chibios/usb_endpoints.c | 6 +- tmk_core/protocol/chibios/usb_main.c | 2 +- tmk_core/protocol/usb_descriptor.h | 4 +- 92 files changed, 307 insertions(+), 348 deletions(-) diff --git a/drivers/bluetooth/bluefruit_le.cpp b/drivers/bluetooth/bluefruit_le.cpp index 5fdd104dcf..bb5014360c 100644 --- a/drivers/bluetooth/bluefruit_le.cpp +++ b/drivers/bluetooth/bluefruit_le.cpp @@ -364,7 +364,7 @@ static bool read_response(char *resp, uint16_t resplen, bool verbose) { } static bool at_command(const char *cmd, char *resp, uint16_t resplen, bool verbose, uint16_t timeout) { - const char * end = cmd + strlen(cmd); + const char *end = cmd + strlen(cmd); struct sdep_msg msg; if (verbose) { diff --git a/drivers/eeprom/eeprom_i2c.c b/drivers/eeprom/eeprom_i2c.c index d29aff5f85..8c6c16d810 100644 --- a/drivers/eeprom/eeprom_i2c.c +++ b/drivers/eeprom/eeprom_i2c.c @@ -104,7 +104,7 @@ void eeprom_read_block(void *buf, const void *addr, size_t len) { void eeprom_write_block(const void *buf, void *addr, size_t len) { uint8_t complete_packet[EXTERNAL_EEPROM_ADDRESS_SIZE + EXTERNAL_EEPROM_PAGE_SIZE]; - uint8_t * read_buf = (uint8_t *)buf; + uint8_t *read_buf = (uint8_t *)buf; uintptr_t target_addr = (uintptr_t)addr; #if defined(EXTERNAL_EEPROM_WP_PIN) diff --git a/drivers/eeprom/eeprom_spi.c b/drivers/eeprom/eeprom_spi.c index 14f0afa68b..9e85286403 100644 --- a/drivers/eeprom/eeprom_spi.c +++ b/drivers/eeprom/eeprom_spi.c @@ -154,7 +154,7 @@ void eeprom_read_block(void *buf, const void *addr, size_t len) { void eeprom_write_block(const void *buf, void *addr, size_t len) { bool res; - uint8_t * read_buf = (uint8_t *)buf; + uint8_t *read_buf = (uint8_t *)buf; uintptr_t target_addr = (uintptr_t)addr; while (len > 0) { diff --git a/drivers/encoder/encoder_quadrature.c b/drivers/encoder/encoder_quadrature.c index 086f500391..3dfdb27e8d 100644 --- a/drivers/encoder/encoder_quadrature.c +++ b/drivers/encoder/encoder_quadrature.c @@ -113,7 +113,7 @@ void encoder_driver_init(void) { thisCount = isLeftHand ? NUM_ENCODERS_LEFT : NUM_ENCODERS_RIGHT; thatCount = isLeftHand ? NUM_ENCODERS_RIGHT : NUM_ENCODERS_LEFT; #else // SPLIT_KEYBOARD - thisCount = NUM_ENCODERS; + thisCount = NUM_ENCODERS; #endif #ifdef ENCODER_TESTS diff --git a/drivers/flash/flash_spi.c b/drivers/flash/flash_spi.c index 7226773ff4..5816a896fe 100644 --- a/drivers/flash/flash_spi.c +++ b/drivers/flash/flash_spi.c @@ -291,7 +291,7 @@ flash_status_t flash_erase_block(uint32_t addr) { flash_status_t flash_read_range(uint32_t addr, void *buf, size_t len) { flash_status_t response = FLASH_STATUS_SUCCESS; - uint8_t * read_buf = (uint8_t *)buf; + uint8_t *read_buf = (uint8_t *)buf; /* Wait for the write-in-progress bit to be cleared. */ response = spi_flash_wait_while_busy(); @@ -322,7 +322,7 @@ flash_status_t flash_read_range(uint32_t addr, void *buf, size_t len) { flash_status_t flash_write_range(uint32_t addr, const void *buf, size_t len) { flash_status_t response = FLASH_STATUS_SUCCESS; - uint8_t * write_buf = (uint8_t *)buf; + uint8_t *write_buf = (uint8_t *)buf; while (len > 0) { uint32_t page_offset = addr % EXTERNAL_FLASH_PAGE_SIZE; diff --git a/drivers/haptic/solenoid.h b/drivers/haptic/solenoid.h index 17f5345bc6..3d8a4c732d 100644 --- a/drivers/haptic/solenoid.h +++ b/drivers/haptic/solenoid.h @@ -47,8 +47,7 @@ #ifndef SOLENOID_PINS # ifdef SOLENOID_PIN -# define SOLENOID_PINS \ - { SOLENOID_PIN } +# define SOLENOID_PINS {SOLENOID_PIN} # else # error SOLENOID_PINS array not defined # endif diff --git a/drivers/lcd/st7565.c b/drivers/lcd/st7565.c index f24bb78048..3ce40bc852 100644 --- a/drivers/lcd/st7565.c +++ b/drivers/lcd/st7565.c @@ -70,7 +70,7 @@ along with this program. If not, see . // parts of the display unusable or don't get cleared correctly // and also allows for drawing & inverting uint8_t st7565_buffer[ST7565_MATRIX_SIZE]; -uint8_t * st7565_cursor; +uint8_t *st7565_cursor; ST7565_BLOCK_TYPE st7565_dirty = 0; bool st7565_initialized = false; bool st7565_active = false; diff --git a/drivers/led/snled27351-mono.c b/drivers/led/snled27351-mono.c index d87b856db6..723e5d138e 100644 --- a/drivers/led/snled27351-mono.c +++ b/drivers/led/snled27351-mono.c @@ -34,8 +34,7 @@ #endif #ifndef SNLED27351_CURRENT_TUNE -# define SNLED27351_CURRENT_TUNE \ - { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } +# define SNLED27351_CURRENT_TUNE {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF} #endif const uint8_t i2c_addresses[SNLED27351_DRIVER_COUNT] = { diff --git a/drivers/led/snled27351.c b/drivers/led/snled27351.c index 8ebf681bdb..f446cca97f 100644 --- a/drivers/led/snled27351.c +++ b/drivers/led/snled27351.c @@ -34,8 +34,7 @@ #endif #ifndef SNLED27351_CURRENT_TUNE -# define SNLED27351_CURRENT_TUNE \ - { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF } +# define SNLED27351_CURRENT_TUNE {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF} #endif const uint8_t i2c_addresses[SNLED27351_DRIVER_COUNT] = { diff --git a/drivers/oled/oled_driver.c b/drivers/oled/oled_driver.c index 7e46bcb3f7..a7a78bf3c1 100644 --- a/drivers/oled/oled_driver.c +++ b/drivers/oled/oled_driver.c @@ -146,7 +146,7 @@ along with this program. If not, see . // parts of the display unusable or don't get cleared correctly // and also allows for drawing & inverting uint8_t oled_buffer[OLED_MATRIX_SIZE]; -uint8_t * oled_cursor; +uint8_t *oled_cursor; OLED_BLOCK_TYPE oled_dirty = 0; bool oled_initialized = false; bool oled_active = false; @@ -301,24 +301,18 @@ bool oled_init(oled_rotation_t rotation) { oled_driver_init(); static const uint8_t PROGMEM display_setup1[] = { - I2C_CMD, - DISPLAY_OFF, - DISPLAY_CLOCK, - OLED_DISPLAY_CLOCK, - MULTIPLEX_RATIO, + I2C_CMD, DISPLAY_OFF, DISPLAY_CLOCK, OLED_DISPLAY_CLOCK, MULTIPLEX_RATIO, #if OLED_IC_COM_PINS_ARE_COLUMNS OLED_DISPLAY_WIDTH - 1, #else OLED_DISPLAY_HEIGHT - 1, #endif #if OLED_IC == OLED_IC_SH1107 - SH1107_DISPLAY_START_LINE, - 0x00, + SH1107_DISPLAY_START_LINE, 0x00, #else DISPLAY_START_LINE | 0x00, #endif - CHARGE_PUMP, - 0x14, + CHARGE_PUMP, 0x14, #if OLED_IC_HAS_HORIZONTAL_MODE // MEMORY_MODE is unsupported on SH1106 (Page Addressing only) MEMORY_MODE, diff --git a/drivers/oled/oled_driver.h b/drivers/oled/oled_driver.h index c3db7e6d97..36fe8c195c 100644 --- a/drivers/oled/oled_driver.h +++ b/drivers/oled/oled_driver.h @@ -53,12 +53,10 @@ along with this program. If not, see . // For 90 degree rotation, we map our internal matrix to oled matrix using fixed arrays // The OLED writes to it's memory horizontally, starting top left, but our memory starts bottom left in this mode # ifndef OLED_SOURCE_MAP -# define OLED_SOURCE_MAP \ - { 0, 8, 16, 24, 32, 40, 48, 56 } +# define OLED_SOURCE_MAP {0, 8, 16, 24, 32, 40, 48, 56} # endif # ifndef OLED_TARGET_MAP -# define OLED_TARGET_MAP \ - { 56, 48, 40, 32, 24, 16, 8, 0 } +# define OLED_TARGET_MAP {56, 48, 40, 32, 24, 16, 8, 0} # endif // If OLED_BLOCK_TYPE is uint32_t, these tables would look like: // #define OLED_SOURCE_MAP { 32, 40, 48, 56 } @@ -97,12 +95,10 @@ along with this program. If not, see . # endif # ifndef OLED_SOURCE_MAP -# define OLED_SOURCE_MAP \ - { 0, 8, 16, 24 } +# define OLED_SOURCE_MAP {0, 8, 16, 24} # endif # ifndef OLED_TARGET_MAP -# define OLED_TARGET_MAP \ - { 24, 16, 8, 0 } +# define OLED_TARGET_MAP {24, 16, 8, 0} # endif #elif defined(OLED_DISPLAY_64X48) @@ -132,12 +128,10 @@ along with this program. If not, see . # endif # ifndef OLED_SOURCE_MAP -# define OLED_SOURCE_MAP \ - { 0, 8 } +# define OLED_SOURCE_MAP {0, 8} # endif # ifndef OLED_TARGET_MAP -# define OLED_TARGET_MAP \ - { 8, 0 } +# define OLED_TARGET_MAP {8, 0} # endif #elif defined(OLED_DISPLAY_64X128) @@ -170,12 +164,10 @@ along with this program. If not, see . # endif # ifndef OLED_SOURCE_MAP -# define OLED_SOURCE_MAP \ - { 0, 8, 16, 24, 32, 40, 48, 56 } +# define OLED_SOURCE_MAP {0, 8, 16, 24, 32, 40, 48, 56} # endif # ifndef OLED_TARGET_MAP -# define OLED_TARGET_MAP \ - { 56, 48, 40, 32, 24, 16, 8, 0 } +# define OLED_TARGET_MAP {56, 48, 40, 32, 24, 16, 8, 0} # endif #elif defined(OLED_DISPLAY_128X128) @@ -208,12 +200,10 @@ along with this program. If not, see . // For 90 degree rotation, we map our internal matrix to oled matrix using fixed arrays // The OLED writes to it's memory horizontally, starting top left, but our memory starts bottom left in this mode # ifndef OLED_SOURCE_MAP -# define OLED_SOURCE_MAP \ - { 0, 8, 16, 24, 32, 40, 48, 56 } +# define OLED_SOURCE_MAP {0, 8, 16, 24, 32, 40, 48, 56} # endif # ifndef OLED_TARGET_MAP -# define OLED_TARGET_MAP \ - { 56, 48, 40, 32, 24, 16, 8, 0 } +# define OLED_TARGET_MAP {56, 48, 40, 32, 24, 16, 8, 0} # endif #else // defined(OLED_DISPLAY_128X64) // Default 128x32 @@ -242,12 +232,10 @@ along with this program. If not, see . // For 90 degree rotation, we map our internal matrix to oled matrix using fixed arrays // The OLED writes to it's memory horizontally, starting top left, but our memory starts bottom left in this mode # ifndef OLED_SOURCE_MAP -# define OLED_SOURCE_MAP \ - { 0, 8, 16, 24 } +# define OLED_SOURCE_MAP {0, 8, 16, 24} # endif # ifndef OLED_TARGET_MAP -# define OLED_TARGET_MAP \ - { 24, 16, 8, 0 } +# define OLED_TARGET_MAP {24, 16, 8, 0} # endif // If OLED_BLOCK_TYPE is uint8_t, these tables would look like: // #define OLED_SOURCE_MAP { 0, 8, 16, 24, 32, 40, 48, 56 } diff --git a/drivers/painter/comms/qp_comms_i2c.c b/drivers/painter/comms/qp_comms_i2c.c index f093c87ee4..f4b8fd833e 100644 --- a/drivers/painter/comms/qp_comms_i2c.c +++ b/drivers/painter/comms/qp_comms_i2c.c @@ -10,7 +10,7 @@ // Helpers static uint32_t qp_comms_i2c_send_raw(painter_device_t device, const void *data, uint32_t byte_count) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_i2c_config_t *comms_config = (qp_comms_i2c_config_t *)driver->comms_config; i2c_status_t res = i2c_transmit(comms_config->chip_address << 1, data, byte_count, I2C_TIMEOUT); if (res < 0) { diff --git a/drivers/painter/comms/qp_comms_spi.c b/drivers/painter/comms/qp_comms_spi.c index 31b68dfdf6..1ef4ea3bae 100644 --- a/drivers/painter/comms/qp_comms_spi.c +++ b/drivers/painter/comms/qp_comms_spi.c @@ -10,7 +10,7 @@ // Base SPI support bool qp_comms_spi_init(painter_device_t device) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_config_t *comms_config = (qp_comms_spi_config_t *)driver->comms_config; // Initialize the SPI peripheral @@ -24,7 +24,7 @@ bool qp_comms_spi_init(painter_device_t device) { } bool qp_comms_spi_start(painter_device_t device) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_config_t *comms_config = (qp_comms_spi_config_t *)driver->comms_config; return spi_start(comms_config->chip_select_pin, comms_config->lsb_first, comms_config->mode, comms_config->divisor); @@ -46,7 +46,7 @@ uint32_t qp_comms_spi_send_data(painter_device_t device, const void *data, uint3 } bool qp_comms_spi_stop(painter_device_t device) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_config_t *comms_config = (qp_comms_spi_config_t *)driver->comms_config; spi_stop(); gpio_write_pin_high(comms_config->chip_select_pin); @@ -70,7 +70,7 @@ bool qp_comms_spi_dc_reset_init(painter_device_t device) { return false; } - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config; // Set up D/C as output low, if specified @@ -92,14 +92,14 @@ bool qp_comms_spi_dc_reset_init(painter_device_t device) { } uint32_t qp_comms_spi_dc_reset_send_data(painter_device_t device, const void *data, uint32_t byte_count) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config; gpio_write_pin_high(comms_config->dc_pin); return qp_comms_spi_send_data(device, data, byte_count); } bool qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config; gpio_write_pin_low(comms_config->dc_pin); spi_write(cmd); @@ -107,7 +107,7 @@ bool qp_comms_spi_dc_reset_send_command(painter_device_t device, uint8_t cmd) { } bool qp_comms_spi_dc_reset_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config; for (size_t i = 0; i < sequence_len;) { uint8_t command = sequence[i]; diff --git a/drivers/painter/generic/qp_surface_common.c b/drivers/painter/generic/qp_surface_common.c index 2da96c73ac..5eb84616e6 100644 --- a/drivers/painter/generic/qp_surface_common.c +++ b/drivers/painter/generic/qp_surface_common.c @@ -53,7 +53,7 @@ void qp_surface_update_dirty(surface_dirty_data_t *dirty, uint16_t x, uint16_t y // Driver vtable bool qp_surface_init(painter_device_t device, painter_rotation_t rotation) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; surface_painter_device_t *surface = (surface_painter_device_t *)driver; memset(surface->buffer, 0, SURFACE_REQUIRED_BUFFER_BYTE_SIZE(driver->panel_width, driver->panel_height, driver->native_bits_per_pixel)); @@ -78,7 +78,7 @@ bool qp_surface_clear(painter_device_t device) { } bool qp_surface_flush(painter_device_t device) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; surface_painter_device_t *surface = (surface_painter_device_t *)driver; surface->dirty.l = surface->dirty.t = UINT16_MAX; surface->dirty.r = surface->dirty.b = 0; @@ -87,7 +87,7 @@ bool qp_surface_flush(painter_device_t device) { } bool qp_surface_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; surface_painter_device_t *surface = (surface_painter_device_t *)driver; // Set the viewport locations @@ -106,9 +106,9 @@ bool qp_surface_viewport(painter_device_t device, uint16_t left, uint16_t top, u // Drawing routine to copy out the dirty region and send it to another device bool qp_surface_draw(painter_device_t surface, painter_device_t target, uint16_t x, uint16_t y, bool entire_surface) { - painter_driver_t * surface_driver = (painter_driver_t *)surface; + painter_driver_t *surface_driver = (painter_driver_t *)surface; surface_painter_device_t *surface_handle = (surface_painter_device_t *)surface_driver; - painter_driver_t * target_driver = (painter_driver_t *)target; + painter_driver_t *target_driver = (painter_driver_t *)target; // If we're not dirty... we're done. if (!surface_handle->dirty.is_dirty) { diff --git a/drivers/painter/generic/qp_surface_internal.h b/drivers/painter/generic/qp_surface_internal.h index 71f82e924d..89cab11b0d 100644 --- a/drivers/painter/generic/qp_surface_internal.h +++ b/drivers/painter/generic/qp_surface_internal.h @@ -42,8 +42,8 @@ typedef struct surface_painter_device_t { // The target buffer union { - void * buffer; - uint8_t * u8buffer; + void *buffer; + uint8_t *u8buffer; uint16_t *u16buffer; }; diff --git a/drivers/painter/generic/qp_surface_mono1bpp.c b/drivers/painter/generic/qp_surface_mono1bpp.c index c66b56519d..e8011163e4 100644 --- a/drivers/painter/generic/qp_surface_mono1bpp.c +++ b/drivers/painter/generic/qp_surface_mono1bpp.c @@ -55,7 +55,7 @@ static inline void stream_pixdata_mono1bpp(surface_painter_device_t *surface, co // Stream pixel data to the current write position in GRAM static bool qp_surface_pixdata_mono1bpp(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; surface_painter_device_t *surface = (surface_painter_device_t *)driver; stream_pixdata_mono1bpp(surface, (const uint8_t *)pixel_data, native_pixel_count); return true; diff --git a/drivers/painter/generic/qp_surface_rgb565.c b/drivers/painter/generic/qp_surface_rgb565.c index c5b351311a..b81b0c43bc 100644 --- a/drivers/painter/generic/qp_surface_rgb565.c +++ b/drivers/painter/generic/qp_surface_rgb565.c @@ -43,7 +43,7 @@ static inline void stream_pixdata_rgb565(surface_painter_device_t *surface, cons // Stream pixel data to the current write position in GRAM static bool qp_surface_pixdata_rgb565(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; surface_painter_device_t *surface = (surface_painter_device_t *)driver; stream_pixdata_rgb565(surface, (const uint16_t *)pixel_data, native_pixel_count); return true; diff --git a/drivers/painter/ili9xxx/qp_ili9486.c b/drivers/painter/ili9xxx/qp_ili9486.c index df2d084aa3..d1e5e12288 100644 --- a/drivers/painter/ili9xxx/qp_ili9486.c +++ b/drivers/painter/ili9xxx/qp_ili9486.c @@ -72,7 +72,7 @@ bool qp_ili9486_init(painter_device_t device, painter_rotation_t rotation) { // waveshare variant needs some tweaks due to shift registers static bool qp_comms_spi_dc_reset_send_command_odd_cs_pulse(painter_device_t device, uint8_t cmd) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config; gpio_write_pin_low(comms_config->spi_config.chip_select_pin); @@ -83,7 +83,7 @@ static bool qp_comms_spi_dc_reset_send_command_odd_cs_pulse(painter_device_t dev } static uint32_t qp_comms_spi_send_data_odd_cs_pulse(painter_device_t device, const void *data, uint32_t byte_count) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config; uint32_t bytes_remaining = byte_count; @@ -113,7 +113,7 @@ static uint32_t qp_comms_spi_send_data_odd_cs_pulse(painter_device_t device, con } static uint32_t qp_ili9486_send_data_toggling(painter_device_t device, const uint8_t *data, uint32_t byte_count) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; qp_comms_spi_dc_reset_config_t *comms_config = (qp_comms_spi_dc_reset_config_t *)driver->comms_config; uint32_t ret; @@ -147,7 +147,7 @@ static bool qp_comms_spi_send_command_sequence_odd_cs_pulse(painter_device_t dev } static bool qp_ili9486_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; tft_panel_dc_reset_painter_driver_vtable_t *vtable = (tft_panel_dc_reset_painter_driver_vtable_t *)driver->driver_vtable; // Fix up the drawing location if required diff --git a/drivers/painter/ld7032/qp_ld7032.c b/drivers/painter/ld7032/qp_ld7032.c index d73430cc75..e0f3af5efb 100644 --- a/drivers/painter/ld7032/qp_ld7032.c +++ b/drivers/painter/ld7032/qp_ld7032.c @@ -62,7 +62,7 @@ uint32_t ld7032_comms_i2c_send_command_and_databuf(painter_device_t device, uint // Power control bool qp_ld7032_power(painter_device_t device, bool power_on) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; ld7032_comms_with_command_vtable_t *comms_vtable = (ld7032_comms_with_command_vtable_t *)driver->comms_vtable; comms_vtable->send_command_data(device, LD7032_DISP_ON_OFF, power_on ? 0x01 : 0x00); @@ -83,7 +83,7 @@ bool qp_ld7032_clear(painter_device_t device) { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void ld7032_flush_0(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer, bool inverted) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; ld7032_comms_with_command_vtable_t *comms_vtable = (ld7032_comms_with_command_vtable_t *)driver->comms_vtable; int x_start = dirty->l >> 3; @@ -115,7 +115,7 @@ void ld7032_flush_0(painter_device_t device, surface_dirty_data_t *dirty, const } void ld7032_flush_90(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer, bool inverted) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; ld7032_comms_with_command_vtable_t *comms_vtable = (ld7032_comms_with_command_vtable_t *)driver->comms_vtable; int x_start = dirty->t >> 3; @@ -252,7 +252,7 @@ __attribute__((weak)) bool qp_ld7032_init(painter_device_t device, painter_rotat break; } - painter_driver_t * pdriver = (painter_driver_t *)device; + painter_driver_t *pdriver = (painter_driver_t *)device; ld7032_comms_with_command_vtable_t *comms_vtable = (ld7032_comms_with_command_vtable_t *)pdriver->comms_vtable; if (!comms_vtable->send_command_data(device, LD7032_WRITE_DIRECTION, write_direction)) { diff --git a/drivers/painter/oled_panel/qp_oled_panel.c b/drivers/painter/oled_panel/qp_oled_panel.c index eefee3f13f..4fd2c5bd80 100644 --- a/drivers/painter/oled_panel/qp_oled_panel.c +++ b/drivers/painter/oled_panel/qp_oled_panel.c @@ -12,7 +12,7 @@ // Power control bool qp_oled_panel_power(painter_device_t device, bool power_on) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable; qp_comms_command(device, power_on ? vtable->opcodes.display_on : vtable->opcodes.display_off); return true; @@ -59,7 +59,7 @@ bool qp_oled_panel_passthru_append_pixdata(painter_device_t device, uint8_t *tar //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void qp_oled_panel_page_column_flush_rot0(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable; // TODO: account for offset_x/y in base driver @@ -92,7 +92,7 @@ void qp_oled_panel_page_column_flush_rot0(painter_device_t device, surface_dirty } void qp_oled_panel_page_column_flush_rot90(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable; // TODO: account for offset_x/y in base driver @@ -126,7 +126,7 @@ void qp_oled_panel_page_column_flush_rot90(painter_device_t device, surface_dirt } void qp_oled_panel_page_column_flush_rot180(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable; // TODO: account for offset_x/y in base driver @@ -161,7 +161,7 @@ void qp_oled_panel_page_column_flush_rot180(painter_device_t device, surface_dir } void qp_oled_panel_page_column_flush_rot270(painter_device_t device, surface_dirty_data_t *dirty, const uint8_t *framebuffer) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; oled_panel_painter_driver_vtable_t *vtable = (oled_panel_painter_driver_vtable_t *)driver->driver_vtable; // TODO: account for offset_x/y in base driver diff --git a/drivers/painter/tft_panel/qp_tft_panel.c b/drivers/painter/tft_panel/qp_tft_panel.c index c8e33343d4..af9e3e6465 100644 --- a/drivers/painter/tft_panel/qp_tft_panel.c +++ b/drivers/painter/tft_panel/qp_tft_panel.c @@ -12,7 +12,7 @@ // Power control bool qp_tft_panel_power(painter_device_t device, bool power_on) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; tft_panel_dc_reset_painter_driver_vtable_t *vtable = (tft_panel_dc_reset_painter_driver_vtable_t *)driver->driver_vtable; qp_comms_command(device, power_on ? vtable->opcodes.display_on : vtable->opcodes.display_off); return true; @@ -33,7 +33,7 @@ bool qp_tft_panel_flush(painter_device_t device) { // Viewport to draw to bool qp_tft_panel_viewport(painter_device_t device, uint16_t left, uint16_t top, uint16_t right, uint16_t bottom) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; tft_panel_dc_reset_painter_driver_vtable_t *vtable = (tft_panel_dc_reset_painter_driver_vtable_t *)driver->driver_vtable; // Fix up the drawing location if required diff --git a/drivers/ps2/ps2_mouse.c b/drivers/ps2/ps2_mouse.c index ef1a0e26f9..a51b86598e 100644 --- a/drivers/ps2/ps2_mouse.c +++ b/drivers/ps2/ps2_mouse.c @@ -97,7 +97,7 @@ void ps2_mouse_task(void) { mouse_report.x = ps2_host_recv_response(); mouse_report.y = ps2_host_recv_response(); # ifdef PS2_MOUSE_ENABLE_SCROLLING - mouse_report.v = -(ps2_host_recv_response() & PS2_MOUSE_SCROLL_MASK); + mouse_report.v = -(ps2_host_recv_response() & PS2_MOUSE_SCROLL_MASK); # endif } else { if (debug_mouse) print("ps2_mouse: fail to get mouse packet\n"); diff --git a/drivers/sensors/cirque_pinnacle.c b/drivers/sensors/cirque_pinnacle.c index 45072ae874..113f1231e3 100644 --- a/drivers/sensors/cirque_pinnacle.c +++ b/drivers/sensors/cirque_pinnacle.c @@ -477,9 +477,9 @@ report_mouse_t cirque_pinnacle_get_report(report_mouse_t mouse_report) { if (touchData.valid) { mouse_report.buttons = touchData.buttons; - mouse_report.x = CONSTRAIN_HID_XY(touchData.xDelta); - mouse_report.y = CONSTRAIN_HID_XY(touchData.yDelta); - mouse_report.v = touchData.wheelCount; + mouse_report.x = CONSTRAIN_HID_XY(touchData.xDelta); + mouse_report.y = CONSTRAIN_HID_XY(touchData.yDelta); + mouse_report.v = touchData.wheelCount; } return mouse_report; } diff --git a/drivers/sensors/pmw33xx_common.h b/drivers/sensors/pmw33xx_common.h index ff890f49a9..9433c7811f 100644 --- a/drivers/sensors/pmw33xx_common.h +++ b/drivers/sensors/pmw33xx_common.h @@ -72,14 +72,12 @@ STATIC_ASSERT(sizeof((pmw33xx_report_t){0}.motion) == 1, "pmw33xx_report_t.motio # ifndef PMW33XX_CS_PIN # ifdef POINTING_DEVICE_CS_PIN # define PMW33XX_CS_PIN POINTING_DEVICE_CS_PIN -# define PMW33XX_CS_PINS \ - { PMW33XX_CS_PIN } +# define PMW33XX_CS_PINS {PMW33XX_CS_PIN} # else # error "No chip select pin defined -- missing PMW33XX_CS_PIN or PMW33XX_CS_PINS" # endif # else -# define PMW33XX_CS_PINS \ - { PMW33XX_CS_PIN } +# define PMW33XX_CS_PINS {PMW33XX_CS_PIN} # endif #endif @@ -88,8 +86,7 @@ STATIC_ASSERT(sizeof((pmw33xx_report_t){0}.motion) == 1, "pmw33xx_report_t.motio # if !defined(PMW33XX_CS_PIN_RIGHT) # define PMW33XX_CS_PIN_RIGHT PMW33XX_CS_PIN # endif -# define PMW33XX_CS_PINS_RIGHT \ - { PMW33XX_CS_PIN_RIGHT } +# define PMW33XX_CS_PINS_RIGHT {PMW33XX_CS_PIN_RIGHT} #endif // Defines so the old variable names are swapped by the appropiate value on each half diff --git a/platforms/avr/drivers/analog.c b/platforms/avr/drivers/analog.c index a68c6a371d..b2cb97223c 100644 --- a/platforms/avr/drivers/analog.c +++ b/platforms/avr/drivers/analog.c @@ -96,7 +96,7 @@ int16_t adc_read(uint8_t mux) { #if defined(MUX4) ADMUX = aref | (mux & (_BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1) | _BV(MUX0))); #else - ADMUX = aref | (mux & (_BV(MUX3) | _BV(MUX2) | _BV(MUX1) | _BV(MUX0))); + ADMUX = aref | (mux & (_BV(MUX3) | _BV(MUX2) | _BV(MUX1) | _BV(MUX0))); #endif // Start the conversion diff --git a/platforms/avr/drivers/ws2812_bitbang.c b/platforms/avr/drivers/ws2812_bitbang.c index 183690c967..c4a854d9ee 100644 --- a/platforms/avr/drivers/ws2812_bitbang.c +++ b/platforms/avr/drivers/ws2812_bitbang.c @@ -26,7 +26,7 @@ #include "ws2812.h" #include "pin_defs.h" -#define pinmask(pin) (_BV((pin)&0xF)) +#define pinmask(pin) (_BV((pin) & 0xF)) /* This routine writes an array of bytes with RGB values to the Dataout pin @@ -105,7 +105,7 @@ static inline void ws2812_sendarray_mask(uint8_t *data, uint16_t datlen, uint8_t w_nop8 #endif #if (w1_nops & 16) - w_nop16 + w_nop16 #endif " sbrs %1,7 \n\t" // '1' [03] '0' [02] " out %2,%4 \n\t" // '1' [--] '0' [03] - fe-low @@ -123,7 +123,7 @@ static inline void ws2812_sendarray_mask(uint8_t *data, uint16_t datlen, uint8_t w_nop8 #endif #if (w2_nops & 16) - w_nop16 + w_nop16 #endif " out %2,%4 \n\t" // '1' [+1] '0' [+1] - fe-high #if (w3_nops & 1) @@ -139,7 +139,7 @@ static inline void ws2812_sendarray_mask(uint8_t *data, uint16_t datlen, uint8_t w_nop8 #endif #if (w3_nops & 16) - w_nop16 + w_nop16 #endif " dec %0 \n\t" // '1' [+2] '0' [+2] @@ -173,7 +173,7 @@ void ws2812_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { } void ws2812_flush(void) { - uint8_t masklo = ~(pinmask(WS2812_DI_PIN)) & PORTx_ADDRESS(WS2812_DI_PIN); + uint8_t masklo = ~(pinmask(WS2812_DI_PIN))&PORTx_ADDRESS(WS2812_DI_PIN); uint8_t maskhi = pinmask(WS2812_DI_PIN) | PORTx_ADDRESS(WS2812_DI_PIN); ws2812_sendarray_mask((uint8_t *)ws2812_leds, WS2812_LED_COUNT * sizeof(ws2812_led_t), masklo, maskhi); diff --git a/platforms/avr/gpio.h b/platforms/avr/gpio.h index 4c09619772..9b5b3edc68 100644 --- a/platforms/avr/gpio.h +++ b/platforms/avr/gpio.h @@ -24,17 +24,17 @@ typedef uint8_t pin_t; /* Operation of GPIO by pin. */ -#define gpio_set_pin_input(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin)&0xF), PORTx_ADDRESS(pin) &= ~_BV((pin)&0xF)) -#define gpio_set_pin_input_high(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin)&0xF), PORTx_ADDRESS(pin) |= _BV((pin)&0xF)) +#define gpio_set_pin_input(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin) & 0xF), PORTx_ADDRESS(pin) &= ~_BV((pin) & 0xF)) +#define gpio_set_pin_input_high(pin) (DDRx_ADDRESS(pin) &= ~_BV((pin) & 0xF), PORTx_ADDRESS(pin) |= _BV((pin) & 0xF)) #define gpio_set_pin_input_low(pin) STATIC_ASSERT(0, "GPIO pulldowns in input mode are not available on AVR") -#define gpio_set_pin_output_push_pull(pin) (DDRx_ADDRESS(pin) |= _BV((pin)&0xF)) +#define gpio_set_pin_output_push_pull(pin) (DDRx_ADDRESS(pin) |= _BV((pin) & 0xF)) #define gpio_set_pin_output_open_drain(pin) STATIC_ASSERT(0, "Open-drain outputs are not available on AVR") #define gpio_set_pin_output(pin) gpio_set_pin_output_push_pull(pin) -#define gpio_write_pin_high(pin) (PORTx_ADDRESS(pin) |= _BV((pin)&0xF)) -#define gpio_write_pin_low(pin) (PORTx_ADDRESS(pin) &= ~_BV((pin)&0xF)) +#define gpio_write_pin_high(pin) (PORTx_ADDRESS(pin) |= _BV((pin) & 0xF)) +#define gpio_write_pin_low(pin) (PORTx_ADDRESS(pin) &= ~_BV((pin) & 0xF)) #define gpio_write_pin(pin, level) ((level) ? gpio_write_pin_high(pin) : gpio_write_pin_low(pin)) -#define gpio_read_pin(pin) ((bool)(PINx_ADDRESS(pin) & _BV((pin)&0xF))) +#define gpio_read_pin(pin) ((bool)(PINx_ADDRESS(pin) & _BV((pin) & 0xF))) -#define gpio_toggle_pin(pin) (PORTx_ADDRESS(pin) ^= _BV((pin)&0xF)) +#define gpio_toggle_pin(pin) (PORTx_ADDRESS(pin) ^= _BV((pin) & 0xF)) diff --git a/platforms/avr/hardware_id.c b/platforms/avr/hardware_id.c index 302a800e0b..9fb2aaed68 100644 --- a/platforms/avr/hardware_id.c +++ b/platforms/avr/hardware_id.c @@ -13,7 +13,7 @@ __attribute__((weak)) hardware_id_t get_hardware_id(void) { hardware_id_t id = {0}; for (uint8_t i = 0; i < 10; i += 1) { - ((uint8_t*)&id)[i] = boot_signature_byte_get(i + 0x0E); + ((uint8_t *)&id)[i] = boot_signature_byte_get(i + 0x0E); } return id; } diff --git a/platforms/chibios/bootloaders/rp2040.c b/platforms/chibios/bootloaders/rp2040.c index 524d13e636..2e991625c9 100644 --- a/platforms/chibios/bootloaders/rp2040.c +++ b/platforms/chibios/bootloaders/rp2040.c @@ -30,7 +30,7 @@ void enter_bootloader_mode_if_requested(void) {} // Needs to be located in a RAM section that is never initialized on boot to // preserve its value on reset static volatile uint32_t __attribute__((section(".ram0.bootloader_magic"))) magic_location; -const uint32_t magic_token = 0xCAFEB0BA; +const uint32_t magic_token = 0xCAFEB0BA; // We can not use the __early_init / enter_bootloader_mode_if_requested hook as // we depend on an already initialized system with usable memory regions and diff --git a/platforms/chibios/drivers/analog.c b/platforms/chibios/drivers/analog.c index a916cc9a1d..93005c2555 100644 --- a/platforms/chibios/drivers/analog.c +++ b/platforms/chibios/drivers/analog.c @@ -145,7 +145,7 @@ static ADCConversionGroup adcConversionGroup = { .smpr = ADC_SAMPLING_RATE, #elif defined(USE_ADCV2) # if !defined(STM32F1XX) && !defined(GD32VF103) && !defined(WB32F3G71xx) && !defined(WB32FQ95xx) && !defined(AT32F415) - .cr2 = ADC_CR2_SWSTART, // F103 seem very unhappy with, F401 seems very unhappy without... + .cr2 = ADC_CR2_SWSTART, // F103 seem very unhappy with, F401 seems very unhappy without... # endif # if defined(AT32F415) .spt2 = ADC_SPT2_CSPT_AN0(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN1(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN2(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN3(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN4(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN5(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN6(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN7(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN8(ADC_SAMPLING_RATE) | ADC_SPT2_CSPT_AN9(ADC_SAMPLING_RATE), diff --git a/platforms/chibios/drivers/audio_dac_basic.c b/platforms/chibios/drivers/audio_dac_basic.c index 99b938e610..053584ec87 100644 --- a/platforms/chibios/drivers/audio_dac_basic.c +++ b/platforms/chibios/drivers/audio_dac_basic.c @@ -77,9 +77,9 @@ GPTConfig gpt7cfg1 = {.frequency = AUDIO_DAC_SAMPLE_RATE, static void gpt_audio_state_cb(GPTDriver *gptp); GPTConfig gptStateUpdateCfg = {.frequency = 10, - .callback = gpt_audio_state_cb, - .cr2 = TIM_CR2_MMS_1, /* MMS = 010 = TRGO on Update Event. */ - .dier = 0U}; + .callback = gpt_audio_state_cb, + .cr2 = TIM_CR2_MMS_1, /* MMS = 010 = TRGO on Update Event. */ + .dier = 0U}; static const DACConfig dac_conf_ch1 = {.init = AUDIO_DAC_OFF_VALUE, .datamode = DAC_DHRM_12BIT_RIGHT}; static const DACConfig dac_conf_ch2 = {.init = AUDIO_DAC_OFF_VALUE, .datamode = DAC_DHRM_12BIT_RIGHT}; diff --git a/platforms/chibios/drivers/audio_pwm_software.c b/platforms/chibios/drivers/audio_pwm_software.c index f48323900b..015bdbee1a 100644 --- a/platforms/chibios/drivers/audio_pwm_software.c +++ b/platforms/chibios/drivers/audio_pwm_software.c @@ -63,8 +63,8 @@ void channel_1_set_frequency(float freq) { pwmChangePeriod(&AUDIO_PWM_DRIVER, period); pwmEnableChannel(&AUDIO_PWM_DRIVER, AUDIO_PWM_CHANNEL - 1, - // adjust the duty-cycle so that the output is for 'note_timbre' duration HIGH - PWM_PERCENTAGE_TO_WIDTH(&AUDIO_PWM_DRIVER, (100 - note_timbre) * 100)); + // adjust the duty-cycle so that the output is for 'note_timbre' duration HIGH + PWM_PERCENTAGE_TO_WIDTH(&AUDIO_PWM_DRIVER, (100 - note_timbre) * 100)); } float channel_1_get_frequency(void) { @@ -117,8 +117,8 @@ GPTConfig gptCFG = { and the .interval counts from 64 downwards - audio_update_state is called just often enough to not miss anything */ - .frequency = 60 * 64, - .callback = gpt_callback, + .frequency = 60 * 64, + .callback = gpt_callback, }; void audio_driver_initialize_impl(void) { diff --git a/platforms/chibios/drivers/eeprom/eeprom_kinetis_flexram.c b/platforms/chibios/drivers/eeprom/eeprom_kinetis_flexram.c index 9cf956b2f7..9edbc1d2ed 100644 --- a/platforms/chibios/drivers/eeprom/eeprom_kinetis_flexram.c +++ b/platforms/chibios/drivers/eeprom/eeprom_kinetis_flexram.c @@ -482,7 +482,7 @@ uint32_t eeprom_read_dword(const uint32_t *addr) { void eeprom_read_block(void *buf, const void *addr, size_t len) { const uint8_t *p = (const uint8_t *)addr; - uint8_t * dest = (uint8_t *)buf; + uint8_t *dest = (uint8_t *)buf; while (len--) { *dest++ = eeprom_read_byte(p++); } @@ -507,7 +507,7 @@ void eeprom_write_dword(uint32_t *addr, uint32_t value) { } void eeprom_write_block(const void *buf, void *addr, size_t len) { - uint8_t * p = (uint8_t *)addr; + uint8_t *p = (uint8_t *)addr; const uint8_t *src = (const uint8_t *)buf; while (len--) { eeprom_write_byte(p++, *src++); @@ -538,7 +538,7 @@ void eeprom_update_dword(uint32_t *addr, uint32_t value) { } void eeprom_update_block(const void *buf, void *addr, size_t len) { - uint8_t * p = (uint8_t *)addr; + uint8_t *p = (uint8_t *)addr; const uint8_t *src = (const uint8_t *)buf; while (len--) { eeprom_write_byte(p++, *src++); diff --git a/platforms/chibios/drivers/eeprom/eeprom_legacy_emulated_flash.c b/platforms/chibios/drivers/eeprom/eeprom_legacy_emulated_flash.c index 9857ac046b..cf6b85fd12 100644 --- a/platforms/chibios/drivers/eeprom/eeprom_legacy_emulated_flash.c +++ b/platforms/chibios/drivers/eeprom/eeprom_legacy_emulated_flash.c @@ -577,7 +577,7 @@ void eeprom_driver_erase(void) { void eeprom_read_block(void *buf, const void *addr, size_t len) { const uint8_t *src = (const uint8_t *)addr; - uint8_t * dest = (uint8_t *)buf; + uint8_t *dest = (uint8_t *)buf; /* Check word alignment */ if (len && (uintptr_t)src % 2) { @@ -606,7 +606,7 @@ void eeprom_read_block(void *buf, const void *addr, size_t len) { } void eeprom_write_block(const void *buf, void *addr, size_t len) { - uint8_t * dest = (uint8_t *)addr; + uint8_t *dest = (uint8_t *)addr; const uint8_t *src = (const uint8_t *)buf; /* Check word alignment */ diff --git a/platforms/chibios/drivers/flash/legacy_flash_ops.c b/platforms/chibios/drivers/flash/legacy_flash_ops.c index fe5ad64764..ca3fbdd740 100644 --- a/platforms/chibios/drivers/flash/legacy_flash_ops.c +++ b/platforms/chibios/drivers/flash/legacy_flash_ops.c @@ -171,7 +171,7 @@ FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data) { FLASH->CR |= FLASH_CR_PSIZE_0; #endif FLASH->CR |= FLASH_CR_PG; - *(__IO uint16_t*)Address = Data; + *(__IO uint16_t *)Address = Data; /* Wait for last operation to be completed */ status = FLASH_WaitForLastOperation(ProgramTimeout); if (status != FLASH_TIMEOUT) { diff --git a/platforms/chibios/drivers/serial_usart.c b/platforms/chibios/drivers/serial_usart.c index becf3afbce..0d3d01042f 100644 --- a/platforms/chibios/drivers/serial_usart.c +++ b/platforms/chibios/drivers/serial_usart.c @@ -27,12 +27,12 @@ static QMKSerialConfig serial_config = { # else .baud = (SERIAL_USART_SPEED), # endif - .cr1 = (SERIAL_USART_CR1), - .cr2 = (SERIAL_USART_CR2), + .cr1 = (SERIAL_USART_CR1), + .cr2 = (SERIAL_USART_CR2), # if !defined(SERIAL_USART_FULL_DUPLEX) - .cr3 = ((SERIAL_USART_CR3) | USART_CR3_HDSEL) /* activate half-duplex mode */ + .cr3 = ((SERIAL_USART_CR3) | USART_CR3_HDSEL) /* activate half-duplex mode */ # else - .cr3 = (SERIAL_USART_CR3) + .cr3 = (SERIAL_USART_CR3) # endif }; #elif defined(MCU_RP) /* Raspberry Pi MCUs */ diff --git a/platforms/chibios/drivers/uart_sio.c b/platforms/chibios/drivers/uart_sio.c index fc12f0abed..dcf0cef20f 100644 --- a/platforms/chibios/drivers/uart_sio.c +++ b/platforms/chibios/drivers/uart_sio.c @@ -82,13 +82,13 @@ static SIOConfig sioConfig = { }; #else static SIOConfig sioConfig = { - .baud = SIO_DEFAULT_BITRATE, + .baud = SIO_DEFAULT_BITRATE, # if defined(MCU_STM32) && defined(USE_USARTV3) .presc = USART_PRESC1, # endif - .cr1 = UART_CR1, - .cr2 = UART_CR2, - .cr3 = UART_CR3, + .cr1 = UART_CR1, + .cr2 = UART_CR2, + .cr3 = UART_CR3, }; #endif diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c index fec4646a5b..2328ea0674 100644 --- a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c +++ b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c @@ -20,7 +20,7 @@ static flash_sector_t first_sector = UINT16_MAX; #endif // WEAR_LEVELING_EFL_OMIT_LAST_SECTOR_COUNT static flash_sector_t sector_count = UINT16_MAX; -static BaseFlash * flash; +static BaseFlash *flash; static bool flash_erased_is_one; static volatile bool is_issuing_read = false; static volatile bool ecc_error_occurred = false; diff --git a/platforms/chibios/drivers/ws2812_pwm.c b/platforms/chibios/drivers/ws2812_pwm.c index 50927b849a..0fc20b3f27 100644 --- a/platforms/chibios/drivers/ws2812_pwm.c +++ b/platforms/chibios/drivers/ws2812_pwm.c @@ -310,7 +310,7 @@ void ws2812_init(void) { palSetLineMode(WS2812_DI_PIN, WS2812_OUTPUT_MODE); // PWM Configuration - //#pragma GCC diagnostic ignored "-Woverride-init" // Turn off override-init warning for this struct. We use the overriding ability to set a "default" channel config + // #pragma GCC diagnostic ignored "-Woverride-init" // Turn off override-init warning for this struct. We use the overriding ability to set a "default" channel config static const PWMConfig ws2812_pwm_config = { .frequency = WS2812_PWM_TICK_FREQUENCY, .period = WS2812_PWM_PERIOD, // Mit dieser Periode wird UDE-Event erzeugt und ein neuer Wert (Länge WS2812_BIT_N) vom DMA ins CCR geschrieben @@ -328,7 +328,7 @@ void ws2812_init(void) { .dier = TIM_DIER_UDE, // DMA on update event for next period #endif }; - //#pragma GCC diagnostic pop // Restore command-line warning options + // #pragma GCC diagnostic pop // Restore command-line warning options // Configure DMA // dmaInit(); // Joe added this diff --git a/platforms/chibios/drivers/ws2812_spi.c b/platforms/chibios/drivers/ws2812_spi.c index d1792b871b..4ae97aa1c9 100644 --- a/platforms/chibios/drivers/ws2812_spi.c +++ b/platforms/chibios/drivers/ws2812_spi.c @@ -188,8 +188,7 @@ void ws2812_init(void) { 0, WS2812_SPI_DIVISOR # else - WS2812_SPI_DIVISOR_CR1_BR_X, - 0 + WS2812_SPI_DIVISOR_CR1_BR_X, 0 # endif #else // HAL_SPI_V2 diff --git a/platforms/progmem.h b/platforms/progmem.h index 6c4ebcaa01..395aa14309 100644 --- a/platforms/progmem.h +++ b/platforms/progmem.h @@ -6,13 +6,13 @@ # include # define PROGMEM # define PSTR(x) x -# define PGM_P const char* +# define PGM_P const char * # define memcmp_P(s1, s2, n) memcmp(s1, s2, n) # define memcpy_P(dest, src, n) memcpy(dest, src, n) -# define pgm_read_byte(address_short) *((uint8_t*)(address_short)) -# define pgm_read_word(address_short) *((uint16_t*)(address_short)) -# define pgm_read_dword(address_short) *((uint32_t*)(address_short)) -# define pgm_read_ptr(address_short) *((void**)(address_short)) +# define pgm_read_byte(address_short) *((uint8_t *)(address_short)) +# define pgm_read_word(address_short) *((uint16_t *)(address_short)) +# define pgm_read_dword(address_short) *((uint32_t *)(address_short)) +# define pgm_read_ptr(address_short) *((void **)(address_short)) # define strcmp_P(s1, s2) strcmp(s1, s2) # define strcpy_P(dest, src) strcpy(dest, src) # define strlen_P(src) strlen(src) diff --git a/platforms/synchronization_util.h b/platforms/synchronization_util.h index 4969eff478..f4f77fd2db 100644 --- a/platforms/synchronization_util.h +++ b/platforms/synchronization_util.h @@ -10,8 +10,8 @@ void split_shared_memory_unlock(void); # endif #else # if defined(SPLIT_KEYBOARD) -inline void split_shared_memory_lock(void){}; -inline void split_shared_memory_unlock(void){}; +inline void split_shared_memory_lock(void) {}; +inline void split_shared_memory_unlock(void) {}; # endif #endif diff --git a/platforms/test/eeprom.c b/platforms/test/eeprom.c index d501745e55..193a3bb4ce 100644 --- a/platforms/test/eeprom.c +++ b/platforms/test/eeprom.c @@ -40,7 +40,7 @@ uint32_t eeprom_read_dword(const uint32_t *addr) { void eeprom_read_block(void *buf, const void *addr, size_t len) { const uint8_t *p = (const uint8_t *)addr; - uint8_t * dest = (uint8_t *)buf; + uint8_t *dest = (uint8_t *)buf; while (len--) { *dest++ = eeprom_read_byte(p++); } @@ -61,7 +61,7 @@ void eeprom_write_dword(uint32_t *addr, uint32_t value) { } void eeprom_write_block(const void *buf, void *addr, size_t len) { - uint8_t * p = (uint8_t *)addr; + uint8_t *p = (uint8_t *)addr; const uint8_t *src = (const uint8_t *)buf; while (len--) { eeprom_write_byte(p++, *src++); @@ -87,7 +87,7 @@ void eeprom_update_dword(uint32_t *addr, uint32_t value) { } void eeprom_update_block(const void *buf, void *addr, size_t len) { - uint8_t * p = (uint8_t *)addr; + uint8_t *p = (uint8_t *)addr; const uint8_t *src = (const uint8_t *)buf; while (len--) { eeprom_write_byte(p++, *src++); diff --git a/platforms/test/eeprom_legacy_emulated_flash_tests.cpp b/platforms/test/eeprom_legacy_emulated_flash_tests.cpp index d2c41fb77d..41b27b621d 100644 --- a/platforms/test/eeprom_legacy_emulated_flash_tests.cpp +++ b/platforms/test/eeprom_legacy_emulated_flash_tests.cpp @@ -52,7 +52,7 @@ extern "C" { #define BYTE_VALUE(addr, value) (((addr) << 8) | (value)) #define WORD_ZERO(addr) (0x8000 | ((addr) >> 1)) #define WORD_ONE(addr) (0xA000 | ((addr) >> 1)) -#define WORD_NEXT(addr) (0xE000 | (((addr)-0x80) >> 1)) +#define WORD_NEXT(addr) (0xE000 | (((addr) - 0x80) >> 1)) class EepromStm32Test : public testing::Test { public: diff --git a/platforms/test/legacy_flash_ops_mock.c b/platforms/test/legacy_flash_ops_mock.c index b9d805cb47..355cdf2b4c 100644 --- a/platforms/test/legacy_flash_ops_mock.c +++ b/platforms/test/legacy_flash_ops_mock.c @@ -35,9 +35,9 @@ FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data) { if (flash_locked) return FLASH_ERROR_WRP; Address -= (uintptr_t)FlashBuf; if (Address >= MOCK_FLASH_SIZE) return FLASH_BAD_ADDRESS; - uint16_t oldData = *(uint16_t*)&FlashBuf[Address]; + uint16_t oldData = *(uint16_t *)&FlashBuf[Address]; if (oldData == 0xFFFF || Data == 0) { - *(uint16_t*)&FlashBuf[Address] = Data; + *(uint16_t *)&FlashBuf[Address] = Data; return FLASH_COMPLETE; } else { return FLASH_ERROR_PG; diff --git a/quantum/action_code.h b/quantum/action_code.h index d9a575b518..f268bc4ea4 100644 --- a/quantum/action_code.h +++ b/quantum/action_code.h @@ -167,11 +167,11 @@ enum mods_codes { MODS_TAP_TOGGLE = 0x01, }; #define ACTION_KEY(key) ACTION(ACT_MODS, (key)) -#define ACTION_MODS(mods) ACTION(ACT_MODS, ((mods)&0x1f) << 8 | 0) -#define ACTION_MODS_KEY(mods, key) ACTION(ACT_MODS, ((mods)&0x1f) << 8 | (key)) -#define ACTION_MODS_TAP_KEY(mods, key) ACTION(ACT_MODS_TAP, ((mods)&0x1f) << 8 | (key)) -#define ACTION_MODS_ONESHOT(mods) ACTION(ACT_MODS_TAP, ((mods)&0x1f) << 8 | MODS_ONESHOT) -#define ACTION_MODS_TAP_TOGGLE(mods) ACTION(ACT_MODS_TAP, ((mods)&0x1f) << 8 | MODS_TAP_TOGGLE) +#define ACTION_MODS(mods) ACTION(ACT_MODS, ((mods) & 0x1f) << 8 | 0) +#define ACTION_MODS_KEY(mods, key) ACTION(ACT_MODS, ((mods) & 0x1f) << 8 | (key)) +#define ACTION_MODS_TAP_KEY(mods, key) ACTION(ACT_MODS_TAP, ((mods) & 0x1f) << 8 | (key)) +#define ACTION_MODS_ONESHOT(mods) ACTION(ACT_MODS_TAP, ((mods) & 0x1f) << 8 | MODS_ONESHOT) +#define ACTION_MODS_TAP_TOGGLE(mods) ACTION(ACT_MODS_TAP, ((mods) & 0x1f) << 8 | MODS_TAP_TOGGLE) /** \brief Other Keys */ @@ -210,7 +210,7 @@ enum layer_param_tap_op { OP_SET_CLEAR, OP_ONESHOT, }; -#define ACTION_LAYER_BITOP(op, part, bits, on) ACTION(ACT_LAYER, (op) << 10 | (on) << 8 | (part) << 5 | ((bits)&0x1f)) +#define ACTION_LAYER_BITOP(op, part, bits, on) ACTION(ACT_LAYER, (op) << 10 | (on) << 8 | (part) << 5 | ((bits) & 0x1f)) #define ACTION_LAYER_TAP(layer, key) ACTION(ACT_LAYER_TAP, (layer) << 8 | (key)) /* Default Layer */ #define ACTION_DEFAULT_LAYER_SET(layer) ACTION_DEFAULT_LAYER_BIT_SET((layer) / 4, 1 << ((layer) % 4)) diff --git a/quantum/action_tapping.c b/quantum/action_tapping.c index b105cd60a9..9e48fc9d6c 100644 --- a/quantum/action_tapping.c +++ b/quantum/action_tapping.c @@ -444,28 +444,28 @@ bool process_tapping(keyrecord_t *keyp) { && !(MAYBE_RETRO_SHIFTING(event, keyp) && get_auto_shifted_key(get_record_keycode(keyp, false), keyp)) # endif ) { - // Settle the tapping key as *held*, since - // HOLD_ON_OTHER_KEY_PRESS is enabled for this key. - ac_dprintf("Tapping: End. No tap. Interfered by pressed key\n"); - process_record(&tapping_key); + // Settle the tapping key as *held*, since + // HOLD_ON_OTHER_KEY_PRESS is enabled for this key. + ac_dprintf("Tapping: End. No tap. Interfered by pressed key\n"); + process_record(&tapping_key); # if defined(CHORDAL_HOLD) - if (waiting_buffer_tail != waiting_buffer_head && is_tap_record(&waiting_buffer[waiting_buffer_tail])) { - tapping_key = waiting_buffer[waiting_buffer_tail]; - // Pop tail from the queue. - waiting_buffer_tail = (waiting_buffer_tail + 1) % WAITING_BUFFER_SIZE; - debug_waiting_buffer(); - } else + if (waiting_buffer_tail != waiting_buffer_head && is_tap_record(&waiting_buffer[waiting_buffer_tail])) { + tapping_key = waiting_buffer[waiting_buffer_tail]; + // Pop tail from the queue. + waiting_buffer_tail = (waiting_buffer_tail + 1) % WAITING_BUFFER_SIZE; + debug_waiting_buffer(); + } else +# endif // CHORDAL_HOLD + { + tapping_key = (keyrecord_t){0}; + } + debug_tapping_key(); + +# if defined(CHORDAL_HOLD) + waiting_buffer_process_regular(); # endif // CHORDAL_HOLD - { - tapping_key = (keyrecord_t){0}; } - debug_tapping_key(); - -# if defined(CHORDAL_HOLD) - waiting_buffer_process_regular(); -# endif // CHORDAL_HOLD - } } // enqueue return false; @@ -775,7 +775,7 @@ static uint8_t waiting_buffer_find_chordal_hold_tap(void) { uint16_t prev_keycode = get_record_keycode(&tapping_key, false); uint8_t first_tap = WAITING_BUFFER_SIZE; for (uint8_t i = waiting_buffer_tail; i != waiting_buffer_head; i = (i + 1) % WAITING_BUFFER_SIZE) { - keyrecord_t * cur = &waiting_buffer[i]; + keyrecord_t *cur = &waiting_buffer[i]; const uint16_t cur_keycode = get_record_keycode(cur, false); if (!cur->event.pressed || !is_mt_or_lt(prev_keycode)) { break; diff --git a/quantum/action_util.h b/quantum/action_util.h index d2ecb145be..12192ebe37 100644 --- a/quantum/action_util.h +++ b/quantum/action_util.h @@ -114,8 +114,7 @@ void clear_oneshot_swaphands(void); void neutralize_flashing_modifiers(uint8_t active_mods); #endif #ifndef MODS_TO_NEUTRALIZE -# define MODS_TO_NEUTRALIZE \ - { MOD_BIT(KC_LEFT_ALT), MOD_BIT(KC_LEFT_GUI) } +# define MODS_TO_NEUTRALIZE {MOD_BIT(KC_LEFT_ALT), MOD_BIT(KC_LEFT_GUI)} #endif #ifdef __cplusplus diff --git a/quantum/audio/musical_notes.h b/quantum/audio/musical_notes.h index ddd7d374f5..6b1717f35d 100644 --- a/quantum/audio/musical_notes.h +++ b/quantum/audio/musical_notes.h @@ -21,12 +21,10 @@ // in beats-per-minute #endif -#define SONG(notes...) \ - { notes } +#define SONG(notes...) {notes} // Note Types -#define MUSICAL_NOTE(note, duration) \ - { (NOTE##note), duration } +#define MUSICAL_NOTE(note, duration) {(NOTE##note), duration} #define BREVE_NOTE(note) MUSICAL_NOTE(note, 128) #define WHOLE_NOTE(note) MUSICAL_NOTE(note, 64) diff --git a/quantum/backlight/backlight_driver_common.c b/quantum/backlight/backlight_driver_common.c index fb2770ee3c..9242aba594 100644 --- a/quantum/backlight/backlight_driver_common.c +++ b/quantum/backlight/backlight_driver_common.c @@ -16,7 +16,9 @@ static const pin_t backlight_pins[] = BACKLIGHT_PINS; # define FOR_EACH_LED(x) \ for (uint8_t i = 0; i < BACKLIGHT_LED_COUNT; i++) { \ pin_t backlight_pin = backlight_pins[i]; \ - { x } \ + { \ + x \ + } \ } #else // we support only one backlight pin diff --git a/quantum/command.c b/quantum/command.c index ea2fd68e2b..86e958e568 100644 --- a/quantum/command.c +++ b/quantum/command.c @@ -629,7 +629,7 @@ static void mousekey_console_help(void) { bool mousekey_console(uint8_t code) { static uint8_t param = 0; static uint8_t *pp = NULL; - static char * desc = NULL; + static char *desc = NULL; # if defined(NO_PRINT) || defined(USER_PRINT) /* -Wunused-parameter */ (void)desc; diff --git a/quantum/deferred_exec.h b/quantum/deferred_exec.h index 97ef0f6c0e..27eecbe8ee 100644 --- a/quantum/deferred_exec.h +++ b/quantum/deferred_exec.h @@ -78,7 +78,7 @@ typedef struct deferred_executor_t { deferred_token token; uint32_t trigger_time; deferred_exec_callback callback; - void * cb_arg; + void *cb_arg; } deferred_executor_t; /** diff --git a/quantum/dip_switch.h b/quantum/dip_switch.h index 7629859359..b1694f3e6f 100644 --- a/quantum/dip_switch.h +++ b/quantum/dip_switch.h @@ -49,7 +49,6 @@ void dip_switch_task(void); #ifdef DIP_SWITCH_MAP_ENABLE # define NUM_DIP_STATES 2 -# define DIP_SWITCH_OFF_ON(off, on) \ - { (off), (on) } +# define DIP_SWITCH_OFF_ON(off, on) {(off), (on)} extern const uint16_t dip_switch_map[NUM_DIP_SWITCHES][NUM_DIP_STATES]; #endif // DIP_SWITCH_MAP_ENABLE diff --git a/quantum/encoder.h b/quantum/encoder.h index 1d2f1f46c7..fa43db52a6 100644 --- a/quantum/encoder.h +++ b/quantum/encoder.h @@ -111,8 +111,7 @@ void encoder_signal_queue_drain(void); # ifdef ENCODER_MAP_ENABLE # define NUM_DIRECTIONS 2 -# define ENCODER_CCW_CW(ccw, cw) \ - { (cw), (ccw) } +# define ENCODER_CCW_CW(ccw, cw) {(cw), (ccw)} extern const uint16_t encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS]; # endif // ENCODER_MAP_ENABLE diff --git a/quantum/encoder/tests/config_mock.h b/quantum/encoder/tests/config_mock.h index b5a1537d8a..db1c1b106e 100644 --- a/quantum/encoder/tests/config_mock.h +++ b/quantum/encoder/tests/config_mock.h @@ -7,10 +7,8 @@ #define MATRIX_COLS 1 /* Here, "pins" from 0 to 31 are allowed. */ -#define ENCODER_A_PINS \ - { 0 } -#define ENCODER_B_PINS \ - { 1 } +#define ENCODER_A_PINS {0} +#define ENCODER_B_PINS {1} #ifdef __cplusplus extern "C" { diff --git a/quantum/encoder/tests/config_mock_split_left_eq_right.h b/quantum/encoder/tests/config_mock_split_left_eq_right.h index a4aa051ef1..37ddafe904 100644 --- a/quantum/encoder/tests/config_mock_split_left_eq_right.h +++ b/quantum/encoder/tests/config_mock_split_left_eq_right.h @@ -7,14 +7,10 @@ #define MATRIX_COLS 1 /* Here, "pins" from 0 to 31 are allowed. */ -#define ENCODER_A_PINS \ - { 0, 2 } -#define ENCODER_B_PINS \ - { 1, 3 } -#define ENCODER_A_PINS_RIGHT \ - { 4, 6 } -#define ENCODER_B_PINS_RIGHT \ - { 5, 7 } +#define ENCODER_A_PINS {0, 2} +#define ENCODER_B_PINS {1, 3} +#define ENCODER_A_PINS_RIGHT {4, 6} +#define ENCODER_B_PINS_RIGHT {5, 7} #ifdef __cplusplus extern "C" { diff --git a/quantum/encoder/tests/config_mock_split_left_gt_right.h b/quantum/encoder/tests/config_mock_split_left_gt_right.h index 77190797ad..8cb78c30ec 100644 --- a/quantum/encoder/tests/config_mock_split_left_gt_right.h +++ b/quantum/encoder/tests/config_mock_split_left_gt_right.h @@ -7,14 +7,10 @@ #define MATRIX_COLS 1 /* Here, "pins" from 0 to 31 are allowed. */ -#define ENCODER_A_PINS \ - { 0, 2, 4 } -#define ENCODER_B_PINS \ - { 1, 3, 5 } -#define ENCODER_A_PINS_RIGHT \ - { 6, 8 } -#define ENCODER_B_PINS_RIGHT \ - { 7, 9 } +#define ENCODER_A_PINS {0, 2, 4} +#define ENCODER_B_PINS {1, 3, 5} +#define ENCODER_A_PINS_RIGHT {6, 8} +#define ENCODER_B_PINS_RIGHT {7, 9} #ifdef __cplusplus extern "C" { diff --git a/quantum/encoder/tests/config_mock_split_left_lt_right.h b/quantum/encoder/tests/config_mock_split_left_lt_right.h index 61808e866e..b10d9b9c0f 100644 --- a/quantum/encoder/tests/config_mock_split_left_lt_right.h +++ b/quantum/encoder/tests/config_mock_split_left_lt_right.h @@ -7,14 +7,10 @@ #define MATRIX_COLS 1 /* Here, "pins" from 0 to 31 are allowed. */ -#define ENCODER_A_PINS \ - { 0, 2 } -#define ENCODER_B_PINS \ - { 1, 3 } -#define ENCODER_A_PINS_RIGHT \ - { 4, 6, 8 } -#define ENCODER_B_PINS_RIGHT \ - { 5, 7, 9 } +#define ENCODER_A_PINS {0, 2} +#define ENCODER_B_PINS {1, 3} +#define ENCODER_A_PINS_RIGHT {4, 6, 8} +#define ENCODER_B_PINS_RIGHT {5, 7, 9} #ifdef __cplusplus extern "C" { diff --git a/quantum/encoder/tests/config_mock_split_no_left.h b/quantum/encoder/tests/config_mock_split_no_left.h index 599e584ff1..1a6893a649 100644 --- a/quantum/encoder/tests/config_mock_split_no_left.h +++ b/quantum/encoder/tests/config_mock_split_no_left.h @@ -8,13 +8,13 @@ /* Here, "pins" from 0 to 31 are allowed. */ #define ENCODER_A_PINS \ - {} + { \ + } #define ENCODER_B_PINS \ - {} -#define ENCODER_A_PINS_RIGHT \ - { 0, 2 } -#define ENCODER_B_PINS_RIGHT \ - { 1, 3 } + { \ + } +#define ENCODER_A_PINS_RIGHT {0, 2} +#define ENCODER_B_PINS_RIGHT {1, 3} #ifdef __cplusplus extern "C" { diff --git a/quantum/encoder/tests/config_mock_split_no_right.h b/quantum/encoder/tests/config_mock_split_no_right.h index c3f753014c..02719a0416 100644 --- a/quantum/encoder/tests/config_mock_split_no_right.h +++ b/quantum/encoder/tests/config_mock_split_no_right.h @@ -7,14 +7,14 @@ #define MATRIX_COLS 1 /* Here, "pins" from 0 to 31 are allowed. */ -#define ENCODER_A_PINS \ - { 0, 2 } -#define ENCODER_B_PINS \ - { 1, 3 } +#define ENCODER_A_PINS {0, 2} +#define ENCODER_B_PINS {1, 3} #define ENCODER_A_PINS_RIGHT \ - {} + { \ + } #define ENCODER_B_PINS_RIGHT \ - {} + { \ + } #ifdef __cplusplus extern "C" { diff --git a/quantum/encoder/tests/config_mock_split_role.h b/quantum/encoder/tests/config_mock_split_role.h index a4aa051ef1..37ddafe904 100644 --- a/quantum/encoder/tests/config_mock_split_role.h +++ b/quantum/encoder/tests/config_mock_split_role.h @@ -7,14 +7,10 @@ #define MATRIX_COLS 1 /* Here, "pins" from 0 to 31 are allowed. */ -#define ENCODER_A_PINS \ - { 0, 2 } -#define ENCODER_B_PINS \ - { 1, 3 } -#define ENCODER_A_PINS_RIGHT \ - { 4, 6 } -#define ENCODER_B_PINS_RIGHT \ - { 5, 7 } +#define ENCODER_A_PINS {0, 2} +#define ENCODER_B_PINS {1, 3} +#define ENCODER_A_PINS_RIGHT {4, 6} +#define ENCODER_B_PINS_RIGHT {5, 7} #ifdef __cplusplus extern "C" { diff --git a/quantum/joystick.h b/quantum/joystick.h index 24f80c1ad6..4769cf28cb 100644 --- a/quantum/joystick.h +++ b/quantum/joystick.h @@ -64,10 +64,8 @@ // configure on input_pin of the joystick_axes array entry to NO_PIN // to prevent it from being read from the ADC. This allows outputting forged axis value. -#define JOYSTICK_AXIS_VIRTUAL \ - { NO_PIN, 0, JOYSTICK_MAX_VALUE / 2, JOYSTICK_MAX_VALUE } -#define JOYSTICK_AXIS_IN(INPUT_PIN, LOW, REST, HIGH) \ - { INPUT_PIN, LOW, REST, HIGH } +#define JOYSTICK_AXIS_VIRTUAL {NO_PIN, 0, JOYSTICK_MAX_VALUE / 2, JOYSTICK_MAX_VALUE} +#define JOYSTICK_AXIS_IN(INPUT_PIN, LOW, REST, HIGH) {INPUT_PIN, LOW, REST, HIGH} typedef struct { pin_t input_pin; diff --git a/quantum/keycode.h b/quantum/keycode.h index 4ff6894a01..6268b7f19b 100644 --- a/quantum/keycode.h +++ b/quantum/keycode.h @@ -34,7 +34,7 @@ along with this program. If not, see . #define IS_MOUSEKEY_WHEEL(code) (QK_MOUSE_WHEEL_UP <= (code) && (code) <= QK_MOUSE_WHEEL_RIGHT) #define IS_MOUSEKEY_ACCEL(code) (QK_MOUSE_ACCELERATION_0 <= (code) && (code) <= QK_MOUSE_ACCELERATION_2) -#define MOD_BIT(code) (1 << ((code)&0x07)) +#define MOD_BIT(code) (1 << ((code) & 0x07)) // clang-format off diff --git a/quantum/matrix.c b/quantum/matrix.c index 167a70e5b6..eee9c705ef 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c @@ -54,7 +54,7 @@ static SPLIT_MUTABLE pin_t direct_pins[MATRIX_ROWS_PER_HAND][MATRIX_COLS] = DIRE static SPLIT_MUTABLE_ROW pin_t row_pins[MATRIX_ROWS_PER_HAND] = MATRIX_ROW_PINS; # endif // MATRIX_ROW_PINS # ifdef MATRIX_COL_PINS -static SPLIT_MUTABLE_COL pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; +static SPLIT_MUTABLE_COL pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; # endif // MATRIX_COL_PINS #endif diff --git a/quantum/mousekey.c b/quantum/mousekey.c index 9649943a0d..885a5337ac 100644 --- a/quantum/mousekey.c +++ b/quantum/mousekey.c @@ -501,7 +501,7 @@ void mousekey_off(uint8_t code) { enum { mkspd_unmod, mkspd_0, mkspd_1, mkspd_2, mkspd_COUNT }; # ifndef MK_MOMENTARY_ACCEL -static uint8_t mk_speed = mkspd_1; +static uint8_t mk_speed = mkspd_1; # else static uint8_t mk_speed = mkspd_unmod; static uint8_t mkspd_DEFAULT = mkspd_unmod; diff --git a/quantum/nvm/eeprom/nvm_dynamic_keymap.c b/quantum/nvm/eeprom/nvm_dynamic_keymap.c index 5ff49795b2..affad8213d 100644 --- a/quantum/nvm/eeprom/nvm_dynamic_keymap.c +++ b/quantum/nvm/eeprom/nvm_dynamic_keymap.c @@ -124,7 +124,7 @@ void nvm_dynamic_keymap_update_encoder(uint8_t layer, uint8_t encoder_id, bool c void nvm_dynamic_keymap_read_buffer(uint32_t offset, uint32_t size, uint8_t *data) { uint32_t dynamic_keymap_eeprom_size = DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2; - void * source = (void *)(uintptr_t)(DYNAMIC_KEYMAP_EEPROM_ADDR + offset); + void *source = (void *)(uintptr_t)(DYNAMIC_KEYMAP_EEPROM_ADDR + offset); uint8_t *target = data; for (uint32_t i = 0; i < size; i++) { if (offset + i < dynamic_keymap_eeprom_size) { @@ -139,7 +139,7 @@ void nvm_dynamic_keymap_read_buffer(uint32_t offset, uint32_t size, uint8_t *dat void nvm_dynamic_keymap_update_buffer(uint32_t offset, uint32_t size, uint8_t *data) { uint32_t dynamic_keymap_eeprom_size = DYNAMIC_KEYMAP_LAYER_COUNT * MATRIX_ROWS * MATRIX_COLS * 2; - void * target = (void *)(uintptr_t)(DYNAMIC_KEYMAP_EEPROM_ADDR + offset); + void *target = (void *)(uintptr_t)(DYNAMIC_KEYMAP_EEPROM_ADDR + offset); uint8_t *source = data; for (uint32_t i = 0; i < size; i++) { if (offset + i < dynamic_keymap_eeprom_size) { @@ -155,7 +155,7 @@ uint32_t nvm_dynamic_keymap_macro_size(void) { } void nvm_dynamic_keymap_macro_read_buffer(uint32_t offset, uint32_t size, uint8_t *data) { - void * source = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + offset); + void *source = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + offset); uint8_t *target = data; for (uint16_t i = 0; i < size; i++) { if (offset + i < DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE) { @@ -169,7 +169,7 @@ void nvm_dynamic_keymap_macro_read_buffer(uint32_t offset, uint32_t size, uint8_ } void nvm_dynamic_keymap_macro_update_buffer(uint32_t offset, uint32_t size, uint8_t *data) { - void * target = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + offset); + void *target = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + offset); uint8_t *source = data; for (uint16_t i = 0; i < size; i++) { if (offset + i < DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE) { @@ -181,8 +181,8 @@ void nvm_dynamic_keymap_macro_update_buffer(uint32_t offset, uint32_t size, uint } void nvm_dynamic_keymap_macro_reset(void) { - void * start = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR); - void * end = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE); + void *start = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR); + void *end = (void *)(uintptr_t)(DYNAMIC_KEYMAP_MACRO_EEPROM_ADDR + DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE); long remaining = end - start; uint8_t dummy[16] = {0}; for (int i = 0; i < DYNAMIC_KEYMAP_MACRO_EEPROM_SIZE; i += sizeof(dummy)) { diff --git a/quantum/nvm/eeprom/nvm_eeconfig.c b/quantum/nvm/eeprom/nvm_eeconfig.c index d9495d2753..247f623e97 100644 --- a/quantum/nvm/eeprom/nvm_eeconfig.c +++ b/quantum/nvm/eeprom/nvm_eeconfig.c @@ -246,8 +246,8 @@ uint32_t nvm_eeconfig_update_kb_datablock(const void *data, uint32_t offset, uin void nvm_eeconfig_init_kb_datablock(void) { eeprom_update_dword(EECONFIG_KEYBOARD, (EECONFIG_KB_DATA_VERSION)); - void * start = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK); - void * end = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK + EECONFIG_KB_DATA_SIZE); + void *start = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK); + void *end = (void *)(uintptr_t)(EECONFIG_KB_DATABLOCK + EECONFIG_KB_DATA_SIZE); long remaining = end - start; uint8_t dummy[16] = {0}; for (int i = 0; i < EECONFIG_KB_DATA_SIZE; i += sizeof(dummy)) { @@ -290,8 +290,8 @@ uint32_t nvm_eeconfig_update_user_datablock(const void *data, uint32_t offset, u void nvm_eeconfig_init_user_datablock(void) { eeprom_update_dword(EECONFIG_USER, (EECONFIG_USER_DATA_VERSION)); - void * start = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK); - void * end = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK + EECONFIG_USER_DATA_SIZE); + void *start = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK); + void *end = (void *)(uintptr_t)(EECONFIG_USER_DATABLOCK + EECONFIG_USER_DATA_SIZE); long remaining = end - start; uint8_t dummy[16] = {0}; for (int i = 0; i < EECONFIG_USER_DATA_SIZE; i += sizeof(dummy)) { diff --git a/quantum/painter/lvgl/qp_lvgl.c b/quantum/painter/lvgl/qp_lvgl.c index 877b2652c6..dc639b5a36 100644 --- a/quantum/painter/lvgl/qp_lvgl.c +++ b/quantum/painter/lvgl/qp_lvgl.c @@ -17,7 +17,7 @@ static deferred_executor_t lvgl_executors[2] = {0}; // For lv_tick_inc and lv_ta static lvgl_state_t lvgl_states[2] = {0}; // For lv_tick_inc and lv_task_handler painter_device_t selected_display = NULL; -void * color_buffer = NULL; +void *color_buffer = NULL; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Quantum Painter LVGL Integration Internal: qp_lvgl_flush @@ -33,7 +33,7 @@ void qp_lvgl_flush(lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color } static uint32_t tick_task_callback(uint32_t trigger_time, void *cb_arg) { - lvgl_state_t * state = (lvgl_state_t *)cb_arg; + lvgl_state_t *state = (lvgl_state_t *)cb_arg; static uint32_t last_tick = 0; switch (state->fnc_id) { case 0: { @@ -97,7 +97,7 @@ bool qp_lvgl_attach(painter_device_t device) { static lv_disp_draw_buf_t draw_buf; // Allocate a buffer for 1/10 screen size const size_t count_required = driver->panel_width * driver->panel_height / 10; - void * new_color_buffer = realloc(color_buffer, sizeof(lv_color_t) * count_required); + void *new_color_buffer = realloc(color_buffer, sizeof(lv_color_t) * count_required); if (!new_color_buffer) { qp_dprintf("qp_lvgl_attach: fail (could not set up memory buffer)\n"); qp_lvgl_detach(); diff --git a/quantum/painter/qp_comms.c b/quantum/painter/qp_comms.c index 402165b119..d7f80266c5 100644 --- a/quantum/painter/qp_comms.c +++ b/quantum/painter/qp_comms.c @@ -50,7 +50,7 @@ uint32_t qp_comms_send(painter_device_t device, const void *data, uint32_t byte_ // Comms APIs that use a D/C pin bool qp_comms_command(painter_device_t device, uint8_t cmd) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; painter_comms_with_command_vtable_t *comms_vtable = (painter_comms_with_command_vtable_t *)driver->comms_vtable; return comms_vtable->send_command(device, cmd); } @@ -66,7 +66,7 @@ uint32_t qp_comms_command_databuf(painter_device_t device, uint8_t cmd, const vo } bool qp_comms_bulk_command_sequence(painter_device_t device, const uint8_t *sequence, size_t sequence_len) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; painter_comms_with_command_vtable_t *comms_vtable = (painter_comms_with_command_vtable_t *)driver->comms_vtable; return comms_vtable->bulk_command_sequence(device, sequence, sequence_len); } diff --git a/quantum/painter/qp_draw_text.c b/quantum/painter/qp_draw_text.c index 664c89c6e5..f5aa38ec1c 100644 --- a/quantum/painter/qp_draw_text.c +++ b/quantum/painter/qp_draw_text.c @@ -343,14 +343,14 @@ typedef struct code_point_iter_drawglyph_state_t { int16_t xpos; int16_t ypos; qp_internal_byte_input_callback input_callback; - qp_internal_byte_input_state_t * input_state; + qp_internal_byte_input_state_t *input_state; qp_internal_pixel_output_state_t *output_state; } code_point_iter_drawglyph_state_t; // Codepoint handler callback: drawing static inline bool qp_font_code_point_handler_drawglyph(qff_font_handle_t *qff_font, uint32_t code_point, uint8_t width, uint8_t height, void *cb_arg) { code_point_iter_drawglyph_state_t *state = (code_point_iter_drawglyph_state_t *)cb_arg; - painter_driver_t * driver = (painter_driver_t *)state->device; + painter_driver_t *driver = (painter_driver_t *)state->device; // Reset the input state's RLE mode -- the stream should already be correctly positioned by qp_iterate_code_points() state->input_state->rle.mode = MARKER_BYTE; // ignored if not using RLE diff --git a/quantum/painter/qp_internal_driver.h b/quantum/painter/qp_internal_driver.h index 5b6efe2c83..4c59a31cc2 100644 --- a/quantum/painter/qp_internal_driver.h +++ b/quantum/painter/qp_internal_driver.h @@ -60,7 +60,7 @@ typedef struct painter_comms_with_command_vtable_t { typedef struct painter_driver_t { const painter_driver_vtable_t *driver_vtable; - const painter_comms_vtable_t * comms_vtable; + const painter_comms_vtable_t *comms_vtable; // Flag signifying if validation was successful bool validate_ok; diff --git a/quantum/painter/qp_stream.h b/quantum/painter/qp_stream.h index 4f2b612e43..510b408d6e 100644 --- a/quantum/painter/qp_stream.h +++ b/quantum/painter/qp_stream.h @@ -62,7 +62,7 @@ typedef struct qp_stream_t { typedef struct qp_memory_stream_t { qp_stream_t base; - uint8_t * buffer; + uint8_t *buffer; int32_t length; int32_t position; bool is_eof; @@ -77,7 +77,7 @@ qp_memory_stream_t qp_make_memory_stream(void *buffer, int32_t length); typedef struct qp_file_stream_t { qp_stream_t base; - FILE * file; + FILE *file; } qp_file_stream_t; qp_file_stream_t qp_make_file_stream(FILE *f); diff --git a/quantum/process_keycode/process_autocorrect.c b/quantum/process_keycode/process_autocorrect.c index 0cde520778..6696ea25a8 100644 --- a/quantum/process_keycode/process_autocorrect.c +++ b/quantum/process_keycode/process_autocorrect.c @@ -309,7 +309,7 @@ bool process_autocorrect(uint16_t keycode, keyrecord_t *record) { if (code & 128) { // A typo was found! Apply autocorrect. const uint8_t backspaces = (code & 63) + !record->event.pressed; - const char * changes = (const char *)(autocorrect_data + state + 1); + const char *changes = (const char *)(autocorrect_data + state + 1); /* Gather info about the typo'd word * diff --git a/quantum/process_keycode/process_combo.c b/quantum/process_keycode/process_combo.c index c99a66a74b..3fdb732c41 100644 --- a/quantum/process_keycode/process_combo.c +++ b/quantum/process_keycode/process_combo.c @@ -225,7 +225,7 @@ static inline void dump_key_buffer(void) { key_buffer_next = key_buffer_i + 1; queued_record_t *qrecord = &key_buffer[key_buffer_i]; - keyrecord_t * record = &qrecord->record; + keyrecord_t *record = &qrecord->record; if (IS_NOEVENT(record->event)) { continue; @@ -318,14 +318,14 @@ void apply_combo(uint16_t combo_index, combo_t *combo) { #if defined(EXTRA_EXTRA_LONG_COMBOS) uint32_t state = 0; #elif defined(EXTRA_LONG_COMBOS) - uint16_t state = 0; + uint16_t state = 0; #else uint8_t state = 0; #endif for (uint8_t key_buffer_i = 0; key_buffer_i < key_buffer_size; key_buffer_i++) { queued_record_t *qrecord = &key_buffer[key_buffer_i]; - keyrecord_t * record = &qrecord->record; + keyrecord_t *record = &qrecord->record; uint16_t keycode = qrecord->keycode; uint8_t key_count = 0; @@ -361,7 +361,7 @@ static inline void apply_combos(void) { // Apply all buffered normal combos. for (uint8_t i = combo_buffer_read; i != combo_buffer_write; INCREMENT_MOD(i)) { queued_combo_t *buffered_combo = &combo_buffer[i]; - combo_t * combo = combo_get(buffered_combo->combo_index); + combo_t *combo = combo_get(buffered_combo->combo_index); #ifdef COMBO_MUST_TAP_PER_COMBO if (get_combo_must_tap(buffered_combo->combo_index, combo)) { @@ -466,7 +466,7 @@ static combo_key_action_t process_single_combo(combo_t *combo, uint16_t keycode, combo_t *drop = NULL; for (uint8_t combo_buffer_i = combo_buffer_read; combo_buffer_i != combo_buffer_write; INCREMENT_MOD(combo_buffer_i)) { queued_combo_t *qcombo = &combo_buffer[combo_buffer_i]; - combo_t * buffered_combo = combo_get(qcombo->combo_index); + combo_t *buffered_combo = combo_get(qcombo->combo_index); if ((drop = overlaps(buffered_combo, combo))) { DISABLE_COMBO(drop); @@ -574,8 +574,8 @@ bool process_combo(uint16_t keycode, keyrecord_t *record) { /* Only check keycodes from one layer. */ keycode = keymap_key_to_keycode(COMBO_ONLY_FROM_LAYER, record->event.key); #else - uint8_t highest_layer = get_highest_layer(layer_state | default_layer_state); - uint8_t ref_layer = combo_ref_from_layer(highest_layer); + uint8_t highest_layer = get_highest_layer(layer_state | default_layer_state); + uint8_t ref_layer = combo_ref_from_layer(highest_layer); if (ref_layer != highest_layer) { keycode = keymap_key_to_keycode(ref_layer, record->event.key); } diff --git a/quantum/process_keycode/process_combo.h b/quantum/process_keycode/process_combo.h index f1d534236e..201a53e259 100644 --- a/quantum/process_keycode/process_combo.h +++ b/quantum/process_keycode/process_combo.h @@ -45,8 +45,8 @@ typedef struct combo_t { #ifdef EXTRA_SHORT_COMBOS uint8_t state; #else - bool disabled; - bool active; + bool disabled; + bool active; # if defined(EXTRA_EXTRA_LONG_COMBOS) uint32_t state; # elif defined(EXTRA_LONG_COMBOS) @@ -57,10 +57,8 @@ typedef struct combo_t { #endif } combo_t; -#define COMBO(ck, ca) \ - { .keys = &(ck)[0], .keycode = (ca) } -#define COMBO_ACTION(ck) \ - { .keys = &(ck)[0] } +#define COMBO(ck, ca) {.keys = &(ck)[0], .keycode = (ca)} +#define COMBO_ACTION(ck) {.keys = &(ck)[0]} #define COMBO_END 0 #ifndef COMBO_TERM diff --git a/quantum/process_keycode/process_key_lock.c b/quantum/process_keycode/process_key_lock.c index 2542e32ec2..cd691f6f5e 100644 --- a/quantum/process_keycode/process_key_lock.c +++ b/quantum/process_keycode/process_key_lock.c @@ -20,7 +20,7 @@ #define BV_64(shift) (((uint64_t)1) << (shift)) #define GET_KEY_ARRAY(code) (((code) < 0x40) ? key_state[0] : ((code) < 0x80) ? key_state[1] : ((code) < 0xC0) ? key_state[2] : key_state[3]) -#define GET_CODE_INDEX(code) (((code) < 0x40) ? (code) : ((code) < 0x80) ? (code)-0x40 : ((code) < 0xC0) ? (code)-0x80 : (code)-0xC0) +#define GET_CODE_INDEX(code) (((code) < 0x40) ? (code) : ((code) < 0x80) ? (code) - 0x40 : ((code) < 0xC0) ? (code) - 0x80 : (code) - 0xC0) #define KEY_STATE(code) (GET_KEY_ARRAY(code) & BV_64(GET_CODE_INDEX(code))) == BV_64(GET_CODE_INDEX(code)) #define SET_KEY_ARRAY_STATE(code, val) \ do { \ diff --git a/quantum/process_keycode/process_key_override.c b/quantum/process_keycode/process_key_override.c index ce30477ee8..871af874c0 100644 --- a/quantum/process_keycode/process_key_override.c +++ b/quantum/process_keycode/process_key_override.c @@ -39,7 +39,8 @@ # define key_override_printf dprintf #else # define key_override_printf(str, ...) \ - {} + { \ + } #endif // Helpers diff --git a/quantum/process_keycode/process_tap_dance.h b/quantum/process_keycode/process_tap_dance.h index 5cccbdf439..b64321da0c 100644 --- a/quantum/process_keycode/process_tap_dance.h +++ b/quantum/process_keycode/process_tap_dance.h @@ -57,23 +57,41 @@ typedef struct { void (*layer_function)(uint8_t); } tap_dance_dual_role_t; -#define ACTION_TAP_DANCE_DOUBLE(kc1, kc2) \ - { .fn = {tap_dance_pair_on_each_tap, tap_dance_pair_finished, tap_dance_pair_reset, NULL}, .user_data = (void *)&((tap_dance_pair_t){kc1, kc2}), } +#define ACTION_TAP_DANCE_DOUBLE(kc1, kc2) \ + { \ + .fn = {tap_dance_pair_on_each_tap, tap_dance_pair_finished, tap_dance_pair_reset, NULL}, \ + .user_data = (void *)&((tap_dance_pair_t){kc1, kc2}), \ + } -#define ACTION_TAP_DANCE_LAYER_MOVE(kc, layer) \ - { .fn = {tap_dance_dual_role_on_each_tap, tap_dance_dual_role_finished, tap_dance_dual_role_reset, NULL}, .user_data = (void *)&((tap_dance_dual_role_t){kc, layer, layer_move}), } +#define ACTION_TAP_DANCE_LAYER_MOVE(kc, layer) \ + { \ + .fn = {tap_dance_dual_role_on_each_tap, tap_dance_dual_role_finished, tap_dance_dual_role_reset, NULL}, \ + .user_data = (void *)&((tap_dance_dual_role_t){kc, layer, layer_move}), \ + } -#define ACTION_TAP_DANCE_LAYER_TOGGLE(kc, layer) \ - { .fn = {NULL, tap_dance_dual_role_finished, tap_dance_dual_role_reset, NULL}, .user_data = (void *)&((tap_dance_dual_role_t){kc, layer, layer_invert}), } +#define ACTION_TAP_DANCE_LAYER_TOGGLE(kc, layer) \ + { \ + .fn = {NULL, tap_dance_dual_role_finished, tap_dance_dual_role_reset, NULL}, \ + .user_data = (void *)&((tap_dance_dual_role_t){kc, layer, layer_invert}), \ + } -#define ACTION_TAP_DANCE_FN(user_fn) \ - { .fn = {NULL, user_fn, NULL, NULL}, .user_data = NULL, } +#define ACTION_TAP_DANCE_FN(user_fn) \ + { \ + .fn = {NULL, user_fn, NULL, NULL}, \ + .user_data = NULL, \ + } #define ACTION_TAP_DANCE_FN_ADVANCED(user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset) \ - { .fn = {user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset, NULL}, .user_data = NULL, } + { \ + .fn = {user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset, NULL}, \ + .user_data = NULL, \ + } #define ACTION_TAP_DANCE_FN_ADVANCED_WITH_RELEASE(user_fn_on_each_tap, user_fn_on_each_release, user_fn_on_dance_finished, user_fn_on_dance_reset) \ - { .fn = {user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset, user_fn_on_each_release}, .user_data = NULL, } + { \ + .fn = {user_fn_on_each_tap, user_fn_on_dance_finished, user_fn_on_dance_reset, user_fn_on_each_release}, \ + .user_data = NULL, \ + } #define TD_INDEX(code) QK_TAP_DANCE_GET_INDEX(code) #define TAP_DANCE_KEYCODE(state) TD(((tap_dance_action_t *)state) - tap_dance_actions) diff --git a/quantum/quantum_keycodes.h b/quantum/quantum_keycodes.h index a1ae7ed0be..911ec8e29f 100644 --- a/quantum/quantum_keycodes.h +++ b/quantum/quantum_keycodes.h @@ -39,7 +39,7 @@ // Generic decoding for the whole QK_MODS range #define QK_MODS_GET_MODS(kc) (((kc) >> 8) & 0x1F) -#define QK_MODS_GET_BASIC_KEYCODE(kc) ((kc)&0xFF) +#define QK_MODS_GET_BASIC_KEYCODE(kc) ((kc) & 0xFF) // Modified keycodes #define LCTL(kc) (QK_LCTL | (kc)) @@ -90,37 +90,37 @@ #define MEH(kc) (QK_LCTL | QK_LSFT | QK_LALT | (kc)) // GOTO layer - 32 layer max -#define TO(layer) (QK_TO | ((layer)&0x1F)) -#define QK_TO_GET_LAYER(kc) ((kc)&0x1F) +#define TO(layer) (QK_TO | ((layer) & 0x1F)) +#define QK_TO_GET_LAYER(kc) ((kc) & 0x1F) // Momentary switch layer - 32 layer max -#define MO(layer) (QK_MOMENTARY | ((layer)&0x1F)) -#define QK_MOMENTARY_GET_LAYER(kc) ((kc)&0x1F) +#define MO(layer) (QK_MOMENTARY | ((layer) & 0x1F)) +#define QK_MOMENTARY_GET_LAYER(kc) ((kc) & 0x1F) // Set default layer - 32 layer max -#define DF(layer) (QK_DEF_LAYER | ((layer)&0x1F)) -#define QK_DEF_LAYER_GET_LAYER(kc) ((kc)&0x1F) +#define DF(layer) (QK_DEF_LAYER | ((layer) & 0x1F)) +#define QK_DEF_LAYER_GET_LAYER(kc) ((kc) & 0x1F) // Set persistent default layer - 32 layer max -#define PDF(layer) (QK_PERSISTENT_DEF_LAYER | ((layer)&0x1F)) -#define QK_PERSISTENT_DEF_LAYER_GET_LAYER(kc) ((kc)&0x1F) +#define PDF(layer) (QK_PERSISTENT_DEF_LAYER | ((layer) & 0x1F)) +#define QK_PERSISTENT_DEF_LAYER_GET_LAYER(kc) ((kc) & 0x1F) // Toggle to layer - 32 layer max -#define TG(layer) (QK_TOGGLE_LAYER | ((layer)&0x1F)) -#define QK_TOGGLE_LAYER_GET_LAYER(kc) ((kc)&0x1F) +#define TG(layer) (QK_TOGGLE_LAYER | ((layer) & 0x1F)) +#define QK_TOGGLE_LAYER_GET_LAYER(kc) ((kc) & 0x1F) // One-shot layer - 32 layer max -#define OSL(layer) (QK_ONE_SHOT_LAYER | ((layer)&0x1F)) -#define QK_ONE_SHOT_LAYER_GET_LAYER(kc) ((kc)&0x1F) +#define OSL(layer) (QK_ONE_SHOT_LAYER | ((layer) & 0x1F)) +#define QK_ONE_SHOT_LAYER_GET_LAYER(kc) ((kc) & 0x1F) // L-ayer M-od: Momentary switch layer with modifiers active - 16 layer max -#define LM(layer, mod) (QK_LAYER_MOD | (((layer)&0xF) << 5) | ((mod)&0x1F)) +#define LM(layer, mod) (QK_LAYER_MOD | (((layer) & 0xF) << 5) | ((mod) & 0x1F)) #define QK_LAYER_MOD_GET_LAYER(kc) (((kc) >> 5) & 0xF) -#define QK_LAYER_MOD_GET_MODS(kc) ((kc)&0x1F) +#define QK_LAYER_MOD_GET_MODS(kc) ((kc) & 0x1F) // One-shot mod -#define OSM(mod) (QK_ONE_SHOT_MOD | ((mod)&0x1F)) -#define QK_ONE_SHOT_MOD_GET_MODS(kc) ((kc)&0x1F) +#define OSM(mod) (QK_ONE_SHOT_MOD | ((mod) & 0x1F)) +#define QK_ONE_SHOT_MOD_GET_MODS(kc) ((kc) & 0x1F) #define OS_LCTL OSM(MOD_LCTL) #define OS_LSFT OSM(MOD_LSFT) @@ -158,18 +158,18 @@ #define OS_HYPR OSM(MOD_LCTL | MOD_LSFT | MOD_LALT | MOD_LGUI) // Layer tap-toggle - 32 layer max -#define TT(layer) (QK_LAYER_TAP_TOGGLE | ((layer)&0x1F)) -#define QK_LAYER_TAP_TOGGLE_GET_LAYER(kc) ((kc)&0x1F) +#define TT(layer) (QK_LAYER_TAP_TOGGLE | ((layer) & 0x1F)) +#define QK_LAYER_TAP_TOGGLE_GET_LAYER(kc) ((kc) & 0x1F) // L-ayer, T-ap - 256 keycode max, 16 layer max -#define LT(layer, kc) (QK_LAYER_TAP | (((layer)&0xF) << 8) | ((kc)&0xFF)) +#define LT(layer, kc) (QK_LAYER_TAP | (((layer) & 0xF) << 8) | ((kc) & 0xFF)) #define QK_LAYER_TAP_GET_LAYER(kc) (((kc) >> 8) & 0xF) -#define QK_LAYER_TAP_GET_TAP_KEYCODE(kc) ((kc)&0xFF) +#define QK_LAYER_TAP_GET_TAP_KEYCODE(kc) ((kc) & 0xFF) // M-od, T-ap - 256 keycode max -#define MT(mod, kc) (QK_MOD_TAP | (((mod)&0x1F) << 8) | ((kc)&0xFF)) +#define MT(mod, kc) (QK_MOD_TAP | (((mod) & 0x1F) << 8) | ((kc) & 0xFF)) #define QK_MOD_TAP_GET_MODS(kc) (((kc) >> 8) & 0x1F) -#define QK_MOD_TAP_GET_TAP_KEYCODE(kc) ((kc)&0xFF) +#define QK_MOD_TAP_GET_TAP_KEYCODE(kc) ((kc) & 0xFF) // Mod-Tap shortcuts #define LCTL_T(kc) MT(MOD_LCTL, kc) @@ -230,23 +230,23 @@ // Unicode aliases // UNICODE_ENABLE - Allows Unicode input up to 0x7FFF #define UC(c) (QK_UNICODE | (c)) -#define QK_UNICODE_GET_CODE_POINT(kc) ((kc)&0x7FFF) +#define QK_UNICODE_GET_CODE_POINT(kc) ((kc) & 0x7FFF) // UNICODEMAP_ENABLE - Allows Unicode input up to 0x10FFFF, requires unicode_map -#define UM(i) (QK_UNICODEMAP | ((i)&0x3FFF)) -#define QK_UNICODEMAP_GET_INDEX(kc) ((kc)&0x3FFF) +#define UM(i) (QK_UNICODEMAP | ((i) & 0x3FFF)) +#define QK_UNICODEMAP_GET_INDEX(kc) ((kc) & 0x3FFF) -#define UP(i, j) (QK_UNICODEMAP_PAIR | ((i)&0x7F) | (((j)&0x7F) << 7)) // 127 max i and j -#define QK_UNICODEMAP_PAIR_GET_UNSHIFTED_INDEX(kc) ((kc)&0x7F) +#define UP(i, j) (QK_UNICODEMAP_PAIR | ((i) & 0x7F) | (((j) & 0x7F) << 7)) // 127 max i and j +#define QK_UNICODEMAP_PAIR_GET_UNSHIFTED_INDEX(kc) ((kc) & 0x7F) #define QK_UNICODEMAP_PAIR_GET_SHIFTED_INDEX(kc) (((kc) >> 7) & 0x7F) // Swap Hands -#define SH_T(kc) (QK_SWAP_HANDS | ((kc)&0xFF)) -#define QK_SWAP_HANDS_GET_TAP_KEYCODE(kc) ((kc)&0xFF) +#define SH_T(kc) (QK_SWAP_HANDS | ((kc) & 0xFF)) +#define QK_SWAP_HANDS_GET_TAP_KEYCODE(kc) ((kc) & 0xFF) // Tap dance -#define TD(i) (QK_TAP_DANCE | ((i)&0xFF)) -#define QK_TAP_DANCE_GET_INDEX(kc) ((kc)&0xFF) +#define TD(i) (QK_TAP_DANCE | ((i) & 0xFF)) +#define QK_TAP_DANCE_GET_INDEX(kc) ((kc) & 0xFF) // MIDI aliases #define MIDI_TONE_MIN QK_MIDI_NOTE_C_0 diff --git a/quantum/rgblight/rgblight.c b/quantum/rgblight/rgblight.c index bfccb472b5..3c4a05844d 100644 --- a/quantum/rgblight/rgblight.c +++ b/quantum/rgblight/rgblight.c @@ -1381,7 +1381,7 @@ void rgblight_effect_twinkle(animation_status_t *anim) { for (uint8_t i = 0; i < rgblight_ranges.effect_num_leds; i++) { TwinkleState *t = &(led_twinkle_state[i]); - hsv_t * c = &(t->hsv); + hsv_t *c = &(t->hsv); if (!random_color) { c->h = rgblight_config.hue; diff --git a/quantum/rgblight/rgblight.h b/quantum/rgblight/rgblight.h index c061e71895..e70c081c2a 100644 --- a/quantum/rgblight/rgblight.h +++ b/quantum/rgblight/rgblight.h @@ -186,8 +186,7 @@ typedef struct { # define RGBLIGHT_USE_TIMER # define RGBLIGHT_END_SEGMENT_INDEX (255) -# define RGBLIGHT_END_SEGMENTS \ - { RGBLIGHT_END_SEGMENT_INDEX, 0, 0, 0 } +# define RGBLIGHT_END_SEGMENTS {RGBLIGHT_END_SEGMENT_INDEX, 0, 0, 0} # ifndef RGBLIGHT_MAX_LAYERS # define RGBLIGHT_MAX_LAYERS 8 # endif @@ -202,10 +201,8 @@ typedef uint32_t rgblight_layer_mask_t; # else # error invalid RGBLIGHT_MAX_LAYERS value (must be <= 32) # endif -# define RGBLIGHT_LAYER_SEGMENTS(...) \ - { __VA_ARGS__, RGBLIGHT_END_SEGMENTS } -# define RGBLIGHT_LAYERS_LIST(...) \ - { __VA_ARGS__, NULL } +# define RGBLIGHT_LAYER_SEGMENTS(...) {__VA_ARGS__, RGBLIGHT_END_SEGMENTS} +# define RGBLIGHT_LAYERS_LIST(...) {__VA_ARGS__, NULL} // Get/set enabled rgblight layers void rgblight_set_layer_state(uint8_t layer, bool enabled); diff --git a/quantum/secure.c b/quantum/secure.c index f2a567f31d..2f589877b7 100644 --- a/quantum/secure.c +++ b/quantum/secure.c @@ -14,10 +14,7 @@ #endif #ifndef SECURE_UNLOCK_SEQUENCE -# define SECURE_UNLOCK_SEQUENCE \ - { \ - { 0, 0 } \ - } +# define SECURE_UNLOCK_SEQUENCE {{0, 0}} #endif static secure_status_t secure_status = SECURE_LOCKED; diff --git a/quantum/split_common/split_util.c b/quantum/split_common/split_util.c index 59b6009ec4..a35a16685a 100644 --- a/quantum/split_common/split_util.c +++ b/quantum/split_common/split_util.c @@ -167,7 +167,7 @@ __attribute__((weak)) bool is_keyboard_left_impl(void) { # pragma message "Faking EE_HANDS for right hand" const bool should_be_left = false; # endif - bool is_left = eeconfig_read_handedness(); + bool is_left = eeconfig_read_handedness(); if (is_left != should_be_left) { eeconfig_update_handedness(should_be_left); } diff --git a/quantum/split_common/transactions.c b/quantum/split_common/transactions.c index f66b2ad89f..64a81ef31f 100644 --- a/quantum/split_common/transactions.c +++ b/quantum/split_common/transactions.c @@ -73,16 +73,13 @@ #define sizeof_member(type, member) sizeof(((type *)NULL)->member) -#define trans_initiator2target_initializer_cb(member, cb) \ - { sizeof_member(split_shared_memory_t, member), offsetof(split_shared_memory_t, member), 0, 0, cb } +#define trans_initiator2target_initializer_cb(member, cb) {sizeof_member(split_shared_memory_t, member), offsetof(split_shared_memory_t, member), 0, 0, cb} #define trans_initiator2target_initializer(member) trans_initiator2target_initializer_cb(member, NULL) -#define trans_target2initiator_initializer_cb(member, cb) \ - { 0, 0, sizeof_member(split_shared_memory_t, member), offsetof(split_shared_memory_t, member), cb } +#define trans_target2initiator_initializer_cb(member, cb) {0, 0, sizeof_member(split_shared_memory_t, member), offsetof(split_shared_memory_t, member), cb} #define trans_target2initiator_initializer(member) trans_target2initiator_initializer_cb(member, NULL) -#define trans_initiator2target_cb(cb) \ - { 0, 0, 0, 0, cb } +#define trans_initiator2target_cb(cb) {0, 0, 0, 0, cb} #define transport_write(id, data, length) transport_execute_transaction(id, data, length, NULL, 0) #define transport_read(id, data, length) transport_execute_transaction(id, NULL, 0, data, length) diff --git a/quantum/util.h b/quantum/util.h index 61ec7ac153..99a0c0f627 100644 --- a/quantum/util.h +++ b/quantum/util.h @@ -24,7 +24,7 @@ * @brief Computes the rounded up result of a division of two integers at * compile time. */ -# define CEILING(dividend, divisor) (((dividend) + (divisor)-1) / (divisor)) +# define CEILING(dividend, divisor) (((dividend) + (divisor) - 1) / (divisor)) #endif #if !defined(IS_ARRAY) diff --git a/quantum/via.c b/quantum/via.c index 130ff74794..0a4eb29401 100644 --- a/quantum/via.c +++ b/quantum/via.c @@ -68,7 +68,7 @@ // Can be called in an overriding via_init_kb() to test if keyboard level code usage of // EEPROM is invalid and use/save defaults. bool via_eeprom_is_valid(void) { - char * p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" + char *p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" uint8_t magic0 = ((p[2] & 0x0F) << 4) | (p[3] & 0x0F); uint8_t magic1 = ((p[5] & 0x0F) << 4) | (p[6] & 0x0F); uint8_t magic2 = ((p[8] & 0x0F) << 4) | (p[9] & 0x0F); @@ -85,7 +85,7 @@ bool via_eeprom_is_valid(void) { // Keyboard level code (eg. via_init_kb()) should not call this void via_eeprom_set_valid(bool valid) { if (valid) { - char * p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" + char *p = QMK_BUILDDATE; // e.g. "2019-11-05-11:29:54" uint8_t magic0 = ((p[2] & 0x0F) << 4) | (p[3] & 0x0F); uint8_t magic1 = ((p[5] & 0x0F) << 4) | (p[6] & 0x0F); uint8_t magic2 = ((p[8] & 0x0F) << 4) | (p[9] & 0x0F); diff --git a/quantum/wear_leveling/wear_leveling.c b/quantum/wear_leveling/wear_leveling.c index 258f074a5c..f65ff9c1ca 100644 --- a/quantum/wear_leveling/wear_leveling.c +++ b/quantum/wear_leveling/wear_leveling.c @@ -358,7 +358,7 @@ static wear_leveling_status_t wear_leveling_append_raw(backing_store_int_t value * @return true if consolidation occurred */ static wear_leveling_status_t wear_leveling_write_raw_multibyte(uint32_t address, const void *value, size_t length) { - const uint8_t * p = value; + const uint8_t *p = value; write_log_entry_t log = LOG_ENTRY_MAKE_MULTIBYTE(address, length); for (size_t i = 0; i < length; ++i) { log.raw8[3 + i] = p[i]; @@ -415,7 +415,7 @@ static wear_leveling_status_t wear_leveling_write_raw_multibyte(uint32_t address * Handles the actual writing of logical data into the write log section of the backing store. */ static wear_leveling_status_t wear_leveling_write_raw(uint32_t address, const void *value, size_t length) { - const uint8_t * p = value; + const uint8_t *p = value; size_t remaining = length; wear_leveling_status_t status = WEAR_LEVELING_SUCCESS; while (remaining > 0) { @@ -555,7 +555,7 @@ static wear_leveling_status_t wear_leveling_playback_log(void) { if (!ok) { wl_dprintf("Failed to load from backing store, skipping playback of write log\n"); cancel_playback = true; - status = WEAR_LEVELING_FAILED; + status = WEAR_LEVELING_FAILED; break; } address += (BACKING_STORE_WRITE_SIZE); diff --git a/tests/tap_hold_configurations/retro_tapping/config.h b/tests/tap_hold_configurations/retro_tapping/config.h index cc9f162477..b776b7466e 100644 --- a/tests/tap_hold_configurations/retro_tapping/config.h +++ b/tests/tap_hold_configurations/retro_tapping/config.h @@ -20,5 +20,4 @@ #define RETRO_TAPPING #define DUMMY_MOD_NEUTRALIZER_KEYCODE KC_RIGHT_CTRL -#define MODS_TO_NEUTRALIZE \ - { MOD_BIT(KC_LEFT_GUI) } +#define MODS_TO_NEUTRALIZE {MOD_BIT(KC_LEFT_GUI)} diff --git a/tmk_core/protocol/chibios/usb_driver.c b/tmk_core/protocol/chibios/usb_driver.c index 7c3ce44687..8b471cba56 100644 --- a/tmk_core/protocol/chibios/usb_driver.c +++ b/tmk_core/protocol/chibios/usb_driver.c @@ -186,7 +186,7 @@ void usb_endpoint_out_configure_cb(usb_endpoint_out_t *endpoint) { void usb_endpoint_in_tx_complete_cb(USBDriver *usbp, usbep_t ep) { usb_endpoint_in_t *endpoint = usbp->in_params[ep - 1U]; size_t n; - uint8_t * buffer; + uint8_t *buffer; if (endpoint == NULL) { return; diff --git a/tmk_core/protocol/chibios/usb_endpoints.c b/tmk_core/protocol/chibios/usb_endpoints.c index 856df62426..00536845b2 100644 --- a/tmk_core/protocol/chibios/usb_endpoints.c +++ b/tmk_core/protocol/chibios/usb_endpoints.c @@ -68,7 +68,7 @@ usb_endpoint_in_t usb_endpoints_in[USB_ENDPOINT_IN_COUNT] = { # if defined(USB_ENDPOINTS_ARE_REORDERABLE) [USB_ENDPOINT_IN_CONSOLE] = QMK_USB_ENDPOINT_IN_SHARED(USB_EP_MODE_TYPE_INTR, CONSOLE_EPSIZE, CONSOLE_IN_EPNUM, CONSOLE_IN_CAPACITY, NULL, QMK_USB_REPORT_STORAGE_DEFAULT(CONSOLE_EPSIZE)), # else - [USB_ENDPOINT_IN_CONSOLE] = QMK_USB_ENDPOINT_IN(USB_EP_MODE_TYPE_INTR, CONSOLE_EPSIZE, CONSOLE_IN_EPNUM, CONSOLE_IN_CAPACITY, NULL, QMK_USB_REPORT_STORAGE_DEFAULT(CONSOLE_EPSIZE)), + [USB_ENDPOINT_IN_CONSOLE] = QMK_USB_ENDPOINT_IN(USB_EP_MODE_TYPE_INTR, CONSOLE_EPSIZE, CONSOLE_IN_EPNUM, CONSOLE_IN_CAPACITY, NULL, QMK_USB_REPORT_STORAGE_DEFAULT(CONSOLE_EPSIZE)), # endif #endif @@ -76,7 +76,7 @@ usb_endpoint_in_t usb_endpoints_in[USB_ENDPOINT_IN_COUNT] = { # if defined(USB_ENDPOINTS_ARE_REORDERABLE) [USB_ENDPOINT_IN_RAW] = QMK_USB_ENDPOINT_IN_SHARED(USB_EP_MODE_TYPE_INTR, RAW_EPSIZE, RAW_IN_EPNUM, RAW_IN_CAPACITY, NULL, QMK_USB_REPORT_STORAGE_DEFAULT(RAW_EPSIZE)), # else - [USB_ENDPOINT_IN_RAW] = QMK_USB_ENDPOINT_IN(USB_EP_MODE_TYPE_INTR, RAW_EPSIZE, RAW_IN_EPNUM, RAW_IN_CAPACITY, NULL, QMK_USB_REPORT_STORAGE_DEFAULT(RAW_EPSIZE)), + [USB_ENDPOINT_IN_RAW] = QMK_USB_ENDPOINT_IN(USB_EP_MODE_TYPE_INTR, RAW_EPSIZE, RAW_IN_EPNUM, RAW_IN_CAPACITY, NULL, QMK_USB_REPORT_STORAGE_DEFAULT(RAW_EPSIZE)), # endif #endif @@ -84,7 +84,7 @@ usb_endpoint_in_t usb_endpoints_in[USB_ENDPOINT_IN_COUNT] = { # if defined(USB_ENDPOINTS_ARE_REORDERABLE) [USB_ENDPOINT_IN_MIDI] = QMK_USB_ENDPOINT_IN_SHARED(USB_EP_MODE_TYPE_BULK, MIDI_STREAM_EPSIZE, MIDI_STREAM_IN_EPNUM, MIDI_STREAM_IN_CAPACITY, NULL, NULL), # else - [USB_ENDPOINT_IN_MIDI] = QMK_USB_ENDPOINT_IN(USB_EP_MODE_TYPE_BULK, MIDI_STREAM_EPSIZE, MIDI_STREAM_IN_EPNUM, MIDI_STREAM_IN_CAPACITY, NULL, NULL), + [USB_ENDPOINT_IN_MIDI] = QMK_USB_ENDPOINT_IN(USB_EP_MODE_TYPE_BULK, MIDI_STREAM_EPSIZE, MIDI_STREAM_IN_EPNUM, MIDI_STREAM_IN_CAPACITY, NULL, NULL), # endif #endif diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c index b798a8d1cb..b8497684d6 100644 --- a/tmk_core/protocol/chibios/usb_main.c +++ b/tmk_core/protocol/chibios/usb_main.c @@ -80,7 +80,7 @@ static const USBDescriptor *usb_get_descriptor_cb(USBDriver *usbp, uint8_t dtype static USBDescriptor descriptor; descriptor.ud_string = NULL; - descriptor.ud_size = get_usb_descriptor(setup->wValue.word, setup->wIndex, setup->wLength, (const void **const) & descriptor.ud_string); + descriptor.ud_size = get_usb_descriptor(setup->wValue.word, setup->wIndex, setup->wLength, (const void **const)&descriptor.ud_string); if (descriptor.ud_string == NULL) { return NULL; diff --git a/tmk_core/protocol/usb_descriptor.h b/tmk_core/protocol/usb_descriptor.h index 1de8c5ec88..366a380fdd 100644 --- a/tmk_core/protocol/usb_descriptor.h +++ b/tmk_core/protocol/usb_descriptor.h @@ -223,7 +223,7 @@ enum usb_endpoints { # ifdef USB_ENDPOINTS_ARE_REORDERABLE # define RAW_OUT_EPNUM RAW_IN_EPNUM # else - RAW_OUT_EPNUM = NEXT_EPNUM, + RAW_OUT_EPNUM = NEXT_EPNUM, # endif #endif @@ -250,7 +250,7 @@ enum usb_endpoints { # ifdef USB_ENDPOINTS_ARE_REORDERABLE # define CDC_OUT_EPNUM CDC_IN_EPNUM # else - CDC_OUT_EPNUM = NEXT_EPNUM, + CDC_OUT_EPNUM = NEXT_EPNUM, # endif #endif From 43bbb5e99a2c552c127d30dfdf317fb70b143b40 Mon Sep 17 00:00:00 2001 From: QMK Bot Date: Mon, 1 Dec 2025 07:46:22 +1100 Subject: [PATCH 123/255] [CI] Format code according to conventions (#25828) Format code according to conventions --- drivers/painter/generic/qp_surface_internal.h | 2 +- drivers/painter/generic/qp_surface_rgb888.c | 4 ++-- quantum/led_matrix/led_matrix.c | 3 +-- quantum/process_keycode/process_tap_dance.c | 6 +++--- quantum/rgb_matrix/rgb_matrix.c | 3 +-- 5 files changed, 8 insertions(+), 10 deletions(-) diff --git a/drivers/painter/generic/qp_surface_internal.h b/drivers/painter/generic/qp_surface_internal.h index e7a36550c1..0b4d32fa34 100644 --- a/drivers/painter/generic/qp_surface_internal.h +++ b/drivers/painter/generic/qp_surface_internal.h @@ -45,7 +45,7 @@ typedef struct surface_painter_device_t { void *buffer; uint8_t *u8buffer; uint16_t *u16buffer; - rgb_t * rgbbuffer; + rgb_t *rgbbuffer; }; // Manually manage the viewport for streaming pixel data to the display diff --git a/drivers/painter/generic/qp_surface_rgb888.c b/drivers/painter/generic/qp_surface_rgb888.c index 68c824b0e4..2c04136c36 100644 --- a/drivers/painter/generic/qp_surface_rgb888.c +++ b/drivers/painter/generic/qp_surface_rgb888.c @@ -43,7 +43,7 @@ static inline void stream_pixdata_rgb888(surface_painter_device_t *surface, cons // Stream pixel data to the current write position in GRAM static bool qp_surface_pixdata_rgb888(painter_device_t device, const void *pixel_data, uint32_t native_pixel_count) { - painter_driver_t * driver = (painter_driver_t *)device; + painter_driver_t *driver = (painter_driver_t *)device; surface_painter_device_t *surface = (surface_painter_device_t *)driver; stream_pixdata_rgb888(surface, (const rgb_t *)pixel_data, native_pixel_count); return true; @@ -84,7 +84,7 @@ static bool rgb888_target_pixdata_transfer(painter_driver_t *surface_driver, pai // Housekeeping of the amount of pixels to transfer uint32_t total_pixel_count = (8 * QUANTUM_PAINTER_PIXDATA_BUFFER_SIZE) / surface_driver->native_bits_per_pixel; uint32_t pixel_counter = 0; - rgb_t * target_buffer = (rgb_t *)qp_internal_global_pixdata_buffer; + rgb_t *target_buffer = (rgb_t *)qp_internal_global_pixdata_buffer; // Fill the global pixdata area so that we can start transferring to the panel for (uint16_t y = t; y <= b; ++y) { diff --git a/quantum/led_matrix/led_matrix.c b/quantum/led_matrix/led_matrix.c index 715d520d1c..a751f08c75 100644 --- a/quantum/led_matrix/led_matrix.c +++ b/quantum/led_matrix/led_matrix.c @@ -71,8 +71,7 @@ last_hit_t g_last_hit_tracker; #endif // LED_MATRIX_KEYREACTIVE_ENABLED #ifndef LED_MATRIX_FLAG_STEPS -# define LED_MATRIX_FLAG_STEPS \ - { LED_FLAG_ALL, LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER, LED_FLAG_NONE } +# define LED_MATRIX_FLAG_STEPS {LED_FLAG_ALL, LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER, LED_FLAG_NONE} #endif static const uint8_t led_matrix_flag_steps[] = LED_MATRIX_FLAG_STEPS; #define LED_MATRIX_FLAG_STEPS_COUNT ARRAY_SIZE(led_matrix_flag_steps) diff --git a/quantum/process_keycode/process_tap_dance.c b/quantum/process_keycode/process_tap_dance.c index 36a94d8d28..399f71a827 100644 --- a/quantum/process_keycode/process_tap_dance.c +++ b/quantum/process_keycode/process_tap_dance.c @@ -168,7 +168,7 @@ static inline void process_tap_dance_action_on_dance_finished(tap_dance_action_t bool preprocess_tap_dance(uint16_t keycode, keyrecord_t *record) { tap_dance_action_t *action; - tap_dance_state_t * state; + tap_dance_state_t *state; if (!record->event.pressed) return false; @@ -197,7 +197,7 @@ bool preprocess_tap_dance(uint16_t keycode, keyrecord_t *record) { bool process_tap_dance(uint16_t keycode, keyrecord_t *record) { uint8_t td_index; tap_dance_action_t *action; - tap_dance_state_t * state; + tap_dance_state_t *state; switch (keycode) { case QK_TAP_DANCE ... QK_TAP_DANCE_MAX: @@ -233,7 +233,7 @@ bool process_tap_dance(uint16_t keycode, keyrecord_t *record) { void tap_dance_task(void) { tap_dance_action_t *action; - tap_dance_state_t * state; + tap_dance_state_t *state; if (!active_td || timer_elapsed(last_tap_time) <= GET_TAPPING_TERM(active_td, &(keyrecord_t){})) return; diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c index f517190e35..97ae6a3c76 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c @@ -73,8 +73,7 @@ last_hit_t g_last_hit_tracker; #endif // RGB_MATRIX_KEYREACTIVE_ENABLED #ifndef RGB_MATRIX_FLAG_STEPS -# define RGB_MATRIX_FLAG_STEPS \ - { LED_FLAG_ALL, LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER, LED_FLAG_UNDERGLOW, LED_FLAG_NONE } +# define RGB_MATRIX_FLAG_STEPS {LED_FLAG_ALL, LED_FLAG_KEYLIGHT | LED_FLAG_MODIFIER, LED_FLAG_UNDERGLOW, LED_FLAG_NONE} #endif static const uint8_t rgb_matrix_flag_steps[] = RGB_MATRIX_FLAG_STEPS; #define RGB_MATRIX_FLAG_STEPS_COUNT ARRAY_SIZE(rgb_matrix_flag_steps) From 83b42ea9dcbc883200061caca839ea71472b5025 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 1 Dec 2025 01:15:31 +0000 Subject: [PATCH 124/255] Update Bootstrap testing triggers (#25842) --- .github/workflows/bootstrap_testing.yml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/bootstrap_testing.yml b/.github/workflows/bootstrap_testing.yml index 00787c92eb..2890af3de9 100644 --- a/.github/workflows/bootstrap_testing.yml +++ b/.github/workflows/bootstrap_testing.yml @@ -2,17 +2,14 @@ name: Bootstrap Script Testing on: push: - branches: [bootstrap] - paths: - - "util/env-bootstrap.sh" - - ".github/workflows/bootstrap_testing.yml" - - "lib/python/**" - pull_request: branches: [master, develop, xap] paths: - "util/env-bootstrap.sh" - ".github/workflows/bootstrap_testing.yml" - - "lib/python/**" + pull_request: + paths: + - "util/env-bootstrap.sh" + - ".github/workflows/bootstrap_testing.yml" workflow_dispatch: permissions: From 2cac8b587fdef6526330c80799e0a190b75bb2fd Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 1 Dec 2025 01:16:25 +0000 Subject: [PATCH 125/255] Remove macos-13 runner from bootstrap testing (#25843) --- .github/workflows/bootstrap_testing.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/bootstrap_testing.yml b/.github/workflows/bootstrap_testing.yml index 2890af3de9..2e97f83081 100644 --- a/.github/workflows/bootstrap_testing.yml +++ b/.github/workflows/bootstrap_testing.yml @@ -161,7 +161,6 @@ jobs: fail-fast: false matrix: os: - - macos-13 # Intel x64 - macos-14 # Apple Silicon ARM64 - macos-15 # Apple Silicon ARM64 - macos-15-intel # Intel x64 From e2bf515df4c51c4d2e3b442d23e52d6d43f7f726 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 1 Dec 2025 01:17:13 +0000 Subject: [PATCH 126/255] Fix python format warnings (#25841) --- lib/python/qmk/cli/generate/keycodes.py | 6 +++--- lib/python/qmk/json_encoders.py | 4 ++-- lib/python/qmk/painter.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/python/qmk/cli/generate/keycodes.py b/lib/python/qmk/cli/generate/keycodes.py index d686935fa8..d694202aec 100644 --- a/lib/python/qmk/cli/generate/keycodes.py +++ b/lib/python/qmk/cli/generate/keycodes.py @@ -92,15 +92,15 @@ def _generate_helpers(lines, keycodes): for group, codes in temp.items(): lo = keycodes["keycodes"][f'0x{codes[0]:04X}']['key'] hi = keycodes["keycodes"][f'0x{codes[1]:04X}']['key'] - lines.append(f'#define IS_{ _translate_group(group).upper() }_KEYCODE(code) ((code) >= {lo} && (code) <= {hi})') + lines.append(f'#define IS_{_translate_group(group).upper()}_KEYCODE(code) ((code) >= {lo} && (code) <= {hi})') lines.append('') lines.append('// Switch statement Helpers') for group, codes in temp.items(): lo = keycodes["keycodes"][f'0x{codes[0]:04X}']['key'] hi = keycodes["keycodes"][f'0x{codes[1]:04X}']['key'] - name = f'{ _translate_group(group).upper() }_KEYCODE_RANGE' - lines.append(f'#define { name.ljust(35) } {lo} ... {hi}') + name = f'{_translate_group(group).upper()}_KEYCODE_RANGE' + lines.append(f'#define {name.ljust(35)} {lo} ... {hi}') def _generate_aliases(lines, keycodes): diff --git a/lib/python/qmk/json_encoders.py b/lib/python/qmk/json_encoders.py index e8bcf48996..6bad820a76 100755 --- a/lib/python/qmk/json_encoders.py +++ b/lib/python/qmk/json_encoders.py @@ -178,9 +178,9 @@ class KeymapJSONEncoder(QMKJSONEncoder): else: layer[-1].append(f'"{key}"') - layer = [f"{self.indent_str*indent_level}{', '.join(row)}" for row in layer] + layer = [f"{self.indent_str * indent_level}{', '.join(row)}" for row in layer] - return f"{self.indent_str}[\n{newline.join(layer)}\n{self.indent_str*self.indentation_level}]" + return f"{self.indent_str}[\n{newline.join(layer)}\n{self.indent_str * self.indentation_level}]" elif self.primitives_only(obj): return "[" + ", ".join(self.encode(element) for element in obj) + "]" diff --git a/lib/python/qmk/painter.py b/lib/python/qmk/painter.py index ed0372c163..1a07f7442c 100644 --- a/lib/python/qmk/painter.py +++ b/lib/python/qmk/painter.py @@ -129,7 +129,7 @@ def _render_image_metadata(metadata): px = size["width"] * size["height"] # FIXME: May need need more chars here too - deltas.append(f"// Frame {i:3d}: ({l:3d}, {t:3d}) - ({r:3d}, {b:3d}) >> {delta_px:4d}/{px:4d} pixels ({100*delta_px/px:.2f}%)") + deltas.append(f"// Frame {i:3d}: ({l:3d}, {t:3d}) - ({r:3d}, {b:3d}) >> {delta_px:4d}/{px:4d} pixels ({100 * delta_px / px:.2f}%)") if deltas: lines.append("// Areas on delta frames") From 0e6b73c9ff44c8404a74e165a8aa0b258db41f8a Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 1 Dec 2025 21:47:16 +0000 Subject: [PATCH 127/255] 2025q4 develop changelog (#25845) --- docs/ChangeLog/20250831/pr25415.md | 47 ------- docs/ChangeLog/20251130.md | 190 +++++++++++++++++++++++++++++ docs/ChangeLog/20251130/PR25515.md | 3 - docs/ChangeLog/20251130/PR25632.md | 4 - docs/_sidebar.json | 2 +- docs/breaking_changes.md | 20 +-- docs/breaking_changes_history.md | 1 + 7 files changed, 202 insertions(+), 65 deletions(-) delete mode 100644 docs/ChangeLog/20250831/pr25415.md create mode 100644 docs/ChangeLog/20251130.md delete mode 100644 docs/ChangeLog/20251130/PR25515.md delete mode 100644 docs/ChangeLog/20251130/PR25632.md diff --git a/docs/ChangeLog/20250831/pr25415.md b/docs/ChangeLog/20250831/pr25415.md deleted file mode 100644 index 54eb8c737e..0000000000 --- a/docs/ChangeLog/20250831/pr25415.md +++ /dev/null @@ -1,47 +0,0 @@ -# Tap dance state removed from `tap_dance_action_t` - -The tap dance state has been separated from the action structure. Custom tap dance functions now receive the state as a separate parameter instead of accessing it through `action->state`. - -## User Action Required - -If your keymap uses custom tap dance functions that access the tap dance state, you need to update your code. - - - You can't use `action->state`. Instead you need to call `tap_dance_state_t *tap_dance_get_state(uint8_t tap_dance_idx)` to get the state. - - You now get a pointer to the state, so use `->` notation rather than `.` notation to get fields from it. - -### Before: -```c -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - tap_dance_action_t *action; - - switch (keycode) { - case TD(CT_CLN): - action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(keycode)); - if (!record->event.pressed && action->state.count && !action->state.finished) { - tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; - tap_code16(tap_hold->tap); - } - - } - return true; -} -``` - -### After: -```c -bool process_record_user(uint16_t keycode, keyrecord_t *record) { - tap_dance_action_t *action; - tap_dance_state_t* state; - - switch (keycode) { - case TD(CT_CLN): - action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(keycode)); - state = tap_dance_get_state(QK_TAP_DANCE_GET_INDEX(keycode)); - if (!record->event.pressed && state != NULL && state->count && !state->finished) { - tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; - tap_code16(tap_hold->tap); - } - } - return true; -} -``` diff --git a/docs/ChangeLog/20251130.md b/docs/ChangeLog/20251130.md new file mode 100644 index 0000000000..b86d630fa8 --- /dev/null +++ b/docs/ChangeLog/20251130.md @@ -0,0 +1,190 @@ +# QMK Breaking Changes - 2025 Nov 30 Changelog + +## Notable Features {#notable-features} + +### Speculative Hold option for mod-taps: hold mods instantly while unsettled [#25572](https://github.com/qmk/qmk_firmware/pull/25572) + +Speculative Hold makes mod-tap keys more responsive by applying the modifier instantly on keydown, before the tap-hold decision is made. This is especially useful for actions like Shift+click and Ctrl+scroll wheel with an external mouse, which can feel laggy with standard mod-taps. + +The firmware holds the modifier speculatively. Once the key's behavior is settled: + +* If held, the modifier remains active as expected until the key is released. +* If tapped, the speculative modifier is canceled just before the tapping keycode is sent. + +Speculative Hold applies the modifier early but does not change the underlying tap-hold decision logic. Speculative Hold is compatible to use in combination with any other tap-hold options. + +see the [Speculative Hold](../tap_hold#speculative-hold) documentation for more information. + +## Changes Requiring User Action + +### Updated Keyboard Codebases + +| Old Keyboard Name | New Keyboard Name | +|----------------------------------|-------------------------| +| 0xcb/splaytoraid/32u4 | 0xcb/splaytoraid | +| 0xcb/splaytoraid/rp2040_ce | 0xcb/splaytoraid | +| 1upkeyboards/sweet16v2/kb2040 | 1upkeyboards/sweet16v2 | +| 1upkeyboards/sweet16v2/pro_micro | 1upkeyboards/sweet16v2 | +| 40percentclub/gherkin/kb2040 | 40percentclub/gherkin | +| 40percentclub/gherkin/pro_micro | 40percentclub/gherkin | +| durgod/dgk6x/venus | durgod/dgk6x/venus_ansi | + +### Reduce tap dance memory usage, move state out of data [#25415](https://github.com/qmk/qmk_firmware/pull/25415) + +The tap dance state has been separated from the action structure. Custom tap dance functions now receive the state as a separate parameter instead of accessing it through `action->state`. + +If your keymap uses custom tap dance functions that access the tap dance state, you need to update your code. + +* You can't use `action->state`. Instead you need to call `tap_dance_state_t *tap_dance_get_state(uint8_t tap_dance_idx)` to get the state. +* You now get a pointer to the state, so use `->` notation rather than `.` notation to get fields from it. + +### Before: +```c +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + tap_dance_action_t *action; + + switch (keycode) { + case TD(CT_CLN): + action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(keycode)); + if (!record->event.pressed && action->state.count && !action->state.finished) { + tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; + tap_code16(tap_hold->tap); + } + + } + return true; +} +``` +### After: +```c +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + tap_dance_action_t *action; + tap_dance_state_t* state; + switch (keycode) { + case TD(CT_CLN): + action = tap_dance_get(QK_TAP_DANCE_GET_INDEX(keycode)); + state = tap_dance_get_state(QK_TAP_DANCE_GET_INDEX(keycode)); + if (!record->event.pressed && state != NULL && state->count && !state->finished) { + tap_dance_tap_hold_t *tap_hold = (tap_dance_tap_hold_t *)action->user_data; + tap_code16(tap_hold->tap); + } + } + return true; +} +``` + +## Deprecation Notices + +In line with the [notice period](../support_deprecation_policy#how-much-advance-notice-will-be-given), deprecation notices for larger items are listed here. + +### Remove override of QK_{LED,RGB}_MATRIX_TOGGLE keycode [#25672](https://github.com/qmk/qmk_firmware/pull/25672) + +[#24649](https://github.com/qmk/qmk_firmware/pull/24649) implemented genetic behavior, including keycodes, to cycle flags. + +Any overriding of existing keycodes that duplicate this behavior will be removed to ensure consistency with core functionality. + +## Full changelist + +Core: +* suspend: suppress wake up keypress ([#23389](https://github.com/qmk/qmk_firmware/pull/23389)) +* [Feature Improvement]add option to keep layer state when recording dynamic macros ([#24418](https://github.com/qmk/qmk_firmware/pull/24418)) +* Add generic handling to cycle LED/RGB Matrix flags ([#24649](https://github.com/qmk/qmk_firmware/pull/24649)) +* Implement `mod_t` packed struct ([#25168](https://github.com/qmk/qmk_firmware/pull/25168)) +* Implement minimal connection update logic ([#25334](https://github.com/qmk/qmk_firmware/pull/25334)) +* Reduce tap dance memory usage, move state out of data ([#25415](https://github.com/qmk/qmk_firmware/pull/25415)) +* Refactor debounce algorithm with static allocation ([#25515](https://github.com/qmk/qmk_firmware/pull/25515)) +* Restructure Pixel Rain interval code ([#25516](https://github.com/qmk/qmk_firmware/pull/25516)) +* Guard remapping logic with MAGIC_ENABLE ([#25537](https://github.com/qmk/qmk_firmware/pull/25537)) +* Update default OLED font ([#25565](https://github.com/qmk/qmk_firmware/pull/25565)) +* Speculative Hold option for mod-taps: hold mods instantly while unsettled. ([#25572](https://github.com/qmk/qmk_firmware/pull/25572)) +* Simplify hue calculation in raindrops animation ([#25587](https://github.com/qmk/qmk_firmware/pull/25587)) +* Simplify tap_code16_delay ([#25595](https://github.com/qmk/qmk_firmware/pull/25595)) +* Debounce: Deprecate num_rows parameter ([#25632](https://github.com/qmk/qmk_firmware/pull/25632)) +* Add I2C Transmit and Receive function ([#25637](https://github.com/qmk/qmk_firmware/pull/25637)) +* [QP] Minor cleanup and support for RGB888 surface ([#25706](https://github.com/qmk/qmk_firmware/pull/25706)) +* Restrict mouse timer activation to movement keycodes ([#25716](https://github.com/qmk/qmk_firmware/pull/25716)) +* Update STM32F446 default HSE to 8MHz ([#25717](https://github.com/qmk/qmk_firmware/pull/25717)) +* making flowtap timer public so it can be used easily with combos ([#25731](https://github.com/qmk/qmk_firmware/pull/25731)) +* Add PixArt PAW-3222 mouse sensor driver ([#25763](https://github.com/qmk/qmk_firmware/pull/25763)) +* Merge upstream uf2conv changes ([#25786](https://github.com/qmk/qmk_firmware/pull/25786)) +* Partially skip generating community modules when none enabled ([#25819](https://github.com/qmk/qmk_firmware/pull/25819)) + +CLI: +* Generate default encoder resolution for sparse config ([#25247](https://github.com/qmk/qmk_firmware/pull/25247)) +* Add DIP Switch map support to keymap.json ([#25431](https://github.com/qmk/qmk_firmware/pull/25431)) +* Add return code to `qmk userspace-doctor` ([#25775](https://github.com/qmk/qmk_firmware/pull/25775)) +* Better defaulting of `{RGB,LED}_MATRIX_DEFAULT_FLAGS` ([#25785](https://github.com/qmk/qmk_firmware/pull/25785)) +* add BCD versions of QMK Version ([#25804](https://github.com/qmk/qmk_firmware/pull/25804)) +* Lint error on missing keyboard readme ([#25814](https://github.com/qmk/qmk_firmware/pull/25814)) + +Submodule updates: +* Update ChibiOS-Contrib. ([#25751](https://github.com/qmk/qmk_firmware/pull/25751)) + +Keyboards: +* `atreus`: restore intended matrix implementations ([#24082](https://github.com/qmk/qmk_firmware/pull/24082)) +* add SteelSeries prime, a stripped down prime+ ([#24719](https://github.com/qmk/qmk_firmware/pull/24719)) +* Add new macropad Sharkropad ([#24961](https://github.com/qmk/qmk_firmware/pull/24961)) +* Addition of the D60B tsangan pcb ([#25245](https://github.com/qmk/qmk_firmware/pull/25245)) +* Migrate `eeconfig_init_kb` implementations to config ([#25422](https://github.com/qmk/qmk_firmware/pull/25422)) +* Generate `CUSTOM_MATRIX = lite` without `matrix_pins.custom` ([#25453](https://github.com/qmk/qmk_firmware/pull/25453)) +* Add classic48 keyboard ([#25492](https://github.com/qmk/qmk_firmware/pull/25492)) +* add durgod venus iso support ([#25526](https://github.com/qmk/qmk_firmware/pull/25526)) +* Migrate `g_led_config` to DD (0-9, A) ([#25558](https://github.com/qmk/qmk_firmware/pull/25558)) +* Migrate `g_led_config` to DD (B, C) ([#25559](https://github.com/qmk/qmk_firmware/pull/25559)) +* Migrate `g_led_config` to DD (D) ([#25560](https://github.com/qmk/qmk_firmware/pull/25560)) +* Migrate `g_led_config` to DD (E, F) ([#25561](https://github.com/qmk/qmk_firmware/pull/25561)) +* Remove duplication of RP2040 config defaults ([#25563](https://github.com/qmk/qmk_firmware/pull/25563)) +* Refactor 40percentclub/ut47 ([#25571](https://github.com/qmk/qmk_firmware/pull/25571)) +* E7-V2 Implementation ([#25594](https://github.com/qmk/qmk_firmware/pull/25594)) +* Migrate `g_led_config` to DD (G) ([#25598](https://github.com/qmk/qmk_firmware/pull/25598)) +* Migrate `g_led_config` to DD (H) ([#25599](https://github.com/qmk/qmk_firmware/pull/25599)) +* Migrate `g_led_config` to DD (I) ([#25600](https://github.com/qmk/qmk_firmware/pull/25600)) +* Migrate `g_led_config` to DD (JK1) ([#25601](https://github.com/qmk/qmk_firmware/pull/25601)) +* Migrate `g_led_config` to DD (K2) ([#25602](https://github.com/qmk/qmk_firmware/pull/25602)) +* Migrate `g_led_config` to DD (K3) ([#25603](https://github.com/qmk/qmk_firmware/pull/25603)) +* Migrate `g_led_config` to DD (K4) ([#25605](https://github.com/qmk/qmk_firmware/pull/25605)) +* Migrate `g_led_config` to DD (K5) ([#25606](https://github.com/qmk/qmk_firmware/pull/25606)) +* Migrate `g_led_config` to DD (K6) ([#25607](https://github.com/qmk/qmk_firmware/pull/25607)) +* Refactor `40percentclub/gherkin` ([#25608](https://github.com/qmk/qmk_firmware/pull/25608)) +* Refactor `0xcb/splaytoraid` ([#25609](https://github.com/qmk/qmk_firmware/pull/25609)) +* Refactor `1upkeyboards/sweet16v2` ([#25610](https://github.com/qmk/qmk_firmware/pull/25610)) +* Migrate `g_led_config` to DD (K7) ([#25616](https://github.com/qmk/qmk_firmware/pull/25616)) +* Migrate `g_led_config` to DD (L) ([#25617](https://github.com/qmk/qmk_firmware/pull/25617)) +* Migrate `g_led_config` to DD (M1) ([#25618](https://github.com/qmk/qmk_firmware/pull/25618)) +* Migrate `g_led_config` to DD (M2) ([#25619](https://github.com/qmk/qmk_firmware/pull/25619)) +* Migrate `g_led_config` to DD (M3) ([#25620](https://github.com/qmk/qmk_firmware/pull/25620)) +* Migrate `g_led_config` to DD (NO) ([#25621](https://github.com/qmk/qmk_firmware/pull/25621)) +* Migrate `g_led_config` to DD (P) ([#25622](https://github.com/qmk/qmk_firmware/pull/25622)) +* Migrate `g_led_config` to DD (QR) ([#25623](https://github.com/qmk/qmk_firmware/pull/25623)) +* Migrate `g_led_config` to DD (S) ([#25624](https://github.com/qmk/qmk_firmware/pull/25624)) +* Migrate `g_led_config` to DD (TUW) ([#25625](https://github.com/qmk/qmk_firmware/pull/25625)) +* Remove idobao *_DISABLE_UNDERGLOW behaviour ([#25638](https://github.com/qmk/qmk_firmware/pull/25638)) +* Migrate `g_led_config` to DD (YZ) ([#25650](https://github.com/qmk/qmk_firmware/pull/25650)) +* Tidy Keebio keyboards ([#25653](https://github.com/qmk/qmk_firmware/pull/25653)) +* Remove encoder resolution where duplicating defaults ([#25654](https://github.com/qmk/qmk_firmware/pull/25654)) +* Custom oled fonts cleanup ([#25665](https://github.com/qmk/qmk_firmware/pull/25665)) +* Binepad KnobX1 - refactor `x1_layer_led` function as weak ([#25668](https://github.com/qmk/qmk_firmware/pull/25668)) +* Add DD {LED,RGB}_MATRIX_DEFAULT_FLAGS support ([#25671](https://github.com/qmk/qmk_firmware/pull/25671)) +* keyboards: Add Royal Kludge RK61 ([#25694](https://github.com/qmk/qmk_firmware/pull/25694)) +* Add TRKeyboard TRK2 keyboard ([#25754](https://github.com/qmk/qmk_firmware/pull/25754)) + +Keyboard fixes: +* Fixup `kprepublic/bm60hsrgb/rev2` ([#25644](https://github.com/qmk/qmk_firmware/pull/25644)) +* Fixup `kprepublic/bm60hsrgb_iso/rev2` ([#25648](https://github.com/qmk/qmk_firmware/pull/25648)) +* Fixup `kprepublic/bm60hsrgb_poker/rev2` ([#25649](https://github.com/qmk/qmk_firmware/pull/25649)) +* Fixup `rgbkb/pan` ([#25678](https://github.com/qmk/qmk_firmware/pull/25678)) +* Align use of keymap level `_kb` callbacks ([#25774](https://github.com/qmk/qmk_firmware/pull/25774)) + +Others: +* Rework converter docs ([#18314](https://github.com/qmk/qmk_firmware/pull/18314)) +* Update USBaspLoader ISP instructions ([#25590](https://github.com/qmk/qmk_firmware/pull/25590)) +* Add LED/RGB Matrix flags API docs ([#25673](https://github.com/qmk/qmk_firmware/pull/25673)) + +Bugs: +* Fix single key combos activating only once ([#25198](https://github.com/qmk/qmk_firmware/pull/25198)) +* Fix RGB matrix not syncing and turning off properly on timeout ([#25467](https://github.com/qmk/qmk_firmware/pull/25467)) +* Fix drv haptics docs by using the correct function name ([#25733](https://github.com/qmk/qmk_firmware/pull/25733)) +* Fix Magic GUI masking logic ([#25780](https://github.com/qmk/qmk_firmware/pull/25780)) +* Fix Speculative Hold to enable also right-handed RSFT, RCTL by default. ([#25797](https://github.com/qmk/qmk_firmware/pull/25797)) +* Fix community layout keymap discovery ([#25802](https://github.com/qmk/qmk_firmware/pull/25802)) +* Fix preference of output file for 'qmk generate-autocorrect-data' ([#25818](https://github.com/qmk/qmk_firmware/pull/25818)) diff --git a/docs/ChangeLog/20251130/PR25515.md b/docs/ChangeLog/20251130/PR25515.md deleted file mode 100644 index ccc88e0c64..0000000000 --- a/docs/ChangeLog/20251130/PR25515.md +++ /dev/null @@ -1,3 +0,0 @@ -# Refactor debounce algorithm with static allocation [#25515](https://github.com/qmk/qmk_firmware/pull/25515) - -Removed dynamic memory allocation (malloc, free) from all debounce implementations for improved efficiency on embedded systems and to avoid runtime allocation overhead. Refactored state arrays to use direct indexing, simplifying code and eliminating pointer arithmetic. Standardized usage of MATRIX_ROWS_PER_HAND throughout the codebase to ensure consistent support for split keyboards. diff --git a/docs/ChangeLog/20251130/PR25632.md b/docs/ChangeLog/20251130/PR25632.md deleted file mode 100644 index 39136067b9..0000000000 --- a/docs/ChangeLog/20251130/PR25632.md +++ /dev/null @@ -1,4 +0,0 @@ -# Changes Requiring User Action -## Debounce: Deprecate init and remove num_rows parameter [#25632](https://github.com/qmk/qmk_firmware/pull/25632) - -With dynamic memory allocation removed from all debounce implementations ([#25515](https://github.com/qmk/qmk_firmware/pull/25515)), the `num_rows` parameter has been removed from the `debounce_init()` and `debounce()` functions. The `MATRIX_ROWS_PER_HAND` is now used by default in every implementation. diff --git a/docs/_sidebar.json b/docs/_sidebar.json index d237b0e1d0..2531de2b1e 100644 --- a/docs/_sidebar.json +++ b/docs/_sidebar.json @@ -214,7 +214,7 @@ { "text": "My Pull Request Was Flagged", "link": "/breaking_changes_instructions" }, { "text": "Most Recent ChangeLog", - "link": "/ChangeLog/20250831" + "link": "/ChangeLog/20251130" }, { "text": "Past Breaking Changes", "link": "/breaking_changes_history" }, { "text": "Deprecation Policy", "link": "/support_deprecation_policy" } diff --git a/docs/breaking_changes.md b/docs/breaking_changes.md index 1e9335d8bc..9dd995500c 100644 --- a/docs/breaking_changes.md +++ b/docs/breaking_changes.md @@ -10,25 +10,25 @@ Practically, this means QMK merges the `develop` branch into the `master` branch ## What has been included in past Breaking Changes? +* [2025 Nov 30](ChangeLog/20251130) * [2025 Aug 31](ChangeLog/20250831) * [2025 May 25](ChangeLog/20250525) -* [2025 Feb 23](ChangeLog/20250223) * [Older Breaking Changes](breaking_changes_history) ## When is the next Breaking Change? -The next Breaking Change is scheduled for November 30, 2025. +The next Breaking Change is scheduled for February 22, 2026. ### Important Dates -* 2025 Aug 31 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions. -* 2025 Nov 2 - `develop` closed to new PRs. -* 2025 Nov 2 - Call for testers. -* 2025 Nov 16 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes -* 2025 Nov 23 - `develop` is locked, only critical bugfix PRs merged. -* 2025 Nov 28 - `master` is locked, no PRs merged. -* 2025 Nov 30 - Merge `develop` to `master`. -* 2025 Nov 30 - `master` is unlocked. PRs can be merged again. +* 2025 Nov 30 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions. +* 2026 Jan 25 - `develop` closed to new PRs. +* 2026 Jan 25 - Call for testers. +* 2026 Feb 8 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes +* 2026 Feb 15 - `develop` is locked, only critical bugfix PRs merged. +* 2026 Feb 20 - `master` is locked, no PRs merged. +* 2026 Feb 22 - Merge `develop` to `master`. +* 2026 Feb 22 - `master` is unlocked. PRs can be merged again. ## What changes will be included? diff --git a/docs/breaking_changes_history.md b/docs/breaking_changes_history.md index 29ceb09db7..2db767c5ec 100644 --- a/docs/breaking_changes_history.md +++ b/docs/breaking_changes_history.md @@ -2,6 +2,7 @@ This page links to all previous changelogs from the QMK Breaking Changes process. +* [2025 Nov 30](ChangeLog/20251130) - version 0.31.0 * [2025 Aug 31](ChangeLog/20250831) - version 0.30.0 * [2025 May 25](ChangeLog/20250525) - version 0.29.0 * [2025 Feb 23](ChangeLog/20250223) - version 0.28.0 From e10429baae2a4b3ffec67fe31a5e1ac3212817f0 Mon Sep 17 00:00:00 2001 From: zvecr Date: Mon, 1 Dec 2025 22:03:23 +0000 Subject: [PATCH 128/255] Merge point for 2025q4 breaking changes. --- readme.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/readme.md b/readme.md index e5c0d41b7b..62aed12066 100644 --- a/readme.md +++ b/readme.md @@ -1,7 +1,3 @@ -# THIS IS THE DEVELOP BRANCH - -Warning- This is the `develop` branch of QMK Firmware. You may encounter broken code here. Please see [Breaking Changes](https://docs.qmk.fm/#/breaking_changes) for more information. - # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) From a4320e4890ad4285e89abdd21fcf548a984d8a43 Mon Sep 17 00:00:00 2001 From: zvecr Date: Mon, 1 Dec 2025 22:48:34 +0000 Subject: [PATCH 129/255] Branch point for 2026q1 Breaking Change. --- readme.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/readme.md b/readme.md index 62aed12066..e5c0d41b7b 100644 --- a/readme.md +++ b/readme.md @@ -1,3 +1,7 @@ +# THIS IS THE DEVELOP BRANCH + +Warning- This is the `develop` branch of QMK Firmware. You may encounter broken code here. Please see [Breaking Changes](https://docs.qmk.fm/#/breaking_changes) for more information. + # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) From d4f04fe850c155b33a181e0e3d8d3351c483d305 Mon Sep 17 00:00:00 2001 From: tyler Date: Thu, 4 Dec 2025 06:13:20 -0600 Subject: [PATCH 130/255] Simplify docs for Key Overrides config (#25787) --- docs/features/key_overrides.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/key_overrides.md b/docs/features/key_overrides.md index e83f0295ab..c0b788bde9 100644 --- a/docs/features/key_overrides.md +++ b/docs/features/key_overrides.md @@ -14,7 +14,7 @@ You can use key overrides in a similar way to momentary layer/fn keys to activat To enable this feature, you need to add `KEY_OVERRIDE_ENABLE = yes` to your `rules.mk`. -Then, in your `keymap.c` file, you'll need to define the array `key_overrides`, which defines all key overrides to be used. Each override is a value of type `key_override_t`. The array `key_overrides`contains pointers to `key_override_t` values (`const key_override_t **`). +Then, in your `keymap.c` file, you'll need to define the `key_overrides` config. See below for more details. ## Creating Key Overrides {#creating-key-overrides} From bf0b88c4234b9f2173da0730dba9176d9a6e9526 Mon Sep 17 00:00:00 2001 From: sigman Date: Thu, 4 Dec 2025 04:14:37 -0800 Subject: [PATCH 131/255] Adapt MIUNI32 keyboard for VIA configurator (#25803) --- keyboards/miuni32/keyboard.json | 8 ++++---- keyboards/miuni32/keymaps/default/keymap.c | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/keyboards/miuni32/keyboard.json b/keyboards/miuni32/keyboard.json index 1ff7d1a39a..26c4c7dfff 100644 --- a/keyboards/miuni32/keyboard.json +++ b/keyboards/miuni32/keyboard.json @@ -3,8 +3,8 @@ "manufacturer": "Bigtuna.io", "maintainer": "qmk", "usb": { - "vid": "0xFEED", - "pid": "0x6060", + "vid": "0x41FA", + "pid": "0xAAEF", "device_version": "0.0.1" }, "rgblight": { @@ -80,8 +80,8 @@ {"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, "w": 2}, - {"matrix": [2, 5], "x": 5, "y": 2}, + {"matrix": [2, 3], "x": 3, "y": 2}, + {"matrix": [2, 4], "x": 4, "y": 2, "w": 2}, {"matrix": [2, 6], "x": 6, "y": 2}, {"matrix": [2, 7], "x": 7, "y": 2}, {"matrix": [2, 8], "x": 8, "y": 2}, diff --git a/keyboards/miuni32/keymaps/default/keymap.c b/keyboards/miuni32/keymaps/default/keymap.c index 878d095730..2bf2dab2b0 100644 --- a/keyboards/miuni32/keymaps/default/keymap.c +++ b/keyboards/miuni32/keymaps/default/keymap.c @@ -1,3 +1,18 @@ +/* Copyright 2025 BigTuna.io + * + * 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] = { From d39015a4011e53612e117ac4091444bf67792105 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacek=20Kr=C3=B3likowski?= Date: Thu, 4 Dec 2025 13:15:43 +0100 Subject: [PATCH 132/255] [DOCS] Add `keycodes` to `info.json` docs. More precise matrix masking info (#25801) --- docs/reference_info_json.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 91ab7f4577..301e4b12dd 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -327,6 +327,21 @@ Configures the [LED Indicators](features/led_indicators) feature. * `scroll_lock` Pin * The GPIO pin connected to the Scroll Lock LED. +## (Custom) Keycodes {#keycodes} + +Defines [custom keycodes](custom_quantum_functions#definining-a-new-keycode) for use within keymaps. + +* `keycodes` Array: Object + * A list of keycode objects. + * `key` String Required + * The enum name of the custom keycode. + * Example: `LAYER_CHANGE_BEEP_ON` + * `label` String + * A short description of the custom keycode. + * `aliases` Array: String + * A list of shortened names for the custom keycode. + * Example: `["LCBON", "LCB_ON"]` + ## Layouts {#layouts} The `layouts` portion of the dictionary contains several nested dictionaries. The outer layer consists of QMK layout names, for example `LAYOUT_60_ansi` or `LAYOUT_60_iso`. @@ -513,7 +528,7 @@ Configures the [LED Matrix](features/led_matrix) feature. * The amount of time to wait between row/col selection and col/row pin reading, in microseconds. * Default: `30` (30 µs) * `masked` Boolean - * Whether configured intersections should be ignored. + * Whether unconfigured intersections should be ignored. * Default: `false` * `rows` Array: Pin * A list of GPIO pins connected to the matrix rows. From 16dde871d73d3b9fd8f4e3f40456caa17d010229 Mon Sep 17 00:00:00 2001 From: Ivan Gromov <38141348+key10iq@users.noreply.github.com> Date: Thu, 4 Dec 2025 23:42:33 +0300 Subject: [PATCH 133/255] Add kt60HS-T v3 (#25822) --- .../keyten/kt60hs_t/keymaps/default/keymap.c | 5 +- keyboards/keyten/kt60hs_t/readme.md | 11 +- keyboards/keyten/kt60hs_t/v3/keyboard.json | 282 ++++++++++++++++++ keyboards/keyten/kt60hs_t/v3/readme.md | 27 ++ 4 files changed, 318 insertions(+), 7 deletions(-) create mode 100644 keyboards/keyten/kt60hs_t/v3/keyboard.json create mode 100644 keyboards/keyten/kt60hs_t/v3/readme.md diff --git a/keyboards/keyten/kt60hs_t/keymaps/default/keymap.c b/keyboards/keyten/kt60hs_t/keymaps/default/keymap.c index 38938bf162..3325867867 100644 --- a/keyboards/keyten/kt60hs_t/keymaps/default/keymap.c +++ b/keyboards/keyten/kt60hs_t/keymaps/default/keymap.c @@ -1,4 +1,5 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ +// Copyright 2025 key10iq +// SPDX-License-Identifier: GPL-2.0-or-later #include QMK_KEYBOARD_H @@ -13,7 +14,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), [1] = LAYOUT_60_ansi_tsangan_split_bs_rshift( - 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_TRNS, + QK_BOOT, 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_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/keyten/kt60hs_t/readme.md b/keyboards/keyten/kt60hs_t/readme.md index eb02f6bb8f..a79f1ba06e 100644 --- a/keyboards/keyten/kt60hs_t/readme.md +++ b/keyboards/keyten/kt60hs_t/readme.md @@ -2,7 +2,7 @@ 60% MX Hot-Swap Tsangan PCB -![kt60HS-T image](https://i.imgur.com/vM32aoX.jpeg) +![kt60HS-T image](https://live.staticflickr.com/65535/54942233930_c83933dd23_b.jpg) Supports: 1. Split Backspace @@ -10,7 +10,8 @@ Supports: There are two versions of the PCB available. -|Version| Features | -|-------|-------------------------------------------| -|v1 |Blue/Purple PCB / ARM STM32F401 controller | -|v2 |Purple PCB / ARM STM32F072 controller | +|Version| Features | +|-------|---------------------------------------------------------| +|v1 |Blue/Purple PCB / ARM STM32F401 controller | +|v2 |Purple PCB / ARM STM32F072 controller | +|v3 |Purple PCB / ARM STM32F072 controller, different routing | diff --git a/keyboards/keyten/kt60hs_t/v3/keyboard.json b/keyboards/keyten/kt60hs_t/v3/keyboard.json new file mode 100644 index 0000000000..ce087483e0 --- /dev/null +++ b/keyboards/keyten/kt60hs_t/v3/keyboard.json @@ -0,0 +1,282 @@ +{ + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["A3", "A4", "B12", "B15", "A7", "B9", "B8", "B7", "B6", "B5", "B4", "B3", "A15", "A14"], + "rows": ["B13", "B14", "A5", "A6", "B0"] + }, + "processor": "STM32F072", + "usb": { + "device_version": "3.0.0", + "pid": "0x6010" + }, + "community_layouts": [ + "60_ansi_wkl_split_bs_rshift", + "60_hhkb", + "60_ansi_tsangan_split_bs_rshift" + ], + "layout_aliases": { + "LAYOUT_all": "LAYOUT_60_ansi_tsangan_split_bs_rshift" + }, + "layouts": { + "LAYOUT_60_ansi_wkl_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": [2, 13], "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, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 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.5}, + {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "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, 13], "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, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 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, 6], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4} + ] + }, + "LAYOUT_60_ansi_tsangan_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": [2, 13], "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, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 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.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, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + }, + "LAYOUT_60_ansi_tsangan_split_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": [2, 13], "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, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [4, 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.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, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 11], "x": 12.5, "y": 4}, + {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5} + ] + } + } +} diff --git a/keyboards/keyten/kt60hs_t/v3/readme.md b/keyboards/keyten/kt60hs_t/v3/readme.md new file mode 100644 index 0000000000..b12e49b8ef --- /dev/null +++ b/keyboards/keyten/kt60hs_t/v3/readme.md @@ -0,0 +1,27 @@ +# keyten kt60HS-T V3 + +60% MX Hot-Swap Tsangan PCB + +![kt60HS-T image](https://live.staticflickr.com/65535/54942233930_c83933dd23_b.jpg) + +* Keyboard Maintainer: [keyten](https://github.com/key10iq) +* Hardware Supported: keyten kt60HS-T V3 +* Hardware Availability: private GB + +Make example for this keyboard (after setting up your build environment): + + make keyten/kt60hs_t/v3:default + +Flashing example for this keyboard: + + make keyten/kt60hs_t/v3: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 +* Physical reset button: Hold the button on the back of the PCB From 1322922c420e56ea45534d5fc74365168f5bf487 Mon Sep 17 00:00:00 2001 From: Ivan Gromov <38141348+key10iq@users.noreply.github.com> Date: Thu, 4 Dec 2025 23:42:53 +0300 Subject: [PATCH 134/255] Add kt356 Mini (#25781) Co-authored-by: Joel Challis --- keyboards/keyten/kt356_mini/keyboard.json | 299 ++++++++++++++++++ .../kt356_mini/keymaps/default/keymap.c | 24 ++ keyboards/keyten/kt356_mini/readme.md | 27 ++ 3 files changed, 350 insertions(+) create mode 100644 keyboards/keyten/kt356_mini/keyboard.json create mode 100644 keyboards/keyten/kt356_mini/keymaps/default/keymap.c create mode 100644 keyboards/keyten/kt356_mini/readme.md diff --git a/keyboards/keyten/kt356_mini/keyboard.json b/keyboards/keyten/kt356_mini/keyboard.json new file mode 100644 index 0000000000..766b254a2c --- /dev/null +++ b/keyboards/keyten/kt356_mini/keyboard.json @@ -0,0 +1,299 @@ +{ + "manufacturer": "keyten", + "keyboard_name": "kt356 Mini", + "maintainer": "key10iq", + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "usb": { + "vid": "0xEB69", + "pid": "0x6008", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "rows": ["B4", "B5", "A6", "B10", "B11"], + "cols": ["A15", "F1", "F0", "C14", "A3", "C13", "B1", "B9", "A4", "B8", "B0", "B7", "A7", "B6"] + }, + "indicators": { + "caps_lock": "A14" + }, + "community_layouts": [ + "60_ansi", + "60_ansi_split_bs_rshift", + "60_ansi_tsangan", + "60_ansi_tsangan_split_bs_rshift" + ], + "layout_aliases": { + "LAYOUT_all": "LAYOUT_60_ansi_split_bs_rshift" + }, + "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": [2, 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, 12], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 2.25, "y": 3 }, + { "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "matrix": [3, 7], "x": 8.25, "y": 3 }, + { "matrix": [3, 8], "x": 9.25, "y": 3 }, + { "matrix": [3, 9], "x": 10.25, "y": 3 }, + { "matrix": [3, 10], "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, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 9], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "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": [2, 13], "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, 12], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 2.25, "y": 3 }, + { "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "matrix": [3, 7], "x": 8.25, "y": 3 }, + { "matrix": [3, 8], "x": 9.25, "y": 3 }, + { "matrix": [3, 9], "x": 10.25, "y": 3 }, + { "matrix": [3, 10], "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, 6], "w": 6.25, "x": 3.75, "y": 4 }, + { "matrix": [4, 9], "w": 1.25, "x": 10, "y": 4 }, + { "matrix": [4, 10], "w": 1.25, "x": 11.25, "y": 4 }, + { "matrix": [4, 11], "w": 1.25, "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.25, "x": 13.75, "y": 4 } + ] + }, + "LAYOUT_60_ansi_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": [2, 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, 12], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 2.25, "y": 3 }, + { "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "matrix": [3, 7], "x": 8.25, "y": 3 }, + { "matrix": [3, 8], "x": 9.25, "y": 3 }, + { "matrix": [3, 9], "x": 10.25, "y": 3 }, + { "matrix": [3, 10], "x": 11.25, "y": 3 }, + { "matrix": [3, 12], "w": 2.75, "x": 12.25, "y": 3 }, + { "matrix": [4, 0], "w": 1.5, "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "matrix": [4, 10], "w": 1.5, "x": 11, "y": 4 }, + { "matrix": [4, 11], "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 } + ] + }, + "LAYOUT_60_ansi_tsangan_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": [2, 13], "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, 12], "w": 2.25, "x": 12.75, "y": 2 }, + { "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, + { "matrix": [3, 1], "x": 2.25, "y": 3 }, + { "matrix": [3, 2], "x": 3.25, "y": 3 }, + { "matrix": [3, 3], "x": 4.25, "y": 3 }, + { "matrix": [3, 4], "x": 5.25, "y": 3 }, + { "matrix": [3, 5], "x": 6.25, "y": 3 }, + { "matrix": [3, 6], "x": 7.25, "y": 3 }, + { "matrix": [3, 7], "x": 8.25, "y": 3 }, + { "matrix": [3, 8], "x": 9.25, "y": 3 }, + { "matrix": [3, 9], "x": 10.25, "y": 3 }, + { "matrix": [3, 10], "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.5, "x": 0, "y": 4 }, + { "matrix": [4, 1], "x": 1.5, "y": 4 }, + { "matrix": [4, 2], "w": 1.5, "x": 2.5, "y": 4 }, + { "matrix": [4, 6], "w": 7, "x": 4, "y": 4 }, + { "matrix": [4, 10], "w": 1.5, "x": 11, "y": 4 }, + { "matrix": [4, 11], "x": 12.5, "y": 4 }, + { "matrix": [4, 13], "w": 1.5, "x": 13.5, "y": 4 } + ] + } + } +} diff --git a/keyboards/keyten/kt356_mini/keymaps/default/keymap.c b/keyboards/keyten/kt356_mini/keymaps/default/keymap.c new file mode 100644 index 0000000000..3499921fd5 --- /dev/null +++ b/keyboards/keyten/kt356_mini/keymaps/default/keymap.c @@ -0,0 +1,24 @@ +// Copyright 2025 key10iq +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_60_ansi_split_bs_rshift( + 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_GRV, 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, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_APP, KC_RALT, KC_RGUI, KC_RCTL + ), + + [1] = LAYOUT_60_ansi_split_bs_rshift( + QK_BOOT, 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_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 + ) + +}; diff --git a/keyboards/keyten/kt356_mini/readme.md b/keyboards/keyten/kt356_mini/readme.md new file mode 100644 index 0000000000..beac4d0260 --- /dev/null +++ b/keyboards/keyten/kt356_mini/readme.md @@ -0,0 +1,27 @@ +# keyten kt356 Mini + +Replacement PCB for the OTD (and UTD) 356 Mini keyboard. + +![kt356 Mini image](https://live.staticflickr.com/65535/54907825962_65a650ce4c_b.jpg) + +* Keyboard Maintainer: [keyten](https://github.com/key10iq) +* Hardware Supported: keyten kt356 Mini +* Hardware Availability: private GB + +Make example for this keyboard (after setting up your build environment): + + make keyten/kt356_mini:default + +Flashing example for this keyboard: + + make keyten/kt356_mini: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 +* Physical reset button: Hold the button on the back of the PCB From 511f1ed9de44dd37669dc6be8daf7701adc6fdf4 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 4 Dec 2025 23:31:52 +0000 Subject: [PATCH 135/255] Remove unused `qmk.keymap.write_file`/`qmk.keymap.write_json` (#25854) --- lib/python/qmk/keymap.py | 35 ------------------------- lib/python/qmk/tests/test_qmk_keymap.py | 3 --- 2 files changed, 38 deletions(-) diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py index 0ac04f6f73..36a821ebda 100644 --- a/lib/python/qmk/keymap.py +++ b/lib/python/qmk/keymap.py @@ -1,6 +1,5 @@ """Functions that help you work with QMK keymaps. """ -import json import sys from pathlib import Path from subprocess import DEVNULL @@ -320,40 +319,6 @@ def generate_c(keymap_json): return new_keymap -def write_file(keymap_filename, keymap_content): - keymap_filename.parent.mkdir(parents=True, exist_ok=True) - keymap_filename.write_text(keymap_content) - - cli.log.info('Wrote keymap to {fg_cyan}%s', keymap_filename) - - return keymap_filename - - -def write_json(keyboard, keymap, layout, layers, macros=None): - """Generate the `keymap.json` and write it to disk. - - Returns the filename written to. - - Args: - keyboard - The name of the keyboard - - keymap - The name of the keymap - - layout - The LAYOUT macro this keymap uses. - - layers - An array of arrays describing the keymap. Each item in the inner array should be a string that is a valid QMK keycode. - """ - keymap_json = generate_json(keyboard, keymap, layout, layers, macros=None) - keymap_content = json.dumps(keymap_json) - keymap_file = qmk.path.keymaps(keyboard)[0] / keymap / 'keymap.json' - - return write_file(keymap_file, keymap_content) - - def locate_keymap(keyboard, keymap, force_layout=None): """Returns the path to a keymap for a specific keyboard. """ diff --git a/lib/python/qmk/tests/test_qmk_keymap.py b/lib/python/qmk/tests/test_qmk_keymap.py index 34360d3b6d..818560e861 100644 --- a/lib/python/qmk/tests/test_qmk_keymap.py +++ b/lib/python/qmk/tests/test_qmk_keymap.py @@ -42,6 +42,3 @@ def test_generate_json_pytest_basic(): def test_parse_keymap_c(): parsed_keymap_c = qmk.keymap.parse_keymap_c('keyboards/handwired/pytest/basic/keymaps/default/keymap.c') assert parsed_keymap_c == {'layers': [{'name': '0', 'layout': 'LAYOUT_ortho_1x1', 'keycodes': ['KC_A']}]} - - -# FIXME(skullydazed): Add a test for qmk.keymap.write that mocks up an FD. From 08e5fcfdf44c73fbbc8887b100fccd00006aa02e Mon Sep 17 00:00:00 2001 From: psych3r Date: Sat, 6 Dec 2025 00:25:48 +0200 Subject: [PATCH 136/255] Fix USER_PATH resolution on case-insensitive filesystems (#25853) When QMK_USERSPACE is empty, the wildcard check in build_keyboard.mk incorrectly matches user home directories on case-insensitive filesystems (macOS/Windows), causing USER_PATH to resolve to an absolute path instead of a relative path. This only affects users whose username matches their user directory name (e.g., username 'psycher' with home '/Users/psycher' and QMK user dir 'users/psycher'). Fix by checking if QMK_USERSPACE is non-empty before performing the wildcard check. --- builddefs/build_keyboard.mk | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index dae8c07e3e..0df95342f9 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -474,8 +474,10 @@ ifneq ($(wildcard $(QMK_USERSPACE)),) endif # If the equivalent users directory exists in userspace, use that in preference to anything currently in the main repo -ifneq ($(wildcard $(QMK_USERSPACE)/$(USER_PATH)),) - USER_PATH := $(QMK_USERSPACE)/$(USER_PATH) +ifneq ($(QMK_USERSPACE),) + ifneq ($(wildcard $(QMK_USERSPACE)/$(USER_PATH)),) + USER_PATH := $(QMK_USERSPACE)/$(USER_PATH) + endif endif # Pull in user level rules.mk From 5b94990c5aba182136519e89d38c590e105ac1bd Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 8 Dec 2025 12:11:21 +0000 Subject: [PATCH 137/255] Remove redundant URLs from `.json` (#25856) --- keyboards/aleblazer/zodiark/keyboard.json | 1 - keyboards/argo_works/ishi/80/mk0_avr/keyboard.json | 1 - keyboards/argo_works/ishi/80/mk0_avr_extra/keyboard.json | 1 - keyboards/ash_xiix/keyboard.json | 1 - keyboards/atlantis/ps17/keyboard.json | 1 - keyboards/boardrun/bizarre/keyboard.json | 1 - keyboards/boardrun/classic/keyboard.json | 1 - keyboards/checkerboards/plexus75_he/keyboard.json | 1 - keyboards/checkerboards/quark_plus/keyboard.json | 1 - keyboards/converter/periboard_512/keyboard.json | 1 - keyboards/elephant42/keyboard.json | 1 - keyboards/flxlb/zplit/keyboard.json | 1 - keyboards/frooastboard/nano/keyboard.json | 1 - keyboards/frooastboard/walnut/keyboard.json | 1 - keyboards/generic_panda/panda65_01/keyboard.json | 1 - keyboards/handwired/acacia/keyboard.json | 1 - keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json | 1 - keyboards/handwired/dactyl_rah/keyboard.json | 1 - keyboards/handwired/dqz11n1g/keyboard.json | 1 - keyboards/handwired/dygma/raise/info.json | 1 - keyboards/handwired/ibm_wheelwriter/keyboard.json | 1 - keyboards/handwired/jotanck/keyboard.json | 1 - keyboards/handwired/jotlily60/keyboard.json | 1 - keyboards/handwired/oem_ansi_fullsize/keyboard.json | 1 - keyboards/handwired/oem_iso_fullsize/keyboard.json | 1 - keyboards/handwired/owlet60/keyboard.json | 1 - keyboards/handwired/twadlee/tp69/keyboard.json | 1 - keyboards/handwired/zergo/keyboard.json | 1 - keyboards/ibm/model_m/ashpil_usbc/keyboard.json | 1 - keyboards/ibm/model_m/mschwingen/info.json | 1 - keyboards/ibm/model_m/teensy2/keyboard.json | 1 - keyboards/ibm/model_m/teensypp/keyboard.json | 1 - keyboards/ibm/model_m/yugo_m/keyboard.json | 1 - keyboards/ibm/model_m_122/ibm122m/keyboard.json | 1 - keyboards/ibm/model_m_122/m122_3270/info.json | 1 - keyboards/ibm/model_m_ssk/teensypp_ssk/keyboard.json | 1 - keyboards/jacky_studio/bear_65/rev1/keyboard.json | 1 - keyboards/jacky_studio/bear_65/rev2/keyboard.json | 1 - keyboards/kbdfans/kbd19x/keyboard.json | 1 - keyboards/kegen/gboy/keyboard.json | 1 - keyboards/keycapsss/o4l_5x12/keyboard.json | 1 - keyboards/kiserdesigns/madeline/keyboard.json | 1 - keyboards/ll3ma/bongopad/keyboard.json | 1 - keyboards/manyboard/macro/keyboard.json | 1 - keyboards/nopunin10did/jabberwocky/v1/keyboard.json | 1 - keyboards/nopunin10did/jabberwocky/v2/keyboard.json | 1 - keyboards/nopunin10did/kastenwagen1840/keyboard.json | 1 - keyboards/nopunin10did/kastenwagen48/keyboard.json | 1 - keyboards/nopunin10did/railroad/rev0/keyboard.json | 1 - keyboards/nopunin10did/styrkatmel/keyboard.json | 1 - keyboards/ocean/sus/keyboard.json | 1 - keyboards/paprikman/albacore/keyboard.json | 1 - keyboards/pohjolaworks/louhi/keyboard.json | 1 - keyboards/rart/rartland/keyboard.json | 1 - keyboards/rubi/keyboard.json | 1 - keyboards/shandoncodes/flygone60/rev3/keyboard.json | 1 - keyboards/shandoncodes/mino/hotswap/keyboard.json | 1 - keyboards/swagkeys/eave/keyboard.json | 1 - keyboards/swagkeys/integral/keyboard.json | 1 - keyboards/walletburner/cajal/keyboard.json | 1 - keyboards/walletburner/neuron/keyboard.json | 1 - keyboards/wsk/gothic50/keyboard.json | 1 - keyboards/wsk/gothic70/keyboard.json | 1 - keyboards/wsk/houndstooth/keyboard.json | 1 - keyboards/wsk/jerkin/keyboard.json | 1 - keyboards/wsk/kodachi50/keyboard.json | 1 - keyboards/wsk/pain27/keyboard.json | 1 - keyboards/wsk/sl40/keyboard.json | 1 - keyboards/wsk/tkl30/keyboard.json | 1 - keyboards/xelus/akis/keyboard.json | 1 - keyboards/xelus/kangaroo/info.json | 1 - 71 files changed, 71 deletions(-) diff --git a/keyboards/aleblazer/zodiark/keyboard.json b/keyboards/aleblazer/zodiark/keyboard.json index 396e3ca460..9582149675 100644 --- a/keyboards/aleblazer/zodiark/keyboard.json +++ b/keyboards/aleblazer/zodiark/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Zodiark", "manufacturer": "Aleblazer", - "url": "https://github.com/Aleblazer/qmk_firmware/tree/master/keyboards/zodiark", "maintainer": "Aleblazer", "usb": { "vid": "0xF901", diff --git a/keyboards/argo_works/ishi/80/mk0_avr/keyboard.json b/keyboards/argo_works/ishi/80/mk0_avr/keyboard.json index 9717ada94f..e767dde00c 100644 --- a/keyboards/argo_works/ishi/80/mk0_avr/keyboard.json +++ b/keyboards/argo_works/ishi/80/mk0_avr/keyboard.json @@ -4,7 +4,6 @@ "maintainer": "jasonj2232", "development_board": "promicro", "diode_direction": "COL2ROW", - "url": "https://qmk.fm/keyboards/", "usb": { "device_version": "0.0.1", "pid": "0x4930", diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/keyboard.json b/keyboards/argo_works/ishi/80/mk0_avr_extra/keyboard.json index 54a5b72d5a..7639817a32 100644 --- a/keyboards/argo_works/ishi/80/mk0_avr_extra/keyboard.json +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/keyboard.json @@ -5,7 +5,6 @@ "development_board": "elite_c", "pin_compatible": "elite_c", "diode_direction": "COL2ROW", - "url": "https://qmk.fm/keyboards/", "usb": { "device_version": "0.0.1", "pid": "0x4930", diff --git a/keyboards/ash_xiix/keyboard.json b/keyboards/ash_xiix/keyboard.json index c1ba811d32..6ff547f2cf 100644 --- a/keyboards/ash_xiix/keyboard.json +++ b/keyboards/ash_xiix/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "XIIX", "manufacturer": "ASH", - "url": "config.qmk.fm", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/atlantis/ps17/keyboard.json b/keyboards/atlantis/ps17/keyboard.json index 3c7f50be0b..9d0a9ca8ef 100644 --- a/keyboards/atlantis/ps17/keyboard.json +++ b/keyboards/atlantis/ps17/keyboard.json @@ -2,7 +2,6 @@ "manufacturer": "Atlantis", "keyboard_name": "PS17", "maintainer": "mjbogusz", - "url": "https://qmk.fm/keyboards/", "processor": "atmega32u4", "bootloader": "atmel-dfu", "bootloader_instructions": "To reset the board into bootloader mode, tap the Reset switch mounted on the bottom of the PCB.", diff --git a/keyboards/boardrun/bizarre/keyboard.json b/keyboards/boardrun/bizarre/keyboard.json index 22ddfb005d..230ce46142 100644 --- a/keyboards/boardrun/bizarre/keyboard.json +++ b/keyboards/boardrun/bizarre/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Boardrun Bizarre", "manufacturer": "shensmobile", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/boardrun/bizarre", "maintainer": "QMK Community", "debounce": 10, "usb": { diff --git a/keyboards/boardrun/classic/keyboard.json b/keyboards/boardrun/classic/keyboard.json index bdddee8067..87af448345 100644 --- a/keyboards/boardrun/classic/keyboard.json +++ b/keyboards/boardrun/classic/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Boardrun Classic", "manufacturer": "shensmobile", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/boardrun/classic", "maintainer": "QMK Community", "debounce": 10, "usb": { diff --git a/keyboards/checkerboards/plexus75_he/keyboard.json b/keyboards/checkerboards/plexus75_he/keyboard.json index 55a7a49235..03ac45a92b 100644 --- a/keyboards/checkerboards/plexus75_he/keyboard.json +++ b/keyboards/checkerboards/plexus75_he/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Plexus75 HE", "manufacturer": "Nasp", - "url": "https://www.github.com/qmk/qmk_firmware/tree/master/keyboards/checkerboards/plexus75_he", "maintainer": "nasp", "usb": { "vid": "0x7070", diff --git a/keyboards/checkerboards/quark_plus/keyboard.json b/keyboards/checkerboards/quark_plus/keyboard.json index 6f38cbb752..932eb97e4a 100644 --- a/keyboards/checkerboards/quark_plus/keyboard.json +++ b/keyboards/checkerboards/quark_plus/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Quark Plus", "manufacturer": "Nasp", - "url": "https://www.github.com/qmk/qmk_firmware/tree/master/keyboards/checkerboards/quark_plus", "maintainer": "nasp", "usb": { "vid": "0x7070", diff --git a/keyboards/converter/periboard_512/keyboard.json b/keyboards/converter/periboard_512/keyboard.json index b335931493..64055efbc5 100644 --- a/keyboards/converter/periboard_512/keyboard.json +++ b/keyboards/converter/periboard_512/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Periboard 512", "manufacturer": "Sife", - "url": "https://github.com/Sife-ops/qmk_firmware/tree/periboard_512/keyboards/converter/periboard_512", "maintainer": "Sife-ops", "usb": { "vid": "0xFEED", diff --git a/keyboards/elephant42/keyboard.json b/keyboards/elephant42/keyboard.json index be0f1c81a0..5911fcbab8 100644 --- a/keyboards/elephant42/keyboard.json +++ b/keyboards/elephant42/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "elephant42", "manufacturer": "illness072", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/elephant42", "maintainer": "illness072", "usb": { "vid": "0x4649", diff --git a/keyboards/flxlb/zplit/keyboard.json b/keyboards/flxlb/zplit/keyboard.json index fdbe34fc7e..07bdfe7a57 100644 --- a/keyboards/flxlb/zplit/keyboard.json +++ b/keyboards/flxlb/zplit/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "zplit", "manufacturer": "fluxlab", - "url": "https://github.com/cccywj/qmk_firmware", "maintainer": "flxlb", "usb": { "vid": "0x7076", diff --git a/keyboards/frooastboard/nano/keyboard.json b/keyboards/frooastboard/nano/keyboard.json index 45e3dc75d6..224699d121 100644 --- a/keyboards/frooastboard/nano/keyboard.json +++ b/keyboards/frooastboard/nano/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Frooastboard Nano", "manufacturer": "frooastside", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/frooastboard/nano", "maintainer": "frooastside", "diode_direction": "COL2ROW", "layouts": { diff --git a/keyboards/frooastboard/walnut/keyboard.json b/keyboards/frooastboard/walnut/keyboard.json index 923a0e97de..174adcc7db 100644 --- a/keyboards/frooastboard/walnut/keyboard.json +++ b/keyboards/frooastboard/walnut/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Frooastboard Walnut", "manufacturer": "Frooastside", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/frooastboard/walnut", "maintainer": "Frooastside", "diode_direction": "COL2ROW", "processor": "atmega32u4", diff --git a/keyboards/generic_panda/panda65_01/keyboard.json b/keyboards/generic_panda/panda65_01/keyboard.json index 1ba0ec134b..a83b704f7f 100644 --- a/keyboards/generic_panda/panda65_01/keyboard.json +++ b/keyboards/generic_panda/panda65_01/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Panda65_01", "manufacturer": "generic_panda", - "url": "https://github.com/JesseLeung97/qmk_firmware/tree/master/keyboards/generic_panda/panda65_01", "maintainer": "generic_panda", "usb": { "vid": "0x6770", diff --git a/keyboards/handwired/acacia/keyboard.json b/keyboards/handwired/acacia/keyboard.json index 16f614d795..17246e52ec 100644 --- a/keyboards/handwired/acacia/keyboard.json +++ b/keyboards/handwired/acacia/keyboard.json @@ -2,7 +2,6 @@ "keyboard_name": "Acacia", "manufacturer": "jpsecher", "maintainer": "jpsecher", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/acacia", "processor": "atmega32u2", "bootloader": "atmel-dfu", "bootloader_instructions": "Enter the bootloader by using the small buttons on the PCB: press the RESET button while connected to QMK Toolbox.", diff --git a/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json b/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json index 207f8c06a7..c6a790d14d 100644 --- a/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/4x5_5/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl ManuForm 4x5_5", "manufacturer": "ssedrick", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/dactyl_manuform/4x5_5", "maintainer": "ssedrick", "usb": { "vid": "0x444D", diff --git a/keyboards/handwired/dactyl_rah/keyboard.json b/keyboards/handwired/dactyl_rah/keyboard.json index 2cb7741cc7..69d982ee6b 100644 --- a/keyboards/handwired/dactyl_rah/keyboard.json +++ b/keyboards/handwired/dactyl_rah/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Dactyl RAH", "manufacturer": "ralphie02", - "url": "https://qmk.fm/keyboards/", "maintainer": "ralphie02", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/dqz11n1g/keyboard.json b/keyboards/handwired/dqz11n1g/keyboard.json index 4e45a5a920..d28df5c669 100644 --- a/keyboards/handwired/dqz11n1g/keyboard.json +++ b/keyboards/handwired/dqz11n1g/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "DQz11N1G", "manufacturer": "Unknown", - "url": "https://github.com/dvdkhlng/qmk_firmware_dqz11n1g", "maintainer": "dvdkhlng", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/dygma/raise/info.json b/keyboards/handwired/dygma/raise/info.json index be32abfb94..56058c31f5 100644 --- a/keyboards/handwired/dygma/raise/info.json +++ b/keyboards/handwired/dygma/raise/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Raise", "manufacturer": "Dygma", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/dygma/raise", "maintainer": "ibash", "usb": { "vid": "0x1209", diff --git a/keyboards/handwired/ibm_wheelwriter/keyboard.json b/keyboards/handwired/ibm_wheelwriter/keyboard.json index 91f56540e2..8dfb3fc403 100644 --- a/keyboards/handwired/ibm_wheelwriter/keyboard.json +++ b/keyboards/handwired/ibm_wheelwriter/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "6715 Wheelwriter", "manufacturer": "IBM", - "url": "https://github.com/andresteare/qmk_firmware", "maintainer": "andresteare", "usb": { "vid": "0x8767", diff --git a/keyboards/handwired/jotanck/keyboard.json b/keyboards/handwired/jotanck/keyboard.json index bddcce9fa5..028ef31c49 100644 --- a/keyboards/handwired/jotanck/keyboard.json +++ b/keyboards/handwired/jotanck/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Jotanck", "manufacturer": "Jotix", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/jotanck", "maintainer": "jotix", "usb": { "vid": "0x4A4F", diff --git a/keyboards/handwired/jotlily60/keyboard.json b/keyboards/handwired/jotlily60/keyboard.json index fd072d83db..2d658dac0e 100644 --- a/keyboards/handwired/jotlily60/keyboard.json +++ b/keyboards/handwired/jotlily60/keyboard.json @@ -2,7 +2,6 @@ "manufacturer": "Jotix", "keyboard_name": "jotlily60", "maintainer" : "jotix", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/jotlily60", "usb": { "vid": "0x4A4F", "pid": "0x2332", diff --git a/keyboards/handwired/oem_ansi_fullsize/keyboard.json b/keyboards/handwired/oem_ansi_fullsize/keyboard.json index 3c3ebb2646..c72444cc61 100644 --- a/keyboards/handwired/oem_ansi_fullsize/keyboard.json +++ b/keyboards/handwired/oem_ansi_fullsize/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "oem_ansi_fullsize", "manufacturer": "Cian Johnston", - "url": "https://github.com/johnstcn/qmk", "maintainer": "johnstcn", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/oem_iso_fullsize/keyboard.json b/keyboards/handwired/oem_iso_fullsize/keyboard.json index dcff4541f1..c31c8e917c 100644 --- a/keyboards/handwired/oem_iso_fullsize/keyboard.json +++ b/keyboards/handwired/oem_iso_fullsize/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "teclado_oscar", "manufacturer": "Gamdias", - "url": "https://github.com/andresteare/qmk_firmware", "maintainer": "andresteare", "usb": { "vid": "0x9856", diff --git a/keyboards/handwired/owlet60/keyboard.json b/keyboards/handwired/owlet60/keyboard.json index fad204e6fa..33b4e1bbae 100644 --- a/keyboards/handwired/owlet60/keyboard.json +++ b/keyboards/handwired/owlet60/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Owlet60", "manufacturer": "worthlessowl", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/owlet60/", "maintainer": "worthlessowl", "usb": { "vid": "0xFEED", diff --git a/keyboards/handwired/twadlee/tp69/keyboard.json b/keyboards/handwired/twadlee/tp69/keyboard.json index 833aa8bdf8..91b162233e 100644 --- a/keyboards/handwired/twadlee/tp69/keyboard.json +++ b/keyboards/handwired/twadlee/tp69/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "TP69", "manufacturer": "Tracy Wadleigh", - "url": "https://github.com/twadleigh/qmk_firmware", "maintainer": "qmk", "usb": { "vid": "0xBEEF", diff --git a/keyboards/handwired/zergo/keyboard.json b/keyboards/handwired/zergo/keyboard.json index 44bd80c0cd..59ee3ec636 100644 --- a/keyboards/handwired/zergo/keyboard.json +++ b/keyboards/handwired/zergo/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "zErgo", "manufacturer": "GreenJack", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/handwired/zergo", "maintainer": "greenjack", "usb": { "vid": "0xFEED", diff --git a/keyboards/ibm/model_m/ashpil_usbc/keyboard.json b/keyboards/ibm/model_m/ashpil_usbc/keyboard.json index 3bf1069fd1..3dc35aa22a 100644 --- a/keyboards/ibm/model_m/ashpil_usbc/keyboard.json +++ b/keyboards/ibm/model_m/ashpil_usbc/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "IBM Model M 101/102", "manufacturer": "ashpil", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m/ashpil_usbc", "maintainer": "ashpil", "usb": { "vid": "0xFEED", diff --git a/keyboards/ibm/model_m/mschwingen/info.json b/keyboards/ibm/model_m/mschwingen/info.json index 0deb57ed03..27b3ff5381 100644 --- a/keyboards/ibm/model_m/mschwingen/info.json +++ b/keyboards/ibm/model_m/mschwingen/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "atmega32U4 board for IBM Model M", "manufacturer": "mschwingen", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m/mschwingen", "maintainer": "mschwingen", "usb": { "vid": "0xFEED", diff --git a/keyboards/ibm/model_m/teensy2/keyboard.json b/keyboards/ibm/model_m/teensy2/keyboard.json index fac1d42ebe..62be457462 100644 --- a/keyboards/ibm/model_m/teensy2/keyboard.json +++ b/keyboards/ibm/model_m/teensy2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "IBM Model M 101/102", "manufacturer": "wangfuco", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m/teensy2", "maintainer": "wangfuco", "usb": { "vid": "0xFEED", diff --git a/keyboards/ibm/model_m/teensypp/keyboard.json b/keyboards/ibm/model_m/teensypp/keyboard.json index e77c43483b..5166cda073 100644 --- a/keyboards/ibm/model_m/teensypp/keyboard.json +++ b/keyboards/ibm/model_m/teensypp/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "IBM Model M 101/102", "manufacturer": "iw0rm3r", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m/teensypp", "maintainer": "iw0rm3r", "usb": { "vid": "0xFEED", diff --git a/keyboards/ibm/model_m/yugo_m/keyboard.json b/keyboards/ibm/model_m/yugo_m/keyboard.json index aee2f9720a..f4b3282102 100644 --- a/keyboards/ibm/model_m/yugo_m/keyboard.json +++ b/keyboards/ibm/model_m/yugo_m/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Yugo-M (IBM Model M replacment controller)", "manufacturer": "IBM", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m/yugo_m", "maintainer": "Nidzo Tomic", "usb": { "vid": "0xFEED", diff --git a/keyboards/ibm/model_m_122/ibm122m/keyboard.json b/keyboards/ibm/model_m_122/ibm122m/keyboard.json index a9e10ffd6a..23bfbf2c6a 100644 --- a/keyboards/ibm/model_m_122/ibm122m/keyboard.json +++ b/keyboards/ibm/model_m_122/ibm122m/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "IBM Model M 122 key", "manufacturer": "IBM", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m_122/ibm122m", "maintainer": "qmk", "usb": { "vid": "0xFEED", diff --git a/keyboards/ibm/model_m_122/m122_3270/info.json b/keyboards/ibm/model_m_122/m122_3270/info.json index 9b7a78c7f7..364ab250dc 100644 --- a/keyboards/ibm/model_m_122/m122_3270/info.json +++ b/keyboards/ibm/model_m_122/m122_3270/info.json @@ -1,7 +1,6 @@ { "keyboard_name": "Model M PC/3270 122 key", "manufacturer": "IBM", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m_122/m122_3270", "maintainer": "jmaynard", "usb": { "vid": "0x1209", diff --git a/keyboards/ibm/model_m_ssk/teensypp_ssk/keyboard.json b/keyboards/ibm/model_m_ssk/teensypp_ssk/keyboard.json index 50ce403130..06ce761651 100644 --- a/keyboards/ibm/model_m_ssk/teensypp_ssk/keyboard.json +++ b/keyboards/ibm/model_m_ssk/teensypp_ssk/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "IBM Model M Space-Saving Keyboard", "manufacturer": "tiltowait", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ibm/model_m_ssk/teensypp_ssk", "maintainer": "tiltowait", "usb": { "vid": "0xFEED", diff --git a/keyboards/jacky_studio/bear_65/rev1/keyboard.json b/keyboards/jacky_studio/bear_65/rev1/keyboard.json index df7be71869..3181635e03 100644 --- a/keyboards/jacky_studio/bear_65/rev1/keyboard.json +++ b/keyboards/jacky_studio/bear_65/rev1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Bear 65", "manufacturer": "Jacky", - "url": "https://qmk.fm/keyboards", "maintainer": "qmk", "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/jacky_studio/bear_65/rev2/keyboard.json b/keyboards/jacky_studio/bear_65/rev2/keyboard.json index 0fa471d44a..bfc31bb1a5 100644 --- a/keyboards/jacky_studio/bear_65/rev2/keyboard.json +++ b/keyboards/jacky_studio/bear_65/rev2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Bear65 V2", "manufacturer": "Jacky", - "url": "https://qmk.fm/keyboards", "maintainer": "qmk", "processor": "atmega32u4", "bootloader": "atmel-dfu", diff --git a/keyboards/kbdfans/kbd19x/keyboard.json b/keyboards/kbdfans/kbd19x/keyboard.json index b5f4673060..8834b78d87 100644 --- a/keyboards/kbdfans/kbd19x/keyboard.json +++ b/keyboards/kbdfans/kbd19x/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "KBD19x", "manufacturer": "KBDfans", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/kbdfans/kbd19x", "maintainer": "jshuf, mechmerlin", "usb": { "vid": "0x4B42", diff --git a/keyboards/kegen/gboy/keyboard.json b/keyboards/kegen/gboy/keyboard.json index a39316328f..1485a7b59d 100644 --- a/keyboards/kegen/gboy/keyboard.json +++ b/keyboards/kegen/gboy/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "G-Boy", "manufacturer": "Kegen", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/kegen/gboy", "maintainer": "mattchan", "usb": { "vid": "0x4B65", diff --git a/keyboards/keycapsss/o4l_5x12/keyboard.json b/keyboards/keycapsss/o4l_5x12/keyboard.json index 7425dc7a0b..1a213aa298 100644 --- a/keyboards/keycapsss/o4l_5x12/keyboard.json +++ b/keyboards/keycapsss/o4l_5x12/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "O4L:5x12", "manufacturer": "Keycapsss", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/keycapsss/o4l_5x12", "maintainer": "BenRoe", "usb": { "vid": "0x7983", diff --git a/keyboards/kiserdesigns/madeline/keyboard.json b/keyboards/kiserdesigns/madeline/keyboard.json index 5fdcd981f1..bdc3ddc9c9 100644 --- a/keyboards/kiserdesigns/madeline/keyboard.json +++ b/keyboards/kiserdesigns/madeline/keyboard.json @@ -28,7 +28,6 @@ "resync": true } }, - "url": "https://qmk.fm/keyboards", "usb": { "device_version": "0.0.1", "pid": "0x6D64", diff --git a/keyboards/ll3ma/bongopad/keyboard.json b/keyboards/ll3ma/bongopad/keyboard.json index c3abc03fc9..9fba0917bb 100644 --- a/keyboards/ll3ma/bongopad/keyboard.json +++ b/keyboards/ll3ma/bongopad/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "BongoPad", "manufacturer": "Ll3ma", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/ll3ma/bongopad", "maintainer": "Ll3ma", "usb": { "vid": "0x3728", diff --git a/keyboards/manyboard/macro/keyboard.json b/keyboards/manyboard/macro/keyboard.json index d0c278b781..3b99221b78 100644 --- a/keyboards/manyboard/macro/keyboard.json +++ b/keyboards/manyboard/macro/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "MB_Macro", "manufacturer": "Manyboard", - "url": "https://github.com/WillEhman/qmk_firmware/tree/dev_create_mb_macro", "maintainer": "William Ehman", "usb": { "vid": "0x4D42", diff --git a/keyboards/nopunin10did/jabberwocky/v1/keyboard.json b/keyboards/nopunin10did/jabberwocky/v1/keyboard.json index 25f7f7a533..120fdc3e76 100644 --- a/keyboards/nopunin10did/jabberwocky/v1/keyboard.json +++ b/keyboards/nopunin10did/jabberwocky/v1/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Jabberwocky", "manufacturer": "NoPunIn10Did", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/nopunin10did/jabberwocky/v1", "maintainer": "NoPunIn10Did", "usb": { "vid": "0x4E50", diff --git a/keyboards/nopunin10did/jabberwocky/v2/keyboard.json b/keyboards/nopunin10did/jabberwocky/v2/keyboard.json index 784732a54a..dd22ce3d3b 100644 --- a/keyboards/nopunin10did/jabberwocky/v2/keyboard.json +++ b/keyboards/nopunin10did/jabberwocky/v2/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Jabberwocky", "manufacturer": "NoPunIn10Did", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/nopunin10did/jabberwocky/v2", "maintainer": "NoPunIn10Did", "usb": { "vid": "0x4E50", diff --git a/keyboards/nopunin10did/kastenwagen1840/keyboard.json b/keyboards/nopunin10did/kastenwagen1840/keyboard.json index 7dea20455c..2e24077111 100644 --- a/keyboards/nopunin10did/kastenwagen1840/keyboard.json +++ b/keyboards/nopunin10did/kastenwagen1840/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Kastenwagen 1840", "manufacturer": "NoPunIn10Did", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/nopunin10did/kastenwagen1840", "maintainer": "NoPunIn10Did", "usb": { "vid": "0x4E50", diff --git a/keyboards/nopunin10did/kastenwagen48/keyboard.json b/keyboards/nopunin10did/kastenwagen48/keyboard.json index 0132d0fa61..82ce186b92 100644 --- a/keyboards/nopunin10did/kastenwagen48/keyboard.json +++ b/keyboards/nopunin10did/kastenwagen48/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Kastenwagen 48", "manufacturer": "NoPunIn10Did", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/nopunin10did/kastenwagen48", "maintainer": "NoPunIn10Did", "usb": { "vid": "0x4E50", diff --git a/keyboards/nopunin10did/railroad/rev0/keyboard.json b/keyboards/nopunin10did/railroad/rev0/keyboard.json index 92c878c571..695a5e05f3 100644 --- a/keyboards/nopunin10did/railroad/rev0/keyboard.json +++ b/keyboards/nopunin10did/railroad/rev0/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "The Railroad", "manufacturer": "NoPunIn10Did", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/nopunin10did/railroad", "maintainer": "NoPunIn10Did", "usb": { "vid": "0x4E50", diff --git a/keyboards/nopunin10did/styrkatmel/keyboard.json b/keyboards/nopunin10did/styrkatmel/keyboard.json index 033357d8f2..5b4f7fa3f4 100644 --- a/keyboards/nopunin10did/styrkatmel/keyboard.json +++ b/keyboards/nopunin10did/styrkatmel/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Styrka Atmel", "manufacturer": "NoPunIn10Did", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/nopunin10did/styrkatmel", "maintainer": "NoPunIn10Did", "usb": { "vid": "0x4E50", diff --git a/keyboards/ocean/sus/keyboard.json b/keyboards/ocean/sus/keyboard.json index ebbb247035..aca9350a96 100644 --- a/keyboards/ocean/sus/keyboard.json +++ b/keyboards/ocean/sus/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Sus", "manufacturer": "Ocean", - "url": " ", "maintainer": "Ocean", "usb": { "vid": "0x9624", diff --git a/keyboards/paprikman/albacore/keyboard.json b/keyboards/paprikman/albacore/keyboard.json index a2005221c3..13862f4354 100644 --- a/keyboards/paprikman/albacore/keyboard.json +++ b/keyboards/paprikman/albacore/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Albacore", "manufacturer": "paprikman", - "url": "https://github.com/paprikman/qmk_firmware/tree/master/keyboards/paprikman/albacore", "maintainer": "paprikman", "usb": { "vid": "0x736D", diff --git a/keyboards/pohjolaworks/louhi/keyboard.json b/keyboards/pohjolaworks/louhi/keyboard.json index be00368632..e4fe50a398 100644 --- a/keyboards/pohjolaworks/louhi/keyboard.json +++ b/keyboards/pohjolaworks/louhi/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Louhi", "manufacturer": "Pohjola Works", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/pohjolaworks/louhi", "maintainer": "ErkHal", "usb": { "vid": "0x5057", diff --git a/keyboards/rart/rartland/keyboard.json b/keyboards/rart/rartland/keyboard.json index 158cbb8639..d5aaf59da7 100644 --- a/keyboards/rart/rartland/keyboard.json +++ b/keyboards/rart/rartland/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "RARTLAND", "manufacturer": "Alabahuy", - "url": " ", "maintainer": "Alabahuy", "usb": { "vid": "0x414C", diff --git a/keyboards/rubi/keyboard.json b/keyboards/rubi/keyboard.json index bdef35fc77..8763052204 100644 --- a/keyboards/rubi/keyboard.json +++ b/keyboards/rubi/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Rubi", "manufacturer": "gregorio", - "url": "https://github.com/ohchiko/qmk_firmware/tree/master/keyboards/rubi", "maintainer": "gregorio", "usb": { "vid": "0x4752", diff --git a/keyboards/shandoncodes/flygone60/rev3/keyboard.json b/keyboards/shandoncodes/flygone60/rev3/keyboard.json index 4b83963648..2825e69f21 100644 --- a/keyboards/shandoncodes/flygone60/rev3/keyboard.json +++ b/keyboards/shandoncodes/flygone60/rev3/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Flygone60 Rev3", "manufacturer": "ShandonCodes", - "url": "https://qmk.fm/keyboards/", "maintainer": "ShandonCodes", "usb": { "vid": "0x7877", diff --git a/keyboards/shandoncodes/mino/hotswap/keyboard.json b/keyboards/shandoncodes/mino/hotswap/keyboard.json index d9f460b391..33ef128a83 100644 --- a/keyboards/shandoncodes/mino/hotswap/keyboard.json +++ b/keyboards/shandoncodes/mino/hotswap/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Mino", "manufacturer": "ShandonCodes", - "url": "https://qmk.fm/keyboards/", "maintainer": "ShandonCodes", "usb": { "vid": "0x7877", diff --git a/keyboards/swagkeys/eave/keyboard.json b/keyboards/swagkeys/eave/keyboard.json index 87945ed756..8fbd9b249f 100644 --- a/keyboards/swagkeys/eave/keyboard.json +++ b/keyboards/swagkeys/eave/keyboard.json @@ -41,7 +41,6 @@ "saturation_steps": 8, "sleep": true }, - "url": "NONE", "usb": { "device_version": "1.0.0", "pid": "0x4A16", diff --git a/keyboards/swagkeys/integral/keyboard.json b/keyboards/swagkeys/integral/keyboard.json index 3d49671100..a939c26592 100644 --- a/keyboards/swagkeys/integral/keyboard.json +++ b/keyboards/swagkeys/integral/keyboard.json @@ -20,7 +20,6 @@ "rows": ["B9", "C13", "B12", "B11", "B10"] }, "processor": "STM32F103", - "url": "NONE", "usb": { "device_version": "1.0.0", "pid": "0x4F21", diff --git a/keyboards/walletburner/cajal/keyboard.json b/keyboards/walletburner/cajal/keyboard.json index 03fb89b23e..07b4a3146f 100644 --- a/keyboards/walletburner/cajal/keyboard.json +++ b/keyboards/walletburner/cajal/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Cajal", "manufacturer": "Walletburner", - "url": "https://qmk.fm/keyboards/", "maintainer": "worldspawn00", "usb": { "vid": "0x5742", diff --git a/keyboards/walletburner/neuron/keyboard.json b/keyboards/walletburner/neuron/keyboard.json index d353b0b623..9dc2616f7a 100644 --- a/keyboards/walletburner/neuron/keyboard.json +++ b/keyboards/walletburner/neuron/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Neuron", "manufacturer": "Walletburner", - "url": "https://qmk.fm/keyboards/", "maintainer": "worldspawn00", "usb": { "vid": "0x5742", diff --git a/keyboards/wsk/gothic50/keyboard.json b/keyboards/wsk/gothic50/keyboard.json index ecd87d9e81..0e49872b10 100644 --- a/keyboards/wsk/gothic50/keyboard.json +++ b/keyboards/wsk/gothic50/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Gothic50", "manufacturer": "Worldspawn00", - "url": "https://qmk.fm/keyboards", "maintainer": "worldspawn00", "usb": { "vid": "0xFEED", diff --git a/keyboards/wsk/gothic70/keyboard.json b/keyboards/wsk/gothic70/keyboard.json index 15acd70287..1c3f54d585 100644 --- a/keyboards/wsk/gothic70/keyboard.json +++ b/keyboards/wsk/gothic70/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Gothic70", "manufacturer": "Worldspawn00", - "url": "https://qmk.fm/keyboards", "maintainer": "worldspawn00", "usb": { "vid": "0x5753", diff --git a/keyboards/wsk/houndstooth/keyboard.json b/keyboards/wsk/houndstooth/keyboard.json index d7596b151a..1e6e5b36e2 100644 --- a/keyboards/wsk/houndstooth/keyboard.json +++ b/keyboards/wsk/houndstooth/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Houndstooth", "manufacturer": "Worldspawn00", - "url": "https://qmk.fm/keyboards", "maintainer": "worldspawn00", "usb": { "vid": "0xFEED", diff --git a/keyboards/wsk/jerkin/keyboard.json b/keyboards/wsk/jerkin/keyboard.json index 4ff9701f6e..dfd3a6d314 100644 --- a/keyboards/wsk/jerkin/keyboard.json +++ b/keyboards/wsk/jerkin/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Jerkin", "manufacturer": "Worldspawn00", - "url": "https://qmk.fm/keyboards", "maintainer": "worldspawn00", "usb": { "vid": "0xFEED", diff --git a/keyboards/wsk/kodachi50/keyboard.json b/keyboards/wsk/kodachi50/keyboard.json index d37eb965e2..373a1770fb 100644 --- a/keyboards/wsk/kodachi50/keyboard.json +++ b/keyboards/wsk/kodachi50/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "Kodachi50", "manufacturer": "Worldspawn00", - "url": "https://qmk.fm/keyboards", "maintainer": "worldspawn00", "usb": { "vid": "0xFEED", diff --git a/keyboards/wsk/pain27/keyboard.json b/keyboards/wsk/pain27/keyboard.json index 43a9ce5f59..0a88b751dc 100644 --- a/keyboards/wsk/pain27/keyboard.json +++ b/keyboards/wsk/pain27/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "PAIN27", "manufacturer": "Worldspawn00", - "url": "https://qmk.fm/keyboards", "maintainer": "worldspawn00", "usb": { "vid": "0xFEED", diff --git a/keyboards/wsk/sl40/keyboard.json b/keyboards/wsk/sl40/keyboard.json index 9c6752b98c..9d92cad7c3 100644 --- a/keyboards/wsk/sl40/keyboard.json +++ b/keyboards/wsk/sl40/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "SL40", "manufacturer": "Worldspawn00", - "url": "https://qmk.fm/keyboards", "maintainer": "worldspawn00", "usb": { "vid": "0xFEED", diff --git a/keyboards/wsk/tkl30/keyboard.json b/keyboards/wsk/tkl30/keyboard.json index 4a767c1da8..21f4c15545 100644 --- a/keyboards/wsk/tkl30/keyboard.json +++ b/keyboards/wsk/tkl30/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "TKL30", "manufacturer": "Worldspawn00", - "url": "https://qmk.fm/keyboards", "maintainer": "worldspawn00", "usb": { "vid": "0xFEED", diff --git a/keyboards/xelus/akis/keyboard.json b/keyboards/xelus/akis/keyboard.json index 25b4f958d7..0aa4d177cb 100644 --- a/keyboards/xelus/akis/keyboard.json +++ b/keyboards/xelus/akis/keyboard.json @@ -1,7 +1,6 @@ { "keyboard_name": "AkiS", "manufacturer": "Xelus", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/xelus/akis", "maintainer": "Xelus22", "usb": { "vid": "0x5845", diff --git a/keyboards/xelus/kangaroo/info.json b/keyboards/xelus/kangaroo/info.json index 791aa75cf7..fb7858dd3b 100644 --- a/keyboards/xelus/kangaroo/info.json +++ b/keyboards/xelus/kangaroo/info.json @@ -1,6 +1,5 @@ { "manufacturer": "Xelus", - "url": "https://github.com/qmk/qmk_firmware/tree/master/keyboards/xelus/kangaroo", "maintainer": "qmk", "usb": { "vid": "0x5845", From 57b284dfa999aedfc7cea1db864e6daea8d9dc92 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 8 Dec 2025 19:55:06 +0000 Subject: [PATCH 138/255] Refactor Makefile logic for locating keymaps (#25808) --- Makefile | 34 +---------------- builddefs/build_json.mk | 36 ------------------ builddefs/build_keyboard.mk | 74 +------------------------------------ builddefs/build_layout.mk | 36 ------------------ builddefs/locate_keymap.mk | 64 ++++++++++++++++++++++++++++++++ 5 files changed, 67 insertions(+), 177 deletions(-) delete mode 100644 builddefs/build_json.mk delete mode 100644 builddefs/build_layout.mk create mode 100644 builddefs/locate_keymap.mk diff --git a/Makefile b/Makefile index 5bb4f0d8eb..62c3d3c284 100644 --- a/Makefile +++ b/Makefile @@ -190,41 +190,9 @@ endef # Parses a rule in the format : # the keyboard is already known when entering this function define PARSE_KEYBOARD - # If we want to compile the default subproject, then we need to - # include the correct makefile to determine the actual name of it CURRENT_KB := $1 - # 5/4/3/2/1 - KEYBOARD_FOLDER_PATH_1 := $$(CURRENT_KB) - KEYBOARD_FOLDER_PATH_2 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_1))) - KEYBOARD_FOLDER_PATH_3 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_2))) - KEYBOARD_FOLDER_PATH_4 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_3))) - KEYBOARD_FOLDER_PATH_5 := $$(patsubst %/,%,$$(dir $$(KEYBOARD_FOLDER_PATH_4))) - - KEYMAPS := - # get a list of all keymaps - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/keymaps/*/.))) - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/keymaps/*/.))) - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/keymaps/*/.))) - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.))) - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.))) - - ifneq ($(QMK_USERSPACE),) - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_1)/keymaps/*/.))) - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_2)/keymaps/*/.))) - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_3)/keymaps/*/.))) - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_4)/keymaps/*/.))) - KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/keyboards/$$(KEYBOARD_FOLDER_PATH_5)/keymaps/*/.))) - endif - - KEYBOARD_LAYOUTS := $(shell $(QMK_BIN) list-layouts --keyboard $1) - LAYOUT_KEYMAPS := - $$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(ROOT_DIR)/layouts/*/$$(LAYOUT)/*/.))))) - ifneq ($(QMK_USERSPACE),) - $$(foreach LAYOUT,$$(KEYBOARD_LAYOUTS),$$(eval LAYOUT_KEYMAPS += $$(notdir $$(patsubst %/.,%,$$(wildcard $(QMK_USERSPACE)/layouts/$$(LAYOUT)/*/.))))) - endif - - KEYMAPS := $$(sort $$(KEYMAPS) $$(LAYOUT_KEYMAPS)) + KEYMAPS := $(shell $(QMK_BIN) list-keymaps --keyboard $1) # if the rule after removing the start of it is empty (we haven't specified a kemap or target) # compile all the keymaps diff --git a/builddefs/build_json.mk b/builddefs/build_json.mk deleted file mode 100644 index 54f256480b..0000000000 --- a/builddefs/build_json.mk +++ /dev/null @@ -1,36 +0,0 @@ -# Look for a json keymap file -ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.json)","") - KEYMAP_JSON := $(MAIN_KEYMAP_PATH_5)/keymap.json - KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_5) -else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.json)","") - KEYMAP_JSON := $(MAIN_KEYMAP_PATH_4)/keymap.json - KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_4) -else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.json)","") - KEYMAP_JSON := $(MAIN_KEYMAP_PATH_3)/keymap.json - KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_3) -else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.json)","") - KEYMAP_JSON := $(MAIN_KEYMAP_PATH_2)/keymap.json - KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_2) -else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.json)","") - KEYMAP_JSON := $(MAIN_KEYMAP_PATH_1)/keymap.json - KEYMAP_JSON_PATH := $(MAIN_KEYMAP_PATH_1) -endif - -ifneq ($(QMK_USERSPACE),) - ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.json)","") - KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.json - KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5) - else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.json)","") - KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.json - KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4) - else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.json)","") - KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.json - KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3) - else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.json)","") - KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.json - KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2) - else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.json)","") - KEYMAP_JSON := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.json - KEYMAP_JSON_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1) - endif -endif diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index 0df95342f9..aa527f79b5 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -138,75 +138,12 @@ ifneq ("$(wildcard $(KEYBOARD_PATH_5)/keyboard.json)","") DD_CONFIG_FILES += $(KEYBOARD_PATH_5)/keyboard.json endif -MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP) -MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP) -MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP) -MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP) -MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP) - # Pull in rules from DD keyboard config INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --keyboard $(KEYBOARD) --output $(INTERMEDIATE_OUTPUT)/src/info_rules.mk) include $(INFO_RULES_MK) -# Check for keymap.json first, so we can regenerate keymap.c -include $(BUILDDEFS_PATH)/build_json.mk - -# Pull in keymap level rules.mk -ifeq ("$(wildcard $(KEYMAP_PATH))", "") - # Look through the possible keymap folders until we find a matching keymap.c - ifneq ($(QMK_USERSPACE),) - ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.c)","") - -include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/rules.mk - KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1)/keymap.c - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1) - else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.c)","") - -include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/rules.mk - KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2)/keymap.c - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2) - else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.c)","") - -include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/rules.mk - KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3)/keymap.c - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3) - else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.c)","") - -include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/rules.mk - KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4)/keymap.c - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4) - else ifneq ("$(wildcard $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.c)","") - -include $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/rules.mk - KEYMAP_C := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5)/keymap.c - KEYMAP_PATH := $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5) - endif - endif - ifeq ($(KEYMAP_PATH),) - ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_1)/keymap.c)","") - -include $(MAIN_KEYMAP_PATH_1)/rules.mk - KEYMAP_C := $(MAIN_KEYMAP_PATH_1)/keymap.c - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_1) - else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_2)/keymap.c)","") - -include $(MAIN_KEYMAP_PATH_2)/rules.mk - KEYMAP_C := $(MAIN_KEYMAP_PATH_2)/keymap.c - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_2) - else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_3)/keymap.c)","") - -include $(MAIN_KEYMAP_PATH_3)/rules.mk - KEYMAP_C := $(MAIN_KEYMAP_PATH_3)/keymap.c - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_3) - else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_4)/keymap.c)","") - -include $(MAIN_KEYMAP_PATH_4)/rules.mk - KEYMAP_C := $(MAIN_KEYMAP_PATH_4)/keymap.c - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_4) - else ifneq ("$(wildcard $(MAIN_KEYMAP_PATH_5)/keymap.c)","") - -include $(MAIN_KEYMAP_PATH_5)/rules.mk - KEYMAP_C := $(MAIN_KEYMAP_PATH_5)/keymap.c - KEYMAP_PATH := $(MAIN_KEYMAP_PATH_5) - else ifneq ($(LAYOUTS),) - # If we haven't found a keymap yet fall back to community layouts - include $(BUILDDEFS_PATH)/build_layout.mk - else ifeq ("$(wildcard $(KEYMAP_JSON_PATH))", "") # Not finding keymap.c is fine if we found a keymap.json - $(call CATASTROPHIC_ERROR,Invalid keymap,Could not find keymap) - # this state should never be reached - endif - endif -endif +include $(BUILDDEFS_PATH)/locate_keymap.mk +-include $(KEYMAP_PATH)/rules.mk # Have we found a keymap.json? ifneq ("$(wildcard $(KEYMAP_JSON))", "") @@ -217,16 +154,9 @@ ifneq ("$(wildcard $(KEYMAP_JSON))", "") OPT_DEFS += -DOTHER_KEYMAP_C=\"$(OTHER_KEYMAP_C)\" endif - KEYMAP_PATH := $(KEYMAP_JSON_PATH) - KEYMAP_C := $(INTERMEDIATE_OUTPUT)/src/keymap.c KEYMAP_H := $(INTERMEDIATE_OUTPUT)/src/config.h - ifeq ($(OTHER_KEYMAP_C),) - # Load the keymap-level rules.mk if exists (and we havent already loaded it for keymap.c) - -include $(KEYMAP_PATH)/rules.mk - endif - # Load any rules.mk content from keymap.json INFO_RULES_MK = $(shell $(QMK_BIN) generate-rules-mk --quiet --escape --output $(INTERMEDIATE_OUTPUT)/src/rules.mk $(KEYMAP_JSON)) include $(INFO_RULES_MK) diff --git a/builddefs/build_layout.mk b/builddefs/build_layout.mk deleted file mode 100644 index 7a5dbf58b6..0000000000 --- a/builddefs/build_layout.mk +++ /dev/null @@ -1,36 +0,0 @@ -LAYOUTS_PATH := layouts -LAYOUTS_REPOS := $(patsubst %/,%,$(sort $(dir $(wildcard $(LAYOUTS_PATH)/*/)))) - -ifneq ($(QMK_USERSPACE),) - LAYOUTS_REPOS += $(patsubst %/,%,$(QMK_USERSPACE)/$(LAYOUTS_PATH)) -endif - -define SEARCH_LAYOUTS_REPO - LAYOUT_KEYMAP_PATH := $$(LAYOUTS_REPO)/$$(LAYOUT)/$$(KEYMAP) - LAYOUT_KEYMAP_JSON := $$(LAYOUT_KEYMAP_PATH)/keymap.json - LAYOUT_KEYMAP_C := $$(LAYOUT_KEYMAP_PATH)/keymap.c - ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_JSON))","") - KEYMAP_JSON := $$(LAYOUT_KEYMAP_JSON) - KEYMAP_JSON_PATH := $$(LAYOUT_KEYMAP_PATH) - endif - ifneq ("$$(wildcard $$(LAYOUT_KEYMAP_C))","") - -include $$(LAYOUT_KEYMAP_PATH)/rules.mk - KEYMAP_C := $$(LAYOUT_KEYMAP_C) - KEYMAP_PATH := $$(LAYOUT_KEYMAP_PATH) - endif -endef - -define SEARCH_LAYOUTS - $$(foreach LAYOUTS_REPO,$$(LAYOUTS_REPOS),$$(eval $$(call SEARCH_LAYOUTS_REPO))) -endef - -ifneq ($(FORCE_LAYOUT),) - ifneq (,$(findstring $(FORCE_LAYOUT),$(LAYOUTS))) - $(info Forcing layout: $(FORCE_LAYOUT)) - LAYOUTS := $(FORCE_LAYOUT) - else - $(call CATASTROPHIC_ERROR,Invalid layout,Forced layout does not exist) - endif -endif - -$(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS))) diff --git a/builddefs/locate_keymap.mk b/builddefs/locate_keymap.mk new file mode 100644 index 0000000000..3e95424a6c --- /dev/null +++ b/builddefs/locate_keymap.mk @@ -0,0 +1,64 @@ +MAIN_KEYMAP_PATH_1 := $(KEYBOARD_PATH_1)/keymaps/$(KEYMAP) +MAIN_KEYMAP_PATH_2 := $(KEYBOARD_PATH_2)/keymaps/$(KEYMAP) +MAIN_KEYMAP_PATH_3 := $(KEYBOARD_PATH_3)/keymaps/$(KEYMAP) +MAIN_KEYMAP_PATH_4 := $(KEYBOARD_PATH_4)/keymaps/$(KEYMAP) +MAIN_KEYMAP_PATH_5 := $(KEYBOARD_PATH_5)/keymaps/$(KEYMAP) + +POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_1) +POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_2) +POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_3) +POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_4) +POTENTIAL_KEYMAP_PATHS += $(MAIN_KEYMAP_PATH_5) + +ifneq ($(QMK_USERSPACE),) + POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_1) + POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_2) + POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_3) + POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_4) + POTENTIAL_KEYMAP_PATHS += $(QMK_USERSPACE)/$(MAIN_KEYMAP_PATH_5) +endif + +define SEARCH_POTENTIAL_LOCATION + POTENTIAL_DIR := $1 + ifeq ("$$(wildcard $$(KEYMAP_PATH))", "") + POTENTIAL_KEYMAP_JSON := $$(POTENTIAL_DIR)/keymap.json + POTENTIAL_KEYMAP_C := $$(POTENTIAL_DIR)/keymap.c + ifneq ("$$(wildcard $$(POTENTIAL_KEYMAP_JSON))","") + KEYMAP_JSON := $$(POTENTIAL_KEYMAP_JSON) + KEYMAP_PATH := $$(POTENTIAL_DIR) + endif + ifneq ("$$(wildcard $$(POTENTIAL_KEYMAP_C))","") + KEYMAP_C := $$(POTENTIAL_KEYMAP_C) + KEYMAP_PATH := $$(POTENTIAL_DIR) + endif + endif +endef + +$(foreach KM_DIR,$(POTENTIAL_KEYMAP_PATHS),$(eval $(call SEARCH_POTENTIAL_LOCATION, $(KM_DIR)))) + +LAYOUTS_PATH := layouts +LAYOUTS_REPOS := $(patsubst %/,%,$(sort $(dir $(wildcard $(LAYOUTS_PATH)/*/)))) + +ifneq ($(QMK_USERSPACE),) + LAYOUTS_REPOS += $(patsubst %/,%,$(QMK_USERSPACE)/$(LAYOUTS_PATH)) +endif + +define SEARCH_LAYOUTS + $$(foreach LAYOUTS_REPO,$$(LAYOUTS_REPOS),$$(eval $$(call SEARCH_POTENTIAL_LOCATION,$$(LAYOUTS_REPO)/$$(LAYOUT)/$$(KEYMAP)))) +endef + +ifneq ($(FORCE_LAYOUT),) + ifneq (,$(findstring $(FORCE_LAYOUT),$(LAYOUTS))) + $(info Forcing layout: $(FORCE_LAYOUT)) + LAYOUTS := $(FORCE_LAYOUT) + else + $(call CATASTROPHIC_ERROR,Invalid layout,Forced layout does not exist) + endif +endif + +$(foreach LAYOUT,$(LAYOUTS),$(eval $(call SEARCH_LAYOUTS))) + +ifeq ("$$(wildcard $$(KEYMAP_PATH))", "") + $(call CATASTROPHIC_ERROR,Invalid keymap,Could not find keymap) + # this state should never be reached +endif From de8f05b4c33bcd1a3e765fa21146bcb56bf3349b Mon Sep 17 00:00:00 2001 From: Fabian Felix Selbach Date: Mon, 8 Dec 2025 21:21:12 +0100 Subject: [PATCH 139/255] [Keyboard] Add support for Alpha FS (#25756) --- .../fabiclawz/alpha_fs/keyboard.json | 268 ++++++++++++++++++ .../alpha_fs/keymaps/default/keymap.c | 16 ++ .../handwired/fabiclawz/alpha_fs/readme.md | 28 ++ 3 files changed, 312 insertions(+) create mode 100644 keyboards/handwired/fabiclawz/alpha_fs/keyboard.json create mode 100644 keyboards/handwired/fabiclawz/alpha_fs/keymaps/default/keymap.c create mode 100644 keyboards/handwired/fabiclawz/alpha_fs/readme.md diff --git a/keyboards/handwired/fabiclawz/alpha_fs/keyboard.json b/keyboards/handwired/fabiclawz/alpha_fs/keyboard.json new file mode 100644 index 0000000000..0d69485773 --- /dev/null +++ b/keyboards/handwired/fabiclawz/alpha_fs/keyboard.json @@ -0,0 +1,268 @@ +{ + "manufacturer": "FabiClawZ", + "keyboard_name": "handwired/fabiclawz/alpha_fs", + "maintainer": "FFS2309", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP0", "GP1", "GP2", "GP3", "GP4", "GP5", "GP6", "GP7", "GP8", "GP9", "GP10"], + "rows": ["GP14", "GP15", "GP16", "GP17", "GP18", "GP19", "GP20", "GP21", "GP22", "GP26"] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "breathing": true, + "cycle_all": true, + "cycle_left_right": true, + "multisplash": true, + "solid_reactive_simple": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 1}, + {"matrix": [0, 1], "x": 13, "y": 0, "flags": 1}, + {"matrix": [9, 1], "x": 24, "y": 0, "flags": 1}, + {"matrix": [0, 2], "x": 34, "y": 0, "flags": 1}, + {"matrix": [9, 2], "x": 45, "y": 0, "flags": 1}, + {"matrix": [0, 3], "x": 57, "y": 0, "flags": 1}, + {"matrix": [9, 3], "x": 68, "y": 0, "flags": 1}, + {"matrix": [0, 4], "x": 78, "y": 0, "flags": 1}, + {"matrix": [9, 4], "x": 89, "y": 0, "flags": 1}, + {"matrix": [0, 5], "x": 102, "y": 0, "flags": 1}, + {"matrix": [9, 5], "x": 112, "y": 0, "flags": 1}, + {"matrix": [0, 6], "x": 123, "y": 0, "flags": 1}, + {"matrix": [9, 6], "x": 133, "y": 0, "flags": 1}, + {"matrix": [0, 7], "x": 146, "y": 0, "flags": 1}, + {"matrix": [0, 8], "x": 159, "y": 0, "flags": 1}, + {"matrix": [7, 8], "x": 169, "y": 0, "flags": 1}, + {"matrix": [8, 8], "x": 180, "y": 0, "flags": 1}, + {"matrix": [9, 8], "x": 193, "y": 0, "flags": 1}, + {"matrix": [0, 10], "x": 203, "y": 0, "flags": 1}, + {"matrix": [1, 10], "x": 214, "y": 0, "flags": 1}, + {"matrix": [2, 10], "x": 224, "y": 0, "flags": 1}, + {"matrix": [1, 0], "x": 0, "y": 15, "flags": 1}, + {"matrix": [1, 1], "x": 10, "y": 15, "flags": 4}, + {"matrix": [8, 1], "x": 21, "y": 15, "flags": 4}, + {"matrix": [1, 2], "x": 31, "y": 15, "flags": 4}, + {"matrix": [8, 2], "x": 42, "y": 15, "flags": 4}, + {"matrix": [1, 3], "x": 52, "y": 15, "flags": 4}, + {"matrix": [8, 3], "x": 63, "y": 15, "flags": 4}, + {"matrix": [1, 4], "x": 73, "y": 15, "flags": 4}, + {"matrix": [8, 4], "x": 83, "y": 15, "flags": 4}, + {"matrix": [1, 5], "x": 94, "y": 15, "flags": 4}, + {"matrix": [8, 5], "x": 104, "y": 15, "flags": 4}, + {"matrix": [1, 6], "x": 115, "y": 15, "flags": 4}, + {"matrix": [8, 6], "x": 125, "y": 15, "flags": 4}, + {"matrix": [1, 7], "x": 141, "y": 15, "flags": 1}, + {"matrix": [1, 8], "x": 159, "y": 15, "flags": 1}, + {"matrix": [6, 8], "x": 169, "y": 15, "flags": 1}, + {"matrix": [5, 8], "x": 180, "y": 15, "flags": 1}, + {"matrix": [3, 10], "x": 193, "y": 15, "flags": 8}, + {"matrix": [4, 10], "x": 203, "y": 15, "flags": 4}, + {"matrix": [5, 10], "x": 214, "y": 15, "flags": 4}, + {"matrix": [6, 10], "x": 224, "y": 15, "flags": 4}, + {"matrix": [2, 0], "x": 3, "y": 27, "flags": 1}, + {"matrix": [2, 1], "x": 16, "y": 27, "flags": 4}, + {"matrix": [7, 1], "x": 26, "y": 27, "flags": 4}, + {"matrix": [2, 2], "x": 36, "y": 27, "flags": 4}, + {"matrix": [7, 2], "x": 47, "y": 27, "flags": 4}, + {"matrix": [2, 3], "x": 57, "y": 27, "flags": 4}, + {"matrix": [7, 3], "x": 68, "y": 27, "flags": 4}, + {"matrix": [2, 4], "x": 78, "y": 27, "flags": 4}, + {"matrix": [7, 4], "x": 89, "y": 27, "flags": 4}, + {"matrix": [2, 5], "x": 99, "y": 27, "flags": 4}, + {"matrix": [7, 5], "x": 109, "y": 27, "flags": 4}, + {"matrix": [2, 6], "x": 120, "y": 27, "flags": 4}, + {"matrix": [7, 6], "x": 130, "y": 27, "flags": 4}, + {"matrix": [2, 7], "x": 147, "y": 20, "flags": 1}, + {"matrix": [2, 8], "x": 159, "y": 27, "flags": 1}, + {"matrix": [3, 8], "x": 169, "y": 27, "flags": 1}, + {"matrix": [4, 8], "x": 180, "y": 27, "flags": 1}, + {"matrix": [0, 9], "x": 193, "y": 27, "flags": 4}, + {"matrix": [1, 9], "x": 203, "y": 27, "flags": 4}, + {"matrix": [2, 9], "x": 214, "y": 27, "flags": 4}, + {"matrix": [7, 10], "x": 224, "y": 34, "flags": 4}, + {"matrix": [3, 0], "x": 4, "y": 40, "flags": 8}, + {"matrix": [3, 1], "x": 18, "y": 40, "flags": 4}, + {"matrix": [6, 1], "x": 29, "y": 40, "flags": 4}, + {"matrix": [3, 2], "x": 39, "y": 40, "flags": 4}, + {"matrix": [6, 2], "x": 50, "y": 40, "flags": 4}, + {"matrix": [3, 3], "x": 60, "y": 40, "flags": 4}, + {"matrix": [6, 3], "x": 70, "y": 40, "flags": 4}, + {"matrix": [3, 4], "x": 81, "y": 40, "flags": 4}, + {"matrix": [6, 4], "x": 91, "y": 40, "flags": 4}, + {"matrix": [3, 5], "x": 102, "y": 40, "flags": 4}, + {"matrix": [6, 5], "x": 112, "y": 40, "flags": 4}, + {"matrix": [3, 6], "x": 123, "y": 40, "flags": 4}, + {"matrix": [6, 6], "x": 133, "y": 40, "flags": 4}, + {"matrix": [5, 9], "x": 193, "y": 40, "flags": 4}, + {"matrix": [4, 9], "x": 203, "y": 40, "flags": 4}, + {"matrix": [3, 9], "x": 214, "y": 40, "flags": 4}, + {"matrix": [4, 0], "x": 1, "y": 52, "flags": 1}, + {"matrix": [4, 1], "x": 13, "y": 52, "flags": 4}, + {"matrix": [5, 1], "x": 23, "y": 52, "flags": 4}, + {"matrix": [4, 2], "x": 34, "y": 52, "flags": 4}, + {"matrix": [5, 2], "x": 44, "y": 52, "flags": 4}, + {"matrix": [4, 3], "x": 55, "y": 52, "flags": 4}, + {"matrix": [5, 3], "x": 65, "y": 52, "flags": 4}, + {"matrix": [4, 4], "x": 76, "y": 52, "flags": 4}, + {"matrix": [5, 4], "x": 86, "y": 52, "flags": 4}, + {"matrix": [4, 5], "x": 69, "y": 52, "flags": 4}, + {"matrix": [5, 5], "x": 107, "y": 52, "flags": 4}, + {"matrix": [4, 6], "x": 117, "y": 52, "flags": 4}, + {"matrix": [5, 6], "x": 137, "y": 52, "flags": 1}, + {"matrix": [3, 7], "x": 169, "y": 52, "flags": 1}, + {"matrix": [6, 9], "x": 193, "y": 52, "flags": 4}, + {"matrix": [7, 9], "x": 203, "y": 52, "flags": 4}, + {"matrix": [8, 9], "x": 214, "y": 52, "flags": 4}, + {"matrix": [8, 10], "x": 224, "y": 58, "flags": 1}, + {"matrix": [5, 0], "x": 1, "y": 64, "flags": 1}, + {"matrix": [6, 0], "x": 14, "y": 64, "flags": 1}, + {"matrix": [7, 0], "x": 27, "y": 64, "flags": 1}, + {"matrix": [8, 0], "x": 66, "y": 64, "flags": 4}, + {"matrix": [9, 0], "x": 105, "y": 64, "flags": 1}, + {"matrix": [9, 7], "x": 118, "y": 64, "flags": 1}, + {"matrix": [8, 7], "x": 131, "y": 64, "flags": 1}, + {"matrix": [7, 7], "x": 145, "y": 64, "flags": 1}, + {"matrix": [6, 7], "x": 159, "y": 64, "flags": 1}, + {"matrix": [5, 7], "x": 169, "y": 64, "flags": 1}, + {"matrix": [4, 7], "x": 180, "y": 64, "flags": 1}, + {"matrix": [9, 9], "x": 198, "y": 64, "flags": 4}, + {"matrix": [9, 10], "x": 214, "y": 64, "flags": 1} + ] + }, + "url": "https://github.com/FFS2309/alpha_fs_keyboard", + "usb": { + "device_version": "1.0.0", + "pid": "0x0001", + "vid": "0x4643" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP11" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "F1", "matrix": [0, 1], "x": 1.25, "y": 0}, + {"label": "F2", "matrix": [9, 1], "x": 2.25, "y": 0}, + {"label": "F3", "matrix": [0, 2], "x": 3.25, "y": 0}, + {"label": "F4", "matrix": [9, 2], "x": 4.25, "y": 0}, + {"label": "F5", "matrix": [0, 3], "x": 5.5, "y": 0}, + {"label": "F6", "matrix": [9, 3], "x": 6.5, "y": 0}, + {"label": "F7", "matrix": [0, 4], "x": 7.5, "y": 0}, + {"label": "F8", "matrix": [9, 4], "x": 8.5, "y": 0}, + {"label": "F9", "matrix": [0, 5], "x": 9.75, "y": 0}, + {"label": "F10", "matrix": [9, 5], "x": 10.75, "y": 0}, + {"label": "F11", "matrix": [0, 6], "x": 11.75, "y": 0}, + {"label": "F12", "matrix": [9, 6], "x": 12.75, "y": 0}, + {"label": "Extra1", "matrix": [0, 7], "x": 14, "y": 0}, + {"label": "PrtSc", "matrix": [0, 8], "x": 15.25, "y": 0}, + {"label": "Scroll Lock", "matrix": [7, 8], "x": 16.25, "y": 0}, + {"label": "Pause", "matrix": [8, 8], "x": 17.25, "y": 0}, + {"label": "Extra2", "matrix": [9, 8], "x": 18.5, "y": 0}, + {"label": "Extra3", "matrix": [0, 10], "x": 19.5, "y": 0}, + {"label": "Extra4", "matrix": [1, 10], "x": 20.5, "y": 0}, + {"label": "Extra5", "matrix": [2, 10], "x": 21.5, "y": 0}, + {"label": "^", "matrix": [1, 0], "x": 0, "y": 1.5}, + {"label": "1", "matrix": [1, 1], "x": 1, "y": 1.5}, + {"label": "2", "matrix": [8, 1], "x": 2, "y": 1.5}, + {"label": "3", "matrix": [1, 2], "x": 3, "y": 1.5}, + {"label": "4", "matrix": [8, 2], "x": 4, "y": 1.5}, + {"label": "5", "matrix": [1, 3], "x": 5, "y": 1.5}, + {"label": "6", "matrix": [8, 3], "x": 6, "y": 1.5}, + {"label": "7", "matrix": [1, 4], "x": 7, "y": 1.5}, + {"label": "8", "matrix": [8, 4], "x": 8, "y": 1.5}, + {"label": "9", "matrix": [1, 5], "x": 9, "y": 1.5}, + {"label": "0", "matrix": [8, 5], "x": 10, "y": 1.5}, + {"label": "\u00df", "matrix": [1, 6], "x": 11, "y": 1.5}, + {"label": "\u00b4", "matrix": [8, 6], "x": 12, "y": 1.5}, + {"label": "Backspace", "matrix": [1, 7], "x": 13, "y": 1.5, "w": 2}, + {"label": "Insert", "matrix": [1, 8], "x": 15.25, "y": 1.5}, + {"label": "Home", "matrix": [6, 8], "x": 16.25, "y": 1.5}, + {"label": "PgUp", "matrix": [5, 8], "x": 17.25, "y": 1.5}, + {"label": "Num Lock", "matrix": [3, 10], "x": 18.5, "y": 1.5}, + {"label": "/", "matrix": [4, 10], "x": 19.5, "y": 1.5}, + {"label": "*", "matrix": [5, 10], "x": 20.5, "y": 1.5}, + {"label": "-", "matrix": [6, 10], "x": 21.5, "y": 1.5}, + {"label": "Tab", "matrix": [2, 0], "x": 0, "y": 2.5, "w": 1.5}, + {"label": "Q", "matrix": [2, 1], "x": 1.5, "y": 2.5}, + {"label": "W", "matrix": [7, 1], "x": 2.5, "y": 2.5}, + {"label": "E", "matrix": [2, 2], "x": 3.5, "y": 2.5}, + {"label": "R", "matrix": [7, 2], "x": 4.5, "y": 2.5}, + {"label": "T", "matrix": [2, 3], "x": 5.5, "y": 2.5}, + {"label": "Y", "matrix": [7, 3], "x": 6.5, "y": 2.5}, + {"label": "U", "matrix": [2, 4], "x": 7.5, "y": 2.5}, + {"label": "I", "matrix": [7, 4], "x": 8.5, "y": 2.5}, + {"label": "O", "matrix": [2, 5], "x": 9.5, "y": 2.5}, + {"label": "P", "matrix": [7, 5], "x": 10.5, "y": 2.5}, + {"label": "{", "matrix": [2, 6], "x": 11.5, "y": 2.5}, + {"label": "}", "matrix": [7, 6], "x": 12.5, "y": 2.5}, + {"label": "Enter", "matrix": [2, 7], "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "Delete", "matrix": [2, 8], "x": 15.25, "y": 2.5}, + {"label": "End", "matrix": [3, 8], "x": 16.25, "y": 2.5}, + {"label": "PgDn", "matrix": [4, 8], "x": 17.25, "y": 2.5}, + {"label": "7", "matrix": [0, 9], "x": 18.5, "y": 2.5}, + {"label": "8", "matrix": [1, 9], "x": 19.5, "y": 2.5}, + {"label": "9", "matrix": [2, 9], "x": 20.5, "y": 2.5}, + {"label": "+", "matrix": [7, 10], "x": 21.5, "y": 2.5, "h": 2}, + {"label": "Caps Lock", "matrix": [3, 0], "x": 0, "y": 3.5, "w": 1.75}, + {"label": "A", "matrix": [3, 1], "x": 1.75, "y": 3.5}, + {"label": "S", "matrix": [6, 1], "x": 2.75, "y": 3.5}, + {"label": "D", "matrix": [3, 2], "x": 3.75, "y": 3.5}, + {"label": "F", "matrix": [6, 2], "x": 4.75, "y": 3.5}, + {"label": "G", "matrix": [3, 3], "x": 5.75, "y": 3.5}, + {"label": "H", "matrix": [6, 3], "x": 6.75, "y": 3.5}, + {"label": "J", "matrix": [3, 4], "x": 7.75, "y": 3.5}, + {"label": "K", "matrix": [6, 4], "x": 8.75, "y": 3.5}, + {"label": "L", "matrix": [3, 5], "x": 9.75, "y": 3.5}, + {"label": ":", "matrix": [6, 5], "x": 10.75, "y": 3.5}, + {"label": "@", "matrix": [3, 6], "x": 11.75, "y": 3.5}, + {"label": "~", "matrix": [6, 6], "x": 12.75, "y": 3.5}, + {"label": "4", "matrix": [5, 9], "x": 18.5, "y": 3.5}, + {"label": "5", "matrix": [4, 9], "x": 19.5, "y": 3.5}, + {"label": "6", "matrix": [3, 9], "x": 20.5, "y": 3.5}, + {"label": "Shift", "matrix": [4, 0], "x": 0, "y": 4.5, "w": 1.25}, + {"label": "|", "matrix": [4, 1], "x": 1.25, "y": 4.5}, + {"label": "Z", "matrix": [5, 1], "x": 2.25, "y": 4.5}, + {"label": "X", "matrix": [4, 2], "x": 3.25, "y": 4.5}, + {"label": "C", "matrix": [5, 2], "x": 4.25, "y": 4.5}, + {"label": "V", "matrix": [4, 3], "x": 5.25, "y": 4.5}, + {"label": "B", "matrix": [5, 3], "x": 6.25, "y": 4.5}, + {"label": "N", "matrix": [4, 4], "x": 7.25, "y": 4.5}, + {"label": "M", "matrix": [5, 4], "x": 8.25, "y": 4.5}, + {"label": "<", "matrix": [4, 5], "x": 9.25, "y": 4.5}, + {"label": ">", "matrix": [5, 5], "x": 10.25, "y": 4.5}, + {"label": "?", "matrix": [4, 6], "x": 11.25, "y": 4.5}, + {"label": "Shift", "matrix": [5, 6], "x": 12.25, "y": 4.5, "w": 2.75}, + {"label": "\u2191", "matrix": [3, 7], "x": 16.25, "y": 4.5}, + {"label": "1", "matrix": [6, 9], "x": 18.5, "y": 4.5}, + {"label": "2", "matrix": [7, 9], "x": 19.5, "y": 4.5}, + {"label": "3", "matrix": [8, 9], "x": 20.5, "y": 4.5}, + {"label": "Enter", "matrix": [8, 10], "x": 21.5, "y": 4.5, "h": 2}, + {"label": "Ctrl", "matrix": [5, 0], "x": 0, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [6, 0], "x": 1.25, "y": 5.5, "w": 1.25}, + {"label": "Alt", "matrix": [7, 0], "x": 2.5, "y": 5.5, "w": 1.25}, + {"matrix": [8, 0], "x": 3.75, "y": 5.5, "w": 6.25}, + {"label": "AltGr", "matrix": [9, 0], "x": 10, "y": 5.5, "w": 1.25}, + {"label": "Win", "matrix": [9, 7], "x": 11.25, "y": 5.5, "w": 1.25}, + {"label": "Menu", "matrix": [8, 7], "x": 12.5, "y": 5.5, "w": 1.25}, + {"label": "Ctrl", "matrix": [7, 7], "x": 13.75, "y": 5.5, "w": 1.25}, + {"label": "\u2190", "matrix": [6, 7], "x": 15.25, "y": 5.5}, + {"label": "\u2193", "matrix": [5, 7], "x": 16.25, "y": 5.5}, + {"label": "\u2192", "matrix": [4, 7], "x": 17.25, "y": 5.5}, + {"label": "0", "matrix": [9, 9], "x": 18.5, "y": 5.5, "w": 2}, + {"label": ".", "matrix": [9, 10], "x": 20.5, "y": 5.5} + ] + } + } +} diff --git a/keyboards/handwired/fabiclawz/alpha_fs/keymaps/default/keymap.c b/keyboards/handwired/fabiclawz/alpha_fs/keymaps/default/keymap.c new file mode 100644 index 0000000000..bd9e146baf --- /dev/null +++ b/keyboards/handwired/fabiclawz/alpha_fs/keymaps/default/keymap.c @@ -0,0 +1,16 @@ +// Copyright 2025 Fabian Felix Selbach (@FFS2309) +// 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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, RM_TOGG, KC_PSCR, KC_SCRL, KC_PAUS, RM_NEXT, RM_PREV, RM_VALU, RM_VALD, + + 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_ENT, 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_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_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT + ) +}; diff --git a/keyboards/handwired/fabiclawz/alpha_fs/readme.md b/keyboards/handwired/fabiclawz/alpha_fs/readme.md new file mode 100644 index 0000000000..2eae8d5132 --- /dev/null +++ b/keyboards/handwired/fabiclawz/alpha_fs/readme.md @@ -0,0 +1,28 @@ +# handwired/fabiclawz/alpha_fs + +![handwired/fabiclawz/alpha_fs](https://i.imgur.com/FOOmKXN.jpeg) + +My first keyboard with custom PCB, originally designed for the Milk-V duo series of RISC-V MCUs with pin compatibility with the Raspberry Pi Pico used in this +case for QMK. + +* Keyboard Maintainer: [Fabian Felix Selbach](https://github.com/FFS2309) +* Hardware Supported: Raspberry Pi Pico, Custom PCB +* Hardware Availability: [Hardware design files](https://github.com/FFS2309/alpha_fs_keyboard) + +Make example for this keyboard (after setting up your build environment): + + make handwired/fabiclawz/alpha_fs:default + +Flashing example for this keyboard: + + make handwired/fabiclawz/alpha_fs: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**: Briefly press the button on the back of the Pi Pico if available +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From 107812ceef1c5efaa1d76b8136f119fa3f63f731 Mon Sep 17 00:00:00 2001 From: Jon Colverson Date: Mon, 8 Dec 2025 20:31:24 +0000 Subject: [PATCH 140/255] [Keyboard] Add PicoFX (#25704) --- keyboards/dj505/picofx/keyboard.json | 96 +++++++++++++++++++ .../dj505/picofx/keymaps/allinone/keymap.json | 26 +++++ .../dj505/picofx/keymaps/allinone/readme.md | 21 ++++ .../dj505/picofx/keymaps/default/keymap.json | 16 ++++ .../dj505/picofx/keymaps/default/readme.md | 12 +++ .../dj505/picofx/keymaps/menumode/keymap.json | 36 +++++++ .../dj505/picofx/keymaps/menumode/readme.md | 28 ++++++ keyboards/dj505/picofx/readme.md | 34 +++++++ 8 files changed, 269 insertions(+) create mode 100644 keyboards/dj505/picofx/keyboard.json create mode 100644 keyboards/dj505/picofx/keymaps/allinone/keymap.json create mode 100644 keyboards/dj505/picofx/keymaps/allinone/readme.md create mode 100644 keyboards/dj505/picofx/keymaps/default/keymap.json create mode 100644 keyboards/dj505/picofx/keymaps/default/readme.md create mode 100644 keyboards/dj505/picofx/keymaps/menumode/keymap.json create mode 100644 keyboards/dj505/picofx/keymaps/menumode/readme.md create mode 100644 keyboards/dj505/picofx/readme.md diff --git a/keyboards/dj505/picofx/keyboard.json b/keyboards/dj505/picofx/keyboard.json new file mode 100644 index 0000000000..802d4e9791 --- /dev/null +++ b/keyboards/dj505/picofx/keyboard.json @@ -0,0 +1,96 @@ +{ + "manufacturer": "dj505", + "keyboard_name": "PicoFX", + "maintainer": "jjc1138", + "bootloader": "rp2040", + "bootloader_instructions": "Hold down the BOOTSEL button on the microcontroller when connecting the USB cable", + "features": { + "bootmagic": true, + "extrakey": true, + "rgb_matrix": true + }, + "matrix_pins": { + "direct": [ + ["GP19", null, "GP6", "GP27", null, "GP0"], + [null, "GP10", null, null, "GP2", null], + ["GP21", null, "GP8", "GP17", null, "GP4"], + ["GP14", "GP15", null, null, null, null] + ] + }, + "processor": "RP2040", + "rgb_matrix": { + "animations": { + "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_multisplash": true, + "solid_splash": true, + "splash": true + }, + "driver": "ws2812", + "layout": [ + {"x": 0, "y": 64, "flags": 2}, + {"x": 0, "y": 0, "flags": 2}, + {"x": 112, "y": 0, "flags": 2}, + {"x": 112, "y": 64, "flags": 2}, + {"x": 224, "y": 64, "flags": 2}, + {"x": 224, "y": 0, "flags": 2} + ], + "sleep": true + }, + "url": "https://github.com/dj505/PicoFX", + "usb": { + "device_version": "1.0.0", + "pid": "0x4658", + "vid": "0xFEED" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP22" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"label": "P1 UL", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "P1 UR", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "P2 UL", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "P2 UR", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "P1 CN", "matrix": [1, 1], "x": 1, "y": 1}, + {"label": "P2 CN", "matrix": [1, 4], "x": 4, "y": 1}, + {"label": "P1 DL", "matrix": [2, 0], "x": 0, "y": 2}, + {"label": "P1 DR", "matrix": [2, 2], "x": 2, "y": 2}, + {"label": "P2 DL", "matrix": [2, 3], "x": 3, "y": 2}, + {"label": "P2 DR", "matrix": [2, 5], "x": 5, "y": 2}, + {"label": "Service", "matrix": [3, 0], "x": 6.5, "y": 0.5}, + {"label": "Test", "matrix": [3, 1], "x": 6.5, "y": 1.5} + ] + } + } +} diff --git a/keyboards/dj505/picofx/keymaps/allinone/keymap.json b/keyboards/dj505/picofx/keymaps/allinone/keymap.json new file mode 100644 index 0000000000..22e8b804d3 --- /dev/null +++ b/keyboards/dj505/picofx/keymaps/allinone/keymap.json @@ -0,0 +1,26 @@ +{ + "keyboard": "dj505/picofx", + "keymap": "allinone", + "layout": "LAYOUT", + "layers": [ + [ + "KC_Q", "KC_E", "KC_TAB", "KC_UP", + + "KC_X", "KC_G", + + "KC_A", "KC_D", "KC_SPC", "KC_DOWN", + + "LT(1,KC_ESC)", "KC_ENT" + ], + + [ + "KC_F1", "KC_F2", "KC_F5", "KC_F6", + + "KC_TRNS", "KC_TRNS", + + "KC_F3", "KC_F4", "KC_F7", "KC_F8", + + "KC_TRNS", "QK_BOOT" + ] + ] +} diff --git a/keyboards/dj505/picofx/keymaps/allinone/readme.md b/keyboards/dj505/picofx/keymaps/allinone/readme.md new file mode 100644 index 0000000000..c82751b106 --- /dev/null +++ b/keyboards/dj505/picofx/keymaps/allinone/readme.md @@ -0,0 +1,21 @@ +# PicoFX All-in-one Keymap + +The 'allinone' keymap puts most of the buttons that you need for navigating the Pump It Up Rise menus in the main mode. If you configure the game to use those buttons for gameplay as well, then you can play the game and navigate most of the menus without having to switch modes. + +``` + Q E Tab Up + X G + A D Space Down + + Service: Esc when tapped, or temporarily activates the mode below when held + Test: Enter +``` + +When Service is held the buttons have these meanings instead: +``` + F1 F2 F5 F6 + - - + F3 F4 F7 F8 + + Test: Bootloader mode +``` diff --git a/keyboards/dj505/picofx/keymaps/default/keymap.json b/keyboards/dj505/picofx/keymaps/default/keymap.json new file mode 100644 index 0000000000..bd814f333a --- /dev/null +++ b/keyboards/dj505/picofx/keymaps/default/keymap.json @@ -0,0 +1,16 @@ +{ + "keyboard": "dj505/picofx", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_Q", "KC_E", "KC_R", "KC_Y", + + "KC_S", "KC_G", + + "KC_Z", "KC_C", "KC_V", "KC_N", + + "KC_ESC", "KC_ENT" + ] + ] +} diff --git a/keyboards/dj505/picofx/keymaps/default/readme.md b/keyboards/dj505/picofx/keymaps/default/readme.md new file mode 100644 index 0000000000..b3a6f482eb --- /dev/null +++ b/keyboards/dj505/picofx/keymaps/default/readme.md @@ -0,0 +1,12 @@ +# PicoFX Default Keymap + +The default keymap matches the 'Basic 2' preset in Pump It Up Rise. In the game's options menu, navigate to the keyboard settings and press '2' (on your normal computer keyboard) to apply the matching preset. + +``` + Q E R Y + S G + Z C V N + + Service: Escape + Test: Enter +``` diff --git a/keyboards/dj505/picofx/keymaps/menumode/keymap.json b/keyboards/dj505/picofx/keymaps/menumode/keymap.json new file mode 100644 index 0000000000..21b3697b42 --- /dev/null +++ b/keyboards/dj505/picofx/keymaps/menumode/keymap.json @@ -0,0 +1,36 @@ +{ + "keyboard": "dj505/picofx", + "keymap": "default", + "layout": "LAYOUT", + "layers": [ + [ + "KC_Q", "KC_E", "KC_R", "KC_Y", + + "KC_S", "KC_G", + + "KC_Z", "KC_C", "KC_V", "KC_N", + + "MO(2)", "TG(1)" + ], + + [ + "KC_Q", "KC_E", "KC_TAB", "KC_UP", + + "KC_ESC", "KC_ENT", + + "KC_LEFT", "KC_RGHT", "KC_SPC", "KC_DOWN", + + "LT(2,KC_F1)", "KC_TRNS" + ], + + [ + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + + "KC_TRNS", "KC_TRNS", + + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", + + "KC_TRNS", "QK_BOOT" + ] + ] +} diff --git a/keyboards/dj505/picofx/keymaps/menumode/readme.md b/keyboards/dj505/picofx/keymaps/menumode/readme.md new file mode 100644 index 0000000000..74bfa8c96a --- /dev/null +++ b/keyboards/dj505/picofx/keymaps/menumode/readme.md @@ -0,0 +1,28 @@ +# PicoFX Menu Mode Keymap + +The 'menumode' keymap is like the 'default' keymap in that it matches the 'Basic 2' preset in Pump It Up Rise, but it also includes the ability the toggle into a menu mode that provides most of the keys you need to navigate the game's menus. + +In the game's options menu, navigate to the keyboard settings and press '2' (on your normal computer keyboard) to apply the 'Basic 2' preset. + +The keymap in normal mode: +``` + Q E R Y + S G + Z C V N + + Test: Toggle to menu mode +``` + +And when in menu mode: +``` + Q E Tab Up + Esc Enter + Left Right Space Down + + Service: F1 + Test: Toggle back to game mode +``` + +It might take a little bit of practice to remember where everything is in menu mode. The rule of thumb is that the layout roughly corresponds to where those controls appear on the game's song selection screen. + +In either mode, holding the Service button and pressing the Test button will put the controller into bootloader mode for installing new firmware versions. diff --git a/keyboards/dj505/picofx/readme.md b/keyboards/dj505/picofx/readme.md new file mode 100644 index 0000000000..3f72323d34 --- /dev/null +++ b/keyboards/dj505/picofx/readme.md @@ -0,0 +1,34 @@ +# dj505/picofx + +![PicoFX controller](https://i.imgur.com/YNsJPg0.png) + +PicoFX: A compact keyboard-style controller for the *Pump It Up* rhythm game series. This firmware is intended for using the controller with the [Pump It Up Rise](https://store.steampowered.com/app/2756930/PUMP_IT_UP_RISE/) home version of the game. + +* Hardware Supported: [PicoFX](https://github.com/dj505/PicoFX) +* Keyboard Maintainer: [jjc1138](https://github.com/jjc1138) + +Make example for this keyboard (after setting up your build environment): + + make dj505/picofx:default + +Flashing example for this keyboard: + + make dj505/picofx: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). + +## Keymaps + +There are three keymaps provided, or you can build your own using the instructions below. + + * [default](keymaps/default/readme.md) + * [menumode](keymaps/menumode/readme.md) + * [allinone](keymaps/allinone/readme.md) + +### Bootloader + +Put the controller in bootloader mode in one of three ways: + +* **Physical reset button**: Hold down the BOOTSEL button on the microcontroller when connecting the USB cable. +* **Bootmagic reset**: If a version of this firmware is already installed, hold down the top-left button on the keyboard when connecting the USB cable. +* **Keycode in keymap**: If a version of this firmware is already installed with the 'menumode' or 'allinone' keymap, hold down the Service button and press the Test button. Or press a button mapped to `QK_BOOT` in your own keymap. From d7c74217848b094462c5faf99e05d8f2f14961fb Mon Sep 17 00:00:00 2001 From: Diff-fusion Date: Mon, 8 Dec 2025 22:58:04 +0100 Subject: [PATCH 141/255] Fix flash wear leveling sector calculation (#24776) --- .../drivers/wear_leveling/wear_leveling_efl.c | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c index 2328ea0674..7fa57bc738 100644 --- a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c +++ b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl.c @@ -84,13 +84,23 @@ bool backing_store_init(void) { #else // defined(WEAR_LEVELING_EFL_FIRST_SECTOR) // Work out how many sectors we want to use, working backwards from the end of the flash - flash_sector_t last_sector = desc->sectors_count - WEAR_LEVELING_EFL_OMIT_LAST_SECTOR_COUNT; + flash_sector_t last_sector = desc->sectors_count; + + // skip sectors that are past the actual flash size + while (flashGetSectorOffset(flash, last_sector - 1) >= flash_size) { + if (--last_sector == 0) { + chSysHalt("No sector in available flash range"); + } + } + + if (WEAR_LEVELING_EFL_OMIT_LAST_SECTOR_COUNT >= last_sector) { + chSysHalt("Last sector intended to be used with wear_leveling is beyond available flash descriptor range"); + } + + last_sector -= WEAR_LEVELING_EFL_OMIT_LAST_SECTOR_COUNT; + for (flash_sector_t i = 0; i < last_sector; ++i) { first_sector = last_sector - i - 1; - if (flashGetSectorOffset(flash, first_sector) >= flash_size) { - last_sector = first_sector; - continue; - } counter += flashGetSectorSize(flash, first_sector); if (counter >= (WEAR_LEVELING_BACKING_SIZE)) { sector_count = last_sector - first_sector; @@ -99,6 +109,10 @@ bool backing_store_init(void) { } } + if (counter < WEAR_LEVELING_BACKING_SIZE) { + chSysHalt("Not enough flash is available for the requested wear_leveling size"); + } + #endif // defined(WEAR_LEVELING_EFL_FIRST_SECTOR) return true; From 505e5c7033f841e277e227718ed328cf64c8a2fc Mon Sep 17 00:00:00 2001 From: ploopyco <54917504+ploopyco@users.noreply.github.com> Date: Mon, 8 Dec 2025 17:24:42 -0500 Subject: [PATCH 142/255] Add new mouse "Ploopy Nano 2 Trackball" (#25762) --- keyboards/ploopyco/nano_2/config.h | 33 ++++++++++++++++ keyboards/ploopyco/nano_2/info.json | 27 +++++++++++++ .../ploopyco/nano_2/keymaps/default/keymap.c | 23 +++++++++++ keyboards/ploopyco/nano_2/readme.md | 38 +++++++++++++++++++ .../ploopyco/nano_2/rev2_003/keyboard.json | 7 ++++ keyboards/ploopyco/nano_2/rev2_003/readme.md | 1 + keyboards/ploopyco/nano_2/rules.mk | 1 + 7 files changed, 130 insertions(+) create mode 100644 keyboards/ploopyco/nano_2/config.h create mode 100644 keyboards/ploopyco/nano_2/info.json create mode 100644 keyboards/ploopyco/nano_2/keymaps/default/keymap.c create mode 100644 keyboards/ploopyco/nano_2/readme.md create mode 100644 keyboards/ploopyco/nano_2/rev2_003/keyboard.json create mode 100644 keyboards/ploopyco/nano_2/rev2_003/readme.md create mode 100644 keyboards/ploopyco/nano_2/rules.mk diff --git a/keyboards/ploopyco/nano_2/config.h b/keyboards/ploopyco/nano_2/config.h new file mode 100644 index 0000000000..7d2b96fd8e --- /dev/null +++ b/keyboards/ploopyco/nano_2/config.h @@ -0,0 +1,33 @@ +/* Copyright 2024 Colin Lam (Ploopy Corporation) + * + * 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 UNUSABLE_PINS \ + { GP1, GP3, GP4, GP6, GP8, GP10, GP14, GP16, GP18, GP20, GP22, GP24, GP25, GP26, GP27, GP28, GP29 } + +#define MOUSE_EXTENDED_REPORT + +#define PLOOPY_DRAGSCROLL_MOMENTARY +#define PLOOPY_DRAGSCROLL_DIVISOR_H 64.0 +#define PLOOPY_DRAGSCROLL_DIVISOR_V 64.0 + +#define PAW3222_CS_PIN GP5 +#define PAW3222_MOTION_PIN GP9 +#define PAW3222_SPI_DIVISOR 64 +#define SPI_SCK_PIN GP2 +#define SPI_MISO_PIN GP0 +#define SPI_MOSI_PIN GP7 diff --git a/keyboards/ploopyco/nano_2/info.json b/keyboards/ploopyco/nano_2/info.json new file mode 100644 index 0000000000..ad69a0c04e --- /dev/null +++ b/keyboards/ploopyco/nano_2/info.json @@ -0,0 +1,27 @@ +{ + "keyboard_name": "Ploopy Nano 2 Trackball", + "manufacturer": "Ploopy Corporation", + "url": "www.ploopy.co", + "maintainer": "ploopyco", + "usb": { + "vid": "0x5043", + "pid": "0x4CE5", + "device_version": "0.0.1", + "max_power": 100 + }, + "features": { + "bootmagic": true, + "extrakey": true, + "nkro": true, + "pointing_device": true + }, + "processor": "RP2040", + "bootloader": "rp2040", + "layouts": { + "LAYOUT": { + "layout": [ + {"x": 0, "y": 0, "matrix": [0, 0]} + ] + } + } +} diff --git a/keyboards/ploopyco/nano_2/keymaps/default/keymap.c b/keyboards/ploopyco/nano_2/keymaps/default/keymap.c new file mode 100644 index 0000000000..9fa7252a66 --- /dev/null +++ b/keyboards/ploopyco/nano_2/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +/* Copyright 2021 Colin Lam (Ploopy Corporation) + * Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) + * Copyright 2019 Sunjun Kim + * Copyright 2019 Hiroyuki Okada + * + * 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( DRAG_SCROLL ) +}; diff --git a/keyboards/ploopyco/nano_2/readme.md b/keyboards/ploopyco/nano_2/readme.md new file mode 100644 index 0000000000..509a62f9fa --- /dev/null +++ b/keyboards/ploopyco/nano_2/readme.md @@ -0,0 +1,38 @@ +# Ploopy Nano 2 Trackball + +![Ploopyco Trackball Nano 2](https://cdn.ploopy.co/nano2-media-assets/site-photos/_MG_2495.jpg) + +It's a DIY, QMK Powered Trackball...Nano! + +* Maintainer: [PloopyCo](https://github.com/ploopyco) +* Key contributors: [Drashna Jael're](https://github.com/drashna/), [Germ](https://github.com/germ/) +* Hardware Supported: RP2040 +* Hardware Availability: [Store](https://ploopy.co/nano-2), [GitHub](https://github.com/ploopyco) + +Make example for this keyboard (after setting up your build environment): + + make ploopyco/nano_2/rev2_003:default + +Flashing example for this keyboard: + + make ploopyco/nano_2/rev2_003:default:flash + +# Building Firmware + +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). + +# Triggering the Bootloader + +[Do you see those two golden holes in the board](https://ploopy.co/wp-content/uploads/2023/11/boot.jpg)? Those are called **vias**. They act exactly like a switch does. Right now, that switch is OFF. However, if you take a paperclip or a pair of metal tweezers and touch those two vias, the two vias will form an electrical connection. Effectively, that switch turns ON. + +Go ahead and connect the two vias, and then (while the vias are connected) plug in the Nano 2 board into your computer. + +The computer should recognise that a mass storage device was just plugged in. Once this is done, you should be able to drag and drop files onto the Nano 2 board, as if the board was a USB drive. Feel free to remove the tweezers or paperclip at this point. + +If you want to upload a new firmware file (a ".uf2" file, like "nano-2-awesome-version.uf2" or something), just drag it into the folder, and it'll automatically install on the Nano 2 board and restart itself, in normal operating mode. You're done! + +**TIP**: If your firmware is in some kind of strange state and uploading new firmware isn't fixing it, try uploading [a flash nuke](https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython/circuitpython#flash-resetting-uf2-3083182) to the Nano 2 board before flashing the new firmware. It wipes the memory of the Nano 2 board completely clean, which can help clear a few types of errors. + +# Customizing your Ploopy Nano 2 + +You can find customziation options [here](../readme.md). \ No newline at end of file diff --git a/keyboards/ploopyco/nano_2/rev2_003/keyboard.json b/keyboards/ploopyco/nano_2/rev2_003/keyboard.json new file mode 100644 index 0000000000..767a6ba154 --- /dev/null +++ b/keyboards/ploopyco/nano_2/rev2_003/keyboard.json @@ -0,0 +1,7 @@ +{ + "matrix_pins": { + "direct": [ + ["GP17"] + ] + } +} diff --git a/keyboards/ploopyco/nano_2/rev2_003/readme.md b/keyboards/ploopyco/nano_2/rev2_003/readme.md new file mode 100644 index 0000000000..052a17f396 --- /dev/null +++ b/keyboards/ploopyco/nano_2/rev2_003/readme.md @@ -0,0 +1 @@ +See the main readme for more details. This is just here for when future revisions of the board are released. diff --git a/keyboards/ploopyco/nano_2/rules.mk b/keyboards/ploopyco/nano_2/rules.mk new file mode 100644 index 0000000000..e468209eba --- /dev/null +++ b/keyboards/ploopyco/nano_2/rules.mk @@ -0,0 +1 @@ +POINTING_DEVICE_DRIVER = paw3222 From a86322e4a7747500b25cdc57438c2ae06473760e Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 8 Dec 2025 22:26:14 +0000 Subject: [PATCH 143/255] Trigger develop docs rebuild on push (#25860) --- .github/workflows/docs.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 20a1372f26..d3b032248f 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -63,3 +63,16 @@ jobs: folder: .build/docs git-config-name: QMK Bot git-config-email: hello@qmk.fm + + - name: Deploy Develop + if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/develop' && github.repository == 'qmk/qmk_firmware' }} + uses: actions/github-script@v6 + with: + github-token: ${{ secrets.QMK_BOT_TOKEN }} + script: | + const result = await github.rest.actions.createWorkflowDispatch({ + owner: 'qmk', + repo: 'qmk_docs_devel', + workflow_id: 'develop.yml', + ref: 'main', + }) From 2b61ca078dec31542d87e2caa26cf961fcb45ab3 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 8 Dec 2025 22:44:07 +0000 Subject: [PATCH 144/255] Test commit --- docs/__capabilities.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/__capabilities.md b/docs/__capabilities.md index 873ca44664..efa0400ff5 100644 --- a/docs/__capabilities.md +++ b/docs/__capabilities.md @@ -2,6 +2,8 @@ This page lays out the capabilities used by the QMK Firmware documentation, in order to aid future transitions to other page generators. Focuses mainly on things other than normal Markdown, as it's assumed that markdown generators should still function accordingly. +test + ## Overall capabilities Unrelated to styling, high-level tech. From c8f6e6a936d4c041b0ca01b83f632016ff86ea39 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 8 Dec 2025 22:55:58 +0000 Subject: [PATCH 145/255] Revert "Trigger develop docs rebuild on push" (#25862) Revert "Trigger develop docs rebuild on push (#25860)" This reverts commit a86322e4a7747500b25cdc57438c2ae06473760e. --- .github/workflows/docs.yml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index d3b032248f..20a1372f26 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -63,16 +63,3 @@ jobs: folder: .build/docs git-config-name: QMK Bot git-config-email: hello@qmk.fm - - - name: Deploy Develop - if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/develop' && github.repository == 'qmk/qmk_firmware' }} - uses: actions/github-script@v6 - with: - github-token: ${{ secrets.QMK_BOT_TOKEN }} - script: | - const result = await github.rest.actions.createWorkflowDispatch({ - owner: 'qmk', - repo: 'qmk_docs_devel', - workflow_id: 'develop.yml', - ref: 'main', - }) From 73a6496516c165a8d7ec023513f7fd32cd7bc78f Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 9 Dec 2025 00:21:25 +0000 Subject: [PATCH 146/255] Trigger develop docs rebuild on push (#25863) --- .github/workflows/develop_docs.yml | 34 ++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 .github/workflows/develop_docs.yml diff --git a/.github/workflows/develop_docs.yml b/.github/workflows/develop_docs.yml new file mode 100644 index 0000000000..4c569da3f8 --- /dev/null +++ b/.github/workflows/develop_docs.yml @@ -0,0 +1,34 @@ +name: Generate Develop Docs + +permissions: + contents: write + +on: + push: + branches: + - develop + paths: + - 'builddefs/docsgen/**' + - 'tmk_core/**' + - 'quantum/**' + - 'platforms/**' + - 'docs/**' + - '.github/workflows/docs.yml' + +jobs: + generate: + runs-on: ubuntu-latest + + steps: + - name: Deploy Develop + if: ${{ github.repository == 'qmk/qmk_firmware' }} + uses: actions/github-script@v6 + with: + github-token: ${{ secrets.QMK_BOT_TOKEN }} + script: | + const result = await github.rest.actions.createWorkflowDispatch({ + owner: 'qmk', + repo: 'qmk_docs_devel', + workflow_id: 'develop.yml', + ref: 'main', + }) From c1b8b3dc6a09ccc138199daf5d1a5ea8c1806b99 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 9 Dec 2025 00:22:31 +0000 Subject: [PATCH 147/255] Revert test commit --- docs/__capabilities.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/__capabilities.md b/docs/__capabilities.md index efa0400ff5..873ca44664 100644 --- a/docs/__capabilities.md +++ b/docs/__capabilities.md @@ -2,8 +2,6 @@ This page lays out the capabilities used by the QMK Firmware documentation, in order to aid future transitions to other page generators. Focuses mainly on things other than normal Markdown, as it's assumed that markdown generators should still function accordingly. -test - ## Overall capabilities Unrelated to styling, high-level tech. From 10faca0b853f9d2ab1cca7981391ec44de0e369a Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 9 Dec 2025 03:14:46 +0000 Subject: [PATCH 148/255] Move shutdown delay to audio feature (#25859) --- quantum/audio/audio.c | 21 +++++++++++++++++++++ quantum/audio/audio.h | 2 ++ quantum/quantum.c | 24 +++++++++--------------- 3 files changed, 32 insertions(+), 15 deletions(-) diff --git a/quantum/audio/audio.c b/quantum/audio/audio.c index 461ec89544..b6b39a9350 100644 --- a/quantum/audio/audio.c +++ b/quantum/audio/audio.c @@ -71,6 +71,10 @@ # define AUDIO_DEFAULT_CLICKY_ON true #endif +#ifndef AUDIO_SHUTDOWN_DELAY +# define AUDIO_SHUTDOWN_DELAY 250 +#endif + #ifndef AUDIO_TONE_STACKSIZE # define AUDIO_TONE_STACKSIZE 8 #endif @@ -114,9 +118,14 @@ extern uint16_t voices_timer; #ifndef AUDIO_OFF_SONG # define AUDIO_OFF_SONG SONG(AUDIO_OFF_SOUND) #endif +#ifndef GOODBYE_SONG +# define GOODBYE_SONG SONG(GOODBYE_SOUND) +#endif + float startup_song[][2] = STARTUP_SONG; float audio_on_song[][2] = AUDIO_ON_SONG; float audio_off_song[][2] = AUDIO_OFF_SONG; +float goodbye_song[][2] = GOODBYE_SONG; static bool audio_initialized = false; static bool audio_driver_stopped = true; @@ -210,6 +219,18 @@ void audio_startup(void) { last_timestamp = timer_read(); } +void audio_shutdown(void) { + uint16_t timer_start = timer_read(); + + PLAY_SONG(goodbye_song); + + while (timer_elapsed(timer_start) < AUDIO_SHUTDOWN_DELAY) { + wait_ms(1); + } + + stop_all_notes(); +} + void audio_toggle(void) { if (audio_config.enable) { stop_all_notes(); diff --git a/quantum/audio/audio.h b/quantum/audio/audio.h index a41814d0f8..2cc8143980 100644 --- a/quantum/audio/audio.h +++ b/quantum/audio/audio.h @@ -218,6 +218,8 @@ uint16_t audio_ms_to_duration(uint16_t duration_ms); void audio_startup(void); +void audio_shutdown(void); + // hardware interface // implementation in the driver_avr/arm_* respective parts diff --git a/quantum/quantum.c b/quantum/quantum.c index 128f8fb66d..1a57548fd2 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -94,10 +94,6 @@ #endif #ifdef AUDIO_ENABLE -# ifndef GOODBYE_SONG -# define GOODBYE_SONG SONG(GOODBYE_SOUND) -# endif -float goodbye_song[][2] = GOODBYE_SONG; # ifdef DEFAULT_LAYER_SONGS float default_layer_songs[][16][2] = DEFAULT_LAYER_SONGS; # endif @@ -218,18 +214,16 @@ void shutdown_quantum(bool jump_to_bootloader) { # ifndef NO_MUSIC_MODE music_all_notes_off(); # endif - uint16_t timer_start = timer_read(); - PLAY_SONG(goodbye_song); - shutdown_modules(jump_to_bootloader); - shutdown_kb(jump_to_bootloader); - while (timer_elapsed(timer_start) < 250) - wait_ms(1); - stop_all_notes(); -#else - shutdown_modules(jump_to_bootloader); - shutdown_kb(jump_to_bootloader); - wait_ms(250); + audio_shutdown(); #endif + + shutdown_modules(jump_to_bootloader); + shutdown_kb(jump_to_bootloader); + +#if SHUTDOWN_DELAY > 0 + wait_ms(SHUTDOWN_DELAY); +#endif + #ifdef HAPTIC_ENABLE haptic_shutdown(); #endif From e2d19eda57b21e22dfabfccf72d2f7a1d0997633 Mon Sep 17 00:00:00 2001 From: lental Date: Mon, 8 Dec 2025 19:30:39 -0800 Subject: [PATCH 149/255] Add queue.len() keyboard (#24823) Co-authored-by: Joel Challis --- keyboards/dotlen/queue/keyboard.json | 187 ++++++++++++++++++ .../dotlen/queue/keymaps/default/keymap.c | 41 ++++ keyboards/dotlen/queue/readme.md | 28 +++ 3 files changed, 256 insertions(+) create mode 100644 keyboards/dotlen/queue/keyboard.json create mode 100644 keyboards/dotlen/queue/keymaps/default/keymap.c create mode 100644 keyboards/dotlen/queue/readme.md diff --git a/keyboards/dotlen/queue/keyboard.json b/keyboards/dotlen/queue/keyboard.json new file mode 100644 index 0000000000..3dd3807194 --- /dev/null +++ b/keyboards/dotlen/queue/keyboard.json @@ -0,0 +1,187 @@ +{ + "manufacturer": "DotLen", + "keyboard_name": "Queue.Len()", + "maintainer": "lental", + "bootloader": "atmel-dfu", + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "B0", "pin_b": "B7"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["D4", "D6", "D7", "B4", "B5", "B6", "C6", "C7", "F7", "F6", "F5", "F4", "F1", "F0", "E6"], + "rows": ["D5", "D3", "D2", "D1", "D0"] + }, + "processor": "atmega32u4", + "url": "https://github.com/lental/keyboard-firmware", + "usb": { + "device_version": "0.0.1", + "pid": "0x000A", + "vid": "0xFACE" + }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_triple_space" + }, + "layouts": { + "LAYOUT_standard_space": { + "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": "split", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "rotary", "matrix": [2, 14], "x": 15, "y": 0, "encoder":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": "Bksp", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "pgup", "matrix": [1, 14], "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, 13], "x": 15, "y": 2}, + {"label": "split", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "Shift", "matrix": [3, 1], "x": 1.25, "y": 3, "w": 1}, + {"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": "Up", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "pgup", "matrix": [3, 14], "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}, + {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "Alt", "matrix": [4, 6], "x": 10, "y": 4}, + {"label": "Win", "matrix": [4, 7], "x": 11, "y": 4}, + {"label": "Ctrl", "matrix": [4, 8], "x": 12, "y": 4}, + {"label": "left", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "down", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "right", "matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_triple_space": { + "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": "split", "matrix": [0, 14], "x": 14, "y": 0}, + {"label": "rotary", "matrix": [2, 14], "x": 15, "y": 0, "encoder":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": "Bksp", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "pgup", "matrix": [1, 14], "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, 13], "x": 15, "y": 2}, + {"label": "split", "matrix": [3, 0], "x": 0, "y": 3, "w": 1.25}, + {"label": "Shift", "matrix": [3, 1], "x": 1.25, "y": 3, "w": 1}, + {"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": "Up", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "pgup", "matrix": [3, 14], "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}, + {"matrix": [4, 3], "x": 3.75, "y": 4, "w": 2.25}, + {"matrix": [4, 4], "x": 6, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 7.25, "y": 4, "w": 2.75}, + {"label": "Alt", "matrix": [4, 6], "x": 10, "y": 4}, + {"label": "Win", "matrix": [4, 7], "x": 11, "y": 4}, + {"label": "Ctrl", "matrix": [4, 8], "x": 12, "y": 4}, + {"label": "left", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "down", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "right", "matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/dotlen/queue/keymaps/default/keymap.c b/keyboards/dotlen/queue/keymaps/default/keymap.c new file mode 100644 index 0000000000..74f4cc59c2 --- /dev/null +++ b/keyboards/dotlen/queue/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +// Copyright 2025 lental +// SPDX-License-Identifier: GPL-2.0-or-later +#include QMK_KEYBOARD_H + +enum layers { + _BL, + _FL, + _AL +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_BL] = LAYOUT_all( + KC_GRAVE, 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_MUTE, + 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, MO(_FL), KC_Z , KC_X, KC_C , KC_V , KC_B, KC_N , KC_M , KC_COMM, KC_DOT, KC_SLASH, KC_RSFT , KC_UP, KC_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC,KC_SPC, KC_SPC , KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), + +[_FL] = LAYOUT_all( + 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_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_HOME, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, KC_END, 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, MO(_AL), + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), + +[_AL] = LAYOUT_all( + 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_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 ) + +}; + +#ifdef ENCODER_MAP_ENABLE +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { + [_BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [_FL] = { ENCODER_CCW_CW(_______, _______)}, + [_AL] = { ENCODER_CCW_CW(_______, _______)} +}; +#endif diff --git a/keyboards/dotlen/queue/readme.md b/keyboards/dotlen/queue/readme.md new file mode 100644 index 0000000000..7a004731c6 --- /dev/null +++ b/keyboards/dotlen/queue/readme.md @@ -0,0 +1,28 @@ +# Queue.len() + +![Queue.len()](https://i.imgur.com/8JKbm6P.png) + +A 65% keyboard with multiple layout support. + +* Keyboard Maintainer: [Lental](https://github.com/lental) +* Hardware Supported: Custom PCB +* Hardware Availability: Private Group Buy +* Keyboard Layout Editor [Link](https://www.keyboard-layout-editor.com/#/gists/d54fc38f606ce3e990a88044e9b71858) + +Make example for this keyboard (after setting up your build environment): + + make dotlen/queue:default + +Flashing example for this keyboard: + + make dotlen/queue: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 e6e66a9f2e4c8c2c31226c0617a1d3877f7424fc Mon Sep 17 00:00:00 2001 From: Philip <68480429+iliorik@users.noreply.github.com> Date: Tue, 9 Dec 2025 06:33:02 +0300 Subject: [PATCH 150/255] Update dactyl_manuform 5x8 keyboard.json (#24778) --- .../dactyl_manuform/5x8/keyboard.json | 81 ++++++++++--------- 1 file changed, 43 insertions(+), 38 deletions(-) diff --git a/keyboards/handwired/dactyl_manuform/5x8/keyboard.json b/keyboards/handwired/dactyl_manuform/5x8/keyboard.json index 2ac3010717..649987911b 100644 --- a/keyboards/handwired/dactyl_manuform/5x8/keyboard.json +++ b/keyboards/handwired/dactyl_manuform/5x8/keyboard.json @@ -10,7 +10,7 @@ "features": { "bootmagic": true, "extrakey": true, - "mousekey": true, + "mousekey": true }, "qmk": { "locking": { @@ -25,6 +25,11 @@ "diode_direction": "COL2ROW", "split": { "enabled": true, + "matrix_pins": { + "right": { + "cols": ["F4", "F5", "F6", "F7", "B1", "B3", "B2", "B6"] + } + }, "serial": { "pin": "D0" } @@ -42,14 +47,14 @@ {"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": [6, 1], "x": 11, "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.5}, + {"matrix": [6, 6], "x": 16, "y": 0.5}, + {"matrix": [6, 7], "x": 17, "y": 0.5}, {"matrix": [1, 0], "x": 0, "y": 1.5}, {"matrix": [1, 1], "x": 1, "y": 1.5}, @@ -60,14 +65,14 @@ {"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": [7, 1], "x": 11, "y": 1}, + {"matrix": [7, 2], "x": 12, "y": 1}, + {"matrix": [7, 3], "x": 13, "y": 1}, + {"matrix": [7, 4], "x": 14, "y": 1}, + {"matrix": [7, 5], "x": 15, "y": 1.5}, + {"matrix": [7, 6], "x": 16, "y": 1.5}, + {"matrix": [7, 7], "x": 17, "y": 1.5}, {"matrix": [2, 0], "x": 0, "y": 2.5}, {"matrix": [2, 1], "x": 1, "y": 2.5}, @@ -78,14 +83,14 @@ {"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": [8, 1], "x": 11, "y": 2}, + {"matrix": [8, 2], "x": 12, "y": 2}, + {"matrix": [8, 3], "x": 13, "y": 2}, + {"matrix": [8, 4], "x": 14, "y": 2}, + {"matrix": [8, 5], "x": 15, "y": 2.5}, + {"matrix": [8, 6], "x": 16, "y": 2.5}, + {"matrix": [8, 7], "x": 17, "y": 2.5}, {"matrix": [3, 0], "x": 0, "y": 3.5}, {"matrix": [3, 1], "x": 1, "y": 3.5}, @@ -95,41 +100,41 @@ {"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": [9, 1], "x": 11, "y": 3}, + {"matrix": [9, 2], "x": 12, "y": 3}, + {"matrix": [9, 3], "x": 13, "y": 3}, + {"matrix": [9, 4], "x": 14, "y": 3}, + {"matrix": [9, 5], "x": 15, "y": 3.5}, + {"matrix": [9, 6], "x": 16, "y": 3.5}, + {"matrix": [9, 7], "x": 17, "y": 3.5}, {"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": [10, 4], "x": 14, "y": 4}, + {"matrix": [10, 5], "x": 15, "y": 4.5}, + {"matrix": [10, 6], "x": 16, "y": 4.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": [10, 1], "x": 11.5, "y": 5}, + {"matrix": [10, 2], "x": 12.5, "y": 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": [11, 1], "x": 11, "y": 6}, + {"matrix": [11, 2], "x": 12, "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} + {"matrix": [11, 3], "x": 11, "y": 7}, + {"matrix": [11, 4], "x": 12, "y": 7} ] } } From 0881e0867b41f18eb4af03826512f8681752811f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=E1=BA=AFn?= <59417802+MaiTheSan@users.noreply.github.com> Date: Tue, 9 Dec 2025 11:06:24 +0700 Subject: [PATCH 151/255] Add support for Kami65 PCB (#24604) Co-authored-by: Duncan Sutherland Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis --- keyboards/chickenman/kami65/keyboard.json | 336 ++++++++++++++++++ .../kami65/keymaps/default/keymap.c | 49 +++ keyboards/chickenman/kami65/readme.md | 27 ++ 3 files changed, 412 insertions(+) create mode 100644 keyboards/chickenman/kami65/keyboard.json create mode 100644 keyboards/chickenman/kami65/keymaps/default/keymap.c create mode 100644 keyboards/chickenman/kami65/readme.md diff --git a/keyboards/chickenman/kami65/keyboard.json b/keyboards/chickenman/kami65/keyboard.json new file mode 100644 index 0000000000..548bc39bee --- /dev/null +++ b/keyboards/chickenman/kami65/keyboard.json @@ -0,0 +1,336 @@ +{ + "manufacturer": "Chickenman", + "keyboard_name": "Kami65", + "maintainer": "MaiTheSan", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "indicators": { + "caps_lock": "B12", + "on_state": 0 + }, + "matrix_pins": { + "cols": ["A10", "A0", "A9", "C13", "A1", "A2", "B11", "B10", "B1", "B0", "A7", "A6", "A5", "A4", "C14"], + "rows": ["B4", "A15", "A3", "A8", "B14"] + }, + "processor": "STM32F072", + "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": 24, + "sleep": true + }, + "usb": { + "device_version": "1.0.0", + "pid": "0x00A1", + "vid": "0xC41C" + }, + "ws2812": { + "pin": "B15" + }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT_65_ansi_blocker_split_bs" + }, + "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_split_bs", "65_ansi_blocker_tsangan", "65_ansi_blocker_tsangan_split_bs"], + "layouts": { + "LAYOUT_65_ansi_blocker": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "K0E", "matrix": [0, 14], "x": 15, "y": 0}, + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "K11", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "K12", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "K13", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "K14", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "K15", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "K16", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "K17", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "K18", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "K19", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "K1A", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "K1B", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "K1C", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "K1D", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "K1E", "matrix": [1, 14], "x": 15, "y": 1}, + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "K21", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "K22", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "K23", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "K24", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "K25", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "K26", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "K27", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K28", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "K29", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "K2A", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "K2B", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "K2C", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "K2E", "matrix": [2, 14], "x": 15, "y": 2}, + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "K33", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "K34", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "K35", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "K36", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "K37", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "K38", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "K39", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "K3A", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "K3B", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "K3C", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "K3D", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "K3E", "matrix": [3, 14], "x": 15, "y": 3}, + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "K41", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "K42", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "K46", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "K4A", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "K4C", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "K4D", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "K4E", "matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_split_bs": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "K2D", "matrix": [2, 13], "x": 14, "y": 0}, + {"label": "K0E", "matrix": [0, 14], "x": 15, "y": 0}, + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "K11", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "K12", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "K13", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "K14", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "K15", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "K16", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "K17", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "K18", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "K19", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "K1A", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "K1B", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "K1C", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "K1D", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "K1E", "matrix": [1, 14], "x": 15, "y": 1}, + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "K21", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "K22", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "K23", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "K24", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "K25", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "K26", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "K27", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K28", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "K29", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "K2A", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "K2B", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "K2C", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "K2E", "matrix": [2, 14], "x": 15, "y": 2}, + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "K33", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "K34", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "K35", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "K36", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "K37", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "K38", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "K39", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "K3A", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "K3B", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "K3C", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "K3D", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "K3E", "matrix": [3, 14], "x": 15, "y": 3}, + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25}, + {"label": "K41", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25}, + {"label": "K42", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25}, + {"label": "K46", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25}, + {"label": "K4A", "matrix": [4, 10], "x": 10, "y": 4, "w": 1.25}, + {"label": "K4B", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25}, + {"label": "K4C", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "K4D", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "K4E", "matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 0, "w": 2}, + {"label": "K0E", "matrix": [0, 14], "x": 15, "y": 0}, + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "K11", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "K12", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "K13", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "K14", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "K15", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "K16", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "K17", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "K18", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "K19", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "K1A", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "K1B", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "K1C", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "K1D", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "K1E", "matrix": [1, 14], "x": 15, "y": 1}, + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "K21", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "K22", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "K23", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "K24", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "K25", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "K26", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "K27", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K28", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "K29", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "K2A", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "K2B", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "K2C", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "K2E", "matrix": [2, 14], "x": 15, "y": 2}, + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "K33", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "K34", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "K35", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "K36", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "K37", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "K38", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "K39", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "K3A", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "K3B", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "K3C", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "K3D", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "K3E", "matrix": [3, 14], "x": 15, "y": 3}, + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "K41", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "K42", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "K46", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "K4B", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "K4C", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "K4D", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "K4E", "matrix": [4, 14], "x": 15, "y": 4} + ] + }, + "LAYOUT_65_ansi_blocker_tsangan_split_bs": { + "layout": [ + {"label": "K00", "matrix": [0, 0], "x": 0, "y": 0}, + {"label": "K01", "matrix": [0, 1], "x": 1, "y": 0}, + {"label": "K02", "matrix": [0, 2], "x": 2, "y": 0}, + {"label": "K03", "matrix": [0, 3], "x": 3, "y": 0}, + {"label": "K04", "matrix": [0, 4], "x": 4, "y": 0}, + {"label": "K05", "matrix": [0, 5], "x": 5, "y": 0}, + {"label": "K06", "matrix": [0, 6], "x": 6, "y": 0}, + {"label": "K07", "matrix": [0, 7], "x": 7, "y": 0}, + {"label": "K08", "matrix": [0, 8], "x": 8, "y": 0}, + {"label": "K09", "matrix": [0, 9], "x": 9, "y": 0}, + {"label": "K0A", "matrix": [0, 10], "x": 10, "y": 0}, + {"label": "K0B", "matrix": [0, 11], "x": 11, "y": 0}, + {"label": "K0C", "matrix": [0, 12], "x": 12, "y": 0}, + {"label": "K0D", "matrix": [0, 13], "x": 13, "y": 0}, + {"label": "K0D", "matrix": [2, 13], "x": 14, "y": 0}, + {"label": "K0E", "matrix": [0, 14], "x": 15, "y": 0}, + {"label": "K10", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5}, + {"label": "K11", "matrix": [1, 1], "x": 1.5, "y": 1}, + {"label": "K12", "matrix": [1, 2], "x": 2.5, "y": 1}, + {"label": "K13", "matrix": [1, 3], "x": 3.5, "y": 1}, + {"label": "K14", "matrix": [1, 4], "x": 4.5, "y": 1}, + {"label": "K15", "matrix": [1, 5], "x": 5.5, "y": 1}, + {"label": "K16", "matrix": [1, 6], "x": 6.5, "y": 1}, + {"label": "K17", "matrix": [1, 7], "x": 7.5, "y": 1}, + {"label": "K18", "matrix": [1, 8], "x": 8.5, "y": 1}, + {"label": "K19", "matrix": [1, 9], "x": 9.5, "y": 1}, + {"label": "K1A", "matrix": [1, 10], "x": 10.5, "y": 1}, + {"label": "K1B", "matrix": [1, 11], "x": 11.5, "y": 1}, + {"label": "K1C", "matrix": [1, 12], "x": 12.5, "y": 1}, + {"label": "K1D", "matrix": [1, 13], "x": 13.5, "y": 1, "w": 1.5}, + {"label": "K1E", "matrix": [1, 14], "x": 15, "y": 1}, + {"label": "K20", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75}, + {"label": "K21", "matrix": [2, 1], "x": 1.75, "y": 2}, + {"label": "K22", "matrix": [2, 2], "x": 2.75, "y": 2}, + {"label": "K23", "matrix": [2, 3], "x": 3.75, "y": 2}, + {"label": "K24", "matrix": [2, 4], "x": 4.75, "y": 2}, + {"label": "K25", "matrix": [2, 5], "x": 5.75, "y": 2}, + {"label": "K26", "matrix": [2, 6], "x": 6.75, "y": 2}, + {"label": "K27", "matrix": [2, 7], "x": 7.75, "y": 2}, + {"label": "K28", "matrix": [2, 8], "x": 8.75, "y": 2}, + {"label": "K29", "matrix": [2, 9], "x": 9.75, "y": 2}, + {"label": "K2A", "matrix": [2, 10], "x": 10.75, "y": 2}, + {"label": "K2B", "matrix": [2, 11], "x": 11.75, "y": 2}, + {"label": "K2C", "matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25}, + {"label": "K2E", "matrix": [2, 14], "x": 15, "y": 2}, + {"label": "K30", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25}, + {"label": "K32", "matrix": [3, 2], "x": 2.25, "y": 3}, + {"label": "K33", "matrix": [3, 3], "x": 3.25, "y": 3}, + {"label": "K34", "matrix": [3, 4], "x": 4.25, "y": 3}, + {"label": "K35", "matrix": [3, 5], "x": 5.25, "y": 3}, + {"label": "K36", "matrix": [3, 6], "x": 6.25, "y": 3}, + {"label": "K37", "matrix": [3, 7], "x": 7.25, "y": 3}, + {"label": "K38", "matrix": [3, 8], "x": 8.25, "y": 3}, + {"label": "K39", "matrix": [3, 9], "x": 9.25, "y": 3}, + {"label": "K3A", "matrix": [3, 10], "x": 10.25, "y": 3}, + {"label": "K3B", "matrix": [3, 11], "x": 11.25, "y": 3}, + {"label": "K3C", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75}, + {"label": "K3D", "matrix": [3, 13], "x": 14, "y": 3}, + {"label": "K3E", "matrix": [3, 14], "x": 15, "y": 3}, + {"label": "K40", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5}, + {"label": "K41", "matrix": [4, 1], "x": 1.5, "y": 4}, + {"label": "K42", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5}, + {"label": "K46", "matrix": [4, 6], "x": 4, "y": 4, "w": 7}, + {"label": "K4B", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5}, + {"label": "K4C", "matrix": [4, 12], "x": 13, "y": 4}, + {"label": "K4D", "matrix": [4, 13], "x": 14, "y": 4}, + {"label": "K4E", "matrix": [4, 14], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/chickenman/kami65/keymaps/default/keymap.c b/keyboards/chickenman/kami65/keymaps/default/keymap.c new file mode 100644 index 0000000000..d66e90672e --- /dev/null +++ b/keyboards/chickenman/kami65/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +// 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│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │Bsp│Bsp│Hom│ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │PgU│ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │PgD│ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift│ ↑ │End│ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │Ctrl│GUI │Alt │ │ 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_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, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + + /* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ + * │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│Del│Del│ │ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┼───┤ + * │ │ │ │ │ │ │Ins│ │ │ │ │PSc│Scr│Pause│ │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤ + * │ │ │ │ │ │ │ │Mut│Vl-│Vl+│ │ │ │ │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤ + * │ │ │ │ │ │ │ │ │ │ │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + */ + [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, KC_DEL, UG_TOGG, + _______, _______, _______, _______, _______, _______, KC_INS, _______, _______, _______, _______, KC_PSCR, KC_SCRL, KC_PAUS, UG_PREV, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, UG_NEXT, + _______, _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/chickenman/kami65/readme.md b/keyboards/chickenman/kami65/readme.md new file mode 100644 index 0000000000..009808717f --- /dev/null +++ b/keyboards/chickenman/kami65/readme.md @@ -0,0 +1,27 @@ +# Kami65 + +![Kami65](https://i.imgur.com/SwXfDcr.png) + +A 65% keyboard. + +* Keyboard Maintainer: [Mai The San](https://github.com/maithesan) +* Hardware Supported: Kami65 Keyboard +* Hardware Availability: [UCSD GB](https://www.instagram.com/p/C1BD0RZsttm/) + +Make example for this keyboard (after setting up your build environment): + + make chickenman/kami65:default + +Flashing example for this keyboard: + + make chickenman/kami65: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 +* **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 6faca4d66355c6746bf241895641579134ec007f Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Tue, 9 Dec 2025 11:55:21 +0100 Subject: [PATCH 152/255] [Keyboard] Guard encoder behaviour on `projectcain/vault*` (#25864) Initial --- keyboards/projectcain/vault35/vault35.c | 6 ++++-- keyboards/projectcain/vault45/vault45.c | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/keyboards/projectcain/vault35/vault35.c b/keyboards/projectcain/vault35/vault35.c index 14aac7fdf7..6485ac854d 100644 --- a/keyboards/projectcain/vault35/vault35.c +++ b/keyboards/projectcain/vault35/vault35.c @@ -16,14 +16,16 @@ #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) { /* First encoder */ if (clockwise) { tap_code(KC_PGDN); } else { - tap_code(KC_PGUP); + tap_code(KC_PGUP); } } return true; -} \ No newline at end of file +} +#endif diff --git a/keyboards/projectcain/vault45/vault45.c b/keyboards/projectcain/vault45/vault45.c index 05908ba9d7..673ca8586c 100644 --- a/keyboards/projectcain/vault45/vault45.c +++ b/keyboards/projectcain/vault45/vault45.c @@ -16,20 +16,22 @@ #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) { /* First encoder */ if (clockwise) { tap_code(KC_PGDN); } else { - tap_code(KC_PGUP); + tap_code(KC_PGUP); } } else if (index == 1) { /* Second encoder */ if (clockwise) { - tap_code(KC_DOWN); + tap_code(KC_DOWN); } else { tap_code(KC_UP); } } return true; } +#endif From ff75bce86acbbb0b7c6291171c89036af25a7844 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Dec 2025 19:15:23 +0000 Subject: [PATCH 153/255] Bump actions/github-script from 6 to 8 (#25866) Bumps [actions/github-script](https://github.com/actions/github-script) from 6 to 8. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v6...v8) --- updated-dependencies: - dependency-name: actions/github-script dependency-version: '8' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/develop_docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/develop_docs.yml b/.github/workflows/develop_docs.yml index 4c569da3f8..0e3e1b378e 100644 --- a/.github/workflows/develop_docs.yml +++ b/.github/workflows/develop_docs.yml @@ -22,7 +22,7 @@ jobs: steps: - name: Deploy Develop if: ${{ github.repository == 'qmk/qmk_firmware' }} - uses: actions/github-script@v6 + uses: actions/github-script@v8 with: github-token: ${{ secrets.QMK_BOT_TOKEN }} script: | From b39661de9667b93c9482be26f6a9c41fd065d3b2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Dec 2025 19:16:07 +0000 Subject: [PATCH 154/255] Bump JamesIves/github-pages-deploy-action from 4.7.4 to 4.7.5 (#25865) Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.7.4 to 4.7.5. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.7.4...v4.7.5) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-version: 4.7.5 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 20a1372f26..ee15fd8b9e 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.4 + uses: JamesIves/github-pages-deploy-action@v4.7.5 with: token: ${{ secrets.GITHUB_TOKEN }} branch: gh-pages From 2929448605b29edf9f154e6ca9370f96dbb44145 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 19:11:25 +0000 Subject: [PATCH 155/255] Bump JamesIves/github-pages-deploy-action from 4.7.5 to 4.7.6 (#25867) Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.7.5 to 4.7.6. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.7.5...v4.7.6) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-version: 4.7.6 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 ee15fd8b9e..5e5669ee78 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.5 + uses: JamesIves/github-pages-deploy-action@v4.7.6 with: token: ${{ secrets.GITHUB_TOKEN }} branch: gh-pages From c1fedab4570a0b87b3422239a724681788727b09 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Dec 2025 19:12:17 +0000 Subject: [PATCH 156/255] Bump peter-evans/create-pull-request from 7 to 8 (#25868) Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 7 to 8. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](https://github.com/peter-evans/create-pull-request/compare/v7...v8) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-version: '8' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/format_push.yml | 2 +- .github/workflows/regen_push.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/format_push.yml b/.github/workflows/format_push.yml index 738515251a..8d017b7de3 100644 --- a/.github/workflows/format_push.yml +++ b/.github/workflows/format_push.yml @@ -47,7 +47,7 @@ jobs: git config user.email 'hello@qmk.fm' - name: Create Pull Request - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@v8 if: ${{ github.repository == 'qmk/qmk_firmware'}} with: token: ${{ secrets.QMK_BOT_TOKEN }} diff --git a/.github/workflows/regen_push.yml b/.github/workflows/regen_push.yml index df7e9970ea..98d6629bc3 100644 --- a/.github/workflows/regen_push.yml +++ b/.github/workflows/regen_push.yml @@ -34,7 +34,7 @@ jobs: git config user.email 'hello@qmk.fm' - name: Create Pull Request - uses: peter-evans/create-pull-request@v7 + uses: peter-evans/create-pull-request@v8 if: ${{ github.repository == 'qmk/qmk_firmware'}} with: token: ${{ secrets.QMK_BOT_TOKEN }} From 2e68ddc8266aa8bd70e8e734a5b433e2ed299603 Mon Sep 17 00:00:00 2001 From: Joshua Diamond Date: Fri, 12 Dec 2025 13:17:42 -0500 Subject: [PATCH 157/255] Fix broken compilation when OS_DETECTION_DEBUG_ENABLE is defined (#25869) Fix include in os_detection (broken in https://github.com/qmk/qmk_firmware/pull/24356) --- quantum/os_detection.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quantum/os_detection.c b/quantum/os_detection.c index 552375f61c..2a5237dfc3 100644 --- a/quantum/os_detection.c +++ b/quantum/os_detection.c @@ -23,7 +23,7 @@ #endif #ifdef OS_DETECTION_DEBUG_ENABLE -# include "eeconfig.h" +# include "nvm_eeprom_eeconfig_internal.h" # include "eeprom.h" # include "print.h" From 4f9582da2629eabd52dcff6ea6895de81249a501 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 12 Dec 2025 18:30:46 +0000 Subject: [PATCH 158/255] Install branch specific dependencies as part of bootstrap testing (#25871) --- .github/workflows/bootstrap_testing.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/bootstrap_testing.yml b/.github/workflows/bootstrap_testing.yml index 2e97f83081..c80d89a218 100644 --- a/.github/workflows/bootstrap_testing.yml +++ b/.github/workflows/bootstrap_testing.yml @@ -141,6 +141,12 @@ jobs: bash /home/testuser/qmk_firmware/util/env-bootstrap.sh " + - name: Install dependencies + run: | + sudo -u testuser bash -c " + /home/testuser/.local/share/uv/tools/qmk/bin/python -m pip install -r /home/testuser/qmk_firmware/requirements.txt + " + - name: Test QMK CLI run: | sudo -u testuser bash -c " @@ -185,6 +191,10 @@ jobs: export CONFIRM=1 sh ./util/env-bootstrap.sh + - name: Install dependencies + run: | + $HOME/.local/share/uv/tools/qmk/bin/python -m pip install -r requirements.txt + - name: Test QMK CLI run: | # Add QMK CLI to PATH (bootstrap script installs it to ~/.local/bin on macOS) @@ -235,6 +245,10 @@ jobs: export CONFIRM=1 sh ./util/env-bootstrap.sh + - name: Install dependencies + run: | + /opt/uv/tools/qmk/Scripts/python -m pip install -r requirements.txt + - name: Test QMK CLI run: | # Add QMK CLI to PATH (bootstrap script installs it to /opt/uv/tools/bin on Windows MSYS2) From 9e0118172f23d88887a3f1d10971adf94840b8f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Dec 2025 20:11:19 +0000 Subject: [PATCH 159/255] Bump actions/upload-artifact from 5 to 6 (#25872) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 5 to 6. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci_build_major_branch_keymap.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci_build_major_branch_keymap.yml b/.github/workflows/ci_build_major_branch_keymap.yml index 89c932553a..02ee966da2 100644 --- a/.github/workflows/ci_build_major_branch_keymap.yml +++ b/.github/workflows/ci_build_major_branch_keymap.yml @@ -62,7 +62,7 @@ jobs: echo "targets=$(jq -c 'keys' targets.json)" >> $GITHUB_OUTPUT - name: Upload targets json - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: targets-${{ inputs.keymap }} path: targets.json @@ -112,7 +112,7 @@ jobs: qmk mass-compile -t -j $NCPUS -e DUMP_CI_METADATA=yes $(jq -r '.["${{ matrix.target }}"].targets' targets.json) || touch .failed - name: Upload binaries - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: firmware-${{ inputs.keymap }}-${{ matrix.target }} if-no-files-found: ignore @@ -146,7 +146,7 @@ jobs: merge-multiple: true - name: Upload all firmwares - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v6 with: name: firmware-${{ inputs.keymap }} if-no-files-found: ignore From e1c869b8dafd9078f71a1a31f5d63c77196142c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Dec 2025 21:16:52 +0000 Subject: [PATCH 160/255] Bump actions/download-artifact from 6 to 7 (#25873) Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 6 to 7. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci_build_major_branch.yml | 2 +- .github/workflows/ci_build_major_branch_keymap.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci_build_major_branch.yml b/.github/workflows/ci_build_major_branch.yml index f21f4c3171..2ea8310cb4 100644 --- a/.github/workflows/ci_build_major_branch.yml +++ b/.github/workflows/ci_build_major_branch.yml @@ -87,7 +87,7 @@ jobs: fetch-depth: 0 - name: Download firmwares - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v7 with: pattern: firmware-* path: . diff --git a/.github/workflows/ci_build_major_branch_keymap.yml b/.github/workflows/ci_build_major_branch_keymap.yml index 02ee966da2..10709172df 100644 --- a/.github/workflows/ci_build_major_branch_keymap.yml +++ b/.github/workflows/ci_build_major_branch_keymap.yml @@ -92,7 +92,7 @@ jobs: uses: actions/checkout@v6 - name: Get target definitions - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v7 with: name: targets-${{ inputs.keymap }} path: . @@ -139,7 +139,7 @@ jobs: uses: actions/checkout@v6 - name: Download firmwares - uses: actions/download-artifact@v6 + uses: actions/download-artifact@v7 with: pattern: firmware-${{ inputs.keymap }}-* path: . From 2c847b0350cfef92f347f27a0ebe9f0187e95b5e Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 15 Dec 2025 00:21:06 +0000 Subject: [PATCH 161/255] Consistently install branch specific dependencies in CI (#25874) --- .github/workflows/ci_build_major_branch.yml | 8 +++----- .../workflows/ci_build_major_branch_keymap.yml | 16 ++++++---------- .github/workflows/cli.yml | 1 + .github/workflows/docs.yml | 5 +++-- .github/workflows/regen.yml | 3 +++ .github/workflows/regen_push.yml | 3 +++ .github/workflows/unit_test.yml | 2 ++ 7 files changed, 21 insertions(+), 17 deletions(-) diff --git a/.github/workflows/ci_build_major_branch.yml b/.github/workflows/ci_build_major_branch.yml index 2ea8310cb4..e857f5f6c4 100644 --- a/.github/workflows/ci_build_major_branch.yml +++ b/.github/workflows/ci_build_major_branch.yml @@ -35,11 +35,6 @@ jobs: slice_length: ${{ steps.generate_slice_length.outputs.slice_length }} steps: - - name: Install prerequisites - run: | - apt-get update - apt-get install -y jq - - name: Disable safe.directory check run: | git config --global --add safe.directory '*' @@ -47,6 +42,9 @@ jobs: - name: Checkout QMK Firmware uses: actions/checkout@v6 + - name: Install dependencies + run: pip3 install -r requirements-dev.txt + - name: Determine concurrency id: generate_slice_length run: | diff --git a/.github/workflows/ci_build_major_branch_keymap.yml b/.github/workflows/ci_build_major_branch_keymap.yml index 10709172df..3b2db843a9 100644 --- a/.github/workflows/ci_build_major_branch_keymap.yml +++ b/.github/workflows/ci_build_major_branch_keymap.yml @@ -27,11 +27,6 @@ jobs: targets: ${{ steps.generate_targets.outputs.targets }} steps: - - name: Install prerequisites - run: | - apt-get update - apt-get install -y jq - - name: Disable safe.directory check run: | git config --global --add safe.directory '*' @@ -39,6 +34,9 @@ jobs: - name: Checkout QMK Firmware uses: actions/checkout@v6 + - name: Install dependencies + run: pip3 install -r requirements-dev.txt + - name: Generate build targets id: generate_targets run: | @@ -79,11 +77,6 @@ jobs: target: ${{ fromJson(needs.generate_targets.outputs.targets) }} steps: - - name: Install prerequisites - run: | - apt-get update - apt-get install -y jq - - name: Disable safe.directory check run: | git config --global --add safe.directory '*' @@ -91,6 +84,9 @@ jobs: - name: Checkout QMK Firmware uses: actions/checkout@v6 + - name: Install dependencies + run: pip3 install -r requirements-dev.txt + - name: Get target definitions uses: actions/download-artifact@v7 with: diff --git a/.github/workflows/cli.yml b/.github/workflows/cli.yml index ca794decf5..3d23a4fbdf 100644 --- a/.github/workflows/cli.yml +++ b/.github/workflows/cli.yml @@ -30,5 +30,6 @@ jobs: - name: Install dependencies run: pip3 install -r requirements-dev.txt + - name: Run tests run: qmk pytest diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 5e5669ee78..8a0229f873 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -35,9 +35,10 @@ jobs: fetch-depth: 1 - name: Install dependencies + run: pip3 install -r requirements-dev.txt + + - name: Install nvm run: | - apt-get update && apt-get install -y rsync doxygen - # install nvm touch $HOME/.bashrc wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash diff --git a/.github/workflows/regen.yml b/.github/workflows/regen.yml index 6eb94c8aaa..54daadfa29 100644 --- a/.github/workflows/regen.yml +++ b/.github/workflows/regen.yml @@ -21,6 +21,9 @@ jobs: - uses: actions/checkout@v6 + - name: Install dependencies + run: pip3 install -r requirements-dev.txt + - name: Run qmk generators run: | util/regen.sh diff --git a/.github/workflows/regen_push.yml b/.github/workflows/regen_push.yml index 98d6629bc3..5d8a84b933 100644 --- a/.github/workflows/regen_push.yml +++ b/.github/workflows/regen_push.yml @@ -21,6 +21,9 @@ jobs: - uses: actions/checkout@v6 + - name: Install dependencies + run: pip3 install -r requirements-dev.txt + - name: Run qmk generators run: | util/regen.sh diff --git a/.github/workflows/unit_test.yml b/.github/workflows/unit_test.yml index 2384cfb039..7edc240355 100644 --- a/.github/workflows/unit_test.yml +++ b/.github/workflows/unit_test.yml @@ -29,7 +29,9 @@ jobs: - uses: actions/checkout@v6 with: submodules: recursive + - name: Install dependencies run: pip3 install -r requirements-dev.txt + - name: Run tests run: qmk test-c From 54e8fad959d6a6e53e08c62ac3a3c4d4bdc6c957 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 19 Dec 2025 02:23:29 +0000 Subject: [PATCH 162/255] Ignore merge commits on bootstrap testing PRs (#25884) --- .github/workflows/bootstrap_testing.yml | 37 ++++++++++++++++++++++--- util/env-bootstrap.sh | 2 +- 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/.github/workflows/bootstrap_testing.yml b/.github/workflows/bootstrap_testing.yml index c80d89a218..16abaee66d 100644 --- a/.github/workflows/bootstrap_testing.yml +++ b/.github/workflows/bootstrap_testing.yml @@ -4,20 +4,42 @@ on: push: branches: [master, develop, xap] paths: - - "util/env-bootstrap.sh" - - ".github/workflows/bootstrap_testing.yml" + - 'util/env-bootstrap.sh' + - '.github/workflows/bootstrap_testing.yml' pull_request: paths: - - "util/env-bootstrap.sh" - - ".github/workflows/bootstrap_testing.yml" + - 'util/env-bootstrap.sh' + - '.github/workflows/bootstrap_testing.yml' workflow_dispatch: permissions: contents: read jobs: + prep: + runs-on: ubuntu-latest + + if: ${{ github.event_name == 'pull_request' }} + + outputs: + any_changed: ${{ steps.file_changes.outputs.any_changed }} + + steps: + - name: Get changed files + id: file_changes + uses: tj-actions/changed-files@v47 + with: + use_rest_api: true + files: | + util/env-bootstrap.sh + .github/workflows/bootstrap_testing.yml + bootstrap-test-linux: name: Bootstrap (Linux) + + needs: prep + if: ${{ github.event_name != 'pull_request' || needs.prep.outputs.any_changed == 'true' }} + runs-on: ubuntu-latest strategy: @@ -163,6 +185,10 @@ jobs: bootstrap-test-macos: name: Bootstrap (macOS) + + needs: prep + if: ${{ github.event_name != 'pull_request' || needs.prep.outputs.any_changed == 'true' }} + strategy: fail-fast: false matrix: @@ -208,6 +234,9 @@ jobs: bootstrap-test-windows: name: Bootstrap (Windows) + needs: prep + if: ${{ github.event_name != 'pull_request' || needs.prep.outputs.any_changed == 'true' }} + strategy: fail-fast: false matrix: diff --git a/util/env-bootstrap.sh b/util/env-bootstrap.sh index 6b0497ffae..07020ea371 100755 --- a/util/env-bootstrap.sh +++ b/util/env-bootstrap.sh @@ -230,7 +230,7 @@ __EOT__ *debian* | *ubuntu*) echo "zstd build-essential clang-format diffutils wget unzip zip libhidapi-hidraw0 dos2unix git" ;; *fedora*) echo "zstd clang diffutils which gcc git wget unzip zip hidapi dos2unix libusb-devel libusb1-devel libusb-compat-0.1-devel libusb0-devel git epel-release" ;; *suse*) echo "zstd clang diffutils wget unzip zip libhidapi-hidraw0 dos2unix git libusb-1_0-devel gzip which" ;; - *gentoo*) echo "zstd diffutils wget unzip zip dev-libs/hidapi dos2unix dev-vcs/git dev-libs/libusb app-arch/gzip which" ;; + *gentoo*) echo "zstd sys-apps/diffutils wget unzip zip dev-libs/hidapi dos2unix dev-vcs/git dev-libs/libusb app-arch/gzip which" ;; *) echo >&2 echo "Sorry, we don't recognize your distribution." >&2 From 84d44e6188b5e54824be50a5b73840aae657728a Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 19 Dec 2025 02:26:58 +0000 Subject: [PATCH 163/255] Update bootstrap_testing.yml --- .github/workflows/bootstrap_testing.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/bootstrap_testing.yml b/.github/workflows/bootstrap_testing.yml index 16abaee66d..42c8720486 100644 --- a/.github/workflows/bootstrap_testing.yml +++ b/.github/workflows/bootstrap_testing.yml @@ -19,14 +19,13 @@ jobs: prep: runs-on: ubuntu-latest - if: ${{ github.event_name == 'pull_request' }} - outputs: any_changed: ${{ steps.file_changes.outputs.any_changed }} steps: - name: Get changed files id: file_changes + if: ${{ github.event_name == 'pull_request' }} uses: tj-actions/changed-files@v47 with: use_rest_api: true From 41c2a7b0704f4f395f824ee004a1fc66e83e7351 Mon Sep 17 00:00:00 2001 From: Joshua Diamond Date: Thu, 18 Dec 2025 22:23:51 -0500 Subject: [PATCH 164/255] Include userspace version (QMK_USERSPACE_VERSION) in version.h (#25882) * Include userspace version in version.h * Update lib/python/qmk/cli/generate/version_h.py Co-authored-by: Joel Challis * Update lib/python/qmk/cli/generate/version_h.py Co-authored-by: Joel Challis * Update lib/python/qmk/cli/generate/version_h.py Co-authored-by: Joel Challis --------- Co-authored-by: Joel Challis --- lib/python/qmk/cli/generate/version_h.py | 13 +++++++++++-- lib/python/qmk/git.py | 3 --- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/lib/python/qmk/cli/generate/version_h.py b/lib/python/qmk/cli/generate/version_h.py index 8156e85559..d32b9d00ca 100644 --- a/lib/python/qmk/cli/generate/version_h.py +++ b/lib/python/qmk/cli/generate/version_h.py @@ -1,9 +1,12 @@ """Used by the make system to generate version.h for use in code. """ from time import strftime +from pathlib import Path from milc import cli +from qmk.constants import QMK_USERSPACE, HAS_QMK_USERSPACE + from qmk.path import normpath from qmk.commands import dump_lines from qmk.git import git_get_qmk_hash, git_get_version, git_is_dirty @@ -36,13 +39,18 @@ def generate_version_h(cli): git_bcd_version = "0x00000000" chibios_version = "NA" chibios_contrib_version = "NA" + userspace_version = "NA" else: git_dirty = git_is_dirty() git_version = git_get_version() or current_time git_qmk_hash = git_get_qmk_hash() or "Unknown" git_bcd_version = triplet_to_bcd(git_version) - chibios_version = git_get_version("chibios", "os") or current_time - chibios_contrib_version = git_get_version("chibios-contrib", "os") or current_time + chibios_version = git_get_version(Path('lib') / "chibios", "os") or current_time + chibios_contrib_version = git_get_version(Path('lib') / "chibios-contrib") or current_time + if HAS_QMK_USERSPACE: + userspace_version = git_get_version(Path(QMK_USERSPACE).resolve()) or current_time + else: + userspace_version = "None" # Build the version.h file. version_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once'] @@ -55,6 +63,7 @@ def generate_version_h(cli): #define QMK_GIT_HASH "{git_qmk_hash}{'*' if git_dirty else ''}" #define CHIBIOS_VERSION "{chibios_version}" #define CHIBIOS_CONTRIB_VERSION "{chibios_contrib_version}" +#define QMK_USERSPACE_VERSION "{userspace_version}" """ ) diff --git a/lib/python/qmk/git.py b/lib/python/qmk/git.py index 9d567475d8..77c5e6aa1a 100644 --- a/lib/python/qmk/git.py +++ b/lib/python/qmk/git.py @@ -13,9 +13,6 @@ def git_get_version(repo_dir='.', check_dir='.'): """ git_describe_cmd = ['git', 'describe', '--abbrev=6', '--dirty', '--always', '--tags'] - if repo_dir != '.': - repo_dir = Path('lib') / repo_dir - if check_dir != '.': check_dir = repo_dir / check_dir From c68281b3532e00c1f3be38c550affc64fd4386a9 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 20 Dec 2025 20:33:58 +0000 Subject: [PATCH 165/255] Handle building of XAP keymaps on master/develop (#25848) --- .github/workflows/ci_build_major_branch_keymap.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci_build_major_branch_keymap.yml b/.github/workflows/ci_build_major_branch_keymap.yml index 3b2db843a9..17fdd6f96a 100644 --- a/.github/workflows/ci_build_major_branch_keymap.yml +++ b/.github/workflows/ci_build_major_branch_keymap.yml @@ -105,7 +105,12 @@ jobs: continue-on-error: true run: | export NCPUS=$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null) -1 )) - qmk mass-compile -t -j $NCPUS -e DUMP_CI_METADATA=yes $(jq -r '.["${{ matrix.target }}"].targets' targets.json) || touch .failed + targets=$(jq -r '.["${{ matrix.target }}"].targets' targets.json | tr ' ' '\n' | sort) + if [[ -z ${targets} ]]; then + echo "Zero build targets detected" + exit 0 + fi + qmk mass-compile -t -j $NCPUS -e DUMP_CI_METADATA=yes $targets || touch .failed - name: Upload binaries uses: actions/upload-artifact@v6 From dba60e2e65d10eb4135d671b4c0e4c376d43afba Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 21 Dec 2025 04:07:40 +0000 Subject: [PATCH 166/255] Re-fix building of XAP keymaps on master/develop (#25892) --- .github/workflows/ci_build_major_branch_keymap.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_build_major_branch_keymap.yml b/.github/workflows/ci_build_major_branch_keymap.yml index 17fdd6f96a..57593b1a1b 100644 --- a/.github/workflows/ci_build_major_branch_keymap.yml +++ b/.github/workflows/ci_build_major_branch_keymap.yml @@ -106,7 +106,7 @@ jobs: run: | export NCPUS=$(( $(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || getconf _NPROCESSORS_ONLN 2>/dev/null) -1 )) targets=$(jq -r '.["${{ matrix.target }}"].targets' targets.json | tr ' ' '\n' | sort) - if [[ -z ${targets} ]]; then + if [ -z "${targets}" ]; then echo "Zero build targets detected" exit 0 fi From f82d4d8680328cc17caabb10dde6d45b1697fd0a Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 21 Dec 2025 20:52:48 +0000 Subject: [PATCH 167/255] Refactor keyboard/keymap use of deprecated `isLeftHand` (#25891) --- keyboards/ai03/orbit/orbit.c | 4 ++-- keyboards/basekeys/slice/keymaps/default/keymap.c | 2 +- .../slice/keymaps/default_split_left_space/keymap.c | 2 +- .../basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c | 2 +- keyboards/giabalanai/keymaps/2firmware/keymap.c | 2 +- keyboards/halfcliff/matrix.c | 4 ++-- keyboards/handwired/lagrange/transport.c | 2 +- keyboards/keebio/kbo5000/rev1/rev1.c | 5 ++--- keyboards/keebio/quefrency/rev2/rev2.c | 5 ++--- keyboards/keebio/quefrency/rev3/rev3.c | 5 ++--- keyboards/keebio/sinc/sinc.c | 8 +++----- keyboards/nullbitsco/snap/matrix.c | 9 +++++---- keyboards/rgbkb/sol3/rev1/rev1.c | 2 +- keyboards/sekigon/grs_70ec/matrix.c | 2 +- 14 files changed, 25 insertions(+), 29 deletions(-) diff --git a/keyboards/ai03/orbit/orbit.c b/keyboards/ai03/orbit/orbit.c index 0c1e0dc32e..dce16e4cc1 100644 --- a/keyboards/ai03/orbit/orbit.c +++ b/keyboards/ai03/orbit/orbit.c @@ -18,7 +18,7 @@ void led_init_ports(void) { // Initialize indicator LEDs to output - if (isLeftHand) { + if (is_keyboard_left()) { gpio_set_pin_output(C6); gpio_set_pin_output(B6); gpio_set_pin_output(B5); @@ -36,7 +36,7 @@ void led_init_ports(void) { // // (LEFT) 0 1 2 | 3 4 5 (RIGHT) void led_toggle(uint8_t id, bool on) { - if (isLeftHand) { + if (is_keyboard_left()) { switch (id) { case 0: // Left hand C6 diff --git a/keyboards/basekeys/slice/keymaps/default/keymap.c b/keyboards/basekeys/slice/keymaps/default/keymap.c index a407d35ab7..b168bcd247 100644 --- a/keyboards/basekeys/slice/keymaps/default/keymap.c +++ b/keyboards/basekeys/slice/keymaps/default/keymap.c @@ -115,7 +115,7 @@ const char *read_logo(void) { } oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0; + return is_keyboard_left() ? OLED_ROTATION_180 : OLED_ROTATION_0; } bool oled_task_user(void) { diff --git a/keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c b/keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c index 7d4133a99b..6a87f52268 100644 --- a/keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c +++ b/keyboards/basekeys/slice/keymaps/default_split_left_space/keymap.c @@ -115,7 +115,7 @@ const char *read_logo(void) { } oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0; + return is_keyboard_left() ? OLED_ROTATION_180 : OLED_ROTATION_0; } bool oled_task_user(void) { diff --git a/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c b/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c index bd7923b36b..3e3ccb5376 100644 --- a/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c +++ b/keyboards/basekeys/slice/rev1_rgb/keymaps/2moons_rgb/keymap.c @@ -199,7 +199,7 @@ const char *read_logo(void) { } oled_rotation_t oled_init_user(oled_rotation_t rotation) { - return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0; + return is_keyboard_left() ? OLED_ROTATION_180 : OLED_ROTATION_0; } bool oled_task_user(void) { diff --git a/keyboards/giabalanai/keymaps/2firmware/keymap.c b/keyboards/giabalanai/keymaps/2firmware/keymap.c index f60d1d07e0..9aa7fbc611 100644 --- a/keyboards/giabalanai/keymaps/2firmware/keymap.c +++ b/keyboards/giabalanai/keymaps/2firmware/keymap.c @@ -468,7 +468,7 @@ void keyboard_post_init_user(void) { user_config.raw = eeconfig_read_user(); // When USB cable is connected to the left side keyboard, use QWERTY layout by default. - if (is_keyboard_master() && isLeftHand) { + if (is_keyboard_master() && is_keyboard_left()) { default_layer_set(1UL << _QWERTY); } diff --git a/keyboards/halfcliff/matrix.c b/keyboards/halfcliff/matrix.c index fc9d437a45..05073908fa 100644 --- a/keyboards/halfcliff/matrix.c +++ b/keyboards/halfcliff/matrix.c @@ -182,7 +182,7 @@ void matrix_init(void) { split_pre_init(); // Set pinout for right half if pinout for that half is defined - if (!isLeftHand) { + if (!is_keyboard_left()) { #ifdef DIRECT_PINS_RIGHT const pin_t direct_pins_right[MATRIX_ROWS][MATRIX_COLS] = DIRECT_PINS_RIGHT; for (uint8_t i = 0; i < MATRIX_ROWS; i++) { @@ -205,7 +205,7 @@ void matrix_init(void) { #endif } - thisHand = isLeftHand ? 0 : (ROWS_PER_HAND); + thisHand = is_keyboard_left() ? 0 : (ROWS_PER_HAND); thatHand = ROWS_PER_HAND - thisHand; // initialize key pins diff --git a/keyboards/handwired/lagrange/transport.c b/keyboards/handwired/lagrange/transport.c index 3ff2e9f409..ef0006172d 100644 --- a/keyboards/handwired/lagrange/transport.c +++ b/keyboards/handwired/lagrange/transport.c @@ -158,7 +158,7 @@ void transport_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) /* Update the layer and LED state if necessary. */ - if (!isLeftHand) { + if (!is_keyboard_left()) { if (context.led_state.raw != new_context.led_state.raw) { context.led_state.raw = new_context.led_state.raw; led_update_kb(context.led_state); diff --git a/keyboards/keebio/kbo5000/rev1/rev1.c b/keyboards/keebio/kbo5000/rev1/rev1.c index 1fd1b9b905..f2c98da111 100644 --- a/keyboards/keebio/kbo5000/rev1/rev1.c +++ b/keyboards/keebio/kbo5000/rev1/rev1.c @@ -9,12 +9,11 @@ void matrix_init_kb(void) { matrix_init_user(); } -bool led_update_kb(led_t led_state) { +void led_update_ports(led_t led_state) { // Only update if left half - if (isLeftHand && led_update_user(led_state)) { + if (is_keyboard_left()) { gpio_write_pin(CAPS_LOCK_LED_PIN, !led_state.caps_lock); } - return true; } bool encoder_update_kb(uint8_t index, bool clockwise) { diff --git a/keyboards/keebio/quefrency/rev2/rev2.c b/keyboards/keebio/quefrency/rev2/rev2.c index 63a02ee20b..992f621ef6 100644 --- a/keyboards/keebio/quefrency/rev2/rev2.c +++ b/keyboards/keebio/quefrency/rev2/rev2.c @@ -9,12 +9,11 @@ void matrix_init_kb(void) { matrix_init_user(); } -bool led_update_kb(led_t led_state) { +void led_update_ports(led_t led_state) { // Only update if left half - if (isLeftHand && led_update_user(led_state)) { + if (is_keyboard_left()) { gpio_write_pin(CAPS_LOCK_LED_PIN, !led_state.caps_lock); } - return true; } #ifdef ENCODER_ENABLE diff --git a/keyboards/keebio/quefrency/rev3/rev3.c b/keyboards/keebio/quefrency/rev3/rev3.c index 3e61e07928..82fb267879 100644 --- a/keyboards/keebio/quefrency/rev3/rev3.c +++ b/keyboards/keebio/quefrency/rev3/rev3.c @@ -22,12 +22,11 @@ void matrix_init_kb(void) { matrix_init_user(); } -bool led_update_kb(led_t led_state) { +void led_update_ports(led_t led_state) { // Only update if left half - if (led_update_user(led_state) && isLeftHand) { + if (is_keyboard_left()) { gpio_write_pin(CAPS_LOCK_LED_PIN, !led_state.caps_lock); } - return true; } #ifdef ENCODER_ENABLE diff --git a/keyboards/keebio/sinc/sinc.c b/keyboards/keebio/sinc/sinc.c index faa3540af9..102ede7cff 100644 --- a/keyboards/keebio/sinc/sinc.c +++ b/keyboards/keebio/sinc/sinc.c @@ -17,14 +17,12 @@ along with this program. If not, see . #include "quantum.h" #include "split_util.h" -#ifdef BACKLIGHT_ENABLE -bool led_update_kb(led_t led_state) { - if (!led_update_user(led_state)) { return false; } +#ifdef LED_CAPS_LOCK_PIN +void led_update_ports(led_t led_state) { // Only update if left half - if (isLeftHand && led_update_user(led_state)) { + if (is_keyboard_left()) { gpio_write_pin(LED_CAPS_LOCK_PIN, !led_state.caps_lock); } - return true; } #endif diff --git a/keyboards/nullbitsco/snap/matrix.c b/keyboards/nullbitsco/snap/matrix.c index 64b451641d..94716d4032 100644 --- a/keyboards/nullbitsco/snap/matrix.c +++ b/keyboards/nullbitsco/snap/matrix.c @@ -13,8 +13,9 @@ * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ -#include "matrix.h" #include +#include "matrix.h" +#include "keyboard.h" #include "split_util.h" #include "wait.h" @@ -51,7 +52,7 @@ static void init_pins(void) { } // Set extended pin (only on right side) - if (!isLeftHand) { + if (!is_keyboard_left()) { // Set extended pin to input, pullup gpio_set_pin_input_high(MATRIX_EXT_PIN_RIGHT); } @@ -81,7 +82,7 @@ static void read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) static void read_ext_pin(matrix_row_t current_matrix[]) { // Read the state of the extended matrix pin - if (!isLeftHand) { + if (!is_keyboard_left()) { if (gpio_read_pin(MATRIX_EXT_PIN_RIGHT) == 0) { current_matrix[EXT_PIN_ROW] |= (COL_SHIFTER << EXT_PIN_COL); } else { @@ -91,7 +92,7 @@ static void read_ext_pin(matrix_row_t current_matrix[]) { } void matrix_init_custom(void) { - if (!isLeftHand) { + if (!is_keyboard_left()) { row_pins = row_pins_right; col_pins = col_pins_right; } diff --git a/keyboards/rgbkb/sol3/rev1/rev1.c b/keyboards/rgbkb/sol3/rev1/rev1.c index 96402f851c..afe0ef17f6 100644 --- a/keyboards/rgbkb/sol3/rev1/rev1.c +++ b/keyboards/rgbkb/sol3/rev1/rev1.c @@ -43,7 +43,7 @@ bool dip_switch_update_kb(uint8_t index, bool active) { } case 1: { // Handle RGB Encoder switch press - action_exec(MAKE_KEYEVENT(isLeftHand ? 4 : 10, 6, active)); + action_exec(MAKE_KEYEVENT(is_keyboard_left() ? 4 : 10, 6, active)); break; } } diff --git a/keyboards/sekigon/grs_70ec/matrix.c b/keyboards/sekigon/grs_70ec/matrix.c index 718423e57b..cd582b30e4 100644 --- a/keyboards/sekigon/grs_70ec/matrix.c +++ b/keyboards/sekigon/grs_70ec/matrix.c @@ -52,7 +52,7 @@ void matrix_init_custom(void) { ecsm_init(&ecsm_config); - thisHand = isLeftHand ? 0 : (ROWS_PER_HAND); + thisHand = is_keyboard_left() ? 0 : (ROWS_PER_HAND); thatHand = ROWS_PER_HAND - thisHand; split_post_init(); From c1161a7a322584be1f328e76dbbb68dbc1de333b Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 21 Dec 2025 20:52:55 +0000 Subject: [PATCH 168/255] Refactor core use of deprecated `isLeftHand` (#25888) --- drivers/encoder/encoder_quadrature.c | 10 ++++------ quantum/dip_switch.c | 3 ++- .../tests/encoder_tests_split_left_eq_right.cpp | 4 ++++ .../tests/encoder_tests_split_left_gt_right.cpp | 4 ++++ .../tests/encoder_tests_split_left_lt_right.cpp | 4 ++++ quantum/encoder/tests/encoder_tests_split_no_left.cpp | 4 ++++ quantum/encoder/tests/encoder_tests_split_no_right.cpp | 4 ++++ quantum/encoder/tests/encoder_tests_split_role.cpp | 4 ++++ quantum/matrix.c | 4 ++-- quantum/matrix_common.c | 2 +- 10 files changed, 33 insertions(+), 10 deletions(-) diff --git a/drivers/encoder/encoder_quadrature.c b/drivers/encoder/encoder_quadrature.c index 3dfdb27e8d..b3aeb136b2 100644 --- a/drivers/encoder/encoder_quadrature.c +++ b/drivers/encoder/encoder_quadrature.c @@ -27,8 +27,6 @@ # define ENCODER_DEFAULT_PIN_API_IMPL #endif -extern volatile bool isLeftHand; - __attribute__((weak)) void encoder_quadrature_init_pin(uint8_t index, bool pad_b); __attribute__((weak)) uint8_t encoder_quadrature_read_pin(uint8_t index, bool pad_b); @@ -108,10 +106,10 @@ void encoder_quadrature_post_init(void) { void encoder_driver_init(void) { #ifdef SPLIT_KEYBOARD - thisHand = isLeftHand ? 0 : NUM_ENCODERS_LEFT; + thisHand = is_keyboard_left() ? 0 : NUM_ENCODERS_LEFT; thatHand = NUM_ENCODERS_LEFT - thisHand; - thisCount = isLeftHand ? NUM_ENCODERS_LEFT : NUM_ENCODERS_RIGHT; - thatCount = isLeftHand ? NUM_ENCODERS_RIGHT : NUM_ENCODERS_LEFT; + thisCount = is_keyboard_left() ? NUM_ENCODERS_LEFT : NUM_ENCODERS_RIGHT; + thatCount = is_keyboard_left() ? NUM_ENCODERS_RIGHT : NUM_ENCODERS_LEFT; #else // SPLIT_KEYBOARD thisCount = NUM_ENCODERS; #endif @@ -133,7 +131,7 @@ void encoder_driver_init(void) { #if defined(SPLIT_KEYBOARD) && defined(ENCODER_A_PINS_RIGHT) && defined(ENCODER_B_PINS_RIGHT) // Re-initialise the pads if it's the right-hand side - if (!isLeftHand) { + if (!is_keyboard_left()) { const pin_t encoders_pad_a_right[] = ENCODER_A_PINS_RIGHT; const pin_t encoders_pad_b_right[] = ENCODER_B_PINS_RIGHT; for (uint8_t i = 0; i < thisCount; i++) { diff --git a/quantum/dip_switch.c b/quantum/dip_switch.c index 65ae21175b..f662a0e7fc 100644 --- a/quantum/dip_switch.c +++ b/quantum/dip_switch.c @@ -21,6 +21,7 @@ #include "dip_switch.h" #ifdef SPLIT_KEYBOARD +# include "keyboard.h" # include "split_common/split_util.h" #endif @@ -87,7 +88,7 @@ static void dip_switch_exec_mapping(uint8_t index, bool on) { void dip_switch_init(void) { #ifdef DIP_SWITCH_PINS # if defined(SPLIT_KEYBOARD) && defined(DIP_SWITCH_PINS_RIGHT) - if (!isLeftHand) { + if (!is_keyboard_left()) { const pin_t dip_switch_pad_right[] = DIP_SWITCH_PINS_RIGHT; for (uint8_t i = 0; i < NUM_DIP_SWITCHES; i++) { dip_switch_pad[i] = dip_switch_pad_right[i]; diff --git a/quantum/encoder/tests/encoder_tests_split_left_eq_right.cpp b/quantum/encoder/tests/encoder_tests_split_left_eq_right.cpp index 7d6b3e30e6..590bd2e9f4 100644 --- a/quantum/encoder/tests/encoder_tests_split_left_eq_right.cpp +++ b/quantum/encoder/tests/encoder_tests_split_left_eq_right.cpp @@ -41,6 +41,10 @@ bool is_keyboard_master(void) { return isMaster; } +bool is_keyboard_left(void) { + return isLeftHand; +} + bool encoder_update_kb(uint8_t index, bool clockwise) { if (!is_keyboard_master()) { // this method has no effect on slave half diff --git a/quantum/encoder/tests/encoder_tests_split_left_gt_right.cpp b/quantum/encoder/tests/encoder_tests_split_left_gt_right.cpp index 2beb4e3972..e6f4db2636 100644 --- a/quantum/encoder/tests/encoder_tests_split_left_gt_right.cpp +++ b/quantum/encoder/tests/encoder_tests_split_left_gt_right.cpp @@ -41,6 +41,10 @@ bool is_keyboard_master(void) { return isMaster; } +bool is_keyboard_left(void) { + return isLeftHand; +} + bool encoder_update_kb(uint8_t index, bool clockwise) { if (!is_keyboard_master()) { // this method has no effect on slave half diff --git a/quantum/encoder/tests/encoder_tests_split_left_lt_right.cpp b/quantum/encoder/tests/encoder_tests_split_left_lt_right.cpp index 5612f8b658..c155f1269a 100644 --- a/quantum/encoder/tests/encoder_tests_split_left_lt_right.cpp +++ b/quantum/encoder/tests/encoder_tests_split_left_lt_right.cpp @@ -41,6 +41,10 @@ bool is_keyboard_master(void) { return isMaster; } +bool is_keyboard_left(void) { + return isLeftHand; +} + bool encoder_update_kb(uint8_t index, bool clockwise) { if (!is_keyboard_master()) { // this method has no effect on slave half diff --git a/quantum/encoder/tests/encoder_tests_split_no_left.cpp b/quantum/encoder/tests/encoder_tests_split_no_left.cpp index 980e4074ff..75244b94a2 100644 --- a/quantum/encoder/tests/encoder_tests_split_no_left.cpp +++ b/quantum/encoder/tests/encoder_tests_split_no_left.cpp @@ -41,6 +41,10 @@ bool is_keyboard_master(void) { return isMaster; } +bool is_keyboard_left(void) { + return isLeftHand; +} + bool encoder_update_kb(uint8_t index, bool clockwise) { if (!is_keyboard_master()) { // this method has no effect on slave half diff --git a/quantum/encoder/tests/encoder_tests_split_no_right.cpp b/quantum/encoder/tests/encoder_tests_split_no_right.cpp index d39659853b..bde6e1c29d 100644 --- a/quantum/encoder/tests/encoder_tests_split_no_right.cpp +++ b/quantum/encoder/tests/encoder_tests_split_no_right.cpp @@ -41,6 +41,10 @@ bool is_keyboard_master(void) { return isMaster; } +bool is_keyboard_left(void) { + return isLeftHand; +} + bool encoder_update_kb(uint8_t index, bool clockwise) { if (!is_keyboard_master()) { // this method has no effect on slave half diff --git a/quantum/encoder/tests/encoder_tests_split_role.cpp b/quantum/encoder/tests/encoder_tests_split_role.cpp index b588af8c70..3da6fd6edb 100644 --- a/quantum/encoder/tests/encoder_tests_split_role.cpp +++ b/quantum/encoder/tests/encoder_tests_split_role.cpp @@ -40,6 +40,10 @@ bool is_keyboard_master(void) { return isMaster; } +bool is_keyboard_left(void) { + return isLeftHand; +} + bool encoder_update_kb(uint8_t index, bool clockwise) { if (!isMaster) { ADD_FAILURE() << "We shouldn't get here."; diff --git a/quantum/matrix.c b/quantum/matrix.c index e99f754065..ccedcc3f79 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c @@ -269,7 +269,7 @@ __attribute__((weak)) void matrix_read_rows_on_col(matrix_row_t current_matrix[] void matrix_init(void) { #ifdef SPLIT_KEYBOARD // Set pinout for right half if pinout for that half is defined - if (!isLeftHand) { + if (!is_keyboard_left()) { # ifdef DIRECT_PINS_RIGHT const pin_t direct_pins_right[MATRIX_ROWS_PER_HAND][MATRIX_COLS] = DIRECT_PINS_RIGHT; for (uint8_t i = 0; i < MATRIX_ROWS_PER_HAND; i++) { @@ -292,7 +292,7 @@ void matrix_init(void) { # endif } - thisHand = isLeftHand ? 0 : (MATRIX_ROWS_PER_HAND); + thisHand = is_keyboard_left() ? 0 : (MATRIX_ROWS_PER_HAND); thatHand = MATRIX_ROWS_PER_HAND - thisHand; #endif diff --git a/quantum/matrix_common.c b/quantum/matrix_common.c index 26589f29a6..47669cb6f2 100644 --- a/quantum/matrix_common.c +++ b/quantum/matrix_common.c @@ -144,7 +144,7 @@ __attribute__((weak)) void matrix_slave_scan_user(void) {} __attribute__((weak)) void matrix_init(void) { #ifdef SPLIT_KEYBOARD - thisHand = isLeftHand ? 0 : (MATRIX_ROWS_PER_HAND); + thisHand = is_keyboard_left() ? 0 : (MATRIX_ROWS_PER_HAND); thatHand = MATRIX_ROWS_PER_HAND - thisHand; #endif From ae05baf08bcd050922ef9081872c70845124edc1 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 22 Dec 2025 16:09:49 +0000 Subject: [PATCH 169/255] Fix out-of-bounds bootmagic config (#25898) --- keyboards/aidansmithdotdev/sango/keyboard.json | 2 +- keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json | 2 +- keyboards/keebio/foldkb/rev2/keyboard.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/aidansmithdotdev/sango/keyboard.json b/keyboards/aidansmithdotdev/sango/keyboard.json index f51eed7fd9..04970c898a 100644 --- a/keyboards/aidansmithdotdev/sango/keyboard.json +++ b/keyboards/aidansmithdotdev/sango/keyboard.json @@ -117,7 +117,7 @@ }, "split": { "bootmagic": { - "matrix": [4, 7] + "matrix": [5, 7] }, "enabled": true, "matrix_pins": { diff --git a/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json b/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json index 8e5290006e..4ecb7f33c8 100644 --- a/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json +++ b/keyboards/handwired/tractyl_manuform/4x6_right/keyboard.json @@ -81,7 +81,7 @@ "pin": "D3" }, "bootmagic": { - "matrix": [4, 5] + "matrix": [5, 5] } }, "ws2812": { diff --git a/keyboards/keebio/foldkb/rev2/keyboard.json b/keyboards/keebio/foldkb/rev2/keyboard.json index 19dd601c86..58e69e085d 100644 --- a/keyboards/keebio/foldkb/rev2/keyboard.json +++ b/keyboards/keebio/foldkb/rev2/keyboard.json @@ -153,7 +153,7 @@ }, "split": { "bootmagic": { - "matrix": [5, 8] + "matrix": [5, 7] }, "enabled": true, "handedness": { From 7e35cdda8a01086ab146e8c6c10ec78115ac4b25 Mon Sep 17 00:00:00 2001 From: Danny Date: Mon, 22 Dec 2025 19:00:57 -0500 Subject: [PATCH 170/255] Add FoldKB Rev. 2.1 with added underglow RGB LEDs (#25885) --- keyboards/keebio/foldkb/rev2_1/config.h | 17 ++ keyboards/keebio/foldkb/rev2_1/halconf.h | 10 + keyboards/keebio/foldkb/rev2_1/keyboard.json | 279 ++++++++++++++++++ .../foldkb/rev2_1/keymaps/default/keymap.c | 21 ++ keyboards/keebio/foldkb/rev2_1/mcuconf.h | 14 + keyboards/keebio/foldkb/rev2_1/rev2_1.c | 29 ++ 6 files changed, 370 insertions(+) create mode 100644 keyboards/keebio/foldkb/rev2_1/config.h create mode 100644 keyboards/keebio/foldkb/rev2_1/halconf.h create mode 100644 keyboards/keebio/foldkb/rev2_1/keyboard.json create mode 100644 keyboards/keebio/foldkb/rev2_1/keymaps/default/keymap.c create mode 100644 keyboards/keebio/foldkb/rev2_1/mcuconf.h create mode 100644 keyboards/keebio/foldkb/rev2_1/rev2_1.c diff --git a/keyboards/keebio/foldkb/rev2_1/config.h b/keyboards/keebio/foldkb/rev2_1/config.h new file mode 100644 index 0000000000..d28027392d --- /dev/null +++ b/keyboards/keebio/foldkb/rev2_1/config.h @@ -0,0 +1,17 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +/* Defines for the split keyboard setup */ +#define SERIAL_USART_TX_PIN A9 +#define SERIAL_USART_RX_PIN A10 +#define SERIAL_USART_FULL_DUPLEX +#define SERIAL_USART_PIN_SWAP + +#define USB_VBUS_PIN A7 + +/* Defines for the RGB matrix */ +#define WS2812_PWM_DRIVER PWMD3 +#define WS2812_PWM_CHANNEL 3 +#define WS2812_DMAMUX_ID STM32_DMAMUX1_TIM3_UP diff --git a/keyboards/keebio/foldkb/rev2_1/halconf.h b/keyboards/keebio/foldkb/rev2_1/halconf.h new file mode 100644 index 0000000000..ce1dfd06d7 --- /dev/null +++ b/keyboards/keebio/foldkb/rev2_1/halconf.h @@ -0,0 +1,10 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SERIAL TRUE + +#define HAL_USE_PWM TRUE + +#include_next diff --git a/keyboards/keebio/foldkb/rev2_1/keyboard.json b/keyboards/keebio/foldkb/rev2_1/keyboard.json new file mode 100644 index 0000000000..fc2eafe431 --- /dev/null +++ b/keyboards/keebio/foldkb/rev2_1/keyboard.json @@ -0,0 +1,279 @@ +{ + "keyboard_name": "FoldKB Rev. 2.1", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "encoder": { + "rotary": [ + {"pin_a": "A4", "pin_b": "A3"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["A6", "A15", "B3", "B4", "B5", "B6", "B7", "F0"], + "rows": ["A5", "A0", "A1", "A2", "F1"] + }, + "processor": "STM32G431", + "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, + "starlight_smooth": true, + "typing_heatmap": true + }, + "driver": "ws2812", + "layout": [ + {"matrix": [0, 1], "x": 17, "y": 0, "flags": 4}, + {"matrix": [0, 2], "x": 31, "y": 0, "flags": 4}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 4}, + {"matrix": [0, 4], "x": 59, "y": 0, "flags": 4}, + {"matrix": [0, 5], "x": 72, "y": 0, "flags": 4}, + {"matrix": [0, 6], "x": 86, "y": 0, "flags": 4}, + {"matrix": [0, 7], "x": 100, "y": 0, "flags": 4}, + {"matrix": [1, 7], "x": 100, "y": 16, "flags": 4}, + {"matrix": [1, 6], "x": 86, "y": 16, "flags": 4}, + {"matrix": [1, 5], "x": 72, "y": 16, "flags": 4}, + {"matrix": [1, 4], "x": 59, "y": 16, "flags": 4}, + {"matrix": [1, 3], "x": 45, "y": 16, "flags": 4}, + {"matrix": [1, 2], "x": 28, "y": 16, "flags": 4}, + {"matrix": [2, 2], "x": 26, "y": 32, "flags": 4}, + {"matrix": [2, 3], "x": 45, "y": 32, "flags": 4}, + {"matrix": [2, 4], "x": 59, "y": 32, "flags": 4}, + {"matrix": [2, 5], "x": 72, "y": 32, "flags": 4}, + {"matrix": [2, 6], "x": 86, "y": 32, "flags": 4}, + {"matrix": [2, 7], "x": 100, "y": 32, "flags": 4}, + {"matrix": [3, 7], "x": 100, "y": 48, "flags": 4}, + {"matrix": [3, 6], "x": 86, "y": 48, "flags": 4}, + {"matrix": [3, 5], "x": 72, "y": 48, "flags": 4}, + {"matrix": [3, 4], "x": 59, "y": 48, "flags": 4}, + {"matrix": [3, 3], "x": 45, "y": 48, "flags": 4}, + {"matrix": [3, 2], "x": 22, "y": 48, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [4, 0], "x": 0, "y": 64, "flags": 4}, + {"matrix": [4, 2], "x": 22, "y": 64, "flags": 4}, + {"matrix": [4, 3], "x": 40, "y": 64, "flags": 4}, + {"matrix": [4, 4], "x": 57, "y": 64, "flags": 4}, + {"matrix": [4, 5], "x": 72, "y": 64, "flags": 4}, + {"matrix": [4, 6], "x": 86, "y": 64, "flags": 4}, + {"matrix": [4, 7], "x": 100, "y": 64, "flags": 4}, + {"x": 93, "y": 48, "flags": 2}, + {"x": 65, "y": 64, "flags": 2}, + {"x": 31, "y": 64, "flags": 2}, + {"x": 10, "y": 64, "flags": 2}, + {"x": 0, "y": 24, "flags": 2}, + {"x": 24, "y": 0, "flags": 2}, + {"x": 65, "y": 0, "flags": 2}, + {"x": 90, "y": 8, "flags": 2}, + {"matrix": [5, 7], "x": 221, "y": 0, "flags": 4}, + {"matrix": [5, 6], "x": 207, "y": 0, "flags": 4}, + {"matrix": [5, 5], "x": 193, "y": 0, "flags": 4}, + {"matrix": [5, 4], "x": 179, "y": 0, "flags": 4}, + {"matrix": [5, 3], "x": 165, "y": 0, "flags": 4}, + {"matrix": [5, 2], "x": 152, "y": 0, "flags": 4}, + {"matrix": [5, 1], "x": 138, "y": 0, "flags": 4}, + {"matrix": [5, 0], "x": 124, "y": 0, "flags": 4}, + {"matrix": [6, 0], "x": 124, "y": 16, "flags": 4}, + {"matrix": [6, 1], "x": 138, "y": 16, "flags": 4}, + {"matrix": [6, 2], "x": 152, "y": 16, "flags": 4}, + {"matrix": [6, 3], "x": 165, "y": 16, "flags": 4}, + {"matrix": [6, 4], "x": 179, "y": 16, "flags": 4}, + {"matrix": [6, 5], "x": 193, "y": 16, "flags": 4}, + {"matrix": [6, 6], "x": 207, "y": 16, "flags": 4}, + {"matrix": [6, 7], "x": 224, "y": 16, "flags": 4}, + {"matrix": [7, 7], "x": 215, "y": 32, "flags": 4}, + {"matrix": [7, 5], "x": 193, "y": 32, "flags": 4}, + {"matrix": [7, 4], "x": 179, "y": 32, "flags": 4}, + {"matrix": [7, 3], "x": 165, "y": 32, "flags": 4}, + {"matrix": [7, 2], "x": 152, "y": 32, "flags": 4}, + {"matrix": [7, 1], "x": 138, "y": 32, "flags": 4}, + {"matrix": [7, 0], "x": 124, "y": 32, "flags": 4}, + {"matrix": [8, 0], "x": 124, "y": 48, "flags": 4}, + {"matrix": [8, 1], "x": 138, "y": 48, "flags": 4}, + {"matrix": [8, 2], "x": 152, "y": 48, "flags": 4}, + {"matrix": [8, 3], "x": 165, "y": 48, "flags": 4}, + {"matrix": [8, 4], "x": 179, "y": 48, "flags": 4}, + {"matrix": [8, 5], "x": 198, "y": 48, "flags": 4}, + {"matrix": [8, 7], "x": 217, "y": 48, "flags": 4}, + {"matrix": [9, 7], "x": 215, "y": 64, "flags": 4}, + {"matrix": [9, 5], "x": 198, "y": 64, "flags": 4}, + {"matrix": [9, 4], "x": 181, "y": 64, "flags": 4}, + {"matrix": [9, 3], "x": 164, "y": 64, "flags": 4}, + {"matrix": [9, 1], "x": 145, "y": 64, "flags": 4}, + {"matrix": [9, 0], "x": 136, "y": 64, "flags": 4}, + {"matrix": [9, 0], "x": 126, "y": 64, "flags": 4}, + {"x": 121, "y": 56, "flags": 2}, + {"x": 152, "y": 64, "flags": 2}, + {"x": 207, "y": 64, "flags": 2}, + {"x": 224, "y": 52, "flags": 2}, + {"x": 224, "y": 12, "flags": 2}, + {"x": 196, "y": 0, "flags": 2}, + {"x": 159, "y": 0, "flags": 2}, + {"x": 124, "y": 8, "flags": 2} + ], + "max_brightness": 120, + "sleep": true, + "split_count": [44, 45] + }, + "split": { + "bootmagic": { + "matrix": [5, 7] + }, + "enabled": true, + "handedness": { + "pin": "A8" + }, + "matrix_pins": { + "right": { + "cols": ["A6", "A5", "A4", "A3", "A2", "B5", "B6", "B7"], + "rows": ["A15", "B3", "B4", "A0", "A1"] + } + }, + "serial": { + "driver": "usart" + }, + "transport": { + "sync": { + "matrix_state": true + } + } + }, + "usb": { + "device_version": "2.0.0", + "pid": "0x2358" + }, + "ws2812": { + "driver": "pwm", + "pin": "B0" + }, + "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.25, "y": 0}, + {"matrix": [0, 6], "x": 6.25, "y": 0}, + {"matrix": [0, 7], "x": 7.25, "y": 0}, + {"matrix": [5, 0], "x": 9, "y": 0}, + {"matrix": [5, 1], "x": 10, "y": 0}, + {"matrix": [5, 2], "x": 11, "y": 0}, + {"matrix": [5, 3], "x": 12, "y": 0}, + {"matrix": [5, 4], "x": 13, "y": 0}, + {"matrix": [5, 5], "x": 14, "y": 0}, + {"matrix": [5, 6], "x": 15, "y": 0}, + {"matrix": [5, 7], "x": 16, "y": 0}, + {"matrix": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 2], "x": 1.75, "y": 1, "w": 1.5}, + {"matrix": [1, 3], "x": 3.25, "y": 1}, + {"matrix": [1, 4], "x": 4.25, "y": 1}, + {"matrix": [1, 5], "x": 5.25, "y": 1}, + {"matrix": [1, 6], "x": 6.25, "y": 1}, + {"matrix": [1, 7], "x": 7.25, "y": 1}, + {"matrix": [6, 0], "x": 9, "y": 1}, + {"matrix": [6, 1], "x": 10, "y": 1}, + {"matrix": [6, 2], "x": 11, "y": 1}, + {"matrix": [6, 3], "x": 12, "y": 1}, + {"matrix": [6, 4], "x": 13, "y": 1}, + {"matrix": [6, 5], "x": 14, "y": 1}, + {"matrix": [6, 6], "x": 15, "y": 1}, + {"matrix": [6, 7], "x": 16, "y": 1, "w": 1.5}, + {"matrix": [2, 0], "x": 0, "y": 2}, + {"matrix": [2, 2], "x": 1.5, "y": 2, "w": 1.75}, + {"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": [7, 0], "x": 9, "y": 2}, + {"matrix": [7, 1], "x": 10, "y": 2}, + {"matrix": [7, 2], "x": 11, "y": 2}, + {"matrix": [7, 3], "x": 12, "y": 2}, + {"matrix": [7, 4], "x": 13, "y": 2}, + {"matrix": [7, 5], "x": 14, "y": 2}, + {"matrix": [7, 7], "x": 15, "y": 2, "w": 2.25}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 2], "x": 1, "y": 3, "w": 2.25}, + {"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": [8, 0], "x": 9, "y": 3}, + {"matrix": [8, 1], "x": 10, "y": 3}, + {"matrix": [8, 2], "x": 11, "y": 3}, + {"matrix": [8, 3], "x": 12, "y": 3}, + {"matrix": [8, 4], "x": 13, "y": 3}, + {"matrix": [8, 5], "x": 14, "y": 3, "w": 1.75}, + {"matrix": [8, 7], "x": 15.75, "y": 3}, + {"matrix": [4, 0], "x": 0, "y": 4}, + {"matrix": [4, 2], "x": 1.5, "y": 4, "w": 1.25}, + {"matrix": [4, 3], "x": 2.75, "y": 4, "w": 1.25}, + {"matrix": [4, 4], "x": 4, "y": 4, "w": 1.25}, + {"matrix": [4, 5], "x": 5.25, "y": 4}, + {"matrix": [4, 6], "x": 6.25, "y": 4}, + {"matrix": [4, 7], "x": 7.25, "y": 4}, + {"matrix": [9, 0], "x": 9, "y": 4, "w": 1.25}, + {"matrix": [9, 1], "x": 10.25, "y": 4, "w": 1.5}, + {"matrix": [9, 3], "x": 11.75, "y": 4, "w": 1.25}, + {"matrix": [9, 4], "x": 13, "y": 4, "w": 1.25}, + {"matrix": [9, 5], "x": 14.25, "y": 4, "w": 1.25}, + {"matrix": [9, 7], "x": 15.5, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/keebio/foldkb/rev2_1/keymaps/default/keymap.c b/keyboards/keebio/foldkb/rev2_1/keymaps/default/keymap.c new file mode 100644 index 0000000000..bf3f325446 --- /dev/null +++ b/keyboards/keebio/foldkb/rev2_1/keymaps/default/keymap.c @@ -0,0 +1,21 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_MUTE, 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_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_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, MO(1), + KC_PGDN, KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_MENU, KC_RCTL + ), + [1] = LAYOUT( + KC_MUTE, QK_BOOT, 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_DEL, + RM_TOGG, _______, RM_SATD, RM_SATU, _______, _______, _______, _______, KC_7, KC_8, KC_9, _______, _______, _______, _______, + RM_NEXT, _______, RM_VALD, RM_VALU, _______, _______, _______, _______, KC_4, KC_5, KC_6, _______, _______, _______, + KC_VOLU, _______, RM_HUED, RM_HUEU, _______, _______, _______, _______, KC_1, KC_2, KC_3, _______, _______, _______, + KC_VOLD, _______, RM_SPDD, RM_SPDU, _______, _______, _______, _______, KC_0, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/keebio/foldkb/rev2_1/mcuconf.h b/keyboards/keebio/foldkb/rev2_1/mcuconf.h new file mode 100644 index 0000000000..77847f5b2c --- /dev/null +++ b/keyboards/keebio/foldkb/rev2_1/mcuconf.h @@ -0,0 +1,14 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include_next + +/* enable USART1, used for split comms */ +#undef STM32_SERIAL_USE_USART1 +#define STM32_SERIAL_USE_USART1 TRUE + +/* enable TIM3, used for RGB LED PWM driver */ +#undef STM32_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE diff --git a/keyboards/keebio/foldkb/rev2_1/rev2_1.c b/keyboards/keebio/foldkb/rev2_1/rev2_1.c new file mode 100644 index 0000000000..0fc47b1483 --- /dev/null +++ b/keyboards/keebio/foldkb/rev2_1/rev2_1.c @@ -0,0 +1,29 @@ +// Copyright 2025 Keebio (@keebio) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "quantum.h" + +void keyboard_pre_init_kb(void) { + // Disable the PD peripheral in pre-init because its pins are being used in the matrix: + PWR->CR3 |= PWR_CR3_UCPD_DBDIS; + // Call the corresponding _user() function (see https://docs.qmk.fm/#/custom_quantum_functions) + keyboard_pre_init_user(); +} + +bool encoder_update_kb(uint8_t index, bool clockwise) { + if (!encoder_update_user(index, clockwise)) { return false; } + if (index == 0) { + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + } else if (index == 1) { + if (clockwise) { + tap_code(KC_PGDN); + } else { + tap_code(KC_PGUP); + } + } + return false; +} From acbeec29dab5331fe914f35a53d6b43325881e4d Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 25 Dec 2025 00:24:50 +0000 Subject: [PATCH 171/255] Reduce frequency of automatic workflow run approval (#25896) --- .github/workflows/auto_approve.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto_approve.yml b/.github/workflows/auto_approve.yml index d526db397c..a68d7c63ed 100644 --- a/.github/workflows/auto_approve.yml +++ b/.github/workflows/auto_approve.yml @@ -4,7 +4,7 @@ permissions: {} on: schedule: - - cron: "*/5 * * * *" + - cron: "*/30 * * * *" jobs: automatic_approve: From 6a5610a8be9173a45315eee698fbea07dd7ccb43 Mon Sep 17 00:00:00 2001 From: Piervit <598737+Piervit@users.noreply.github.com> Date: Thu, 1 Jan 2026 09:37:25 +0100 Subject: [PATCH 172/255] Fix functions layer_debug and default_layer_debug (#25913) Co-authored-by: Joel Challis --- quantum/action_layer.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/quantum/action_layer.c b/quantum/action_layer.c index 5828dcb824..0a088ab5f0 100644 --- a/quantum/action_layer.c +++ b/quantum/action_layer.c @@ -60,7 +60,7 @@ static void default_layer_state_set(layer_state_t state) { * Print out the hex value of the 32-bit default layer state, as well as the value of the highest bit. */ void default_layer_debug(void) { - ac_dprintf("%08hX(%u)", default_layer_state, get_highest_layer(default_layer_state)); + ac_dprintf("%08lX(%u)", (uint32_t)default_layer_state, get_highest_layer(default_layer_state)); } /** \brief Default Layer Set @@ -231,7 +231,7 @@ void layer_xor(layer_state_t state) { * Print out the hex value of the 32-bit layer state, as well as the value of the highest bit. */ void layer_debug(void) { - ac_dprintf("%08hX(%u)", layer_state, get_highest_layer(layer_state)); + ac_dprintf("%08lX(%u)", (uint32_t)layer_state, get_highest_layer(layer_state)); } #endif From 99b5b9ab7ff80abd7cdfe890644ead0b7880b57f Mon Sep 17 00:00:00 2001 From: QMK Bot Date: Thu, 1 Jan 2026 23:19:14 +1100 Subject: [PATCH 173/255] [CI] Regenerate Files (#25920) 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_eurkey.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 +- 74 files changed, 74 insertions(+), 74 deletions(-) diff --git a/quantum/keycodes.h b/quantum/keycodes.h index e5a64d9a71..132eb79c6e 100644 --- a/quantum/keycodes.h +++ b/quantum/keycodes.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 b41ed9d20b..55f33a0bd3 100644 --- a/quantum/keymap_extras/keymap_belgian.h +++ b/quantum/keymap_extras/keymap_belgian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 c0bb703ecc..c664d0e6b1 100644 --- a/quantum/keymap_extras/keymap_bepo.h +++ b/quantum/keymap_extras/keymap_bepo.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 267b5490c9..aaff90adea 100644 --- a/quantum/keymap_extras/keymap_brazilian_abnt2.h +++ b/quantum/keymap_extras/keymap_brazilian_abnt2.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 df9c73c016..8cec09af12 100644 --- a/quantum/keymap_extras/keymap_canadian_french.h +++ b/quantum/keymap_extras/keymap_canadian_french.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 4b42457396..c2daed7e64 100644 --- a/quantum/keymap_extras/keymap_canadian_multilingual.h +++ b/quantum/keymap_extras/keymap_canadian_multilingual.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 a4fc77e80f..e6ffa551b8 100644 --- a/quantum/keymap_extras/keymap_colemak.h +++ b/quantum/keymap_extras/keymap_colemak.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 cdc032a9eb..33bcd590df 100644 --- a/quantum/keymap_extras/keymap_croatian.h +++ b/quantum/keymap_extras/keymap_croatian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 cae16cdb9f..f23a5728b5 100644 --- a/quantum/keymap_extras/keymap_czech.h +++ b/quantum/keymap_extras/keymap_czech.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 bdfda933b0..4b613c8827 100644 --- a/quantum/keymap_extras/keymap_czech_mac_ansi.h +++ b/quantum/keymap_extras/keymap_czech_mac_ansi.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 9c05d8dae0..97b5addb7e 100644 --- a/quantum/keymap_extras/keymap_czech_mac_iso.h +++ b/quantum/keymap_extras/keymap_czech_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 1f1ee90e23..1907c34dd8 100644 --- a/quantum/keymap_extras/keymap_danish.h +++ b/quantum/keymap_extras/keymap_danish.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 5cb2c4564a..aa74064507 100644 --- a/quantum/keymap_extras/keymap_dvorak.h +++ b/quantum/keymap_extras/keymap_dvorak.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 d01bf7fec7..55c568f6e5 100644 --- a/quantum/keymap_extras/keymap_dvorak_fr.h +++ b/quantum/keymap_extras/keymap_dvorak_fr.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 f17900105f..547c61676a 100644 --- a/quantum/keymap_extras/keymap_dvorak_programmer.h +++ b/quantum/keymap_extras/keymap_dvorak_programmer.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 5fbeedcbe9..4cdc6085e1 100644 --- a/quantum/keymap_extras/keymap_estonian.h +++ b/quantum/keymap_extras/keymap_estonian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* diff --git a/quantum/keymap_extras/keymap_eurkey.h b/quantum/keymap_extras/keymap_eurkey.h index 5a13d48163..9e0a5a40f6 100644 --- a/quantum/keymap_extras/keymap_eurkey.h +++ b/quantum/keymap_extras/keymap_eurkey.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 e115d9c1c0..1f47a95511 100644 --- a/quantum/keymap_extras/keymap_farsi.h +++ b/quantum/keymap_extras/keymap_farsi.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 cb21da9962..332ce2641f 100644 --- a/quantum/keymap_extras/keymap_finnish.h +++ b/quantum/keymap_extras/keymap_finnish.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 d4352c6481..5f26b3a338 100644 --- a/quantum/keymap_extras/keymap_french.h +++ b/quantum/keymap_extras/keymap_french.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 8e6905cc01..17c82197b8 100644 --- a/quantum/keymap_extras/keymap_french_afnor.h +++ b/quantum/keymap_extras/keymap_french_afnor.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 ad9d280f2a..4bbec33f13 100644 --- a/quantum/keymap_extras/keymap_french_mac_iso.h +++ b/quantum/keymap_extras/keymap_french_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 bc98daa2fd..df51038b66 100644 --- a/quantum/keymap_extras/keymap_german.h +++ b/quantum/keymap_extras/keymap_german.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 ba3143c570..634a047548 100644 --- a/quantum/keymap_extras/keymap_german_mac_iso.h +++ b/quantum/keymap_extras/keymap_german_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 fb2f02a04f..3ee958935c 100644 --- a/quantum/keymap_extras/keymap_greek.h +++ b/quantum/keymap_extras/keymap_greek.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 5d1d4a29c6..e54aaf1116 100644 --- a/quantum/keymap_extras/keymap_hebrew.h +++ b/quantum/keymap_extras/keymap_hebrew.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 27236553e8..5be7be5a94 100644 --- a/quantum/keymap_extras/keymap_hungarian.h +++ b/quantum/keymap_extras/keymap_hungarian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 409be27b77..451819c283 100644 --- a/quantum/keymap_extras/keymap_icelandic.h +++ b/quantum/keymap_extras/keymap_icelandic.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 587467bcbe..ff1bb0efa3 100644 --- a/quantum/keymap_extras/keymap_irish.h +++ b/quantum/keymap_extras/keymap_irish.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 9fd7f1b15c..a7d05b3674 100644 --- a/quantum/keymap_extras/keymap_italian.h +++ b/quantum/keymap_extras/keymap_italian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 9ef38c0d87..5ef67a1485 100644 --- a/quantum/keymap_extras/keymap_italian_mac_ansi.h +++ b/quantum/keymap_extras/keymap_italian_mac_ansi.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 e80cfa450c..376c97684b 100644 --- a/quantum/keymap_extras/keymap_italian_mac_iso.h +++ b/quantum/keymap_extras/keymap_italian_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 55df86e16d..1839cb6b40 100644 --- a/quantum/keymap_extras/keymap_japanese.h +++ b/quantum/keymap_extras/keymap_japanese.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 7bf64c4841..a2ea15dc48 100644 --- a/quantum/keymap_extras/keymap_korean.h +++ b/quantum/keymap_extras/keymap_korean.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 4d60c45163..590106bb3c 100644 --- a/quantum/keymap_extras/keymap_latvian.h +++ b/quantum/keymap_extras/keymap_latvian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 e88cc75e07..078dc87eb8 100644 --- a/quantum/keymap_extras/keymap_lithuanian_azerty.h +++ b/quantum/keymap_extras/keymap_lithuanian_azerty.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 3321615c1e..2a0b8696ab 100644 --- a/quantum/keymap_extras/keymap_lithuanian_qwerty.h +++ b/quantum/keymap_extras/keymap_lithuanian_qwerty.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 5d10f19fd5..8c6e8a08d1 100644 --- a/quantum/keymap_extras/keymap_neo2.h +++ b/quantum/keymap_extras/keymap_neo2.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 3a11b29fc8..8381e97e3e 100644 --- a/quantum/keymap_extras/keymap_nordic.h +++ b/quantum/keymap_extras/keymap_nordic.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 d47c2ff8a7..09329fa109 100644 --- a/quantum/keymap_extras/keymap_norman.h +++ b/quantum/keymap_extras/keymap_norman.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 021b8c3b9c..915a4edeec 100644 --- a/quantum/keymap_extras/keymap_norwegian.h +++ b/quantum/keymap_extras/keymap_norwegian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 e7facfd623..3c501d7587 100644 --- a/quantum/keymap_extras/keymap_plover.h +++ b/quantum/keymap_extras/keymap_plover.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 5c8a4f9ada..ef7a058203 100644 --- a/quantum/keymap_extras/keymap_plover_dvorak.h +++ b/quantum/keymap_extras/keymap_plover_dvorak.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 e5e48097f7..59b1488c1f 100644 --- a/quantum/keymap_extras/keymap_polish.h +++ b/quantum/keymap_extras/keymap_polish.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 44abaf6537..1dbfc083ab 100644 --- a/quantum/keymap_extras/keymap_portuguese.h +++ b/quantum/keymap_extras/keymap_portuguese.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 f2d04440fb..44c27f6098 100644 --- a/quantum/keymap_extras/keymap_portuguese_mac_iso.h +++ b/quantum/keymap_extras/keymap_portuguese_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 9a7239e032..9e58129a4a 100644 --- a/quantum/keymap_extras/keymap_romanian.h +++ b/quantum/keymap_extras/keymap_romanian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 b756a657df..2591989e88 100644 --- a/quantum/keymap_extras/keymap_russian.h +++ b/quantum/keymap_extras/keymap_russian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 45fb1ede04..d0c15913ca 100644 --- a/quantum/keymap_extras/keymap_russian_typewriter.h +++ b/quantum/keymap_extras/keymap_russian_typewriter.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 202322b591..2770ca29a2 100644 --- a/quantum/keymap_extras/keymap_serbian.h +++ b/quantum/keymap_extras/keymap_serbian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 e863aa4ed8..4f9749f452 100644 --- a/quantum/keymap_extras/keymap_serbian_latin.h +++ b/quantum/keymap_extras/keymap_serbian_latin.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 f5848a6aaf..6bede22ba7 100644 --- a/quantum/keymap_extras/keymap_slovak.h +++ b/quantum/keymap_extras/keymap_slovak.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 502f06ad64..ad9ce22f33 100644 --- a/quantum/keymap_extras/keymap_slovenian.h +++ b/quantum/keymap_extras/keymap_slovenian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 dc23aea639..1c84ba947d 100644 --- a/quantum/keymap_extras/keymap_spanish.h +++ b/quantum/keymap_extras/keymap_spanish.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 e19a84b7e5..c9c1a7066f 100644 --- a/quantum/keymap_extras/keymap_spanish_dvorak.h +++ b/quantum/keymap_extras/keymap_spanish_dvorak.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 57329d20cd..404cbcbe19 100644 --- a/quantum/keymap_extras/keymap_spanish_latin_america.h +++ b/quantum/keymap_extras/keymap_spanish_latin_america.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 a50f8af30d..ced83e0a7f 100644 --- a/quantum/keymap_extras/keymap_swedish.h +++ b/quantum/keymap_extras/keymap_swedish.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 642c161dab..a2d8a5437d 100644 --- a/quantum/keymap_extras/keymap_swedish_mac_ansi.h +++ b/quantum/keymap_extras/keymap_swedish_mac_ansi.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 50387364cf..0338a9944f 100644 --- a/quantum/keymap_extras/keymap_swedish_mac_iso.h +++ b/quantum/keymap_extras/keymap_swedish_mac_iso.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 be1581bb3d..46187f4d17 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 2025 QMK +// Copyright 2026 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 d50213f987..29878371cb 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 2025 QMK +// Copyright 2026 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 4ebdb5c610..7f74b30432 100644 --- a/quantum/keymap_extras/keymap_swiss_de.h +++ b/quantum/keymap_extras/keymap_swiss_de.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 11fcc6536d..ada1837c94 100644 --- a/quantum/keymap_extras/keymap_swiss_fr.h +++ b/quantum/keymap_extras/keymap_swiss_fr.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 bbdaa3af25..f863c9036b 100644 --- a/quantum/keymap_extras/keymap_turkish_f.h +++ b/quantum/keymap_extras/keymap_turkish_f.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 d3fa00d7ae..7396fb3d20 100644 --- a/quantum/keymap_extras/keymap_turkish_q.h +++ b/quantum/keymap_extras/keymap_turkish_q.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 7490af6cf6..6a43f4669f 100644 --- a/quantum/keymap_extras/keymap_uk.h +++ b/quantum/keymap_extras/keymap_uk.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 78e39f8c75..3ceb4b8134 100644 --- a/quantum/keymap_extras/keymap_ukrainian.h +++ b/quantum/keymap_extras/keymap_ukrainian.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 b6e380ab23..5357be038c 100644 --- a/quantum/keymap_extras/keymap_us.h +++ b/quantum/keymap_extras/keymap_us.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 4262a7c44e..08dc45c5cd 100644 --- a/quantum/keymap_extras/keymap_us_extended.h +++ b/quantum/keymap_extras/keymap_us_extended.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 adc7051fe4..247ab02778 100644 --- a/quantum/keymap_extras/keymap_us_international.h +++ b/quantum/keymap_extras/keymap_us_international.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 db315968d6..e9d5bde808 100644 --- a/quantum/keymap_extras/keymap_us_international_linux.h +++ b/quantum/keymap_extras/keymap_us_international_linux.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 727e44512c..8a37a14265 100644 --- a/quantum/keymap_extras/keymap_workman.h +++ b/quantum/keymap_extras/keymap_workman.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 4655af60d6..1ec111245e 100644 --- a/quantum/keymap_extras/keymap_workman_zxcvm.h +++ b/quantum/keymap_extras/keymap_workman_zxcvm.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 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 5a8181c7d4..648e1bbaec 100644 --- a/quantum/rgblight/rgblight_breathe_table.h +++ b/quantum/rgblight/rgblight_breathe_table.h @@ -1,4 +1,4 @@ -// Copyright 2025 QMK +// Copyright 2026 QMK // SPDX-License-Identifier: GPL-2.0-or-later /******************************************************************************* From f3a16ef21d660b72e39c9bcfabca2adb86900c1e Mon Sep 17 00:00:00 2001 From: Aymeric Wibo Date: Sat, 3 Jan 2026 14:53:13 +0100 Subject: [PATCH 174/255] Fix typos in Aleblazer Zodiark readme (#25925) --- keyboards/aleblazer/zodiark/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/aleblazer/zodiark/readme.md b/keyboards/aleblazer/zodiark/readme.md index 392744dede..a27ed94f8a 100644 --- a/keyboards/aleblazer/zodiark/readme.md +++ b/keyboards/aleblazer/zodiark/readme.md @@ -2,7 +2,7 @@ ![Zodiark Split](https://i.imgur.com/49O8aowl.jpg) -A split keyboard with 5x7 including a thumbcluster, encoders on each side, per key RGB, and 2x I2C headers per side, supporiting 1.3"/.96" 128x64 OLEDs (the 1.3" is an SSH1106 OLED, refer to QMK documentation for limitations), .91" 128x32 OLEDs. +A split keyboard with 5x7 including a thumbcluster, encoders on each side, per key RGB, and 2x I2C headers per side, supporting 1.3"/.96" 128x64 OLEDs (the 1.3" is an SH1106 OLED, refer to QMK documentation for limitations) and .91" 128x32 OLEDs. * Keyboard Maintainer: [Aleblazer](https://github.com/Aleblazer/), [Discord Link](https://discord.gg/BCSbXwskVt) * Hardware Supported: Pro Micro and derivatives From ddeaa26fefa7b43a28ce583e39dbf43b7234dd24 Mon Sep 17 00:00:00 2001 From: Jack Sangdahl Date: Sat, 3 Jan 2026 06:55:17 -0700 Subject: [PATCH 175/255] Add `.env`, `.envrc` to gitignore (#25904) --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 6ec26d3876..e9aaf0b27b 100644 --- a/.gitignore +++ b/.gitignore @@ -65,6 +65,8 @@ cmake-build-debug CMakeLists.txt *.pdf *.zip +.env +.envrc # Let these ones be user specific, since we have so many different configurations *.code-workspace From 91a9f9e49263dbb04a0c54a2664d5115623009aa Mon Sep 17 00:00:00 2001 From: nullptr Date: Sat, 3 Jan 2026 20:45:29 +0100 Subject: [PATCH 176/255] Fix RGB Matrix Typing Heatmap overflow (#25915) --- quantum/rgb_matrix/animations/typing_heatmap_anim.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quantum/rgb_matrix/animations/typing_heatmap_anim.h b/quantum/rgb_matrix/animations/typing_heatmap_anim.h index 0606738891..77d79cf1af 100644 --- a/quantum/rgb_matrix/animations/typing_heatmap_anim.h +++ b/quantum/rgb_matrix/animations/typing_heatmap_anim.h @@ -32,7 +32,7 @@ void process_rgb_matrix_typing_heatmap(uint8_t row, uint8_t col) { if (i_row == row && i_col == col) { g_rgb_frame_buffer[row][col] = qadd8(g_rgb_frame_buffer[row][col], RGB_MATRIX_TYPING_HEATMAP_INCREASE_STEP); } else { -# define LED_DISTANCE(led_a, led_b) sqrt16(((int16_t)(led_a.x - led_b.x) * (int16_t)(led_a.x - led_b.x)) + ((int16_t)(led_a.y - led_b.y) * (int16_t)(led_a.y - led_b.y))) +# define LED_DISTANCE(led_a, led_b) sqrt16(((int32_t)(led_a.x - led_b.x) * (int32_t)(led_a.x - led_b.x)) + ((int32_t)(led_a.y - led_b.y) * (int32_t)(led_a.y - led_b.y))) uint8_t distance = LED_DISTANCE(g_led_config.point[g_led_config.matrix_co[row][col]], g_led_config.point[g_led_config.matrix_co[i_row][i_col]]); # undef LED_DISTANCE if (distance <= RGB_MATRIX_TYPING_HEATMAP_SPREAD) { From 8c035c2116c0ff2617a6aba996c3b6a9c977e19e Mon Sep 17 00:00:00 2001 From: Ed Flanagan Date: Sat, 3 Jan 2026 14:18:41 -0600 Subject: [PATCH 177/255] Fix small typo in WS2812 driver doc (#25928) `ws812` -> `ws2812` --- docs/drivers/ws2812.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/drivers/ws2812.md b/docs/drivers/ws2812.md index 0c26ec6248..1d70113897 100644 --- a/docs/drivers/ws2812.md +++ b/docs/drivers/ws2812.md @@ -292,7 +292,7 @@ Set the color of a single LED. This function does not immediately update the LED --- -### `void ws812_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-ws2812-set-color-all} +### `void ws2812_set_color_all(uint8_t red, uint8_t green, uint8_t blue)` {#api-ws2812-set-color-all} Set the color of all LEDs. From 31948625020db943f2a5272a43876983c404d814 Mon Sep 17 00:00:00 2001 From: Pascal Getreuer <50221757+getreuer@users.noreply.github.com> Date: Sat, 3 Jan 2026 15:00:50 -0800 Subject: [PATCH 178/255] docs/tap_hold.md fixes: Note that Chordal Hold supports multiple same-side mods and fix heading for Speculative Hold. (#25924) * Note Chordal Hold supports multiple same-side mods. * Fix "Speculative Hold" heading from H3 -> H2. --- docs/tap_hold.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/docs/tap_hold.md b/docs/tap_hold.md index 2aa628c535..3e88a7a5c2 100644 --- a/docs/tap_hold.md +++ b/docs/tap_hold.md @@ -604,6 +604,20 @@ Or if the two keys are on opposite hands and the `PERMISSIVE_HOLD` option is enabled, this will produce `C` with `SFT_T(KC_A)` settled as held when that `KC_C` is released. +As an exception to the opposite hands rule, Chordal Hold supports combining +multiple same-side modifiers within the tapping term. This is useful for +multi-mod hotkeys like Ctrl + Shift + V. For instance with Chordal Hold together +with either Permissive Hold or Hold On Other Key Press, the following input +results in Ctrl + Shift + V being sent, supposing `J` and `K` are on the right +hand side and `V` is on the left hand side: + +- `SFT_T(KC_J)` Down +- `CTL_T(KC_K)` Down +- `KC_V` Down +- `KC_V` Up +- `SFT_T(KC_J)` Up +- `CTL_T(KC_K)` Up + ### Chordal Hold Handedness Determining whether keys are on the same or opposite hands involves defining the @@ -779,7 +793,7 @@ Do not use `MOD_xxx` constants like `MOD_LSFT` or `MOD_RALT`, since they're 5-bi [Auto Shift](features/auto_shift) has its own version of `retro tapping` called `retro shift`. It is extremely similar to `retro tapping`, but holding the key past `AUTO_SHIFT_TIMEOUT` results in the value it sends being shifted. Other configurations also affect it differently; see [here](features/auto_shift#retro-shift) for more information. -### Speculative Hold +## Speculative Hold Speculative Hold makes mod-tap keys more responsive by applying the modifier instantly on keydown, before the tap-hold decision is made. This is especially useful for actions like Shift+Click with a mouse, which can feel laggy with standard mod-taps. @@ -820,4 +834,4 @@ Well, it's simple really: customization. But specifically, it depends on how you ## Why are there no `*_kb` or `*_user` functions?! -Unlike many of the other functions here, there isn't a need (or even reason) to have a quantum- or keyboard-level function. Only user-level functions are useful here, so there is no need to mark them as such. \ No newline at end of file +Unlike many of the other functions here, there isn't a need (or even reason) to have a quantum- or keyboard-level function. Only user-level functions are useful here, so there is no need to mark them as such. From 1e683923e1e42dda42911ebbaa191776aec3a626 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 7 Jan 2026 10:24:16 +0000 Subject: [PATCH 179/255] Handle broken symlinks in `qmk doctor` udev checks (#25934) Handle broken symlinks in 'qmk doctor' udev checks --- lib/python/qmk/cli/doctor/linux.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/python/qmk/cli/doctor/linux.py b/lib/python/qmk/cli/doctor/linux.py index f0850d4e64..c99cc6baea 100644 --- a/lib/python/qmk/cli/doctor/linux.py +++ b/lib/python/qmk/cli/doctor/linux.py @@ -87,7 +87,7 @@ def check_udev_rules(): line = line.strip() if not line.startswith("#") and len(line): current_rules.add(line) - except PermissionError: + except (PermissionError, FileNotFoundError): cli.log.debug("Failed to read: %s", rule_file) # Check if the desired rules are among the currently present rules From 259320ca275c2c6085702b34e68da93de3f17c37 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 7 Jan 2026 10:37:51 +0000 Subject: [PATCH 180/255] Lint out-of-bounds bootmagic config (#25899) * Lint OOB bootmagic config * lint --- lib/python/qmk/info.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index e07fa0ccae..cad93018bd 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -211,6 +211,32 @@ def _validate_encoders(keyboard, info_data): _log_error(info_data, f'Layout "{layout_name}" contains {reason} encoder index {encoder_index}.') +def _validate_bootmagic(keyboard, info_data): + """Non schema checks + """ + # bootmagic matrix indexes must be in range + rows = info_data.get('matrix_size', {}).get('rows', 0) + cols = info_data.get('matrix_size', {}).get('cols', 0) + + bootmagic_row, bootmagic_col = info_data.get('bootmagic', {}).get('matrix', [0, 0]) + bootmagic_right_row, bootmagic_right_col = info_data.get('split', {}).get('bootmagic', {}).get('matrix', [rows // 2, cols - 1]) + + if not info_data.get('split', {}).get('enabled', False): + if bootmagic_row >= rows: + _log_error(info_data, f'Bootmagic row ({bootmagic_row}) must be in the range 0-{rows - 1}') + if bootmagic_col >= cols: + _log_error(info_data, f'Bootmagic col ({bootmagic_col}) must be in the range 0-{cols - 1}') + else: + if bootmagic_row >= rows // 2: + _log_error(info_data, f'Bootmagic left row ({bootmagic_row}) must be in the range 0-{rows // 2 - 1}') + if bootmagic_col >= cols: + _log_error(info_data, f'Bootmagic left col ({bootmagic_col}) must be in the range 0-{cols - 1}') + if bootmagic_right_row < rows // 2 or bootmagic_right_row >= rows: + _log_error(info_data, f'Bootmagic right row ({bootmagic_right_row}) must be in the range {rows // 2}-{rows - 1}') + if bootmagic_right_col >= cols: + _log_error(info_data, f'Bootmagic right col ({bootmagic_right_col}) must be in the range 0-{cols - 1}') + + def _validate(keyboard, info_data): """Perform various validation on the provided info.json data """ @@ -223,6 +249,7 @@ def _validate(keyboard, info_data): _validate_layouts(keyboard, info_data) _validate_keycodes(keyboard, info_data) _validate_encoders(keyboard, info_data) + _validate_bootmagic(keyboard, info_data) except jsonschema.ValidationError as e: json_path = '.'.join([str(p) for p in e.absolute_path]) From 3d591a2000044d859115b8f6bf8e0c6af60acb74 Mon Sep 17 00:00:00 2001 From: Stefan Gluszek Date: Wed, 7 Jan 2026 22:08:05 +0100 Subject: [PATCH 181/255] Update fatotesa keyboard config. (#25811) --- keyboards/fatotesa/keyboard.json | 8 +++--- keyboards/fatotesa/keymaps/default/keymap.c | 30 +++++++++++---------- 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/keyboards/fatotesa/keyboard.json b/keyboards/fatotesa/keyboard.json index 3013e8b812..f300daa8ce 100644 --- a/keyboards/fatotesa/keyboard.json +++ b/keyboards/fatotesa/keyboard.json @@ -32,9 +32,9 @@ "rows": ["B6", "E6", "D4", "D7", "B4", "B5"] } }, - "bootmagic": { - "matrix": [4, 1] - } + }, + "bootmagic": { + "matrix": [4, 1] }, "matrix_pins": { "cols": ["F5", "F6", "F7", "B1", "B3", "B2", "B6", null], @@ -43,7 +43,7 @@ "usb": { "device_version": "1.0.0", "pid": "0x0000", - "vid": "0xFEED" + "vid": "0x5347" }, "layouts": { "LAYOUT": { diff --git a/keyboards/fatotesa/keymaps/default/keymap.c b/keyboards/fatotesa/keymaps/default/keymap.c index 1f6aa80488..a9fadb4142 100644 --- a/keyboards/fatotesa/keymaps/default/keymap.c +++ b/keyboards/fatotesa/keymaps/default/keymap.c @@ -13,18 +13,20 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( - KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_END, KC_INSERT, KC_DELETE, KC_KB_MUTE, - KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BACKSPACE, - LT(1, KC_TAB), KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_ENTER, - KC_LEFT_CTRL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, KC_BACKSLASH, - KC_LEFT_SHIFT, KC_LEFT_ANGLE_BRACKET, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, KC_RIGHT_SHIFT, - CW_TOGG, KC_LWIN, KC_LEFT_ALT, KC_BACKSPACE, KC_LEFT_ALT, KC_SPACE, KC_RIGHT_ALT, KC_RIGHT_CTRL, KC_NO, KC_NO - ), + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_END, KC_INSERT, KC_DELETE, KC_KB_MUTE, + KC_GRAVE, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINUS, KC_EQUAL, KC_BACKSPACE, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LEFT_BRACKET, KC_RIGHT_BRACKET, KC_ENTER, + OSM(MOD_LCTL), KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SEMICOLON, KC_QUOTE, KC_BACKSLASH, + OSM(MOD_LSFT), KC_LEFT_ANGLE_BRACKET, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLASH, OSM(MOD_RSFT), + CW_TOGG, OSM(MOD_LGUI), KC_LEFT_ALT, MO(1), OSM(MOD_LALT), KC_SPACE, OSM(MOD_RALT), KC_RIGHT_CTRL, KC_NO, KC_NO + ), + [1] = LAYOUT( - _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_DEL, _______, _______, _______, _______, _______, _______ - )}; + QK_REBOOT, _______, _______, _______, _______, KC_PSCR, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_TAB, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RIGHT, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, KC_PGDN, _______, _______, _______, _______ + ) +}; From e1c41f1b083b06f64c51b14e321d582a7b2933de Mon Sep 17 00:00:00 2001 From: ijouw <137716459+ijouw@users.noreply.github.com> Date: Thu, 8 Jan 2026 01:41:46 +0100 Subject: [PATCH 182/255] Match Key override index type to bounds type to prevent overflow (#25939) Use uint16_t to store key override index Co-authored-by: simon --- quantum/process_keycode/process_key_override.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quantum/process_keycode/process_key_override.c b/quantum/process_keycode/process_key_override.c index 871af874c0..b6ef636e15 100644 --- a/quantum/process_keycode/process_key_override.c +++ b/quantum/process_keycode/process_key_override.c @@ -250,7 +250,7 @@ static bool try_activating_override(const uint16_t keycode, const uint8_t layer, return true; } - for (uint8_t i = 0; i < key_override_count(); i++) { + for (uint16_t i = 0; i < key_override_count(); i++) { const key_override_t *const override = key_override_get(i); // End of array From a0b15d08bc56ccbea9990dde884136425e9886f7 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 8 Jan 2026 05:36:40 +0000 Subject: [PATCH 183/255] Short term fix for avr-libc@2.3.0 (#25938) --- quantum/send_string/send_string.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/quantum/send_string/send_string.c b/quantum/send_string/send_string.c index 602f24dabe..6471d5140c 100644 --- a/quantum/send_string/send_string.c +++ b/quantum/send_string/send_string.c @@ -281,6 +281,10 @@ void send_nibble(uint8_t number) { } } +#if defined(__AVR_ATmega32U4__) +# include +#endif + void tap_random_base64(void) { #if defined(__AVR_ATmega32U4__) uint8_t key = (TCNT0 + TCNT1 + TCNT3 + TCNT4) % 64; From e31384babf7cb77fb6b076541ba3373f3f709b46 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Jan 2026 19:50:23 +0000 Subject: [PATCH 184/255] Bump JamesIves/github-pages-deploy-action from 4.7.6 to 4.8.0 (#25943) Bumps [JamesIves/github-pages-deploy-action](https://github.com/jamesives/github-pages-deploy-action) from 4.7.6 to 4.8.0. - [Release notes](https://github.com/jamesives/github-pages-deploy-action/releases) - [Commits](https://github.com/jamesives/github-pages-deploy-action/compare/v4.7.6...v4.8.0) --- updated-dependencies: - dependency-name: JamesIves/github-pages-deploy-action dependency-version: 4.8.0 dependency-type: direct:production update-type: version-update:semver-minor ... 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 8a0229f873..104b19892b 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -57,7 +57,7 @@ jobs: - name: Deploy if: ${{ github.event_name == 'push' && github.repository == 'qmk/qmk_firmware' }} - uses: JamesIves/github-pages-deploy-action@v4.7.6 + uses: JamesIves/github-pages-deploy-action@v4.8.0 with: token: ${{ secrets.GITHUB_TOKEN }} branch: gh-pages From df93bfb75004ae9fd3dfad73a821947dbdf152d2 Mon Sep 17 00:00:00 2001 From: ms-eevee Date: Fri, 9 Jan 2026 18:32:55 -0500 Subject: [PATCH 185/255] Fixes for is31fl3729 LED matrix driver off-by-one errors (#25902) Co-authored-by: Evelyn Holloway --- drivers/led/issi/is31fl3729-mono.c | 4 ++-- drivers/led/issi/is31fl3729.c | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/led/issi/is31fl3729-mono.c b/drivers/led/issi/is31fl3729-mono.c index 13d5146877..668a5b3ca2 100644 --- a/drivers/led/issi/is31fl3729-mono.c +++ b/drivers/led/issi/is31fl3729-mono.c @@ -107,7 +107,7 @@ void is31fl3729_write_pwm_buffer(uint8_t index) { // Transmit PWM registers in 11 transfers of 13 bytes. // Iterate over the pwm_buffer contents at 13 byte intervals. - for (uint8_t i = 0; i <= IS31FL3729_PWM_REGISTER_COUNT; i += 13) { + for (uint8_t i = 0; i < IS31FL3729_PWM_REGISTER_COUNT; i += 13) { #if IS31FL3729_I2C_PERSISTENCE > 0 for (uint8_t j = 0; j < IS31FL3729_I2C_PERSISTENCE; j++) { if (i2c_write_register(i2c_addresses[index] << 1, IS31FL3729_REG_PWM + i, driver_buffers[index].pwm_buffer + i, 13, IS31FL3729_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break; @@ -182,7 +182,7 @@ void is31fl3729_set_scaling_register(uint8_t index, uint8_t value) { // need to do a bit of checking here since 3729 scaling is per CS pin. // not the usual per single LED key as per other ISSI drivers // only enable them, since they should be default disabled - int cs_value = (led.v & 0x0F) - 1; + int cs_value = (led.v & 0x0F); driver_buffers[led.driver].scaling_buffer[cs_value] = value; driver_buffers[led.driver].scaling_buffer_dirty = true; diff --git a/drivers/led/issi/is31fl3729.c b/drivers/led/issi/is31fl3729.c index 80acb22fa2..231d2b00c3 100644 --- a/drivers/led/issi/is31fl3729.c +++ b/drivers/led/issi/is31fl3729.c @@ -107,7 +107,7 @@ void is31fl3729_write_pwm_buffer(uint8_t index) { // Transmit PWM registers in 11 transfers of 13 bytes. // Iterate over the pwm_buffer contents at 13 byte intervals. - for (uint8_t i = 0; i <= IS31FL3729_PWM_REGISTER_COUNT; i += 13) { + for (uint8_t i = 0; i < IS31FL3729_PWM_REGISTER_COUNT; i += 13) { #if IS31FL3729_I2C_PERSISTENCE > 0 for (uint8_t j = 0; j < IS31FL3729_I2C_PERSISTENCE; j++) { if (i2c_write_register(i2c_addresses[index] << 1, IS31FL3729_REG_PWM + i, driver_buffers[index].pwm_buffer + i, 13, IS31FL3729_I2C_TIMEOUT) == I2C_STATUS_SUCCESS) break; @@ -184,9 +184,9 @@ void is31fl3729_set_scaling_register(uint8_t index, uint8_t red, uint8_t green, // need to do a bit of checking here since 3729 scaling is per CS pin. // not the usual per RGB key as per other ISSI drivers // only enable them, since they should be default disabled - int cs_red = (led.r & 0x0F) - 1; - int cs_green = (led.g & 0x0F) - 1; - int cs_blue = (led.b & 0x0F) - 1; + int cs_red = (led.r & 0x0F); + int cs_green = (led.g & 0x0F); + int cs_blue = (led.b & 0x0F); driver_buffers[led.driver].scaling_buffer[cs_red] = red; driver_buffers[led.driver].scaling_buffer[cs_green] = green; From 56a2e332e10e6c8d7bc41a45310fa983cbd8c577 Mon Sep 17 00:00:00 2001 From: Thanh Son Tran <62438883+trnthsn@users.noreply.github.com> Date: Sat, 10 Jan 2026 07:01:15 +0700 Subject: [PATCH 186/255] Update tyson60 pid (#25935) 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 tyson60 product id --------- Co-authored-by: Trần Thanh Sơn Co-authored-by: Duncan Sutherland --- keyboards/trnthsn/tyson60/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/trnthsn/tyson60/info.json b/keyboards/trnthsn/tyson60/info.json index 6f4df15d99..27e10a1333 100644 --- a/keyboards/trnthsn/tyson60/info.json +++ b/keyboards/trnthsn/tyson60/info.json @@ -34,7 +34,7 @@ }, "usb": { "device_version": "0.0.1", - "pid": "0x5336", + "pid": "0x3633", "vid": "0x5453" }, "ws2812": { From f8d65460c26e37a67d02c2fa320162798184f7bb Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 10 Jan 2026 00:23:43 +0000 Subject: [PATCH 187/255] Report permission issues in `qmk doctor` (#25931) Report permission issues in 'qmk doctor' --- lib/python/qmk/cli/doctor/main.py | 72 ++++++++++++++++++------------- lib/python/qmk/git.py | 14 +++++- 2 files changed, 54 insertions(+), 32 deletions(-) diff --git a/lib/python/qmk/cli/doctor/main.py b/lib/python/qmk/cli/doctor/main.py index 45667e8ce2..db6cf0383e 100755 --- a/lib/python/qmk/cli/doctor/main.py +++ b/lib/python/qmk/cli/doctor/main.py @@ -10,7 +10,7 @@ from milc.questions import yesno from qmk import submodules from qmk.constants import QMK_FIRMWARE, QMK_FIRMWARE_UPSTREAM, QMK_USERSPACE, HAS_QMK_USERSPACE from .check import CheckStatus, check_binaries, check_binary_versions, check_submodules -from qmk.git import git_check_repo, git_get_branch, git_get_tag, git_get_last_log_entry, git_get_common_ancestor, git_is_dirty, git_get_remotes, git_check_deviation +from qmk.git import git_check_repo, git_check_safe, git_get_branch, git_get_tag, git_get_last_log_entry, git_get_common_ancestor, git_is_dirty, git_get_remotes, git_check_deviation from qmk.commands import in_virtualenv from qmk.userspace import qmk_userspace_paths, qmk_userspace_validate, UserspaceValidationError @@ -91,39 +91,47 @@ def os_tests(): def git_tests(): """Run Git-related checks """ - status = CheckStatus.OK - # Make sure our QMK home is a Git repo git_ok = git_check_repo() if not git_ok: cli.log.warning("{fg_yellow}QMK home does not appear to be a Git repository! (no .git folder)") + return CheckStatus.WARNING + + git_safe = git_check_safe() + if not git_safe: + cli.log.warning("{fg_yellow}Detected dubious ownership in repository!") + return CheckStatus.WARNING + + git_branch = git_get_branch() + if not git_branch: + cli.log.warning("{fg_yellow}Failed to query Git repository!") + return CheckStatus.WARNING + + cli.log.info('Git branch: %s', git_branch) + + repo_version = git_get_tag() + if repo_version: + cli.log.info('Repo version: %s', repo_version) + + status = CheckStatus.OK + git_dirty = git_is_dirty() + if git_dirty: + cli.log.warning('{fg_yellow}Git has unstashed/uncommitted changes.') + status = CheckStatus.WARNING + + git_remotes = git_get_remotes() + if 'upstream' not in git_remotes.keys() or QMK_FIRMWARE_UPSTREAM not in git_remotes['upstream'].get('url', ''): + cli.log.warning('{fg_yellow}The official repository does not seem to be configured as git remote "upstream".') status = CheckStatus.WARNING else: - git_branch = git_get_branch() - if git_branch: - cli.log.info('Git branch: %s', git_branch) - - repo_version = git_get_tag() - if repo_version: - cli.log.info('Repo version: %s', repo_version) - - git_dirty = git_is_dirty() - if git_dirty: - cli.log.warning('{fg_yellow}Git has unstashed/uncommitted changes.') - status = CheckStatus.WARNING - git_remotes = git_get_remotes() - if 'upstream' not in git_remotes.keys() or QMK_FIRMWARE_UPSTREAM not in git_remotes['upstream'].get('url', ''): - cli.log.warning('{fg_yellow}The official repository does not seem to be configured as git remote "upstream".') - status = CheckStatus.WARNING - else: - git_deviation = git_check_deviation(git_branch) - if git_branch in ['master', 'develop'] and git_deviation: - cli.log.warning('{fg_yellow}The local "%s" branch contains commits not found in the upstream branch.', git_branch) - status = CheckStatus.WARNING - for branch in [git_branch, 'upstream/master', 'upstream/develop']: - cli.log.info('- Latest %s: %s', branch, git_get_last_log_entry(branch)) - for branch in ['upstream/master', 'upstream/develop']: - cli.log.info('- Common ancestor with %s: %s', branch, git_get_common_ancestor(branch, 'HEAD')) + git_deviation = git_check_deviation(git_branch) + if git_branch in ['master', 'develop'] and git_deviation: + cli.log.warning('{fg_yellow}The local "%s" branch contains commits not found in the upstream branch.', git_branch) + status = CheckStatus.WARNING + for branch in [git_branch, 'upstream/master', 'upstream/develop']: + cli.log.info('- Latest %s: %s', branch, git_get_last_log_entry(branch)) + for branch in ['upstream/master', 'upstream/develop']: + cli.log.info('- Common ancestor with %s: %s', branch, git_get_common_ancestor(branch, 'HEAD')) return status @@ -140,10 +148,12 @@ def output_submodule_status(): sub_shorthash = sub_info['shorthash'] if 'shorthash' in sub_info else '' sub_describe = sub_info['describe'] if 'describe' in sub_info else '' sub_last_log_timestamp = sub_info['last_log_timestamp'] if 'last_log_timestamp' in sub_info else '' - if sub_last_log_timestamp != '': - cli.log.info(f'- {sub_name}: {sub_last_log_timestamp} -- {sub_describe} ({sub_shorthash})') - else: + if not git_check_safe(sub_name): + cli.log.error(f'- {sub_name}: <<< dubious ownership in repository >>>') + elif sub_last_log_timestamp == '': cli.log.error(f'- {sub_name}: <<< missing or unknown >>>') + else: + cli.log.info(f'- {sub_name}: {sub_last_log_timestamp} -- {sub_describe} ({sub_shorthash})') def userspace_tests(qmk_firmware): diff --git a/lib/python/qmk/git.py b/lib/python/qmk/git.py index 77c5e6aa1a..f61e0bdb47 100644 --- a/lib/python/qmk/git.py +++ b/lib/python/qmk/git.py @@ -24,7 +24,7 @@ def git_get_version(repo_dir='.', check_dir='.'): else: cli.log.warning(f'"{" ".join(git_describe_cmd)}" returned error code {git_describe.returncode}') - print(git_describe.stderr) + cli.log.warning(git_describe.stderr) return None return None @@ -118,6 +118,18 @@ def git_check_repo(): return dot_git_dir.is_dir() +def git_check_safe(repo_dir='.'): + """Checks if a directory passes the git safe.directory checks + """ + if repo_dir != '.': + git_cmd = ['git', '-C', repo_dir, 'status'] + else: + git_cmd = ['git', 'status'] + + status = cli.run(git_cmd) + return '--add safe.directory' not in status.stderr + + def git_check_deviation(active_branch): """Return True if branch has custom commits """ From fe1c3fc835c026af1a0280b6a795c73a67a901e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Mart=C3=ADnez?= <58857054+elpekenin@users.noreply.github.com> Date: Sun, 11 Jan 2026 02:00:36 +0100 Subject: [PATCH 188/255] [Bugfix] WS2812 indexing in split boards (#25407) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * initial * oops * Update quantum/rgb_matrix/rgb_matrix.c Co-authored-by: フィルターペーパー <76888457+filterpaper@users.noreply.github.com> --------- Co-authored-by: フィルターペーパー <76888457+filterpaper@users.noreply.github.com> --- quantum/rgb_matrix/rgb_matrix.c | 22 +++++++++++++++++++--- quantum/rgb_matrix/rgb_matrix.h | 8 ++++++++ 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/quantum/rgb_matrix/rgb_matrix.c b/quantum/rgb_matrix/rgb_matrix.c index 97ae6a3c76..e2b268efa7 100644 --- a/quantum/rgb_matrix/rgb_matrix.c +++ b/quantum/rgb_matrix/rgb_matrix.c @@ -158,15 +158,31 @@ void rgb_matrix_update_pwm_buffers(void) { __attribute__((weak)) int rgb_matrix_led_index(int index) { #if defined(RGB_MATRIX_SPLIT) - if (!is_keyboard_left() && index >= k_rgb_matrix_split[0]) { - return index - k_rgb_matrix_split[0]; + const bool index_in_left_side = index < k_rgb_matrix_split[0]; + + if (is_keyboard_left()) { + if (index_in_left_side) { + return index; + } + return -1; } + + if (index_in_left_side) { + return -1; + } + + return index - k_rgb_matrix_split[0]; #endif return index; } void rgb_matrix_set_color(int index, uint8_t red, uint8_t green, uint8_t blue) { - rgb_matrix_driver.set_color(rgb_matrix_led_index(index), red, green, blue); + const int led_index = rgb_matrix_led_index(index); + if (led_index < 0) { + return; + } + + rgb_matrix_driver.set_color(led_index, red, green, blue); } void rgb_matrix_set_color_all(uint8_t red, uint8_t green, uint8_t blue) { diff --git a/quantum/rgb_matrix/rgb_matrix.h b/quantum/rgb_matrix/rgb_matrix.h index f800679b46..f49ad04ace 100644 --- a/quantum/rgb_matrix/rgb_matrix.h +++ b/quantum/rgb_matrix/rgb_matrix.h @@ -151,6 +151,14 @@ void eeconfig_force_flush_rgb_matrix(void); uint8_t rgb_matrix_map_row_column_to_led_kb(uint8_t row, uint8_t column, uint8_t *led_i); uint8_t rgb_matrix_map_row_column_to_led(uint8_t row, uint8_t column, uint8_t *led_i); +/** + * @brief Convert an index to the addressing used by underlying driver + * + * @param index Logical index of the LED we want to work on + * + * @return Resolved index to be used on the driver + * @retval < 0 Error (eg: trying to address a LED on the other half of a split board) + */ int rgb_matrix_led_index(int index); void rgb_matrix_set_color(int index, uint8_t red, uint8_t green, uint8_t blue); From fb27ce6bb284326dd179087fd1b10688b49766eb Mon Sep 17 00:00:00 2001 From: Ryan Date: Sun, 11 Jan 2026 12:47:15 +1100 Subject: [PATCH 189/255] Add missing labels to DD keycode definitions (#25503) * Add missing labels to DD keycode definitions * Use subscript numbers for MIDI note labels to avoid confusion with eg. F-keys * Somehow missed these --- .../keycodes/keycodes_0.0.1_audio.hjson | 15 ++ .../keycodes/keycodes_0.0.1_basic.hjson | 46 +++--- .../keycodes/keycodes_0.0.1_joystick.hjson | 32 ++++ .../keycodes/keycodes_0.0.1_lighting.hjson | 7 + .../keycodes/keycodes_0.0.1_macro.hjson | 33 +++- .../keycodes_0.0.1_programmable_button.hjson | 32 ++++ .../keycodes/keycodes_0.0.1_quantum.hjson | 71 ++++++++- .../keycodes/keycodes_0.0.2_basic.hjson | 4 +- .../keycodes/keycodes_0.0.2_kb.hjson | 96 ++++++++---- .../keycodes/keycodes_0.0.2_magic.hjson | 35 +++++ .../keycodes/keycodes_0.0.2_midi.hjson | 144 ++++++++++++++++++ .../keycodes/keycodes_0.0.2_quantum.hjson | 2 + .../keycodes/keycodes_0.0.2_sequencer.hjson | 9 ++ .../keycodes/keycodes_0.0.2_swap_hands.hjson | 7 + .../keycodes/keycodes_0.0.2_user.hjson | 96 ++++++++---- .../keycodes/keycodes_0.0.3_quantum.hjson | 2 + .../keycodes/keycodes_0.0.4_lighting.hjson | 33 ++++ .../keycodes/keycodes_0.0.5_basic.hjson | 38 ++--- .../keycodes/keycodes_0.0.6_connection.hjson | 15 ++ .../keycodes/keycodes_0.0.6_quantum.hjson | 1 + 20 files changed, 607 insertions(+), 111 deletions(-) diff --git a/data/constants/keycodes/keycodes_0.0.1_audio.hjson b/data/constants/keycodes/keycodes_0.0.1_audio.hjson index e1d3ac3a0f..01a7ebaf33 100644 --- a/data/constants/keycodes/keycodes_0.0.1_audio.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_audio.hjson @@ -3,6 +3,7 @@ "0x7480": { "group": "audio", "key": "QK_AUDIO_ON", + "label": "Audio On", "aliases": [ "AU_ON" ] @@ -10,6 +11,7 @@ "0x7481": { "group": "audio", "key": "QK_AUDIO_OFF", + "label": "Audio Off", "aliases": [ "AU_OFF" ] @@ -17,6 +19,7 @@ "0x7482": { "group": "audio", "key": "QK_AUDIO_TOGGLE", + "label": "Toggle Audio", "aliases": [ "AU_TOGG" ] @@ -25,6 +28,7 @@ "0x748A": { "group": "audio", "key": "QK_AUDIO_CLICKY_TOGGLE", + "label": "Toggle Audio Clicky", "aliases": [ "CK_TOGG" ] @@ -32,6 +36,7 @@ "0x748B": { "group": "audio", "key": "QK_AUDIO_CLICKY_ON", + "label": "Audio Clicky On", "aliases": [ "CK_ON" ] @@ -39,6 +44,7 @@ "0x748C": { "group": "audio", "key": "QK_AUDIO_CLICKY_OFF", + "label": "Audio Clicky Off", "aliases": [ "CK_OFF" ] @@ -46,6 +52,7 @@ "0x748D": { "group": "audio", "key": "QK_AUDIO_CLICKY_UP", + "label": "Audio Clicky Up", "aliases": [ "CK_UP" ] @@ -53,6 +60,7 @@ "0x748E": { "group": "audio", "key": "QK_AUDIO_CLICKY_DOWN", + "label": "Audio Clicky Down", "aliases": [ "CK_DOWN" ] @@ -60,6 +68,7 @@ "0x748F": { "group": "audio", "key": "QK_AUDIO_CLICKY_RESET", + "label": "Audio Clicky Reset", "aliases": [ "CK_RST" ] @@ -68,6 +77,7 @@ "0x7490": { "group": "audio", "key": "QK_MUSIC_ON", + "label": "Music On", "aliases": [ "MU_ON" ] @@ -75,6 +85,7 @@ "0x7491": { "group": "audio", "key": "QK_MUSIC_OFF", + "label": "Music Off", "aliases": [ "MU_OFF" ] @@ -82,6 +93,7 @@ "0x7492": { "group": "audio", "key": "QK_MUSIC_TOGGLE", + "label": "Toggle Music", "aliases": [ "MU_TOGG" ] @@ -89,6 +101,7 @@ "0x7493": { "group": "audio", "key": "QK_MUSIC_MODE_NEXT", + "label": "Music Next", "aliases": [ "MU_NEXT" ] @@ -97,6 +110,7 @@ "0x7494": { "group": "audio", "key": "QK_AUDIO_VOICE_NEXT", + "label": "Audio Voice Next", "aliases": [ "AU_NEXT" ] @@ -104,6 +118,7 @@ "0x7495": { "group": "audio", "key": "QK_AUDIO_VOICE_PREVIOUS", + "label": "Audio Voice Previous", "aliases": [ "AU_PREV" ] diff --git a/data/constants/keycodes/keycodes_0.0.1_basic.hjson b/data/constants/keycodes/keycodes_0.0.1_basic.hjson index 66aba7b1fc..7dcf4a3783 100644 --- a/data/constants/keycodes/keycodes_0.0.1_basic.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_basic.hjson @@ -3,7 +3,7 @@ "0x0000": { "group": "internal", "key": "KC_NO", - "label": "", + "label": "N/A", "aliases": [ "XXXXXXX" ] @@ -11,7 +11,7 @@ "0x0001": { "group": "internal", "key": "KC_TRANSPARENT", - "label": "", + "label": "Transparent", "aliases": [ "_______", "KC_TRNS" @@ -634,7 +634,7 @@ "0x0065": { "group": "basic", "key": "KC_APPLICATION", - "label": "Application", + "label": "App", "aliases": [ "KC_APP" ] @@ -642,7 +642,7 @@ "0x0066": { "group": "basic", "key": "KC_KB_POWER", - "label": "Application" + "label": "Power" }, "0x0067": { "group": "basic", @@ -1068,7 +1068,7 @@ "0x00A5": { "group": "system", "key": "KC_SYSTEM_POWER", - "label": "System Power Down", + "label": "Power", "aliases": [ "KC_PWR" ] @@ -1076,7 +1076,7 @@ "0x00A6": { "group": "system", "key": "KC_SYSTEM_SLEEP", - "label": "System Sleep", + "label": "Sleep", "aliases": [ "KC_SLEP" ] @@ -1084,7 +1084,7 @@ "0x00A7": { "group": "system", "key": "KC_SYSTEM_WAKE", - "label": "System Wake", + "label": "Wake", "aliases": [ "KC_WAKE" ] @@ -1140,7 +1140,7 @@ "0x00AE": { "group": "media", "key": "KC_MEDIA_PLAY_PAUSE", - "label": "Play/Pause Track", + "label": "Play/Pause", "aliases": [ "KC_MPLY" ] @@ -1148,7 +1148,7 @@ "0x00AF": { "group": "media", "key": "KC_MEDIA_SELECT", - "label": "Launch Player", + "label": "Media", "aliases": [ "KC_MSEL" ] @@ -1164,12 +1164,12 @@ "0x00B1": { "group": "media", "key": "KC_MAIL", - "label": "Launch Mail" + "label": "Mail", }, "0x00B2": { "group": "media", "key": "KC_CALCULATOR", - "label": "Launch Calculator", + "label": "Calculator", "aliases": [ "KC_CALC" ] @@ -1177,7 +1177,7 @@ "0x00B3": { "group": "media", "key": "KC_MY_COMPUTER", - "label": "Launch My Computer", + "label": "My Computer", "aliases": [ "KC_MYCM" ] @@ -1185,7 +1185,7 @@ "0x00B4": { "group": "media", "key": "KC_WWW_SEARCH", - "label": "Browser Search", + "label": "Search", "aliases": [ "KC_WSCH" ] @@ -1193,7 +1193,7 @@ "0x00B5": { "group": "media", "key": "KC_WWW_HOME", - "label": "Browser Home", + "label": "Home", "aliases": [ "KC_WHOM" ] @@ -1201,7 +1201,7 @@ "0x00B6": { "group": "media", "key": "KC_WWW_BACK", - "label": "Browser Back", + "label": "Back", "aliases": [ "KC_WBAK" ] @@ -1209,7 +1209,7 @@ "0x00B7": { "group": "media", "key": "KC_WWW_FORWARD", - "label": "Browser Forward", + "label": "Forward", "aliases": [ "KC_WFWD" ] @@ -1217,7 +1217,7 @@ "0x00B8": { "group": "media", "key": "KC_WWW_STOP", - "label": "Browser Stop", + "label": "Stop", "aliases": [ "KC_WSTP" ] @@ -1225,7 +1225,7 @@ "0x00B9": { "group": "media", "key": "KC_WWW_REFRESH", - "label": "Browser Refresh", + "label": "Refresh", "aliases": [ "KC_WREF" ] @@ -1233,7 +1233,7 @@ "0x00BA": { "group": "media", "key": "KC_WWW_FAVORITES", - "label": "Browser Favorites", + "label": "Favorites", "aliases": [ "KC_WFAV" ] @@ -1241,7 +1241,7 @@ "0x00BB": { "group": "media", "key": "KC_MEDIA_FAST_FORWARD", - "label": "Next Track", + "label": "Fast Forward", "aliases": [ "KC_MFFD" ] @@ -1249,7 +1249,7 @@ "0x00BC": { "group": "media", "key": "KC_MEDIA_REWIND", - "label": "Previous Track", + "label": "Rewind", "aliases": [ "KC_MRWD" ] @@ -1273,7 +1273,7 @@ "0x00BF": { "group": "media", "key": "KC_CONTROL_PANEL", - "label": "Open Control Panel", + "label": "Control Panel", "aliases": [ "KC_CPNL" ] @@ -1281,7 +1281,7 @@ "0x00C0": { "group": "media", "key": "KC_ASSISTANT", - "label": "Launch Assistant", + "label": "Assistant", "aliases": [ "KC_ASST" ] diff --git a/data/constants/keycodes/keycodes_0.0.1_joystick.hjson b/data/constants/keycodes/keycodes_0.0.1_joystick.hjson index b851d72eef..3e5f99c93d 100644 --- a/data/constants/keycodes/keycodes_0.0.1_joystick.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_joystick.hjson @@ -3,6 +3,7 @@ "0x7400": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_0", + "label": "Button 0", "aliases": [ "JS_0" ] @@ -10,6 +11,7 @@ "0x7401": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_1", + "label": "Button 1", "aliases": [ "JS_1" ] @@ -17,6 +19,7 @@ "0x7402": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_2", + "label": "Button 2", "aliases": [ "JS_2" ] @@ -24,6 +27,7 @@ "0x7403": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_3", + "label": "Button 3", "aliases": [ "JS_3" ] @@ -31,6 +35,7 @@ "0x7404": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_4", + "label": "Button 4", "aliases": [ "JS_4" ] @@ -38,6 +43,7 @@ "0x7405": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_5", + "label": "Button 5", "aliases": [ "JS_5" ] @@ -45,6 +51,7 @@ "0x7406": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_6", + "label": "Button 6", "aliases": [ "JS_6" ] @@ -52,6 +59,7 @@ "0x7407": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_7", + "label": "Button 7", "aliases": [ "JS_7" ] @@ -59,6 +67,7 @@ "0x7408": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_8", + "label": "Button 8", "aliases": [ "JS_8" ] @@ -66,6 +75,7 @@ "0x7409": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_9", + "label": "Button 9", "aliases": [ "JS_9" ] @@ -73,6 +83,7 @@ "0x740A": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_10", + "label": "Button 10", "aliases": [ "JS_10" ] @@ -80,6 +91,7 @@ "0x740B": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_11", + "label": "Button 11", "aliases": [ "JS_11" ] @@ -87,6 +99,7 @@ "0x740C": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_12", + "label": "Button 12", "aliases": [ "JS_12" ] @@ -94,6 +107,7 @@ "0x740D": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_13", + "label": "Button 13", "aliases": [ "JS_13" ] @@ -101,6 +115,7 @@ "0x740E": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_14", + "label": "Button 14", "aliases": [ "JS_14" ] @@ -108,6 +123,7 @@ "0x740F": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_15", + "label": "Button 15", "aliases": [ "JS_15" ] @@ -115,6 +131,7 @@ "0x7410": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_16", + "label": "Button 16", "aliases": [ "JS_16" ] @@ -122,6 +139,7 @@ "0x7411": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_17", + "label": "Button 17", "aliases": [ "JS_17" ] @@ -129,6 +147,7 @@ "0x7412": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_18", + "label": "Button 18", "aliases": [ "JS_18" ] @@ -136,6 +155,7 @@ "0x7413": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_19", + "label": "Button 19", "aliases": [ "JS_19" ] @@ -143,6 +163,7 @@ "0x7414": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_20", + "label": "Button 20", "aliases": [ "JS_20" ] @@ -150,6 +171,7 @@ "0x7415": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_21", + "label": "Button 21", "aliases": [ "JS_21" ] @@ -157,6 +179,7 @@ "0x7416": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_22", + "label": "Button 22", "aliases": [ "JS_22" ] @@ -164,6 +187,7 @@ "0x7417": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_23", + "label": "Button 23", "aliases": [ "JS_23" ] @@ -171,6 +195,7 @@ "0x7418": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_24", + "label": "Button 24", "aliases": [ "JS_24" ] @@ -178,6 +203,7 @@ "0x7419": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_25", + "label": "Button 25", "aliases": [ "JS_25" ] @@ -185,6 +211,7 @@ "0x741A": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_26", + "label": "Button 26", "aliases": [ "JS_26" ] @@ -192,6 +219,7 @@ "0x741B": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_27", + "label": "Button 27", "aliases": [ "JS_27" ] @@ -199,6 +227,7 @@ "0x741C": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_28", + "label": "Button 28", "aliases": [ "JS_28" ] @@ -206,6 +235,7 @@ "0x741D": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_29", + "label": "Button 29", "aliases": [ "JS_29" ] @@ -213,6 +243,7 @@ "0x741E": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_30", + "label": "Button 30", "aliases": [ "JS_30" ] @@ -220,6 +251,7 @@ "0x741F": { "group": "joystick", "key": "QK_JOYSTICK_BUTTON_31", + "label": "Button 31", "aliases": [ "JS_31" ] diff --git a/data/constants/keycodes/keycodes_0.0.1_lighting.hjson b/data/constants/keycodes/keycodes_0.0.1_lighting.hjson index 77275cec29..5e377b02f5 100644 --- a/data/constants/keycodes/keycodes_0.0.1_lighting.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_lighting.hjson @@ -3,6 +3,7 @@ "0x7800": { "group": "backlight", "key": "QK_BACKLIGHT_ON", + "label": "Backlight On", "aliases": [ "BL_ON" ] @@ -10,6 +11,7 @@ "0x7801": { "group": "backlight", "key": "QK_BACKLIGHT_OFF", + "label": "Backlight Off", "aliases": [ "BL_OFF" ] @@ -17,6 +19,7 @@ "0x7802": { "group": "backlight", "key": "QK_BACKLIGHT_TOGGLE", + "label": "Toggle Backlight", "aliases": [ "BL_TOGG" ] @@ -24,6 +27,7 @@ "0x7803": { "group": "backlight", "key": "QK_BACKLIGHT_DOWN", + "label": "Backlight Down", "aliases": [ "BL_DOWN" ] @@ -31,6 +35,7 @@ "0x7804": { "group": "backlight", "key": "QK_BACKLIGHT_UP", + "label": "Backlight Up", "aliases": [ "BL_UP" ] @@ -38,6 +43,7 @@ "0x7805": { "group": "backlight", "key": "QK_BACKLIGHT_STEP", + "label": "Backlight Step", "aliases": [ "BL_STEP" ] @@ -45,6 +51,7 @@ "0x7806": { "group": "backlight", "key": "QK_BACKLIGHT_TOGGLE_BREATHING", + "label": "Toggle Breathing", "aliases": [ "BL_BRTG" ] diff --git a/data/constants/keycodes/keycodes_0.0.1_macro.hjson b/data/constants/keycodes/keycodes_0.0.1_macro.hjson index 409853fed9..2d7d83d2e6 100644 --- a/data/constants/keycodes/keycodes_0.0.1_macro.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_macro.hjson @@ -1,9 +1,9 @@ { "keycodes": { - "0x7700": { "group": "macro", "key": "QK_MACRO_0", + "label": "Macro 0", "aliases": [ "MC_0" ] @@ -11,6 +11,7 @@ "0x7701": { "group": "macro", "key": "QK_MACRO_1", + "label": "Macro 1", "aliases": [ "MC_1" ] @@ -18,6 +19,7 @@ "0x7702": { "group": "macro", "key": "QK_MACRO_2", + "label": "Macro 2", "aliases": [ "MC_2" ] @@ -25,6 +27,7 @@ "0x7703": { "group": "macro", "key": "QK_MACRO_3", + "label": "Macro 3", "aliases": [ "MC_3" ] @@ -32,6 +35,7 @@ "0x7704": { "group": "macro", "key": "QK_MACRO_4", + "label": "Macro 4", "aliases": [ "MC_4" ] @@ -39,6 +43,7 @@ "0x7705": { "group": "macro", "key": "QK_MACRO_5", + "label": "Macro 5", "aliases": [ "MC_5" ] @@ -46,6 +51,7 @@ "0x7706": { "group": "macro", "key": "QK_MACRO_6", + "label": "Macro 6", "aliases": [ "MC_6" ] @@ -53,6 +59,7 @@ "0x7707": { "group": "macro", "key": "QK_MACRO_7", + "label": "Macro 7", "aliases": [ "MC_7" ] @@ -60,6 +67,7 @@ "0x7708": { "group": "macro", "key": "QK_MACRO_8", + "label": "Macro 8", "aliases": [ "MC_8" ] @@ -67,6 +75,7 @@ "0x7709": { "group": "macro", "key": "QK_MACRO_9", + "label": "Macro 9", "aliases": [ "MC_9" ] @@ -74,6 +83,7 @@ "0x770A": { "group": "macro", "key": "QK_MACRO_10", + "label": "Macro 10", "aliases": [ "MC_10" ] @@ -81,6 +91,7 @@ "0x770B": { "group": "macro", "key": "QK_MACRO_11", + "label": "Macro 11", "aliases": [ "MC_11" ] @@ -88,6 +99,7 @@ "0x770C": { "group": "macro", "key": "QK_MACRO_12", + "label": "Macro 12", "aliases": [ "MC_12" ] @@ -95,6 +107,7 @@ "0x770D": { "group": "macro", "key": "QK_MACRO_13", + "label": "Macro 13", "aliases": [ "MC_13" ] @@ -102,6 +115,7 @@ "0x770E": { "group": "macro", "key": "QK_MACRO_14", + "label": "Macro 14", "aliases": [ "MC_14" ] @@ -109,6 +123,7 @@ "0x770F": { "group": "macro", "key": "QK_MACRO_15", + "label": "Macro 15", "aliases": [ "MC_15" ] @@ -116,6 +131,7 @@ "0x7710": { "group": "macro", "key": "QK_MACRO_16", + "label": "Macro 16", "aliases": [ "MC_16" ] @@ -123,6 +139,7 @@ "0x7711": { "group": "macro", "key": "QK_MACRO_17", + "label": "Macro 17", "aliases": [ "MC_17" ] @@ -130,6 +147,7 @@ "0x7712": { "group": "macro", "key": "QK_MACRO_18", + "label": "Macro 18", "aliases": [ "MC_18" ] @@ -137,6 +155,7 @@ "0x7713": { "group": "macro", "key": "QK_MACRO_19", + "label": "Macro 19", "aliases": [ "MC_19" ] @@ -144,6 +163,7 @@ "0x7714": { "group": "macro", "key": "QK_MACRO_20", + "label": "Macro 20", "aliases": [ "MC_20" ] @@ -151,6 +171,7 @@ "0x7715": { "group": "macro", "key": "QK_MACRO_21", + "label": "Macro 21", "aliases": [ "MC_21" ] @@ -158,6 +179,7 @@ "0x7716": { "group": "macro", "key": "QK_MACRO_22", + "label": "Macro 22", "aliases": [ "MC_22" ] @@ -165,6 +187,7 @@ "0x7717": { "group": "macro", "key": "QK_MACRO_23", + "label": "Macro 23", "aliases": [ "MC_23" ] @@ -172,6 +195,7 @@ "0x7718": { "group": "macro", "key": "QK_MACRO_24", + "label": "Macro 24", "aliases": [ "MC_24" ] @@ -179,6 +203,7 @@ "0x7719": { "group": "macro", "key": "QK_MACRO_25", + "label": "Macro 25", "aliases": [ "MC_25" ] @@ -186,6 +211,7 @@ "0x771A": { "group": "macro", "key": "QK_MACRO_26", + "label": "Macro 26", "aliases": [ "MC_26" ] @@ -193,6 +219,7 @@ "0x771B": { "group": "macro", "key": "QK_MACRO_27", + "label": "Macro 27", "aliases": [ "MC_27" ] @@ -200,6 +227,7 @@ "0x771C": { "group": "macro", "key": "QK_MACRO_28", + "label": "Macro 28", "aliases": [ "MC_28" ] @@ -207,6 +235,7 @@ "0x771D": { "group": "macro", "key": "QK_MACRO_29", + "label": "Macro 29", "aliases": [ "MC_29" ] @@ -214,6 +243,7 @@ "0x771E": { "group": "macro", "key": "QK_MACRO_30", + "label": "Macro 30", "aliases": [ "MC_30" ] @@ -221,6 +251,7 @@ "0x771F": { "group": "macro", "key": "QK_MACRO_31", + "label": "Macro 31", "aliases": [ "MC_31" ] diff --git a/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson b/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson index 7d031728a6..14d734bdd9 100644 --- a/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_programmable_button.hjson @@ -3,6 +3,7 @@ "0x7440": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_1", + "label": "Button 1", "aliases": [ "PB_1" ] @@ -10,6 +11,7 @@ "0x7441": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_2", + "label": "Button 2", "aliases": [ "PB_2" ] @@ -17,6 +19,7 @@ "0x7442": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_3", + "label": "Button 3", "aliases": [ "PB_3" ] @@ -24,6 +27,7 @@ "0x7443": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_4", + "label": "Button 4", "aliases": [ "PB_4" ] @@ -31,6 +35,7 @@ "0x7444": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_5", + "label": "Button 5", "aliases": [ "PB_5" ] @@ -38,6 +43,7 @@ "0x7445": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_6", + "label": "Button 6", "aliases": [ "PB_6" ] @@ -45,6 +51,7 @@ "0x7446": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_7", + "label": "Button 7", "aliases": [ "PB_7" ] @@ -52,6 +59,7 @@ "0x7447": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_8", + "label": "Button 8", "aliases": [ "PB_8" ] @@ -59,6 +67,7 @@ "0x7448": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_9", + "label": "Button 9", "aliases": [ "PB_9" ] @@ -66,6 +75,7 @@ "0x7449": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_10", + "label": "Button 10", "aliases": [ "PB_10" ] @@ -73,6 +83,7 @@ "0x744A": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_11", + "label": "Button 11", "aliases": [ "PB_11" ] @@ -80,6 +91,7 @@ "0x744B": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_12", + "label": "Button 12", "aliases": [ "PB_12" ] @@ -87,6 +99,7 @@ "0x744C": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_13", + "label": "Button 13", "aliases": [ "PB_13" ] @@ -94,6 +107,7 @@ "0x744D": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_14", + "label": "Button 14", "aliases": [ "PB_14" ] @@ -101,6 +115,7 @@ "0x744E": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_15", + "label": "Button 15", "aliases": [ "PB_15" ] @@ -108,6 +123,7 @@ "0x744F": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_16", + "label": "Button 16", "aliases": [ "PB_16" ] @@ -115,6 +131,7 @@ "0x7450": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_17", + "label": "Button 17", "aliases": [ "PB_17" ] @@ -122,6 +139,7 @@ "0x7451": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_18", + "label": "Button 18", "aliases": [ "PB_18" ] @@ -129,6 +147,7 @@ "0x7452": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_19", + "label": "Button 19", "aliases": [ "PB_19" ] @@ -136,6 +155,7 @@ "0x7453": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_20", + "label": "Button 20", "aliases": [ "PB_20" ] @@ -143,6 +163,7 @@ "0x7454": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_21", + "label": "Button 21", "aliases": [ "PB_21" ] @@ -150,6 +171,7 @@ "0x7455": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_22", + "label": "Button 22", "aliases": [ "PB_22" ] @@ -157,6 +179,7 @@ "0x7456": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_23", + "label": "Button 23", "aliases": [ "PB_23" ] @@ -164,6 +187,7 @@ "0x7457": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_24", + "label": "Button 24", "aliases": [ "PB_24" ] @@ -171,6 +195,7 @@ "0x7458": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_25", + "label": "Button 25", "aliases": [ "PB_25" ] @@ -178,6 +203,7 @@ "0x7459": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_26", + "label": "Button 26", "aliases": [ "PB_26" ] @@ -185,6 +211,7 @@ "0x745A": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_27", + "label": "Button 27", "aliases": [ "PB_27" ] @@ -192,6 +219,7 @@ "0x745B": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_28", + "label": "Button 28", "aliases": [ "PB_28" ] @@ -199,6 +227,7 @@ "0x745C": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_29", + "label": "Button 29", "aliases": [ "PB_29" ] @@ -206,6 +235,7 @@ "0x745D": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_30", + "label": "Button 30", "aliases": [ "PB_30" ] @@ -213,6 +243,7 @@ "0x745E": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_31", + "label": "Button 31", "aliases": [ "PB_31" ] @@ -220,6 +251,7 @@ "0x745F": { "group": "programmable_button", "key": "QK_PROGRAMMABLE_BUTTON_32", + "label": "Button 32", "aliases": [ "PB_32" ] diff --git a/data/constants/keycodes/keycodes_0.0.1_quantum.hjson b/data/constants/keycodes/keycodes_0.0.1_quantum.hjson index a623bd678d..f6c646d367 100644 --- a/data/constants/keycodes/keycodes_0.0.1_quantum.hjson +++ b/data/constants/keycodes/keycodes_0.0.1_quantum.hjson @@ -3,6 +3,7 @@ "0x7C00": { "group": "quantum", "key": "QK_BOOTLOADER", + "label": "Bootloader", "aliases": [ "QK_BOOT" ] @@ -10,6 +11,7 @@ "0x7C01": { "group": "quantum", "key": "QK_REBOOT", + "label": "Reboot", "aliases": [ "QK_RBT" ] @@ -17,6 +19,7 @@ "0x7C02": { "group": "quantum", "key": "QK_DEBUG_TOGGLE", + "label": "Toggle Debug", "aliases": [ "DB_TOGG" ] @@ -24,18 +27,21 @@ "0x7C03": { "group": "quantum", "key": "QK_CLEAR_EEPROM", + "label": "Clear EEPROM", "aliases": [ "EE_CLR" ] }, "0x7C04": { "group": "quantum", - "key": "QK_MAKE" + "key": "QK_MAKE", + "label": "Make" }, "0x7C10": { "group": "quantum", "key": "QK_AUTO_SHIFT_DOWN", + "label": "Auto Shift Down", "aliases": [ "AS_DOWN" ] @@ -43,6 +49,7 @@ "0x7C11": { "group": "quantum", "key": "QK_AUTO_SHIFT_UP", + "label": "Auto Shift Up", "aliases": [ "AS_UP" ] @@ -50,6 +57,7 @@ "0x7C12": { "group": "quantum", "key": "QK_AUTO_SHIFT_REPORT", + "label": "Auto Shift Report", "aliases": [ "AS_RPT" ] @@ -57,6 +65,7 @@ "0x7C13": { "group": "quantum", "key": "QK_AUTO_SHIFT_ON", + "label": "Auto Shift On", "aliases": [ "AS_ON" ] @@ -64,6 +73,7 @@ "0x7C14": { "group": "quantum", "key": "QK_AUTO_SHIFT_OFF", + "label": "Auto Shift Off", "aliases": [ "AS_OFF" ] @@ -71,6 +81,7 @@ "0x7C15": { "group": "quantum", "key": "QK_AUTO_SHIFT_TOGGLE", + "label": "Toggle Auto Shift", "aliases": [ "AS_TOGG" ] @@ -79,6 +90,7 @@ "0x7C16": { "group": "quantum", "key": "QK_GRAVE_ESCAPE", + "label": "Grave Esc", "aliases": [ "QK_GESC" ] @@ -95,6 +107,7 @@ "0x7C18": { "group": "quantum", "key": "QK_SPACE_CADET_LEFT_CTRL_PARENTHESIS_OPEN", + "label": "LCtl/(", "aliases": [ "SC_LCPO" ] @@ -102,6 +115,7 @@ "0x7C19": { "group": "quantum", "key": "QK_SPACE_CADET_RIGHT_CTRL_PARENTHESIS_CLOSE", + "label": "RCtl/)", "aliases": [ "SC_RCPC" ] @@ -109,6 +123,7 @@ "0x7C1A": { "group": "quantum", "key": "QK_SPACE_CADET_LEFT_SHIFT_PARENTHESIS_OPEN", + "label": "LSft/)", "aliases": [ "SC_LSPO" ] @@ -116,6 +131,7 @@ "0x7C1B": { "group": "quantum", "key": "QK_SPACE_CADET_RIGHT_SHIFT_PARENTHESIS_CLOSE", + "label": "RSft/)", "aliases": [ "SC_RSPC" ] @@ -123,6 +139,7 @@ "0x7C1C": { "group": "quantum", "key": "QK_SPACE_CADET_LEFT_ALT_PARENTHESIS_OPEN", + "label": "LAlt/(", "aliases": [ "SC_LAPO" ] @@ -130,6 +147,7 @@ "0x7C1D": { "group": "quantum", "key": "QK_SPACE_CADET_RIGHT_ALT_PARENTHESIS_CLOSE", + "label": "RAlt/)", "aliases": [ "SC_RAPC" ] @@ -137,6 +155,7 @@ "0x7C1E": { "group": "quantum", "key": "QK_SPACE_CADET_RIGHT_SHIFT_ENTER", + "label": "RSft/Ent", "aliases": [ "SC_SENT" ] @@ -167,6 +186,7 @@ "0x7C30": { "group": "quantum", "key": "QK_UNICODE_MODE_NEXT", + "label": "Unicode Mode Next", "aliases": [ "UC_NEXT" ] @@ -174,6 +194,7 @@ "0x7C31": { "group": "quantum", "key": "QK_UNICODE_MODE_PREVIOUS", + "label": "Unicode Mode Previous", "aliases": [ "UC_PREV" ] @@ -181,6 +202,7 @@ "0x7C32": { "group": "quantum", "key": "QK_UNICODE_MODE_MACOS", + "label": "Unicode Mode macOS", "aliases": [ "UC_MAC" ] @@ -188,6 +210,7 @@ "0x7C33": { "group": "quantum", "key": "QK_UNICODE_MODE_LINUX", + "label": "Unicode Mode Linux", "aliases": [ "UC_LINX" ] @@ -195,6 +218,7 @@ "0x7C34": { "group": "quantum", "key": "QK_UNICODE_MODE_WINDOWS", + "label": "Unicode Mode Windows", "aliases": [ "UC_WIN" ] @@ -202,6 +226,7 @@ "0x7C35": { "group": "quantum", "key": "QK_UNICODE_MODE_BSD", + "label": "Unicode Mode BSD", "aliases": [ "UC_BSD" ] @@ -209,6 +234,7 @@ "0x7C36": { "group": "quantum", "key": "QK_UNICODE_MODE_WINCOMPOSE", + "label": "Unicode Mode WinCompose", "aliases": [ "UC_WINC" ] @@ -216,6 +242,7 @@ "0x7C37": { "group": "quantum", "key": "QK_UNICODE_MODE_EMACS", + "label": "Unicode Mode emacs", "aliases": [ "UC_EMAC" ] @@ -224,6 +251,7 @@ "0x7C40": { "group": "quantum", "key": "QK_HAPTIC_ON", + "label": "Haptic On", "aliases": [ "HF_ON" ] @@ -231,6 +259,7 @@ "0x7C41": { "group": "quantum", "key": "QK_HAPTIC_OFF", + "label": "Haptic Off", "aliases": [ "HF_OFF" ] @@ -238,6 +267,7 @@ "0x7C42": { "group": "quantum", "key": "QK_HAPTIC_TOGGLE", + "label": "Toggle Haptic", "aliases": [ "HF_TOGG" ] @@ -245,6 +275,7 @@ "0x7C43": { "group": "quantum", "key": "QK_HAPTIC_RESET", + "label": "Haptic Reset", "aliases": [ "HF_RST" ] @@ -252,6 +283,7 @@ "0x7C44": { "group": "quantum", "key": "QK_HAPTIC_FEEDBACK_TOGGLE", + "label": "Toggle Haptic Feedback", "aliases": [ "HF_FDBK" ] @@ -259,6 +291,7 @@ "0x7C45": { "group": "quantum", "key": "QK_HAPTIC_BUZZ_TOGGLE", + "label": "Toggle Haptic Buzz", "aliases": [ "HF_BUZZ" ] @@ -266,6 +299,7 @@ "0x7C46": { "group": "quantum", "key": "QK_HAPTIC_MODE_NEXT", + "label": "Haptic Mode Next", "aliases": [ "HF_NEXT" ] @@ -273,6 +307,7 @@ "0x7C47": { "group": "quantum", "key": "QK_HAPTIC_MODE_PREVIOUS", + "label": "Haptic Mode Previous", "aliases": [ "HF_PREV" ] @@ -280,6 +315,7 @@ "0x7C48": { "group": "quantum", "key": "QK_HAPTIC_CONTINUOUS_TOGGLE", + "label": "Toggle Haptic Continuous", "aliases": [ "HF_CONT" ] @@ -287,6 +323,7 @@ "0x7C49": { "group": "quantum", "key": "QK_HAPTIC_CONTINUOUS_UP", + "label": "Haptic Continuous Up", "aliases": [ "HF_CONU" ] @@ -294,6 +331,7 @@ "0x7C4A": { "group": "quantum", "key": "QK_HAPTIC_CONTINUOUS_DOWN", + "label": "Haptic Continuous Down", "aliases": [ "HF_COND" ] @@ -301,6 +339,7 @@ "0x7C4B": { "group": "quantum", "key": "QK_HAPTIC_DWELL_UP", + "label": "Haptic Dwell Up", "aliases": [ "HF_DWLU" ] @@ -308,6 +347,7 @@ "0x7C4C": { "group": "quantum", "key": "QK_HAPTIC_DWELL_DOWN", + "label": "Haptic Dwell Down", "aliases": [ "HF_DWLD" ] @@ -316,6 +356,7 @@ "0x7C50": { "group": "quantum", "key": "QK_COMBO_ON", + "label": "Combo On", "aliases": [ "CM_ON" ] @@ -323,6 +364,7 @@ "0x7C51": { "group": "quantum", "key": "QK_COMBO_OFF", + "label": "Combo Off", "aliases": [ "CM_OFF" ] @@ -330,6 +372,7 @@ "0x7C52": { "group": "quantum", "key": "QK_COMBO_TOGGLE", + "label": "Toggle Combo", "aliases": [ "CM_TOGG" ] @@ -338,6 +381,7 @@ "0x7C53": { "group": "quantum", "key": "QK_DYNAMIC_MACRO_RECORD_START_1", + "label": "Dynamic Macro Record 1", "aliases": [ "DM_REC1" ] @@ -345,6 +389,7 @@ "0x7C54": { "group": "quantum", "key": "QK_DYNAMIC_MACRO_RECORD_START_2", + "label": "Dynamic Macro Record 2", "aliases": [ "DM_REC2" ] @@ -352,6 +397,7 @@ "0x7C55": { "group": "quantum", "key": "QK_DYNAMIC_MACRO_RECORD_STOP", + "label": "Dynamic Macro Stop Recording", "aliases": [ "DM_RSTP" ] @@ -359,6 +405,7 @@ "0x7C56": { "group": "quantum", "key": "QK_DYNAMIC_MACRO_PLAY_1", + "label": "Dynamic Macro Play 1", "aliases": [ "DM_PLY1" ] @@ -366,6 +413,7 @@ "0x7C57": { "group": "quantum", "key": "QK_DYNAMIC_MACRO_PLAY_2", + "label": "Dynamic Macro Play 2", "aliases": [ "DM_PLY2" ] @@ -374,6 +422,7 @@ "0x7C58": { "group": "quantum", "key": "QK_LEADER", + "label": "Leader", "aliases": [ "QK_LEAD" ] @@ -381,12 +430,14 @@ "0x7C59": { "group": "quantum", - "key": "QK_LOCK" + "key": "QK_LOCK", + "label": "Lock" }, "0x7C5A": { "group": "quantum", "key": "QK_ONE_SHOT_ON", + "label": "One Shot On", "aliases": [ "OS_ON" ] @@ -394,6 +445,7 @@ "0x7C5B": { "group": "quantum", "key": "QK_ONE_SHOT_OFF", + "label": "One Shot Off", "aliases": [ "OS_OFF" ] @@ -401,6 +453,7 @@ "0x7C5C": { "group": "quantum", "key": "QK_ONE_SHOT_TOGGLE", + "label": "Toggle One Shot", "aliases": [ "OS_TOGG" ] @@ -409,6 +462,7 @@ "0x7C5D": { "group": "quantum", "key": "QK_KEY_OVERRIDE_TOGGLE", + "label": "Toggle Key Overrides", "aliases": [ "KO_TOGG" ] @@ -416,6 +470,7 @@ "0x7C5E": { "group": "quantum", "key": "QK_KEY_OVERRIDE_ON", + "label": "Key Overrides On", "aliases": [ "KO_ON" ] @@ -423,6 +478,7 @@ "0x7C5F": { "group": "quantum", "key": "QK_KEY_OVERRIDE_OFF", + "label": "Key Overrides Off", "aliases": [ "KO_OFF" ] @@ -431,6 +487,7 @@ "0x7C60": { "group": "quantum", "key": "QK_SECURE_LOCK", + "label": "Lock", "aliases": [ "SE_LOCK" ] @@ -438,6 +495,7 @@ "0x7C61": { "group": "quantum", "key": "QK_SECURE_UNLOCK", + "label": "Unlock", "aliases": [ "SE_UNLK" ] @@ -445,6 +503,7 @@ "0x7C62": { "group": "quantum", "key": "QK_SECURE_TOGGLE", + "label": "Toggle Lock", "aliases": [ "SE_TOGG" ] @@ -452,6 +511,7 @@ "0x7C63": { "group": "quantum", "key": "QK_SECURE_REQUEST", + "label": "Request Unlock", "aliases": [ "SE_REQ" ] @@ -460,6 +520,7 @@ "0x7C70": { "group": "quantum", "key": "QK_DYNAMIC_TAPPING_TERM_PRINT", + "label": "Print Dynamic Tapping Term", "aliases": [ "DT_PRNT" ] @@ -467,6 +528,7 @@ "0x7C71": { "group": "quantum", "key": "QK_DYNAMIC_TAPPING_TERM_UP", + "label": "Dynamic Tapping Term Up", "aliases": [ "DT_UP" ] @@ -474,6 +536,7 @@ "0x7C72": { "group": "quantum", "key": "QK_DYNAMIC_TAPPING_TERM_DOWN", + "label": "Dynamic Tapping Term Down", "aliases": [ "DT_DOWN" ] @@ -482,6 +545,7 @@ "0x7C73": { "group": "quantum", "key": "QK_CAPS_WORD_TOGGLE", + "label": "Toggle Caps Word", "aliases": [ "CW_TOGG" ] @@ -490,6 +554,7 @@ "0x7C74": { "group": "quantum", "key": "QK_AUTOCORRECT_ON", + "label": "Autocorrect On", "aliases": [ "AC_ON" ] @@ -497,6 +562,7 @@ "0x7C75": { "group": "quantum", "key": "QK_AUTOCORRECT_OFF", + "label": "Autocorrect Off", "aliases": [ "AC_OFF" ] @@ -504,6 +570,7 @@ "0x7C76": { "group": "quantum", "key": "QK_AUTOCORRECT_TOGGLE", + "label": "Toggle Autocorrect", "aliases": [ "AC_TOGG" ] diff --git a/data/constants/keycodes/keycodes_0.0.2_basic.hjson b/data/constants/keycodes/keycodes_0.0.2_basic.hjson index d9cefe7e93..0e9338101e 100644 --- a/data/constants/keycodes/keycodes_0.0.2_basic.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_basic.hjson @@ -3,7 +3,7 @@ "0x00C1": { "group": "media", "key": "KC_MISSION_CONTROL", - "label": "Open Mission Control", + "label": "Mission Control", "aliases": [ "KC_MCTL" ] @@ -11,7 +11,7 @@ "0x00C2": { "group": "media", "key": "KC_LAUNCHPAD", - "label": "Open Launchpad", + "label": "Launchpad", "aliases": [ "KC_LPAD" ] diff --git a/data/constants/keycodes/keycodes_0.0.2_kb.hjson b/data/constants/keycodes/keycodes_0.0.2_kb.hjson index 28c4a8e8be..b617671650 100644 --- a/data/constants/keycodes/keycodes_0.0.2_kb.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_kb.hjson @@ -2,131 +2,163 @@ "keycodes": { "0x7E00": { "group": "kb", - "key": "QK_KB_0" + "key": "QK_KB_0", + "label": "Keyboard 0" }, "0x7E01": { "group": "kb", - "key": "QK_KB_1" + "key": "QK_KB_1", + "label": "Keyboard 1" }, "0x7E02": { "group": "kb", - "key": "QK_KB_2" + "key": "QK_KB_2", + "label": "Keyboard 2" }, "0x7E03": { "group": "kb", - "key": "QK_KB_3" + "key": "QK_KB_3", + "label": "Keyboard 3" }, "0x7E04": { "group": "kb", - "key": "QK_KB_4" + "key": "QK_KB_4", + "label": "Keyboard 4" }, "0x7E05": { "group": "kb", - "key": "QK_KB_5" + "key": "QK_KB_5", + "label": "Keyboard 5" }, "0x7E06": { "group": "kb", - "key": "QK_KB_6" + "key": "QK_KB_6", + "label": "Keyboard 6" }, "0x7E07": { "group": "kb", - "key": "QK_KB_7" + "key": "QK_KB_7", + "label": "Keyboard 7" }, "0x7E08": { "group": "kb", - "key": "QK_KB_8" + "key": "QK_KB_8", + "label": "Keyboard 8" }, "0x7E09": { "group": "kb", - "key": "QK_KB_9" + "key": "QK_KB_9", + "label": "Keyboard 9" }, "0x7E0A": { "group": "kb", - "key": "QK_KB_10" + "key": "QK_KB_10", + "label": "Keyboard 10" }, "0x7E0B": { "group": "kb", - "key": "QK_KB_11" + "key": "QK_KB_11", + "label": "Keyboard 11" }, "0x7E0C": { "group": "kb", - "key": "QK_KB_12" + "key": "QK_KB_12", + "label": "Keyboard 12" }, "0x7E0D": { "group": "kb", - "key": "QK_KB_13" + "key": "QK_KB_13", + "label": "Keyboard 13" }, "0x7E0E": { "group": "kb", - "key": "QK_KB_14" + "key": "QK_KB_14", + "label": "Keyboard 14" }, "0x7E0F": { "group": "kb", - "key": "QK_KB_15" + "key": "QK_KB_15", + "label": "Keyboard 15" }, "0x7E10": { "group": "kb", - "key": "QK_KB_16" + "key": "QK_KB_16", + "label": "Keyboard 16" }, "0x7E11": { "group": "kb", - "key": "QK_KB_17" + "key": "QK_KB_17", + "label": "Keyboard 17" }, "0x7E12": { "group": "kb", - "key": "QK_KB_18" + "key": "QK_KB_18", + "label": "Keyboard 18" }, "0x7E13": { "group": "kb", - "key": "QK_KB_19" + "key": "QK_KB_19", + "label": "Keyboard 19" }, "0x7E14": { "group": "kb", - "key": "QK_KB_20" + "key": "QK_KB_20", + "label": "Keyboard 20" }, "0x7E15": { "group": "kb", - "key": "QK_KB_21" + "key": "QK_KB_21", + "label": "Keyboard 21" }, "0x7E16": { "group": "kb", - "key": "QK_KB_22" + "key": "QK_KB_22", + "label": "Keyboard 22" }, "0x7E17": { "group": "kb", - "key": "QK_KB_23" + "key": "QK_KB_23", + "label": "Keyboard 23" }, "0x7E18": { "group": "kb", - "key": "QK_KB_24" + "key": "QK_KB_24", + "label": "Keyboard 24" }, "0x7E19": { "group": "kb", - "key": "QK_KB_25" + "key": "QK_KB_25", + "label": "Keyboard 25" }, "0x7E1A": { "group": "kb", - "key": "QK_KB_26" + "key": "QK_KB_26", + "label": "Keyboard 26" }, "0x7E1B": { "group": "kb", - "key": "QK_KB_27" + "key": "QK_KB_27", + "label": "Keyboard 27" }, "0x7E1C": { "group": "kb", - "key": "QK_KB_28" + "key": "QK_KB_28", + "label": "Keyboard 28" }, "0x7E1D": { "group": "kb", - "key": "QK_KB_29" + "key": "QK_KB_29", + "label": "Keyboard 29" }, "0x7E1E": { "group": "kb", - "key": "QK_KB_30" + "key": "QK_KB_30", + "label": "Keyboard 30" }, "0x7E1F": { "group": "kb", - "key": "QK_KB_31" + "key": "QK_KB_31", + "label": "Keyboard 31" } } } diff --git a/data/constants/keycodes/keycodes_0.0.2_magic.hjson b/data/constants/keycodes/keycodes_0.0.2_magic.hjson index 2fc8ba038d..895ce9819a 100644 --- a/data/constants/keycodes/keycodes_0.0.2_magic.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_magic.hjson @@ -5,6 +5,7 @@ "0x7000": { "group": "magic", "key": "QK_MAGIC_SWAP_CONTROL_CAPS_LOCK", + "label": "Swap LCtl⇄Caps", "aliases": [ "CL_SWAP" ] @@ -12,6 +13,7 @@ "0x7001": { "group": "magic", "key": "QK_MAGIC_UNSWAP_CONTROL_CAPS_LOCK", + "label": "Unswap LCtl⇄Caps", "aliases": [ "CL_NORM" ] @@ -19,6 +21,7 @@ "0x7002": { "group": "magic", "key": "QK_MAGIC_TOGGLE_CONTROL_CAPS_LOCK", + "label": "Toggle LCtl⇄Caps", "aliases": [ "CL_TOGG" ] @@ -26,6 +29,7 @@ "0x7003": { "group": "magic", "key": "QK_MAGIC_CAPS_LOCK_AS_CONTROL_OFF", + "label": "Caps≠LCtl", "aliases": [ "CL_CAPS" ] @@ -33,6 +37,7 @@ "0x7004": { "group": "magic", "key": "QK_MAGIC_CAPS_LOCK_AS_CONTROL_ON", + "label": "Caps=LCtl", "aliases": [ "CL_CTRL" ] @@ -40,6 +45,7 @@ "0x7005": { "group": "magic", "key": "QK_MAGIC_SWAP_LALT_LGUI", + "label": "Swap LAlt⇄LGUI", "aliases": [ "AG_LSWP" ] @@ -47,6 +53,7 @@ "0x7006": { "group": "magic", "key": "QK_MAGIC_UNSWAP_LALT_LGUI", + "label": "Unswap LAlt⇄LGUI", "aliases": [ "AG_LNRM" ] @@ -54,6 +61,7 @@ "0x7007": { "group": "magic", "key": "QK_MAGIC_SWAP_RALT_RGUI", + "label": "Swap RAlt⇄RGUI", "aliases": [ "AG_RSWP" ] @@ -61,6 +69,7 @@ "0x7008": { "group": "magic", "key": "QK_MAGIC_UNSWAP_RALT_RGUI", + "label": "Unswap RAlt⇄RGUI", "aliases": [ "AG_RNRM" ] @@ -68,6 +77,7 @@ "0x7009": { "group": "magic", "key": "QK_MAGIC_GUI_ON", + "label": "GUI On", "aliases": [ "GU_ON" ] @@ -75,6 +85,7 @@ "0x700A": { "group": "magic", "key": "QK_MAGIC_GUI_OFF", + "label": "GUI Off", "aliases": [ "GU_OFF" ] @@ -82,6 +93,7 @@ "0x700B": { "group": "magic", "key": "QK_MAGIC_TOGGLE_GUI", + "label": "Toggle GUI", "aliases": [ "GU_TOGG" ] @@ -89,6 +101,7 @@ "0x700C": { "group": "magic", "key": "QK_MAGIC_SWAP_GRAVE_ESC", + "label": "Swap `⇄Esc", "aliases": [ "GE_SWAP" ] @@ -96,6 +109,7 @@ "0x700D": { "group": "magic", "key": "QK_MAGIC_UNSWAP_GRAVE_ESC", + "label": "Unswap `⇄Esc", "aliases": [ "GE_NORM" ] @@ -103,6 +117,7 @@ "0x700E": { "group": "magic", "key": "QK_MAGIC_SWAP_BACKSLASH_BACKSPACE", + "label": "Swap \\⇄Bspc", "aliases": [ "BS_SWAP" ] @@ -110,6 +125,7 @@ "0x700F": { "group": "magic", "key": "QK_MAGIC_UNSWAP_BACKSLASH_BACKSPACE", + "label": "Unswap \\⇄Bspc", "aliases": [ "BS_NORM" ] @@ -117,6 +133,7 @@ "0x7010": { "group": "magic", "key": "QK_MAGIC_TOGGLE_BACKSLASH_BACKSPACE", + "label": "Toggle \\⇄Bspc", "aliases": [ "BS_TOGG" ] @@ -124,6 +141,7 @@ "0x7011": { "group": "magic", "key": "QK_MAGIC_NKRO_ON", + "label": "NKRO On", "aliases": [ "NK_ON" ] @@ -131,6 +149,7 @@ "0x7012": { "group": "magic", "key": "QK_MAGIC_NKRO_OFF", + "label": "NKRO Off", "aliases": [ "NK_OFF" ] @@ -138,6 +157,7 @@ "0x7013": { "group": "magic", "key": "QK_MAGIC_TOGGLE_NKRO", + "label": "Toggle NKRO", "aliases": [ "NK_TOGG" ] @@ -145,6 +165,7 @@ "0x7014": { "group": "magic", "key": "QK_MAGIC_SWAP_ALT_GUI", + "label": "Swap Alt⇄GUI", "aliases": [ "AG_SWAP" ] @@ -152,6 +173,7 @@ "0x7015": { "group": "magic", "key": "QK_MAGIC_UNSWAP_ALT_GUI", + "label": "Unswap Alt⇄GUI", "aliases": [ "AG_NORM" ] @@ -159,6 +181,7 @@ "0x7016": { "group": "magic", "key": "QK_MAGIC_TOGGLE_ALT_GUI", + "label": "Toggle Alt⇄GUI", "aliases": [ "AG_TOGG" ] @@ -166,6 +189,7 @@ "0x7017": { "group": "magic", "key": "QK_MAGIC_SWAP_LCTL_LGUI", + "label": "Swap LCtl⇄LGUI", "aliases": [ "CG_LSWP" ] @@ -173,6 +197,7 @@ "0x7018": { "group": "magic", "key": "QK_MAGIC_UNSWAP_LCTL_LGUI", + "label": "Unswap LCtl⇄LGUI", "aliases": [ "CG_LNRM" ] @@ -180,6 +205,7 @@ "0x7019": { "group": "magic", "key": "QK_MAGIC_SWAP_RCTL_RGUI", + "label": "Swap RCtl⇄RGUI", "aliases": [ "CG_RSWP" ] @@ -187,6 +213,7 @@ "0x701A": { "group": "magic", "key": "QK_MAGIC_UNSWAP_RCTL_RGUI", + "label": "Unswap RCtl⇄RGUI", "aliases": [ "CG_RNRM" ] @@ -194,6 +221,7 @@ "0x701B": { "group": "magic", "key": "QK_MAGIC_SWAP_CTL_GUI", + "label": "Swap Ctl⇄GUI", "aliases": [ "CG_SWAP" ] @@ -201,6 +229,7 @@ "0x701C": { "group": "magic", "key": "QK_MAGIC_UNSWAP_CTL_GUI", + "label": "Unswap Ctl⇄GUI", "aliases": [ "CG_NORM" ] @@ -208,6 +237,7 @@ "0x701D": { "group": "magic", "key": "QK_MAGIC_TOGGLE_CTL_GUI", + "label": "Toggle Ctl⇄GUI", "aliases": [ "CG_TOGG" ] @@ -215,6 +245,7 @@ "0x701E": { "group": "magic", "key": "QK_MAGIC_EE_HANDS_LEFT", + "label": "EE Hands Left", "aliases": [ "EH_LEFT" ] @@ -222,6 +253,7 @@ "0x701F": { "group": "magic", "key": "QK_MAGIC_EE_HANDS_RIGHT", + "label": "EE Hands Right", "aliases": [ "EH_RGHT" ] @@ -229,6 +261,7 @@ "0x7020": { "group": "magic", "key": "QK_MAGIC_SWAP_ESCAPE_CAPS_LOCK", + "label": "Swap Esc⇄Caps", "aliases": [ "EC_SWAP" ] @@ -236,6 +269,7 @@ "0x7021": { "group": "magic", "key": "QK_MAGIC_UNSWAP_ESCAPE_CAPS_LOCK", + "label": "Unswap Esc⇄Caps", "aliases": [ "EC_NORM" ] @@ -243,6 +277,7 @@ "0x7022": { "group": "magic", "key": "QK_MAGIC_TOGGLE_ESCAPE_CAPS_LOCK", + "label": "Toggle Esc⇄Caps", "aliases": [ "EC_TOGG" ] diff --git a/data/constants/keycodes/keycodes_0.0.2_midi.hjson b/data/constants/keycodes/keycodes_0.0.2_midi.hjson index ddf79be96c..79459fec58 100644 --- a/data/constants/keycodes/keycodes_0.0.2_midi.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_midi.hjson @@ -5,6 +5,7 @@ "0x7100": { "group": "midi", "key": "QK_MIDI_ON", + "label": "MIDI On", "aliases": [ "MI_ON" ] @@ -12,6 +13,7 @@ "0x7101": { "group": "midi", "key": "QK_MIDI_OFF", + "label": "MIDI Off", "aliases": [ "MI_OFF" ] @@ -19,6 +21,7 @@ "0x7102": { "group": "midi", "key": "QK_MIDI_TOGGLE", + "label": "Toggle MIDI", "aliases": [ "MI_TOGG" ] @@ -26,6 +29,7 @@ "0x7103": { "group": "midi", "key": "QK_MIDI_NOTE_C_0", + "label": "C₀", "aliases": [ "MI_C" ] @@ -33,6 +37,7 @@ "0x7104": { "group": "midi", "key": "QK_MIDI_NOTE_C_SHARP_0", + "label": "C♯₀", "aliases": [ "MI_Cs", "MI_Db" @@ -41,6 +46,7 @@ "0x7105": { "group": "midi", "key": "QK_MIDI_NOTE_D_0", + "label": "D₀", "aliases": [ "MI_D" ] @@ -48,6 +54,7 @@ "0x7106": { "group": "midi", "key": "QK_MIDI_NOTE_D_SHARP_0", + "label": "D♯₀", "aliases": [ "MI_Ds", "MI_Eb" @@ -56,6 +63,7 @@ "0x7107": { "group": "midi", "key": "QK_MIDI_NOTE_E_0", + "label": "E₀", "aliases": [ "MI_E" ] @@ -63,6 +71,7 @@ "0x7108": { "group": "midi", "key": "QK_MIDI_NOTE_F_0", + "label": "F₀", "aliases": [ "MI_F" ] @@ -70,6 +79,7 @@ "0x7109": { "group": "midi", "key": "QK_MIDI_NOTE_F_SHARP_0", + "label": "F♯₀", "aliases": [ "MI_Fs", "MI_Gb" @@ -78,6 +88,7 @@ "0x710A": { "group": "midi", "key": "QK_MIDI_NOTE_G_0", + "label": "G₀", "aliases": [ "MI_G" ] @@ -85,6 +96,7 @@ "0x710B": { "group": "midi", "key": "QK_MIDI_NOTE_G_SHARP_0", + "label": "G♯₀", "aliases": [ "MI_Gs", "MI_Ab" @@ -93,6 +105,7 @@ "0x710C": { "group": "midi", "key": "QK_MIDI_NOTE_A_0", + "label": "A₀", "aliases": [ "MI_A" ] @@ -100,6 +113,7 @@ "0x710D": { "group": "midi", "key": "QK_MIDI_NOTE_A_SHARP_0", + "label": "A♯₀", "aliases": [ "MI_As", "MI_Bb" @@ -108,6 +122,7 @@ "0x710E": { "group": "midi", "key": "QK_MIDI_NOTE_B_0", + "label": "B₀", "aliases": [ "MI_B" ] @@ -115,6 +130,7 @@ "0x710F": { "group": "midi", "key": "QK_MIDI_NOTE_C_1", + "label": "C₁", "aliases": [ "MI_C1" ] @@ -122,6 +138,7 @@ "0x7110": { "group": "midi", "key": "QK_MIDI_NOTE_C_SHARP_1", + "label": "C♯₁", "aliases": [ "MI_Cs1", "MI_Db1" @@ -130,6 +147,7 @@ "0x7111": { "group": "midi", "key": "QK_MIDI_NOTE_D_1", + "label": "D₁", "aliases": [ "MI_D1" ] @@ -137,6 +155,7 @@ "0x7112": { "group": "midi", "key": "QK_MIDI_NOTE_D_SHARP_1", + "label": "D♯₁", "aliases": [ "MI_Ds1", "MI_Eb1" @@ -145,6 +164,7 @@ "0x7113": { "group": "midi", "key": "QK_MIDI_NOTE_E_1", + "label": "E₁", "aliases": [ "MI_E1" ] @@ -152,6 +172,7 @@ "0x7114": { "group": "midi", "key": "QK_MIDI_NOTE_F_1", + "label": "F₁", "aliases": [ "MI_F1" ] @@ -159,6 +180,7 @@ "0x7115": { "group": "midi", "key": "QK_MIDI_NOTE_F_SHARP_1", + "label": "F♯₁", "aliases": [ "MI_Fs1", "MI_Gb1" @@ -167,6 +189,7 @@ "0x7116": { "group": "midi", "key": "QK_MIDI_NOTE_G_1", + "label": "G₁", "aliases": [ "MI_G1" ] @@ -174,6 +197,7 @@ "0x7117": { "group": "midi", "key": "QK_MIDI_NOTE_G_SHARP_1", + "label": "G♯₁", "aliases": [ "MI_Gs1", "MI_Ab1" @@ -182,6 +206,7 @@ "0x7118": { "group": "midi", "key": "QK_MIDI_NOTE_A_1", + "label": "A₁", "aliases": [ "MI_A1" ] @@ -189,6 +214,7 @@ "0x7119": { "group": "midi", "key": "QK_MIDI_NOTE_A_SHARP_1", + "label": "A♯₁", "aliases": [ "MI_As1", "MI_Bb1" @@ -197,6 +223,7 @@ "0x711A": { "group": "midi", "key": "QK_MIDI_NOTE_B_1", + "label": "B₁", "aliases": [ "MI_B1" ] @@ -204,6 +231,7 @@ "0x711B": { "group": "midi", "key": "QK_MIDI_NOTE_C_2", + "label": "C₂", "aliases": [ "MI_C2" ] @@ -211,6 +239,7 @@ "0x711C": { "group": "midi", "key": "QK_MIDI_NOTE_C_SHARP_2", + "label": "C♯₂", "aliases": [ "MI_Cs2", "MI_Db2" @@ -219,6 +248,7 @@ "0x711D": { "group": "midi", "key": "QK_MIDI_NOTE_D_2", + "label": "D₂", "aliases": [ "MI_D2" ] @@ -226,6 +256,7 @@ "0x711E": { "group": "midi", "key": "QK_MIDI_NOTE_D_SHARP_2", + "label": "D♯₂", "aliases": [ "MI_Ds2", "MI_Eb2" @@ -234,6 +265,7 @@ "0x711F": { "group": "midi", "key": "QK_MIDI_NOTE_E_2", + "label": "E₂", "aliases": [ "MI_E2" ] @@ -241,6 +273,7 @@ "0x7120": { "group": "midi", "key": "QK_MIDI_NOTE_F_2", + "label": "F₂", "aliases": [ "MI_F2" ] @@ -248,6 +281,7 @@ "0x7121": { "group": "midi", "key": "QK_MIDI_NOTE_F_SHARP_2", + "label": "F♯₂", "aliases": [ "MI_Fs2", "MI_Gb2" @@ -256,6 +290,7 @@ "0x7122": { "group": "midi", "key": "QK_MIDI_NOTE_G_2", + "label": "G₂", "aliases": [ "MI_G2" ] @@ -263,6 +298,7 @@ "0x7123": { "group": "midi", "key": "QK_MIDI_NOTE_G_SHARP_2", + "label": "G♯₂", "aliases": [ "MI_Gs2", "MI_Ab2" @@ -271,6 +307,7 @@ "0x7124": { "group": "midi", "key": "QK_MIDI_NOTE_A_2", + "label": "A₂", "aliases": [ "MI_A2" ] @@ -278,6 +315,7 @@ "0x7125": { "group": "midi", "key": "QK_MIDI_NOTE_A_SHARP_2", + "label": "A♯₂", "aliases": [ "MI_As2", "MI_Bb2" @@ -286,6 +324,7 @@ "0x7126": { "group": "midi", "key": "QK_MIDI_NOTE_B_2", + "label": "B₂", "aliases": [ "MI_B2" ] @@ -293,6 +332,7 @@ "0x7127": { "group": "midi", "key": "QK_MIDI_NOTE_C_3", + "label": "C₃", "aliases": [ "MI_C3" ] @@ -300,6 +340,7 @@ "0x7128": { "group": "midi", "key": "QK_MIDI_NOTE_C_SHARP_3", + "label": "C♯₃", "aliases": [ "MI_Cs3", "MI_Db3" @@ -308,6 +349,7 @@ "0x7129": { "group": "midi", "key": "QK_MIDI_NOTE_D_3", + "label": "D₃", "aliases": [ "MI_D3" ] @@ -315,6 +357,7 @@ "0x712A": { "group": "midi", "key": "QK_MIDI_NOTE_D_SHARP_3", + "label": "D♯₃", "aliases": [ "MI_Ds3", "MI_Eb3" @@ -323,6 +366,7 @@ "0x712B": { "group": "midi", "key": "QK_MIDI_NOTE_E_3", + "label": "E₃", "aliases": [ "MI_E3" ] @@ -330,6 +374,7 @@ "0x712C": { "group": "midi", "key": "QK_MIDI_NOTE_F_3", + "label": "F₃", "aliases": [ "MI_F3" ] @@ -337,6 +382,7 @@ "0x712D": { "group": "midi", "key": "QK_MIDI_NOTE_F_SHARP_3", + "label": "F♯₃", "aliases": [ "MI_Fs3", "MI_Gb3" @@ -345,6 +391,7 @@ "0x712E": { "group": "midi", "key": "QK_MIDI_NOTE_G_3", + "label": "G₃", "aliases": [ "MI_G3" ] @@ -352,6 +399,7 @@ "0x712F": { "group": "midi", "key": "QK_MIDI_NOTE_G_SHARP_3", + "label": "G♯₃", "aliases": [ "MI_Gs3", "MI_Ab3" @@ -360,6 +408,7 @@ "0x7130": { "group": "midi", "key": "QK_MIDI_NOTE_A_3", + "label": "A₃", "aliases": [ "MI_A3" ] @@ -367,6 +416,7 @@ "0x7131": { "group": "midi", "key": "QK_MIDI_NOTE_A_SHARP_3", + "label": "A♯₃", "aliases": [ "MI_As3", "MI_Bb3" @@ -375,6 +425,7 @@ "0x7132": { "group": "midi", "key": "QK_MIDI_NOTE_B_3", + "label": "B₃", "aliases": [ "MI_B3" ] @@ -382,6 +433,7 @@ "0x7133": { "group": "midi", "key": "QK_MIDI_NOTE_C_4", + "label": "C₄", "aliases": [ "MI_C4" ] @@ -389,6 +441,7 @@ "0x7134": { "group": "midi", "key": "QK_MIDI_NOTE_C_SHARP_4", + "label": "C♯₄", "aliases": [ "MI_Cs4", "MI_Db4" @@ -397,6 +450,7 @@ "0x7135": { "group": "midi", "key": "QK_MIDI_NOTE_D_4", + "label": "D₄", "aliases": [ "MI_D4" ] @@ -404,6 +458,7 @@ "0x7136": { "group": "midi", "key": "QK_MIDI_NOTE_D_SHARP_4", + "label": "D♯₄", "aliases": [ "MI_Ds4", "MI_Eb4" @@ -412,6 +467,7 @@ "0x7137": { "group": "midi", "key": "QK_MIDI_NOTE_E_4", + "label": "E₄", "aliases": [ "MI_E4" ] @@ -419,6 +475,7 @@ "0x7138": { "group": "midi", "key": "QK_MIDI_NOTE_F_4", + "label": "F₄", "aliases": [ "MI_F4" ] @@ -426,6 +483,7 @@ "0x7139": { "group": "midi", "key": "QK_MIDI_NOTE_F_SHARP_4", + "label": "F♯₄", "aliases": [ "MI_Fs4", "MI_Gb4" @@ -434,6 +492,7 @@ "0x713A": { "group": "midi", "key": "QK_MIDI_NOTE_G_4", + "label": "G₄", "aliases": [ "MI_G4" ] @@ -441,6 +500,7 @@ "0x713B": { "group": "midi", "key": "QK_MIDI_NOTE_G_SHARP_4", + "label": "G♯₄", "aliases": [ "MI_Gs4", "MI_Ab4" @@ -449,6 +509,7 @@ "0x713C": { "group": "midi", "key": "QK_MIDI_NOTE_A_4", + "label": "A₄", "aliases": [ "MI_A4" ] @@ -456,6 +517,7 @@ "0x713D": { "group": "midi", "key": "QK_MIDI_NOTE_A_SHARP_4", + "label": "A♯₄", "aliases": [ "MI_As4", "MI_Bb4" @@ -464,6 +526,7 @@ "0x713E": { "group": "midi", "key": "QK_MIDI_NOTE_B_4", + "label": "B₄", "aliases": [ "MI_B4" ] @@ -471,6 +534,7 @@ "0x713F": { "group": "midi", "key": "QK_MIDI_NOTE_C_5", + "label": "C₅", "aliases": [ "MI_C5" ] @@ -478,6 +542,7 @@ "0x7140": { "group": "midi", "key": "QK_MIDI_NOTE_C_SHARP_5", + "label": "C♯₅", "aliases": [ "MI_Cs5", "MI_Db5" @@ -486,6 +551,7 @@ "0x7141": { "group": "midi", "key": "QK_MIDI_NOTE_D_5", + "label": "D₅", "aliases": [ "MI_D5" ] @@ -493,6 +559,7 @@ "0x7142": { "group": "midi", "key": "QK_MIDI_NOTE_D_SHARP_5", + "label": "D♯₅", "aliases": [ "MI_Ds5", "MI_Eb5" @@ -501,6 +568,7 @@ "0x7143": { "group": "midi", "key": "QK_MIDI_NOTE_E_5", + "label": "E₅", "aliases": [ "MI_E5" ] @@ -508,6 +576,7 @@ "0x7144": { "group": "midi", "key": "QK_MIDI_NOTE_F_5", + "label": "F₅", "aliases": [ "MI_F5" ] @@ -515,6 +584,7 @@ "0x7145": { "group": "midi", "key": "QK_MIDI_NOTE_F_SHARP_5", + "label": "F♯₅", "aliases": [ "MI_Fs5", "MI_Gb5" @@ -523,6 +593,7 @@ "0x7146": { "group": "midi", "key": "QK_MIDI_NOTE_G_5", + "label": "G₅", "aliases": [ "MI_G5" ] @@ -530,6 +601,7 @@ "0x7147": { "group": "midi", "key": "QK_MIDI_NOTE_G_SHARP_5", + "label": "G♯₅", "aliases": [ "MI_Gs5", "MI_Ab5" @@ -538,6 +610,7 @@ "0x7148": { "group": "midi", "key": "QK_MIDI_NOTE_A_5", + "label": "A₅", "aliases": [ "MI_A5" ] @@ -545,6 +618,7 @@ "0x7149": { "group": "midi", "key": "QK_MIDI_NOTE_A_SHARP_5", + "label": "A♯₅", "aliases": [ "MI_As5", "MI_Bb5" @@ -553,6 +627,7 @@ "0x714A": { "group": "midi", "key": "QK_MIDI_NOTE_B_5", + "label": "B₅", "aliases": [ "MI_B5" ] @@ -560,6 +635,7 @@ "0x714B": { "group": "midi", "key": "QK_MIDI_OCTAVE_N2", + "label": "Octave -2", "aliases": [ "MI_OCN2" ] @@ -567,6 +643,7 @@ "0x714C": { "group": "midi", "key": "QK_MIDI_OCTAVE_N1", + "label": "Octave -1", "aliases": [ "MI_OCN1" ] @@ -574,6 +651,7 @@ "0x714D": { "group": "midi", "key": "QK_MIDI_OCTAVE_0", + "label": "Octave 0", "aliases": [ "MI_OC0" ] @@ -581,6 +659,7 @@ "0x714E": { "group": "midi", "key": "QK_MIDI_OCTAVE_1", + "label": "Octave 1", "aliases": [ "MI_OC1" ] @@ -588,6 +667,7 @@ "0x714F": { "group": "midi", "key": "QK_MIDI_OCTAVE_2", + "label": "Octave 2", "aliases": [ "MI_OC2" ] @@ -595,6 +675,7 @@ "0x7150": { "group": "midi", "key": "QK_MIDI_OCTAVE_3", + "label": "Octave 3", "aliases": [ "MI_OC3" ] @@ -602,6 +683,7 @@ "0x7151": { "group": "midi", "key": "QK_MIDI_OCTAVE_4", + "label": "Octave 4", "aliases": [ "MI_OC4" ] @@ -609,6 +691,7 @@ "0x7152": { "group": "midi", "key": "QK_MIDI_OCTAVE_5", + "label": "Octave 5", "aliases": [ "MI_OC5" ] @@ -616,6 +699,7 @@ "0x7153": { "group": "midi", "key": "QK_MIDI_OCTAVE_6", + "label": "Octave 6", "aliases": [ "MI_OC6" ] @@ -623,6 +707,7 @@ "0x7154": { "group": "midi", "key": "QK_MIDI_OCTAVE_7", + "label": "Octave 7", "aliases": [ "MI_OC7" ] @@ -630,6 +715,7 @@ "0x7155": { "group": "midi", "key": "QK_MIDI_OCTAVE_DOWN", + "label": "Octave Down", "aliases": [ "MI_OCTD" ] @@ -637,6 +723,7 @@ "0x7156": { "group": "midi", "key": "QK_MIDI_OCTAVE_UP", + "label": "Octave Up", "aliases": [ "MI_OCTU" ] @@ -644,6 +731,7 @@ "0x7157": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_N6", + "label": "Transpose -6", "aliases": [ "MI_TRN6" ] @@ -651,6 +739,7 @@ "0x7158": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_N5", + "label": "Transpose -5", "aliases": [ "MI_TRN5" ] @@ -658,6 +747,7 @@ "0x7159": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_N4", + "label": "Transpose -4", "aliases": [ "MI_TRN4" ] @@ -665,6 +755,7 @@ "0x715A": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_N3", + "label": "Transpose -3", "aliases": [ "MI_TRN3" ] @@ -672,6 +763,7 @@ "0x715B": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_N2", + "label": "Transpose -2", "aliases": [ "MI_TRN2" ] @@ -679,6 +771,7 @@ "0x715C": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_N1", + "label": "Transpose -1", "aliases": [ "MI_TRN1" ] @@ -686,6 +779,7 @@ "0x715D": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_0", + "label": "Transpose 0", "aliases": [ "MI_TR0" ] @@ -693,6 +787,7 @@ "0x715E": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_1", + "label": "Transpose +1", "aliases": [ "MI_TR1" ] @@ -700,6 +795,7 @@ "0x715F": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_2", + "label": "Transpose +2", "aliases": [ "MI_TR2" ] @@ -707,6 +803,7 @@ "0x7160": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_3", + "label": "Transpose +3", "aliases": [ "MI_TR3" ] @@ -714,6 +811,7 @@ "0x7161": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_4", + "label": "Transpose +4", "aliases": [ "MI_TR4" ] @@ -721,6 +819,7 @@ "0x7162": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_5", + "label": "Transpose +5", "aliases": [ "MI_TR5" ] @@ -728,6 +827,7 @@ "0x7163": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_6", + "label": "Transpose +6", "aliases": [ "MI_TR6" ] @@ -735,6 +835,7 @@ "0x7164": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_DOWN", + "label": "Transpose Down", "aliases": [ "MI_TRSD" ] @@ -742,6 +843,7 @@ "0x7165": { "group": "midi", "key": "QK_MIDI_TRANSPOSE_UP", + "label": "Transpose Up", "aliases": [ "MI_TRSU" ] @@ -749,6 +851,7 @@ "0x7166": { "group": "midi", "key": "QK_MIDI_VELOCITY_0", + "label": "Velocity 0", "aliases": [ "MI_VL0" ] @@ -756,6 +859,7 @@ "0x7167": { "group": "midi", "key": "QK_MIDI_VELOCITY_1", + "label": "Velocity 1", "aliases": [ "MI_VL1" ] @@ -763,6 +867,7 @@ "0x7168": { "group": "midi", "key": "QK_MIDI_VELOCITY_2", + "label": "Velocity 2", "aliases": [ "MI_VL2" ] @@ -770,6 +875,7 @@ "0x7169": { "group": "midi", "key": "QK_MIDI_VELOCITY_3", + "label": "Velocity 3", "aliases": [ "MI_VL3" ] @@ -777,6 +883,7 @@ "0x716A": { "group": "midi", "key": "QK_MIDI_VELOCITY_4", + "label": "Velocity 4", "aliases": [ "MI_VL4" ] @@ -784,6 +891,7 @@ "0x716B": { "group": "midi", "key": "QK_MIDI_VELOCITY_5", + "label": "Velocity 5", "aliases": [ "MI_VL5" ] @@ -791,6 +899,7 @@ "0x716C": { "group": "midi", "key": "QK_MIDI_VELOCITY_6", + "label": "Velocity 6", "aliases": [ "MI_VL6" ] @@ -798,6 +907,7 @@ "0x716D": { "group": "midi", "key": "QK_MIDI_VELOCITY_7", + "label": "Velocity 7", "aliases": [ "MI_VL7" ] @@ -805,6 +915,7 @@ "0x716E": { "group": "midi", "key": "QK_MIDI_VELOCITY_8", + "label": "Velocity 8", "aliases": [ "MI_VL8" ] @@ -812,6 +923,7 @@ "0x716F": { "group": "midi", "key": "QK_MIDI_VELOCITY_9", + "label": "Velocity 9", "aliases": [ "MI_VL9" ] @@ -819,6 +931,7 @@ "0x7170": { "group": "midi", "key": "QK_MIDI_VELOCITY_10", + "label": "Velocity 10", "aliases": [ "MI_VL10" ] @@ -826,6 +939,7 @@ "0x7171": { "group": "midi", "key": "QK_MIDI_VELOCITY_DOWN", + "label": "Velocity Down", "aliases": [ "MI_VELD" ] @@ -833,6 +947,7 @@ "0x7172": { "group": "midi", "key": "QK_MIDI_VELOCITY_UP", + "label": "Velocity Up", "aliases": [ "MI_VELU" ] @@ -840,6 +955,7 @@ "0x7173": { "group": "midi", "key": "QK_MIDI_CHANNEL_1", + "label": "Channel 1", "aliases": [ "MI_CH1" ] @@ -847,6 +963,7 @@ "0x7174": { "group": "midi", "key": "QK_MIDI_CHANNEL_2", + "label": "Channel 2", "aliases": [ "MI_CH2" ] @@ -854,6 +971,7 @@ "0x7175": { "group": "midi", "key": "QK_MIDI_CHANNEL_3", + "label": "Channel 3", "aliases": [ "MI_CH3" ] @@ -861,6 +979,7 @@ "0x7176": { "group": "midi", "key": "QK_MIDI_CHANNEL_4", + "label": "Channel 4", "aliases": [ "MI_CH4" ] @@ -868,6 +987,7 @@ "0x7177": { "group": "midi", "key": "QK_MIDI_CHANNEL_5", + "label": "Channel 5", "aliases": [ "MI_CH5" ] @@ -875,6 +995,7 @@ "0x7178": { "group": "midi", "key": "QK_MIDI_CHANNEL_6", + "label": "Channel 6", "aliases": [ "MI_CH6" ] @@ -882,6 +1003,7 @@ "0x7179": { "group": "midi", "key": "QK_MIDI_CHANNEL_7", + "label": "Channel 7", "aliases": [ "MI_CH7" ] @@ -889,6 +1011,7 @@ "0x717A": { "group": "midi", "key": "QK_MIDI_CHANNEL_8", + "label": "Channel 8", "aliases": [ "MI_CH8" ] @@ -896,6 +1019,7 @@ "0x717B": { "group": "midi", "key": "QK_MIDI_CHANNEL_9", + "label": "Channel 9", "aliases": [ "MI_CH9" ] @@ -903,6 +1027,7 @@ "0x717C": { "group": "midi", "key": "QK_MIDI_CHANNEL_10", + "label": "Channel 10", "aliases": [ "MI_CH10" ] @@ -910,6 +1035,7 @@ "0x717D": { "group": "midi", "key": "QK_MIDI_CHANNEL_11", + "label": "Channel 11", "aliases": [ "MI_CH11" ] @@ -917,6 +1043,7 @@ "0x717E": { "group": "midi", "key": "QK_MIDI_CHANNEL_12", + "label": "Channel 12", "aliases": [ "MI_CH12" ] @@ -924,6 +1051,7 @@ "0x717F": { "group": "midi", "key": "QK_MIDI_CHANNEL_13", + "label": "Channel 13", "aliases": [ "MI_CH13" ] @@ -931,6 +1059,7 @@ "0x7180": { "group": "midi", "key": "QK_MIDI_CHANNEL_14", + "label": "Channel 14", "aliases": [ "MI_CH14" ] @@ -938,6 +1067,7 @@ "0x7181": { "group": "midi", "key": "QK_MIDI_CHANNEL_15", + "label": "Channel 15", "aliases": [ "MI_CH15" ] @@ -945,6 +1075,7 @@ "0x7182": { "group": "midi", "key": "QK_MIDI_CHANNEL_16", + "label": "Channel 16", "aliases": [ "MI_CH16" ] @@ -952,6 +1083,7 @@ "0x7183": { "group": "midi", "key": "QK_MIDI_CHANNEL_DOWN", + "label": "Channel Down", "aliases": [ "MI_CHND" ] @@ -959,6 +1091,7 @@ "0x7184": { "group": "midi", "key": "QK_MIDI_CHANNEL_UP", + "label": "Channel Up", "aliases": [ "MI_CHNU" ] @@ -966,6 +1099,7 @@ "0x7185": { "group": "midi", "key": "QK_MIDI_ALL_NOTES_OFF", + "label": "All Notes Off", "aliases": [ "MI_AOFF" ] @@ -973,6 +1107,7 @@ "0x7186": { "group": "midi", "key": "QK_MIDI_SUSTAIN", + "label": "Sustain", "aliases": [ "MI_SUST" ] @@ -980,6 +1115,7 @@ "0x7187": { "group": "midi", "key": "QK_MIDI_PORTAMENTO", + "label": "Portamento", "aliases": [ "MI_PORT" ] @@ -987,6 +1123,7 @@ "0x7188": { "group": "midi", "key": "QK_MIDI_SOSTENUTO", + "label": "Sostenuto", "aliases": [ "MI_SOST" ] @@ -994,6 +1131,7 @@ "0x7189": { "group": "midi", "key": "QK_MIDI_SOFT", + "label": "Soft Pedal", "aliases": [ "MI_SOFT" ] @@ -1001,6 +1139,7 @@ "0x718A": { "group": "midi", "key": "QK_MIDI_LEGATO", + "label": "Legato", "aliases": [ "MI_LEG" ] @@ -1008,6 +1147,7 @@ "0x718B": { "group": "midi", "key": "QK_MIDI_MODULATION", + "label": "Modulation", "aliases": [ "MI_MOD" ] @@ -1015,6 +1155,7 @@ "0x718C": { "group": "midi", "key": "QK_MIDI_MODULATION_SPEED_DOWN", + "label": "Modulation Speed Down", "aliases": [ "MI_MODD" ] @@ -1022,6 +1163,7 @@ "0x718D": { "group": "midi", "key": "QK_MIDI_MODULATION_SPEED_UP", + "label": "Modulation Speed Up", "aliases": [ "MI_MODU" ] @@ -1029,6 +1171,7 @@ "0x718E": { "group": "midi", "key": "QK_MIDI_PITCH_BEND_DOWN", + "label": "Pitch Bend Down", "aliases": [ "MI_BNDD" ] @@ -1036,6 +1179,7 @@ "0x718F": { "group": "midi", "key": "QK_MIDI_PITCH_BEND_UP", + "label": "Pitch Bend Up", "aliases": [ "MI_BNDU" ] diff --git a/data/constants/keycodes/keycodes_0.0.2_quantum.hjson b/data/constants/keycodes/keycodes_0.0.2_quantum.hjson index 960afa4e51..8bedec7d6c 100644 --- a/data/constants/keycodes/keycodes_0.0.2_quantum.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_quantum.hjson @@ -3,6 +3,7 @@ "0x7C77": { "group": "quantum", "key": "QK_TRI_LAYER_LOWER", + "label": "Lower", "aliases": [ "TL_LOWR" ] @@ -10,6 +11,7 @@ "0x7C78": { "group": "quantum", "key": "QK_TRI_LAYER_UPPER", + "label": "Upper", "aliases": [ "TL_UPPR" ] diff --git a/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson b/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson index 445a2c9328..ef07ce9e09 100644 --- a/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_sequencer.hjson @@ -5,6 +5,7 @@ "0x7200": { "group": "sequencer", "key": "QK_SEQUENCER_ON", + "label": "Sequencer On", "aliases": [ "SQ_ON" ] @@ -12,6 +13,7 @@ "0x7201": { "group": "sequencer", "key": "QK_SEQUENCER_OFF", + "label": "Sequencer Off", "aliases": [ "SQ_OFF" ] @@ -19,6 +21,7 @@ "0x7202": { "group": "sequencer", "key": "QK_SEQUENCER_TOGGLE", + "label": "Toggle Sequencer", "aliases": [ "SQ_TOGG" ] @@ -26,6 +29,7 @@ "0x7203": { "group": "sequencer", "key": "QK_SEQUENCER_TEMPO_DOWN", + "label": "Tempo Down", "aliases": [ "SQ_TMPD" ] @@ -33,6 +37,7 @@ "0x7204": { "group": "sequencer", "key": "QK_SEQUENCER_TEMPO_UP", + "label": "Tempo Up", "aliases": [ "SQ_TMPU" ] @@ -40,6 +45,7 @@ "0x7205": { "group": "sequencer", "key": "QK_SEQUENCER_RESOLUTION_DOWN", + "label": "Resolution Down", "aliases": [ "SQ_RESD" ] @@ -47,6 +53,7 @@ "0x7206": { "group": "sequencer", "key": "QK_SEQUENCER_RESOLUTION_UP", + "label": "Resolution Up", "aliases": [ "SQ_RESU" ] @@ -54,6 +61,7 @@ "0x7207": { "group": "sequencer", "key": "QK_SEQUENCER_STEPS_ALL", + "label": "All Steps", "aliases": [ "SQ_SALL" ] @@ -61,6 +69,7 @@ "0x7208": { "group": "sequencer", "key": "QK_SEQUENCER_STEPS_CLEAR", + "label": "Clear Steps", "aliases": [ "SQ_SCLR" ] diff --git a/data/constants/keycodes/keycodes_0.0.2_swap_hands.hjson b/data/constants/keycodes/keycodes_0.0.2_swap_hands.hjson index ddaa2c76b9..4b67c7a128 100644 --- a/data/constants/keycodes/keycodes_0.0.2_swap_hands.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_swap_hands.hjson @@ -3,6 +3,7 @@ "0x56F0": { "group": "swap_hands", "key": "QK_SWAP_HANDS_TOGGLE", + "label": "Toggle Swap Hands", "aliases": [ "SH_TOGG" ] @@ -10,6 +11,7 @@ "0x56F1": { "group": "swap_hands", "key": "QK_SWAP_HANDS_TAP_TOGGLE", + "label": "Swap Hands Tap Toggle", "aliases": [ "SH_TT" ] @@ -17,6 +19,7 @@ "0x56F2": { "group": "swap_hands", "key": "QK_SWAP_HANDS_MOMENTARY_ON", + "label": "Swap Hands Momentary On", "aliases": [ "SH_MON" ] @@ -24,6 +27,7 @@ "0x56F3": { "group": "swap_hands", "key": "QK_SWAP_HANDS_MOMENTARY_OFF", + "label": "Swap Hands Momentary Off", "aliases": [ "SH_MOFF" ] @@ -31,6 +35,7 @@ "0x56F4": { "group": "swap_hands", "key": "QK_SWAP_HANDS_OFF", + "label": "Unswap Hands", "aliases": [ "SH_OFF" ] @@ -38,6 +43,7 @@ "0x56F5": { "group": "swap_hands", "key": "QK_SWAP_HANDS_ON", + "label": "Swap Hands", "aliases": [ "SH_ON" ] @@ -45,6 +51,7 @@ "0x56F6": { "group": "swap_hands", "key": "QK_SWAP_HANDS_ONE_SHOT", + "label": "Swap Hands One Shot", "aliases": [ "SH_OS" ] diff --git a/data/constants/keycodes/keycodes_0.0.2_user.hjson b/data/constants/keycodes/keycodes_0.0.2_user.hjson index a30e8e8eed..cfc5a538ee 100644 --- a/data/constants/keycodes/keycodes_0.0.2_user.hjson +++ b/data/constants/keycodes/keycodes_0.0.2_user.hjson @@ -2,131 +2,163 @@ "keycodes": { "0x7E40": { "group": "user", - "key": "QK_USER_0" + "key": "QK_USER_0", + "label": "User 0" }, "0x7E41": { "group": "user", - "key": "QK_USER_1" + "key": "QK_USER_1", + "label": "User 1" }, "0x7E42": { "group": "user", - "key": "QK_USER_2" + "key": "QK_USER_2", + "label": "User 2" }, "0x7E43": { "group": "user", - "key": "QK_USER_3" + "key": "QK_USER_3", + "label": "User 3" }, "0x7E44": { "group": "user", - "key": "QK_USER_4" + "key": "QK_USER_4", + "label": "User 4" }, "0x7E45": { "group": "user", - "key": "QK_USER_5" + "key": "QK_USER_5", + "label": "User 5" }, "0x7E46": { "group": "user", - "key": "QK_USER_6" + "key": "QK_USER_6", + "label": "User 6" }, "0x7E47": { "group": "user", - "key": "QK_USER_7" + "key": "QK_USER_7", + "label": "User 7" }, "0x7E48": { "group": "user", - "key": "QK_USER_8" + "key": "QK_USER_8", + "label": "User 8" }, "0x7E49": { "group": "user", - "key": "QK_USER_9" + "key": "QK_USER_9", + "label": "User 9" }, "0x7E4A": { "group": "user", - "key": "QK_USER_10" + "key": "QK_USER_10", + "label": "User 10" }, "0x7E4B": { "group": "user", - "key": "QK_USER_11" + "key": "QK_USER_11", + "label": "User 11" }, "0x7E4C": { "group": "user", - "key": "QK_USER_12" + "key": "QK_USER_12", + "label": "User 12" }, "0x7E4D": { "group": "user", - "key": "QK_USER_13" + "key": "QK_USER_13", + "label": "User 13" }, "0x7E4E": { "group": "user", - "key": "QK_USER_14" + "key": "QK_USER_14", + "label": "User 14" }, "0x7E4F": { "group": "user", - "key": "QK_USER_15" + "key": "QK_USER_15", + "label": "User 15" }, "0x7E50": { "group": "user", - "key": "QK_USER_16" + "key": "QK_USER_16", + "label": "User 16" }, "0x7E51": { "group": "user", - "key": "QK_USER_17" + "key": "QK_USER_17", + "label": "User 17" }, "0x7E52": { "group": "user", - "key": "QK_USER_18" + "key": "QK_USER_18", + "label": "User 18" }, "0x7E53": { "group": "user", - "key": "QK_USER_19" + "key": "QK_USER_19", + "label": "User 19" }, "0x7E54": { "group": "user", - "key": "QK_USER_20" + "key": "QK_USER_20", + "label": "User 20" }, "0x7E55": { "group": "user", - "key": "QK_USER_21" + "key": "QK_USER_21", + "label": "User 21" }, "0x7E56": { "group": "user", - "key": "QK_USER_22" + "key": "QK_USER_22", + "label": "User 22" }, "0x7E57": { "group": "user", - "key": "QK_USER_23" + "key": "QK_USER_23", + "label": "User 23" }, "0x7E58": { "group": "user", - "key": "QK_USER_24" + "key": "QK_USER_24", + "label": "User 24" }, "0x7E59": { "group": "user", - "key": "QK_USER_25" + "key": "QK_USER_25", + "label": "User 25" }, "0x7E5A": { "group": "user", - "key": "QK_USER_26" + "key": "QK_USER_26", + "label": "User 26" }, "0x7E5B": { "group": "user", - "key": "QK_USER_27" + "key": "QK_USER_27", + "label": "User 27" }, "0x7E5C": { "group": "user", - "key": "QK_USER_28" + "key": "QK_USER_28", + "label": "User 28" }, "0x7E5D": { "group": "user", - "key": "QK_USER_29" + "key": "QK_USER_29", + "label": "User 29" }, "0x7E5E": { "group": "user", - "key": "QK_USER_30" + "key": "QK_USER_30", + "label": "User 30" }, "0x7E5F": { "group": "user", - "key": "QK_USER_31" + "key": "QK_USER_31", + "label": "User 31" } } } diff --git a/data/constants/keycodes/keycodes_0.0.3_quantum.hjson b/data/constants/keycodes/keycodes_0.0.3_quantum.hjson index 23a3c9b06d..e591677504 100644 --- a/data/constants/keycodes/keycodes_0.0.3_quantum.hjson +++ b/data/constants/keycodes/keycodes_0.0.3_quantum.hjson @@ -3,6 +3,7 @@ "0x7C79": { "group": "quantum", "key": "QK_REPEAT_KEY", + "label": "Repeat", "aliases": [ "QK_REP" ] @@ -10,6 +11,7 @@ "0x7C7A": { "group": "quantum", "key": "QK_ALT_REPEAT_KEY", + "label": "Repeat Alternate", "aliases": [ "QK_AREP" ] diff --git a/data/constants/keycodes/keycodes_0.0.4_lighting.hjson b/data/constants/keycodes/keycodes_0.0.4_lighting.hjson index b341c664bd..479020666a 100644 --- a/data/constants/keycodes/keycodes_0.0.4_lighting.hjson +++ b/data/constants/keycodes/keycodes_0.0.4_lighting.hjson @@ -3,6 +3,7 @@ "0x7810": { "group": "led_matrix", "key": "QK_LED_MATRIX_ON", + "label": "LED Matrix On", "aliases": [ "LM_ON" ] @@ -10,6 +11,7 @@ "0x7811": { "group": "led_matrix", "key": "QK_LED_MATRIX_OFF", + "label": "LED Matrix Off", "aliases": [ "LM_OFF" ] @@ -17,6 +19,7 @@ "0x7812": { "group": "led_matrix", "key": "QK_LED_MATRIX_TOGGLE", + "label": "Toggle LED Matrix", "aliases": [ "LM_TOGG" ] @@ -24,6 +27,7 @@ "0x7813": { "group": "led_matrix", "key": "QK_LED_MATRIX_MODE_NEXT", + "label": "LED Matrix Next", "aliases": [ "LM_NEXT" ] @@ -31,6 +35,7 @@ "0x7814": { "group": "led_matrix", "key": "QK_LED_MATRIX_MODE_PREVIOUS", + "label": "LED Matrix Previous", "aliases": [ "LM_PREV" ] @@ -38,6 +43,7 @@ "0x7815": { "group": "led_matrix", "key": "QK_LED_MATRIX_BRIGHTNESS_UP", + "label": "LED Matrix Brightness Up", "aliases": [ "LM_BRIU" ] @@ -45,6 +51,7 @@ "0x7816": { "group": "led_matrix", "key": "QK_LED_MATRIX_BRIGHTNESS_DOWN", + "label": "LED Matrix Brightness Down", "aliases": [ "LM_BRID" ] @@ -52,6 +59,7 @@ "0x7817": { "group": "led_matrix", "key": "QK_LED_MATRIX_SPEED_UP", + "label": "LED Matrix Speed Up", "aliases": [ "LM_SPDU" ] @@ -59,6 +67,7 @@ "0x7818": { "group": "led_matrix", "key": "QK_LED_MATRIX_SPEED_DOWN", + "label": "LED Matrix Speed Down", "aliases": [ "LM_SPDD" ] @@ -67,6 +76,7 @@ "0x7820": { "group": "underglow", "key": "QK_UNDERGLOW_TOGGLE", + "label": "Toggle RGB Underglow", "aliases": [ "UG_TOGG" ] @@ -74,6 +84,7 @@ "0x7821": { "group": "underglow", "key": "QK_UNDERGLOW_MODE_NEXT", + "label": "RGB Underglow Next", "aliases": [ "!reset!", "UG_NEXT" @@ -82,6 +93,7 @@ "0x7822": { "group": "underglow", "key": "QK_UNDERGLOW_MODE_PREVIOUS", + "label": "RGB Underglow Previous", "aliases": [ "!reset!", "UG_PREV" @@ -90,6 +102,7 @@ "0x7823": { "group": "underglow", "key": "QK_UNDERGLOW_HUE_UP", + "label": "RGB Underglow Hue Up", "aliases": [ "UG_HUEU" ] @@ -97,6 +110,7 @@ "0x7824": { "group": "underglow", "key": "QK_UNDERGLOW_HUE_DOWN", + "label": "RGB Underglow Hue Down", "aliases": [ "UG_HUED" ] @@ -104,6 +118,7 @@ "0x7825": { "group": "underglow", "key": "QK_UNDERGLOW_SATURATION_UP", + "label": "RGB Underglow Saturation Up", "aliases": [ "UG_SATU" ] @@ -111,6 +126,7 @@ "0x7826": { "group": "underglow", "key": "QK_UNDERGLOW_SATURATION_DOWN", + "label": "RGB Underglow Saturation Down", "aliases": [ "UG_SATD" ] @@ -118,6 +134,7 @@ "0x7827": { "group": "underglow", "key": "QK_UNDERGLOW_VALUE_UP", + "label": "RGB Underglow Value Up", "aliases": [ "UG_VALU" ] @@ -125,6 +142,7 @@ "0x7828": { "group": "underglow", "key": "QK_UNDERGLOW_VALUE_DOWN", + "label": "RGB Underglow Value Down", "aliases": [ "UG_VALD" ] @@ -132,6 +150,7 @@ "0x7829": { "group": "underglow", "key": "QK_UNDERGLOW_SPEED_UP", + "label": "RGB Underglow Speed Up", "aliases": [ "UG_SPDU" ] @@ -139,6 +158,7 @@ "0x782A": { "group": "underglow", "key": "QK_UNDERGLOW_SPEED_DOWN", + "label": "RGB Underglow Speed Down", "aliases": [ "UG_SPDD" ] @@ -147,6 +167,7 @@ "0x7840": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_ON", + "label": "RGB Matrix On", "aliases": [ "RM_ON" ] @@ -154,6 +175,7 @@ "0x7841": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_OFF", + "label": "RGB Matrix Off" "aliases": [ "RM_OFF" ] @@ -161,6 +183,7 @@ "0x7842": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_TOGGLE", + "label": "Toggle RGB Matrix", "aliases": [ "RM_TOGG" ] @@ -168,6 +191,7 @@ "0x7843": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_MODE_NEXT", + "label": "RGB Matrix Next", "aliases": [ "RM_NEXT" ] @@ -175,6 +199,7 @@ "0x7844": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_MODE_PREVIOUS", + "label": "RGB Matrix Previous", "aliases": [ "RM_PREV" ] @@ -182,6 +207,7 @@ "0x7845": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_HUE_UP", + "label": "RGB Matrix Hue Up", "aliases": [ "RM_HUEU" ] @@ -189,6 +215,7 @@ "0x7846": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_HUE_DOWN", + "label": "RGB Matrix Hue Down", "aliases": [ "RM_HUED" ] @@ -196,6 +223,7 @@ "0x7847": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_SATURATION_UP", + "label": "RGB Matrix Saturation Up", "aliases": [ "RM_SATU" ] @@ -203,6 +231,7 @@ "0x7848": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_SATURATION_DOWN", + "label": "RGB Matrix Saturation Down", "aliases": [ "RM_SATD" ] @@ -210,6 +239,7 @@ "0x7849": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_VALUE_UP", + "label": "RGB Matrix Value Up", "aliases": [ "RM_VALU" ] @@ -217,6 +247,7 @@ "0x784A": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_VALUE_DOWN", + "label": "RGB Matrix Value Down", "aliases": [ "RM_VALD" ] @@ -224,6 +255,7 @@ "0x784B": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_SPEED_UP", + "label": "RGB Matrix Speed Up", "aliases": [ "RM_SPDU" ] @@ -231,6 +263,7 @@ "0x784C": { "group": "rgb_matrix", "key": "QK_RGB_MATRIX_SPEED_DOWN", + "label": "RGB Matrix Speed Down", "aliases": [ "RM_SPDD" ] diff --git a/data/constants/keycodes/keycodes_0.0.5_basic.hjson b/data/constants/keycodes/keycodes_0.0.5_basic.hjson index 79b6bf6596..40ce772acf 100644 --- a/data/constants/keycodes/keycodes_0.0.5_basic.hjson +++ b/data/constants/keycodes/keycodes_0.0.5_basic.hjson @@ -3,7 +3,7 @@ "0x00CD": { "group": "mouse", "key": "QK_MOUSE_CURSOR_UP", - "label": "Mouse cursor up", + "label": "Mouse Up", "aliases": [ "!reset!", "MS_UP" @@ -12,7 +12,7 @@ "0x00CE": { "group": "mouse", "key": "QK_MOUSE_CURSOR_DOWN", - "label": "Mouse cursor down", + "label": "Mouse Down", "aliases": [ "!reset!", "MS_DOWN" @@ -21,7 +21,7 @@ "0x00CF": { "group": "mouse", "key": "QK_MOUSE_CURSOR_LEFT", - "label": "Mouse cursor left", + "label": "Mouse Left", "aliases": [ "!reset!", "MS_LEFT" @@ -30,7 +30,7 @@ "0x00D0": { "group": "mouse", "key": "QK_MOUSE_CURSOR_RIGHT", - "label": "Mouse cursor right", + "label": "Mouse Right", "aliases": [ "!reset!", "MS_RGHT" @@ -39,7 +39,7 @@ "0x00D1": { "group": "mouse", "key": "QK_MOUSE_BUTTON_1", - "label": "Mouse button 1", + "label": "Mouse Button 1", "aliases": [ "!reset!", "MS_BTN1" @@ -48,7 +48,7 @@ "0x00D2": { "group": "mouse", "key": "QK_MOUSE_BUTTON_2", - "label": "Mouse button 2", + "label": "Mouse Button 2", "aliases": [ "!reset!", "MS_BTN2" @@ -57,7 +57,7 @@ "0x00D3": { "group": "mouse", "key": "QK_MOUSE_BUTTON_3", - "label": "Mouse button 3", + "label": "Mouse Button 3", "aliases": [ "!reset!", "MS_BTN3" @@ -66,7 +66,7 @@ "0x00D4": { "group": "mouse", "key": "QK_MOUSE_BUTTON_4", - "label": "Mouse button 4", + "label": "Mouse Button 4", "aliases": [ "!reset!", "MS_BTN4" @@ -75,7 +75,7 @@ "0x00D5": { "group": "mouse", "key": "QK_MOUSE_BUTTON_5", - "label": "Mouse button 5", + "label": "Mouse Button 5", "aliases": [ "!reset!", "MS_BTN5" @@ -84,7 +84,7 @@ "0x00D6": { "group": "mouse", "key": "QK_MOUSE_BUTTON_6", - "label": "Mouse button 6", + "label": "Mouse Button 6", "aliases": [ "!reset!", "MS_BTN6" @@ -93,7 +93,7 @@ "0x00D7": { "group": "mouse", "key": "QK_MOUSE_BUTTON_7", - "label": "Mouse button 7", + "label": "Mouse Button 7", "aliases": [ "!reset!", "MS_BTN7" @@ -102,7 +102,7 @@ "0x00D8": { "group": "mouse", "key": "QK_MOUSE_BUTTON_8", - "label": "Mouse button 8", + "label": "Mouse Button 8", "aliases": [ "!reset!", "MS_BTN8" @@ -111,7 +111,7 @@ "0x00D9": { "group": "mouse", "key": "QK_MOUSE_WHEEL_UP", - "label": "Mouse wheel up", + "label": "Mouse Wheel Up", "aliases": [ "!reset!", "MS_WHLU" @@ -120,7 +120,7 @@ "0x00DA": { "group": "mouse", "key": "QK_MOUSE_WHEEL_DOWN", - "label": "Mouse wheel down", + "label": "Mouse Wheel Down", "aliases": [ "!reset!", "MS_WHLD" @@ -129,7 +129,7 @@ "0x00DB": { "group": "mouse", "key": "QK_MOUSE_WHEEL_LEFT", - "label": "Mouse wheel left", + "label": "Mouse Wheel Left", "aliases": [ "!reset!", "MS_WHLL" @@ -138,7 +138,7 @@ "0x00DC": { "group": "mouse", "key": "QK_MOUSE_WHEEL_RIGHT", - "label": "Mouse wheel right", + "label": "Mouse Wheel Right", "aliases": [ "!reset!", "MS_WHLR" @@ -147,7 +147,7 @@ "0x00DD": { "group": "mouse", "key": "QK_MOUSE_ACCELERATION_0", - "label": "Set mouse acceleration to 0", + "label": "Acceleration 0", "aliases": [ "!reset!", "MS_ACL0" @@ -156,7 +156,7 @@ "0x00DE": { "group": "mouse", "key": "QK_MOUSE_ACCELERATION_1", - "label": "Set mouse acceleration to 1", + "label": "Acceleration 1", "aliases": [ "!reset!", "MS_ACL1" @@ -165,7 +165,7 @@ "0x00DF": { "group": "mouse", "key": "QK_MOUSE_ACCELERATION_2", - "label": "Set mouse acceleration to 2", + "label": "Acceleration 2", "aliases": [ "!reset!", "MS_ACL2" diff --git a/data/constants/keycodes/keycodes_0.0.6_connection.hjson b/data/constants/keycodes/keycodes_0.0.6_connection.hjson index 9be1106825..e5fab9bd5a 100644 --- a/data/constants/keycodes/keycodes_0.0.6_connection.hjson +++ b/data/constants/keycodes/keycodes_0.0.6_connection.hjson @@ -8,6 +8,7 @@ "0x7780": { "group": "connection", "key": "QK_OUTPUT_AUTO", + "label": "Output Auto", "aliases": [ "OU_AUTO" ] @@ -15,6 +16,7 @@ "0x7781": { "group": "connection", "key": "QK_OUTPUT_NEXT", + "label": "Next Output", "aliases": [ "OU_NEXT" ] @@ -22,6 +24,7 @@ "0x7782": { "group": "connection", "key": "QK_OUTPUT_PREV", + "label": "Previous Output", "aliases": [ "OU_PREV" ] @@ -29,6 +32,7 @@ "0x7783": { "group": "connection", "key": "QK_OUTPUT_NONE", + "label": "None", "aliases": [ "OU_NONE" ] @@ -36,6 +40,7 @@ "0x7784": { "group": "connection", "key": "QK_OUTPUT_USB", + "label": "USB", "aliases": [ "OU_USB" ] @@ -43,6 +48,7 @@ "0x7785": { "group": "connection", "key": "QK_OUTPUT_2P4GHZ", + "label": "2.4GHz", "aliases": [ "OU_2P4G" ] @@ -50,6 +56,7 @@ "0x7786": { "group": "connection", "key": "QK_OUTPUT_BLUETOOTH", + "label": "Bluetooth", "aliases": [ "OU_BT" ] @@ -58,6 +65,7 @@ "0x7790": { "group": "connection", "key": "QK_BLUETOOTH_PROFILE_NEXT", + "label": "Bluetooth Profile Next", "aliases": [ "BT_NEXT" ] @@ -65,6 +73,7 @@ "0x7791": { "group": "connection", "key": "QK_BLUETOOTH_PROFILE_PREV", + "label": "Bluetooth Profile Previous", "aliases": [ "BT_PREV" ] @@ -72,6 +81,7 @@ "0x7792": { "group": "connection", "key": "QK_BLUETOOTH_UNPAIR", + "label": "Unpair", "aliases": [ "BT_UNPR" ] @@ -79,6 +89,7 @@ "0x7793": { "group": "connection", "key": "QK_BLUETOOTH_PROFILE1", + "label": "Bluetooth Profile 1", "aliases": [ "BT_PRF1" ] @@ -86,6 +97,7 @@ "0x7794": { "group": "connection", "key": "QK_BLUETOOTH_PROFILE2", + "label": "Bluetooth Profile 2", "aliases": [ "BT_PRF2" ] @@ -93,6 +105,7 @@ "0x7795": { "group": "connection", "key": "QK_BLUETOOTH_PROFILE3", + "label": "Bluetooth Profile 3", "aliases": [ "BT_PRF3" ] @@ -100,6 +113,7 @@ "0x7796": { "group": "connection", "key": "QK_BLUETOOTH_PROFILE4", + "label": "Bluetooth Profile 4", "aliases": [ "BT_PRF4" ] @@ -107,6 +121,7 @@ "0x7797": { "group": "connection", "key": "QK_BLUETOOTH_PROFILE5", + "label": "Bluetooth Profile 5", "aliases": [ "BT_PRF5" ] diff --git a/data/constants/keycodes/keycodes_0.0.6_quantum.hjson b/data/constants/keycodes/keycodes_0.0.6_quantum.hjson index be3285f9e4..1dead0588b 100644 --- a/data/constants/keycodes/keycodes_0.0.6_quantum.hjson +++ b/data/constants/keycodes/keycodes_0.0.6_quantum.hjson @@ -6,6 +6,7 @@ "0x7C7B": { "group": "quantum", "key": "QK_LAYER_LOCK", + "label": "Layer Lock", "aliases": [ "QK_LLCK" ] From 70c36c6c97094bae79e7766dabdb75f0cd91ff85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20A=2E=20Volpato?= Date: Sun, 11 Jan 2026 14:47:23 -0300 Subject: [PATCH 190/255] First support for KKC Wily (#25852) --- keyboards/wily/info.json | 20 ++++ keyboards/wily/readme.md | 26 +++++ keyboards/wily/wily_h625/keyboard.json | 90 ++++++++++++++++ .../wily/wily_h625/keymaps/default/keymap.c | 34 ++++++ keyboards/wily/wily_h700/keyboard.json | 89 ++++++++++++++++ .../wily/wily_h700/keymaps/default/keymap.c | 34 ++++++ keyboards/wily/wily_s/config.h | 21 ++++ keyboards/wily/wily_s/halconf.h | 21 ++++ keyboards/wily/wily_s/keyboard.json | 100 ++++++++++++++++++ .../wily/wily_s/keymaps/default/keymap.c | 34 ++++++ keyboards/wily/wily_s/mcuconf.h | 22 ++++ 11 files changed, 491 insertions(+) create mode 100644 keyboards/wily/info.json create mode 100644 keyboards/wily/readme.md create mode 100644 keyboards/wily/wily_h625/keyboard.json create mode 100644 keyboards/wily/wily_h625/keymaps/default/keymap.c create mode 100644 keyboards/wily/wily_h700/keyboard.json create mode 100644 keyboards/wily/wily_h700/keymaps/default/keymap.c create mode 100644 keyboards/wily/wily_s/config.h create mode 100644 keyboards/wily/wily_s/halconf.h create mode 100644 keyboards/wily/wily_s/keyboard.json create mode 100644 keyboards/wily/wily_s/keymaps/default/keymap.c create mode 100644 keyboards/wily/wily_s/mcuconf.h diff --git a/keyboards/wily/info.json b/keyboards/wily/info.json new file mode 100644 index 0000000000..9bba2de910 --- /dev/null +++ b/keyboards/wily/info.json @@ -0,0 +1,20 @@ +{ + "manufacturer": "KKC", + "maintainer": "Gondolindrim", + "usb": { + "vid": "0x5750", + "device_version": "0.0.1" + }, + "features": { + "bootmagic": true, + "mousekey": true, + "extrakey": true, + "nkro": true + }, + "build": { + "lto": true + }, + "diode_direction": "COL2ROW", + "processor": "STM32F411", + "bootloader": "stm32-dfu" +} diff --git a/keyboards/wily/readme.md b/keyboards/wily/readme.md new file mode 100644 index 0000000000..e70ac11a16 --- /dev/null +++ b/keyboards/wily/readme.md @@ -0,0 +1,26 @@ +# KKC Wily + +The Wily is a 65% keyboard by Keyote Key Company. + +* Keyboard Maintainer: [gondolindrim](https://github.com/gondolindrim) +* Hardware Supported: three PCB variants (solderable, hotswap with Tsangan bottom row, hotswap with default bottom row), both based on STM32F072 +* Hardware Availability: not yet available for purchase as of november 2025. + +Make example for this keyboard (after setting up your build environment): + + make wily/:default + +Where `` can be either `wily_s` , `wily_h625` or `wily_h700`. Flashing example for this keyboard: + + make wily/: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 and hold the button on the back of the PCB for five seconds +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available + diff --git a/keyboards/wily/wily_h625/keyboard.json b/keyboards/wily/wily_h625/keyboard.json new file mode 100644 index 0000000000..915c3459aa --- /dev/null +++ b/keyboards/wily/wily_h625/keyboard.json @@ -0,0 +1,90 @@ +{ + "keyboard_name": "Keyote Wily-H625", + "usb": { + "pid": "0x5053", + "device_version": "0.0.1" + }, + "matrix_pins": { + "cols": ["A15", "B10", "C15", "C14", "C13", "B1", "B0", "A7", "A6", "A5", "B14", "B13", "B12", "A4", "A3"], + "rows": ["A0", "B8", "B3", "B5", "B9"] + }, + "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":[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}, + {"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.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,8], "x":10, "y":4}, + {"matrix":[4,9], "x":11, "y":4}, + {"matrix":[4,10], "x":12, "y":4}, + {"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/wily/wily_h625/keymaps/default/keymap.c b/keyboards/wily/wily_h625/keymaps/default/keymap.c new file mode 100644 index 0000000000..36c2eda7b9 --- /dev/null +++ b/keyboards/wily/wily_h625/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2025 Gondolindrim + * + * 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 LT1GUI LT(1, KC_RGUI) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( /* Base */ + 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_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_END , + 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_INS , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, LT1GUI , KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT +), +[1] = LAYOUT( + 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_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/wily/wily_h700/keyboard.json b/keyboards/wily/wily_h700/keyboard.json new file mode 100644 index 0000000000..1dfe3d24a4 --- /dev/null +++ b/keyboards/wily/wily_h700/keyboard.json @@ -0,0 +1,89 @@ +{ + "keyboard_name": "Keyote Wily-H700", + "usb": { + "pid": "0x5052", + "device_version": "0.0.1" + }, + "matrix_pins": { + "cols": ["A15", "B10", "C15", "C14", "C13", "B1", "B0", "A7", "A6", "A5", "B14", "B13", "B12", "A4", "A3"], + "rows": ["A0", "B8", "B3", "B5", "B9"] + }, + "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":[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}, + {"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, "y":4}, + {"matrix":[4,2], "x":2.5 , "y":4, "w":1.5}, + {"matrix":[4,6], "x":4, "y":4, "w":7}, + {"matrix":[4,9], "x":11, "y":4}, + {"matrix":[4,10], "x":12, "y":4}, + {"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/wily/wily_h700/keymaps/default/keymap.c b/keyboards/wily/wily_h700/keymaps/default/keymap.c new file mode 100644 index 0000000000..0929de8fa3 --- /dev/null +++ b/keyboards/wily/wily_h700/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2025 Gondolindrim + * + * 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 LT1GUI LT(1, KC_RGUI) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( /* Base */ + 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_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_END , + 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_INS , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , LT1GUI , KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT +), +[1] = LAYOUT( + 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_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/wily/wily_s/config.h b/keyboards/wily/wily_s/config.h new file mode 100644 index 0000000000..580f722f15 --- /dev/null +++ b/keyboards/wily/wily_s/config.h @@ -0,0 +1,21 @@ +/* Copyright 2025 Gondolindrim + +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 4 +#define BACKLIGHT_PWM_PAL_MOPDE 2 diff --git a/keyboards/wily/wily_s/halconf.h b/keyboards/wily/wily_s/halconf.h new file mode 100644 index 0000000000..6c98f31f9b --- /dev/null +++ b/keyboards/wily/wily_s/halconf.h @@ -0,0 +1,21 @@ +/* Copyright 2025 Gondolindrim + * + * 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_PWM TRUE + +#include_next diff --git a/keyboards/wily/wily_s/keyboard.json b/keyboards/wily/wily_s/keyboard.json new file mode 100644 index 0000000000..a6df026ef3 --- /dev/null +++ b/keyboards/wily/wily_s/keyboard.json @@ -0,0 +1,100 @@ +{ + "keyboard_name": "Keyote Wily-S", + "usb": { + "pid": "0x5051", + "device_version": "0.0.1" + }, + "matrix_pins": { + "cols": ["A15", "B10", "C15", "C14", "C13", "B1", "B0", "A7", "A6", "A5", "B14", "B13", "B12", "A4", "A3"], + "rows": ["A0", "B8", "B3", "B5", "B9"] + }, + "features": { + "backlight": true + }, + "backlight": { + "pin": "B4", + "levels": 20, + "as_caps_lock": true + }, + "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":[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}, + {"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":[4,11], "x":12.75, "y":2}, + {"matrix":[2,12], "x":13.75, "y":2, "w":1.25}, + {"matrix":[2,13], "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,8], "x":10, "y":4}, + {"matrix":[4,9], "x":11, "y":4}, + {"matrix":[4,10], "x":12, "y":4}, + {"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/wily/wily_s/keymaps/default/keymap.c b/keyboards/wily/wily_s/keymaps/default/keymap.c new file mode 100644 index 0000000000..22c0188c30 --- /dev/null +++ b/keyboards/wily/wily_s/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* Copyright 2025 Gondolindrim + * + * 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 LT1GUI LT(1, KC_RGUI) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[0] = LAYOUT( /* Base */ + 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_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_NUHS, KC_ENT , KC_END , + 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_INS , + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC , KC_RALT, LT1GUI , KC_RGUI, KC_LEFT, KC_DOWN, KC_RGHT +), +[1] = LAYOUT( + 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_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/wily/wily_s/mcuconf.h b/keyboards/wily/wily_s/mcuconf.h new file mode 100644 index 0000000000..a9bbcfc62c --- /dev/null +++ b/keyboards/wily/wily_s/mcuconf.h @@ -0,0 +1,22 @@ +/* Copyright 2025 Gondolindrim + * + * 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_PWM_USE_TIM3 +#define STM32_PWM_USE_TIM3 TRUE From e391793f7317ca406989cea30dcd43ebbdb1f0e8 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 11 Jan 2026 18:15:14 +0000 Subject: [PATCH 191/255] Remove binary symbols from keymaps (#25947) --- keyboards/keycapsss/kimiko/rev1/keymaps/default/keymap.c | 4 ++-- keyboards/keycapsss/kimiko/rev2/keymaps/default/keymap.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/keycapsss/kimiko/rev1/keymaps/default/keymap.c b/keyboards/keycapsss/kimiko/rev1/keymaps/default/keymap.c index c61fdfc03a..5834ef9c26 100644 --- a/keyboards/keycapsss/kimiko/rev1/keymaps/default/keymap.c +++ b/keyboards/keycapsss/kimiko/rev1/keymaps/default/keymap.c @@ -53,7 +53,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), /* LOWER * ,-------------------------------------------. ,-----------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | * |--------+------+------+------+------+------| |------+------+------+------+------+------| * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | * |--------+------+------+------+------+------| |------+------+------+------+------+------| @@ -78,7 +78,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |------+------+------+------+------+------| |------+------+------+------+------+------| * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | * |------+------+------+------+------+------| |------+------+------+------+------+------| - * | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | | + * | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | | * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------| * | F7 | F8 | F9 | F10 | F11 | F12 |-------| |-------| + | - | = | [ | ] | \ | * `-----------------------------------------/ / \ \-----------------------------------------' diff --git a/keyboards/keycapsss/kimiko/rev2/keymaps/default/keymap.c b/keyboards/keycapsss/kimiko/rev2/keymaps/default/keymap.c index a569beed22..4050a038d3 100644 --- a/keyboards/keycapsss/kimiko/rev2/keymaps/default/keymap.c +++ b/keyboards/keycapsss/kimiko/rev2/keymaps/default/keymap.c @@ -50,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* LOWER * QWERTY * ,--------------------------------------------. ,----------------------------------------------. - * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | + * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 | * |---------+------+------+------+------+------| |------+------+------+------+------+-----------| * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 | * |---------+------+------+------+------+------| |------+------+------+------+------+-----------| @@ -74,7 +74,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * |---------+------+------+------+------+------| |------+------+------+------+------+-----------| * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | | * |---------+------+------+------+------+------| |------+------+------+------+------+-----------| - * | F1 | F2 | F3 | F4 | F5 | F6 |---------------. ,---------------| Left | Down | Up |Right | ; | | + * | F1 | F2 | F3 | F4 | F5 | F6 |---------------. ,---------------| Left | Down | Up |Right | ; | | * |---------+------+------+------+------+------| [ | [ | | [ | [ |------+------+------+------+------+-----------| * | F7 | F8 | F9 | F10 | F11 | F12 |------|--------| |-------|-------| + | - | = | [ | ] | \ | * `--------------------------------------------| / \ |----------------------------------------------' From adbd077b159f38ca9859f4b084af763733e7baa3 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 11 Jan 2026 20:37:34 +0000 Subject: [PATCH 192/255] Minor alignment of CLI formatting commands (#25946) --- lib/python/qmk/cli/format/c.py | 10 ++-------- lib/python/qmk/cli/format/python.py | 2 +- lib/python/qmk/path.py | 6 ++++++ 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lib/python/qmk/cli/format/c.py b/lib/python/qmk/cli/format/c.py index 65818155b0..4f1c0e2b2c 100644 --- a/lib/python/qmk/cli/format/c.py +++ b/lib/python/qmk/cli/format/c.py @@ -6,7 +6,7 @@ from subprocess import CalledProcessError, DEVNULL, Popen, PIPE from argcomplete.completers import FilesCompleter from milc import cli -from qmk.path import normpath +from qmk.path import normpath, is_relative_to from qmk.c_parse import c_source_files c_file_suffixes = ('c', 'h', 'cpp', 'hpp') @@ -14,12 +14,6 @@ core_dirs = ('drivers', 'quantum', 'tests', 'tmk_core', 'platforms', 'modules') ignored = ('tmk_core/protocol/usb_hid', 'platforms/chibios/boards') -def is_relative_to(file, other): - """Provide similar behavior to PurePath.is_relative_to in Python > 3.9 - """ - return str(normpath(file).resolve()).startswith(str(normpath(other).resolve())) - - def find_clang_format(): """Returns the path to clang-format. """ @@ -105,7 +99,7 @@ def format_c(cli): if not files: cli.log.error('No C files in filelist: %s', ', '.join(map(str, cli.args.files))) - exit(0) + return False if cli.args.all_files: cli.log.warning('Filenames passed with -a, only formatting: %s', ','.join(map(str, files))) diff --git a/lib/python/qmk/cli/format/python.py b/lib/python/qmk/cli/format/python.py index e7b545109f..a455ce50c2 100755 --- a/lib/python/qmk/cli/format/python.py +++ b/lib/python/qmk/cli/format/python.py @@ -47,7 +47,7 @@ def format_python(cli): if not files: cli.log.error('No Python files in filelist: %s', ', '.join(map(str, cli.args.files))) - exit(0) + return False if cli.args.all_files: cli.log.warning('Filenames passed with -a, only formatting: %s', ','.join(map(str, files))) diff --git a/lib/python/qmk/path.py b/lib/python/qmk/path.py index 1739689adf..542ba26089 100644 --- a/lib/python/qmk/path.py +++ b/lib/python/qmk/path.py @@ -144,6 +144,12 @@ def normpath(path): return Path(os.environ['ORIG_CWD']) / path +def is_relative_to(file, other): + """Provide normpath behavior to Path.is_relative_to + """ + return normpath(file).is_relative_to(normpath(other)) + + def unix_style_path(path): """Converts a Windows-style path with drive letter to a Unix path. From 7d66c11f378acd46e03506ff573a61912a1eda5e Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 13 Jan 2026 05:48:59 +0000 Subject: [PATCH 193/255] Lint default dynamic keymap layer count (#25948) --- data/mappings/info_defaults.hjson | 3 +++ data/schemas/keyboard.jsonschema | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/data/mappings/info_defaults.hjson b/data/mappings/info_defaults.hjson index d1f1579c55..fd59dacac0 100644 --- a/data/mappings/info_defaults.hjson +++ b/data/mappings/info_defaults.hjson @@ -11,6 +11,9 @@ "on_state": 1 }, "debounce": 5, + "dynamic_keymap": { + "layer_count": 4 + }, "features": { "command": false, "console": false diff --git a/data/schemas/keyboard.jsonschema b/data/schemas/keyboard.jsonschema index 57aeb3de22..d3a26923b5 100644 --- a/data/schemas/keyboard.jsonschema +++ b/data/schemas/keyboard.jsonschema @@ -333,6 +333,17 @@ } } }, + "dynamic_keymap": { + "type": "object", + "properties": { + "eeprom_max_addr": {"$ref": "./definitions.jsonschema#/unsigned_int"}, + "layer_count": { + "type": "integer", + "minimum": 1, + "maximum": 32 + } + } + }, "eeprom": { "properties": { "driver": {"type": "string"}, From 87a4c6ab25c82c1c517c2117b3cb9550aae4a094 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Thu, 15 Jan 2026 06:19:17 +0800 Subject: [PATCH 194/255] Copilot instructions for pull requests (#25857) Co-authored-by: Nick Brassel --- .github/copilot-instructions.md | 430 ++++++++++++++++++++++++++++++++ 1 file changed, 430 insertions(+) create mode 100644 .github/copilot-instructions.md diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000000..ee51380bd5 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,430 @@ +--- +applyTo: "**" +excludeAgent: + - "coding-agent" +--- +# GitHub Copilot Instructions for QMK Pull Request Review +This document provides automated review guidance based on the [QMK PR Checklist](https://docs.qmk.fm/pr_checklist) and it is intended only for use by GitHub Copilot code-review agent during pull request reviews. + +## General PR Requirements + +### Branch and Submission Standards +- **Source Branch Policy**: Verify PR is NOT submitted from submitter's own `master` branch + - Flag if submitter is using their own `master` branch as source + - Suggest using feature branches instead for cleaner fork management +- **Target Branch Policy**: + - **New keyboard additions** → `master` branch (new folders under `keyboards/`) + - **All other changes** → `develop` branch: + - Keyboard updates, refactors, or moves + - Core code changes + - Data-driven configuration migrations + - Any modifications to existing keyboards +- **PR Scope**: PRs should contain the smallest set of modifications for a single change + - Flag PRs that modify multiple keyboards simultaneously + - Suggest splitting large PRs into focused, incremental changes +- **Merge Conflicts**: Check for unresolved merge conflicts + +### File Naming and Structure +- **Lowercase Requirement**: All new directories and filenames must be lowercase + - Exception: Upstream sources with original uppercase (LUFA, ChibiOS) + - Exception: Core files with valid justification + - **Reject**: Board designer preference for uppercase is NOT valid justification + +### License Headers +- **Required**: Valid license headers on all `*.c` and `*.h` files +- **Recommended**: GPL2/GPL3 for consistency +- **Format**: Check for proper GPL2+ header or SPDX identifier + ```c + // Copyright 2024 Your Name (@yourgithub) + // SPDX-License-Identifier: GPL-2.0-or-later + ``` +- **Exception**: Simple assignment-only `rules.mk` files don't need headers +- **Flag**: Missing or ambiguous license headers (blocks merge) + +### QMK Best Practices +- **Include Guards**: Use `#pragma once` instead of `#ifndef` guards in headers +- **Abstractions Required**: No low-level GPIO/I2C/SPI functions + - Must use QMK abstractions (flag direct hardware access) +- **Timing Functions**: + - Use `wait_ms()` instead of `_delay_ms()` + - Remove `#include ` + - Use `timer_read()`, `timer_read32()` from `timer.h` +- **New Abstractions**: If proposing new abstraction, suggest: + 1. Prototype in own keyboard first + 2. Discuss with QMK Collaborators on Discord + 3. Refactor as separate core change + 4. Remove the keyboard-specific implementation from board + +--- + +## Keymap PR Reviews + +**Scope**: These rules apply to files within `keyboards/*/keymaps/*` subdirectories. + +### Note on Personal Keymaps +- **Policy Change**: Personal keymap submissions no longer accepted +- **Permitted**: Vendor-specific keymaps only + - Naming convention: `default_${vendor}` (e.g., `default_clueboard`) + - Can be more feature-rich than stock `default` keymaps + +### Keymap Code Standards +- **Includes**: `#include QMK_KEYBOARD_H` preferred over specific board files +- **Enums**: Prefer layer enums to `#define`s +- **Custom Keycodes**: First entry must be `QK_USER` +- **Formatting**: Check spacing alignment on commas and keycodes (spaces, not tabs) +- **VIA**: Keymaps should NOT enable VIA + - VIA keymaps belong in [VIA QMK Userspace](https://github.com/the-via/qmk_userspace_via) + +--- + +## Keyboard PR Reviews + +**Scope**: These rules apply to keyboard-level files in `keyboards/*` directories, excluding files within the `keymaps/` subdirectories. This includes: +- `info.json` or `keyboard.json` (keyboard root or variant level) +- `readme.md` (keyboard level) +- `rules.mk` (keyboard level) +- `config.h` (keyboard level, not keymap level) +- `.c` and `.h` files +- Hardware configuration files (`halconf.h`, `mcuconf.h`, `chconf.h`) + +### Branch Targeting +- **New Keyboards**: Target `master` branch + - New additions to `keyboards/` folder submit to `master` +- **Keyboard Moves**: Must target `develop` branch + - Check `data/mappings/keyboard_aliases.hjson` is updated for moves +- **Keyboard Updates/Refactors**: Must target `develop` to reduce merge conflicts +- **Data Driven Migration**: Must target `develop` + +### info.json and keyboard.json Requirements +- **Data-Driven Configuration**: Encourage maximum use of `info.json` and `keyboard.json` schema features +- **Schema Validation**: All `info.json` and `keyboard.json` files must validate against `data/schemas/keyboard.jsonschema` + - Use QMK CLI: `qmk lint -kb ` to validate + - Schema defines required fields, data types, and valid values + - Check for schema validation errors before submitting PR +- **Mandatory Elements**: + - Valid URL + - Valid maintainer + - Valid USB VID/PID and device version + - Displays correctly in Configurator (Ctrl+Shift+I to preview) + - `layout` definitions include matrix positions + - Standard layout definitions where applicable + - Community Layout macro names when applicable + - Microcontroller and bootloader specified + - Diode direction (if not using direct pins) +- **Layout Naming**: + - Single layout: Use `LAYOUT` or community layout name + - Multiple layouts: Include `LAYOUT_all` + alternate names + - Prefer community layout names (e.g., `LAYOUT_tkl_ansi`, `LAYOUT_ortho_4x4`) +- **Configuration in info.json or keyboard.json** (when applicable): + - Direct pin configuration + - Backlight, Split keyboard, Encoder, Bootmagic configs + - LED Indicator, RGB Light, RGB Matrix configs +- **Format**: Run `qmk format-json -i` before submitting + +### USB VID/PID Uniqueness +VID+PID combination must be unique across all keyboards. Individual VID or PID values can be reused with different partners. +**Validation Steps:** +1. Extract VID and PID from keyboard.json/info.json in the PR +2. Search for existing usage: `grep -r '"vid".*"0xVVVV"' keyboards/ --include="*.json" | grep -l '"pid".*"0xPPPP"'` +3. If results found: Check if BOTH VID AND PID match in same file + - Both match = **COLLISION** - request different PID + - Only one matches = **OK** - different keyboards can share individual values +4. For keyboard variants/revisions under same keyboard folder: + - Different PID recommended for functionally different variants + - Same PID acceptable if revisions only differ in hardware routing/pin assignments +**Quick Reference:** +- Same PID + Different VID = Valid +- Same VID + Different PID = Valid +- Same VID + Same PID = Invalid +**Review Response:** +For collision: +``` +VID+PID collision: 0xVVVV:0xPPPP already used by keyboards/[path]/file.json ++Please assign a different PID. VID can remain the same. +``` +For uniqueness confirmed: +``` +VID+PID validation: 0xVVVV:0xPPPP is unique (no collisions found) +``` + +### readme.md Requirements +- **Template**: Must follow [official template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md) +- **Flash Command**: Present with `:flash` at end +- **Hardware Link**: Valid availability link (unless handwired) + - Private groupbuys acceptable + - One-off prototypes will be questioned + - Open-source should link to files +- **Reset Instructions**: Clear bootloader mode instructions +- **Images Required**: + - Keyboard and PCB photos preferred + - Must be hosted externally (imgur, etc.) + - Direct image links required (not preview pages) + - Example: `https://i.imgur.com/vqgE7Ok.jpg` not `https://imgur.com/vqgE7Ok` + +### rules.mk Standards +- **Removed Items**: + - `MIDI_ENABLE`, `FAUXCLICKY_ENABLE`, `HD44780_ENABLE` + - Size comments like `(-/+size)` + - Alternate bootloader lists if one specified + - MCU parameter re-definitions matching defaults in `mcu_selection.mk` +- **Comment Updates**: Change bootloader comments to generic +- **Forbidden Features at Keyboard Level** (these belong in keymap-level `rules.mk` only): + - `COMBO_ENABLE` + - `ENCODER_MAP_ENABLE` + +### config.h Standards (Keyboard Level) +- **Prohibited**: + - `#define DESCRIPTION` + - Magic Key Options, MIDI Options, HD44780 configuration + - User preference `#define`s (belong in keymap) + - Re-defining default values (`DEBOUNCE`, RGB settings) + - Copy/pasted comment blocks explaining features + - Commented-out unused defines + - `#include "config_common.h"` + - `#define MATRIX_ROWS/COLS` (unless custom matrix) +- **Minimal Code**: Only critical board boot code required +- **No Vial**: Vial-related files/changes not accepted + +### Keyboard Implementation Files + +#### `.c` +- **Remove Empty Functions**: Delete empty or commented-out weak-defined functions + - `xxxx_xxxx_kb()`, `xxxx_xxxx_user()` implementations +- **Migration**: `matrix_init_board()` → `keyboard_pre_init_kb()` +- **Custom Matrix**: Use `lite` variant when possible for standard debounce + - `CUSTOM_MATRIX = lite` preferred + - Full custom matrix (`yes`) requires justification +- **LED Indicators**: Prefer Configuration Options over custom `led_update_*()` implementations +- **Hardware Configuration**: Basic functionality for OLED, encoders, etc. at keyboard level + +#### `.h` +- **Include**: `#include "quantum.h"` at top +- **Layout Macros**: Move to `info.json` or `keyboard.json` (no longer in header) + +### Default Keymap Standards + +**Scope**: These rules specifically apply to files within `keyboards/*/keymaps/default/` directories. + +- **Pristine Requirement**: Bare minimum clean slate + - No custom keycodes + - No advanced features (non-exhaustive list of examples: tap dance, macros) + - Basic mod taps and home row mods acceptable when necessary + - Standard layouts preferred -- see examples in `layouts/default/` and `layouts/community/` +- **Removed Examples**: Delete `QMKBEST`/`QMKURL` macros +- **Tri Layer**: Use Tri Layer feature instead of manual `layer_on/off()` + `update_tri_layer()` +- **Encoder Map**: Use encoder map feature, `encoder_update_user()` may not be present +- **No VIA**: Default keymap should not enable VIA +- **Additional Keymaps**: Example/bells-and-whistles keymaps acceptable in same PR (separate from default) + +### Prohibited Files +- **No VIA JSON**: Belongs in [VIA Keyboard Repo](https://github.com/the-via/keyboards) +- **No KLE JSON**: Not used within QMK +- **No Cross-Keyboard Sources**: Don't include files from other keyboard vendors + - Exception: Core files (e.g., `drivers/sensors/pmw3360.c`) + - Use of vendor-specific code (e.g., `wilba_tech/wt_main.c`) only when keyboard exists in the same enclosing vendor folder (e.g. a `wilba_tech` keyboard) + - Multi-board code is candidate for core refactoring when intended for use by multiple vendors + +### Wireless Keyboards +- **Policy**: Wireless/Bluetooth PRs rejected without complete wireless code + - Wireless code may not include anything resembling precompiled data such as `*.a` files or other libraries + - Firmware blobs are not permitted in raw form or as compiled C-style arrays either. + - GPL2+ license requires full source disclosure + - Historically abused for VIA compatibility without releasing sources + - PRs without wireless capability will be held indefinitely + - Existing merged wireless boards from same vendor held until sources provided + +### ChibiOS-Specific Requirements +- **Board Definitions**: Strong preference for existing ChibiOS board definitions + - Use equivalent Nucleo boards when possible + - Example: STM32L082KZ can use `BOARD = ST_NUCLEO64_L073RZ` + - QMK is eliminating custom board definitions due to maintenance burden +- **New Board Definitions**: + - Must NOT be embedded in keyboard PR + - Submit as separate Core PR + - `board.c` must have standard `__early_init()` and empty `boardInit()` + - Migrate code intended for `__early_init()` → keyboard-local `early_hardware_init_pre/post()` + - Migrate code intended for `boardInit()` → keyboard-local `board_init()` + +--- + +## Core PR Reviews + +### Targeting and Scope +- **Branch**: All core PRs must target `develop` branch +- **Single Focus**: Smallest set of changes per PR + - PRs with multiple areas will be asked to split + - Keyboard/keymap changes only if affecting base builds or default-like keymaps + - Keymap modifications (non-default) should be followup PR after core merge + - Large refactoring PRs affecting other keymaps raised separately + +### Testing Requirements +- **New Hardware Support**: Requires test keyboard under `keyboards/handwired/onekey` + - New MCUs: Add child keyboard targeting new MCU for build verification + - New hardware (displays, matrix, peripherals): Provide associated keymap + - Exception: If existing keymap can leverage functionality (consult Collaborators) +- **Callbacks**: New `_kb`/`_user` callbacks must return `bool` for user override +- **Unit Tests**: Strongly recommended, may be required + - Critical code areas (keycode pipeline) will require tests + - Boost confidence in current and future correctness + +### Code Quality +- **Subjective Review**: Other requirements at QMK Collaborators' discretion +- **Documentation**: Core changes should be well-documented + +--- + +## Automated Review Checklist + +When reviewing PRs, check the following systematically: + +### File Changes Review +1. **License headers** on all C/H files (GPL2+ preferred, others must be GPL2+ compatible, SPDX format preferred) +2. **File naming** lowercase (flag exceptions needing justification) +3. **Include guards** use `#pragma once` +4. **No low-level hardware access** (GPIO, I2C, SPI direct register writes) +5. **Timing abstractions** (`wait_ms()`, `timer_read()` usage) + +### info.json and keyboard.json Validation +1. **Schema Compliance**: `keyboard.json` and `info.json` files validate against `data/schemas/keyboard.jsonschema` + - Both files are identical syntax, however the `keyboard.json` dictates a buildable target, `info.json` does not + - Run `qmk lint -kb ` to check schema validation + - Check for proper data types (strings, integers, arrays, objects) + - Verify required fields are present + - Ensure enum values match allowed options in schema +2. All mandatory fields present and valid +3. `qmk format-json -i` has been run (formats and validates) +4. Layout macros moved from headers +5. Community layout names used where applicable + +### rules.mk Cleanup +1. Deprecated features removed +2. No size comments +3. No keymap-only features at keyboard level +4. No redundant MCU parameter definitions + +### config.h Cleanup +1. No `DESCRIPTION`, `config_common.h`, or prohibited includes +2. No default value re-definitions +3. No commented-out defines or feature documentation blocks +4. No user preference defines at keyboard level + +### Keymap Quality +1. Default keymaps are pristine (no custom keycodes/advanced features) +2. No `QMKBEST`/`QMKURL` macros +3. Encoder map feature used instead of `encoder_update_user()` +4. Tri Layer feature used for multi-layer access +5. No VIA enabled in default keymap + +### Documentation +1. readme.md follows template +2. Flash command present with `:flash` +3. Reset instructions clear +4. External image hosting (direct links) +5. Valid hardware availability link + +### Code Organization +1. Empty weak-defined functions removed from `.c` +2. Proper migration of init functions +3. No cross-vendor source files +4. No VIA/KLE JSON files + +### Branch and Scope +1. Not submitted from submitter's own `master` branch (use feature branches) +2. PR is focused on single change +3. Targets correct branch: + - `master` for new keyboard additions + - `develop` for keyboard updates/refactors/moves and core changes +4. No merge conflicts + +--- + +## Review Response Templates + +### For source master branch usage: +``` +⚠️ This PR appears to be submitted from your own `master` branch. For future PRs, we recommend using feature branches instead of committing to your `master`. This makes it easier to keep your fork updated and manage multiple PRs. + +See: [Best Practices: Your Fork's Master](https://docs.qmk.fm/newbs_git_using_your_master_branch) +``` + +### For incorrect target branch: +``` +❌ This PR targets the wrong branch: +- **New keyboard additions** should target `master` +- **Keyboard updates/refactors/moves** should target `develop` +- **Core changes** should target `develop` + +Please change the target branch accordingly. +``` + +### For missing license headers: +``` +❌ Missing GPL-compatible license headers on the following files: +- [list files] + +Please add GPL2+ headers (GPL2/GPL3 recommended). Example: +\`\`\`c +// Copyright 2024 Your Name (@yourgithub) +// SPDX-License-Identifier: GPL-2.0-or-later +\`\`\` +``` + +### For non-lowercase filenames: +``` +❌ The following files/directories must be lowercase: +- [list files] + +Exception: Only valid if from upstream sources (LUFA, ChibiOS) or justified by core consistency. +``` + +### For config.h violations: +``` +⚠️ Found prohibited config.h elements: +- [list specific issues: DESCRIPTION, default value re-definitions, etc.] + +Please remove these and refer to [Data Driven Configuration](https://docs.qmk.fm/data_driven_config). +``` + +### For info.json or keyboard.json issues: +``` +⚠️ info.json or keyboard.json needs attention: +- [list missing mandatory fields] +- Please run: \`qmk format-json -i path/to/info.json\` (or keyboard.json) +- Validate with: \`qmk lint -kb \` +``` + +### For schema validation errors: +``` +❌ Schema validation failed for info.json or keyboard.json: +- [list specific validation errors from schema] +- Check `data/schemas/keyboard.jsonschema` for valid field definitions +- Common issues: + - Invalid data types (e.g., string instead of integer) + - Missing required fields + - Invalid enum values + - Incorrectly formatted pin definitions +``` + +### For non-pristine default keymap: +``` +⚠️ Default keymap should be pristine (clean slate for users): +- Remove: [custom keycodes/tap dance/macros/etc.] +- Keep it minimal with standard layouts where possible + +Consider moving advanced features to a separate example keymap. +``` + +--- + +## Notes for GitHub Copilot + +- Focus reviews on **objective checklist items** that can be automatically verified +- Flag **definite violations** with ❌ +- Suggest improvements for **recommendations** with ⚠️ +- **Provide specific file/line references** when flagging issues +- **Link to relevant QMK documentation** for each issue +- **Prioritize blocking issues** (license, merge conflicts, branch policy) +- **Be constructive**: Suggest fixes, not just problems +- **Acknowledge trade-offs**: Some guidelines have valid exceptions + +This is meant as a **first-pass review** to catch common issues before human review. Complex architectural decisions, code quality, and subjective assessments still require human QMK Collaborator review. From 127c664647bb234ea9b586741a39f910b771eac5 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Thu, 15 Jan 2026 11:47:35 +1100 Subject: [PATCH 195/255] Backport GitHub Copilot instructions. (#25953) --- .github/copilot-instructions.md | 430 ++++++++++++++++++++++++++++++++ 1 file changed, 430 insertions(+) create mode 100644 .github/copilot-instructions.md diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000000..ee51380bd5 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,430 @@ +--- +applyTo: "**" +excludeAgent: + - "coding-agent" +--- +# GitHub Copilot Instructions for QMK Pull Request Review +This document provides automated review guidance based on the [QMK PR Checklist](https://docs.qmk.fm/pr_checklist) and it is intended only for use by GitHub Copilot code-review agent during pull request reviews. + +## General PR Requirements + +### Branch and Submission Standards +- **Source Branch Policy**: Verify PR is NOT submitted from submitter's own `master` branch + - Flag if submitter is using their own `master` branch as source + - Suggest using feature branches instead for cleaner fork management +- **Target Branch Policy**: + - **New keyboard additions** → `master` branch (new folders under `keyboards/`) + - **All other changes** → `develop` branch: + - Keyboard updates, refactors, or moves + - Core code changes + - Data-driven configuration migrations + - Any modifications to existing keyboards +- **PR Scope**: PRs should contain the smallest set of modifications for a single change + - Flag PRs that modify multiple keyboards simultaneously + - Suggest splitting large PRs into focused, incremental changes +- **Merge Conflicts**: Check for unresolved merge conflicts + +### File Naming and Structure +- **Lowercase Requirement**: All new directories and filenames must be lowercase + - Exception: Upstream sources with original uppercase (LUFA, ChibiOS) + - Exception: Core files with valid justification + - **Reject**: Board designer preference for uppercase is NOT valid justification + +### License Headers +- **Required**: Valid license headers on all `*.c` and `*.h` files +- **Recommended**: GPL2/GPL3 for consistency +- **Format**: Check for proper GPL2+ header or SPDX identifier + ```c + // Copyright 2024 Your Name (@yourgithub) + // SPDX-License-Identifier: GPL-2.0-or-later + ``` +- **Exception**: Simple assignment-only `rules.mk` files don't need headers +- **Flag**: Missing or ambiguous license headers (blocks merge) + +### QMK Best Practices +- **Include Guards**: Use `#pragma once` instead of `#ifndef` guards in headers +- **Abstractions Required**: No low-level GPIO/I2C/SPI functions + - Must use QMK abstractions (flag direct hardware access) +- **Timing Functions**: + - Use `wait_ms()` instead of `_delay_ms()` + - Remove `#include ` + - Use `timer_read()`, `timer_read32()` from `timer.h` +- **New Abstractions**: If proposing new abstraction, suggest: + 1. Prototype in own keyboard first + 2. Discuss with QMK Collaborators on Discord + 3. Refactor as separate core change + 4. Remove the keyboard-specific implementation from board + +--- + +## Keymap PR Reviews + +**Scope**: These rules apply to files within `keyboards/*/keymaps/*` subdirectories. + +### Note on Personal Keymaps +- **Policy Change**: Personal keymap submissions no longer accepted +- **Permitted**: Vendor-specific keymaps only + - Naming convention: `default_${vendor}` (e.g., `default_clueboard`) + - Can be more feature-rich than stock `default` keymaps + +### Keymap Code Standards +- **Includes**: `#include QMK_KEYBOARD_H` preferred over specific board files +- **Enums**: Prefer layer enums to `#define`s +- **Custom Keycodes**: First entry must be `QK_USER` +- **Formatting**: Check spacing alignment on commas and keycodes (spaces, not tabs) +- **VIA**: Keymaps should NOT enable VIA + - VIA keymaps belong in [VIA QMK Userspace](https://github.com/the-via/qmk_userspace_via) + +--- + +## Keyboard PR Reviews + +**Scope**: These rules apply to keyboard-level files in `keyboards/*` directories, excluding files within the `keymaps/` subdirectories. This includes: +- `info.json` or `keyboard.json` (keyboard root or variant level) +- `readme.md` (keyboard level) +- `rules.mk` (keyboard level) +- `config.h` (keyboard level, not keymap level) +- `.c` and `.h` files +- Hardware configuration files (`halconf.h`, `mcuconf.h`, `chconf.h`) + +### Branch Targeting +- **New Keyboards**: Target `master` branch + - New additions to `keyboards/` folder submit to `master` +- **Keyboard Moves**: Must target `develop` branch + - Check `data/mappings/keyboard_aliases.hjson` is updated for moves +- **Keyboard Updates/Refactors**: Must target `develop` to reduce merge conflicts +- **Data Driven Migration**: Must target `develop` + +### info.json and keyboard.json Requirements +- **Data-Driven Configuration**: Encourage maximum use of `info.json` and `keyboard.json` schema features +- **Schema Validation**: All `info.json` and `keyboard.json` files must validate against `data/schemas/keyboard.jsonschema` + - Use QMK CLI: `qmk lint -kb ` to validate + - Schema defines required fields, data types, and valid values + - Check for schema validation errors before submitting PR +- **Mandatory Elements**: + - Valid URL + - Valid maintainer + - Valid USB VID/PID and device version + - Displays correctly in Configurator (Ctrl+Shift+I to preview) + - `layout` definitions include matrix positions + - Standard layout definitions where applicable + - Community Layout macro names when applicable + - Microcontroller and bootloader specified + - Diode direction (if not using direct pins) +- **Layout Naming**: + - Single layout: Use `LAYOUT` or community layout name + - Multiple layouts: Include `LAYOUT_all` + alternate names + - Prefer community layout names (e.g., `LAYOUT_tkl_ansi`, `LAYOUT_ortho_4x4`) +- **Configuration in info.json or keyboard.json** (when applicable): + - Direct pin configuration + - Backlight, Split keyboard, Encoder, Bootmagic configs + - LED Indicator, RGB Light, RGB Matrix configs +- **Format**: Run `qmk format-json -i` before submitting + +### USB VID/PID Uniqueness +VID+PID combination must be unique across all keyboards. Individual VID or PID values can be reused with different partners. +**Validation Steps:** +1. Extract VID and PID from keyboard.json/info.json in the PR +2. Search for existing usage: `grep -r '"vid".*"0xVVVV"' keyboards/ --include="*.json" | grep -l '"pid".*"0xPPPP"'` +3. If results found: Check if BOTH VID AND PID match in same file + - Both match = **COLLISION** - request different PID + - Only one matches = **OK** - different keyboards can share individual values +4. For keyboard variants/revisions under same keyboard folder: + - Different PID recommended for functionally different variants + - Same PID acceptable if revisions only differ in hardware routing/pin assignments +**Quick Reference:** +- Same PID + Different VID = Valid +- Same VID + Different PID = Valid +- Same VID + Same PID = Invalid +**Review Response:** +For collision: +``` +VID+PID collision: 0xVVVV:0xPPPP already used by keyboards/[path]/file.json ++Please assign a different PID. VID can remain the same. +``` +For uniqueness confirmed: +``` +VID+PID validation: 0xVVVV:0xPPPP is unique (no collisions found) +``` + +### readme.md Requirements +- **Template**: Must follow [official template](https://github.com/qmk/qmk_firmware/blob/master/data/templates/keyboard/readme.md) +- **Flash Command**: Present with `:flash` at end +- **Hardware Link**: Valid availability link (unless handwired) + - Private groupbuys acceptable + - One-off prototypes will be questioned + - Open-source should link to files +- **Reset Instructions**: Clear bootloader mode instructions +- **Images Required**: + - Keyboard and PCB photos preferred + - Must be hosted externally (imgur, etc.) + - Direct image links required (not preview pages) + - Example: `https://i.imgur.com/vqgE7Ok.jpg` not `https://imgur.com/vqgE7Ok` + +### rules.mk Standards +- **Removed Items**: + - `MIDI_ENABLE`, `FAUXCLICKY_ENABLE`, `HD44780_ENABLE` + - Size comments like `(-/+size)` + - Alternate bootloader lists if one specified + - MCU parameter re-definitions matching defaults in `mcu_selection.mk` +- **Comment Updates**: Change bootloader comments to generic +- **Forbidden Features at Keyboard Level** (these belong in keymap-level `rules.mk` only): + - `COMBO_ENABLE` + - `ENCODER_MAP_ENABLE` + +### config.h Standards (Keyboard Level) +- **Prohibited**: + - `#define DESCRIPTION` + - Magic Key Options, MIDI Options, HD44780 configuration + - User preference `#define`s (belong in keymap) + - Re-defining default values (`DEBOUNCE`, RGB settings) + - Copy/pasted comment blocks explaining features + - Commented-out unused defines + - `#include "config_common.h"` + - `#define MATRIX_ROWS/COLS` (unless custom matrix) +- **Minimal Code**: Only critical board boot code required +- **No Vial**: Vial-related files/changes not accepted + +### Keyboard Implementation Files + +#### `.c` +- **Remove Empty Functions**: Delete empty or commented-out weak-defined functions + - `xxxx_xxxx_kb()`, `xxxx_xxxx_user()` implementations +- **Migration**: `matrix_init_board()` → `keyboard_pre_init_kb()` +- **Custom Matrix**: Use `lite` variant when possible for standard debounce + - `CUSTOM_MATRIX = lite` preferred + - Full custom matrix (`yes`) requires justification +- **LED Indicators**: Prefer Configuration Options over custom `led_update_*()` implementations +- **Hardware Configuration**: Basic functionality for OLED, encoders, etc. at keyboard level + +#### `.h` +- **Include**: `#include "quantum.h"` at top +- **Layout Macros**: Move to `info.json` or `keyboard.json` (no longer in header) + +### Default Keymap Standards + +**Scope**: These rules specifically apply to files within `keyboards/*/keymaps/default/` directories. + +- **Pristine Requirement**: Bare minimum clean slate + - No custom keycodes + - No advanced features (non-exhaustive list of examples: tap dance, macros) + - Basic mod taps and home row mods acceptable when necessary + - Standard layouts preferred -- see examples in `layouts/default/` and `layouts/community/` +- **Removed Examples**: Delete `QMKBEST`/`QMKURL` macros +- **Tri Layer**: Use Tri Layer feature instead of manual `layer_on/off()` + `update_tri_layer()` +- **Encoder Map**: Use encoder map feature, `encoder_update_user()` may not be present +- **No VIA**: Default keymap should not enable VIA +- **Additional Keymaps**: Example/bells-and-whistles keymaps acceptable in same PR (separate from default) + +### Prohibited Files +- **No VIA JSON**: Belongs in [VIA Keyboard Repo](https://github.com/the-via/keyboards) +- **No KLE JSON**: Not used within QMK +- **No Cross-Keyboard Sources**: Don't include files from other keyboard vendors + - Exception: Core files (e.g., `drivers/sensors/pmw3360.c`) + - Use of vendor-specific code (e.g., `wilba_tech/wt_main.c`) only when keyboard exists in the same enclosing vendor folder (e.g. a `wilba_tech` keyboard) + - Multi-board code is candidate for core refactoring when intended for use by multiple vendors + +### Wireless Keyboards +- **Policy**: Wireless/Bluetooth PRs rejected without complete wireless code + - Wireless code may not include anything resembling precompiled data such as `*.a` files or other libraries + - Firmware blobs are not permitted in raw form or as compiled C-style arrays either. + - GPL2+ license requires full source disclosure + - Historically abused for VIA compatibility without releasing sources + - PRs without wireless capability will be held indefinitely + - Existing merged wireless boards from same vendor held until sources provided + +### ChibiOS-Specific Requirements +- **Board Definitions**: Strong preference for existing ChibiOS board definitions + - Use equivalent Nucleo boards when possible + - Example: STM32L082KZ can use `BOARD = ST_NUCLEO64_L073RZ` + - QMK is eliminating custom board definitions due to maintenance burden +- **New Board Definitions**: + - Must NOT be embedded in keyboard PR + - Submit as separate Core PR + - `board.c` must have standard `__early_init()` and empty `boardInit()` + - Migrate code intended for `__early_init()` → keyboard-local `early_hardware_init_pre/post()` + - Migrate code intended for `boardInit()` → keyboard-local `board_init()` + +--- + +## Core PR Reviews + +### Targeting and Scope +- **Branch**: All core PRs must target `develop` branch +- **Single Focus**: Smallest set of changes per PR + - PRs with multiple areas will be asked to split + - Keyboard/keymap changes only if affecting base builds or default-like keymaps + - Keymap modifications (non-default) should be followup PR after core merge + - Large refactoring PRs affecting other keymaps raised separately + +### Testing Requirements +- **New Hardware Support**: Requires test keyboard under `keyboards/handwired/onekey` + - New MCUs: Add child keyboard targeting new MCU for build verification + - New hardware (displays, matrix, peripherals): Provide associated keymap + - Exception: If existing keymap can leverage functionality (consult Collaborators) +- **Callbacks**: New `_kb`/`_user` callbacks must return `bool` for user override +- **Unit Tests**: Strongly recommended, may be required + - Critical code areas (keycode pipeline) will require tests + - Boost confidence in current and future correctness + +### Code Quality +- **Subjective Review**: Other requirements at QMK Collaborators' discretion +- **Documentation**: Core changes should be well-documented + +--- + +## Automated Review Checklist + +When reviewing PRs, check the following systematically: + +### File Changes Review +1. **License headers** on all C/H files (GPL2+ preferred, others must be GPL2+ compatible, SPDX format preferred) +2. **File naming** lowercase (flag exceptions needing justification) +3. **Include guards** use `#pragma once` +4. **No low-level hardware access** (GPIO, I2C, SPI direct register writes) +5. **Timing abstractions** (`wait_ms()`, `timer_read()` usage) + +### info.json and keyboard.json Validation +1. **Schema Compliance**: `keyboard.json` and `info.json` files validate against `data/schemas/keyboard.jsonschema` + - Both files are identical syntax, however the `keyboard.json` dictates a buildable target, `info.json` does not + - Run `qmk lint -kb ` to check schema validation + - Check for proper data types (strings, integers, arrays, objects) + - Verify required fields are present + - Ensure enum values match allowed options in schema +2. All mandatory fields present and valid +3. `qmk format-json -i` has been run (formats and validates) +4. Layout macros moved from headers +5. Community layout names used where applicable + +### rules.mk Cleanup +1. Deprecated features removed +2. No size comments +3. No keymap-only features at keyboard level +4. No redundant MCU parameter definitions + +### config.h Cleanup +1. No `DESCRIPTION`, `config_common.h`, or prohibited includes +2. No default value re-definitions +3. No commented-out defines or feature documentation blocks +4. No user preference defines at keyboard level + +### Keymap Quality +1. Default keymaps are pristine (no custom keycodes/advanced features) +2. No `QMKBEST`/`QMKURL` macros +3. Encoder map feature used instead of `encoder_update_user()` +4. Tri Layer feature used for multi-layer access +5. No VIA enabled in default keymap + +### Documentation +1. readme.md follows template +2. Flash command present with `:flash` +3. Reset instructions clear +4. External image hosting (direct links) +5. Valid hardware availability link + +### Code Organization +1. Empty weak-defined functions removed from `.c` +2. Proper migration of init functions +3. No cross-vendor source files +4. No VIA/KLE JSON files + +### Branch and Scope +1. Not submitted from submitter's own `master` branch (use feature branches) +2. PR is focused on single change +3. Targets correct branch: + - `master` for new keyboard additions + - `develop` for keyboard updates/refactors/moves and core changes +4. No merge conflicts + +--- + +## Review Response Templates + +### For source master branch usage: +``` +⚠️ This PR appears to be submitted from your own `master` branch. For future PRs, we recommend using feature branches instead of committing to your `master`. This makes it easier to keep your fork updated and manage multiple PRs. + +See: [Best Practices: Your Fork's Master](https://docs.qmk.fm/newbs_git_using_your_master_branch) +``` + +### For incorrect target branch: +``` +❌ This PR targets the wrong branch: +- **New keyboard additions** should target `master` +- **Keyboard updates/refactors/moves** should target `develop` +- **Core changes** should target `develop` + +Please change the target branch accordingly. +``` + +### For missing license headers: +``` +❌ Missing GPL-compatible license headers on the following files: +- [list files] + +Please add GPL2+ headers (GPL2/GPL3 recommended). Example: +\`\`\`c +// Copyright 2024 Your Name (@yourgithub) +// SPDX-License-Identifier: GPL-2.0-or-later +\`\`\` +``` + +### For non-lowercase filenames: +``` +❌ The following files/directories must be lowercase: +- [list files] + +Exception: Only valid if from upstream sources (LUFA, ChibiOS) or justified by core consistency. +``` + +### For config.h violations: +``` +⚠️ Found prohibited config.h elements: +- [list specific issues: DESCRIPTION, default value re-definitions, etc.] + +Please remove these and refer to [Data Driven Configuration](https://docs.qmk.fm/data_driven_config). +``` + +### For info.json or keyboard.json issues: +``` +⚠️ info.json or keyboard.json needs attention: +- [list missing mandatory fields] +- Please run: \`qmk format-json -i path/to/info.json\` (or keyboard.json) +- Validate with: \`qmk lint -kb \` +``` + +### For schema validation errors: +``` +❌ Schema validation failed for info.json or keyboard.json: +- [list specific validation errors from schema] +- Check `data/schemas/keyboard.jsonschema` for valid field definitions +- Common issues: + - Invalid data types (e.g., string instead of integer) + - Missing required fields + - Invalid enum values + - Incorrectly formatted pin definitions +``` + +### For non-pristine default keymap: +``` +⚠️ Default keymap should be pristine (clean slate for users): +- Remove: [custom keycodes/tap dance/macros/etc.] +- Keep it minimal with standard layouts where possible + +Consider moving advanced features to a separate example keymap. +``` + +--- + +## Notes for GitHub Copilot + +- Focus reviews on **objective checklist items** that can be automatically verified +- Flag **definite violations** with ❌ +- Suggest improvements for **recommendations** with ⚠️ +- **Provide specific file/line references** when flagging issues +- **Link to relevant QMK documentation** for each issue +- **Prioritize blocking issues** (license, merge conflicts, branch policy) +- **Be constructive**: Suggest fixes, not just problems +- **Acknowledge trade-offs**: Some guidelines have valid exceptions + +This is meant as a **first-pass review** to catch common issues before human review. Complex architectural decisions, code quality, and subjective assessments still require human QMK Collaborator review. From 863b30851949cf1f045328820d27bdc83d942190 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 20 Jan 2026 08:48:51 +0000 Subject: [PATCH 196/255] Fix avrdude version check logic (#25957) --- lib/python/qmk/cli/doctor/check.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/python/qmk/cli/doctor/check.py b/lib/python/qmk/cli/doctor/check.py index 8a13cb0832..a717bcb591 100644 --- a/lib/python/qmk/cli/doctor/check.py +++ b/lib/python/qmk/cli/doctor/check.py @@ -152,8 +152,10 @@ def _check_avr_gcc_installation(): def _check_avrdude_version(): - last_line = ESSENTIAL_BINARIES['avrdude']['output'].split('\n')[-2] - version_number = last_line.split()[2][:-1] + lines = ESSENTIAL_BINARIES['avrdude']['output'].split('\n') + # avrdude version text is currently not translated, however we fall back to old behaviour of assuming a line + version_line = next((line for line in lines if 'version' in line), lines[-2]) + version_number = version_line.split()[2][:-1] cli.log.info('Found avrdude version %s', version_number) return CheckStatus.OK From 38815db760f24268561f7fd138f1094d546b4f13 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Sat, 24 Jan 2026 16:43:55 -0800 Subject: [PATCH 197/255] Fixup tominabox1 le chiffre default keymap (#25966) * Fixup tominabox1 le chiffre default keymap * Apply suggestions from code review Co-authored-by: Jack Sangdahl --------- Co-authored-by: Jack Sangdahl --- .../le_chiffre/keymaps/default/config.h | 18 -- .../le_chiffre/keymaps/default/keymap.c | 155 ------------------ .../le_chiffre/keymaps/default/keymap.json | 36 ++++ .../le_chiffre/keymaps/default/rules.mk | 2 - 4 files changed, 36 insertions(+), 175 deletions(-) delete mode 100644 keyboards/tominabox1/le_chiffre/keymaps/default/config.h delete mode 100644 keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c create mode 100644 keyboards/tominabox1/le_chiffre/keymaps/default/keymap.json delete mode 100644 keyboards/tominabox1/le_chiffre/keymaps/default/rules.mk diff --git a/keyboards/tominabox1/le_chiffre/keymaps/default/config.h b/keyboards/tominabox1/le_chiffre/keymaps/default/config.h deleted file mode 100644 index 8f0df1847a..0000000000 --- a/keyboards/tominabox1/le_chiffre/keymaps/default/config.h +++ /dev/null @@ -1,18 +0,0 @@ -/* Copyright 2020 tominabox1 - * - * 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 COMBO_TERM 30 diff --git a/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c b/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c deleted file mode 100644 index 756eb06506..0000000000 --- a/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.c +++ /dev/null @@ -1,155 +0,0 @@ -/* Copyright 2020 tominabox1 - * - * 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 { - _BASE, - _NUM_SYM, - _NAV -}; - -#define KC_NUM_SPC LT(_NUM_SYM, KC_SPC) -#define KC_GA LGUI_T(KC_A) -#define KC_AS LALT_T(KC_S) -#define KC_CD LCTL_T(KC_D) -#define KC_SF LSFT_T(KC_F) -#define KC_SJ RSFT_T(KC_J) -#define KC_CK RCTL_T(KC_K) -#define KC_AL RALT_T(KC_L) -#define KC_GSCLN RGUI_T(KC_SCLN) - -// clang-format off -const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_BASE] = LAYOUT( - KC_Q, KC_W, KC_E, KC_R, KC_T, KC_MPLY, KC_Y, KC_U, KC_I, KC_O, KC_P, - KC_GA, KC_AS, KC_CD, KC_SF, KC_G, KC_H, KC_SJ, KC_CK, KC_AL, KC_GSCLN, - KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, - KC_LCTL, KC_ENT, KC_NUM_SPC, MO(_NAV) - ), - - [_NUM_SYM] = LAYOUT( - KC_1, KC_2, KC_3, KC_4, KC_5, KC_TRNS, KC_6, KC_7, KC_8, KC_9, KC_0, - KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_EQUAL, KC_MINS, - KC_BSLS,KC_LCBR, KC_LBRC, KC_LPRN, KC_UNDS, KC_RPRN, KC_RBRC, KC_RCBR, KC_DOT, KC_GRV, - KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS - ), - - [_NAV] = LAYOUT( - QK_BOOT, _______, AG_NORM, AG_SWAP, DB_TOGG, KC_TRNS, KC_GRV, KC_PGDN, KC_UP, KC_PGUP, KC_SCLN, - RM_TOGG, RM_HUEU, RM_SATU, RM_VALU, KC_NO, KC_HOME, KC_LEFT, KC_DOWN, KC_RGHT, KC_END, - RM_NEXT, RM_HUED, RM_SATD, RM_VALD, KC_NO, KC_MINS, KC_INT1, KC_COMM, KC_DOT, KC_BSLS, - KC_TRNS,KC_TRNS, KC_TRNS, KC_TRNS - ) -}; -// clang-format on - -#if defined(ENCODER_MAP_ENABLE) -const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { - [_BASE] = {ENCODER_CCW_CW(KC_MNXT, KC_MPRV) }, - [_NUM_SYM] = { ENCODER_CCW_CW(MS_WHLD, MS_WHLU) }, - [_NAV] = { ENCODER_CCW_CW(KC_PGDN, KC_PGUP) } -}; -#endif - -#ifdef COMBO_ENABLE -enum combo_events { - COMBO_BSPC, - COMBO_NUMBAK, - COMBO_TAB, - COMBO_ESC, - COMBO_DEL, -}; - -const uint16_t PROGMEM combo_bspc[] = {KC_O, KC_P, COMBO_END}; -const uint16_t PROGMEM combo_numbak[] = {KC_0, KC_9, COMBO_END}; -const uint16_t PROGMEM combo_tab[] = {KC_Q, KC_W, COMBO_END}; -const uint16_t PROGMEM combo_esc[] = {KC_E, KC_W, COMBO_END}; -const uint16_t PROGMEM combo_del[] = {KC_MINS, KC_EQL, COMBO_END}; - -combo_t key_combos[] = { - [COMBO_BSPC] = COMBO(combo_bspc, KC_BSPC), - [COMBO_NUMBAK] = COMBO(combo_numbak, KC_BSPC), - [COMBO_TAB] = COMBO(combo_tab, KC_TAB), - [COMBO_ESC] = COMBO(combo_esc, KC_ESC), - [COMBO_DEL] = COMBO(combo_del, KC_DEL) -}; -#endif - -#ifdef OLED_ENABLE - -// Add additional layer names here if desired. Only first 5 characters will be copied to display. -const char PROGMEM layer_base[] = "BASE"; -const char PROGMEM layer_num_sym[] = " SYM"; -const char PROGMEM layer_nav[] = " NAV"; -// Add layer name variables to array here. Make sure these are in order. -const char* const PROGMEM layer_names[] = { - layer_base, - layer_num_sym, - layer_nav -}; - -static char oled_layer_buf[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; -static layer_state_t top_layer_cache; - -/* BEGIN STANDARD QMK FUNCTIONS */ -bool oled_task_user(void) { - oled_write_raw_P(lechiffre_logo, sizeof(lechiffre_logo)); - // Renders the current keyboard state (layer, lock, caps, scroll, etc); - oled_set_cursor(0, 3); - oled_write_P(oled_section_break, false); - render_layer_status(oled_layer_buf); - oled_write_P(oled_section_break, false); - render_mod_status(get_mods() | get_oneshot_mods()); - oled_write_P(oled_section_break, false); - render_keylock_status(host_keyboard_led_state()); - oled_write_P(oled_section_break, false); - render_keylogger_status(); - - return false; -} - -bool process_record_user(uint16_t keycode, keyrecord_t* record) { - if (record->event.pressed) { - add_keylog(keycode, record); - } - - return true; -} - -// If we don't force an update during initialization, the layer name buffer will start out blank. -layer_state_t default_layer_state_set_user(layer_state_t state) { - update_layer_namebuf(get_highest_layer(state), true); - return state; -} -layer_state_t layer_state_set_user(layer_state_t state) { - update_layer_namebuf(get_highest_layer(state | default_layer_state), false); - return state; -} - -/* END STANDARD QMK FUNCTIONS */ -/* BEGIN CUSTOM HELPER FUNCTION FOR OLED */ -// Avoid excessive copying by only updating the layer name buffer when the layer changes -void update_layer_namebuf(layer_state_t layer, bool force_update) { - if (force_update || layer != top_layer_cache) { - top_layer_cache = layer; - if (layer < ARRAY_SIZE(layer_names)) { - memcpy_P(oled_layer_buf, pgm_read_ptr(&layer_names[layer]), ARRAY_SIZE(oled_layer_buf) - 1); - } else { - memcpy(oled_layer_buf, get_u8_str(layer, ' '), ARRAY_SIZE(oled_layer_buf) - 1); - } - } -} -#endif diff --git a/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.json b/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.json new file mode 100644 index 0000000000..252db21f5d --- /dev/null +++ b/keyboards/tominabox1/le_chiffre/keymaps/default/keymap.json @@ -0,0 +1,36 @@ +{ + "keyboard": "tominabox1/le_chiffre", + "keymap": "default", + "config": { + "features": { + "encoder_map": true + } + }, + "layout": "LAYOUT", + "layers": [ + [ + "KC_Q", "KC_W", "KC_E", "KC_R", "KC_T", "KC_MPLY", "KC_Y", "KC_U", "KC_I", "KC_O", "KC_P", + "LGUI_T(KC_A)", "LALT_T(KC_S)", "LCTL_T(KC_D)", "LSFT_T(KC_F)", "KC_G", "KC_H", "RSFT_T(KC_J)", "RCTL_T(KC_K)", "RALT_T(KC_L)", "RGUI_T(KC_SCLN)", + "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "KC_SLSH", + "KC_LCTL", "KC_ENT", "LT(1, KC_SPC)", "MO(2)" + ], + [ + "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_TRNS", "KC_6", "KC_7", "KC_8", "KC_9", "KC_0", + "KC_EXLM", "KC_AT", "KC_HASH", "KC_DLR", "KC_PERC", "KC_CIRC", "KC_AMPR", "KC_ASTR", "KC_EQUAL", "KC_MINS", + "KC_BSLS", "KC_LCBR", "KC_LBRC", "KC_LPRN", "KC_UNDS", "KC_RPRN", "KC_RBRC", "KC_RCBR", "KC_DOT", "KC_GRV", + "KC_CAPS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + ], + [ + "QK_BOOT", "KC_TRNS", "AG_NORM", "AG_SWAP", "DB_TOGG", "KC_TRNS", "KC_GRV", "KC_PGDN", "KC_UP", "KC_PGUP", + "KC_SCLN", "RM_TOGG", "RM_HUEU", "RM_SATU", "RM_VALU", "KC_NO", "KC_HOME", "KC_LEFT", "KC_DOWN", "KC_RGHT", + "KC_END", "RM_NEXT", "RM_HUED", "RM_SATD", "RM_VALD", "KC_NO", "KC_MINS", "KC_INT1", "KC_COMM", "KC_DOT", "KC_BSLS", + "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" + ] + + ], + "encoders": [ + [{"ccw": "KC_MNXT", "cw": "KC_MPRV"}], + [{"ccw": "MS_WHLD", "cw": "MS_WHLU"}], + [{"ccw": "KC_PGDN", "cw": "KC_PGUP"}] + ] +} diff --git a/keyboards/tominabox1/le_chiffre/keymaps/default/rules.mk b/keyboards/tominabox1/le_chiffre/keymaps/default/rules.mk deleted file mode 100644 index cbd8b4aa81..0000000000 --- a/keyboards/tominabox1/le_chiffre/keymaps/default/rules.mk +++ /dev/null @@ -1,2 +0,0 @@ -COMBO_ENABLE = yes -ENCODER_MAP_ENABLE = yes From 6729379041bced3064348395b0bdfed35d61c541 Mon Sep 17 00:00:00 2001 From: Nate Eagleson Date: Fri, 6 Feb 2026 02:14:23 -0500 Subject: [PATCH 198/255] Fix typo in ergodox-ez's readme (#25985) Fix typo in readme.md --- keyboards/ergodox_ez/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/ergodox_ez/readme.md b/keyboards/ergodox_ez/readme.md index 59a2840fd0..08bfc91d15 100644 --- a/keyboards/ergodox_ez/readme.md +++ b/keyboards/ergodox_ez/readme.md @@ -25,7 +25,7 @@ If you have `ORYX_CONFIGURATOR` defined in your keymap's `config.h`, this enable ### Indicator LEDs -You can use the `LED_LEVEL` keycode to cycle through the brightness levels for the LEDs on the top right of the keyboard. These settings are saved in eeprom (persistant memory). +You can use the `LED_LEVEL` keycode to cycle through the brightness levels for the LEDs on the top right of the keyboard. These settings are saved in eeprom (persistent memory). Alternatively, you can set the brightness by calling the following functions: From b6d46cdc47d420d80c2c15e62c2b70c771166687 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 9 Feb 2026 00:59:34 +0000 Subject: [PATCH 199/255] Allow json keymaps to include a user provided keymap.h (#25987) --- lib/python/qmk/cli/generate/keymap_h.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/python/qmk/cli/generate/keymap_h.py b/lib/python/qmk/cli/generate/keymap_h.py index a3aaa405c0..10be16391a 100644 --- a/lib/python/qmk/cli/generate/keymap_h.py +++ b/lib/python/qmk/cli/generate/keymap_h.py @@ -43,6 +43,13 @@ def generate_keymap_h(cli): keymap_h_lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE, '#pragma once', '// clang-format off'] + # Allow a potential keymap level keymap.h for items like user defined keycode aliases used within a keymap.json keymap + keymap_h_lines += [ + '#if __has_include_next("keymap.h")', + '# include_next "keymap.h"', + '#endif', + ] + keymap_json = parse_configurator_json(cli.args.filename) if 'keycodes' in keymap_json and keymap_json['keycodes'] is not None: From 8a6c081c4acbd0993df7019053c2360370f842f2 Mon Sep 17 00:00:00 2001 From: Thanh Son Tran <62438883+trnthsn@users.noreply.github.com> Date: Tue, 10 Feb 2026 14:51:34 +0700 Subject: [PATCH 200/255] [Keyboard] Add support Tyson88 (#25699) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Duncan Sutherland Co-authored-by: Joel Challis Co-authored-by: Trần Thanh Sơn --- keyboards/trnthsn/tyson88/config.h | 9 ++ keyboards/trnthsn/tyson88/halconf.h | 9 ++ keyboards/trnthsn/tyson88/info.json | 143 ++++++++++++++++++ .../trnthsn/tyson88/keymaps/default/keymap.c | 40 +++++ keyboards/trnthsn/tyson88/mcuconf.h | 9 ++ keyboards/trnthsn/tyson88/readme.md | 27 ++++ .../trnthsn/tyson88/stm32f072/keyboard.json | 4 + .../trnthsn/tyson88/stm32f103/keyboard.json | 4 + 8 files changed, 245 insertions(+) create mode 100644 keyboards/trnthsn/tyson88/config.h create mode 100644 keyboards/trnthsn/tyson88/halconf.h create mode 100644 keyboards/trnthsn/tyson88/info.json create mode 100644 keyboards/trnthsn/tyson88/keymaps/default/keymap.c create mode 100644 keyboards/trnthsn/tyson88/mcuconf.h create mode 100644 keyboards/trnthsn/tyson88/readme.md create mode 100644 keyboards/trnthsn/tyson88/stm32f072/keyboard.json create mode 100644 keyboards/trnthsn/tyson88/stm32f103/keyboard.json diff --git a/keyboards/trnthsn/tyson88/config.h b/keyboards/trnthsn/tyson88/config.h new file mode 100644 index 0000000000..8ab8c1a85f --- /dev/null +++ b/keyboards/trnthsn/tyson88/config.h @@ -0,0 +1,9 @@ +// Copyright 2025 Tyson.Keebs +// 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/trnthsn/tyson88/halconf.h b/keyboards/trnthsn/tyson88/halconf.h new file mode 100644 index 0000000000..afed4392fb --- /dev/null +++ b/keyboards/trnthsn/tyson88/halconf.h @@ -0,0 +1,9 @@ +// Copyright 2025 Tyson.Keebs +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#define HAL_USE_SPI TRUE + +#include_next + diff --git a/keyboards/trnthsn/tyson88/info.json b/keyboards/trnthsn/tyson88/info.json new file mode 100644 index 0000000000..8818e20008 --- /dev/null +++ b/keyboards/trnthsn/tyson88/info.json @@ -0,0 +1,143 @@ +{ + "manufacturer": "Tyson.Keebs", + "keyboard_name": "Tyson88", + "maintainer": "trnthsn", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "indicators": { + "caps_lock": "A5" + }, + "matrix_pins": { + "cols": ["A9", "A8", "B14", "B12", "B11", "B10", "B1", "B0", "A7", "A4", "A3", "A2", "A1", "A0", "A10", "C15", "C14"], + "rows": ["A15", "B3", "B4", "A6", "B6", "B5"] + }, + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "christmas": true, + "knight": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "default": { + "animation": "rainbow_swirl" + }, + "led_count": 30 + }, + "usb": { + "device_version": "0.0.1", + "pid": "0x6F38", + "vid": "0x5453" + }, + "ws2812": { + "driver": "spi", + "pin": "B15" + }, + "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": [3, 14], "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": [0, 13], "x": 13, "y": 1.25}, + {"matrix": [1, 13], "x": 14, "y": 1.25}, + {"matrix": [1, 14], "x": 15.25, "y": 1.25}, + {"matrix": [1, 15], "x": 16.25, "y": 1.25}, + {"matrix": [1, 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": [2, 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": 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, "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, 7], "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, 15], "x": 16.25, "y": 5.25}, + {"matrix": [5, 16], "x": 17.25, "y": 5.25} + ] + } + } +} diff --git a/keyboards/trnthsn/tyson88/keymaps/default/keymap.c b/keyboards/trnthsn/tyson88/keymaps/default/keymap.c new file mode 100644 index 0000000000..510bfdd490 --- /dev/null +++ b/keyboards/trnthsn/tyson88/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +// Copyright 2025 Tyson.Keebs +// 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( + 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_BSLS, 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( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; diff --git a/keyboards/trnthsn/tyson88/mcuconf.h b/keyboards/trnthsn/tyson88/mcuconf.h new file mode 100644 index 0000000000..d131af9fdf --- /dev/null +++ b/keyboards/trnthsn/tyson88/mcuconf.h @@ -0,0 +1,9 @@ +// Copyright 2025 Tyson.Keebs +// 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/trnthsn/tyson88/readme.md b/keyboards/trnthsn/tyson88/readme.md new file mode 100644 index 0000000000..5a6ea20a8b --- /dev/null +++ b/keyboards/trnthsn/tyson88/readme.md @@ -0,0 +1,27 @@ +# Tyson88 + +![trnthsn/tyson88](https://live.staticflickr.com/65535/54832182554_a1b1edfb7d_b.jpg) + +A TKL keyboard PCB compatible F13 layout. + +* Keyboard Maintainer: [Trnthsn](https://github.com/trnthsn) +* Hardware Supported: STM32, Tyson88 +* Hardware Availability: [ThanhSon.Mech](https://www.facebook.com/ThanhSon.mech) + +Make example for this keyboard (after setting up your build environment): + + make trnthsn/tyson88/stm32f103:default + +Flashing example for this keyboard: + + make trnthsn/tyson88/stm32f103: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/tyson88/stm32f072/keyboard.json b/keyboards/trnthsn/tyson88/stm32f072/keyboard.json new file mode 100644 index 0000000000..8bba6f5d5d --- /dev/null +++ b/keyboards/trnthsn/tyson88/stm32f072/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F072", + "bootloader": "stm32-dfu" +} diff --git a/keyboards/trnthsn/tyson88/stm32f103/keyboard.json b/keyboards/trnthsn/tyson88/stm32f103/keyboard.json new file mode 100644 index 0000000000..4dc77604c4 --- /dev/null +++ b/keyboards/trnthsn/tyson88/stm32f103/keyboard.json @@ -0,0 +1,4 @@ +{ + "processor": "STM32F103", + "bootloader": "uf2boot" +} From 5dd5d4dd60cfc1c39a6b0d56314eb2869aa26cb0 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 10 Feb 2026 08:10:12 +0000 Subject: [PATCH 201/255] Correctly resolve keyboard alias during 'qmk new-keymap' (#25570) --- lib/python/qmk/cli/new/keymap.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/python/qmk/cli/new/keymap.py b/lib/python/qmk/cli/new/keymap.py index 4d19a726a4..39f5a6df2e 100755 --- a/lib/python/qmk/cli/new/keymap.py +++ b/lib/python/qmk/cli/new/keymap.py @@ -57,7 +57,13 @@ def prompt_keyboard(): If you're unsure you can view a full list of supported keyboards with {fg_yellow}qmk list-keyboards{style_reset_all}. Keyboard Name? """ - return question(prompt) + kb_name = question(prompt) + + try: + # Resolve any keyboard alias + return keyboard_folder(kb_name) + except ValueError: + return None def prompt_user(): @@ -105,9 +111,7 @@ def new_keymap(cli): converter = cli.config.new_keymap.converter if cli.args.skip_converter or cli.config.new_keymap.converter else prompt_converter(kb_name) # check directories - try: - kb_name = keyboard_folder(kb_name) - except ValueError: + if not is_keyboard(kb_name): cli.log.error(f'Keyboard {{fg_cyan}}{kb_name}{{fg_reset}} does not exist! Please choose a valid name.') return False From 98f05c01369172152b5a8a3045de5fd62cd71024 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 10 Feb 2026 08:11:02 +0000 Subject: [PATCH 202/255] Allow keymap.json to disable config flags (#25502) --- lib/python/qmk/cli/generate/config_h.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/python/qmk/cli/generate/config_h.py b/lib/python/qmk/cli/generate/config_h.py index 1ade452f95..2c1f4a84d5 100755 --- a/lib/python/qmk/cli/generate/config_h.py +++ b/lib/python/qmk/cli/generate/config_h.py @@ -14,6 +14,14 @@ from qmk.path import normpath, FileType from qmk.constants import GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE +def generate_flag(define, value=None): + # TODO: Change behavior to always use is_keymap logic for keyboard level config + is_keymap = cli.args.filename + if is_keymap: + return f'\n#define {define}' if value else f'\n#undef {define}' + return f'\n#define {define}' if value else '' + + def generate_define(define, value=None): is_keymap = cli.args.filename value = f' {value}' if value is not None else '' @@ -97,8 +105,7 @@ def generate_config_items(kb_info_json, config_h_lines): elif key_type == 'bool': config_h_lines.append(generate_define(config_key, 'true' if config_value else 'false')) elif key_type == 'flag': - if config_value: - config_h_lines.append(generate_define(config_key)) + config_h_lines.append(generate_flag(config_key, config_value)) elif key_type == 'mapping': for key, value in config_value.items(): config_h_lines.append(generate_define(key, value)) @@ -160,8 +167,7 @@ def generate_led_animations_config(feature, led_feature_json, config_h_lines, en config_h_lines.append(generate_define(f'{feature.upper()}_DEFAULT_MODE', f'{animation_prefix}{led_feature_json["default"]["animation"].upper()}')) for animation in led_feature_json.get('animations', {}): - if led_feature_json['animations'][animation]: - config_h_lines.append(generate_define(f'{enable_prefix}{animation.upper()}')) + config_h_lines.append(generate_flag(f'{enable_prefix}{animation.upper()}', led_feature_json['animations'][animation])) @cli.argument('filename', nargs='?', arg_only=True, type=FileType('r'), completer=FilesCompleter('.json'), help='A configurator export JSON to be compiled and flashed or a pre-compiled binary firmware file (bin/hex) to be flashed.') From a7f524f2645fff8524922d52f5e9691694395599 Mon Sep 17 00:00:00 2001 From: Sebastiaan Swinkels Date: Tue, 10 Feb 2026 09:20:34 +0100 Subject: [PATCH 203/255] Added MK Point65 keyboards and keymaps (#25392) --- .../mechanicalkeyboards/point65/config.h | 24 +++ .../point65/hotswap/hotswap.c | 62 ++++++++ .../point65/hotswap/keyboard.json | 95 ++++++++++++ .../point65/hotswap/keymaps/default/keymap.c | 39 +++++ .../hotswap/keymaps/default_7u/keymap.c | 39 +++++ .../point65/hotswap_rgb/hotswap_rgb.c | 62 ++++++++ .../point65/hotswap_rgb/keyboard.json | 85 ++++++++++ .../hotswap_rgb/keymaps/default/keymap.c | 39 +++++ .../mechanicalkeyboards/point65/info.json | 145 ++++++++++++++++++ .../mechanicalkeyboards/point65/readme.md | 31 ++++ 10 files changed, 621 insertions(+) create mode 100644 keyboards/mechanicalkeyboards/point65/config.h create mode 100644 keyboards/mechanicalkeyboards/point65/hotswap/hotswap.c create mode 100644 keyboards/mechanicalkeyboards/point65/hotswap/keyboard.json create mode 100644 keyboards/mechanicalkeyboards/point65/hotswap/keymaps/default/keymap.c create mode 100644 keyboards/mechanicalkeyboards/point65/hotswap/keymaps/default_7u/keymap.c create mode 100644 keyboards/mechanicalkeyboards/point65/hotswap_rgb/hotswap_rgb.c create mode 100644 keyboards/mechanicalkeyboards/point65/hotswap_rgb/keyboard.json create mode 100644 keyboards/mechanicalkeyboards/point65/hotswap_rgb/keymaps/default/keymap.c create mode 100644 keyboards/mechanicalkeyboards/point65/info.json create mode 100644 keyboards/mechanicalkeyboards/point65/readme.md diff --git a/keyboards/mechanicalkeyboards/point65/config.h b/keyboards/mechanicalkeyboards/point65/config.h new file mode 100644 index 0000000000..31ba8c3f90 --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/config.h @@ -0,0 +1,24 @@ +/* Copyright 2024 Sebastiaan Swinkels @ BeanBoards + * + * 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 + +/* Double tap the side button to enter bootloader */ +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U + +/* couple of defaults */ +#define RGB_INDICATOR_POS_OFFSET 48 /* Indicator LEDs additional brightness */ diff --git a/keyboards/mechanicalkeyboards/point65/hotswap/hotswap.c b/keyboards/mechanicalkeyboards/point65/hotswap/hotswap.c new file mode 100644 index 0000000000..1da89f6f2d --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/hotswap/hotswap.c @@ -0,0 +1,62 @@ +/* Copyright 2024 Sebastiaan Swinkels @ BeanBoards + * + * 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 "quantum.h" + + enum point65_layers { + _QWERTY, + _FUNCTION +}; + +bool rgb_matrix_indicators_kb(void) { + if (!rgb_matrix_indicators_user()){ + return false; + } + + hsv_t hsv = {0, 255, 255}; + + // Light up ESC RGB LED when _FUNCTION layer is accessed + if ((get_highest_layer(layer_state|default_layer_state)) == _FUNCTION){ + hsv.h = 43; + hsv.s = 105; + hsv.v = 255; + + if (hsv.v > rgb_matrix_get_val() + RGB_INDICATOR_POS_OFFSET) { + hsv.v = rgb_matrix_get_val() + RGB_INDICATOR_POS_OFFSET; + } + rgb_t rgb = hsv_to_rgb(hsv); + + rgb_matrix_set_color(0, rgb.r, rgb.g, rgb.b); + } + // end layer function + + // capslock indicator + if (host_keyboard_led_state().caps_lock) { + hsv.h = 43; + hsv.s = 105; + hsv.v = 255; + + if (hsv.v > rgb_matrix_get_val() + RGB_INDICATOR_POS_OFFSET) { + hsv.v = rgb_matrix_get_val() + RGB_INDICATOR_POS_OFFSET; + } + rgb_t rgb = hsv_to_rgb(hsv); + + rgb_matrix_set_color(1, rgb.r, rgb.g, rgb.b); + } + // end capslock function + + return false; +} diff --git a/keyboards/mechanicalkeyboards/point65/hotswap/keyboard.json b/keyboards/mechanicalkeyboards/point65/hotswap/keyboard.json new file mode 100644 index 0000000000..f988fb0423 --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/hotswap/keyboard.json @@ -0,0 +1,95 @@ +{ + "keyboard_name": "Point 65 Hotswap", + "matrix_pins": { + "rows": ["GP24", "GP22", "GP21", "GP19", "GP25"] + }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 255}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 255} + ] + }, + "url": "https://mechanicalkeyboards.com/products/mk-point65-keyboard-kit?variant=49803723735340", + "usb": { + "pid": "0xC0F5" + }, + "ws2812": { + "pin": "GP23" + }, + "community_layouts": ["65_ansi_blocker", "65_ansi_blocker_tsangan"], + "layout_aliases": { + "LAYOUT_all": "LAYOUT_65_ansi_blocker" + }, + "layouts": { + "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, 12], "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, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [3, 11], "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, 5], "x": 4, "y": 4, "w": 7}, + {"matrix": [4, 10], "x": 11, "y": 4, "w": 1.5}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/mechanicalkeyboards/point65/hotswap/keymaps/default/keymap.c b/keyboards/mechanicalkeyboards/point65/hotswap/keymaps/default/keymap.c new file mode 100644 index 0000000000..8441ae3830 --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/hotswap/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2024 Sebastiaan Swinkels @ BeanBoards + * + * 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 point65_layers { + _QWERTY, + _FUNCTION +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = 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_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, KC_RALT, MO(_FUNCTION), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [_FUNCTION] = 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, KC_NO, + NK_TOGG, RM_TOGG, RM_VALU, KC_NO, RM_HUEU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, RM_PREV, RM_VALD, RM_NEXT, RM_HUED, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_MPLY, KC_VOLU, KC_TRNS, + KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ) +}; diff --git a/keyboards/mechanicalkeyboards/point65/hotswap/keymaps/default_7u/keymap.c b/keyboards/mechanicalkeyboards/point65/hotswap/keymaps/default_7u/keymap.c new file mode 100644 index 0000000000..b290fa0ac6 --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/hotswap/keymaps/default_7u/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2024 Sebastiaan Swinkels @ BeanBoards + * + * 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 point65_layers { + _QWERTY, + _FUNCTION +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_65_ansi_blocker_tsangan( + 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(_FUNCTION), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [_FUNCTION] = LAYOUT_65_ansi_blocker_tsangan( + 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_NO, + NK_TOGG, RM_TOGG, RM_VALU, KC_NO, RM_HUEU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, RM_PREV, RM_VALD, RM_NEXT, RM_HUED, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_MPLY, KC_VOLU, KC_TRNS, + KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ) +}; diff --git a/keyboards/mechanicalkeyboards/point65/hotswap_rgb/hotswap_rgb.c b/keyboards/mechanicalkeyboards/point65/hotswap_rgb/hotswap_rgb.c new file mode 100644 index 0000000000..ec2e9f28ba --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/hotswap_rgb/hotswap_rgb.c @@ -0,0 +1,62 @@ +/* Copyright 2024 Sebastiaan Swinkels @ BeanBoards + * + * 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 "quantum.h" + + enum point65_layers { + _QWERTY, + _FUNCTION +}; + +bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { + if (!rgb_matrix_indicators_user()){ + return false; + } + + hsv_t hsv = {0, 255, 255}; + + // Light up ESC RGB LED when _FUNCTION layer is accessed + if ((get_highest_layer(layer_state|default_layer_state)) == _FUNCTION){ + hsv.h = 43; + hsv.s = 105; + hsv.v = 255; + + if (hsv.v > rgb_matrix_get_val() + RGB_INDICATOR_POS_OFFSET) { + hsv.v = rgb_matrix_get_val() + RGB_INDICATOR_POS_OFFSET; + } + rgb_t rgb = hsv_to_rgb(hsv); + + rgb_matrix_set_color(0, rgb.r, rgb.g, rgb.b); + } + // end layer function + + // capslock indicator + if (host_keyboard_led_state().caps_lock) { + hsv.h = 43; + hsv.s = 105; + hsv.v = 255; + + if (hsv.v > rgb_matrix_get_val() + RGB_INDICATOR_POS_OFFSET) { + hsv.v = rgb_matrix_get_val() + RGB_INDICATOR_POS_OFFSET; + } + rgb_t rgb = hsv_to_rgb(hsv); + + rgb_matrix_set_color(30, rgb.r, rgb.g, rgb.b); + } + // end capslock function + + return false; +} diff --git a/keyboards/mechanicalkeyboards/point65/hotswap_rgb/keyboard.json b/keyboards/mechanicalkeyboards/point65/hotswap_rgb/keyboard.json new file mode 100644 index 0000000000..55f206fe12 --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/hotswap_rgb/keyboard.json @@ -0,0 +1,85 @@ +{ + "keyboard_name": "Point 65 Hotswap RGB", + "matrix_pins": { + "rows": ["GP24", "GP23", "GP22", "GP21", "GP25"] + }, + "rgb_matrix": { + "layout": [ + {"matrix": [0, 0], "x": 0, "y": 0, "flags": 255}, + {"matrix": [0, 1], "x": 15, "y": 0, "flags": 255}, + {"matrix": [0, 2], "x": 30, "y": 0, "flags": 255}, + {"matrix": [0, 3], "x": 45, "y": 0, "flags": 255}, + {"matrix": [0, 4], "x": 60, "y": 0, "flags": 255}, + {"matrix": [0, 5], "x": 75, "y": 0, "flags": 255}, + {"matrix": [0, 6], "x": 89, "y": 0, "flags": 255}, + {"matrix": [0, 7], "x": 104, "y": 0, "flags": 255}, + {"matrix": [0, 8], "x": 119, "y": 0, "flags": 255}, + {"matrix": [0, 9], "x": 134, "y": 0, "flags": 255}, + {"matrix": [0, 10], "x": 149, "y": 0, "flags": 255}, + {"matrix": [0, 11], "x": 164, "y": 0, "flags": 255}, + {"matrix": [0, 12], "x": 179, "y": 0, "flags": 255}, + {"matrix": [0, 13], "x": 201, "y": 0, "flags": 255}, + {"matrix": [0, 15], "x": 224, "y": 0, "flags": 255}, + {"matrix": [1, 15], "x": 224, "y": 16, "flags": 255}, + {"matrix": [1, 13], "x": 205, "y": 16, "flags": 255}, + {"matrix": [1, 12], "x": 187, "y": 16, "flags": 255}, + {"matrix": [1, 11], "x": 172, "y": 16, "flags": 255}, + {"matrix": [1, 10], "x": 157, "y": 16, "flags": 255}, + {"matrix": [1, 9], "x": 142, "y": 16, "flags": 255}, + {"matrix": [1, 8], "x": 127, "y": 16, "flags": 255}, + {"matrix": [1, 7], "x": 112, "y": 16, "flags": 255}, + {"matrix": [1, 6], "x": 97, "y": 16, "flags": 255}, + {"matrix": [1, 5], "x": 82, "y": 16, "flags": 255}, + {"matrix": [1, 4], "x": 67, "y": 16, "flags": 255}, + {"matrix": [1, 3], "x": 52, "y": 16, "flags": 255}, + {"matrix": [1, 2], "x": 37, "y": 16, "flags": 255}, + {"matrix": [1, 1], "x": 23, "y": 16, "flags": 255}, + {"matrix": [1, 0], "x": 4, "y": 16, "flags": 255}, + {"matrix": [2, 0], "x": 6, "y": 32, "flags": 255}, + {"matrix": [2, 1], "x": 26, "y": 32, "flags": 255}, + {"matrix": [2, 2], "x": 41, "y": 32, "flags": 255}, + {"matrix": [2, 3], "x": 56, "y": 32, "flags": 255}, + {"matrix": [2, 4], "x": 71, "y": 32, "flags": 255}, + {"matrix": [2, 5], "x": 86, "y": 32, "flags": 255}, + {"matrix": [2, 6], "x": 101, "y": 32, "flags": 255}, + {"matrix": [2, 7], "x": 116, "y": 32, "flags": 255}, + {"matrix": [2, 8], "x": 131, "y": 32, "flags": 255}, + {"matrix": [2, 9], "x": 145, "y": 32, "flags": 255}, + {"matrix": [2, 10], "x": 160, "y": 32, "flags": 255}, + {"matrix": [2, 11], "x": 175, "y": 32, "flags": 255}, + {"matrix": [2, 12], "x": 200, "y": 32, "flags": 255}, + {"matrix": [2, 15], "x": 224, "y": 32, "flags": 255}, + {"matrix": [3, 15], "x": 224, "y": 48, "flags": 255}, + {"matrix": [3, 14], "x": 209, "y": 48, "flags": 255}, + {"matrix": [3, 11], "x": 188, "y": 48, "flags": 255}, + {"matrix": [3, 10], "x": 168, "y": 48, "flags": 255}, + {"matrix": [3, 9], "x": 153, "y": 48, "flags": 255}, + {"matrix": [3, 8], "x": 138, "y": 48, "flags": 255}, + {"matrix": [3, 7], "x": 123, "y": 48, "flags": 255}, + {"matrix": [3, 6], "x": 108, "y": 48, "flags": 255}, + {"matrix": [3, 5], "x": 93, "y": 48, "flags": 255}, + {"matrix": [3, 4], "x": 78, "y": 48, "flags": 255}, + {"matrix": [3, 3], "x": 63, "y": 48, "flags": 255}, + {"matrix": [3, 2], "x": 49, "y": 48, "flags": 255}, + {"matrix": [3, 1], "x": 34, "y": 48, "flags": 255}, + {"matrix": [3, 0], "x": 9, "y": 48, "flags": 255}, + {"matrix": [4, 0], "x": 2, "y": 64, "flags": 255}, + {"matrix": [4, 1], "x": 20, "y": 64, "flags": 255}, + {"matrix": [4, 2], "x": 39, "y": 64, "flags": 255}, + {"matrix": [4, 5], "x": 95, "y": 64, "flags": 255}, + {"matrix": [4, 9], "x": 151, "y": 64, "flags": 255}, + {"matrix": [4, 10], "x": 170, "y": 64, "flags": 255}, + {"matrix": [4, 13], "x": 194, "y": 64, "flags": 255}, + {"matrix": [4, 14], "x": 209, "y": 64, "flags": 255}, + {"matrix": [4, 15], "x": 224, "y": 64, "flags": 255} + ] + }, + "url": "https://mechanicalkeyboards.com/products/mk-point65-keyboard-kit?variant=49803723538732", + "usb": { + "pid": "0xC0F6" + }, + "ws2812": { + "pin": "GP19" + }, + "community_layouts": ["65_ansi_blocker"] +} diff --git a/keyboards/mechanicalkeyboards/point65/hotswap_rgb/keymaps/default/keymap.c b/keyboards/mechanicalkeyboards/point65/hotswap_rgb/keymaps/default/keymap.c new file mode 100644 index 0000000000..e11e75c1f9 --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/hotswap_rgb/keymaps/default/keymap.c @@ -0,0 +1,39 @@ +/* Copyright 2024 Sebastiaan Swinkels @ BeanBoards + * + * 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 point65_layers { + _QWERTY, + _FUNCTION +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [_QWERTY] = LAYOUT_65_ansi_blocker( + 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, KC_RALT, MO(_FUNCTION), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [_FUNCTION] = LAYOUT_65_ansi_blocker( + 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_NO, + NK_TOGG, RM_TOGG, RM_VALU, KC_NO, RM_HUEU, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_NO, RM_PREV, RM_VALD, RM_NEXT, RM_HUED, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, + KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_MUTE, KC_NO, KC_NO, KC_NO, KC_MPLY, KC_VOLU, KC_TRNS, + KC_NO, KC_NO, KC_NO, KC_TRNS, KC_NO, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT + ) +}; diff --git a/keyboards/mechanicalkeyboards/point65/info.json b/keyboards/mechanicalkeyboards/point65/info.json new file mode 100644 index 0000000000..c1ab9322a7 --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/info.json @@ -0,0 +1,145 @@ +{ + "manufacturer": "Mechanical Keyboards", + "maintainer": "C44Supra", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP28", "GP27", "GP26", "GP29", "GP0", "GP11", "GP10", "GP9", "GP8", "GP7", "GP6", "GP5", "GP4", "GP3", "GP2", "GP1"] + }, + "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_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 + }, + "driver": "ws2812", + "max_brightness": 128 + }, + "usb": { + "device_version": "1.0.0", + "vid": "0x4242" + }, + "ws2812": { + "driver": "vendor" + }, + "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, 12], "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, 1], "x": 2.25, "y": 3}, + {"matrix": [3, 2], "x": 3.25, "y": 3}, + {"matrix": [3, 3], "x": 4.25, "y": 3}, + {"matrix": [3, 4], "x": 5.25, "y": 3}, + {"matrix": [3, 5], "x": 6.25, "y": 3}, + {"matrix": [3, 6], "x": 7.25, "y": 3}, + {"matrix": [3, 7], "x": 8.25, "y": 3}, + {"matrix": [3, 8], "x": 9.25, "y": 3}, + {"matrix": [3, 9], "x": 10.25, "y": 3}, + {"matrix": [3, 10], "x": 11.25, "y": 3}, + {"matrix": [3, 11], "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, 5], "x": 3.75, "y": 4, "w": 6.25}, + {"matrix": [4, 9], "x": 10, "y": 4, "w": 1.25}, + {"matrix": [4, 10], "x": 11.25, "y": 4, "w": 1.25}, + {"matrix": [4, 13], "x": 13, "y": 4}, + {"matrix": [4, 14], "x": 14, "y": 4}, + {"matrix": [4, 15], "x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/mechanicalkeyboards/point65/readme.md b/keyboards/mechanicalkeyboards/point65/readme.md new file mode 100644 index 0000000000..7a50f6793d --- /dev/null +++ b/keyboards/mechanicalkeyboards/point65/readme.md @@ -0,0 +1,31 @@ +# Mechanical Keyboards Point65 + +![Mechanical Keyboards Point65](https://i.imgur.com/lTEwGBR.png) +## Description +A 65% keyboard by [Mechanical Keyboards](https://mechanicalkeyboards.com) available as either multi layout hotswap, or hotswap with RGB per key backlight. + +* Keyboard Maintainer: [C44Supra](https://github.com/C44Supra) +* Hardware Supported: MK Point65 hotswap, MK Point65 hotswap RGB +* Hardware Availability: [MK Point65 Keyboard Kit](https://mechanicalkeyboards.com/products/mk-point65-keyboard-kit) + +## Firmware building +**Hotswap with 6.25U layout:** + + make mechanicalkeyboards/point65/hotswap:default + +**Hotswap with 7U layout:** + + make mechanicalkeyboards/point65/hotswap:default_7u + +**Hotswap RGB:** + + make mechanicalkeyboards/point65/hotswap_rgb:default + +## Bootloader and Flashing: +The keyboard can be flashed with new firmware by entering the bootloader in one of the following ways: +- Bootmagic reset: unplug the keyboard, press and hold the top left key, plug the keyboard back in, and then release the top left key +- Physical reset button: Remove the space bar and double press the reset button twice in short succession + +Once the keyboard enters bootloader mode, it will present itself as a removable device called `RPI-RP2`. Copy / drag the new firmware file to the `RPI-RP2` drive to flash the new firmware onto the keyboard. + +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 b01ed7d34f287995dc24cf142745cda040a42e4d Mon Sep 17 00:00:00 2001 From: Mikko Turunen <57153670+makkomise@users.noreply.github.com> Date: Tue, 10 Feb 2026 10:36:35 +0200 Subject: [PATCH 204/255] Adding a new keyboard - Slothie60 (#24931) Co-authored-by: Drashna Jaelre --- keyboards/slothie60/keyboard.json | 244 ++++++++++++++++++ keyboards/slothie60/keymaps/60_iso/keymap.c | 23 ++ .../keymaps/60_iso_split_rshift/keymap.c | 23 ++ keyboards/slothie60/keymaps/default/keymap.c | 23 ++ keyboards/slothie60/readme.md | 26 ++ 5 files changed, 339 insertions(+) create mode 100644 keyboards/slothie60/keyboard.json create mode 100644 keyboards/slothie60/keymaps/60_iso/keymap.c create mode 100644 keyboards/slothie60/keymaps/60_iso_split_rshift/keymap.c create mode 100644 keyboards/slothie60/keymaps/default/keymap.c create mode 100644 keyboards/slothie60/readme.md diff --git a/keyboards/slothie60/keyboard.json b/keyboards/slothie60/keyboard.json new file mode 100644 index 0000000000..2c3404efcb --- /dev/null +++ b/keyboards/slothie60/keyboard.json @@ -0,0 +1,244 @@ +{ + "manufacturer": "makkomise", + "keyboard_name": "slothie60", + "maintainer": "makkomise", + "bootloader": "stm32-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgblight": true + }, + "matrix_pins": { + "cols": ["A10", "B11", "B10", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0"], + "rows": ["A8", "B15", "B14", "B13", "B12"] + }, + "processor": "STM32F072", + "rgblight": { + "animations": { + "alternating": true, + "breathing": true, + "rainbow_mood": true, + "rainbow_swirl": true, + "snake": true, + "static_gradient": true, + "twinkle": true + }, + "led_count": 16, + "sleep": true + }, + "url": "https://github.com/makkomise/slothie60", + "usb": { + "device_version": "1.0.1", + "pid": "0x0002", + "vid": "0x7362" + }, + "ws2812": { + "pin": "A15" + }, + "community_layouts": ["60_iso"], + "layouts": { + "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], "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": [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": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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": 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_iso_split_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, "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": [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": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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": [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_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, "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": [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": [1, 13], "x": 13.75, "y": 1, "w": 1.25, "h": 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": [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": 6.5, "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/slothie60/keymaps/60_iso/keymap.c b/keyboards/slothie60/keymaps/60_iso/keymap.c new file mode 100644 index 0000000000..36cbed2dfd --- /dev/null +++ b/keyboards/slothie60/keymaps/60_iso/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + //main layer + [0] = LAYOUT_60_iso( + 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_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, LT(1, KC_SPC), KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + //fn1-layer + [1] = LAYOUT_60_iso( + QK_BOOT, 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_BSPC, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/slothie60/keymaps/60_iso_split_rshift/keymap.c b/keyboards/slothie60/keymaps/60_iso_split_rshift/keymap.c new file mode 100644 index 0000000000..5d8601a35f --- /dev/null +++ b/keyboards/slothie60/keymaps/60_iso_split_rshift/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + //main layer + [0] = LAYOUT_60_iso_split_rshift( + 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_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, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + //fn1-layer + [1] = LAYOUT_60_iso_split_rshift( + QK_BOOT, 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_BSPC, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/slothie60/keymaps/default/keymap.c b/keyboards/slothie60/keymaps/default/keymap.c new file mode 100644 index 0000000000..94e7287008 --- /dev/null +++ b/keyboards/slothie60/keymaps/default/keymap.c @@ -0,0 +1,23 @@ +// Copyright 2023 QMK +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + //main layer + [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_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, MO(1), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL + ), + //fn1-layer + [1] = LAYOUT_all( + QK_BOOT, 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_BSPC, + _______, _______, KC_UP, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/slothie60/readme.md b/keyboards/slothie60/readme.md new file mode 100644 index 0000000000..d29aa45bd1 --- /dev/null +++ b/keyboards/slothie60/readme.md @@ -0,0 +1,26 @@ +# slothie60 + +![slothie60](https://i.imgur.com/vXrQs6w.png) + +*60% ISO keyboard, support for GH60-cases, RGB underglow.* + +* Keyboard Maintainer: [makkomise](https://github.com/makkomise) +* Hardware Availability: [github/makkomise/slothie60](https://github.com/makkomise/slothie60) + +Make example for this keyboard (after setting up your build environment): + + make slothie60:default + +Flashing example for this keyboard: + + make slothie60: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 +* **Keycode in layout**: Press FN + Esc \ No newline at end of file From 9aec0e2c9fef2913e077ce37d0fc1071aef69495 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 10 Feb 2026 16:47:25 +0000 Subject: [PATCH 205/255] Remove some unnecessary matrix externs (#25975) --- keyboards/cipulot/common/matrix.c | 3 --- keyboards/cipulot/ec_980c/matrix.c | 3 --- keyboards/cipulot/ec_typek/matrix.c | 3 --- keyboards/custommk/evo70/evo70.c | 9 +++------ keyboards/gmmk/numpad/matrix.c | 8 -------- keyboards/sekigon/grs_70ec/matrix.c | 4 ---- keyboards/work_louder/micro/matrix.c | 8 -------- 7 files changed, 3 insertions(+), 35 deletions(-) diff --git a/keyboards/cipulot/common/matrix.c b/keyboards/cipulot/common/matrix.c index cfa2efe050..a06a198e0a 100644 --- a/keyboards/cipulot/common/matrix.c +++ b/keyboards/cipulot/common/matrix.c @@ -17,9 +17,6 @@ #include "ec_switch_matrix.h" #include "matrix.h" -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values -extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values - // Custom matrix init function void matrix_init_custom(void) { // Initialize EC diff --git a/keyboards/cipulot/ec_980c/matrix.c b/keyboards/cipulot/ec_980c/matrix.c index cfa2efe050..a06a198e0a 100644 --- a/keyboards/cipulot/ec_980c/matrix.c +++ b/keyboards/cipulot/ec_980c/matrix.c @@ -17,9 +17,6 @@ #include "ec_switch_matrix.h" #include "matrix.h" -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values -extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values - // Custom matrix init function void matrix_init_custom(void) { // Initialize EC diff --git a/keyboards/cipulot/ec_typek/matrix.c b/keyboards/cipulot/ec_typek/matrix.c index cfa2efe050..a06a198e0a 100644 --- a/keyboards/cipulot/ec_typek/matrix.c +++ b/keyboards/cipulot/ec_typek/matrix.c @@ -17,9 +17,6 @@ #include "ec_switch_matrix.h" #include "matrix.h" -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values -extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values - // Custom matrix init function void matrix_init_custom(void) { // Initialize EC diff --git a/keyboards/custommk/evo70/evo70.c b/keyboards/custommk/evo70/evo70.c index c20c25d3f0..e1c6d572f3 100644 --- a/keyboards/custommk/evo70/evo70.c +++ b/keyboards/custommk/evo70/evo70.c @@ -61,9 +61,6 @@ static bool starting_up = false; #define ENC_BONGO 9 #endif //bongocat - -extern matrix_row_t matrix[MATRIX_ROWS]; - char* enc_mode_str[] = { #ifdef BONGOCAT /* Splash */ "", @@ -394,7 +391,7 @@ void write_bongochar_at_pixel_xy(uint8_t x, uint8_t y, uint8_t data, bool invert bool is_key_down(void) { for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - if (matrix[i] > 0) { + if (matrix_get_row(i) > 0) { return true; } } @@ -488,10 +485,10 @@ bool is_new_tap(void) { static matrix_row_t old_matrix[] = { 0, 0, 0, 0, 0, 0 }; bool new_tap = false; for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - if (matrix[i] > old_matrix[i]) { // more 1's detected, there was a new tap + if (matrix_get_row(i) > old_matrix[i]) { // more 1's detected, there was a new tap new_tap = true; } - old_matrix[i] = matrix[i]; + old_matrix[i] = matrix_get_row(i); } return new_tap; } diff --git a/keyboards/gmmk/numpad/matrix.c b/keyboards/gmmk/numpad/matrix.c index 8d6e641a77..18a4ee7c46 100644 --- a/keyboards/gmmk/numpad/matrix.c +++ b/keyboards/gmmk/numpad/matrix.c @@ -1,9 +1,6 @@ // Copyright 2023 Cameron Varley (@RustedAperture) // SPDX-License-Identifier: GPL-2.0-or-later -/* - * scan matrix - */ #include "matrix.h" #include #include "atomic_util.h" @@ -11,13 +8,8 @@ #include "print.h" #include "debug.h" -/* matrix state(1:on, 0:off) */ -extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values - static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; -#define MATRIX_ROW_SHIFTER ((matrix_row_t)1) static inline void gpio_atomic_set_pin_output_low(pin_t pin) { ATOMIC_BLOCK_FORCEON { diff --git a/keyboards/sekigon/grs_70ec/matrix.c b/keyboards/sekigon/grs_70ec/matrix.c index cd582b30e4..e6d6281812 100644 --- a/keyboards/sekigon/grs_70ec/matrix.c +++ b/keyboards/sekigon/grs_70ec/matrix.c @@ -35,10 +35,6 @@ #define ROWS_PER_HAND (MATRIX_ROWS / 2) -/* matrix state(1:on, 0:off) */ -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values -extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values - // row offsets for each hand static uint8_t thisHand, thatHand; diff --git a/keyboards/work_louder/micro/matrix.c b/keyboards/work_louder/micro/matrix.c index 3944d676de..1c53487949 100644 --- a/keyboards/work_louder/micro/matrix.c +++ b/keyboards/work_louder/micro/matrix.c @@ -1,9 +1,6 @@ // Copyright 2022 Christopher Courtney, aka Drashna Jael're (@drashna) // SPDX-License-Identifier: GPL-2.0-or-later -/* - * scan matrix - */ #include "matrix.h" #include #include "atomic_util.h" @@ -12,13 +9,8 @@ #include "util.h" #include "debounce.h" -/* matrix state(1:on, 0:off) */ -extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values - static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; -#define MATRIX_ROW_SHIFTER ((matrix_row_t)1) static inline void gpio_atomic_set_pin_output_low(pin_t pin) { ATOMIC_BLOCK_FORCEON { From db4d8823d60af7b5904c397dcc005a0aab2904f1 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 10 Feb 2026 16:47:41 +0000 Subject: [PATCH 206/255] Migrate ROW_SHIFTER to core MATRIX_ROW_SHIFTER (#25977) --- keyboards/converter/ibm_terminal/matrix.c | 2 -- keyboards/dc01/arrow/matrix.c | 9 +++------ keyboards/dc01/left/matrix.c | 9 +++------ keyboards/dc01/numpad/matrix.c | 9 +++------ keyboards/dc01/right/matrix.c | 9 +++------ keyboards/dichotomy/matrix.c | 3 --- keyboards/frobiac/blackbowl/matrix.c | 5 ++--- keyboards/handwired/dactyl/matrix.c | 10 ++++------ keyboards/handwired/owlet60/matrix.c | 5 +---- keyboards/handwired/promethium/matrix.c | 7 ++----- keyboards/handwired/pterodactyl/matrix.c | 10 ++++------ keyboards/jones/v03/matrix.c | 6 ++---- keyboards/jones/v03_1/matrix.c | 6 ++---- keyboards/kakunpc/angel64/alpha/matrix.c | 9 +++------ keyboards/kakunpc/angel64/rev1/matrix.c | 9 +++------ keyboards/kakunpc/choc_taro/matrix.c | 14 +++----------- keyboards/kakunpc/thedogkeyboard/matrix.c | 9 +++------ keyboards/kbdmania/kmac/matrix.c | 11 ++++------- keyboards/keyhive/honeycomb/matrix.c | 3 --- keyboards/minimon/bartlesplit/matrix.c | 6 ++---- keyboards/nek_type_a/matrix.c | 9 +++------ keyboards/om60/matrix.c | 14 +++----------- keyboards/redscarf_iiplus/verb/matrix.c | 11 ++++------- keyboards/redscarf_iiplus/verc/matrix.c | 11 ++++------- keyboards/redscarf_iiplus/verd/matrix.c | 11 ++++------- keyboards/sx60/matrix.c | 5 +---- keyboards/woodkeys/meira/matrix.c | 7 ++----- 27 files changed, 68 insertions(+), 151 deletions(-) diff --git a/keyboards/converter/ibm_terminal/matrix.c b/keyboards/converter/ibm_terminal/matrix.c index d245ff61b2..005847d185 100644 --- a/keyboards/converter/ibm_terminal/matrix.c +++ b/keyboards/converter/ibm_terminal/matrix.c @@ -27,8 +27,6 @@ along with this program. If not, see . #define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) #define print_matrix_header() print("\nr/c 01234567\n") -#define ROW_SHIFTER ((uint8_t)1) - static void matrix_make(uint8_t code); static void matrix_break(uint8_t code); diff --git a/keyboards/dc01/arrow/matrix.c b/keyboards/dc01/arrow/matrix.c index 211855c300..44f0d5f8dc 100644 --- a/keyboards/dc01/arrow/matrix.c +++ b/keyboards/dc01/arrow/matrix.c @@ -48,15 +48,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -252,7 +249,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -314,12 +311,12 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if ((_SFR_IO8(row_pins[row_index] >> 4) & _BV(row_pins[row_index] & 0xF)) == 0) { // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/dc01/left/matrix.c b/keyboards/dc01/left/matrix.c index 39e5be5a1d..254e49290d 100644 --- a/keyboards/dc01/left/matrix.c +++ b/keyboards/dc01/left/matrix.c @@ -52,15 +52,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -277,7 +274,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -339,12 +336,12 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if ((_SFR_IO8(row_pins[row_index] >> 4) & _BV(row_pins[row_index] & 0xF)) == 0) { // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/dc01/numpad/matrix.c b/keyboards/dc01/numpad/matrix.c index 73b245f56e..cfe8046c77 100644 --- a/keyboards/dc01/numpad/matrix.c +++ b/keyboards/dc01/numpad/matrix.c @@ -48,15 +48,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -252,7 +249,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -314,12 +311,12 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if ((_SFR_IO8(row_pins[row_index] >> 4) & _BV(row_pins[row_index] & 0xF)) == 0) { // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/dc01/right/matrix.c b/keyboards/dc01/right/matrix.c index f9b6738145..e903edd317 100644 --- a/keyboards/dc01/right/matrix.c +++ b/keyboards/dc01/right/matrix.c @@ -46,15 +46,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -250,7 +247,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -312,12 +309,12 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if ((_SFR_IO8(row_pins[row_index] >> 4) & _BV(row_pins[row_index] & 0xF)) == 0) { // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/dichotomy/matrix.c b/keyboards/dichotomy/matrix.c index a3c94275eb..0dfdac0460 100755 --- a/keyboards/dichotomy/matrix.c +++ b/keyboards/dichotomy/matrix.c @@ -34,15 +34,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #define MAIN_ROWMASK 0xFFF0; diff --git a/keyboards/frobiac/blackbowl/matrix.c b/keyboards/frobiac/blackbowl/matrix.c index 2a2c2618ab..1210538734 100644 --- a/keyboards/frobiac/blackbowl/matrix.c +++ b/keyboards/frobiac/blackbowl/matrix.c @@ -20,7 +20,6 @@ #include "timer.h" #define MATRIX_ROWS_PER_SIDE (MATRIX_ROWS / 2) -#define ROW_SHIFTER ((matrix_row_t)1) static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col); @@ -100,10 +99,10 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if (col_state & (1 << current_row)) { // key closed; set state bit in matrix - current_matrix[current_row] |= (ROW_SHIFTER << current_col); + current_matrix[current_row] |= (MATRIX_ROW_SHIFTER << current_col); } else { // key open; clear state bit in matrix - current_matrix[current_row] &= ~(ROW_SHIFTER << current_col); + current_matrix[current_row] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine whether the matrix changed state diff --git a/keyboards/handwired/dactyl/matrix.c b/keyboards/handwired/dactyl/matrix.c index 140f4236c1..9846676112 100644 --- a/keyboards/handwired/dactyl/matrix.c +++ b/keyboards/handwired/dactyl/matrix.c @@ -76,8 +76,6 @@ uint8_t expander_status; uint8_t expander_input_pin_mask; bool i2c_initialized = false; -#define ROW_SHIFTER ((matrix_row_t)1) - __attribute__ ((weak)) void matrix_init_user(void) {} @@ -284,7 +282,7 @@ uint8_t matrix_scan(void) inline bool matrix_is_on(uint8_t row, uint8_t col) { - return (matrix[row] & (ROW_SHIFTER << col)); + return (matrix[row] & (MATRIX_ROW_SHIFTER << col)); } inline @@ -344,7 +342,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) if (! col_expanded[col_index]) { uint8_t pin = onboard_col_pins[col_index]; uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } } @@ -432,10 +430,10 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if (column_state & (1 << current_row)) { // key closed; set state bit in matrix - current_matrix[current_row] |= (ROW_SHIFTER << current_col); + current_matrix[current_row] |= (MATRIX_ROW_SHIFTER << current_col); } else { // key open; clear state bit in matrix - current_matrix[current_row] &= ~(ROW_SHIFTER << current_col); + current_matrix[current_row] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine whether the matrix changed state diff --git a/keyboards/handwired/owlet60/matrix.c b/keyboards/handwired/owlet60/matrix.c index 2017b4de85..bc4e698966 100644 --- a/keyboards/handwired/owlet60/matrix.c +++ b/keyboards/handwired/owlet60/matrix.c @@ -31,15 +31,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif static const uint8_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; @@ -150,7 +147,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = gpio_read_pin(dat_pin); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row diff --git a/keyboards/handwired/promethium/matrix.c b/keyboards/handwired/promethium/matrix.c index 9f6d707aab..4c9b91b6dc 100644 --- a/keyboards/handwired/promethium/matrix.c +++ b/keyboards/handwired/promethium/matrix.c @@ -43,15 +43,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -227,7 +224,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << tp_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << tp_index); } return (last_row_value != current_matrix[current_row]); } @@ -245,7 +242,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row diff --git a/keyboards/handwired/pterodactyl/matrix.c b/keyboards/handwired/pterodactyl/matrix.c index 54da26a7d4..6c8825874c 100644 --- a/keyboards/handwired/pterodactyl/matrix.c +++ b/keyboards/handwired/pterodactyl/matrix.c @@ -86,8 +86,6 @@ uint8_t expander_status; uint8_t expander_input_pin_mask; bool i2c_initialized = false; -#define ROW_SHIFTER ((matrix_row_t)1) - __attribute__ ((weak)) void matrix_init_user(void) {} @@ -256,7 +254,7 @@ uint8_t matrix_scan(void) inline bool matrix_is_on(uint8_t row, uint8_t col) { - return (matrix[row] & (ROW_SHIFTER << col)); + return (matrix[row] & (MATRIX_ROW_SHIFTER << col)); } inline @@ -314,7 +312,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) if (! col_expanded[col_index]) { uint8_t pin = onboard_col_pins[col_index]; uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } } @@ -401,10 +399,10 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if (column_state & (1 << current_row)) { // key closed; set state bit in matrix - current_matrix[current_row] |= (ROW_SHIFTER << current_col); + current_matrix[current_row] |= (MATRIX_ROW_SHIFTER << current_col); } else { // key open; clear state bit in matrix - current_matrix[current_row] &= ~(ROW_SHIFTER << current_col); + current_matrix[current_row] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine whether the matrix changed state diff --git a/keyboards/jones/v03/matrix.c b/keyboards/jones/v03/matrix.c index d8bc134cf7..1f566eaedb 100644 --- a/keyboards/jones/v03/matrix.c +++ b/keyboards/jones/v03/matrix.c @@ -16,8 +16,6 @@ along with this program. If not, see . */ #include "matrix.h" -#define ROW_SHIFTER ((uint16_t)1) - static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; @@ -62,10 +60,10 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) // Check col pin pin_state if (gpio_read_pin(col_pins[col_index]) == 0) { // Pin LO, set col bit - current_matrix[current_row] |= (ROW_SHIFTER << col_index); + current_matrix[current_row] |= (MATRIX_ROW_SHIFTER << col_index); } else { // Pin HI, clear col bit - current_matrix[current_row] &= ~(ROW_SHIFTER << col_index); + current_matrix[current_row] &= ~(MATRIX_ROW_SHIFTER << col_index); } } } diff --git a/keyboards/jones/v03_1/matrix.c b/keyboards/jones/v03_1/matrix.c index d8bc134cf7..1f566eaedb 100644 --- a/keyboards/jones/v03_1/matrix.c +++ b/keyboards/jones/v03_1/matrix.c @@ -16,8 +16,6 @@ along with this program. If not, see . */ #include "matrix.h" -#define ROW_SHIFTER ((uint16_t)1) - static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; @@ -62,10 +60,10 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) // Check col pin pin_state if (gpio_read_pin(col_pins[col_index]) == 0) { // Pin LO, set col bit - current_matrix[current_row] |= (ROW_SHIFTER << col_index); + current_matrix[current_row] |= (MATRIX_ROW_SHIFTER << col_index); } else { // Pin HI, clear col bit - current_matrix[current_row] &= ~(ROW_SHIFTER << col_index); + current_matrix[current_row] &= ~(MATRIX_ROW_SHIFTER << col_index); } } } diff --git a/keyboards/kakunpc/angel64/alpha/matrix.c b/keyboards/kakunpc/angel64/alpha/matrix.c index b1bcadc9dd..50213d5b80 100644 --- a/keyboards/kakunpc/angel64/alpha/matrix.c +++ b/keyboards/kakunpc/angel64/alpha/matrix.c @@ -24,15 +24,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -149,7 +146,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = gpio_read_pin(col_pins[col_index]); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -174,10 +171,10 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) // Check row pin state if (gpio_read_pin(row_pins[row_index]) == 0) { // Pin LO, set col bit - current_matrix[tmp] |= (ROW_SHIFTER << current_col); + current_matrix[tmp] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[tmp] &= ~(ROW_SHIFTER << current_col); + current_matrix[tmp] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/kakunpc/angel64/rev1/matrix.c b/keyboards/kakunpc/angel64/rev1/matrix.c index b1bcadc9dd..50213d5b80 100644 --- a/keyboards/kakunpc/angel64/rev1/matrix.c +++ b/keyboards/kakunpc/angel64/rev1/matrix.c @@ -24,15 +24,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -149,7 +146,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = gpio_read_pin(col_pins[col_index]); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -174,10 +171,10 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) // Check row pin state if (gpio_read_pin(row_pins[row_index]) == 0) { // Pin LO, set col bit - current_matrix[tmp] |= (ROW_SHIFTER << current_col); + current_matrix[tmp] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[tmp] &= ~(ROW_SHIFTER << current_col); + current_matrix[tmp] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/kakunpc/choc_taro/matrix.c b/keyboards/kakunpc/choc_taro/matrix.c index 20cdf9de85..ec2af403db 100644 --- a/keyboards/kakunpc/choc_taro/matrix.c +++ b/keyboards/kakunpc/choc_taro/matrix.c @@ -16,14 +16,6 @@ along with this program. If not, see . */ #include "matrix.h" -#if (MATRIX_COLS <= 8) -# define ROW_SHIFTER ((uint8_t)1) -#elif (MATRIX_COLS <= 16) -# define ROW_SHIFTER ((uint16_t)1) -#elif (MATRIX_COLS <= 32) -# define ROW_SHIFTER ((uint32_t)1) -#endif - static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; @@ -88,7 +80,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = gpio_read_pin(col_pins[col_index]); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -113,10 +105,10 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) // Check row pin state if (gpio_read_pin(row_pins[row_index]) == 0) { // Pin LO, set col bit - current_matrix[tmp] |= (ROW_SHIFTER << current_col); + current_matrix[tmp] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[tmp] &= ~(ROW_SHIFTER << current_col); + current_matrix[tmp] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/kakunpc/thedogkeyboard/matrix.c b/keyboards/kakunpc/thedogkeyboard/matrix.c index b1bcadc9dd..50213d5b80 100644 --- a/keyboards/kakunpc/thedogkeyboard/matrix.c +++ b/keyboards/kakunpc/thedogkeyboard/matrix.c @@ -24,15 +24,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -149,7 +146,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = gpio_read_pin(col_pins[col_index]); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -174,10 +171,10 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) // Check row pin state if (gpio_read_pin(row_pins[row_index]) == 0) { // Pin LO, set col bit - current_matrix[tmp] |= (ROW_SHIFTER << current_col); + current_matrix[tmp] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[tmp] &= ~(ROW_SHIFTER << current_col); + current_matrix[tmp] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/kbdmania/kmac/matrix.c b/keyboards/kbdmania/kmac/matrix.c index 885dcd407c..60e63281ba 100644 --- a/keyboards/kbdmania/kmac/matrix.c +++ b/keyboards/kbdmania/kmac/matrix.c @@ -24,15 +24,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; @@ -157,18 +154,18 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if (row_index == 3 && current_col == 0) { if (gpio_read_pin(E2) == 0) { // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col); } } else { if (gpio_read_pin(row_pins[row_index]) == 0) { // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col); } else { // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col); } } diff --git a/keyboards/keyhive/honeycomb/matrix.c b/keyboards/keyhive/honeycomb/matrix.c index 64008228af..a34458e09e 100755 --- a/keyboards/keyhive/honeycomb/matrix.c +++ b/keyboards/keyhive/honeycomb/matrix.c @@ -35,15 +35,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #define UART_MATRIX_RESPONSE_TIMEOUT 10000 diff --git a/keyboards/minimon/bartlesplit/matrix.c b/keyboards/minimon/bartlesplit/matrix.c index 4be8496dcf..df6a5a7b84 100644 --- a/keyboards/minimon/bartlesplit/matrix.c +++ b/keyboards/minimon/bartlesplit/matrix.c @@ -24,8 +24,6 @@ along with this program. If not, see . #include "matrix.h" #include "quantum.h" -#define ROW_SHIFTER ((uint16_t)1) - static const pin_t row_pins[] = MATRIX_ROW_PINS; static const pin_t col_pins[] = MATRIX_COL_PINS; @@ -74,7 +72,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) // For each col... for (uint8_t col_index = 0; col_index < MATRIX_COLS / 2; col_index++) { - uint16_t column_index_bitmask = ROW_SHIFTER << ((col_index * 2) + 1); + uint16_t column_index_bitmask = MATRIX_ROW_SHIFTER << ((col_index * 2) + 1); // Check row pin state if (gpio_read_pin(col_pins[col_index*2])) { // Pin HI, clear col bit @@ -103,7 +101,7 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) // Store last value of row prior to reading matrix_row_t last_row_value = current_matrix[row_index]; - uint16_t column_index_bitmask = ROW_SHIFTER << (current_col * 2); + uint16_t column_index_bitmask = MATRIX_ROW_SHIFTER << (current_col * 2); // Check row pin state if (gpio_read_pin(row_pins[row_index])) { // Pin HI, clear col bit diff --git a/keyboards/nek_type_a/matrix.c b/keyboards/nek_type_a/matrix.c index 76613947f6..8e620db55e 100644 --- a/keyboards/nek_type_a/matrix.c +++ b/keyboards/nek_type_a/matrix.c @@ -50,15 +50,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -251,7 +248,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -312,12 +309,12 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if ((_SFR_IO8(row_pins[row_index] >> 4) & _BV(row_pins[row_index] & 0xF)) == 0) { // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/om60/matrix.c b/keyboards/om60/matrix.c index 837abcdca1..b7d4116993 100644 --- a/keyboards/om60/matrix.c +++ b/keyboards/om60/matrix.c @@ -18,14 +18,6 @@ along with this program. If not, see . #include "matrix.h" #include "wait.h" -#if (MATRIX_COLS <= 8) -# define ROW_SHIFTER ((uint8_t)1) -#elif (MATRIX_COLS <= 16) -# define ROW_SHIFTER ((uint16_t)1) -#elif (MATRIX_COLS <= 32) -# define ROW_SHIFTER ((uint32_t)1) -#endif - static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; @@ -95,7 +87,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = gpio_read_pin(col_pins[col_index]); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -123,12 +115,12 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if (gpio_read_pin(row_pins[row_index]) == 0) { // Pin LO, set col bit - current_matrix[tmp] |= (ROW_SHIFTER << current_col); + current_matrix[tmp] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[tmp] &= ~(ROW_SHIFTER << current_col); + current_matrix[tmp] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/redscarf_iiplus/verb/matrix.c b/keyboards/redscarf_iiplus/verb/matrix.c index 4895c71737..aab10abe17 100644 --- a/keyboards/redscarf_iiplus/verb/matrix.c +++ b/keyboards/redscarf_iiplus/verb/matrix.c @@ -24,15 +24,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -115,7 +112,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { pin_t pin = direct_pins[current_row][col_index]; if (pin != NO_PIN) { - current_matrix[current_row] |= gpio_read_pin(pin) ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= gpio_read_pin(pin) ? 0 : (MATRIX_ROW_SHIFTER << col_index); } } @@ -224,7 +221,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = gpio_read_pin(col_pins[col_index]); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -272,10 +269,10 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) // Check row pin state if (gpio_read_pin(row_pins[row_index]) == 0) { // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/redscarf_iiplus/verc/matrix.c b/keyboards/redscarf_iiplus/verc/matrix.c index 4895c71737..aab10abe17 100644 --- a/keyboards/redscarf_iiplus/verc/matrix.c +++ b/keyboards/redscarf_iiplus/verc/matrix.c @@ -24,15 +24,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -115,7 +112,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { pin_t pin = direct_pins[current_row][col_index]; if (pin != NO_PIN) { - current_matrix[current_row] |= gpio_read_pin(pin) ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= gpio_read_pin(pin) ? 0 : (MATRIX_ROW_SHIFTER << col_index); } } @@ -224,7 +221,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = gpio_read_pin(col_pins[col_index]); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -272,10 +269,10 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) // Check row pin state if (gpio_read_pin(row_pins[row_index]) == 0) { // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/redscarf_iiplus/verd/matrix.c b/keyboards/redscarf_iiplus/verd/matrix.c index 942333b06f..effd5cbbdb 100644 --- a/keyboards/redscarf_iiplus/verd/matrix.c +++ b/keyboards/redscarf_iiplus/verd/matrix.c @@ -24,15 +24,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -115,7 +112,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { pin_t pin = direct_pins[current_row][col_index]; if (pin != NO_PIN) { - current_matrix[current_row] |= gpio_read_pin(pin) ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= gpio_read_pin(pin) ? 0 : (MATRIX_ROW_SHIFTER << col_index); } } @@ -224,7 +221,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = gpio_read_pin(col_pins[col_index]); // Populate the matrix row with the state of the col pin - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } // Unselect row @@ -272,10 +269,10 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) // Check row pin state if (gpio_read_pin(row_pins[row_index]) == 0) { // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state diff --git a/keyboards/sx60/matrix.c b/keyboards/sx60/matrix.c index 22f37db539..62de53137a 100644 --- a/keyboards/sx60/matrix.c +++ b/keyboards/sx60/matrix.c @@ -42,15 +42,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif #ifdef MATRIX_MASKED @@ -227,7 +224,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) uint8_t pin_state = (_SFR_IO8(pin >> 4) & _BV(pin & 0xF)); /* Populate the matrix row with the state of the col pin */ - current_matrix[current_row] |= pin_state ? 0 : (ROW_SHIFTER << col_index); + current_matrix[current_row] |= pin_state ? 0 : (MATRIX_ROW_SHIFTER << col_index); } /* Unselect row */ diff --git a/keyboards/woodkeys/meira/matrix.c b/keyboards/woodkeys/meira/matrix.c index e08782dd40..992fbfe637 100644 --- a/keyboards/woodkeys/meira/matrix.c +++ b/keyboards/woodkeys/meira/matrix.c @@ -38,15 +38,12 @@ along with this program. If not, see . #if (MATRIX_COLS <= 8) # define print_matrix_header() print("\nr/c 01234567\n") # define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define ROW_SHIFTER ((uint8_t)1) #elif (MATRIX_COLS <= 16) # define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define ROW_SHIFTER ((uint16_t)1) #elif (MATRIX_COLS <= 32) # define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") # define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define ROW_SHIFTER ((uint32_t)1) #endif static matrix_row_t matrix_debouncing[MATRIX_ROWS]; @@ -202,12 +199,12 @@ static bool read_rows_on_col(matrix_row_t current_matrix[], uint8_t current_col) if ((_SFR_IO8(row_pins[row_index] >> 4) & _BV(row_pins[row_index] & 0xF)) == 0) { // Pin LO, set col bit - current_matrix[row_index] |= (ROW_SHIFTER << current_col); + current_matrix[row_index] |= (MATRIX_ROW_SHIFTER << current_col); } else { // Pin HI, clear col bit - current_matrix[row_index] &= ~(ROW_SHIFTER << current_col); + current_matrix[row_index] &= ~(MATRIX_ROW_SHIFTER << current_col); } // Determine if the matrix changed state From a170e6f191cb9ce9e6abd535a7c1e27d3652a55f Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 10 Feb 2026 16:48:09 +0000 Subject: [PATCH 207/255] Update lint to validate keymap names (#25969) --- lib/python/qmk/cli/lint.py | 15 +++++++++------ lib/python/qmk/keymap.py | 8 ++++++++ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/lib/python/qmk/cli/lint.py b/lib/python/qmk/cli/lint.py index 8a128ce6d2..a05bd2fa7e 100644 --- a/lib/python/qmk/cli/lint.py +++ b/lib/python/qmk/cli/lint.py @@ -8,7 +8,7 @@ from milc import cli from qmk.decorators import automagic_keyboard, automagic_keymap from qmk.info import info_json from qmk.keyboard import keyboard_completer, keyboard_folder_or_all, is_all_keyboards, list_keyboards -from qmk.keymap import locate_keymap, list_keymaps +from qmk.keymap import locate_keymap, list_keymaps, is_valid_keymap_name from qmk.path import keyboard from qmk.git import git_get_ignored_files from qmk.c_parse import c_source_files, preprocess_c_file @@ -245,18 +245,21 @@ def _handle_duplicating_code_defaults(kb, info): def keymap_check(kb, km): """Perform the keymap level checks. """ - ok = True keymap_path = locate_keymap(kb, km) if not keymap_path: - ok = False cli.log.error("%s: Can't find %s keymap.", kb, km) - return ok + return False if km in INVALID_KM_NAMES: - ok = False cli.log.error("%s: The keymap %s should not exist!", kb, km) - return ok + return False + + ok = True + + if not is_valid_keymap_name(km): + cli.log.error(f'{kb}/{km}: Keymap name must contain only a-z, 0-9 and _!') + ok = False # Additional checks invalid_files = git_get_ignored_files(keymap_path.parent.as_posix()) diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py index 36a821ebda..4c7b391362 100644 --- a/lib/python/qmk/keymap.py +++ b/lib/python/qmk/keymap.py @@ -1,6 +1,7 @@ """Functions that help you work with QMK keymaps. """ import sys +import re from pathlib import Path from subprocess import DEVNULL @@ -239,6 +240,13 @@ def is_keymap_dir(keymap, c=True, json=True, additional_files=None): return True +def is_valid_keymap_name(name): + """Returns True if the given keymap name contains only valid characters. + """ + regex = re.compile(r'^[a-z0-9][a-z0-9_]+$') + return bool(regex.match(name)) + + def generate_json(keymap, keyboard, layout, layers, macros=None): """Returns a `keymap.json` for the specified keyboard, layout, and layers. From fac1210609b925160512fc74a211a6a7d033ac41 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 10 Feb 2026 23:39:49 +0000 Subject: [PATCH 208/255] Enforce EOL when formatting files (#24989) --- lib/python/qmk/cli/format/text.py | 55 ++++++++++++++++++++++++++++--- 1 file changed, 50 insertions(+), 5 deletions(-) diff --git a/lib/python/qmk/cli/format/text.py b/lib/python/qmk/cli/format/text.py index 344631081b..861220eac8 100644 --- a/lib/python/qmk/cli/format/text.py +++ b/lib/python/qmk/cli/format/text.py @@ -5,7 +5,20 @@ from subprocess import DEVNULL from milc import cli -from qmk.path import normpath +from qmk.path import normpath, is_relative_to + +IGNORE_SUFFIXES = [ + 'hex', + 'ico', + 'jpeg', + 'jpg', + 'png', +] +IGNORE_DIRS = [ + 'lib/fnv', + 'lib/lib8tion', + 'lib/usbhost', +] def _get_chunks(it, size): @@ -15,16 +28,40 @@ def _get_chunks(it, size): return iter(lambda: tuple(islice(it, size)), ()) +def _check_dos2unix(): + """Check for a 'valid' dos2unix executable + """ + dos2unix = cli.run(['dos2unix', '--help']) + return dos2unix.returncode == 0 and '--add-eol' in dos2unix.stdout + + def dos2unix_run(files): """Spawn multiple dos2unix subprocess avoiding too long commands on formatting everything """ for chunk in _get_chunks([normpath(file).as_posix() for file in files], 10): - dos2unix = cli.run(['dos2unix', *chunk]) + dos2unix = cli.run(['dos2unix', '--add-eol', *chunk]) if dos2unix.returncode: + cli.log.debug(dos2unix.stdout) + cli.log.error(dos2unix.stderr) return False +def filter_files(files): + """Yield only files to be formatted and skip the rest + """ + ret = [] + + for file in map(normpath, filter(None, files)): + if file.suffix[1:] in IGNORE_SUFFIXES: + continue + + if not any(is_relative_to(file, i) for i in IGNORE_DIRS): + ret.append(file) + + return ret + + @cli.argument('-b', '--base-branch', default='origin/master', help='Branch to compare to diffs to.') @cli.argument('-a', '--all-files', arg_only=True, action='store_true', help='Format all files.') @cli.argument('files', nargs='*', arg_only=True, type=normpath, help='Filename(s) to format.') @@ -32,9 +69,17 @@ def dos2unix_run(files): def format_text(cli): """Ensure text files have the proper line endings. """ + if not _check_dos2unix(): + cli.log.error('Formatting requires an up-to-date version of "dos2unix"') + return False + # Find the list of files to format if cli.args.files: - files = list(cli.args.files) + files = filter_files(cli.args.files) + + if not files: + cli.log.error('No valid files in filelist: %s', ', '.join(map(str, cli.args.files))) + return False if cli.args.all_files: cli.log.warning('Filenames passed with -a, only formatting: %s', ','.join(map(str, files))) @@ -42,12 +87,12 @@ def format_text(cli): elif cli.args.all_files: git_ls_cmd = ['git', 'ls-files'] git_ls = cli.run(git_ls_cmd, stdin=DEVNULL) - files = list(filter(None, git_ls.stdout.split('\n'))) + files = filter_files(git_ls.stdout.split('\n')) else: git_diff_cmd = ['git', 'diff', '--name-only', cli.args.base_branch] git_diff = cli.run(git_diff_cmd, stdin=DEVNULL) - files = list(filter(None, git_diff.stdout.split('\n'))) + files = filter_files(git_diff.stdout.split('\n')) # Sanity check if not files: From 5ad6d44e1834ebba4b3fd8c8745dcf7b32ea5b76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josip=20=C5=A0imun=20Ku=C4=8Di?= <131808461+JosipKuci@users.noreply.github.com> Date: Wed, 11 Feb 2026 15:16:55 +0100 Subject: [PATCH 209/255] [Keyboard] Add Soldered Macro Pad (#25834) Co-authored-by: Drashna Jaelre --- keyboards/soldered/macro_pad/keyboard.json | 42 +++++++++++++++++++ .../macro_pad/keymaps/default/keymap.c | 35 ++++++++++++++++ .../macro_pad/keymaps/default/rules.mk | 1 + keyboards/soldered/macro_pad/readme.md | 23 ++++++++++ 4 files changed, 101 insertions(+) create mode 100644 keyboards/soldered/macro_pad/keyboard.json create mode 100644 keyboards/soldered/macro_pad/keymaps/default/keymap.c create mode 100644 keyboards/soldered/macro_pad/keymaps/default/rules.mk create mode 100644 keyboards/soldered/macro_pad/readme.md diff --git a/keyboards/soldered/macro_pad/keyboard.json b/keyboards/soldered/macro_pad/keyboard.json new file mode 100644 index 0000000000..17699dac4b --- /dev/null +++ b/keyboards/soldered/macro_pad/keyboard.json @@ -0,0 +1,42 @@ +{ + "manufacturer": "Soldered Electronics", + "keyboard_name": "Soldered Macro Pad", + "maintainer": "SolderedElectronics", + "bootloader": "rp2040", + "encoder": { + "rotary": [ + {"pin_a": "GP18", "pin_b": "GP20"} + ] + }, + "features": { + "bootmagic": true, + "encoder": true, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "direct": [ + ["GP9", "GP11", "GP19"], + ["GP10", "GP12", "GP13"] + ] + }, + "processor": "RP2040", + "usb": { + "device_version": "1.0.0", + "pid": "0xAB3C", + "vid": "0xFEED" + }, + "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": [1, 0], "x": 0, "y": 1}, + {"matrix": [1, 1], "x": 1, "y": 1}, + {"matrix": [1, 2], "x": 2, "y": 1} + ] + } + } +} diff --git a/keyboards/soldered/macro_pad/keymaps/default/keymap.c b/keyboards/soldered/macro_pad/keymaps/default/keymap.c new file mode 100644 index 0000000000..7dec49cd59 --- /dev/null +++ b/keyboards/soldered/macro_pad/keymaps/default/keymap.c @@ -0,0 +1,35 @@ +/* Copyright 2025 Soldered Electronics + * + * 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 + +// Layer 0: media + utilities +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT( + KC_MPRV, // Previous Track + KC_MNXT, // Next Track + KC_MUTE, // Mute / Unmute - encoder button + KC_MPLY, // Play / Pause + KC_CALC, // Launch Calculator + KC_MAIL // Launch Email client + ) +}; + +#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/soldered/macro_pad/keymaps/default/rules.mk b/keyboards/soldered/macro_pad/keymaps/default/rules.mk new file mode 100644 index 0000000000..3beeda7684 --- /dev/null +++ b/keyboards/soldered/macro_pad/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/soldered/macro_pad/readme.md b/keyboards/soldered/macro_pad/readme.md new file mode 100644 index 0000000000..2cad8485f5 --- /dev/null +++ b/keyboards/soldered/macro_pad/readme.md @@ -0,0 +1,23 @@ +# Soldered Macro Pad + +![soldered_macro_pad](https://i.imgur.com/Sj12LhW.jpeg) + +Make your own Macro Pad! Soldered Macro Pad Solder Kit is a soldering kit which - when finished - turns into a functional macro pad! Using the pre-loaded QMK firmware, you can map the buttons to any custom function. Easily connect via USB-C. Soldered makes open source products for makers of all skill levels - so we thought to make a 'learn to solder' kit which leaves you with a functional result you can use in your day-to-day computing. + +* Keyboard Maintainer: [Soldered Electronics](https://github.com/SolderedElectronics) +* Hardware Supported: Soldered Macro Pad PCB - Open source files and documentation are coming soon +* Hardware Availability: Product links will be added soon, upon product launch, on [soldered.com](https://soldered.com) + +Make example for this keyboard (after setting up your build environment): + + make soldered/macro_pad:default + +Flashing example for this keyboard: + + make soldered/macro_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 by holding the BOOT MEMORY button upon plugging in. That's it! There you can copy your new .uf2 file. From 4f7a7873c84bc5070a48003fc8fa455f5678add9 Mon Sep 17 00:00:00 2001 From: QMK Bot Date: Thu, 12 Feb 2026 03:06:13 +1100 Subject: [PATCH 210/255] [CI] Format code according to conventions (#26000) Format code according to conventions --- docs/public/pin_compatible_elite_c.svg | 2 +- docs/public/pin_compatible_promicro.svg | 2 +- keyboards/0xc7/61key/keymaps/default/keymap.c | 2 +- keyboards/0xcb/tutelpad/keymaps/default/keymap.c | 2 +- keyboards/0xcb/tutelpad/tutelpad.c | 2 +- keyboards/1upkeyboards/1upslider8/keymaps/default/rules.mk | 2 +- keyboards/1upkeyboards/pi40/halconf.h | 2 +- keyboards/1upkeyboards/pi40/keymaps/default/rules.mk | 2 +- keyboards/1upkeyboards/pi40/mcuconf.h | 2 +- keyboards/1upkeyboards/pi40/pi40.c | 2 +- keyboards/1upkeyboards/pi50/grid/keyboard.json | 2 +- keyboards/1upkeyboards/pi50/halconf.h | 2 +- keyboards/1upkeyboards/pi50/keymaps/default/rules.mk | 2 +- keyboards/1upkeyboards/pi50/mcuconf.h | 2 +- keyboards/1upkeyboards/pi60/keymaps/default/rules.mk | 2 +- keyboards/1upkeyboards/readme.md | 2 +- keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c | 2 +- keyboards/30wer/readme.md | 2 +- .../3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.h | 2 +- keyboards/4pplet/ibe60/keymaps/default/keymap.c | 2 +- keyboards/4pplet/waffling60/rev_e_iso/matrix_diagram.md | 2 +- keyboards/7c8/framework/readme.md | 2 +- keyboards/8pack/readme.md | 2 +- keyboards/9key/readme.md | 2 +- keyboards/a_jazz/akc084/keymaps/default/keymap.c | 2 +- keyboards/abstract/ellipse/keymaps/default/readme.md | 2 +- keyboards/acheron/austin/readme.md | 2 +- keyboards/adm42/rev4/keymaps/default/keymap.json | 2 +- keyboards/adpenrose/kintsugi/post_config.h | 2 +- keyboards/adpenrose/mine/keymaps/default/keymap.c | 2 +- keyboards/adpenrose/mine/keymaps/default/rules.mk | 2 +- keyboards/adpenrose/mine/keymaps/iso/keymap.c | 2 +- keyboards/adpenrose/mine/keymaps/iso/rules.mk | 2 +- keyboards/adpenrose/mine/matrix_diagram.md | 2 +- keyboards/adpenrose/mine/rules.mk | 2 +- keyboards/aeboards/aegis/readme.md | 2 +- keyboards/ai03/jp60/keymaps/default/rules.mk | 2 +- keyboards/ai03/readme.md | 2 +- keyboards/aidansmithdotdev/fine40/keymaps/default/keymap.c | 2 +- keyboards/akko/top40/top40.c | 2 +- keyboards/aliceh66/pianoforte/readme.md | 2 +- keyboards/aliceh66/pianoforte_hs/readme.md | 2 +- keyboards/alpaca/wfeclipse/keyboard.json | 2 +- keyboards/amjkeyboard/amj66/keymaps/default/readme.md | 2 +- keyboards/annepro2/boards/ANNEPRO2_C15/board.h | 2 +- keyboards/annepro2/chconf.h | 2 +- keyboards/ano/readme.md | 2 +- keyboards/archerkeyboard/desire65/readme.md | 2 +- keyboards/archetype/minervalx/readme.md | 2 +- .../argo_works/ishi/80/mk0_avr_extra/keymaps/default/keymap.c | 2 +- .../argo_works/ishi/80/mk0_avr_extra/keymaps/default/rules.mk | 2 +- keyboards/argyle/keyboard.json | 2 +- keyboards/arrayperipherals/1x4p1/keymaps/default/readme.md | 2 +- keyboards/arrayperipherals/vector/keymaps/default/keymap.c | 2 +- keyboards/arrayperipherals/vector/keymaps/default/rules.mk | 2 +- keyboards/arrayperipherals/vector/readme.md | 2 +- keyboards/artifact/lvl/rev_hs01/keyboard.json | 2 +- keyboards/atlantis/ak81_ve/keymaps/default/keymap.c | 2 +- keyboards/atlantis/ak81_ve/readme.md | 2 +- keyboards/atlantis/readme.md | 2 +- keyboards/atomic/readme.md | 2 +- keyboards/atset/at1/readme.md | 2 +- keyboards/atset/at12/readme.md | 2 +- keyboards/atset/at3/readme.md | 2 +- keyboards/automata02/alisaie/readme.md | 2 +- keyboards/basekeys/trifecta/keymaps/default/rules.mk | 2 +- keyboards/bestway/keyboard.json | 2 +- keyboards/bestway/readme.md | 2 +- keyboards/blaster75/keymaps/default/readme.md | 2 +- keyboards/blockboy/ac980mini/keymaps/default/keymap.c | 2 +- keyboards/boardrun/bizarre/keymaps/default/keymap.c | 2 +- keyboards/boardsource/4x12/readme.md | 2 +- keyboards/boardsource/5x12/readme.md | 2 +- keyboards/bobpad/bobpad.c | 2 +- keyboards/boston_meetup/2019/keymaps/default/readme.md | 2 +- keyboards/boston_meetup/2019/readme.md | 2 +- keyboards/boston_meetup/readme.md | 2 +- keyboards/bpiphany/pegasushoof/keymaps/default/keymap.c | 2 +- keyboards/bpiphany/pegasushoof/keymaps/default_jis/keymap.c | 2 +- keyboards/bpiphany/tiger_lily/keymaps/default/keymap.c | 2 +- keyboards/bpiphany/tiger_lily/keymaps/default_ansi/keymap.c | 2 +- keyboards/bredworks/wyvern_hs/keyboard.json | 2 +- keyboards/bredworks/wyvern_hs/keymaps/default/keymap.c | 2 +- keyboards/buildakb/mw60/keyboard.json | 2 +- keyboards/buildakb/mw60/readme.md | 2 +- keyboards/buildakb/potato65hs/keymaps/default/keymap.c | 2 +- keyboards/buildakb/potato65hs/readme.md | 2 +- keyboards/buildakb/potato65s/readme.md | 2 +- keyboards/butterkeebs/pocketpad/keymaps/default/keymap.c | 2 +- keyboards/buzzard/keymaps/default/keymap.c | 2 +- keyboards/buzzard/keymaps/default/rules.mk | 2 +- keyboards/buzzard/readme.md | 2 +- keyboards/buzzard/rev1/rev1.c | 2 +- keyboards/cablecardesigns/cypher/rev6/keymaps/default/config.h | 2 +- .../cablecardesigns/cypher/rev6/keymaps/default_ansi/config.h | 2 +- .../cablecardesigns/cypher/rev6/keymaps/default_iso/config.h | 2 +- keyboards/cannonkeys/bakeneko60_iso_hs/readme.md | 2 +- keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c | 2 +- keyboards/cannonkeys/petrichor/config.h | 2 +- keyboards/cannonkeys/petrichor/keymaps/default/keymap.c | 2 +- keyboards/cannonkeys/reverie/config.h | 2 +- keyboards/cannonkeys/satisfaction75/prototype/keyboard.json | 2 +- keyboards/cannonkeys/satisfaction75/readme.md | 2 +- keyboards/cannonkeys/satisfaction75/rev1/keyboard.json | 2 +- keyboards/cannonkeys/satisfaction75/rev2/keyboard.json | 2 +- keyboards/cannonkeys/satisfaction75/satisfaction75.h | 2 +- keyboards/cannonkeys/satisfaction75_hs/keyboard.json | 2 +- keyboards/cannonkeys/satisfaction75_hs/satisfaction75_hs.h | 2 +- keyboards/capsunlocked/cu24/keymaps/default/readme.md | 2 +- keyboards/cbkbd/acai/readme.md | 2 +- keyboards/cbkbd/coffeevan/matrix_diagram.md | 2 +- keyboards/cbkbd/coffeevan/readme.md | 2 +- keyboards/chalice/keymaps/default/keymap.c | 2 +- keyboards/checkerboards/phoenix45_ortho/readme.md | 2 +- keyboards/chickenman/kami65/readme.md | 2 +- keyboards/chouchou/readme.md | 2 +- keyboards/churrosoft/deck8/info.json | 2 +- keyboards/churrosoft/deck8/keymaps/default/keymap.c | 2 +- keyboards/churrosoft/deck8/noleds/keyboard.json | 2 +- keyboards/churrosoft/deck8/noleds/readme.md | 2 +- keyboards/churrosoft/deck8/rgb/keyboard.json | 2 +- keyboards/churrosoft/deck8/rgb/readme.md | 2 +- keyboards/citrus/erdnuss65/erdnuss65.c | 2 +- keyboards/citrus/erdnuss65/readme.md | 2 +- keyboards/citrus/readme.md | 2 +- keyboards/clickety_split/leeloo/readme.md | 2 +- keyboards/controllerworks/mini36/keymaps/default/config.h | 2 +- keyboards/controllerworks/mini36/keymaps/default/keymap.c | 2 +- keyboards/controllerworks/mini36/mcuconf.h | 2 +- keyboards/controllerworks/mini36/mini36.c | 2 +- keyboards/controllerworks/mini36/readme.md | 2 +- keyboards/controllerworks/mini42/keymaps/default/config.h | 2 +- keyboards/controllerworks/mini42/mcuconf.h | 2 +- keyboards/controllerworks/mini42/readme.md | 2 +- keyboards/converter/hp_46010a/keymaps/default/keymap.c | 2 +- keyboards/converter/hp_46010a/matrix.c | 2 +- keyboards/converter/m0110_usb/keymaps/default/keymap.c | 2 +- keyboards/converter/m0110_usb/matrix.c | 2 +- keyboards/cornia/info.json | 2 +- keyboards/cornia/keymaps/default/keymap.c | 2 +- keyboards/cornia/keymaps/fire/keymap.c | 2 +- keyboards/cornia/keymaps/fire/tap_dances.c | 2 +- keyboards/cornia/mcuconf.h | 2 +- keyboards/cornia/readme.md | 2 +- keyboards/cosmo65/keymaps/default/keymap.c | 2 +- keyboards/custommk/cmk11/keyboard.json | 2 +- keyboards/custommk/cmk11/mcuconf.h | 2 +- keyboards/custommk/elysian/config.h | 2 +- keyboards/custommk/elysian/keyboard.json | 2 +- keyboards/custommk/elysian/keymaps/default/keymap.c | 2 +- keyboards/custommk/elysian/keymaps/default/rules.mk | 2 +- keyboards/custommk/ergostrafer/config.h | 2 +- keyboards/custommk/ergostrafer/keyboard.json | 2 +- keyboards/custommk/ergostrafer/keymaps/default/keymap.c | 2 +- keyboards/custommk/ergostrafer/keymaps/default/rules.mk | 2 +- keyboards/custommk/ergostrafer/mcuconf.h | 2 +- keyboards/custommk/ergostrafer_rgb/keyboard.json | 2 +- keyboards/custommk/ergostrafer_rgb/keymaps/default/keymap.c | 2 +- keyboards/custommk/ergostrafer_rgb/keymaps/default/rules.mk | 2 +- keyboards/custommk/ergostrafer_rgb/mcuconf.h | 2 +- keyboards/custommk/evo70_r2/keymaps/default/keymap.c | 2 +- keyboards/custommk/evo70_r2/rules.mk | 2 +- keyboards/custommk/genesis/rev1/keymaps/default/readme.md | 2 +- keyboards/custommk/genesis/rev2/keymaps/default/keymap.c | 2 +- keyboards/custommk/genesis/rev2/keymaps/default/readme.md | 2 +- keyboards/cutie_club/novus/readme.md | 2 +- keyboards/darkproject/kd83a_bfg_edition/kd83a_bfg_edition.c | 2 +- .../darkproject/kd87a_bfg_edition/keymaps/default/keymap.c | 2 +- keyboards/dc01/arrow/keymaps/default/readme.md | 2 +- keyboards/dc01/numpad/keymaps/default/readme.md | 2 +- keyboards/dc01/numpad/keymaps/ortho_5x4/readme.md | 2 +- keyboards/dcpedit/masonry/keymaps/default/keymap.json | 2 +- keyboards/dcpedit/masonry/readme.md | 2 +- keyboards/dcpedit/redherring/keymaps/default/keymap.c | 2 +- keyboards/dcpedit/redherring/keymaps/default/rules.mk | 2 +- keyboards/dcpedit/redherring/readme.md | 2 +- keyboards/dcpedit/redherring/redherring.c | 2 +- keyboards/decent/tkl/config.h | 2 +- keyboards/decent/tkl/keyboard.json | 2 +- keyboards/decent/tkl/readme.md | 2 +- keyboards/deemen17/de60/readme.md | 2 +- keyboards/demiurge/keymaps/default/keymap.c | 2 +- keyboards/densus/alveus/mx/readme.md | 2 +- keyboards/dnworks/frltkl/readme.md | 2 +- keyboards/dnworks/numpad/keyboard.json | 2 +- keyboards/dnworks/numpad/readme.md | 2 +- keyboards/dnworks/sbl/readme.md | 2 +- keyboards/dnworks/tkl87/readme.md | 2 +- keyboards/do60/readme.md | 2 +- keyboards/doio/kb04/keyboard.json | 2 +- keyboards/doio/kb04/keymaps/default/rules.mk | 2 +- keyboards/doio/kb09/keyboard.json | 2 +- keyboards/doio/kb38/kb38.c | 2 +- keyboards/doio/kb38/rgb_matrix_kb.inc | 2 +- keyboards/doio/kb3x/keyboard.json | 2 +- keyboards/donutcables/readme.md | 2 +- keyboards/donutcables/scrabblepad/keymaps/default/readme.md | 2 +- keyboards/doro67/readme.md | 2 +- keyboards/doro67/regular/keymaps/default/readme.md | 2 +- keyboards/doro67/rgb/keymaps/default/readme.md | 2 +- keyboards/dotlen/queue/readme.md | 2 +- keyboards/dotmod/dymium65/keymaps/default/rules.mk | 2 +- keyboards/dp60/readme.md | 2 +- keyboards/dtisaac/cg108/keymaps/default/keymap.c | 2 +- keyboards/duck/lightsaver/lightsaver.c | 2 +- keyboards/duck/octagon/keymaps/default/keymap.c | 2 +- keyboards/duck/tcv3/keymaps/default/keymap.c | 2 +- keyboards/dz60/keymaps/iso_4th_row_all_1u/readme.md | 2 +- keyboards/dztech/endless80/readme.md | 2 +- keyboards/ealdin/readme.md | 2 +- keyboards/ebastler/e80_1800/chconf.h | 2 +- keyboards/ebastler/e80_1800/config.h | 2 +- keyboards/ebastler/e80_1800/halconf.h | 2 +- keyboards/ebastler/e80_1800/keymaps/ansi_6u/keymap.c | 2 +- keyboards/ebastler/e80_1800/keymaps/ansi_7u/keymap.c | 2 +- keyboards/ebastler/e80_1800/keymaps/default/keymap.c | 2 +- keyboards/ebastler/e80_1800/keymaps/iso_7u/keymap.c | 2 +- keyboards/ebastler/e80_1800/mcuconf.h | 2 +- keyboards/ebastler/e80_1800/readme.md | 2 +- keyboards/ebastler/readme.md | 2 +- keyboards/eco/readme.md | 2 +- keyboards/edda/config.h | 2 +- keyboards/edi/hardlight/mk1/keymaps/.gitignore | 2 +- keyboards/edi/hardlight/mk1/keymaps/default/keymap.c | 2 +- keyboards/edi/hardlight/mk2/keymaps/.gitignore | 2 +- keyboards/edi/hardlight/mk2/keymaps/default/keymap.c | 2 +- keyboards/edi/hardlight/mk2/mcuconf.h | 2 +- keyboards/eek/silk_up/readme.md | 2 +- keyboards/enmeseoz/enmepad3x4/readme.md | 2 +- keyboards/enviousdesign/65m/keyboard.json | 2 +- keyboards/enviousdesign/commissions/mini1800/keyboard.json | 2 +- keyboards/enviousdesign/delirium/rev0/keyboard.json | 2 +- keyboards/enviousdesign/delirium/rev1/keyboard.json | 2 +- keyboards/enviousdesign/delirium/rgb/rgb.c | 2 +- keyboards/enviousdesign/mcro/rev1/keyboard.json | 2 +- keyboards/era/divine/config.h | 2 +- keyboards/era/divine/halconf.h | 2 +- keyboards/era/divine/keyboard.json | 2 +- keyboards/era/divine/keymaps/default/keymap.c | 2 +- keyboards/era/divine/mcuconf.h | 2 +- keyboards/era/divine/readme.md | 2 +- keyboards/era/era65/config.h | 2 +- keyboards/era/era65/halconf.h | 2 +- keyboards/era/era65/keyboard.json | 2 +- keyboards/era/era65/mcuconf.h | 2 +- keyboards/era/era65/readme.md | 2 +- keyboards/era/linx3/fave65s/readme.md | 2 +- keyboards/era/linx3/n86/config.h | 2 +- keyboards/era/linx3/n86/keymaps/default/keymap.c | 2 +- keyboards/era/linx3/n86/readme.md | 2 +- keyboards/era/linx3/n87/config.h | 2 +- keyboards/era/linx3/n87/keyboard.json | 2 +- keyboards/era/linx3/n87/keymaps/default/keymap.c | 2 +- keyboards/era/linx3/n87/readme.md | 2 +- keyboards/era/linx3/n8x/halconf.h | 2 +- keyboards/era/linx3/n8x/keyboard.json | 2 +- keyboards/era/linx3/n8x/keymaps/default/keymap.c | 2 +- keyboards/era/linx3/n8x/mcuconf.h | 2 +- keyboards/era/linx3/n8x/readme.md | 2 +- keyboards/era/sirind/brick65/keyboard.json | 2 +- keyboards/era/sirind/brick65s/brick65s.c | 2 +- keyboards/era/sirind/brick65s/keyboard.json | 2 +- keyboards/era/sirind/brick65s/readme.md | 2 +- keyboards/era/sirind/chickpad/readme.md | 2 +- keyboards/era/sirind/klein_hs/config.h | 2 +- keyboards/era/sirind/klein_hs/halconf.h | 2 +- keyboards/era/sirind/klein_hs/keyboard.json | 2 +- keyboards/era/sirind/klein_hs/keymaps/default/keymap.c | 2 +- keyboards/era/sirind/klein_hs/mcuconf.h | 2 +- keyboards/era/sirind/klein_hs/readme.md | 2 +- keyboards/era/sirind/klein_sd/halconf.h | 2 +- keyboards/era/sirind/klein_sd/keyboard.json | 2 +- keyboards/era/sirind/klein_sd/keymaps/default/keymap.c | 2 +- keyboards/era/sirind/klein_sd/mcuconf.h | 2 +- keyboards/era/sirind/klein_sd/readme.md | 2 +- keyboards/era/sirind/tomak/config.h | 2 +- keyboards/era/sirind/tomak/keymaps/default/keymap.c | 2 +- keyboards/era/sirind/tomak/keymaps/default_ansi/keymap.c | 2 +- .../era/sirind/tomak/keymaps/default_ansi_split_bs/keymap.c | 2 +- .../era/sirind/tomak/keymaps/default_ansi_split_rshift/keymap.c | 2 +- .../sirind/tomak/keymaps/default_ansi_split_rshift_bs/keymap.c | 2 +- keyboards/era/sirind/tomak/readme.md | 2 +- keyboards/era/sirind/tomak/tomak.c | 2 +- keyboards/era/sirind/tomak79h/config.h | 2 +- keyboards/era/sirind/tomak79h/keyboard.json | 2 +- keyboards/era/sirind/tomak79h/keymaps/default/keymap.c | 2 +- keyboards/era/sirind/tomak79h/readme.md | 2 +- keyboards/era/sirind/tomak79h/tomak79h.c | 2 +- keyboards/era/sirind/tomak79s/config.h | 2 +- keyboards/era/sirind/tomak79s/keyboard.json | 2 +- keyboards/era/sirind/tomak79s/keymaps/default/keymap.c | 2 +- keyboards/era/sirind/tomak79s/readme.md | 2 +- keyboards/era/sirind/tomak79s/tomak79s.c | 2 +- keyboards/ergodox_ez/keymaps/default/readme.md | 2 +- keyboards/etiennecollin/wave/keymaps/test/keymap.json | 2 +- keyboards/evancookaudio/sleepingdinosaur/readme.md | 2 +- keyboards/evancookaudio/tenpad/readme.md | 2 +- keyboards/evyd13/eon40/keymaps/default/keymap.c | 2 +- keyboards/evyd13/eon40/readme.md | 2 +- keyboards/evyd13/eon65/keymaps/default/keymap.c | 2 +- keyboards/evyd13/eon65/readme.md | 2 +- keyboards/evyd13/eon75/keymaps/default/keymap.c | 2 +- keyboards/evyd13/eon75/readme.md | 2 +- keyboards/evyd13/eon87/keymaps/default/keymap.c | 2 +- keyboards/evyd13/eon87/readme.md | 2 +- keyboards/evyd13/eon95/keymaps/default/keymap.c | 2 +- keyboards/evyd13/eon95/readme.md | 2 +- keyboards/evyd13/gh80_1800/keymaps/default/keymap.c | 2 +- keyboards/evyd13/gh80_1800/readme.md | 2 +- keyboards/evyd13/gh80_3700/readme.md | 2 +- keyboards/evyd13/minitomic/keymaps/default/keymap.c | 2 +- keyboards/evyd13/minitomic/readme.md | 2 +- keyboards/evyd13/mx5160/readme.md | 2 +- keyboards/evyd13/omrontkl/keymaps/default/keymap.c | 2 +- keyboards/evyd13/omrontkl/readme.md | 2 +- keyboards/evyd13/pockettype/readme.md | 2 +- keyboards/exclusive/e6v2/le/keymaps/default/keymap.c | 2 +- keyboards/exclusive/e6v2/oe/readme.md | 2 +- keyboards/eyeohdesigns/babyv/keymaps/1u/keymap.c | 2 +- keyboards/eyeohdesigns/babyv/keymaps/1u2u/keymap.c | 2 +- keyboards/eyeohdesigns/babyv/keymaps/2u1u/keymap.c | 2 +- keyboards/eyeohdesigns/babyv/keymaps/default/keymap.c | 2 +- keyboards/eyeohdesigns/sprh/keymaps/default/keymap.c | 2 +- keyboards/eyeohdesigns/theboulevard/readme.md | 2 +- keyboards/fancytech/fancyalice66/fancyalice66.c | 2 +- keyboards/fancytech/fancyalice66/keyboard.json | 2 +- keyboards/fancytech/fancyalice66/keymaps/default/keymap.c | 2 +- keyboards/fc660c/keymaps/default/README.md | 2 +- keyboards/fc660c/keymaps/default_rgb/rules.mk | 2 +- keyboards/fjlabs/mk61rgbansi/keymaps/default/keymap.c | 2 +- keyboards/fjlabs/peaker/readme.md | 2 +- keyboards/fjlabs/sinanju/readme.md | 2 +- keyboards/fjlabs/tf60ansi/keymaps/default/keymap.c | 2 +- keyboards/fjlabs/tf60ansi/readme.md | 2 +- keyboards/fjlabs/tf60v2/keymaps/default/keymap.c | 2 +- keyboards/fjlabs/tf60v2/readme.md | 2 +- keyboards/fjlabs/tf65rgbv2/keymaps/default/keymap.c | 2 +- keyboards/fjlabs/tf65rgbv2/readme.md | 2 +- keyboards/flashquark/horizon_z/keyboard.json | 2 +- keyboards/flashquark/horizon_z/keymaps/default/keymap.c | 2 +- keyboards/flashquark/horizon_z/readme.md | 2 +- keyboards/fleuron/readme.md | 2 +- keyboards/flx/virgo/keymaps/default/keymap.c | 2 +- keyboards/fortitude60/readme.md | 2 +- keyboards/foxlab/leaf60/readme.md | 2 +- keyboards/fungo/rev1/post_config.h | 2 +- keyboards/gboards/dicts/aset/_generator/src/da-keymap.json | 2 +- keyboards/gboards/dicts/aset/_generator/src/de-keymap.json | 2 +- .../gboards/dicts/aset/_generator/src/en-colemak-keymap.json | 2 +- .../gboards/dicts/aset/_generator/src/en-dvorak-keymap.json | 2 +- keyboards/gboards/dicts/aset/_generator/src/en-keymap.json | 2 +- keyboards/gboards/dicts/aset/_generator/src/es-keymap.json | 2 +- keyboards/gboards/dicts/aset/_generator/src/fn-keymap.json | 2 +- keyboards/gboards/dicts/aset/_generator/src/fr-keymap.json | 2 +- keyboards/gboards/dicts/aset/_generator/src/hu-keymap.json | 2 +- keyboards/gboards/dicts/aset/_generator/src/it-keymap.json | 2 +- keyboards/gboards/dicts/aset/_generator/src/nl-keymap.json | 2 +- keyboards/gboards/dicts/aset/_generator/src/num-keymap.json | 2 +- keyboards/gboards/dicts/aset/_generator/src/nw-keymap.json | 2 +- keyboards/gboards/dicts/aset/_generator/src/pl-keymap.json | 2 +- keyboards/gboards/dicts/aset/_generator/src/pt-keymap.json | 2 +- keyboards/gboards/dicts/aset/_generator/src/ro-keymap.json | 2 +- keyboards/gboards/dicts/aset/_generator/src/sv-keymap.json | 2 +- keyboards/gboards/dicts/aset/_generator/src/tr-keymap.json | 2 +- keyboards/geistmaschine/geist/keymaps/ansi/keymap.c | 2 +- keyboards/geistmaschine/geist/keymaps/default/keymap.c | 2 +- keyboards/geistmaschine/geist/keymaps/iso/keymap.c | 2 +- keyboards/geistmaschine/macropod/config.h | 2 +- keyboards/geistmaschine/macropod/keymaps/default/keymap.c | 2 +- keyboards/geistmaschine/macropod/matrix.c | 2 +- keyboards/geistmaschine/macropod/rules.mk | 2 +- keyboards/geonworks/ee_at/keyboard.json | 2 +- keyboards/geonworks/w1_at/keyboard.json | 2 +- keyboards/gh60/revc/pinout.txt | 2 +- keyboards/gh80_3000/readme.md | 2 +- keyboards/gkeyboard/greatpad/keyboard.json | 2 +- keyboards/gmmk/numpad/keymaps/default/keymap.c | 2 +- keyboards/gmmk/numpad/mcuconf.h | 2 +- keyboards/gmmk/numpad/post_config.h | 2 +- keyboards/gmmk/numpad/readme.md | 2 +- keyboards/gmmk/pro/rev1/ansi/keymaps/default/rules.mk | 2 +- keyboards/gmmk/pro/rev1/iso/keymaps/default/rules.mk | 2 +- keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c | 2 +- keyboards/gmmk/pro/rev2/ansi/keymaps/default/rules.mk | 2 +- keyboards/gmmk/pro/rev2/iso/keymaps/default/rules.mk | 2 +- keyboards/gopolar/gg86/lib/glcdfont.c | 2 +- keyboards/gray_studio/space65r3/readme.md | 2 +- keyboards/gray_studio/think65v3/readme.md | 2 +- keyboards/grid600/readme.md | 2 +- keyboards/gummykey/readme.md | 2 +- keyboards/h0oni/deskpad/deskpad.c | 2 +- keyboards/h0oni/deskpad/keymaps/default/keymap.c | 2 +- keyboards/h0oni/deskpad/readme.md | 2 +- keyboards/h0oni/hotduck/readme.md | 2 +- keyboards/handwired/3dfoxc/keymaps/default/keymap.c | 2 +- keyboards/handwired/3dp660_oled/keyboard.json | 2 +- keyboards/handwired/412_64/keymaps/default/rules.mk | 2 +- keyboards/handwired/412_64/readme.md | 2 +- keyboards/handwired/6macro/keymaps/default/readme.md | 2 +- keyboards/handwired/6macro/keymaps/osu/readme.md | 2 +- keyboards/handwired/angel/keymaps/default/readme.md | 2 +- keyboards/handwired/baredev/rev1/keymaps/default/keymap.c | 2 +- keyboards/handwired/baredev/rev1/keymaps/default/readme.md | 2 +- keyboards/handwired/baredev/rev1/readme.md | 2 +- .../handwired/boss566y/redragon_vara/keymaps/default/readme.md | 2 +- keyboards/handwired/cans12erv2/readme.md | 2 +- keyboards/handwired/croxsplit44/keymaps/default/keymap.c | 2 +- keyboards/handwired/dactyl_manuform/5x6_6/readme.md | 2 +- keyboards/handwired/dqz11n1g/keymaps/default/readme.md | 2 +- keyboards/handwired/evk/readme.md | 2 +- keyboards/handwired/fc200rt_qmk/keymaps/default/keymap.c | 2 +- keyboards/handwired/footy/readme.md | 2 +- keyboards/handwired/freoduo/readme.md | 2 +- keyboards/handwired/hacked_motospeed/keymaps/german/layers.json | 2 +- keyboards/handwired/hacked_motospeed/keymaps/german/readme.md | 2 +- keyboards/handwired/hacked_motospeed/readme.md | 2 +- keyboards/handwired/heisenberg/keymaps/default/keymap.c | 2 +- keyboards/handwired/heisenberg/keymaps/turkishish/keymap.c | 2 +- keyboards/handwired/heisenberg/keymaps/turkishish/readme.md | 2 +- keyboards/handwired/hen_des/epssp75/readme.md | 2 +- keyboards/handwired/itstleo9/info.json | 2 +- keyboards/handwired/itstleo9/promicro/keyboard.json | 2 +- keyboards/handwired/itstleo9/readme.md | 2 +- keyboards/handwired/itstleo9/rp2040/keyboard.json | 2 +- keyboards/handwired/jankrp2040dactyl/config.h | 2 +- keyboards/handwired/jopr/jopr.c | 2 +- keyboards/handwired/jopr/keymaps/modded_white/keymap.c | 2 +- keyboards/handwired/k_numpad17/readme.md | 2 +- .../handwired/mechboards_micropad/keymaps/default/readme.md | 2 +- keyboards/handwired/minorca/keymaps/default/readme.md | 2 +- keyboards/handwired/numpad20/readme.md | 2 +- keyboards/handwired/oem_iso_fullsize/readme.md | 2 +- keyboards/handwired/onekey/bluepill_uf2boot/readme.md | 2 +- keyboards/handwired/onekey/keymaps/digitizer/rules.mk | 2 +- keyboards/handwired/onekey/sipeed_longan_nano/readme.md | 2 +- keyboards/handwired/onekey/stm32f405_feather/readme.md | 2 +- keyboards/handwired/onekey/teensy_lc/readme.md | 2 +- keyboards/handwired/petruziamini/keyboard.json | 2 +- keyboards/handwired/petruziamini/keymaps/default/keymap.c | 2 +- keyboards/handwired/petruziamini/readme.md | 2 +- keyboards/handwired/phantagom/baragon/keymaps/default/keymap.c | 2 +- keyboards/handwired/pill60/keymaps/default/readme.md | 2 +- keyboards/handwired/polly40/readme.md | 2 +- keyboards/handwired/promethium/color.h | 2 +- keyboards/handwired/promethium/keymaps/default/README.md | 2 +- .../handwired/promethium/keymaps/default/rgbtheme_carbon.h | 2 +- .../handwired/promethium/keymaps/default/rgbtheme_default.h | 2 +- keyboards/handwired/promethium/readme.md | 2 +- keyboards/handwired/promethium/rgbsps.h | 2 +- keyboards/handwired/pteron/readme.md | 2 +- keyboards/handwired/riblee_f401/readme.md | 2 +- keyboards/handwired/riblee_f411/readme.md | 2 +- keyboards/handwired/scottokeebs/scotto108/keyboard.json | 2 +- .../handwired/scottokeebs/scotto108/keymaps/default/keymap.c | 2 +- .../handwired/scottokeebs/scotto34/keymaps/default/keymap.c | 2 +- keyboards/handwired/scottokeebs/scotto34/readme.md | 2 +- keyboards/handwired/scottokeebs/scotto36/readme.md | 2 +- .../handwired/scottokeebs/scotto37/keymaps/default/keymap.c | 2 +- keyboards/handwired/scottokeebs/scotto40/readme.md | 2 +- keyboards/handwired/scottokeebs/scotto61/keyboard.json | 2 +- .../handwired/scottokeebs/scotto61/keymaps/default/keymap.c | 2 +- keyboards/handwired/scottokeebs/scotto9/readme.md | 2 +- keyboards/handwired/scottokeebs/scottoalp/keyboard.json | 2 +- .../handwired/scottokeebs/scottoalp/keymaps/default/keymap.c | 2 +- keyboards/handwired/scottokeebs/scottoalp/readme.md | 2 +- keyboards/handwired/scottokeebs/scottocmd/config.h | 2 +- .../handwired/scottokeebs/scottocmd/keymaps/default/keymap.c | 2 +- keyboards/handwired/scottokeebs/scottocmd/scottocmd.c | 2 +- keyboards/handwired/scottokeebs/scottodeck/keyboard.json | 2 +- keyboards/handwired/scottokeebs/scottodeck/readme.md | 2 +- .../handwired/scottokeebs/scottoergo/keymaps/default/keymap.c | 2 +- keyboards/handwired/scottokeebs/scottoergo/readme.md | 2 +- .../handwired/scottokeebs/scottofly/keymaps/default/keymap.c | 2 +- keyboards/handwired/scottokeebs/scottofly/readme.md | 2 +- keyboards/handwired/scottokeebs/scottogame/config.h | 2 +- .../handwired/scottokeebs/scottogame/keymaps/default/keymap.c | 2 +- keyboards/handwired/scottokeebs/scottogame/readme.md | 2 +- keyboards/handwired/scottokeebs/scottogame/scottogame.c | 2 +- keyboards/handwired/scottokeebs/scottohazard/config.h | 2 +- .../scottokeebs/scottoinvader/keymaps/default/keymap.c | 2 +- keyboards/handwired/scottokeebs/scottoinvader/readme.md | 2 +- keyboards/handwired/scottokeebs/scottokatana/keyboard.json | 2 +- .../handwired/scottokeebs/scottokatana/keymaps/default/keymap.c | 2 +- keyboards/handwired/scottokeebs/scottokatana/readme.md | 2 +- .../handwired/scottokeebs/scottolong/keymaps/default/keymap.c | 2 +- keyboards/handwired/scottokeebs/scottolong/readme.md | 2 +- keyboards/handwired/scottokeebs/scottomacrodeck/readme.md | 2 +- .../handwired/scottokeebs/scottomouse/keymaps/default/keymap.c | 2 +- keyboards/handwired/scottokeebs/scottomouse/readme.md | 2 +- keyboards/handwired/scottokeebs/scottoslant/readme.md | 2 +- .../handwired/scottokeebs/scottosplit/keymaps/default/keymap.c | 2 +- keyboards/handwired/scottokeebs/scottosplit/readme.md | 2 +- keyboards/handwired/scottokeebs/scottostarter/readme.md | 2 +- keyboards/handwired/skakunm_dactyl/keymaps/default/keymap.c | 2 +- keyboards/handwired/skakunm_dactyl/readme.md | 2 +- keyboards/handwired/splittest/keymaps/bitbang/keymap.c | 2 +- .../handwired/stef9998/split_5x7/keymaps/default/readme.md | 2 +- .../handwired/stef9998/split_5x7/keymaps/stef9998/rules.mk | 2 +- keyboards/handwired/stef9998/split_5x7/readme.md | 2 +- keyboards/handwired/stef9998/split_5x7/rev1/rev1.c | 2 +- keyboards/handwired/stef9998/split_5x7/rev1/rules.mk | 2 +- .../handwired/swiftrax/the_galleon/keymaps/default/rules.mk | 2 +- keyboards/handwired/t111/keymaps/oleg/config.h | 2 +- keyboards/handwired/t111/keymaps/oleg/rules.mk | 2 +- keyboards/handwired/twadlee/tp69/twadlee-tp69-kle.json | 2 +- keyboards/handwired/wwa/helios/keyboard.json | 2 +- keyboards/handwired/wwa/kepler/keyboard.json | 2 +- keyboards/handwired/wwa/mercury/keyboard.json | 2 +- keyboards/handwired/wwa/mercury/readme.md | 2 +- keyboards/handwired/wwa/soyuz/keyboard.json | 2 +- keyboards/handwired/wwa/soyuzxl/keyboard.json | 2 +- keyboards/handwired/wwa/soyuzxl/keymaps/default/keymap.c | 2 +- keyboards/handwired/yodadistro/macro/readme.md | 2 +- keyboards/handwired/z150/keymaps/default/keymap.c | 2 +- keyboards/hazel/bad_wings/config.h | 2 +- keyboards/hazel/bad_wings/keymaps/default/keymap.json | 2 +- keyboards/hazel/bad_wings/keymaps/default/rules.mk | 2 +- keyboards/hazel/bad_wings/mcuconf.c | 2 +- keyboards/hazel/bad_wings/readme.md | 2 +- keyboards/heliar/wm1_hotswap/keymaps/default/readme.md | 2 +- keyboards/hineybush/h87_g2/config.h | 2 +- keyboards/holyswitch/lightweight65/keymaps/default/keymap.c | 2 +- keyboards/horizon/keymaps/default/keymap.c | 2 +- .../handwired_k552/keymaps/default/led/cool_diagonal.c | 2 +- .../handwired_k552/keymaps/default/rgb_matrix_user.inc | 2 +- keyboards/horrortroll/handwired_k552/lib/galaxy.c | 2 +- keyboards/horrortroll/handwired_k552/mcuconf.h | 2 +- keyboards/horrortroll/readme.md | 2 +- keyboards/hp69/keymaps/default/rules.mk | 2 +- keyboards/hs60/v1/ansi/keymaps/default/readme.md | 2 +- keyboards/hs60/v1/iso/keymaps/default/readme.md | 2 +- keyboards/hs60/v2/ansi/keymaps/default/readme.md | 2 +- keyboards/hs60/v2/hhkb/keymaps/default/readme.md | 2 +- keyboards/hs60/v2/iso/keymaps/default/readme.md | 2 +- keyboards/ianklug/grooveboard/keymaps/default/keymap.c | 2 +- keyboards/icebreaker/readme.md | 2 +- keyboards/idyllic/tinny50_rgb/readme.md | 2 +- keyboards/illusion/rosa/keymaps/default/keymap.c | 2 +- keyboards/illusion/rosa/keymaps/split_bs_rshift/keymap.c | 2 +- keyboards/illusion/rosa/keymaps/split_rshift/keymap.c | 2 +- keyboards/inland/v83p/keymaps/default/rules.mk | 2 +- keyboards/itstleo/itstleo40/keyboard.json | 2 +- keyboards/itstleo/itstleo40/readme.md | 2 +- keyboards/ivndbt/late9/readme.md | 2 +- keyboards/ivndbt/late9/rev1/keymaps/default/keymap.c | 2 +- keyboards/janus/config.h | 2 +- keyboards/janus/halconf.h | 2 +- keyboards/janus/keymaps/default/keymap.c | 2 +- keyboards/janus/keymaps/default/readme.md | 2 +- keyboards/janus/mcuconf.h | 2 +- keyboards/jaykeeb/joker/keyboard.json | 2 +- keyboards/jaykeeb/joker/keymaps/default/keymap.c | 2 +- keyboards/jaykeeb/joker/matrix_diagram.md | 2 +- keyboards/jaykeeb/skyline/keymaps/default/keymap.c | 2 +- keyboards/jaykeeb/skyline/readme.md | 2 +- keyboards/jaykeeb/sriwedari70/keyboard.json | 2 +- keyboards/jiran/keymaps/default/config.h | 2 +- keyboards/jiran/readme.md | 2 +- keyboards/jlw/bruce_le_clavier/readme.md | 2 +- keyboards/jlw/bruce_the_keyboard/keymaps/default/keymap.c | 2 +- keyboards/jlw/vault35_wkl_universal/keymaps/default/rules.mk | 2 +- keyboards/jones/v03/keymaps/default/keymap.c | 2 +- keyboards/jones/v03/keymaps/default_jp/rules.mk | 2 +- keyboards/jones/v03_1/keymaps/default/keymap.c | 2 +- keyboards/jones/v03_1/keymaps/default_ansi/rules.mk | 2 +- keyboards/jukaie/jk01/jk01.c | 2 +- keyboards/kapcave/arya/keymaps/default/keymap.c | 2 +- keyboards/kapcave/gskt00/keymaps/default-poly/keymap.c | 2 +- keyboards/kapcave/gskt00/keymaps/default-poly/readme.md | 2 +- keyboards/kapcave/gskt00/keymaps/default-poly/rules.mk | 2 +- keyboards/kb_elmo/isolation/readme.md | 2 +- keyboards/kb_elmo/qez/readme.md | 2 +- keyboards/kb_elmo/sesame/readme.md | 2 +- keyboards/kbdcraft/adam64/mcuconf.h | 2 +- keyboards/kbdfans/bounce/75/hotswap/readme.md | 2 +- keyboards/kbdfans/bounce/pad/keymaps/default/keymap.c | 2 +- keyboards/kbdfans/kbd66/keymaps/default/readme.md | 2 +- .../kbdfans/kbd66/keymaps/default_ansi_split_space/readme.md | 2 +- .../kbdfans/kbd66/keymaps/default_iso_split_space/readme.md | 2 +- keyboards/kbdfans/kbd67/mkiirgb/v4/readme.md | 2 +- keyboards/kbdfans/kbd8x_mk2/keymaps/tester/readme.md | 2 +- keyboards/kbdfans/kbdpad/mk2/keymaps/tester/readme.md | 2 +- keyboards/kbnordic/nordic65/rev_a/matrix_diagram.md | 2 +- keyboards/keaboard/readme.md | 2 +- keyboards/keebfront/vanguard65/readme.md | 2 +- keyboards/keebio/bamfk4/keymaps/default/keymap.c | 2 +- keyboards/kelwin/utopia88/keyboard.json | 2 +- keyboards/kepler_33/proto/readme.md | 2 +- keyboards/kepler_33/readme.md | 2 +- keyboards/keybee/keybee65/readme.md | 2 +- keyboards/keychron/q0/info.json | 2 +- keyboards/keychron/q1v1/ansi/config.h | 2 +- keyboards/keychron/q1v1/ansi/readme.md | 2 +- keyboards/keychron/q1v1/ansi_encoder/keymaps/default/rules.mk | 2 +- keyboards/keychron/q1v1/info.json | 2 +- keyboards/keychron/q1v1/iso/config.h | 2 +- keyboards/keychron/q1v1/iso/readme.md | 2 +- keyboards/keychron/q1v1/iso_encoder/keymaps/default/keymap.c | 2 +- keyboards/keychron/q1v1/iso_encoder/keymaps/default/rules.mk | 2 +- keyboards/keychron/q1v1/q1v1.c | 2 +- keyboards/keychron/q1v1/readme.md | 2 +- keyboards/keychron/q1v2/ansi_encoder/keymaps/default/rules.mk | 2 +- keyboards/keychron/q1v2/iso_encoder/keymaps/default/rules.mk | 2 +- keyboards/keychron/q1v2/jis_encoder/keymaps/default/rules.mk | 2 +- keyboards/keychron/q2/ansi/config.h | 2 +- keyboards/keychron/q2/ansi_encoder/config.h | 2 +- keyboards/keychron/q2/ansi_encoder/keymaps/default/rules.mk | 2 +- keyboards/keychron/q2/info.json | 2 +- keyboards/keychron/q2/iso/config.h | 2 +- keyboards/keychron/q2/iso_encoder/config.h | 2 +- keyboards/keychron/q2/iso_encoder/keymaps/default/rules.mk | 2 +- keyboards/keychron/q2/readme.md | 2 +- keyboards/keychron/q3/info.json | 2 +- keyboards/keychron/q4/ansi/keymaps/default/keymap.c | 2 +- keyboards/keychron/q4/info.json | 2 +- keyboards/keychron/q4/iso/keymaps/default/keymap.c | 2 +- keyboards/keychron/q5/ansi/keyboard.json | 2 +- keyboards/keychron/q5/ansi/rules.mk | 2 +- keyboards/keychron/q5/ansi_encoder/keyboard.json | 2 +- keyboards/keychron/q5/ansi_encoder/rules.mk | 2 +- keyboards/keychron/q5/config.h | 2 +- keyboards/keychron/q5/info.json | 2 +- keyboards/keychron/q5/iso/keyboard.json | 2 +- keyboards/keychron/q5/iso/rules.mk | 2 +- keyboards/keychron/q5/iso_encoder/keyboard.json | 2 +- keyboards/keychron/q5/iso_encoder/rules.mk | 2 +- keyboards/keychron/q5/readme.md | 2 +- keyboards/keychron/q7/ansi/keyboard.json | 2 +- keyboards/keychron/q7/info.json | 2 +- keyboards/keychron/q7/iso/keyboard.json | 2 +- keyboards/keychron/q7/readme.md | 2 +- keyboards/keychron/q8/ansi/keyboard.json | 2 +- keyboards/keychron/q8/ansi_encoder/keyboard.json | 2 +- keyboards/keychron/q8/info.json | 2 +- keyboards/keychron/q8/iso/keyboard.json | 2 +- keyboards/keychron/q8/iso_encoder/keyboard.json | 2 +- keyboards/keychron/q8/readme.md | 2 +- keyboards/keychron/q9/ansi/keyboard.json | 2 +- keyboards/keychron/q9/ansi_encoder/keyboard.json | 2 +- keyboards/keychron/q9/config.h | 2 +- keyboards/keychron/q9/info.json | 2 +- keyboards/keychron/q9/iso/keyboard.json | 2 +- keyboards/keychron/q9/iso_encoder/keyboard.json | 2 +- keyboards/keychron/q9/readme.md | 2 +- keyboards/keygem/kg60ansi/keymaps/default/keymap.c | 2 +- keyboards/keygem/kg60ansi/readme.md | 2 +- keyboards/keygem/kg65rgbv2/keymaps/default/keymap.c | 2 +- keyboards/keygem/kg65rgbv2/readme.md | 2 +- keyboards/keyhive/smallice/keymaps/default/readme.md | 2 +- keyboards/keyspensory/kp60/keymaps/default/keymap.json | 2 +- keyboards/kezewa/enter80/keyboard.json | 2 +- keyboards/kezewa/enter80/matrix_diagram.md | 2 +- keyboards/kibou/winter/keyboard.json | 2 +- keyboards/kikoslab/ellora65/keymaps/default/rules.mk | 2 +- keyboards/kikoslab/kl90/keymaps/default/rules.mk | 2 +- keyboards/kin80/readme.md | 2 +- keyboards/kindakeyboards/conone65/readme.md | 2 +- keyboards/kinesis/keymaps/alvicstep/keymap.c | 2 +- keyboards/kinesis/keymaps/alvicstep/readme.md | 2 +- keyboards/kinesis/kintwin/kintwin.c | 2 +- keyboards/kinesis/readme.md | 2 +- keyboards/kisakeyluxury/qtz/readme.md | 2 +- keyboards/kiwikeebs/macro_v2/keymaps/default/keymap.c | 2 +- keyboards/kiwikey/kawii9/keymaps/default/readme.md | 2 +- keyboards/kiwikey/kawii9/readme.md | 2 +- keyboards/kiwikey/wanderland/keymaps/default/readme.md | 2 +- keyboards/kkatano/bakeneko80/keymaps/default/keymap.c | 2 +- keyboards/kmini/readme.md | 2 +- keyboards/knobgoblin/keymaps/default/readme.md | 2 +- keyboards/knops/mini/keymaps/default/readme.md | 2 +- keyboards/knops/mini/readme.md | 2 +- keyboards/knops/readme.md | 2 +- keyboards/kopibeng/mnk60/readme.md | 2 +- keyboards/kopibeng/mnk60_stm32/readme.md | 2 +- keyboards/kopibeng/tgr_lena/keyboard.json | 2 +- keyboards/kopibeng/tgr_lena/readme.md | 2 +- keyboards/kopibeng/typ65/typ65.c | 2 +- keyboards/kopibeng/xt60/readme.md | 2 +- keyboards/kopibeng/xt60_singa/readme.md | 2 +- keyboards/kprepublic/bm16s/keymaps/default/keymap.c | 2 +- keyboards/kprepublic/bm43hsrgb/keymaps/default/readme.md | 2 +- keyboards/kradoindustries/kousa/readme.md | 2 +- keyboards/kradoindustries/krado66/readme.md | 2 +- keyboards/kradoindustries/promenade/readme.md | 2 +- .../kradoindustries/promenade_rp24s/keymaps/default/keymap.c | 2 +- .../kradoindustries/promenade_rp24s/keymaps/default/rules.mk | 2 +- keyboards/kradoindustries/promenade_rp24s/readme.md | 2 +- keyboards/kraken_jones/pteron56/keyboard.json | 2 +- keyboards/ktec/ergodone/ergodox_compat.h | 2 +- keyboards/ktec/ergodone/keymaps/default/readme.md | 2 +- keyboards/kuro/kuro65/keymaps/default/keymap.c | 2 +- keyboards/kwstudio/scorpio_rev2/readme.md | 2 +- keyboards/labbe/labbeminiv1/keymaps/default/keymap.c | 2 +- keyboards/labbe/labbeminiv1/keymaps/rgb/config.h | 2 +- keyboards/labbe/labbeminiv1/keymaps/rgb/keymap.c | 2 +- keyboards/labbe/labbeminiv1/keymaps/rgb/rules.mk | 2 +- keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/config.h | 2 +- keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/keymap.c | 2 +- keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/rules.mk | 2 +- keyboards/labbe/labbeminiv1/readme.md | 2 +- keyboards/lazydesigners/the60/rev2/readme.md | 2 +- keyboards/lfkeyboards/lfk87/readme.md | 2 +- keyboards/lfkeyboards/smk65/readme.md | 2 +- keyboards/lgbtkl/keyboard.json | 2 +- keyboards/lgbtkl/readme.md | 2 +- keyboards/lily58/lite_rev3/halconf.h | 2 +- keyboards/linworks/dolice/keymaps/default/keymap.c | 2 +- keyboards/linworks/em8/readme.md | 2 +- keyboards/linworks/fave87/keymaps/default/keymap.c | 2 +- keyboards/linworks/favepada/keyboard.json | 2 +- keyboards/linworks/whale75/mcuconf.h | 2 +- keyboards/lucid/velvet_hotswap/rules.mk | 2 +- keyboards/lucid/velvet_solder/rules.mk | 2 +- keyboards/lz/erghost/readme.md | 2 +- keyboards/machkeyboards/mach3/keymaps/default/keymap.c | 2 +- keyboards/machkeyboards/mach3/keymaps/default/readme.md | 2 +- keyboards/machkeyboards/readme.md | 2 +- keyboards/magic_force/mf17/keymaps/default/keymap.c | 2 +- keyboards/mariorion_v25/halconf.h | 2 +- keyboards/mariorion_v25/matrix_diagram.md | 2 +- keyboards/mariorion_v25/mcuconf.h | 2 +- keyboards/mariorion_v25/prod/config.h | 2 +- keyboards/mariorion_v25/proto/config.h | 2 +- keyboards/matchstickworks/southpad/rev1/keyboard.json | 2 +- .../matchstickworks/southpad/rev1/keymaps/default/keymap.c | 2 +- .../matchstickworks/southpad/rev2/keymaps/default/keymap.c | 2 +- keyboards/matrix/falcon/readme.md | 2 +- keyboards/matrix/me/readme.md | 2 +- keyboards/matrix/noah/keymaps/wkl/keymap.c | 2 +- keyboards/mazestudio/jocker/keymaps/default/keymap.c | 2 +- keyboards/mb44/keymaps/3u_space/keymap.c | 2 +- keyboards/mc_76k/keymaps/default/readme.md | 2 +- keyboards/mechanicalkeyboards/point65/readme.md | 2 +- keyboards/mechlovin/adelais/adelais.c | 2 +- keyboards/mechlovin/adelais/config.h | 2 +- keyboards/mechlovin/adelais/rgb_led/rev3/mcuconf.h | 2 +- keyboards/mechlovin/delphine/keymaps/default/keymap.c | 2 +- keyboards/mechlovin/foundation/readme.md | 2 +- keyboards/mechlovin/hannah910/rev1/keymaps/ansi/keymap.c | 2 +- keyboards/mechlovin/hannah910/rev1/keymaps/default/keymap.c | 2 +- keyboards/mechlovin/hannah910/rev2/keymaps/ansi/keymap.c | 2 +- keyboards/mechlovin/hannah910/rev2/keymaps/ansi/readme.md | 2 +- keyboards/mechlovin/hannah910/rev2/keymaps/default/keymap.c | 2 +- keyboards/mechlovin/hannah910/rev2/keymaps/default/readme.md | 2 +- keyboards/mechlovin/hannah910/rev3/keymaps/ansi/keymap.c | 2 +- keyboards/mechlovin/hannah910/rev3/keymaps/default/keymap.c | 2 +- keyboards/mechlovin/hex4b/rev2/readme.md | 2 +- keyboards/mechlovin/infinity87/rev1/readme.md | 2 +- keyboards/mechlovin/infinity87/rgb_rev1/readme.md | 2 +- keyboards/mechlovin/infinity875/keymaps/default/rules.mk | 2 +- keyboards/mechlovin/infinity875/readme.md | 2 +- keyboards/mechlovin/infinityce/infinityce.c | 2 +- keyboards/mechlovin/kanu/keymaps/ansi/keymap.c | 2 +- keyboards/mechlovin/kanu/keymaps/default/keymap.c | 2 +- keyboards/mechlovin/mechlovin9/readme.md | 2 +- keyboards/mechlovin/mechlovin9/rev1/readme.md | 2 +- keyboards/mechlovin/mechlovin9/rev2/readme.md | 2 +- keyboards/mechlovin/mechlovin9/rev3/readme.md | 2 +- keyboards/mechlovin/olly/bb/readme.md | 2 +- keyboards/mechlovin/olly/jf/readme.md | 2 +- keyboards/mechlovin/olly/jf/rev1/keymaps/default/keymap.c | 2 +- keyboards/mechlovin/olly/jf/rev1/readme.md | 2 +- keyboards/mechlovin/olly/jf/rev2/readme.md | 2 +- keyboards/mechlovin/olly/orion/readme.md | 2 +- keyboards/mechlovin/zed1800/zed1800.c | 2 +- keyboards/mechlovin/zed65/910/keymaps/default/keymap.c | 2 +- keyboards/mechlovin/zed65/no_backlight/cor65/keyboard.json | 2 +- keyboards/mechstudio/ud_40_ortho/readme.md | 2 +- keyboards/mechwild/bbs/bbs.c | 2 +- keyboards/mechwild/clunker/readme.md | 2 +- keyboards/mechwild/mercutio/readme.md | 2 +- keyboards/mechwild/mokulua/readme.md | 2 +- keyboards/mechwild/puckbuddy/readme.md | 2 +- keyboards/mechwild/waka60/f401/mcuconf.h | 2 +- keyboards/meetlab/kafka60/readme.md | 2 +- keyboards/meetlab/kafka68/keyboard.json | 2 +- keyboards/meetlab/kafka68/readme.md | 2 +- keyboards/meetlab/kafkasplit/keyboard.json | 2 +- keyboards/meetlab/kafkasplit/readme.md | 2 +- keyboards/meetlab/kalice/config.h | 2 +- keyboards/meetlab/kalice/keyboard.json | 2 +- keyboards/meetlab/kalice/keymaps/default/keymap.c | 2 +- keyboards/meetlab/kalice/readme.md | 2 +- keyboards/meetlab/rena/keyboard.json | 2 +- keyboards/meetlab/rena/matrix_diagram.md | 2 +- keyboards/meetlab/rena/readme.md | 2 +- keyboards/merge/iso_macro/readme.md | 2 +- keyboards/merge/uc1/readme.md | 2 +- keyboards/merge/um70/keymaps/default/rules.mk | 2 +- keyboards/merge/um70/readme.md | 2 +- keyboards/merge/um80/keymaps/default/rules.mk | 2 +- keyboards/merge/um80/readme.md | 2 +- keyboards/merge/um80/um80.c | 2 +- keyboards/merge/uma/keymaps/default/rules.mk | 2 +- keyboards/merge/uma/uma.c | 2 +- keyboards/metamechs/timberwolf/keymaps/a_ansi/keymap.c | 2 +- keyboards/metamechs/timberwolf/keymaps/a_iso/keymap.c | 2 +- keyboards/metamechs/timberwolf/keymaps/b_ansi/keymap.c | 2 +- keyboards/metamechs/timberwolf/keymaps/b_iso/keymap.c | 2 +- keyboards/metamechs/timberwolf/keymaps/default/keymap.c | 2 +- keyboards/metamechs/timberwolf/keymaps/prime_ansi/keymap.c | 2 +- keyboards/metamechs/timberwolf/keymaps/prime_iso/keymap.c | 2 +- keyboards/miiiw/blackio83/rev_0100/rev_0100.h | 2 +- keyboards/miller/gm862/keymaps/default/keymap.c | 2 +- keyboards/millet/doksin/keyboard.json | 2 +- keyboards/mini_elixivy/keymaps/ansi/readme.md | 2 +- keyboards/mini_elixivy/keymaps/default/readme.md | 2 +- keyboards/mini_elixivy/keymaps/iso/readme.md | 2 +- keyboards/mini_elixivy/readme.md | 2 +- keyboards/mini_ten_key_plus/keymaps/default/readme.md | 2 +- keyboards/mini_ten_key_plus/keymaps/standard_numpad/readme.md | 2 +- keyboards/mini_ten_key_plus/mini_ten_key_plus.c | 2 +- keyboards/mode/m60h/config.h | 2 +- keyboards/mode/m60h/halconf.h | 2 +- keyboards/mode/m60h/keyboard.json | 2 +- keyboards/mode/m60h/mcuconf.h | 2 +- keyboards/mode/m60h_f/config.h | 2 +- keyboards/mode/m60h_f/halconf.h | 2 +- keyboards/mode/m60h_f/keyboard.json | 2 +- keyboards/mode/m60h_f/mcuconf.h | 2 +- keyboards/mode/m60s/config.h | 2 +- keyboards/mode/m60s/halconf.h | 2 +- keyboards/mode/m60s/keyboard.json | 2 +- keyboards/mode/m60s/mcuconf.h | 2 +- keyboards/mokey/ginkgo65/readme.md | 2 +- keyboards/mokey/ginkgo65hot/readme.md | 2 +- keyboards/mokey/mokey12x2/readme.md | 2 +- keyboards/moky/moky67/keyboard.json | 2 +- keyboards/momokai/aurora/keymaps/default/keymap.c | 2 +- keyboards/monsgeek/m6/m6.c | 2 +- keyboards/morizon/keymaps/default/keymap.c | 2 +- keyboards/mountainblocks/mb17/keymaps/default/keymap.c | 2 +- keyboards/mountainmechdesigns/teton_78/keyboard.json | 2 +- keyboards/mountainmechdesigns/teton_78/readme.md | 2 +- keyboards/mwstudio/mw660/config.h | 2 +- keyboards/mysticworks/wyvern/keymaps/default/keymap.c | 2 +- keyboards/navi60/keymaps/default/keymap.c | 2 +- keyboards/neson_design/700e/700e.c | 2 +- keyboards/neson_design/700e/readme.md | 2 +- keyboards/neson_design/810e/keyboard.json | 2 +- keyboards/neson_design/n6/n6.c | 2 +- keyboards/neson_design/n6/readme.md | 2 +- keyboards/neson_design/nico/readme.md | 2 +- keyboards/nightly_boards/alter/rev1/readme.md | 2 +- keyboards/nightly_boards/conde60/keymaps/default/keymap.c | 2 +- keyboards/nightly_boards/daily60/keymaps/default/keymap.c | 2 +- keyboards/nightly_boards/daily60/readme.md | 2 +- keyboards/nightly_boards/jisoo/keymaps/default/keymap.c | 2 +- keyboards/nightly_boards/jisoo/readme.md | 2 +- keyboards/nightly_boards/octopadplus/keymaps/default/keymap.c | 2 +- keyboards/nightly_boards/octopadplus/keymaps/default/rules.mk | 2 +- keyboards/nightmare/keymaps/default/readme.md | 2 +- keyboards/nopunin10did/styrkatmel/readme.md | 2 +- keyboards/noxary/220/keymaps/default/readme.md | 2 +- keyboards/noxary/280/keymaps/default/readme.md | 2 +- keyboards/noxary/x268/keymaps/default/keymap.c | 2 +- keyboards/nullbitsco/common/bitc_led.c | 2 +- keyboards/nullbitsco/common/bitc_led.h | 2 +- keyboards/nullbitsco/common/remote_kb.h | 2 +- keyboards/nullbitsco/nibble/matrix.c | 2 +- keyboards/nullbitsco/scramble/v2/v2.h | 2 +- keyboards/nulldesignco/null65ansi/v1/readme.md | 2 +- keyboards/nulldesignco/null65iso/v1/readme.md | 2 +- keyboards/numatreus/readme.md | 2 +- keyboards/om60/readme.md | 2 +- keyboards/orange75/readme.md | 2 +- keyboards/org60/readme.md | 2 +- keyboards/orthocode/readme.md | 2 +- keyboards/orthograph/keymaps/default/keymap.json | 2 +- keyboards/owlab/jelly_evolv/config.h | 2 +- keyboards/owlab/jelly_evolv/hotswap/625u/keyboard.json | 2 +- .../owlab/jelly_evolv/hotswap/625u/keymaps/default/keymap.c | 2 +- keyboards/owlab/jelly_evolv/hotswap/625u/readme.md | 2 +- keyboards/owlab/jelly_evolv/hotswap/625u/rules.mk | 2 +- keyboards/owlab/jelly_evolv/hotswap/7u/keyboard.json | 2 +- keyboards/owlab/jelly_evolv/hotswap/7u/keymaps/default/keymap.c | 2 +- keyboards/owlab/jelly_evolv/hotswap/7u/readme.md | 2 +- keyboards/owlab/jelly_evolv/hotswap/7u/rules.mk | 2 +- keyboards/owlab/jelly_evolv/info.json | 2 +- .../owlab/jelly_evolv/ld/STM32F103x8_0x08006000_bootloader.ld | 2 +- keyboards/owlab/jelly_evolv/solder/keymaps/default/keymap.c | 2 +- keyboards/owlab/jelly_evolv/solder/readme.md | 2 +- keyboards/owlab/jelly_evolv/solder/rules.mk | 2 +- keyboards/owlab/spring/keymaps/default/keymap.c | 2 +- keyboards/pangorin/tan67/keyboard.json | 2 +- keyboards/pearlboards/zeuspad/matrix_diagram.md | 2 +- keyboards/percent/readme.md | 2 +- keyboards/phdesign/phac/keymaps/default/keymap.c | 2 +- keyboards/phdesign/phac/keymaps/default/rules.mk | 2 +- keyboards/phrygian/ph100/keymaps/default/keymap.c | 2 +- keyboards/pimoroni/keybow2040/mcuconf.h | 2 +- keyboards/pisces/pisces.c | 2 +- keyboards/planck/rev7/keymaps/default/rules.mk | 2 +- keyboards/playkbtw/pk64rgb/pk64rgb.c | 2 +- keyboards/playkbtw/pk64rgb/readme.md | 2 +- keyboards/ploopyco/mouse/post_rules.mk | 2 +- keyboards/ploopyco/nano_2/readme.md | 2 +- keyboards/ploopyco/trackball/post_rules.mk | 2 +- keyboards/ploopyco/trackball/rev1_005/readme.md | 2 +- keyboards/ploopyco/trackball_mini/keymaps/default/readme.md | 2 +- keyboards/ploopyco/trackball_thumb/post_rules.mk | 2 +- keyboards/ploopyco/trackball_thumb/rev1_001/readme.md | 2 +- keyboards/pmk/posey_split/config.h | 2 +- keyboards/pmk/posey_split/v4/keyboard.json | 2 +- keyboards/pmk/posey_split/v5/keyboard.json | 2 +- keyboards/preonic/rev3_drop/mcuconf.h | 2 +- keyboards/primekb/prime_r/keymaps/default/readme.md | 2 +- keyboards/printedpad/halconf.h | 2 +- keyboards/printedpad/keyboard.json | 2 +- keyboards/program_yoink/info.json | 2 +- keyboards/projectcain/relic/keymaps/default/rules.mk | 2 +- keyboards/projectcain/vault45/keymaps/default/rules.mk | 2 +- keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c | 2 +- keyboards/projectkb/signature65/keymaps/default/keymap.c | 2 +- keyboards/projectkb/signature87/keymaps/default/keymap.c | 2 +- keyboards/projectkb/signature87/readme.md | 2 +- keyboards/prototypist/allison_numpad/keymaps/default/readme.md | 2 +- keyboards/prototypist/oceanographer/keymaps/default/keymap.c | 2 +- .../prototypist/oceanographer/keymaps/default_625/keymap.c | 2 +- .../prototypist/oceanographer/keymaps/split_225_2/keymap.c | 2 +- keyboards/prototypist/oceanographer/oceanographer.c | 2 +- keyboards/prototypist/pt80/readme.md | 2 +- keyboards/protozoa/event_horizon/keyboard.json | 2 +- keyboards/protozoa/p01/keymaps/default/rules.mk | 2 +- keyboards/purin/keyboard.json | 2 +- keyboards/qck75/v1/keyboard.json | 2 +- keyboards/qpockets/space_space/rev1/keymaps/big_space/rules.mk | 2 +- keyboards/qpockets/space_space/rev1/keymaps/default/rules.mk | 2 +- keyboards/qpockets/space_space/rev2/keymaps/big_space/rules.mk | 2 +- keyboards/qpockets/space_space/rev2/keymaps/qpockets/rules.mk | 2 +- keyboards/qvex/lynepad2/keymaps/default/keymap.c | 2 +- keyboards/qvex/lynepad2/keymaps/default/rules.mk | 2 +- keyboards/qvex/lynepad2/matrix.c | 2 +- keyboards/qvex/lynepad2/rules.mk | 2 +- keyboards/qwertlekeys/calice/keymaps/default/keymap.c | 2 +- keyboards/qwertykeys/qk100/ansi/ansi.c | 2 +- keyboards/qwertykeys/qk100/ansi/halconf.h | 2 +- keyboards/qwertykeys/qk100/ansi/keymaps/default/keymap.c | 2 +- keyboards/qwertykeys/qk100/ansi/mcuconf.h | 2 +- keyboards/qwertykeys/qk100/ansi/readme.md | 2 +- keyboards/qwertykeys/qk100/solder/config.h | 2 +- keyboards/qwertykeys/qk100/solder/keyboard.json | 2 +- keyboards/qwertykeys/qk100/solder/keymaps/default/keymap.c | 2 +- keyboards/qwertykeys/qk100/solder/readme.md | 2 +- keyboards/qwertykeys/qk100/solder/solder.c | 2 +- keyboards/qwertykeys/qk65/solder/readme.md | 2 +- keyboards/rarepotato8de/3x3macropad/readme.md | 2 +- keyboards/rart/rart75m/keymaps/default/keymap.c | 2 +- keyboards/rart/rartland/keymaps/default/keymap.c | 2 +- keyboards/rate/pistachio/rev1/readme.md | 2 +- keyboards/rate/pistachio/rev2/readme.md | 2 +- keyboards/redox/rev1/proton_c/halconf.h | 2 +- keyboards/reviung/reviung46/keyboard.json | 2 +- keyboards/reviung/reviung61/keymaps/default_rgb/rules.mk | 2 +- keyboards/rgbkb/common/common_oled.c | 2 +- keyboards/rgbkb/common/common_oled.h | 2 +- keyboards/rgbkb/sol3/rev1/rev1.h | 2 +- keyboards/ristretto/readme.md | 2 +- keyboards/rominronin/katana60/rev1/keymaps/default/readme.md | 2 +- keyboards/rose75/keyboard.json | 2 +- keyboards/rot13labs/h4ckb0ard/keymaps/default/keymap.c | 2 +- keyboards/rot13labs/hackboard/readme.md | 2 +- keyboards/rot13labs/rotc0n/keyboard.json | 2 +- keyboards/rot13labs/veilid_sao/keymaps/default/keymap.c | 2 +- keyboards/rotor/keymaps/default/rules.mk | 2 +- keyboards/rotor/keymaps/default_all/rules.mk | 2 +- keyboards/runes/vaengr/keymaps/default/readme.md | 2 +- keyboards/ryanskidmore/rskeys100/matrix.c | 2 +- keyboards/ryanskidmore/rskeys100/readme.md | 2 +- keyboards/salane/ncr80alpsskfl/readme.md | 2 +- keyboards/salane/starryfrl/readme.md | 2 +- keyboards/sawnsprojects/amber80/readme.md | 2 +- keyboards/sawnsprojects/amber80/solder/keymaps/default/keymap.c | 2 +- keyboards/sawnsprojects/krush/krush60/readme.md | 2 +- keyboards/sawnsprojects/krush/krush65/readme.md | 2 +- keyboards/sawnsprojects/krush/krush65/solder/readme.md | 2 +- keyboards/sawnsprojects/krush/krush65/solder/solder.c | 2 +- keyboards/sawnsprojects/okayu/stm32f072/config.h | 2 +- keyboards/sawnsprojects/okayu/stm32f103/config.h | 2 +- keyboards/sawnsprojects/okayu/stm32f303/config.h | 2 +- keyboards/sawnsprojects/okayu/stm32f303/keyboard.json | 2 +- keyboards/sawnsprojects/plaque80/keymaps/default/keymap.c | 2 +- keyboards/sawnsprojects/plaque80/readme.md | 2 +- keyboards/sawnsprojects/re65/keymaps/default/rules.mk | 2 +- keyboards/sawnsprojects/vcl65/readme.md | 2 +- keyboards/sawnsprojects/vcl65/solder/keymaps/default/keymap.c | 2 +- keyboards/scottokeebs/scotto34/keymaps/default/keymap.c | 2 +- keyboards/scottokeebs/scotto69/keymaps/default/keymap.c | 2 +- keyboards/scottokeebs/scottowing/keymaps/default/keymap.c | 2 +- keyboards/senselessclay/ck60/readme.md | 2 +- keyboards/senselessclay/ck65/readme.md | 2 +- keyboards/senselessclay/gos65/keymaps/default/keymap.c | 2 +- keyboards/senselessclay/gos65/readme.md | 2 +- keyboards/senselessclay/had60/keymaps/default/keymap.c | 2 +- keyboards/sentraq/s60_x/keymaps/default_rgb/readme.md | 2 +- keyboards/sergiopoverony/creator_pro/keymaps/default/readme.md | 2 +- keyboards/sf2040/keymaps/default/keymap.c | 2 +- keyboards/sha/config.h | 2 +- keyboards/sha/keyboard.json | 2 +- keyboards/sha/keymaps/default/config.h | 2 +- keyboards/sha/keymaps/default/keymap.c | 2 +- keyboards/sha/keymaps/default/readme.md | 2 +- keyboards/shandoncodes/mino_plus/hotswap/hotswap.c | 2 +- .../shandoncodes/mino_plus/hotswap/keymaps/default/keymap.c | 2 +- keyboards/shandoncodes/mino_plus/hotswap/mcuconf.h | 2 +- .../shandoncodes/mino_plus/soldered/keymaps/default/keymap.c | 2 +- keyboards/shandoncodes/mino_plus/soldered/mcuconf.h | 2 +- keyboards/shandoncodes/mino_plus/soldered/soldered.c | 2 +- keyboards/shandoncodes/riot_pad/halconf.h | 2 +- keyboards/shandoncodes/riot_pad/mcuconf.h | 2 +- keyboards/shiro/readme.md | 2 +- keyboards/shk9/keymaps/default/keymap.c | 2 +- keyboards/shk9/readme.md | 2 +- keyboards/shorty/readme.md | 2 +- keyboards/sixkeyboard/sixkeyboard.c | 2 +- keyboards/skeletonkbd/frost68/keyboard.json | 2 +- keyboards/skeletonkbd/frost68/keymaps/default/keymap.c | 2 +- keyboards/skeletonkbd/skeletonnumpad/keymaps/default/readme.md | 2 +- .../skippys_custom_pcs/rooboard65/keymaps/default/keymap.c | 2 +- keyboards/skippys_custom_pcs/rooboard65/readme.md | 2 +- keyboards/slothie60/readme.md | 2 +- keyboards/smart68/keyboard.json | 2 +- keyboards/smithrune/iron165r2/f072/config.h | 2 +- keyboards/spaceman/2_milk/keymaps/emoji/config.h | 2 +- keyboards/spaceman/2_milk/keymaps/emoji/readme.md | 2 +- keyboards/spaceman/2_milk/keymaps/emoji/rules.mk | 2 +- keyboards/split67/readme.md | 2 +- keyboards/splitkb/aurora/helix/config.h | 2 +- keyboards/splitkb/aurora/helix/info.json | 2 +- keyboards/splitkb/aurora/helix/keymaps/debug/config.h | 2 +- keyboards/splitkb/aurora/helix/keymaps/debug/keymap.c | 2 +- keyboards/splitkb/aurora/helix/keymaps/debug/readme.md | 2 +- keyboards/splitkb/aurora/helix/keymaps/debug/rules.mk | 2 +- keyboards/splitkb/aurora/helix/keymaps/default/config.h | 2 +- keyboards/splitkb/aurora/helix/keymaps/default/keymap.json | 2 +- keyboards/splitkb/aurora/helix/keymaps/default/readme.md | 2 +- keyboards/splitkb/aurora/helix/readme.md | 2 +- keyboards/splitkb/aurora/helix/rev1/keyboard.json | 2 +- keyboards/splitkb/aurora/lily58/keymaps/default/readme.md | 2 +- keyboards/splitkb/aurora/sofle_v2/config.h | 2 +- keyboards/splitkb/aurora/sofle_v2/keymaps/debug/config.h | 2 +- keyboards/splitkb/aurora/sofle_v2/keymaps/debug/keymap.c | 2 +- keyboards/splitkb/aurora/sofle_v2/keymaps/debug/readme.md | 2 +- keyboards/splitkb/aurora/sofle_v2/keymaps/debug/rules.mk | 2 +- keyboards/splitkb/aurora/sofle_v2/keymaps/default/config.h | 2 +- keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json | 2 +- keyboards/splitkb/aurora/sofle_v2/keymaps/default/readme.md | 2 +- keyboards/splitkb/aurora/sofle_v2/readme.md | 2 +- keyboards/splitkb/aurora/sweep/keymaps/default/config.h | 2 +- keyboards/splitkb/elora/info.json | 2 +- keyboards/splitkb/elora/keymaps/debug/config.h | 2 +- keyboards/splitkb/elora/keymaps/debug/rules.mk | 2 +- keyboards/splitkb/elora/keymaps/default/config.h | 2 +- keyboards/splitkb/elora/keymaps/default/readme.md | 2 +- keyboards/splitkb/elora/rev1/matrix.c | 2 +- keyboards/splitkb/elora/rev1/myriad.c | 2 +- keyboards/splitkb/elora/rev1/rules.mk | 2 +- keyboards/splitkb/halcyon/elora/readme.md | 2 +- keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c | 2 +- keyboards/splitkb/halcyon/kyria/rev4/config.h | 2 +- keyboards/splitkb/halcyon/kyria/rev4/halconf.h | 2 +- keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h | 2 +- keyboards/studiokestra/fairholme/keyboard.json | 2 +- keyboards/studiokestra/nascent/readme.md | 2 +- keyboards/studiokestra/nue/keymaps/default/keymap.c | 2 +- keyboards/subrezon/lancer/keyboard.json | 2 +- keyboards/subrezon/lancer/keymaps/default/keymap.json | 2 +- keyboards/suikagiken/suika27melo/keyboard.json | 2 +- keyboards/suikagiken/suika85ergo/keyboard.json | 2 +- keyboards/switchplate/readme.md | 2 +- keyboards/synthandkeys/bento_box/bento_box.c | 2 +- keyboards/synthandkeys/bento_box/keyboard.json | 2 +- keyboards/synthandkeys/bento_box/keymaps/default/keymap.c | 2 +- keyboards/synthandkeys/the_debit_card/keymaps/default/keymap.c | 2 +- keyboards/tada68/keymaps/rgb/readme.md | 2 +- keyboards/takashicompany/baumkuchen/baumkuchen.c | 2 +- keyboards/takashicompany/baumkuchen/keyboard.json | 2 +- keyboards/takashicompany/baumkuchen/keymaps/default/keymap.c | 2 +- keyboards/takashicompany/ergomirage/keyboard.json | 2 +- keyboards/takashicompany/goat51/keymaps/default/keymap.c | 2 +- keyboards/takashicompany/jourkey/keyboard.json | 2 +- keyboards/takashicompany/jourkey/keymaps/default/rules.mk | 2 +- keyboards/takashicompany/klec_01/keyboard.json | 2 +- keyboards/takashicompany/klec_01/keymaps/default/keymap.c | 2 +- keyboards/takashicompany/klec_02/config.h | 2 +- keyboards/takashicompany/klec_02/keyboard.json | 2 +- keyboards/takashicompany/klec_02/keymaps/default/keymap.c | 2 +- keyboards/takashicompany/minidivide/keymaps/default/keymap.c | 2 +- keyboards/takashicompany/minidivide/minidivide.c | 2 +- keyboards/takashicompany/minizone/minizone.c | 2 +- keyboards/takashicompany/rookey/keyboard.json | 2 +- keyboards/takashicompany/rookey/keymaps/default/rules.mk | 2 +- keyboards/taleguers/taleguers75/readme.md | 2 +- keyboards/teleport/native/ansi/keymaps/default/keymap.c | 2 +- keyboards/teleport/native/mcuconf.h | 2 +- keyboards/teleport/native/native.c | 2 +- keyboards/teleport/numpad/readme.md | 2 +- keyboards/teleport/tkl/keyboard.json | 2 +- keyboards/terrazzo/terrazzo_effects/dino.h | 2 +- keyboards/terrazzo/terrazzo_effects/dot.h | 2 +- keyboards/terrazzo/terrazzo_effects/heart.h | 2 +- keyboards/terrazzo/terrazzo_effects/outrun.h | 2 +- keyboards/terrazzo/terrazzo_effects/pac_dude.h | 2 +- keyboards/terrazzo/terrazzo_effects/stripes.h | 2 +- keyboards/terrazzo/terrazzo_effects/wpm_chart.h | 2 +- keyboards/tg67/keyboard.json | 2 +- keyboards/tgr/910ce/keymaps/default/keymap.c | 2 +- keyboards/themadnoodle/ncc1701kb/v2/keyboard.json | 2 +- keyboards/themadnoodle/ncc1701kb/v2/keymaps/default/rules.mk | 2 +- keyboards/themadnoodle/noodlepad/config.h | 2 +- keyboards/themadnoodle/noodlepad/info.json | 2 +- keyboards/themadnoodle/noodlepad/keymaps/default/rules.mk | 2 +- keyboards/themadnoodle/noodlepad/v1/keyboard.json | 2 +- keyboards/themadnoodle/noodlepad/v2/keyboard.json | 2 +- keyboards/themadnoodle/noodlepad_micro/keymaps/default/rules.mk | 2 +- keyboards/themadnoodle/noodlepad_micro/readme.md | 2 +- keyboards/themadnoodle/udon13/keyboard.json | 2 +- keyboards/themadnoodle/udon13/keymaps/default/rules.mk | 2 +- keyboards/themadnoodle/udon13/udon13.c | 2 +- keyboards/thepanduuh/degenpad/readme.md | 2 +- keyboards/thevankeyboards/readme.md | 2 +- keyboards/thumbsup/rev9_promicro_4x12/keyboard.json | 2 +- keyboards/thumbsup/rev9_promicro_4x12/rules.mk | 2 +- keyboards/togkey/pad_pocket/readme.md | 2 +- keyboards/tominabox1/le_chiffre/rev2/readme.md | 2 +- keyboards/tweetydabird/lbs4/keymaps/default/readme.md | 2 +- keyboards/tweetydabird/lbs4/readme.md | 2 +- keyboards/tweetydabird/lbs6/readme.md | 2 +- keyboards/tweetydabird/lotus58/keymaps/default/keymap.c | 2 +- keyboards/tweetydabird/lotus58/lotus58.c | 2 +- keyboards/tyraelwastaken/equanimity/keymaps/default/keymap.c | 2 +- keyboards/tyraelwastaken/equanimity/keymaps/default/rules.mk | 2 +- keyboards/tyraelwastaken/equanimity/readme.md | 2 +- keyboards/umbra/hotswap/readme.md | 2 +- keyboards/umbra/solder/readme.md | 2 +- keyboards/unikeyboard/diverge3/keymaps/workman/config.h | 2 +- keyboards/vertex/t75/keymaps/default/keymap.c | 2 +- keyboards/wavtype/foundation/readme.md | 2 +- keyboards/weirdo/kelowna/rgb64/keymaps/default/keymap.c | 2 +- keyboards/weirdo/naiping/npminila/keymaps/default/keymap.c | 2 +- keyboards/werk_technica/one/keyboard.json | 2 +- keyboards/werk_technica/one/mcuconf.h | 2 +- keyboards/westm/westm68/keymaps/default/keymap.c | 2 +- keyboards/westm/westm68/rev1/rev1.c | 2 +- keyboards/westm/westm9/chconf.h | 2 +- keyboards/westm/westm9/keymaps/default/keymap.c | 2 +- keyboards/westm/westm9/mcuconf.h | 2 +- keyboards/westm/westm9/readme.md | 2 +- keyboards/westm/westm9/rev1/config.h | 2 +- keyboards/westm/westm9/rev1/rev1.c | 2 +- keyboards/westm/westm9/rev2/config.h | 2 +- keyboards/westm/westm9/rev2/rev2.c | 2 +- keyboards/westm/westmergo/keymaps/default/keymap.c | 2 +- keyboards/westm/westmergo/readme.md | 2 +- keyboards/whitefacemountain/ampersand/keymaps/default/keymap.c | 2 +- keyboards/wilba_tech/rama_works_koyu/readme.md | 2 +- keyboards/wilba_tech/rama_works_m10_b/readme.md | 2 +- keyboards/wilba_tech/rama_works_m10_c/readme.md | 2 +- keyboards/wilba_tech/rama_works_m60_a/readme.md | 2 +- keyboards/wilba_tech/rama_works_m6_a/keymaps/naut/keymap.c | 2 +- keyboards/wilba_tech/rama_works_m6_a/readme.md | 2 +- keyboards/wilba_tech/rama_works_m6_b/readme.md | 2 +- keyboards/wilba_tech/rama_works_u80_a/readme.md | 2 +- keyboards/wilba_tech/via_test.c | 2 +- keyboards/wilba_tech/wt20_h1/keyboard.json | 2 +- keyboards/wilba_tech/wt60_a/readme.md | 2 +- keyboards/wilba_tech/wt60_b/readme.md | 2 +- keyboards/wilba_tech/wt60_bx/readme.md | 2 +- keyboards/wilba_tech/wt60_g/keymaps/default/keymap.c | 2 +- keyboards/wilba_tech/wt60_g2/keymaps/default/keymap.c | 2 +- keyboards/wilba_tech/wt60_h1/keymaps/default/keymap.c | 2 +- keyboards/wilba_tech/wt60_xt/wt60_xt.c | 2 +- keyboards/wilba_tech/wt65_d/keymaps/default/keymap.c | 2 +- keyboards/wilba_tech/wt65_f/keymaps/default/keymap.c | 2 +- keyboards/wilba_tech/wt65_fx/keymaps/default/keymap.c | 2 +- keyboards/wilba_tech/wt65_g/keymaps/default/keymap.c | 2 +- keyboards/wilba_tech/wt65_g2/keymaps/default/keymap.c | 2 +- keyboards/wilba_tech/wt69_a/keymaps/default/keymap.c | 2 +- keyboards/wilba_tech/wt80_a/readme.md | 2 +- keyboards/wilba_tech/wt8_a/readme.md | 2 +- keyboards/wilba_tech/zeal65/zeal65.c | 2 +- keyboards/willoucom/keypad/keyboard.json | 2 +- keyboards/willoucom/keypad/keymaps/default/keymap.json | 2 +- keyboards/willoucom/keypad/readme.md | 2 +- keyboards/winkeyless/b87/keymaps/default/keymap.c | 2 +- keyboards/winkeys/mini_winni/keymaps/default/keymap.c | 2 +- keyboards/wolf/frogpad/frogpad.c | 2 +- keyboards/wolf/frogpad/keymaps/default/keymap.c | 2 +- keyboards/wolf/frogpad/keymaps/default/rules.mk | 2 +- keyboards/wolf/m60_b/keymaps/default/keymap.c | 2 +- keyboards/wolf/m6_c/keyboard.json | 2 +- keyboards/wolf/silhouette/keymaps/default/keymap.c | 2 +- keyboards/wolf/ts60/readme.md | 2 +- keyboards/wolf/twilight/keymaps/default/keymap.c | 2 +- keyboards/wolfmarkclub/wm1/keymaps/default/keymap.c | 2 +- keyboards/woodkeys/bigseries/1key/keymaps/leddance/rules.mk | 2 +- keyboards/xdboards/recon/keyboard.json | 2 +- keyboards/xdboards/recon/post_config.h | 2 +- keyboards/xdboards/recon/post_rules.mk | 2 +- keyboards/xdboards/recon/readme.md | 2 +- keyboards/xdboards/recon/recon.c | 2 +- keyboards/xelus/dawn60/readme.md | 2 +- keyboards/xelus/dawn60/rev1_qmk/readme.md | 2 +- keyboards/xiudi/xd60/keymaps/crd_ansi/README.md | 2 +- keyboards/xiudi/xd60/keymaps/split_bksp_arrows/readme.md | 2 +- keyboards/xiudi/xd84pro/keymaps/default/keymap.c | 2 +- keyboards/xiudi/xd87/keymaps/default_underglow/readme.md | 2 +- keyboards/xiudi/xd87/readme.md | 2 +- keyboards/xiudi/xd96/matrix.c | 2 +- keyboards/xw60/keymaps/default/readme.md | 2 +- keyboards/yiancardesigns/gingham/keymaps/default/readme.md | 2 +- keyboards/yiancardesigns/gingham/keymaps/iso/readme.md | 2 +- keyboards/ymdk/yd60mq/keymaps/iso/keymap.c | 2 +- keyboards/ymdk/ymd62/config.h | 2 +- keyboards/ymdk/ymd62/keymaps/default/keymap.c | 2 +- keyboards/ymdk/ymd62/mcuconf.h | 2 +- keyboards/ymdk/ymd62/readme.md | 2 +- keyboards/ymdk/ymd62/rules.mk | 2 +- keyboards/yushakobo/ergo68/readme.md | 2 +- keyboards/yushakobo/quick7/keymaps/default/readme.md | 2 +- keyboards/zeix/acidandco/stellaron/readme.md | 2 +- keyboards/zeix/eden/readme.md | 2 +- keyboards/zeix/qwertyqop60hs/readme.md | 2 +- keyboards/zj68/keymaps/default/readme.md | 2 +- keyboards/ztboards/after/readme.md | 2 +- keyboards/ztboards/noon/readme.md | 2 +- keyboards/zvecr/split_blackpill/readme.md | 2 +- quantum/nvm/readme.md | 2 +- quantum/pointing_device/pointing_device.c | 2 +- tmk_core/protocol/usb_descriptor_common.h | 2 +- 1230 files changed, 1230 insertions(+), 1230 deletions(-) diff --git a/docs/public/pin_compatible_elite_c.svg b/docs/public/pin_compatible_elite_c.svg index cb54d9dfe4..cf85449dab 100644 --- a/docs/public/pin_compatible_elite_c.svg +++ b/docs/public/pin_compatible_elite_c.svg @@ -58,4 +58,4 @@ } .svgbob .start_marked_big_open_circle { marker-start: url(#big_open_circle); -}pinsBDCFF75710D3D2D1D0D4C6D7E6B4B5F4F5F6F7B1B3B2B6 \ No newline at end of file +}pinsBDCFF75710D3D2D1D0D4C6D7E6B4B5F4F5F6F7B1B3B2B6 diff --git a/docs/public/pin_compatible_promicro.svg b/docs/public/pin_compatible_promicro.svg index 044b265a57..46299f4f60 100644 --- a/docs/public/pin_compatible_promicro.svg +++ b/docs/public/pin_compatible_promicro.svg @@ -58,4 +58,4 @@ } .svgbob .start_marked_big_open_circle { marker-start: url(#big_open_circle); -}pinsLEDsB0D5D3D2D1D0D4C6D7E6B4B5F4F5F6F7B1B3B2B6 \ No newline at end of file +}pinsLEDsB0D5D3D2D1D0D4C6D7E6B4B5F4F5F6F7B1B3B2B6 diff --git a/keyboards/0xc7/61key/keymaps/default/keymap.c b/keyboards/0xc7/61key/keymaps/default/keymap.c index 06e39c1baa..8fc3c57ac3 100644 --- a/keyboards/0xc7/61key/keymaps/default/keymap.c +++ b/keyboards/0xc7/61key/keymaps/default/keymap.c @@ -31,4 +31,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_END, KC_PGDN, KC_TRNS, KC_TRNS, KC_TRNS, QK_LOCK, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, C(A(KC_DEL)) ) -}; \ No newline at end of file +}; diff --git a/keyboards/0xcb/tutelpad/keymaps/default/keymap.c b/keyboards/0xcb/tutelpad/keymaps/default/keymap.c index 513e7d9f33..708982c68c 100644 --- a/keyboards/0xcb/tutelpad/keymaps/default/keymap.c +++ b/keyboards/0xcb/tutelpad/keymaps/default/keymap.c @@ -26,4 +26,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8 ) -}; \ No newline at end of file +}; diff --git a/keyboards/0xcb/tutelpad/tutelpad.c b/keyboards/0xcb/tutelpad/tutelpad.c index 36671d5bd1..2e9fb4a0b8 100644 --- a/keyboards/0xcb/tutelpad/tutelpad.c +++ b/keyboards/0xcb/tutelpad/tutelpad.c @@ -103,4 +103,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/1upkeyboards/1upslider8/keymaps/default/rules.mk b/keyboards/1upkeyboards/1upslider8/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/1upkeyboards/1upslider8/keymaps/default/rules.mk +++ b/keyboards/1upkeyboards/1upslider8/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/1upkeyboards/pi40/halconf.h b/keyboards/1upkeyboards/pi40/halconf.h index 39fbe3e88c..a9ea8f9480 100644 --- a/keyboards/1upkeyboards/pi40/halconf.h +++ b/keyboards/1upkeyboards/pi40/halconf.h @@ -4,4 +4,4 @@ #define HAL_USE_I2C TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/1upkeyboards/pi40/keymaps/default/rules.mk b/keyboards/1upkeyboards/pi40/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/1upkeyboards/pi40/keymaps/default/rules.mk +++ b/keyboards/1upkeyboards/pi40/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/1upkeyboards/pi40/mcuconf.h b/keyboards/1upkeyboards/pi40/mcuconf.h index df94cb0346..98b9a28ab4 100644 --- a/keyboards/1upkeyboards/pi40/mcuconf.h +++ b/keyboards/1upkeyboards/pi40/mcuconf.h @@ -7,4 +7,4 @@ #undef RP_I2C_USE_I2C0 #undef RP_I2C_USE_I2C1 #define RP_I2C_USE_I2C0 TRUE -#define RP_I2C_USE_I2C1 FALSE \ No newline at end of file +#define RP_I2C_USE_I2C1 FALSE diff --git a/keyboards/1upkeyboards/pi40/pi40.c b/keyboards/1upkeyboards/pi40/pi40.c index 085f0da8f8..20ef8a76cd 100644 --- a/keyboards/1upkeyboards/pi40/pi40.c +++ b/keyboards/1upkeyboards/pi40/pi40.c @@ -287,4 +287,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/1upkeyboards/pi50/grid/keyboard.json b/keyboards/1upkeyboards/pi50/grid/keyboard.json index 5b23f27277..57f8ea241a 100644 --- a/keyboards/1upkeyboards/pi50/grid/keyboard.json +++ b/keyboards/1upkeyboards/pi50/grid/keyboard.json @@ -139,4 +139,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/1upkeyboards/pi50/halconf.h b/keyboards/1upkeyboards/pi50/halconf.h index d1bdcabdf1..4546b99f1c 100644 --- a/keyboards/1upkeyboards/pi50/halconf.h +++ b/keyboards/1upkeyboards/pi50/halconf.h @@ -4,4 +4,4 @@ #define HAL_USE_I2C TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/1upkeyboards/pi50/keymaps/default/rules.mk b/keyboards/1upkeyboards/pi50/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/1upkeyboards/pi50/keymaps/default/rules.mk +++ b/keyboards/1upkeyboards/pi50/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/1upkeyboards/pi50/mcuconf.h b/keyboards/1upkeyboards/pi50/mcuconf.h index 71e344bf24..22ca8794dc 100644 --- a/keyboards/1upkeyboards/pi50/mcuconf.h +++ b/keyboards/1upkeyboards/pi50/mcuconf.h @@ -7,4 +7,4 @@ #undef RP_I2C_USE_I2C0 #undef RP_I2C_USE_I2C1 #define RP_I2C_USE_I2C0 FALSE -#define RP_I2C_USE_I2C1 TRUE \ No newline at end of file +#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/1upkeyboards/pi60/keymaps/default/rules.mk b/keyboards/1upkeyboards/pi60/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/1upkeyboards/pi60/keymaps/default/rules.mk +++ b/keyboards/1upkeyboards/pi60/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/1upkeyboards/readme.md b/keyboards/1upkeyboards/readme.md index de8ae36acb..d39565636e 100644 --- a/keyboards/1upkeyboards/readme.md +++ b/keyboards/1upkeyboards/readme.md @@ -4,4 +4,4 @@ Website: [1UP Keyboards](https://www.1upkeyboards.com/) Discord: [Server Invite](https://discordapp.com/invite/c6SYn8) -YouTube: [skiwithpete](https://www.youtube.com/user/skiwithpete) \ No newline at end of file +YouTube: [skiwithpete](https://www.youtube.com/user/skiwithpete) diff --git a/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c b/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c index ac30909566..408ea72ea6 100644 --- a/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c +++ b/keyboards/1upkeyboards/super16v2/keymaps/default/keymap.c @@ -47,4 +47,4 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } return false; -} \ No newline at end of file +} diff --git a/keyboards/30wer/readme.md b/keyboards/30wer/readme.md index c9184f726b..3759b0e2ce 100644 --- a/keyboards/30wer/readme.md +++ b/keyboards/30wer/readme.md @@ -13,4 +13,4 @@ Make example for this keyboard (after setting up your build environment): make 30wer: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). \ No newline at end of file +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/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.h b/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.h index d85d4e60a9..e06c1deb24 100644 --- a/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.h +++ b/keyboards/3w6/rev2/keymaps/default_pimoroni/pimoroni_trackball.h @@ -32,4 +32,4 @@ void trackball_register_button(bool pressed, enum mouse_buttons button); float trackball_get_precision(void); void trackball_set_precision(float precision); bool trackball_is_scrolling(void); -void trackball_set_scrolling(bool scroll); \ No newline at end of file +void trackball_set_scrolling(bool scroll); diff --git a/keyboards/4pplet/ibe60/keymaps/default/keymap.c b/keyboards/4pplet/ibe60/keymaps/default/keymap.c index 9ec56d4809..d0c4b7891a 100644 --- a/keyboards/4pplet/ibe60/keymaps/default/keymap.c +++ b/keyboards/4pplet/ibe60/keymaps/default/keymap.c @@ -31,4 +31,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, 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) -}; \ No newline at end of file +}; diff --git a/keyboards/4pplet/waffling60/rev_e_iso/matrix_diagram.md b/keyboards/4pplet/waffling60/rev_e_iso/matrix_diagram.md index 9ccedf98e3..6e5bea9666 100644 --- a/keyboards/4pplet/waffling60/rev_e_iso/matrix_diagram.md +++ b/keyboards/4pplet/waffling60/rev_e_iso/matrix_diagram.md @@ -21,4 +21,4 @@ ┌─────┬───┬───────────────────────────────────────┬───┬─────┐ │40 │41 │46 │4C │4D │ 10u Spacebar └─────┴───┴───────────────────────────────────────┴───┴─────┘ -``` \ No newline at end of file +``` diff --git a/keyboards/7c8/framework/readme.md b/keyboards/7c8/framework/readme.md index 5f29743aad..8f6a3b38bc 100644 --- a/keyboards/7c8/framework/readme.md +++ b/keyboards/7c8/framework/readme.md @@ -27,4 +27,4 @@ Flashing example for this keyboard: make 7c8/framework: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). \ No newline at end of file +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/8pack/readme.md b/keyboards/8pack/readme.md index 9c608e2a59..d2461b9847 100644 --- a/keyboards/8pack/readme.md +++ b/keyboards/8pack/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make 8pack: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). \ No newline at end of file +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/9key/readme.md b/keyboards/9key/readme.md index 89629cc8c7..18b4f727ae 100644 --- a/keyboards/9key/readme.md +++ b/keyboards/9key/readme.md @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): make 9key:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/a_jazz/akc084/keymaps/default/keymap.c b/keyboards/a_jazz/akc084/keymaps/default/keymap.c index 2bd7992707..6ea0ca3660 100644 --- a/keyboards/a_jazz/akc084/keymaps/default/keymap.c +++ b/keyboards/a_jazz/akc084/keymaps/default/keymap.c @@ -40,4 +40,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, GU_TOGG, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/abstract/ellipse/keymaps/default/readme.md b/keyboards/abstract/ellipse/keymaps/default/readme.md index e14c0c8bd5..a8ee158339 100644 --- a/keyboards/abstract/ellipse/keymaps/default/readme.md +++ b/keyboards/abstract/ellipse/keymaps/default/readme.md @@ -3,4 +3,4 @@ This keymap allows for basic testing of the keypad once assembled. Each knob and key outputs a different standard letter keycode, except for the middle knob which changes the hue of the RGB LEDs and when -pressed down turns off the RGB LEDs \ No newline at end of file +pressed down turns off the RGB LEDs diff --git a/keyboards/acheron/austin/readme.md b/keyboards/acheron/austin/readme.md index 7d7357fd37..51d052c307 100644 --- a/keyboards/acheron/austin/readme.md +++ b/keyboards/acheron/austin/readme.md @@ -26,4 +26,4 @@ After setting up your build environment, you can compile the Austin default keym make acheron/austin: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). \ No newline at end of file +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/adm42/rev4/keymaps/default/keymap.json b/keyboards/adm42/rev4/keymaps/default/keymap.json index dce2405bc0..75feb71c50 100644 --- a/keyboards/adm42/rev4/keymaps/default/keymap.json +++ b/keyboards/adm42/rev4/keymaps/default/keymap.json @@ -41,4 +41,4 @@ "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX", "XXXXXXX" ] ] -} \ No newline at end of file +} diff --git a/keyboards/adpenrose/kintsugi/post_config.h b/keyboards/adpenrose/kintsugi/post_config.h index 36913903f7..f1e3f2e2c7 100644 --- a/keyboards/adpenrose/kintsugi/post_config.h +++ b/keyboards/adpenrose/kintsugi/post_config.h @@ -20,4 +20,4 @@ along with this program. If not, see . #ifndef OLED_FONT_H # define OLED_FONT_H "lib/kintsugifont.c" # define OLED_TIMEOUT 120000 -#endif \ No newline at end of file +#endif diff --git a/keyboards/adpenrose/mine/keymaps/default/keymap.c b/keyboards/adpenrose/mine/keymaps/default/keymap.c index 3d6cf31bd8..9ae158fb6f 100644 --- a/keyboards/adpenrose/mine/keymaps/default/keymap.c +++ b/keyboards/adpenrose/mine/keymaps/default/keymap.c @@ -30,4 +30,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/adpenrose/mine/keymaps/default/rules.mk b/keyboards/adpenrose/mine/keymaps/default/rules.mk index 4769500eb0..2ac8beff37 100644 --- a/keyboards/adpenrose/mine/keymaps/default/rules.mk +++ b/keyboards/adpenrose/mine/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes # Encoder mapping functionality \ No newline at end of file +ENCODER_MAP_ENABLE = yes # Encoder mapping functionality diff --git a/keyboards/adpenrose/mine/keymaps/iso/keymap.c b/keyboards/adpenrose/mine/keymaps/iso/keymap.c index 988330c979..1f275543f9 100644 --- a/keyboards/adpenrose/mine/keymaps/iso/keymap.c +++ b/keyboards/adpenrose/mine/keymaps/iso/keymap.c @@ -30,4 +30,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/adpenrose/mine/keymaps/iso/rules.mk b/keyboards/adpenrose/mine/keymaps/iso/rules.mk index 4769500eb0..2ac8beff37 100644 --- a/keyboards/adpenrose/mine/keymaps/iso/rules.mk +++ b/keyboards/adpenrose/mine/keymaps/iso/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes # Encoder mapping functionality \ No newline at end of file +ENCODER_MAP_ENABLE = yes # Encoder mapping functionality diff --git a/keyboards/adpenrose/mine/matrix_diagram.md b/keyboards/adpenrose/mine/matrix_diagram.md index 05d34fb066..56b2c9642e 100644 --- a/keyboards/adpenrose/mine/matrix_diagram.md +++ b/keyboards/adpenrose/mine/matrix_diagram.md @@ -75,4 +75,4 @@ ┌──┐┌──┐┌──┐ │6H││8H││9H│ └──┘└──┘└──┘ -``` \ No newline at end of file +``` diff --git a/keyboards/adpenrose/mine/rules.mk b/keyboards/adpenrose/mine/rules.mk index 93ae8d898f..c2ee0bc86f 100644 --- a/keyboards/adpenrose/mine/rules.mk +++ b/keyboards/adpenrose/mine/rules.mk @@ -1,2 +1,2 @@ # Processor frequency -F_CPU = 16000000 \ No newline at end of file +F_CPU = 16000000 diff --git a/keyboards/aeboards/aegis/readme.md b/keyboards/aeboards/aegis/readme.md index 1b8fc124e5..44aad98731 100644 --- a/keyboards/aeboards/aegis/readme.md +++ b/keyboards/aeboards/aegis/readme.md @@ -11,4 +11,4 @@ Make example for this keyboard (after setting up your build environment): make aeboards/aegis: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). \ No newline at end of file +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/ai03/jp60/keymaps/default/rules.mk b/keyboards/ai03/jp60/keymaps/default/rules.mk index edac26d087..3c67c83586 100644 --- a/keyboards/ai03/jp60/keymaps/default/rules.mk +++ b/keyboards/ai03/jp60/keymaps/default/rules.mk @@ -1 +1 @@ -DEBOUNCE_TYPE = asym_eager_defer_pk # Specify per-key debounce for improved responsiveness \ No newline at end of file +DEBOUNCE_TYPE = asym_eager_defer_pk # Specify per-key debounce for improved responsiveness diff --git a/keyboards/ai03/readme.md b/keyboards/ai03/readme.md index 90bd219289..8e5fccbfee 100644 --- a/keyboards/ai03/readme.md +++ b/keyboards/ai03/readme.md @@ -1,4 +1,4 @@ # ai03 QMK folders for PCB commissions. -Website: [ai03 Keyboard Designs](https://kb.ai03.me/) \ No newline at end of file +Website: [ai03 Keyboard Designs](https://kb.ai03.me/) diff --git a/keyboards/aidansmithdotdev/fine40/keymaps/default/keymap.c b/keyboards/aidansmithdotdev/fine40/keymaps/default/keymap.c index e541c14d01..8b0f3e4333 100644 --- a/keyboards/aidansmithdotdev/fine40/keymaps/default/keymap.c +++ b/keyboards/aidansmithdotdev/fine40/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_RIGHT] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_TAB] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/akko/top40/top40.c b/keyboards/akko/top40/top40.c index 565dfb77c6..529b936a26 100644 --- a/keyboards/akko/top40/top40.c +++ b/keyboards/akko/top40/top40.c @@ -122,4 +122,4 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { return true; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/aliceh66/pianoforte/readme.md b/keyboards/aliceh66/pianoforte/readme.md index aadd975b79..05e17bb94c 100644 --- a/keyboards/aliceh66/pianoforte/readme.md +++ b/keyboards/aliceh66/pianoforte/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): 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 and hold the reset button to enter bootloader mode. \ No newline at end of file +Press and hold the reset button to enter bootloader mode. diff --git a/keyboards/aliceh66/pianoforte_hs/readme.md b/keyboards/aliceh66/pianoforte_hs/readme.md index 6b05e06805..2f6c2b112d 100644 --- a/keyboards/aliceh66/pianoforte_hs/readme.md +++ b/keyboards/aliceh66/pianoforte_hs/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): 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 and hold the reset button to enter bootloader mode. \ No newline at end of file +Press and hold the reset button to enter bootloader mode. diff --git a/keyboards/alpaca/wfeclipse/keyboard.json b/keyboards/alpaca/wfeclipse/keyboard.json index da0ebe388a..682772445d 100644 --- a/keyboards/alpaca/wfeclipse/keyboard.json +++ b/keyboards/alpaca/wfeclipse/keyboard.json @@ -206,4 +206,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/amjkeyboard/amj66/keymaps/default/readme.md b/keyboards/amjkeyboard/amj66/keymaps/default/readme.md index c250695efd..90efe9d22a 100644 --- a/keyboards/amjkeyboard/amj66/keymaps/default/readme.md +++ b/keyboards/amjkeyboard/amj66/keymaps/default/readme.md @@ -9,4 +9,4 @@ Backlight breathing: Fn + , Volume Up/Down: Fn + [ and Fn + ] Mute: Fn + \ Sleep: Fn + / -Bootloader Mode: Fn + CapsLock \ No newline at end of file +Bootloader Mode: Fn + CapsLock diff --git a/keyboards/annepro2/boards/ANNEPRO2_C15/board.h b/keyboards/annepro2/boards/ANNEPRO2_C15/board.h index 0a044ea181..7345b24231 100644 --- a/keyboards/annepro2/boards/ANNEPRO2_C15/board.h +++ b/keyboards/annepro2/boards/ANNEPRO2_C15/board.h @@ -36,4 +36,4 @@ void boardInit(void); #ifdef __cplusplus } #endif -#endif /* _FROM_ASM_ */ \ No newline at end of file +#endif /* _FROM_ASM_ */ diff --git a/keyboards/annepro2/chconf.h b/keyboards/annepro2/chconf.h index 51fe38cf27..908a19920f 100644 --- a/keyboards/annepro2/chconf.h +++ b/keyboards/annepro2/chconf.h @@ -28,4 +28,4 @@ #define CH_CFG_TIME_QUANTUM 20 -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/ano/readme.md b/keyboards/ano/readme.md index 594d4bc69c..483e3c78af 100644 --- a/keyboards/ano/readme.md +++ b/keyboards/ano/readme.md @@ -17,4 +17,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader in 2 ways: * Physical reset button: Briefly press the button on the back of the PCB - or short reset and ground pins -* Keycode in layout: Press the key mapped to `QK_BOOT`. By default this is done by pressing RALT to access second layer and pressing rotary encoder down. \ No newline at end of file +* Keycode in layout: Press the key mapped to `QK_BOOT`. By default this is done by pressing RALT to access second layer and pressing rotary encoder down. diff --git a/keyboards/archerkeyboard/desire65/readme.md b/keyboards/archerkeyboard/desire65/readme.md index 5d170ad475..b8ee33931f 100644 --- a/keyboards/archerkeyboard/desire65/readme.md +++ b/keyboards/archerkeyboard/desire65/readme.md @@ -24,4 +24,4 @@ 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 "USB_BOOT" button on the back of the PCB (the one closest to the MCU) 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/archetype/minervalx/readme.md b/keyboards/archetype/minervalx/readme.md index 365fd375e5..7d3c50d04f 100644 --- a/keyboards/archetype/minervalx/readme.md +++ b/keyboards/archetype/minervalx/readme.md @@ -21,4 +21,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key ESC key and plug in the keyboard (Top Left most switch) * **Keycode in layout**: Press the key mapped to `QK_BOOT` if available -* **Physical Reset Button**: With the PCB unplugged, hold down the button labled `RESET` on the back of the PCB while pluggin in the USB. \ No newline at end of file +* **Physical Reset Button**: With the PCB unplugged, hold down the button labled `RESET` on the back of the PCB while pluggin in the USB. diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/keymap.c b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/keymap.c index b522997e6f..ef74deecd0 100644 --- a/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/keymap.c +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/keymap.c @@ -46,4 +46,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [UL] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) }, }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/rules.mk b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/rules.mk +++ b/keyboards/argo_works/ishi/80/mk0_avr_extra/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/argyle/keyboard.json b/keyboards/argyle/keyboard.json index d97f067be8..95acd2bfb1 100755 --- a/keyboards/argyle/keyboard.json +++ b/keyboards/argyle/keyboard.json @@ -974,4 +974,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/arrayperipherals/1x4p1/keymaps/default/readme.md b/keyboards/arrayperipherals/1x4p1/keymaps/default/readme.md index ba50c6bd2e..84376d4fb4 100644 --- a/keyboards/arrayperipherals/1x4p1/keymaps/default/readme.md +++ b/keyboards/arrayperipherals/1x4p1/keymaps/default/readme.md @@ -2,4 +2,4 @@ # Default [1x4] + 1 Macropad Layout -This is the default layout that comes flashed on every [1x4] + 1 Macropad. The right most key (red) is the rotary and the key is binded to layer switching. The second layer is left blank for the user. \ No newline at end of file +This is the default layout that comes flashed on every [1x4] + 1 Macropad. The right most key (red) is the rotary and the key is binded to layer switching. The second layer is left blank for the user. diff --git a/keyboards/arrayperipherals/vector/keymaps/default/keymap.c b/keyboards/arrayperipherals/vector/keymaps/default/keymap.c index e290e37076..7a248aada5 100644 --- a/keyboards/arrayperipherals/vector/keymaps/default/keymap.c +++ b/keyboards/arrayperipherals/vector/keymaps/default/keymap.c @@ -33,4 +33,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, [1] = {ENCODER_CCW_CW(KC_TRNS, KC_TRNS)}, }; -#endif // ENCODER_MAP_ENABLE \ No newline at end of file +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/arrayperipherals/vector/keymaps/default/rules.mk b/keyboards/arrayperipherals/vector/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/arrayperipherals/vector/keymaps/default/rules.mk +++ b/keyboards/arrayperipherals/vector/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/arrayperipherals/vector/readme.md b/keyboards/arrayperipherals/vector/readme.md index dee7dc8f9a..093609fa3f 100644 --- a/keyboards/arrayperipherals/vector/readme.md +++ b/keyboards/arrayperipherals/vector/readme.md @@ -23,4 +23,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader in 2 ways: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (left most from the rotary) -* **Physical reset button**: Briefly double press the button on the back of the PCB \ No newline at end of file +* **Physical reset button**: Briefly double press the button on the back of the PCB diff --git a/keyboards/artifact/lvl/rev_hs01/keyboard.json b/keyboards/artifact/lvl/rev_hs01/keyboard.json index 1b58750155..ea2182880a 100755 --- a/keyboards/artifact/lvl/rev_hs01/keyboard.json +++ b/keyboards/artifact/lvl/rev_hs01/keyboard.json @@ -229,4 +229,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/atlantis/ak81_ve/keymaps/default/keymap.c b/keyboards/atlantis/ak81_ve/keymaps/default/keymap.c index afe041d515..85c0556769 100644 --- a/keyboards/atlantis/ak81_ve/keymaps/default/keymap.c +++ b/keyboards/atlantis/ak81_ve/keymaps/default/keymap.c @@ -34,4 +34,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, _______, _______, _______, _______, RM_HUEU, RM_SPDD, _______, _______, _______, _______, _______, _______, RM_SATD, RM_HUED, RM_SATU) -}; \ No newline at end of file +}; diff --git a/keyboards/atlantis/ak81_ve/readme.md b/keyboards/atlantis/ak81_ve/readme.md index ab1fee5a48..1762490914 100644 --- a/keyboards/atlantis/ak81_ve/readme.md +++ b/keyboards/atlantis/ak81_ve/readme.md @@ -20,4 +20,4 @@ Enter the bootloader in 2 ways: * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available * **Physical reset pins**: Briefly short the reset pins using tweezers, a paperclip, or any other conductive material. -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 +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/atlantis/readme.md b/keyboards/atlantis/readme.md index 50a2cc2fed..2f15b5a0c3 100644 --- a/keyboards/atlantis/readme.md +++ b/keyboards/atlantis/readme.md @@ -4,4 +4,4 @@ A company that has been known to create some unorthodox and unique styled keyboa Atlantis also produce some more traditional layouts like the AK81 a 75% layout (AK81_VE variant includes a rotary enconder) and a large range of macro pads. -Atlantis seem to be operating mainly out of Malaysia, products can be difficult to source internationally. \ No newline at end of file +Atlantis seem to be operating mainly out of Malaysia, products can be difficult to source internationally. diff --git a/keyboards/atomic/readme.md b/keyboards/atomic/readme.md index 0561c4fea5..235fcfedb4 100644 --- a/keyboards/atomic/readme.md +++ b/keyboards/atomic/readme.md @@ -13,4 +13,4 @@ Make example for this keyboard (after setting up your build environment): make atomic:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/atset/at1/readme.md b/keyboards/atset/at1/readme.md index 330c1b2ff8..ca5bee7dd2 100644 --- a/keyboards/atset/at1/readme.md +++ b/keyboards/atset/at1/readme.md @@ -22,4 +22,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/atset/at12/readme.md b/keyboards/atset/at12/readme.md index 6760e33ab5..637d921e1e 100644 --- a/keyboards/atset/at12/readme.md +++ b/keyboards/atset/at12/readme.md @@ -22,4 +22,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/atset/at3/readme.md b/keyboards/atset/at3/readme.md index 755169c5d6..f1b8b33625 100644 --- a/keyboards/atset/at3/readme.md +++ b/keyboards/atset/at3/readme.md @@ -22,4 +22,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/automata02/alisaie/readme.md b/keyboards/automata02/alisaie/readme.md index 8bfcae86f1..851ef25e1e 100644 --- a/keyboards/automata02/alisaie/readme.md +++ b/keyboards/automata02/alisaie/readme.md @@ -21,4 +21,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader: -* **Physical reset button**: Briefly press the button on the backside of the PCB located bellow the Y keyswitch. \ No newline at end of file +* **Physical reset button**: Briefly press the button on the backside of the PCB located bellow the Y keyswitch. diff --git a/keyboards/basekeys/trifecta/keymaps/default/rules.mk b/keyboards/basekeys/trifecta/keymaps/default/rules.mk index 910bd64a59..ae71c4baca 100644 --- a/keyboards/basekeys/trifecta/keymaps/default/rules.mk +++ b/keyboards/basekeys/trifecta/keymaps/default/rules.mk @@ -1,2 +1,2 @@ CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no \ No newline at end of file +COMMAND_ENABLE = no diff --git a/keyboards/bestway/keyboard.json b/keyboards/bestway/keyboard.json index 2f4541b268..8f68af1432 100644 --- a/keyboards/bestway/keyboard.json +++ b/keyboards/bestway/keyboard.json @@ -208,4 +208,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/bestway/readme.md b/keyboards/bestway/readme.md index c91d09e83f..a3cccaac91 100644 --- a/keyboards/bestway/readme.md +++ b/keyboards/bestway/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/blaster75/keymaps/default/readme.md b/keyboards/blaster75/keymaps/default/readme.md index 16bb7d7124..5d26816ecf 100644 --- a/keyboards/blaster75/keymaps/default/readme.md +++ b/keyboards/blaster75/keymaps/default/readme.md @@ -4,4 +4,4 @@ This is the default keymap intended for Blaster 75 Custom Keyboard by ALTAiN. This layout overall follows ANSI layout except the bottom rows. Should the user wishes to, the bottom layout can be configured as the following: 1) 1.25 / 1.25 / 1.25 / 6.26u Spacebar / 1.25 / 1.25 , or -2) 1.5u / 1u / 1.5u / 7u Spacebar / 1.5u \ No newline at end of file +2) 1.5u / 1u / 1.5u / 7u Spacebar / 1.5u diff --git a/keyboards/blockboy/ac980mini/keymaps/default/keymap.c b/keyboards/blockboy/ac980mini/keymaps/default/keymap.c index 0194281ebf..7bd31539c0 100644 --- a/keyboards/blockboy/ac980mini/keymaps/default/keymap.c +++ b/keyboards/blockboy/ac980mini/keymaps/default/keymap.c @@ -71,4 +71,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -*/ \ No newline at end of file +*/ diff --git a/keyboards/boardrun/bizarre/keymaps/default/keymap.c b/keyboards/boardrun/bizarre/keymaps/default/keymap.c index 545318f1a4..2b60687abb 100644 --- a/keyboards/boardrun/bizarre/keymaps/default/keymap.c +++ b/keyboards/boardrun/bizarre/keymaps/default/keymap.c @@ -68,4 +68,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______,_______, _______,_______,_______,KC_PAUS,KC_RGUI, _______,_______,KC_MENU,_______,_______, _______,_______, KC_PGUP, _______, _______, _______, KC_RALT, _______, KC_HOME,KC_PGDN,KC_END ) -}; \ No newline at end of file +}; diff --git a/keyboards/boardsource/4x12/readme.md b/keyboards/boardsource/4x12/readme.md index 17cf01ed02..0a60faf6a9 100644 --- a/keyboards/boardsource/4x12/readme.md +++ b/keyboards/boardsource/4x12/readme.md @@ -9,4 +9,4 @@ Make example for this keyboard (after setting up your build environment): make boardsource/4x12: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). \ No newline at end of file +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/boardsource/5x12/readme.md b/keyboards/boardsource/5x12/readme.md index f1bf8a84c3..914c7b586a 100644 --- a/keyboards/boardsource/5x12/readme.md +++ b/keyboards/boardsource/5x12/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make boardsource/5x12: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). \ No newline at end of file +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/bobpad/bobpad.c b/keyboards/bobpad/bobpad.c index 83b4dbaad0..a52a7c7223 100644 --- a/keyboards/bobpad/bobpad.c +++ b/keyboards/bobpad/bobpad.c @@ -42,4 +42,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } } return true; -} \ No newline at end of file +} diff --git a/keyboards/boston_meetup/2019/keymaps/default/readme.md b/keyboards/boston_meetup/2019/keymaps/default/readme.md index 75f80b5191..34edc98509 100644 --- a/keyboards/boston_meetup/2019/keymaps/default/readme.md +++ b/keyboards/boston_meetup/2019/keymaps/default/readme.md @@ -48,4 +48,4 @@ Adjust: ``` -RGB still work in progress \ No newline at end of file +RGB still work in progress diff --git a/keyboards/boston_meetup/2019/readme.md b/keyboards/boston_meetup/2019/readme.md index 2bdac9dcde..7f7c068e00 100644 --- a/keyboards/boston_meetup/2019/readme.md +++ b/keyboards/boston_meetup/2019/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make boston_meetup/2019: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). \ No newline at end of file +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/boston_meetup/readme.md b/keyboards/boston_meetup/readme.md index 2fa1ec9583..5ce30a2c46 100644 --- a/keyboards/boston_meetup/readme.md +++ b/keyboards/boston_meetup/readme.md @@ -11,4 +11,4 @@ Make example for this keyboard (after setting up your build environment): make boston_meetup/YYYY: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). \ No newline at end of file +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/bpiphany/pegasushoof/keymaps/default/keymap.c b/keyboards/bpiphany/pegasushoof/keymaps/default/keymap.c index cad6f605cd..6a867acf67 100644 --- a/keyboards/bpiphany/pegasushoof/keymaps/default/keymap.c +++ b/keyboards/bpiphany/pegasushoof/keymaps/default/keymap.c @@ -39,4 +39,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, KC_MPRV, KC_MSTP, KC_MNXT ) -}; \ No newline at end of file +}; diff --git a/keyboards/bpiphany/pegasushoof/keymaps/default_jis/keymap.c b/keyboards/bpiphany/pegasushoof/keymaps/default_jis/keymap.c index 04e75e7701..a534334d05 100644 --- a/keyboards/bpiphany/pegasushoof/keymaps/default_jis/keymap.c +++ b/keyboards/bpiphany/pegasushoof/keymaps/default_jis/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, KC_MPLY, _______,_______,_______,_______, _______, _______,_______,_______,_______,QK_BOOT , KC_MPRV,KC_MSTP,KC_MNXT) - }; \ No newline at end of file + }; diff --git a/keyboards/bpiphany/tiger_lily/keymaps/default/keymap.c b/keyboards/bpiphany/tiger_lily/keymaps/default/keymap.c index 11cbff86bd..8cafdbda0e 100644 --- a/keyboards/bpiphany/tiger_lily/keymaps/default/keymap.c +++ b/keyboards/bpiphany/tiger_lily/keymaps/default/keymap.c @@ -8,4 +8,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_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_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT, KC_P0,KC_PDOT) -}; \ No newline at end of file +}; diff --git a/keyboards/bpiphany/tiger_lily/keymaps/default_ansi/keymap.c b/keyboards/bpiphany/tiger_lily/keymaps/default_ansi/keymap.c index 095568a355..e210d01836 100644 --- a/keyboards/bpiphany/tiger_lily/keymaps/default_ansi/keymap.c +++ b/keyboards/bpiphany/tiger_lily/keymaps/default_ansi/keymap.c @@ -8,4 +8,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_LGUI,KC_LALT, KC_SPC, KC_RALT,KC_RGUI, KC_APP,KC_RCTL, KC_LEFT,KC_DOWN,KC_RGHT, KC_P0,KC_PDOT) -}; \ No newline at end of file +}; diff --git a/keyboards/bredworks/wyvern_hs/keyboard.json b/keyboards/bredworks/wyvern_hs/keyboard.json index c5233c304a..5854e97e3b 100644 --- a/keyboards/bredworks/wyvern_hs/keyboard.json +++ b/keyboards/bredworks/wyvern_hs/keyboard.json @@ -303,4 +303,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/bredworks/wyvern_hs/keymaps/default/keymap.c b/keyboards/bredworks/wyvern_hs/keymaps/default/keymap.c index 3d0e067215..0ed31b73e2 100644 --- a/keyboards/bredworks/wyvern_hs/keymaps/default/keymap.c +++ b/keyboards/bredworks/wyvern_hs/keymaps/default/keymap.c @@ -30,4 +30,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/buildakb/mw60/keyboard.json b/keyboards/buildakb/mw60/keyboard.json index 00e21a0335..3ecff02e44 100644 --- a/keyboards/buildakb/mw60/keyboard.json +++ b/keyboards/buildakb/mw60/keyboard.json @@ -956,4 +956,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/buildakb/mw60/readme.md b/keyboards/buildakb/mw60/readme.md index f5e0119eeb..70f8432a27 100644 --- a/keyboards/buildakb/mw60/readme.md +++ b/keyboards/buildakb/mw60/readme.md @@ -21,4 +21,4 @@ To reset into bootloader mode: While plugged in, press the RESET switch located on the back of the pcb. The keyboard should now be in bootloader mode. -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 +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/buildakb/potato65hs/keymaps/default/keymap.c b/keyboards/buildakb/potato65hs/keymaps/default/keymap.c index 56f655447e..b5759208c0 100644 --- a/keyboards/buildakb/potato65hs/keymaps/default/keymap.c +++ b/keyboards/buildakb/potato65hs/keymaps/default/keymap.c @@ -36,4 +36,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT ) -}; \ No newline at end of file +}; diff --git a/keyboards/buildakb/potato65hs/readme.md b/keyboards/buildakb/potato65hs/readme.md index bf8abea839..cd4ef10e68 100644 --- a/keyboards/buildakb/potato65hs/readme.md +++ b/keyboards/buildakb/potato65hs/readme.md @@ -21,4 +21,4 @@ To reset into bootloader mode: While plugged in, press the RESET switch located on the back of the pcb. The keyboard should now be in bootloader mode. -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 +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/buildakb/potato65s/readme.md b/keyboards/buildakb/potato65s/readme.md index f24b97ca63..fe9ba579f8 100644 --- a/keyboards/buildakb/potato65s/readme.md +++ b/keyboards/buildakb/potato65s/readme.md @@ -21,4 +21,4 @@ To reset into bootloader mode: While plugged in, press the RESET switch located on the back of the pcb. The keyboard should now be in bootloader mode. -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 +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/butterkeebs/pocketpad/keymaps/default/keymap.c b/keyboards/butterkeebs/pocketpad/keymaps/default/keymap.c index 0591fde140..76ffaf55ba 100644 --- a/keyboards/butterkeebs/pocketpad/keymaps/default/keymap.c +++ b/keyboards/butterkeebs/pocketpad/keymaps/default/keymap.c @@ -11,4 +11,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_KP_4, KC_KP_5, KC_KP_6, KC_KP_ENTER, KC_KP_1, KC_KP_2, KC_KP_3, KC_KP_DOT, KC_F, KC_KP_0) -}; \ No newline at end of file +}; diff --git a/keyboards/buzzard/keymaps/default/keymap.c b/keyboards/buzzard/keymaps/default/keymap.c index 9e9fe20577..3dc236e14f 100644 --- a/keyboards/buzzard/keymaps/default/keymap.c +++ b/keyboards/buzzard/keymaps/default/keymap.c @@ -271,4 +271,4 @@ bool get_haptic_enabled_key(uint16_t keycode, keyrecord_t *record) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/buzzard/keymaps/default/rules.mk b/keyboards/buzzard/keymaps/default/rules.mk index 46728f3803..c98d7f5b64 100644 --- a/keyboards/buzzard/keymaps/default/rules.mk +++ b/keyboards/buzzard/keymaps/default/rules.mk @@ -4,4 +4,4 @@ OLED_ENABLE = yes # uncomment if you are using an OLED display #HAPTIC_DRIVER = drv2605l # uncomment only on the master side if you are using a Pimoroni haptic buzz #PS2_MOUSE_ENABLE = yes # uncomment only on the master side if you are usin a TrackPoint -MOUSEKEY_ENABLE = yes \ No newline at end of file +MOUSEKEY_ENABLE = yes diff --git a/keyboards/buzzard/readme.md b/keyboards/buzzard/readme.md index d86c2feb31..d06406baf4 100644 --- a/keyboards/buzzard/readme.md +++ b/keyboards/buzzard/readme.md @@ -26,4 +26,4 @@ Make example for this keyboard (after setting up your build environment): 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). -A build guide for the Buzzard keyboard can be found at [https://github.com/crehmann/Buzzard](https://github.com/crehmann/Buzzard) \ No newline at end of file +A build guide for the Buzzard keyboard can be found at [https://github.com/crehmann/Buzzard](https://github.com/crehmann/Buzzard) diff --git a/keyboards/buzzard/rev1/rev1.c b/keyboards/buzzard/rev1/rev1.c index 03c3269a7e..d7d2dac124 100644 --- a/keyboards/buzzard/rev1/rev1.c +++ b/keyboards/buzzard/rev1/rev1.c @@ -125,4 +125,4 @@ __attribute__((weak)) layer_state_t layer_state_set_user(layer_state_t state) { break; } return state; -} \ No newline at end of file +} diff --git a/keyboards/cablecardesigns/cypher/rev6/keymaps/default/config.h b/keyboards/cablecardesigns/cypher/rev6/keymaps/default/config.h index eda93545b4..fba4dffbbb 100644 --- a/keyboards/cablecardesigns/cypher/rev6/keymaps/default/config.h +++ b/keyboards/cablecardesigns/cypher/rev6/keymaps/default/config.h @@ -4,4 +4,4 @@ #define RGBLIGHT_LAYERS #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF -#define RGBLIGHT_DEFAULT_VAL 0 \ No newline at end of file +#define RGBLIGHT_DEFAULT_VAL 0 diff --git a/keyboards/cablecardesigns/cypher/rev6/keymaps/default_ansi/config.h b/keyboards/cablecardesigns/cypher/rev6/keymaps/default_ansi/config.h index eda93545b4..fba4dffbbb 100644 --- a/keyboards/cablecardesigns/cypher/rev6/keymaps/default_ansi/config.h +++ b/keyboards/cablecardesigns/cypher/rev6/keymaps/default_ansi/config.h @@ -4,4 +4,4 @@ #define RGBLIGHT_LAYERS #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF -#define RGBLIGHT_DEFAULT_VAL 0 \ No newline at end of file +#define RGBLIGHT_DEFAULT_VAL 0 diff --git a/keyboards/cablecardesigns/cypher/rev6/keymaps/default_iso/config.h b/keyboards/cablecardesigns/cypher/rev6/keymaps/default_iso/config.h index eda93545b4..fba4dffbbb 100644 --- a/keyboards/cablecardesigns/cypher/rev6/keymaps/default_iso/config.h +++ b/keyboards/cablecardesigns/cypher/rev6/keymaps/default_iso/config.h @@ -4,4 +4,4 @@ #define RGBLIGHT_LAYERS #define RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF -#define RGBLIGHT_DEFAULT_VAL 0 \ No newline at end of file +#define RGBLIGHT_DEFAULT_VAL 0 diff --git a/keyboards/cannonkeys/bakeneko60_iso_hs/readme.md b/keyboards/cannonkeys/bakeneko60_iso_hs/readme.md index 571ebea80b..3cb4481855 100644 --- a/keyboards/cannonkeys/bakeneko60_iso_hs/readme.md +++ b/keyboards/cannonkeys/bakeneko60_iso_hs/readme.md @@ -21,4 +21,4 @@ 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 "0" 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c index 815e84901d..0e411aa92a 100644 --- a/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c +++ b/keyboards/cannonkeys/lib/satisfaction75/satisfaction_oled.c @@ -284,4 +284,4 @@ void oled_request_repaint(void){ void oled_request_wakeup(void){ } -#endif \ No newline at end of file +#endif diff --git a/keyboards/cannonkeys/petrichor/config.h b/keyboards/cannonkeys/petrichor/config.h index ea5c26b6c7..4eec357f20 100644 --- a/keyboards/cannonkeys/petrichor/config.h +++ b/keyboards/cannonkeys/petrichor/config.h @@ -6,4 +6,4 @@ #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 +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 diff --git a/keyboards/cannonkeys/petrichor/keymaps/default/keymap.c b/keyboards/cannonkeys/petrichor/keymaps/default/keymap.c index 05e0ad2a93..be23b950b2 100644 --- a/keyboards/cannonkeys/petrichor/keymaps/default/keymap.c +++ b/keyboards/cannonkeys/petrichor/keymaps/default/keymap.c @@ -21,4 +21,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______,_______, _______, _______, _______, _______, _______, _______ ), -}; \ No newline at end of file +}; diff --git a/keyboards/cannonkeys/reverie/config.h b/keyboards/cannonkeys/reverie/config.h index ea5c26b6c7..4eec357f20 100644 --- a/keyboards/cannonkeys/reverie/config.h +++ b/keyboards/cannonkeys/reverie/config.h @@ -6,4 +6,4 @@ #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 +#define PICO_XOSC_STARTUP_DELAY_MULTIPLIER 64 diff --git a/keyboards/cannonkeys/satisfaction75/prototype/keyboard.json b/keyboards/cannonkeys/satisfaction75/prototype/keyboard.json index 4f67754d8f..6e3f0f9413 100644 --- a/keyboards/cannonkeys/satisfaction75/prototype/keyboard.json +++ b/keyboards/cannonkeys/satisfaction75/prototype/keyboard.json @@ -190,4 +190,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/cannonkeys/satisfaction75/readme.md b/keyboards/cannonkeys/satisfaction75/readme.md index 9e2891b93f..f483f8b6c0 100644 --- a/keyboards/cannonkeys/satisfaction75/readme.md +++ b/keyboards/cannonkeys/satisfaction75/readme.md @@ -37,4 +37,4 @@ 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cannonkeys/satisfaction75/rev1/keyboard.json b/keyboards/cannonkeys/satisfaction75/rev1/keyboard.json index d4a6b4423c..9605a63fea 100644 --- a/keyboards/cannonkeys/satisfaction75/rev1/keyboard.json +++ b/keyboards/cannonkeys/satisfaction75/rev1/keyboard.json @@ -531,4 +531,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/cannonkeys/satisfaction75/rev2/keyboard.json b/keyboards/cannonkeys/satisfaction75/rev2/keyboard.json index e8ddb90c89..79192b936e 100644 --- a/keyboards/cannonkeys/satisfaction75/rev2/keyboard.json +++ b/keyboards/cannonkeys/satisfaction75/rev2/keyboard.json @@ -190,4 +190,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/cannonkeys/satisfaction75/satisfaction75.h b/keyboards/cannonkeys/satisfaction75/satisfaction75.h index d4fc7aca87..8bee64dc2c 100644 --- a/keyboards/cannonkeys/satisfaction75/satisfaction75.h +++ b/keyboards/cannonkeys/satisfaction75/satisfaction75.h @@ -3,4 +3,4 @@ #pragma once -#include "satisfaction_keycodes.h" \ No newline at end of file +#include "satisfaction_keycodes.h" diff --git a/keyboards/cannonkeys/satisfaction75_hs/keyboard.json b/keyboards/cannonkeys/satisfaction75_hs/keyboard.json index 55a03da463..141209da80 100644 --- a/keyboards/cannonkeys/satisfaction75_hs/keyboard.json +++ b/keyboards/cannonkeys/satisfaction75_hs/keyboard.json @@ -204,4 +204,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/cannonkeys/satisfaction75_hs/satisfaction75_hs.h b/keyboards/cannonkeys/satisfaction75_hs/satisfaction75_hs.h index d4fc7aca87..8bee64dc2c 100644 --- a/keyboards/cannonkeys/satisfaction75_hs/satisfaction75_hs.h +++ b/keyboards/cannonkeys/satisfaction75_hs/satisfaction75_hs.h @@ -3,4 +3,4 @@ #pragma once -#include "satisfaction_keycodes.h" \ No newline at end of file +#include "satisfaction_keycodes.h" diff --git a/keyboards/capsunlocked/cu24/keymaps/default/readme.md b/keyboards/capsunlocked/cu24/keymaps/default/readme.md index 5528d6c0d8..9fa069bc06 100644 --- a/keyboards/capsunlocked/cu24/keymaps/default/readme.md +++ b/keyboards/capsunlocked/cu24/keymaps/default/readme.md @@ -7,4 +7,4 @@ https://imgur.com/a/vpHFj This is the default layout that comes flashed on every CU24. It is like a normal numpad, with all the led customization on the Fn layer. -See [All Layouts](https://imgur.com/trwO7dN) for all supported configurations! \ No newline at end of file +See [All Layouts](https://imgur.com/trwO7dN) for all supported configurations! diff --git a/keyboards/cbkbd/acai/readme.md b/keyboards/cbkbd/acai/readme.md index f3c2b1728d..45688511f9 100644 --- a/keyboards/cbkbd/acai/readme.md +++ b/keyboards/cbkbd/acai/readme.md @@ -23,4 +23,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/cbkbd/coffeevan/matrix_diagram.md b/keyboards/cbkbd/coffeevan/matrix_diagram.md index 91cd05e6ba..8fc7ecc1bd 100644 --- a/keyboards/cbkbd/coffeevan/matrix_diagram.md +++ b/keyboards/cbkbd/coffeevan/matrix_diagram.md @@ -15,4 +15,4 @@ JetVan style 6.25u ┌────┬───┬────┬────────────────────────┬───┬───┬───┐ │30 │31 │32 │36 │39 │3A │3B │ └────┴───┴────┴────────────────────────┴───┴───┴───┘ -``` \ No newline at end of file +``` diff --git a/keyboards/cbkbd/coffeevan/readme.md b/keyboards/cbkbd/coffeevan/readme.md index 129a3bd430..f5e909626b 100644 --- a/keyboards/cbkbd/coffeevan/readme.md +++ b/keyboards/cbkbd/coffeevan/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/chalice/keymaps/default/keymap.c b/keyboards/chalice/keymaps/default/keymap.c index f403526ae7..4db87eb5ab 100644 --- a/keyboards/chalice/keymaps/default/keymap.c +++ b/keyboards/chalice/keymaps/default/keymap.c @@ -52,4 +52,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/checkerboards/phoenix45_ortho/readme.md b/keyboards/checkerboards/phoenix45_ortho/readme.md index 46e158c0aa..7980a077fb 100644 --- a/keyboards/checkerboards/phoenix45_ortho/readme.md +++ b/keyboards/checkerboards/phoenix45_ortho/readme.md @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): To put the PCB into bootloader mode, short the two pin holes together that are just beneath diode #23. -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 +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/chickenman/kami65/readme.md b/keyboards/chickenman/kami65/readme.md index 009808717f..764c688e26 100644 --- a/keyboards/chickenman/kami65/readme.md +++ b/keyboards/chickenman/kami65/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down 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 \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/chouchou/readme.md b/keyboards/chouchou/readme.md index dcd0c90314..ef5c93f9ed 100644 --- a/keyboards/chouchou/readme.md +++ b/keyboards/chouchou/readme.md @@ -23,4 +23,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/churrosoft/deck8/info.json b/keyboards/churrosoft/deck8/info.json index d656997b78..18883a750c 100644 --- a/keyboards/churrosoft/deck8/info.json +++ b/keyboards/churrosoft/deck8/info.json @@ -39,4 +39,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/churrosoft/deck8/keymaps/default/keymap.c b/keyboards/churrosoft/deck8/keymaps/default/keymap.c index cc1bcea109..c04b84ccf0 100644 --- a/keyboards/churrosoft/deck8/keymaps/default/keymap.c +++ b/keyboards/churrosoft/deck8/keymaps/default/keymap.c @@ -22,4 +22,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { MEH(KC_A), MEH(KC_B), MEH(KC_C), MEH(KC_D), MEH(KC_E), MEH(KC_F), MEH(KC_G), MEH(KC_H) ) -}; \ No newline at end of file +}; diff --git a/keyboards/churrosoft/deck8/noleds/keyboard.json b/keyboards/churrosoft/deck8/noleds/keyboard.json index fa1e2a420d..cfcda7221f 100644 --- a/keyboards/churrosoft/deck8/noleds/keyboard.json +++ b/keyboards/churrosoft/deck8/noleds/keyboard.json @@ -2,4 +2,4 @@ "usb": { "pid": "0xC100" } -} \ No newline at end of file +} diff --git a/keyboards/churrosoft/deck8/noleds/readme.md b/keyboards/churrosoft/deck8/noleds/readme.md index c4e8d70c81..28e23eb254 100644 --- a/keyboards/churrosoft/deck8/noleds/readme.md +++ b/keyboards/churrosoft/deck8/noleds/readme.md @@ -24,4 +24,4 @@ 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**: Short the `JP1` jumper in the back side of the PCB. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/churrosoft/deck8/rgb/keyboard.json b/keyboards/churrosoft/deck8/rgb/keyboard.json index b5b3b21b5a..79b053028e 100644 --- a/keyboards/churrosoft/deck8/rgb/keyboard.json +++ b/keyboards/churrosoft/deck8/rgb/keyboard.json @@ -76,4 +76,4 @@ ], "sleep": true } -} \ No newline at end of file +} diff --git a/keyboards/churrosoft/deck8/rgb/readme.md b/keyboards/churrosoft/deck8/rgb/readme.md index 87fe400c24..7b0e60edb9 100644 --- a/keyboards/churrosoft/deck8/rgb/readme.md +++ b/keyboards/churrosoft/deck8/rgb/readme.md @@ -24,4 +24,4 @@ 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**: Short the `JP1` jumper in the back side of the PCB. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/citrus/erdnuss65/erdnuss65.c b/keyboards/citrus/erdnuss65/erdnuss65.c index d10f476c66..64dc05d4ec 100644 --- a/keyboards/citrus/erdnuss65/erdnuss65.c +++ b/keyboards/citrus/erdnuss65/erdnuss65.c @@ -25,4 +25,4 @@ bool led_update_kb(led_t led_state) { } } return true; -} \ No newline at end of file +} diff --git a/keyboards/citrus/erdnuss65/readme.md b/keyboards/citrus/erdnuss65/readme.md index 0bb952c111..9bb3138a46 100644 --- a/keyboards/citrus/erdnuss65/readme.md +++ b/keyboards/citrus/erdnuss65/readme.md @@ -19,4 +19,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/citrus/readme.md b/keyboards/citrus/readme.md index bde8a9620f..301695a74d 100644 --- a/keyboards/citrus/readme.md +++ b/keyboards/citrus/readme.md @@ -1,2 +1,2 @@ # Citrus Lab -QMK folders for PCB commissions. \ No newline at end of file +QMK folders for PCB commissions. diff --git a/keyboards/clickety_split/leeloo/readme.md b/keyboards/clickety_split/leeloo/readme.md index 65f1069cdb..3cbf42f63d 100644 --- a/keyboards/clickety_split/leeloo/readme.md +++ b/keyboards/clickety_split/leeloo/readme.md @@ -30,4 +30,4 @@ Make example for this keyboard (after setting up your build environment): make clickety_split/leeloo/rev3: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). \ No newline at end of file +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/controllerworks/mini36/keymaps/default/config.h b/keyboards/controllerworks/mini36/keymaps/default/config.h index aeca5716c0..5145290aab 100644 --- a/keyboards/controllerworks/mini36/keymaps/default/config.h +++ b/keyboards/controllerworks/mini36/keymaps/default/config.h @@ -76,4 +76,4 @@ # define ENABLE_RGB_MATRIX_MULTISPLASH # define ENABLE_RGB_MATRIX_SOLID_SPLASH # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#endif \ No newline at end of file +#endif diff --git a/keyboards/controllerworks/mini36/keymaps/default/keymap.c b/keyboards/controllerworks/mini36/keymaps/default/keymap.c index 45f46b47bd..8141d304f2 100644 --- a/keyboards/controllerworks/mini36/keymaps/default/keymap.c +++ b/keyboards/controllerworks/mini36/keymaps/default/keymap.c @@ -65,4 +65,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LGUI, _______, KC_SPC, KC_ENT, _______, KC_RALT //`--------------------------' `--------------------------' ) -}; \ No newline at end of file +}; diff --git a/keyboards/controllerworks/mini36/mcuconf.h b/keyboards/controllerworks/mini36/mcuconf.h index c92e5035a8..691373261b 100644 --- a/keyboards/controllerworks/mini36/mcuconf.h +++ b/keyboards/controllerworks/mini36/mcuconf.h @@ -20,4 +20,4 @@ #include_next #undef RP_I2C_USE_I2C0 -#define RP_I2C_USE_I2C0 TRUE \ No newline at end of file +#define RP_I2C_USE_I2C0 TRUE diff --git a/keyboards/controllerworks/mini36/mini36.c b/keyboards/controllerworks/mini36/mini36.c index efe97009d9..42e943674b 100644 --- a/keyboards/controllerworks/mini36/mini36.c +++ b/keyboards/controllerworks/mini36/mini36.c @@ -79,4 +79,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/controllerworks/mini36/readme.md b/keyboards/controllerworks/mini36/readme.md index c23cbc92c6..7dd862d1a5 100644 --- a/keyboards/controllerworks/mini36/readme.md +++ b/keyboards/controllerworks/mini36/readme.md @@ -40,4 +40,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the upper left key on the left hand keyboard half or the upper right key on the right hand keyboard half while plugging in USB * **Physical reset button**: Press the RST button twice, rapidly -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/controllerworks/mini42/keymaps/default/config.h b/keyboards/controllerworks/mini42/keymaps/default/config.h index aeca5716c0..5145290aab 100644 --- a/keyboards/controllerworks/mini42/keymaps/default/config.h +++ b/keyboards/controllerworks/mini42/keymaps/default/config.h @@ -76,4 +76,4 @@ # define ENABLE_RGB_MATRIX_MULTISPLASH # define ENABLE_RGB_MATRIX_SOLID_SPLASH # define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -#endif \ No newline at end of file +#endif diff --git a/keyboards/controllerworks/mini42/mcuconf.h b/keyboards/controllerworks/mini42/mcuconf.h index c92e5035a8..691373261b 100644 --- a/keyboards/controllerworks/mini42/mcuconf.h +++ b/keyboards/controllerworks/mini42/mcuconf.h @@ -20,4 +20,4 @@ #include_next #undef RP_I2C_USE_I2C0 -#define RP_I2C_USE_I2C0 TRUE \ No newline at end of file +#define RP_I2C_USE_I2C0 TRUE diff --git a/keyboards/controllerworks/mini42/readme.md b/keyboards/controllerworks/mini42/readme.md index 67b04b09fe..d8be3952c7 100644 --- a/keyboards/controllerworks/mini42/readme.md +++ b/keyboards/controllerworks/mini42/readme.md @@ -74,4 +74,4 @@ Enter the bootloader in 3 ways: \*DATA2 on production units, not connected on prototype units -\** Right Column numbers run right (pinky position) to left (thumb position) \ No newline at end of file +\** Right Column numbers run right (pinky position) to left (thumb position) diff --git a/keyboards/converter/hp_46010a/keymaps/default/keymap.c b/keyboards/converter/hp_46010a/keymaps/default/keymap.c index 8aadd2480a..422ef88b52 100644 --- a/keyboards/converter/hp_46010a/keymaps/default/keymap.c +++ b/keyboards/converter/hp_46010a/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_DEL, 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_APP, KC_UP, KC_PGDN, KC_P1, KC_P2, KC_P3, KC_TAB, KC_LGUI, KC_LALT, KC_SPACE , KC_RALT, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ) -} ; \ No newline at end of file +} ; diff --git a/keyboards/converter/hp_46010a/matrix.c b/keyboards/converter/hp_46010a/matrix.c index d9d9eec48f..f9876b5a36 100644 --- a/keyboards/converter/hp_46010a/matrix.c +++ b/keyboards/converter/hp_46010a/matrix.c @@ -229,4 +229,4 @@ uint8_t matrix_cols(void) { // the online ducmentation starting from : // https://docs.qmk.fm/#/config_options // https://docs.qmk.fm/#/understanding_qmk -// and probably a few i forgot.... \ No newline at end of file +// and probably a few i forgot.... diff --git a/keyboards/converter/m0110_usb/keymaps/default/keymap.c b/keyboards/converter/m0110_usb/keymaps/default/keymap.c index b65774d421..cee2375754 100644 --- a/keyboards/converter/m0110_usb/keymaps/default/keymap.c +++ b/keyboards/converter/m0110_usb/keymaps/default/keymap.c @@ -89,4 +89,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_END, KC_NO, KC_PGDN, KC_NO, KC_NO, KC_NO, KC_NO, KC_END, KC_PGDN, KC_DOWN, KC_PGUP, KC_P1, KC_P2, KC_P3, KC_PENT, KC_LALT, KC_LGUI, KC_SPC, KC_TRNS, KC_TRNS, KC_HOME, KC_END, KC_PGDN, KC_P0, KC_PDOT), -}; \ No newline at end of file +}; diff --git a/keyboards/converter/m0110_usb/matrix.c b/keyboards/converter/m0110_usb/matrix.c index 6c39d4b6b0..d1668e614b 100644 --- a/keyboards/converter/m0110_usb/matrix.c +++ b/keyboards/converter/m0110_usb/matrix.c @@ -118,4 +118,4 @@ static void register_key(uint8_t key) } else { matrix[ROW(key)] |= (1< \ No newline at end of file +#include_next diff --git a/keyboards/ebastler/e80_1800/config.h b/keyboards/ebastler/e80_1800/config.h index baa7073176..cd739fe07f 100644 --- a/keyboards/ebastler/e80_1800/config.h +++ b/keyboards/ebastler/e80_1800/config.h @@ -31,4 +31,4 @@ #define I2C1_TIMINGR_SCLH 3U #define I2C1_TIMINGR_SCLL 9U -#endif \ No newline at end of file +#endif diff --git a/keyboards/ebastler/e80_1800/halconf.h b/keyboards/ebastler/e80_1800/halconf.h index 974b0086ad..34af46ea7a 100644 --- a/keyboards/ebastler/e80_1800/halconf.h +++ b/keyboards/ebastler/e80_1800/halconf.h @@ -18,4 +18,4 @@ #define HAL_USE_PWM TRUE #define HAL_USE_I2C TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/ebastler/e80_1800/keymaps/ansi_6u/keymap.c b/keyboards/ebastler/e80_1800/keymaps/ansi_6u/keymap.c index c10a556755..34e08aa022 100644 --- a/keyboards/ebastler/e80_1800/keymaps/ansi_6u/keymap.c +++ b/keyboards/ebastler/e80_1800/keymaps/ansi_6u/keymap.c @@ -43,4 +43,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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), -}; \ No newline at end of file +}; diff --git a/keyboards/ebastler/e80_1800/keymaps/ansi_7u/keymap.c b/keyboards/ebastler/e80_1800/keymaps/ansi_7u/keymap.c index fca80299af..8c3731dfbd 100644 --- a/keyboards/ebastler/e80_1800/keymaps/ansi_7u/keymap.c +++ b/keyboards/ebastler/e80_1800/keymaps/ansi_7u/keymap.c @@ -43,4 +43,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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), -}; \ No newline at end of file +}; diff --git a/keyboards/ebastler/e80_1800/keymaps/default/keymap.c b/keyboards/ebastler/e80_1800/keymaps/default/keymap.c index acaecbb414..a275fe2d8c 100644 --- a/keyboards/ebastler/e80_1800/keymaps/default/keymap.c +++ b/keyboards/ebastler/e80_1800/keymaps/default/keymap.c @@ -43,4 +43,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/ebastler/e80_1800/keymaps/iso_7u/keymap.c b/keyboards/ebastler/e80_1800/keymaps/iso_7u/keymap.c index 4929c9d6ce..92da13955c 100644 --- a/keyboards/ebastler/e80_1800/keymaps/iso_7u/keymap.c +++ b/keyboards/ebastler/e80_1800/keymaps/iso_7u/keymap.c @@ -43,4 +43,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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), -}; \ No newline at end of file +}; diff --git a/keyboards/ebastler/e80_1800/mcuconf.h b/keyboards/ebastler/e80_1800/mcuconf.h index cff1dd5788..5fe7e5951b 100644 --- a/keyboards/ebastler/e80_1800/mcuconf.h +++ b/keyboards/ebastler/e80_1800/mcuconf.h @@ -29,4 +29,4 @@ #define STM32_I2C_USE_DMA TRUE #define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID(1, 5) -#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) \ No newline at end of file +#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID(1, 4) diff --git a/keyboards/ebastler/e80_1800/readme.md b/keyboards/ebastler/e80_1800/readme.md index 87fd9756b6..89c23ed698 100644 --- a/keyboards/ebastler/e80_1800/readme.md +++ b/keyboards/ebastler/e80_1800/readme.md @@ -22,4 +22,4 @@ Flash example for this keyboard (after setting up your build environment): make ebastler/e80_1800: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). \ No newline at end of file +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/ebastler/readme.md b/keyboards/ebastler/readme.md index 4b6efd2f71..e99d783f18 100644 --- a/keyboards/ebastler/readme.md +++ b/keyboards/ebastler/readme.md @@ -5,4 +5,4 @@ I'm a hobbyist designing keyboards for fun. [My homepage](https://mpwr.xyz). All * [isometria75](isometria_75) - 75% ISO-only board with rotary encoder, RGB underglow and single color backlight. [Github repo](https://github.com/ebastler/isometria-75). -* [E80-1800](E80_1800) - drop-in replacement PCB for the Cherry G80-1800. Requires minor case modifications, but adds backlight, native USB-C and (obviously) QMK. [Github repo](https://github.com/ebastler/E80-1800). \ No newline at end of file +* [E80-1800](E80_1800) - drop-in replacement PCB for the Cherry G80-1800. Requires minor case modifications, but adds backlight, native USB-C and (obviously) QMK. [Github repo](https://github.com/ebastler/E80-1800). diff --git a/keyboards/eco/readme.md b/keyboards/eco/readme.md index fac80e0a1b..bd79fa2880 100644 --- a/keyboards/eco/readme.md +++ b/keyboards/eco/readme.md @@ -13,4 +13,4 @@ Make example for this keyboard (after setting up your build environment): make eco/rev2:that_canadian -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/edda/config.h b/keyboards/edda/config.h index cfdf4e1a54..6a724b0682 100644 --- a/keyboards/edda/config.h +++ b/keyboards/edda/config.h @@ -16,4 +16,4 @@ along with this program. If not, see . // Indicators #define INDICATOR_PIN_0 B2 #define INDICATOR_PIN_1 B1 -#define INDICATOR_PIN_2 B0 \ No newline at end of file +#define INDICATOR_PIN_2 B0 diff --git a/keyboards/edi/hardlight/mk1/keymaps/.gitignore b/keyboards/edi/hardlight/mk1/keymaps/.gitignore index 08a0f321a2..bb7b3c960d 100644 --- a/keyboards/edi/hardlight/mk1/keymaps/.gitignore +++ b/keyboards/edi/hardlight/mk1/keymaps/.gitignore @@ -1 +1 @@ -fate \ No newline at end of file +fate diff --git a/keyboards/edi/hardlight/mk1/keymaps/default/keymap.c b/keyboards/edi/hardlight/mk1/keymaps/default/keymap.c index 5d901a7982..0b5cb1b091 100644 --- a/keyboards/edi/hardlight/mk1/keymaps/default/keymap.c +++ b/keyboards/edi/hardlight/mk1/keymaps/default/keymap.c @@ -112,4 +112,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _SET); -} \ No newline at end of file +} diff --git a/keyboards/edi/hardlight/mk2/keymaps/.gitignore b/keyboards/edi/hardlight/mk2/keymaps/.gitignore index 08a0f321a2..bb7b3c960d 100644 --- a/keyboards/edi/hardlight/mk2/keymaps/.gitignore +++ b/keyboards/edi/hardlight/mk2/keymaps/.gitignore @@ -1 +1 @@ -fate \ No newline at end of file +fate diff --git a/keyboards/edi/hardlight/mk2/keymaps/default/keymap.c b/keyboards/edi/hardlight/mk2/keymaps/default/keymap.c index 0928d4d769..60251e1474 100644 --- a/keyboards/edi/hardlight/mk2/keymaps/default/keymap.c +++ b/keyboards/edi/hardlight/mk2/keymaps/default/keymap.c @@ -112,4 +112,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _SET); -} \ No newline at end of file +} diff --git a/keyboards/edi/hardlight/mk2/mcuconf.h b/keyboards/edi/hardlight/mk2/mcuconf.h index 95e698d9ec..c320ee6e00 100644 --- a/keyboards/edi/hardlight/mk2/mcuconf.h +++ b/keyboards/edi/hardlight/mk2/mcuconf.h @@ -29,4 +29,4 @@ along with this program. If not, see . //Enable SPI #undef STM32_SPI_USE_SPI2 -#define STM32_SPI_USE_SPI2 TRUE \ No newline at end of file +#define STM32_SPI_USE_SPI2 TRUE diff --git a/keyboards/eek/silk_up/readme.md b/keyboards/eek/silk_up/readme.md index 1b24b95453..fe8d0d4eb1 100644 --- a/keyboards/eek/silk_up/readme.md +++ b/keyboards/eek/silk_up/readme.md @@ -11,4 +11,4 @@ Make example for this keyboard (after setting up your build environment): Flashing example for this keyboard: make eek/silk_up:default:flash - \ No newline at end of file + diff --git a/keyboards/enmeseoz/enmepad3x4/readme.md b/keyboards/enmeseoz/enmepad3x4/readme.md index dd7391daac..8326649e6d 100644 --- a/keyboards/enmeseoz/enmepad3x4/readme.md +++ b/keyboards/enmeseoz/enmepad3x4/readme.md @@ -22,4 +22,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/enviousdesign/65m/keyboard.json b/keyboards/enviousdesign/65m/keyboard.json index e0661dc9fa..fa4b4eb357 100644 --- a/keyboards/enviousdesign/65m/keyboard.json +++ b/keyboards/enviousdesign/65m/keyboard.json @@ -388,4 +388,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/enviousdesign/commissions/mini1800/keyboard.json b/keyboards/enviousdesign/commissions/mini1800/keyboard.json index 5eb78225a0..ff37c73ccd 100644 --- a/keyboards/enviousdesign/commissions/mini1800/keyboard.json +++ b/keyboards/enviousdesign/commissions/mini1800/keyboard.json @@ -105,4 +105,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/enviousdesign/delirium/rev0/keyboard.json b/keyboards/enviousdesign/delirium/rev0/keyboard.json index 75ff24a9ef..23de3bf9c6 100644 --- a/keyboards/enviousdesign/delirium/rev0/keyboard.json +++ b/keyboards/enviousdesign/delirium/rev0/keyboard.json @@ -116,4 +116,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/enviousdesign/delirium/rev1/keyboard.json b/keyboards/enviousdesign/delirium/rev1/keyboard.json index 83001140bb..c6925759f8 100644 --- a/keyboards/enviousdesign/delirium/rev1/keyboard.json +++ b/keyboards/enviousdesign/delirium/rev1/keyboard.json @@ -300,4 +300,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/enviousdesign/delirium/rgb/rgb.c b/keyboards/enviousdesign/delirium/rgb/rgb.c index e6a3354b29..b57f3c1175 100644 --- a/keyboards/enviousdesign/delirium/rgb/rgb.c +++ b/keyboards/enviousdesign/delirium/rgb/rgb.c @@ -32,4 +32,4 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { } return true; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/enviousdesign/mcro/rev1/keyboard.json b/keyboards/enviousdesign/mcro/rev1/keyboard.json index 6e846f9621..c6ab8809ce 100644 --- a/keyboards/enviousdesign/mcro/rev1/keyboard.json +++ b/keyboards/enviousdesign/mcro/rev1/keyboard.json @@ -39,4 +39,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/divine/config.h b/keyboards/era/divine/config.h index e1083fe5e2..790bb5b1dd 100644 --- a/keyboards/era/divine/config.h +++ b/keyboards/era/divine/config.h @@ -17,4 +17,4 @@ #pragma once #define BACKLIGHT_PWM_DRIVER PWMD0 -#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A \ No newline at end of file +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A diff --git a/keyboards/era/divine/halconf.h b/keyboards/era/divine/halconf.h index 5a527da781..441e62f83a 100644 --- a/keyboards/era/divine/halconf.h +++ b/keyboards/era/divine/halconf.h @@ -18,4 +18,4 @@ #define HAL_USE_PWM TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/era/divine/keyboard.json b/keyboards/era/divine/keyboard.json index 83da9f0854..4a2e718350 100644 --- a/keyboards/era/divine/keyboard.json +++ b/keyboards/era/divine/keyboard.json @@ -111,4 +111,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/divine/keymaps/default/keymap.c b/keyboards/era/divine/keymaps/default/keymap.c index a37cfdc059..f14a3f9e64 100644 --- a/keyboards/era/divine/keymaps/default/keymap.c +++ b/keyboards/era/divine/keymaps/default/keymap.c @@ -20,4 +20,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/divine/mcuconf.h b/keyboards/era/divine/mcuconf.h index 7698b5d139..ce4246f2eb 100644 --- a/keyboards/era/divine/mcuconf.h +++ b/keyboards/era/divine/mcuconf.h @@ -19,4 +19,4 @@ #include_next #undef RP_PWM_USE_PWM0 -#define RP_PWM_USE_PWM0 TRUE \ No newline at end of file +#define RP_PWM_USE_PWM0 TRUE diff --git a/keyboards/era/divine/readme.md b/keyboards/era/divine/readme.md index 3049e3b840..1ca6c8c5e6 100644 --- a/keyboards/era/divine/readme.md +++ b/keyboards/era/divine/readme.md @@ -22,4 +22,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/era65/config.h b/keyboards/era/era65/config.h index bd42a703f8..6a1a27f077 100644 --- a/keyboards/era/era65/config.h +++ b/keyboards/era/era65/config.h @@ -25,4 +25,4 @@ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U // Timeout window in ms in which the double tap can occur. #define BACKLIGHT_PWM_DRIVER PWMD0 -#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A \ No newline at end of file +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_A diff --git a/keyboards/era/era65/halconf.h b/keyboards/era/era65/halconf.h index 1960fffb5d..20d804b855 100644 --- a/keyboards/era/era65/halconf.h +++ b/keyboards/era/era65/halconf.h @@ -5,4 +5,4 @@ #define HAL_USE_PWM TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/era/era65/keyboard.json b/keyboards/era/era65/keyboard.json index 2939418d72..152d7e3186 100644 --- a/keyboards/era/era65/keyboard.json +++ b/keyboards/era/era65/keyboard.json @@ -111,4 +111,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/era65/mcuconf.h b/keyboards/era/era65/mcuconf.h index c9de0026f1..bca2b0e53d 100644 --- a/keyboards/era/era65/mcuconf.h +++ b/keyboards/era/era65/mcuconf.h @@ -5,4 +5,4 @@ /* Used for backlight display */ #undef RP_PWM_USE_PWM0 -#define RP_PWM_USE_PWM0 TRUE \ No newline at end of file +#define RP_PWM_USE_PWM0 TRUE diff --git a/keyboards/era/era65/readme.md b/keyboards/era/era65/readme.md index cd25aafb1f..671a0e86b9 100644 --- a/keyboards/era/era65/readme.md +++ b/keyboards/era/era65/readme.md @@ -22,4 +22,4 @@ 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 the reset hole of the PCB twice within 1 second. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/linx3/fave65s/readme.md b/keyboards/era/linx3/fave65s/readme.md index e31b3acef9..90583e765e 100644 --- a/keyboards/era/linx3/fave65s/readme.md +++ b/keyboards/era/linx3/fave65s/readme.md @@ -23,4 +23,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/linx3/n86/config.h b/keyboards/era/linx3/n86/config.h index 8b294dd91b..ee5043c48c 100644 --- a/keyboards/era/linx3/n86/config.h +++ b/keyboards/era/linx3/n86/config.h @@ -5,4 +5,4 @@ /* Reset */ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 2000U \ No newline at end of file +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 2000U diff --git a/keyboards/era/linx3/n86/keymaps/default/keymap.c b/keyboards/era/linx3/n86/keymaps/default/keymap.c index 49ae04a5a7..29b29b95c3 100644 --- a/keyboards/era/linx3/n86/keymaps/default/keymap.c +++ b/keyboards/era/linx3/n86/keymaps/default/keymap.c @@ -21,4 +21,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/linx3/n86/readme.md b/keyboards/era/linx3/n86/readme.md index ba68109068..81692a0d90 100644 --- a/keyboards/era/linx3/n86/readme.md +++ b/keyboards/era/linx3/n86/readme.md @@ -20,4 +20,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/linx3/n87/config.h b/keyboards/era/linx3/n87/config.h index 8b294dd91b..ee5043c48c 100644 --- a/keyboards/era/linx3/n87/config.h +++ b/keyboards/era/linx3/n87/config.h @@ -5,4 +5,4 @@ /* Reset */ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 2000U \ No newline at end of file +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 2000U diff --git a/keyboards/era/linx3/n87/keyboard.json b/keyboards/era/linx3/n87/keyboard.json index 5a03a5cbc5..3123b5b2da 100644 --- a/keyboards/era/linx3/n87/keyboard.json +++ b/keyboards/era/linx3/n87/keyboard.json @@ -451,4 +451,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/linx3/n87/keymaps/default/keymap.c b/keyboards/era/linx3/n87/keymaps/default/keymap.c index a16e6a2110..4a9982779f 100644 --- a/keyboards/era/linx3/n87/keymaps/default/keymap.c +++ b/keyboards/era/linx3/n87/keymaps/default/keymap.c @@ -21,4 +21,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/linx3/n87/readme.md b/keyboards/era/linx3/n87/readme.md index ff5b29d3bd..c7d2152230 100644 --- a/keyboards/era/linx3/n87/readme.md +++ b/keyboards/era/linx3/n87/readme.md @@ -20,4 +20,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/linx3/n8x/halconf.h b/keyboards/era/linx3/n8x/halconf.h index 3dbc886a83..05a72ec00c 100644 --- a/keyboards/era/linx3/n8x/halconf.h +++ b/keyboards/era/linx3/n8x/halconf.h @@ -5,4 +5,4 @@ #define HAL_USE_PWM TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/era/linx3/n8x/keyboard.json b/keyboards/era/linx3/n8x/keyboard.json index c018874bd1..0a896b250f 100644 --- a/keyboards/era/linx3/n8x/keyboard.json +++ b/keyboards/era/linx3/n8x/keyboard.json @@ -1226,4 +1226,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/linx3/n8x/keymaps/default/keymap.c b/keyboards/era/linx3/n8x/keymaps/default/keymap.c index 3dd2571ab8..e2b0630731 100644 --- a/keyboards/era/linx3/n8x/keymaps/default/keymap.c +++ b/keyboards/era/linx3/n8x/keymaps/default/keymap.c @@ -21,4 +21,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/linx3/n8x/mcuconf.h b/keyboards/era/linx3/n8x/mcuconf.h index 9a4b5b1c61..4cec0fede3 100644 --- a/keyboards/era/linx3/n8x/mcuconf.h +++ b/keyboards/era/linx3/n8x/mcuconf.h @@ -6,4 +6,4 @@ #include_next #undef RP_PWM_USE_PWM1 -#define RP_PWM_USE_PWM1 TRUE \ No newline at end of file +#define RP_PWM_USE_PWM1 TRUE diff --git a/keyboards/era/linx3/n8x/readme.md b/keyboards/era/linx3/n8x/readme.md index b414e14975..894babb51b 100644 --- a/keyboards/era/linx3/n8x/readme.md +++ b/keyboards/era/linx3/n8x/readme.md @@ -20,4 +20,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/sirind/brick65/keyboard.json b/keyboards/era/sirind/brick65/keyboard.json index 3d35bc0d98..513a807972 100644 --- a/keyboards/era/sirind/brick65/keyboard.json +++ b/keyboards/era/sirind/brick65/keyboard.json @@ -198,4 +198,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/sirind/brick65s/brick65s.c b/keyboards/era/sirind/brick65s/brick65s.c index ae76a3968c..825a00b4e6 100644 --- a/keyboards/era/sirind/brick65s/brick65s.c +++ b/keyboards/era/sirind/brick65s/brick65s.c @@ -21,4 +21,4 @@ bool rgb_matrix_indicators_kb(void) { } return true; -} \ No newline at end of file +} diff --git a/keyboards/era/sirind/brick65s/keyboard.json b/keyboards/era/sirind/brick65s/keyboard.json index 489b0da323..03a0d2857d 100644 --- a/keyboards/era/sirind/brick65s/keyboard.json +++ b/keyboards/era/sirind/brick65s/keyboard.json @@ -247,4 +247,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/sirind/brick65s/readme.md b/keyboards/era/sirind/brick65s/readme.md index e173ba4e73..3ed95cf9a7 100644 --- a/keyboards/era/sirind/brick65s/readme.md +++ b/keyboards/era/sirind/brick65s/readme.md @@ -20,4 +20,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/sirind/chickpad/readme.md b/keyboards/era/sirind/chickpad/readme.md index fd6ad72d4f..de7bb146e9 100644 --- a/keyboards/era/sirind/chickpad/readme.md +++ b/keyboards/era/sirind/chickpad/readme.md @@ -22,4 +22,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/sirind/klein_hs/config.h b/keyboards/era/sirind/klein_hs/config.h index bbd4387363..54731b7aa9 100644 --- a/keyboards/era/sirind/klein_hs/config.h +++ b/keyboards/era/sirind/klein_hs/config.h @@ -18,4 +18,4 @@ /* BACKLIGHT PWM */ #define BACKLIGHT_PWM_DRIVER PWMD7 -#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_B \ No newline at end of file +#define BACKLIGHT_PWM_CHANNEL RP2040_PWM_CHANNEL_B diff --git a/keyboards/era/sirind/klein_hs/halconf.h b/keyboards/era/sirind/klein_hs/halconf.h index f57e86df01..ec9ad4659c 100644 --- a/keyboards/era/sirind/klein_hs/halconf.h +++ b/keyboards/era/sirind/klein_hs/halconf.h @@ -18,4 +18,4 @@ #define HAL_USE_PWM TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/era/sirind/klein_hs/keyboard.json b/keyboards/era/sirind/klein_hs/keyboard.json index 01395c3af1..b2451d5a1d 100644 --- a/keyboards/era/sirind/klein_hs/keyboard.json +++ b/keyboards/era/sirind/klein_hs/keyboard.json @@ -463,4 +463,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/sirind/klein_hs/keymaps/default/keymap.c b/keyboards/era/sirind/klein_hs/keymaps/default/keymap.c index 88878bbcd9..e01fecf381 100644 --- a/keyboards/era/sirind/klein_hs/keymaps/default/keymap.c +++ b/keyboards/era/sirind/klein_hs/keymaps/default/keymap.c @@ -20,4 +20,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/sirind/klein_hs/mcuconf.h b/keyboards/era/sirind/klein_hs/mcuconf.h index b82cc49d7d..e2af8e5c26 100644 --- a/keyboards/era/sirind/klein_hs/mcuconf.h +++ b/keyboards/era/sirind/klein_hs/mcuconf.h @@ -19,4 +19,4 @@ #include_next #undef RP_PWM_USE_PWM7 -#define RP_PWM_USE_PWM7 TRUE \ No newline at end of file +#define RP_PWM_USE_PWM7 TRUE diff --git a/keyboards/era/sirind/klein_hs/readme.md b/keyboards/era/sirind/klein_hs/readme.md index 86343271bb..e7dc568c75 100644 --- a/keyboards/era/sirind/klein_hs/readme.md +++ b/keyboards/era/sirind/klein_hs/readme.md @@ -20,4 +20,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/sirind/klein_sd/halconf.h b/keyboards/era/sirind/klein_sd/halconf.h index f57e86df01..ec9ad4659c 100644 --- a/keyboards/era/sirind/klein_sd/halconf.h +++ b/keyboards/era/sirind/klein_sd/halconf.h @@ -18,4 +18,4 @@ #define HAL_USE_PWM TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/era/sirind/klein_sd/keyboard.json b/keyboards/era/sirind/klein_sd/keyboard.json index b2fbe33290..5591fd6d72 100644 --- a/keyboards/era/sirind/klein_sd/keyboard.json +++ b/keyboards/era/sirind/klein_sd/keyboard.json @@ -588,4 +588,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/sirind/klein_sd/keymaps/default/keymap.c b/keyboards/era/sirind/klein_sd/keymaps/default/keymap.c index 88878bbcd9..e01fecf381 100644 --- a/keyboards/era/sirind/klein_sd/keymaps/default/keymap.c +++ b/keyboards/era/sirind/klein_sd/keymaps/default/keymap.c @@ -20,4 +20,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/sirind/klein_sd/mcuconf.h b/keyboards/era/sirind/klein_sd/mcuconf.h index b82cc49d7d..e2af8e5c26 100644 --- a/keyboards/era/sirind/klein_sd/mcuconf.h +++ b/keyboards/era/sirind/klein_sd/mcuconf.h @@ -19,4 +19,4 @@ #include_next #undef RP_PWM_USE_PWM7 -#define RP_PWM_USE_PWM7 TRUE \ No newline at end of file +#define RP_PWM_USE_PWM7 TRUE diff --git a/keyboards/era/sirind/klein_sd/readme.md b/keyboards/era/sirind/klein_sd/readme.md index a021b843d7..0ec1c84543 100644 --- a/keyboards/era/sirind/klein_sd/readme.md +++ b/keyboards/era/sirind/klein_sd/readme.md @@ -20,4 +20,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/era/sirind/tomak/config.h b/keyboards/era/sirind/tomak/config.h index 0f34f674df..ac531cf18b 100644 --- a/keyboards/era/sirind/tomak/config.h +++ b/keyboards/era/sirind/tomak/config.h @@ -12,4 +12,4 @@ /* Reset */ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 2000U \ No newline at end of file +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 2000U diff --git a/keyboards/era/sirind/tomak/keymaps/default/keymap.c b/keyboards/era/sirind/tomak/keymaps/default/keymap.c index bf070bd9fa..4b56db1eb2 100644 --- a/keyboards/era/sirind/tomak/keymaps/default/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default/keymap.c @@ -22,4 +22,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/sirind/tomak/keymaps/default_ansi/keymap.c b/keyboards/era/sirind/tomak/keymaps/default_ansi/keymap.c index 7a1edcb15f..94afa64abc 100644 --- a/keyboards/era/sirind/tomak/keymaps/default_ansi/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi/keymap.c @@ -22,4 +22,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_bs/keymap.c b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_bs/keymap.c index 20d99d5fa7..a741395321 100644 --- a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_bs/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_bs/keymap.c @@ -22,4 +22,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift/keymap.c b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift/keymap.c index e5d064cb47..368633aee5 100644 --- a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift/keymap.c @@ -22,4 +22,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift_bs/keymap.c b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift_bs/keymap.c index c85224d234..6c0a2f15fc 100644 --- a/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift_bs/keymap.c +++ b/keyboards/era/sirind/tomak/keymaps/default_ansi_split_rshift_bs/keymap.c @@ -22,4 +22,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/era/sirind/tomak/readme.md b/keyboards/era/sirind/tomak/readme.md index 0834dfd6a8..eb3e5c231b 100644 --- a/keyboards/era/sirind/tomak/readme.md +++ b/keyboards/era/sirind/tomak/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/era/sirind/tomak/tomak.c b/keyboards/era/sirind/tomak/tomak.c index 8533cd4a73..4bc0ae6e95 100644 --- a/keyboards/era/sirind/tomak/tomak.c +++ b/keyboards/era/sirind/tomak/tomak.c @@ -13,4 +13,4 @@ bool rgb_matrix_indicators_kb(void) { rgb_matrix_set_color(98, 0, 128, 128); } return true; -} \ No newline at end of file +} diff --git a/keyboards/era/sirind/tomak79h/config.h b/keyboards/era/sirind/tomak79h/config.h index f04429bcd8..4b1caf25f7 100644 --- a/keyboards/era/sirind/tomak79h/config.h +++ b/keyboards/era/sirind/tomak79h/config.h @@ -12,4 +12,4 @@ /* Reset */ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U \ No newline at end of file +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/era/sirind/tomak79h/keyboard.json b/keyboards/era/sirind/tomak79h/keyboard.json index d1764bb668..1caffa2dff 100644 --- a/keyboards/era/sirind/tomak79h/keyboard.json +++ b/keyboards/era/sirind/tomak79h/keyboard.json @@ -389,4 +389,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/era/sirind/tomak79h/keymaps/default/keymap.c b/keyboards/era/sirind/tomak79h/keymaps/default/keymap.c index d1434f8cd0..87ea2491cb 100644 --- a/keyboards/era/sirind/tomak79h/keymaps/default/keymap.c +++ b/keyboards/era/sirind/tomak79h/keymaps/default/keymap.c @@ -21,4 +21,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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/tomak79h/readme.md b/keyboards/era/sirind/tomak79h/readme.md index 528731ef12..652784e16f 100644 --- a/keyboards/era/sirind/tomak79h/readme.md +++ b/keyboards/era/sirind/tomak79h/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/era/sirind/tomak79h/tomak79h.c b/keyboards/era/sirind/tomak79h/tomak79h.c index 580a1ba68b..29cbdfa964 100644 --- a/keyboards/era/sirind/tomak79h/tomak79h.c +++ b/keyboards/era/sirind/tomak79h/tomak79h.c @@ -13,4 +13,4 @@ bool rgb_matrix_indicators_kb(void) { } } return true; -} \ No newline at end of file +} diff --git a/keyboards/era/sirind/tomak79s/config.h b/keyboards/era/sirind/tomak79s/config.h index f04429bcd8..4b1caf25f7 100644 --- a/keyboards/era/sirind/tomak79s/config.h +++ b/keyboards/era/sirind/tomak79s/config.h @@ -12,4 +12,4 @@ /* Reset */ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U \ No newline at end of file +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 1000U diff --git a/keyboards/era/sirind/tomak79s/keyboard.json b/keyboards/era/sirind/tomak79s/keyboard.json index 2e68ad788d..d28c96e565 100644 --- a/keyboards/era/sirind/tomak79s/keyboard.json +++ b/keyboards/era/sirind/tomak79s/keyboard.json @@ -671,4 +671,4 @@ ] } } -} \ 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 index 9ac7334d48..d2816d3173 100644 --- a/keyboards/era/sirind/tomak79s/keymaps/default/keymap.c +++ b/keyboards/era/sirind/tomak79s/keymaps/default/keymap.c @@ -21,4 +21,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 index 5fc275bc65..6026c12533 100644 --- a/keyboards/era/sirind/tomak79s/readme.md +++ b/keyboards/era/sirind/tomak79s/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/era/sirind/tomak79s/tomak79s.c b/keyboards/era/sirind/tomak79s/tomak79s.c index f5f3165b64..400ce2b7fe 100644 --- a/keyboards/era/sirind/tomak79s/tomak79s.c +++ b/keyboards/era/sirind/tomak79s/tomak79s.c @@ -13,4 +13,4 @@ bool rgb_matrix_indicators_kb(void) { } } return true; -} \ No newline at end of file +} diff --git a/keyboards/ergodox_ez/keymaps/default/readme.md b/keyboards/ergodox_ez/keymaps/default/readme.md index 1150a4f709..f1634c1e98 100644 --- a/keyboards/ergodox_ez/keymaps/default/readme.md +++ b/keyboards/ergodox_ez/keymaps/default/readme.md @@ -12,4 +12,4 @@ This is what we ship with out of the factory. :) The image says it all: -![Default](https://i.imgur.com/Be53jH7.png) \ No newline at end of file +![Default](https://i.imgur.com/Be53jH7.png) diff --git a/keyboards/etiennecollin/wave/keymaps/test/keymap.json b/keyboards/etiennecollin/wave/keymaps/test/keymap.json index e73c867273..c7973a13f2 100644 --- a/keyboards/etiennecollin/wave/keymaps/test/keymap.json +++ b/keyboards/etiennecollin/wave/keymaps/test/keymap.json @@ -19,4 +19,4 @@ "KC_ESC", "KC_SPC", "KC_TAB", "KC_ENT", "KC_BSPC", "KC_DEL" ] ] -} \ No newline at end of file +} diff --git a/keyboards/evancookaudio/sleepingdinosaur/readme.md b/keyboards/evancookaudio/sleepingdinosaur/readme.md index 064e4981fe..58993abe5d 100644 --- a/keyboards/evancookaudio/sleepingdinosaur/readme.md +++ b/keyboards/evancookaudio/sleepingdinosaur/readme.md @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): 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). ## Enter the bootloader: -* **Physical reset button**: On the underside of the board, near the USB connector and microcontroller, press and hold the small button labeled reset for more than one second to enter the bootloader. \ No newline at end of file +* **Physical reset button**: On the underside of the board, near the USB connector and microcontroller, press and hold the small button labeled reset for more than one second to enter the bootloader. diff --git a/keyboards/evancookaudio/tenpad/readme.md b/keyboards/evancookaudio/tenpad/readme.md index 0bcb7a7bce..facf658121 100644 --- a/keyboards/evancookaudio/tenpad/readme.md +++ b/keyboards/evancookaudio/tenpad/readme.md @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): 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). ## Enter the bootloader: -* **Physical reset button**: Briefly short the pair of pins marked "reset" on the top right corner of the bottom PCB of the keyboard. \ No newline at end of file +* **Physical reset button**: Briefly short the pair of pins marked "reset" on the top right corner of the bottom PCB of the keyboard. diff --git a/keyboards/evyd13/eon40/keymaps/default/keymap.c b/keyboards/evyd13/eon40/keymaps/default/keymap.c index 1ddd92ce27..b5fbf6f654 100644 --- a/keyboards/evyd13/eon40/keymaps/default/keymap.c +++ b/keyboards/evyd13/eon40/keymaps/default/keymap.c @@ -43,4 +43,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; \ No newline at end of file +}; diff --git a/keyboards/evyd13/eon40/readme.md b/keyboards/evyd13/eon40/readme.md index 5a4e8e3f2d..f3e82ae0b2 100644 --- a/keyboards/evyd13/eon40/readme.md +++ b/keyboards/evyd13/eon40/readme.md @@ -18,4 +18,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/eon40: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). \ No newline at end of file +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/evyd13/eon65/keymaps/default/keymap.c b/keyboards/evyd13/eon65/keymaps/default/keymap.c index 2a55a12d6d..34d410cc20 100644 --- a/keyboards/evyd13/eon65/keymaps/default/keymap.c +++ b/keyboards/evyd13/eon65/keymaps/default/keymap.c @@ -29,4 +29,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; \ No newline at end of file +}; diff --git a/keyboards/evyd13/eon65/readme.md b/keyboards/evyd13/eon65/readme.md index e7487e4c86..2415df87a1 100644 --- a/keyboards/evyd13/eon65/readme.md +++ b/keyboards/evyd13/eon65/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/eon65: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). \ No newline at end of file +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/evyd13/eon75/keymaps/default/keymap.c b/keyboards/evyd13/eon75/keymaps/default/keymap.c index 24a8883005..bac0846348 100644 --- a/keyboards/evyd13/eon75/keymaps/default/keymap.c +++ b/keyboards/evyd13/eon75/keymaps/default/keymap.c @@ -31,4 +31,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; \ No newline at end of file +}; diff --git a/keyboards/evyd13/eon75/readme.md b/keyboards/evyd13/eon75/readme.md index 7b3ee43f1b..9afcb30e68 100644 --- a/keyboards/evyd13/eon75/readme.md +++ b/keyboards/evyd13/eon75/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/eon75: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). \ No newline at end of file +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/evyd13/eon87/keymaps/default/keymap.c b/keyboards/evyd13/eon87/keymaps/default/keymap.c index 2f66cc5ebd..ecea82a353 100644 --- a/keyboards/evyd13/eon87/keymaps/default/keymap.c +++ b/keyboards/evyd13/eon87/keymaps/default/keymap.c @@ -39,4 +39,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; \ No newline at end of file +}; diff --git a/keyboards/evyd13/eon87/readme.md b/keyboards/evyd13/eon87/readme.md index 6eea6c20ec..e35f3b2feb 100644 --- a/keyboards/evyd13/eon87/readme.md +++ b/keyboards/evyd13/eon87/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/eon87: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). \ No newline at end of file +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/evyd13/eon95/keymaps/default/keymap.c b/keyboards/evyd13/eon95/keymaps/default/keymap.c index 779f592784..84179d5d5f 100644 --- a/keyboards/evyd13/eon95/keymaps/default/keymap.c +++ b/keyboards/evyd13/eon95/keymaps/default/keymap.c @@ -31,4 +31,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; \ No newline at end of file +}; diff --git a/keyboards/evyd13/eon95/readme.md b/keyboards/evyd13/eon95/readme.md index 0bb43f6513..61b78dd159 100644 --- a/keyboards/evyd13/eon95/readme.md +++ b/keyboards/evyd13/eon95/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/eon95: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). \ No newline at end of file +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/evyd13/gh80_1800/keymaps/default/keymap.c b/keyboards/evyd13/gh80_1800/keymaps/default/keymap.c index cd22f7bf56..1962bb071e 100644 --- a/keyboards/evyd13/gh80_1800/keymaps/default/keymap.c +++ b/keyboards/evyd13/gh80_1800/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_PPLS, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT ), -}; \ No newline at end of file +}; diff --git a/keyboards/evyd13/gh80_1800/readme.md b/keyboards/evyd13/gh80_1800/readme.md index fd392988cf..56cd86e941 100644 --- a/keyboards/evyd13/gh80_1800/readme.md +++ b/keyboards/evyd13/gh80_1800/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/gh80_1800: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). \ No newline at end of file +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/evyd13/gh80_3700/readme.md b/keyboards/evyd13/gh80_3700/readme.md index 11366f9a14..cba195173d 100644 --- a/keyboards/evyd13/gh80_3700/readme.md +++ b/keyboards/evyd13/gh80_3700/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/gh80_3700: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). \ No newline at end of file +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/evyd13/minitomic/keymaps/default/keymap.c b/keyboards/evyd13/minitomic/keymaps/default/keymap.c index 400c5e364d..f1c4d58e70 100644 --- a/keyboards/evyd13/minitomic/keymaps/default/keymap.c +++ b/keyboards/evyd13/minitomic/keymaps/default/keymap.c @@ -43,4 +43,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU, KC_MPLY, KC_PSCR, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; \ No newline at end of file +}; diff --git a/keyboards/evyd13/minitomic/readme.md b/keyboards/evyd13/minitomic/readme.md index f4330d4d54..3f74986d22 100644 --- a/keyboards/evyd13/minitomic/readme.md +++ b/keyboards/evyd13/minitomic/readme.md @@ -20,4 +20,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/minitomic: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). \ No newline at end of file +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/evyd13/mx5160/readme.md b/keyboards/evyd13/mx5160/readme.md index 677b16072d..3bfd980dd8 100644 --- a/keyboards/evyd13/mx5160/readme.md +++ b/keyboards/evyd13/mx5160/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/mx5160: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). \ No newline at end of file +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/evyd13/omrontkl/keymaps/default/keymap.c b/keyboards/evyd13/omrontkl/keymaps/default/keymap.c index d0e930b4b3..9b1a049da5 100644 --- a/keyboards/evyd13/omrontkl/keymaps/default/keymap.c +++ b/keyboards/evyd13/omrontkl/keymaps/default/keymap.c @@ -39,4 +39,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; \ No newline at end of file +}; diff --git a/keyboards/evyd13/omrontkl/readme.md b/keyboards/evyd13/omrontkl/readme.md index e45117c27c..64e3095f2e 100644 --- a/keyboards/evyd13/omrontkl/readme.md +++ b/keyboards/evyd13/omrontkl/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/omrontkl: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). \ No newline at end of file +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/evyd13/pockettype/readme.md b/keyboards/evyd13/pockettype/readme.md index c32568a800..84a47e20e3 100644 --- a/keyboards/evyd13/pockettype/readme.md +++ b/keyboards/evyd13/pockettype/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make evyd13/pockettype: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). \ No newline at end of file +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/exclusive/e6v2/le/keymaps/default/keymap.c b/keyboards/exclusive/e6v2/le/keymaps/default/keymap.c index b785a3279e..7e3755f0b9 100644 --- a/keyboards/exclusive/e6v2/le/keymaps/default/keymap.c +++ b/keyboards/exclusive/e6v2/le/keymaps/default/keymap.c @@ -8,4 +8,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_DEL, KC_LCTL, KC_LGUI, KC_LALT, KC_MENU, KC_SPACE, KC_SPACE, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT ), -}; \ No newline at end of file +}; diff --git a/keyboards/exclusive/e6v2/oe/readme.md b/keyboards/exclusive/e6v2/oe/readme.md index 9d5dd62615..cdf27dd9dd 100644 --- a/keyboards/exclusive/e6v2/oe/readme.md +++ b/keyboards/exclusive/e6v2/oe/readme.md @@ -16,4 +16,4 @@ Or to make and flash: make e6v2/oe:default:dfu -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/eyeohdesigns/babyv/keymaps/1u/keymap.c b/keyboards/eyeohdesigns/babyv/keymaps/1u/keymap.c index 6e4a35a8f8..8ab1664585 100644 --- a/keyboards/eyeohdesigns/babyv/keymaps/1u/keymap.c +++ b/keyboards/eyeohdesigns/babyv/keymaps/1u/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_RSFT, KC_LCTL, KC_TRNS, KC_TRNS, KC_SPC, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS ), -}; \ No newline at end of file +}; diff --git a/keyboards/eyeohdesigns/babyv/keymaps/1u2u/keymap.c b/keyboards/eyeohdesigns/babyv/keymaps/1u2u/keymap.c index 3f7b131353..2e47d6d9ec 100644 --- a/keyboards/eyeohdesigns/babyv/keymaps/1u2u/keymap.c +++ b/keyboards/eyeohdesigns/babyv/keymaps/1u2u/keymap.c @@ -41,4 +41,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_RSFT, KC_LCTL, KC_LALT, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_RCTL ), -}; \ No newline at end of file +}; diff --git a/keyboards/eyeohdesigns/babyv/keymaps/2u1u/keymap.c b/keyboards/eyeohdesigns/babyv/keymaps/2u1u/keymap.c index 968a01308e..e51cfd2a07 100644 --- a/keyboards/eyeohdesigns/babyv/keymaps/2u1u/keymap.c +++ b/keyboards/eyeohdesigns/babyv/keymaps/2u1u/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_RSFT, KC_LCTL, KC_TRNS, KC_SPC, KC_TRNS, KC_TRNS, KC_LGUI, KC_TRNS ), -}; \ No newline at end of file +}; diff --git a/keyboards/eyeohdesigns/babyv/keymaps/default/keymap.c b/keyboards/eyeohdesigns/babyv/keymaps/default/keymap.c index 8d6559f1cd..c87a59acc9 100644 --- a/keyboards/eyeohdesigns/babyv/keymaps/default/keymap.c +++ b/keyboards/eyeohdesigns/babyv/keymaps/default/keymap.c @@ -41,4 +41,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_CAPS, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_RSFT, KC_LCTL, KC_TRNS, KC_TRNS, KC_SPC, KC_TRNS, KC_LGUI ), -}; \ No newline at end of file +}; diff --git a/keyboards/eyeohdesigns/sprh/keymaps/default/keymap.c b/keyboards/eyeohdesigns/sprh/keymaps/default/keymap.c index 3ea5b41594..dba3c066d0 100644 --- a/keyboards/eyeohdesigns/sprh/keymaps/default/keymap.c +++ b/keyboards/eyeohdesigns/sprh/keymaps/default/keymap.c @@ -35,4 +35,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_PGUP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(_FUNCTN), KC_RCTL, KC_HOME, KC_PGDN, KC_END ) -}; \ No newline at end of file +}; diff --git a/keyboards/eyeohdesigns/theboulevard/readme.md b/keyboards/eyeohdesigns/theboulevard/readme.md index bfe330ab21..da18dd4ed8 100644 --- a/keyboards/eyeohdesigns/theboulevard/readme.md +++ b/keyboards/eyeohdesigns/theboulevard/readme.md @@ -18,4 +18,4 @@ Flashing example for this keyboard: To enter the bootloader, either depress the reset button on the back of the PCB, or use the `QK_BOOT` keycode found on the function layer. -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 +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/fancytech/fancyalice66/fancyalice66.c b/keyboards/fancytech/fancyalice66/fancyalice66.c index 72e5355a31..a3ba6da13f 100644 --- a/keyboards/fancytech/fancyalice66/fancyalice66.c +++ b/keyboards/fancytech/fancyalice66/fancyalice66.c @@ -26,4 +26,4 @@ bool rgb_matrix_indicators_kb(void) { } return true; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/fancytech/fancyalice66/keyboard.json b/keyboards/fancytech/fancyalice66/keyboard.json index c1f0a93f26..bfd0547130 100644 --- a/keyboards/fancytech/fancyalice66/keyboard.json +++ b/keyboards/fancytech/fancyalice66/keyboard.json @@ -249,4 +249,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/fancytech/fancyalice66/keymaps/default/keymap.c b/keyboards/fancytech/fancyalice66/keymaps/default/keymap.c index 7ce470a71c..03cbfe5bd5 100644 --- a/keyboards/fancytech/fancyalice66/keymaps/default/keymap.c +++ b/keyboards/fancytech/fancyalice66/keymaps/default/keymap.c @@ -46,4 +46,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RM_VALU, _______, _______, _______, _______, _______, RM_NEXT, _______, RM_VALD, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/fc660c/keymaps/default/README.md b/keyboards/fc660c/keymaps/default/README.md index f813ed0c3e..e1adcd19cc 100644 --- a/keyboards/fc660c/keymaps/default/README.md +++ b/keyboards/fc660c/keymaps/default/README.md @@ -2,4 +2,4 @@ Emulates original keymap. -![](https://i.imgur.com/fg89nez.jpg) \ No newline at end of file +![](https://i.imgur.com/fg89nez.jpg) diff --git a/keyboards/fc660c/keymaps/default_rgb/rules.mk b/keyboards/fc660c/keymaps/default_rgb/rules.mk index 7ad666d1a3..1e3cebb145 100644 --- a/keyboards/fc660c/keymaps/default_rgb/rules.mk +++ b/keyboards/fc660c/keymaps/default_rgb/rules.mk @@ -1 +1 @@ -RGBLIGHT_ENABLE = yes \ No newline at end of file +RGBLIGHT_ENABLE = yes diff --git a/keyboards/fjlabs/mk61rgbansi/keymaps/default/keymap.c b/keyboards/fjlabs/mk61rgbansi/keymaps/default/keymap.c index 8baf4b6f9d..754e4ef55a 100644 --- a/keyboards/fjlabs/mk61rgbansi/keymaps/default/keymap.c +++ b/keyboards/fjlabs/mk61rgbansi/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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/fjlabs/peaker/readme.md b/keyboards/fjlabs/peaker/readme.md index ca85b99629..819923309d 100644 --- a/keyboards/fjlabs/peaker/readme.md +++ b/keyboards/fjlabs/peaker/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): 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). -You can enter the bootloader by pressing the Reset button on the back of the PCB. \ No newline at end of file +You can enter the bootloader by pressing the Reset button on the back of the PCB. diff --git a/keyboards/fjlabs/sinanju/readme.md b/keyboards/fjlabs/sinanju/readme.md index 9d3a0f4330..be9d37ce26 100644 --- a/keyboards/fjlabs/sinanju/readme.md +++ b/keyboards/fjlabs/sinanju/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): 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 can be entered by pressing the reset button near the main microcontroller while the board is plugged in. Alternatively, it may be entered by holding the top-left-most switch and plugging in the PCB while held. \ No newline at end of file +Bootloader can be entered by pressing the reset button near the main microcontroller while the board is plugged in. Alternatively, it may be entered by holding the top-left-most switch and plugging in the PCB while held. diff --git a/keyboards/fjlabs/tf60ansi/keymaps/default/keymap.c b/keyboards/fjlabs/tf60ansi/keymaps/default/keymap.c index 8baf4b6f9d..754e4ef55a 100644 --- a/keyboards/fjlabs/tf60ansi/keymaps/default/keymap.c +++ b/keyboards/fjlabs/tf60ansi/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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/fjlabs/tf60ansi/readme.md b/keyboards/fjlabs/tf60ansi/readme.md index 274db0c27e..b77c773015 100644 --- a/keyboards/fjlabs/tf60ansi/readme.md +++ b/keyboards/fjlabs/tf60ansi/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/fjlabs/tf60v2/keymaps/default/keymap.c b/keyboards/fjlabs/tf60v2/keymaps/default/keymap.c index 7d6549847a..18d069a006 100644 --- a/keyboards/fjlabs/tf60v2/keymaps/default/keymap.c +++ b/keyboards/fjlabs/tf60v2/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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/fjlabs/tf60v2/readme.md b/keyboards/fjlabs/tf60v2/readme.md index 73b1473e2a..ce3ac0fac3 100644 --- a/keyboards/fjlabs/tf60v2/readme.md +++ b/keyboards/fjlabs/tf60v2/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/fjlabs/tf65rgbv2/keymaps/default/keymap.c b/keyboards/fjlabs/tf65rgbv2/keymaps/default/keymap.c index 3b77e6f3d3..8548cf99e1 100644 --- a/keyboards/fjlabs/tf65rgbv2/keymaps/default/keymap.c +++ b/keyboards/fjlabs/tf65rgbv2/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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/fjlabs/tf65rgbv2/readme.md b/keyboards/fjlabs/tf65rgbv2/readme.md index b46c40cbfe..47753b4fd7 100644 --- a/keyboards/fjlabs/tf65rgbv2/readme.md +++ b/keyboards/fjlabs/tf65rgbv2/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/flashquark/horizon_z/keyboard.json b/keyboards/flashquark/horizon_z/keyboard.json index 8e3ba47e4d..d0af1eda4e 100755 --- a/keyboards/flashquark/horizon_z/keyboard.json +++ b/keyboards/flashquark/horizon_z/keyboard.json @@ -188,4 +188,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/flashquark/horizon_z/keymaps/default/keymap.c b/keyboards/flashquark/horizon_z/keymaps/default/keymap.c index eb2dbdc22d..9930ca62c5 100755 --- a/keyboards/flashquark/horizon_z/keymaps/default/keymap.c +++ b/keyboards/flashquark/horizon_z/keymaps/default/keymap.c @@ -32,4 +32,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_MNXT, 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/flashquark/horizon_z/readme.md b/keyboards/flashquark/horizon_z/readme.md index 0c4e8d5745..9eb848ebb9 100755 --- a/keyboards/flashquark/horizon_z/readme.md +++ b/keyboards/flashquark/horizon_z/readme.md @@ -17,4 +17,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader -Press reset button on the back of keyboard. \ No newline at end of file +Press reset button on the back of keyboard. diff --git a/keyboards/fleuron/readme.md b/keyboards/fleuron/readme.md index 286ceb7cf8..b406cf345e 100644 --- a/keyboards/fleuron/readme.md +++ b/keyboards/fleuron/readme.md @@ -13,4 +13,4 @@ Make example for this keyboard (after setting up your build environment): make fleuron:default to build firmware make fleuron:default:dfu to make and flash with dfu -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/flx/virgo/keymaps/default/keymap.c b/keyboards/flx/virgo/keymaps/default/keymap.c index f2c72ec9b4..0117efc0b2 100644 --- a/keyboards/flx/virgo/keymaps/default/keymap.c +++ b/keyboards/flx/virgo/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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/fortitude60/readme.md b/keyboards/fortitude60/readme.md index 21884df3c3..ce0bbe50ed 100644 --- a/keyboards/fortitude60/readme.md +++ b/keyboards/fortitude60/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make fortitude60/rev1: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). \ No newline at end of file +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/foxlab/leaf60/readme.md b/keyboards/foxlab/leaf60/readme.md index 994915680c..6faebcbe6f 100644 --- a/keyboards/foxlab/leaf60/readme.md +++ b/keyboards/foxlab/leaf60/readme.md @@ -4,4 +4,4 @@ The Leaf60 is a 60% gasket mount board sold via [Geekhack Group Buy](https://gee It was available with a universal layout PCB and a hotswap tsangan PCB. -**Firmware generated for one PCB will not work on the other.** \ No newline at end of file +**Firmware generated for one PCB will not work on the other.** diff --git a/keyboards/fungo/rev1/post_config.h b/keyboards/fungo/rev1/post_config.h index 16a06bf0c7..a2d7c1dff6 100644 --- a/keyboards/fungo/rev1/post_config.h +++ b/keyboards/fungo/rev1/post_config.h @@ -27,4 +27,4 @@ #ifndef MOUSEKEY_INITIAL_SPEED #define MOUSEKEY_INITIAL_SPEED 20 -#endif \ No newline at end of file +#endif diff --git a/keyboards/gboards/dicts/aset/_generator/src/da-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/da-keymap.json index 5bc62f4bca..9e9a8798a7 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/da-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/da-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",70938],"tlw":["a",1885],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",6312],"tlw":["s",729],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",51462],"tlw":["saa",14038],"lp":["sa","saa","as","ass","wa","aas","ssa","sas","ww","aw","saas","www","assa","ssaa","ws"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",2647],"tlw":["e",88],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ae",65201],"tlw":["ae",1518],"lp":["ae","aae","ex","ea","ax","aee","xe","xa","exa","exe","axe","aex","eae"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",283077],"tlw":["de",23660],"lp":["de","ed","es","se","ede","ds","des","sse","dd","dse","ess","dde","eds","edes","ese","sed","ded","see","dede","sede"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",24996],"tlw":["da",8071],"lp":["ad","da","ade","aes","aad","sae","aed","ada","sad","aede","aade","saad","aada","ads","asse","aese","dae","dda","esa","we"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",16147],"tlw":["t",62],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",52505],"tlw":["at",39486],"lp":["at","ta","af","fa","ft","att","taa","faa","aft","aat","ff","aatt","fat","fatt","aff","tat","tf","ata","fta","afta"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",66160],"tlw":["c",179],"lp":["st","ts","sc","sst","ct","cc","tc","cs","cst","tst","tsc","tts","sts"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",9134],"tlw":["fast",485],"lp":["sta","ast","sat","staa","ca","satt","tsa","fas","fast","fs","afs","ac","asta","sf","tas","tsaa","fst","afst","stat","tsat"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",200106],"tlw":["er",24396],"lp":["er","et","te","re","ere","rt","ter","tr","tte","ret","ett","ette","rte","ert","rr","tet","tter","rer","rre","eret"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",71256],"tlw":["fra",7354],"lp":["ar","ra","aer","fr","aar","aere","fte","fra","ef","tra","rae","are","fter","tae","eft","atte","efte","aet","fre","rf"],"rp":[]},"14":{"input":[2,3,4],"tlp":["det",50507],"tlw":["det",40064],"lp":["det","der","dt","ste","rd","dr","rs","est","dre","red","res","este","rde","ted","dere","rst","dte","rede","dst","str"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["aest",3267],"tlw":["satte",874],"lp":["aest","stra","stae","ader","ard","aerd","ared","rsta","saet","rda","derf","aard","fes","tad","stad","raad","dra","fred","fess","raed"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",12763],"trw":["n",53],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",107331],"trp":["na",18738],"tlw":["an",271],"trw":["naa",705],"lp":["an","aan","ann","anna","ana"],"rp":["na","naa","nan","nna","naan"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",2823],"trp":["ns",25305],"trw":["j",68],"lp":["sn","sj"],"rp":["ns","jn","js","nj","nss","jj"]},"19":{"input":[1,2,5],"tlp":["ans",12498],"trp":["ja",8744],"tlw":["sans",47],"trw":["ja",3506],"lp":["ans","san","sna","sja","aj","ajn","ssan","ansa","aaj","sans","snaa","wan","wn","asn","aasn"],"rp":["ja","nsa","jan","nas","nsaa"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",215951],"trp":["ne",54829],"tlw":["en",31130],"trw":["nye",787],"lp":["en","ene","enn","enne","enen","een","ey","eny"],"rp":["ne","nne","yn","nen","ny","ye","nene","yne","nye","yen","nnen","nee"]},"21":{"input":[1,3,5],"tlp":["aen",11318],"trp":["nae",4921],"tlw":["anne",45],"trw":["nae",24],"lp":["aen","anne","ane","aene","aane","aaen","anen","ay","ena","any","aany","ean","eann","aenn","xen"],"rp":["nae","naae","ya","yan","naee"]},"22":{"input":[2,3,5],"tlp":["den",50813],"trp":["nd",90348],"tlw":["den",24655],"trw":["ned",3104],"lp":["den","end","ende","ens","ej","sen","sy","dn","syn"],"rp":["nd","nde","je","nden","ned","ys","ndes","jen","nes","yd","nds"]},"23":{"input":[1,2,3,5],"tlp":["and",24671],"trp":["jae",3560],"tlw":["anden",1960],"trw":["naade",237],"lp":["and","ande","dan","aend","aand","adan","ands","aden","dann","sand","anse","sjae","dans","aned"],"rp":["jae","naes","nand","nda","naad","ndda"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["tn",1655],"trp":["nt",13043],"tlw":["b",55],"lp":["tn","bt","bn","bb","tb"],"rp":["nt","nb","ntn"]},"25":{"input":[1,4,5],"tlp":["ba",11045],"trp":["nat",1917],"tlw":["tabt",109],"trw":["nat",438],"lp":["ba","ab","tan","ant","aab","fan","ban","baa","abt","abn","aabn","aabt","anta","tab","tabt","fb"],"rp":["nat","nf","nta","natt"]},"26":{"input":[2,4,5],"tlp":["tj",1039],"trp":["nst",1524],"lp":["tj","bj","sb","stj","stn","bs","tsj","sbj"],"rp":["nst","nc","jst","jt","nsb","nstn","ncs","ncst","nct","jnb","nbj","jnbj"]},"27":{"input":[1,2,4,5],"tlp":["stan",1647],"trp":["nsta",463],"tlw":["satan",75],"lp":["stan","fj","anc","bac","taj","abs","tja","stja","tajn","sant","bja","anst","asb","asbj","bas","tans"],"rp":["nsta","ntas","nsat","jac"]},"28":{"input":[3,4,5],"tlp":["be",22658],"trp":["nte",7013],"tlw":["byen",409],"trw":["nyt",305],"lp":["be","rn","ren","ten","br","rne","ern","erne","ent","ry","ty","eb","rb","ber","eren","bet","ente"],"rp":["nte","ner","net"]},"29":{"input":[1,3,4,5],"tlp":["ran",3013],"trp":["naar",3178],"tlw":["bare",1165],"trw":["naar",3077],"lp":["ran","taen","bar","abe","ante","ften","arb","arbe","bra","raen","bare","fy","arn","aeb","bae","barn"],"rp":["naar","nar","naer","nart"]},"30":{"input":[2,3,4,5],"tlp":["sten",3731],"trp":["nder",8663],"tlw":["syntes",800],"trw":["jer",433],"lp":["sten","endt","bes","bed","rden","rej","bej","rejs","rbej","bejd","best","dern"],"rp":["nder","ndt","ndr","ndre","ndet","jer","ndte","yst"]},"31":{"input":[1,2,3,4,5],"tlw":["andre",1970],"trw":["naesten",941],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",246],"trw":["i",43365],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",419],"trp":["ia",2518],"lp":["ai","za","zi","az"],"rp":["ia","iz"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",39075],"trp":["ik",32997],"tlw":["si",156],"trw":["is",201],"lp":["si","sk","ski","sik","ssi","sikk","sis","skik"],"rp":["ik","kk","ikk","is","ki","ks","isk","iss","kik","ksi","ksis","kikk"]},"35":{"input":[1,2,6],"tlp":["ska",8476],"trp":["ka",23048],"tlw":["zak",168],"trw":["ka",248],"lp":["ska","ak","akk","ask","wi","aks","aask","aksi","asi","zak","aka","skaa","assi","aak"],"rp":["ka","kas","kaa","isa","ika","kass"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",2228],"trp":["ie",6094],"tlw":["ei",448],"lp":["ei","eie"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",48],"trp":["ix",31],"trw":["ix",31],"lp":["ze","xi","axi","aie","eiz","aei","aze"],"rp":["ix","iae"]},"38":{"input":[2,3,6],"tlp":["di",14167],"trp":["ke",57169],"tlw":["disse",1266],"trw":["ikke",20180],"lp":["di","ske","ek","sid","side","esk","ekk","ekke","eske"],"rp":["ke","kke","id","ikke","ide","ked","kede","ids","ise","kked","iske"]},"39":{"input":[1,2,3,6],"tlp":["aek",2798],"trp":["kae",1766],"tlw":["skade",99],"trw":["ida",70],"lp":["aek","akke","aekk","aske","skae","adi","dska","daek","adsk","eka","skad","aesk","eska","aeks"],"rp":["kae","idda","isae","ida","kad","kade"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",51178],"trp":["iv",10524],"tlw":["vi",7341],"trw":["it",23],"lp":["ti","vi","vt","tv","tvi","tiv","viv","tti","tviv","tit","vit","vv","vitt","tivt"],"rp":["iv","it","iti","itt","itti","ivt"]},"41":{"input":[1,4,6],"tlp":["va",50676],"trp":["if",1405],"tlw":["tav",135],"lp":["va","av","fi","ati","tav","avi","vaa","fti","tia","vf","avt","atti","tva","afti","tz"],"rp":["if","ift","iva","ita","itz"]},"42":{"input":[2,4,6],"tlp":["vis",7341],"trp":["ist",4703],"tlw":["sit",2281],"lp":["vis","sti","sv","sit","vist","vs","tis","tisk","ci","svi","visk","vik","tik"],"rp":["ist","kt","kv","kvi","isti","ic","kti"]},"43":{"input":[1,2,4,6],"tlp":["sva",3328],"trp":["kast",607],"tlw":["fik",1865],"trw":["kat",43],"lp":["sva","fik","akt","tak","avs","stak","takk","akti","tavs","fak","stia","fakt","fis","fisk","sav"],"rp":["kast","kat","kaf","kaff","kva"]},"44":{"input":[3,4,6],"tlp":["ve",58500],"trp":["ive",7238],"tlw":["rev",144],"trw":["iver",59],"lp":["ve","ri","ver","ev","eve","vet","eri","rv","rti","rev","vir","evet","rve","rie","vr"],"rp":["ive","ir","iver","ivet","ier"]},"45":{"input":[1,3,4,6],"tlp":["var",27429],"trp":["ifte",524],"tlw":["var",23713],"trw":["ivar",148],"lp":["var","vae","vaer","ave","vare","aev","eva","ari","fri","evae","rav","aeve","arv","arve","avet","farv","aver","verf","arie"],"rp":["ifte"]},"46":{"input":[2,3,4,6],"tlp":["ved",13008],"trp":["kr",7446],"tlw":["ved",9023],"trw":["idet",571],"lp":["ved","vd","vde","rk","tid","rke","vid","erk","dri","skr","vede","vide","erke"],"rp":["kr","ker","idt","ket","kri","idst","kker"]},"47":{"input":[1,2,3,4,6],"tlw":["svarede",1115],"trw":["kastede",275],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",55966],"trw":["h",182],"lp":[],"rp":["in","ni","nin","hi","nh","hin","inn","ih","nni","ini","hn","nnin","hinn","hini","hii","iin","hiin"]},"49":{"input":[1,5,6],"tlp":["ani",433],"trp":["ha",84475],"tlw":["zina",155],"trw":["han",28303],"lp":["ani","ah","anz","anni","zin","zina","ania"],"rp":["ha","han","haa","ina","haan","hina","inan","nha","ian","hann","nia","nz","nina"]},"50":{"input":[2,5,6],"tlp":["sin",8509],"trp":["nk",7187],"tlw":["sin",5448],"trw":["nik",30],"lp":["sin","skj","sni","sh","skin","snin"],"rp":["nk","hj","kn","nsk","kj","nsi","nik","kin","his","kni","ink","knin","nikk","nis"]},"51":{"input":[1,2,5,6],"tlp":["ansk",2386],"trp":["kan",8041],"tlw":["sank",149],"trw":["kan",7261],"lp":["ansk","ank","ansi","snak","skja","sha","sank","win"],"rp":["kan","hans","hja","kja","kna","hw","nak","nakk","nska","has","hwa","jak"]},"52":{"input":[3,5,6],"tlp":["enh",1378],"trp":["he",30604],"trw":["hen",2065],"lp":["enh","eh","eni","enin","enhe","ein"],"rp":["he","hen","ine","ien","hy","nie","nei","nhe","inne","inen","henn","ihe","hei","hein"]},"53":{"input":[1,3,5,6],"tlp":["enha",462],"trp":["hae",2302],"tlw":["annie",37],"trw":["hanne",108],"lp":["enha","eha","anie","ehan","einz","zen","enia","ahy","ehaa"],"rp":["hae","haen","nhae","hea","hena","hane","iane","haie"]},"54":{"input":[2,3,5,6],"tlp":["enk",3299],"trp":["ind",17207],"tlw":["sine",1896],"trw":["ind",4197],"lp":["enk","din","sky","ekn","enke","sine"],"rp":["ind","inde","hend","hed","ken","nke","iden","yk","nske","ky","hje","ykk","ykke","kend"]},"55":{"input":[1,2,3,5,6],"tlw":["danske",357],"trw":["hinanden",807],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["vin",3191],"trp":["hv",22271],"tlw":["thi",704],"trw":["int",55],"lp":["vin","vn","bi","th","tin","tni","tnin","thi","bin","vint"],"rp":["hv","hvi","int","ib","nv","nti","nhv","ntin","nit","niv"]},"57":{"input":[1,4,5,6],"tlp":["van",3040],"trp":["hav",16151],"tlw":["tania",150],"trw":["navn",505],"lp":["van","fin","avn","anv","tian","tha","avni","tani","vant","bav"],"rp":["hav","hva","nav","navn","havn","haf","haft","haab","nhav","hat"]},"58":{"input":[2,4,5,6],"tlp":["ch",2279],"trp":["hvis",2968],"tlw":["skib",43],"trw":["hvis",2525],"lp":["ch","svin","stin","visn","sch","sth","skib","vsh","chs","vink"],"rp":["hvis","nkt","kvin","hist","ich","kib","inst","istn","nist","nsv"]},"59":{"input":[1,2,4,5,6],"tlw":["skabt",80],"trw":["kant",116],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",8299],"trp":["her",6089],"tlw":["ven",504],"trw":["her",3645],"lp":["ven","rin","rh","bev","vent","vne","the","erh","even","beh","evn","rbi","erin","etni"],"rp":["her","hve","hver","inte","hr","herr"]},"61":{"input":[1,3,4,5,6],"tlw":["fine",167],"trw":["har",10914],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["vendte",689],"trw":["hvide",710],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["finde",734],"trw":["havde",11721],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",54],"trw":["o",656],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",60],"trp":["oa",43],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",30717],"trp":["os",7769],"tlw":["so",193],"trw":["os",2349],"lp":["so","sos","sso"],"rp":["os","oss","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",536],"trp":["ow",474],"tlw":["wos",58],"lp":["wo","aso","sow","wos","aaso","saso","aos"],"rp":["ow","osa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",700],"trp":["oe",2132],"trw":["-",3902],"lp":["eo","e-"],"rp":["oe","-o","-e","-e-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",13],"trp":["ox",139],"trw":["-aa",53],"lp":["a-","aa-","a-e","aa-e","a-e-"],"rp":["ox","oxe","-a","-aa"]},"70":{"input":[2,3,7],"tlp":["do",7429],"trp":["od",24132],"tlw":["dod",445],"trw":["ode",82],"lp":["do","eso","dod","dode","soe","esso","sod","dso","sode"],"rp":["od","ode","ods","oed","ose","oede","osse","odd","-d","odde","-de"]},"71":{"input":[1,2,3,7],"tlp":["ado",19],"trp":["odsa",172],"trw":["-saa",39],"lp":["ado"],"rp":["odsa","owe","-sa","-saa","odda","oda"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["gt",20766],"trp":["og",89433],"tlw":["to",2228],"trw":["og",64213],"lp":["gt","to","go","gg","tog","tot","tott","gtt","tto","gtto","ttog","tg","tgo","ggo"],"rp":["og","ot","ogt","ott","oot","oto"]},"73":{"input":[1,4,7],"tlp":["fo",49386],"trp":["of",4123],"tlw":["gaa",1197],"trw":["of",77],"lp":["fo","ag","ga","gaa","agt","tag","aag","tfo","fg","afg","agg","fag","tof","taag","fgo","afgo"],"rp":["of","oft","off","ofa"]},"74":{"input":[2,4,7],"tlp":["sto",10153],"trp":["ogs",3950],"tlw":["sogt",61],"trw":["ost",168],"lp":["sto","gs","sog","sogt","gst","sg","co","gso","sost","stot","tos","soc","toss","gts","sgo","gc"],"rp":["ogs","ost","oc","ogst"]},"75":{"input":[1,2,4,7],"tlp":["sag",7763],"trp":["ogsa",3841],"tlw":["sagt",613],"trw":["ogsaa",2370],"lp":["sag","gsa","gsaa","sagt","ags","sof","sga","asto","sgaa","sofa","sfo","stof","wot","tow","sfag","fos","foss"],"rp":["ogsa","ofas","osof"]},"76":{"input":[3,4,7],"tlp":["ge",73298],"trp":["or",91756],"tlw":["gore",1137],"trw":["ore",158],"lp":["ge","eg","ro","ger","get","ege","gr","tor","gte","rg","gge","tro","eget"],"rp":["or","ore","ort","oge","oget","org","orte"]},"77":{"input":[1,3,4,7],"tlp":["for",43517],"trp":["orf",1741],"tlw":["for",18700],"trw":["ofte",682],"lp":["for","age","aeg","tage","fort","rfo","rfor","gra","rag","gaar","fore","fora","ager","agte","aget","erfo","rof"],"rp":["orf","ofte","ora"]},"78":{"input":[2,3,4,7],"tlp":["gd",7202],"trp":["ord",8900],"tlw":["dog",2587],"trw":["ord",1092],"lp":["gd","gde","stor","god","tod","dog","stod","rod","godt","ges","sor","rso","dor","ged"],"rp":["ord","ors","orst","odt","orde","oder"]},"79":{"input":[1,2,3,4,7],"tlw":["sagde",5844],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",38415],"trw":["nu",6214],"lp":[],"rp":["un","no","on","nu","unn","onn","ou","uu","ono","nun","non","uo"]},"81":{"input":[1,5,7],"tlp":["au",1436],"trp":["ua",639],"tlw":["au",12],"lp":["au","anu","anua","ano","qu","anon"],"rp":["ua","ona","uan","nua","una","nuan","uana","oan"]},"82":{"input":[2,5,7],"tlp":["su",1821],"trp":["jo",11635],"tlw":["son",331],"trw":["jo",3858],"lp":["su","son","sun","sus","sonn"],"rp":["jo","oj","us","ojn","ju","ons","jon","noj","uns","nus","jus","jun","nso","nsu","onsu"]},"83":{"input":[1,2,5,7],"tlp":["aus",420],"trp":["usa",143],"trw":["jow",70],"lp":["aus","anus","sona","ajo","asou","ajon","sua"],"rp":["usa","jow","uans","janu","oja","noja","own","onsa","joa","joan","uja","jona","onas"]},"84":{"input":[3,5,7],"tlp":["eu",269],"trp":["ue",3024],"trw":["nue",32],"lp":["eu","eno","eun","en-"],"rp":["ue","one","unne","uen","onne","oen","onen","une","oy","-n","n-","nue","-ne","yo","oye","u-"]},"85":{"input":[1,3,5,7],"tlp":["eau",73],"trp":["ux",95],"trw":["-naa",21],"lp":["eau","anue","xu","xue","que","aue","eaue","aoy","aoye","aeu"],"rp":["ux","-na","-naa","oxen","unae","-au","uxe","oux"]},"86":{"input":[2,3,5,7],"tlp":["du",10932],"trp":["ud",16891],"tlw":["du",8921],"trw":["ud",5540],"lp":["du","dnu","due"],"rp":["ud","und","unde","ude","oje","uden","uds","ndnu","ojne","ond","udse","use","nod","oden","-j","ndu","ndue"]},"87":{"input":[1,2,3,5,7],"tlw":["aa-e-ja",13],"trw":["-ja",333],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",7356],"trp":["ng",36020],"tlw":["bog",542],"trw":["ung",427],"lp":["bo","tu","gn","gu","bu","bog","tun","ton","tung"],"rp":["ng","nog","ob","ug","ut","ung","ngt","ub","ugt","ont","utt"]},"89":{"input":[1,4,5,7],"tlp":["ang",11845],"trp":["uf",1211],"tlw":["gang",1991],"trw":["nabo",19],"lp":["ang","gan","gang","bag","fu","atu","angt","agn","fun","fang","fug","tau","bang","gna"],"rp":["uf","natu","nga","uft","nfo","ngan"]},"90":{"input":[2,4,5,7],"tlp":["gj",4375],"trp":["ngs",1845],"tlw":["sgu",306],"trw":["just",195],"lp":["gj","gjo","stu","boj","bjo","tus","sgu","toj","stun","goj","gnus"],"rp":["ngs","ust","ojt","ngst","ngso","unst","job","just","jont"]},"91":{"input":[1,2,4,5,7],"tlw":["sang",347],"trw":["jagt",44],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",17731],"trp":["nge",16467],"tlw":["bort",849],"trw":["noget",4194],"lp":["gen","ru","eng","bor","enge","beg","gne","run","gy","egy","bru"],"rp":["nge","noge","ur","ngen","yg","nger","ogen","orn","oren"]},"93":{"input":[1,3,4,5,7],"tlw":["foran",718],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gjorde",1269],"trw":["jeg",26496],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["dagen",378],"trw":["udenfor",361],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",52340],"trw":["lo",488],"lp":[],"rp":["il","li","ll","ol","lo","ill","lli","io","illi","olo","oli","lil","lill","oi","oll","ili","iol","ioli","lio","llio"]},"97":{"input":[1,6,7],"tlp":["al",35773],"trp":["la",34392],"tlw":["al",773],"trw":["laa",896],"lp":["al","all","aal","alli","ali","ala","aall","zo","ail","alo","aala"],"rp":["la","laa","lia","llia","lla","ola","ial","illa","olla"]},"98":{"input":[2,6,7],"tlp":["sl",6546],"trp":["ko",17253],"tlw":["sol",272],"trw":["los",173],"lp":["sl","sko","sol","slo","sio"],"rp":["ko","ls","ok","kl","lk","lik","kol","lsk","olk","ilk","okk","ils","lok","klo","los"]},"99":{"input":[1,2,6,7],"tlp":["skal",4331],"trp":["kal",5704],"tlw":["skal",4257],"trw":["las",152],"lp":["skal","sla","wil","will","saal","sal","als","slaa","alk","wol","woll"],"rp":["kal","kla","las","kola","lska","oka","lass","okal","kalk"]},"100":{"input":[3,6,7],"tlp":["el",52483],"trp":["le",62636],"tlw":["el",13],"trw":["lille",1799],"lp":["el","ell","elle","eli","ele","elli","elo","eol"],"rp":["le","lle","ille","ole","ile","olle","lie","iel","oie","ilie","lel","olel"]},"101":{"input":[1,3,6,7],"tlp":["ale",5962],"trp":["lae",8065],"tlw":["alle",3178],"trw":["lae",133],"lp":["ale","ael","alle","aale","aell","ela","aele","ella","elae","alie","alae","eal"],"rp":["lae","iale","laae","lox","lela","lea","i-a","li-a"]},"102":{"input":[2,3,6,7],"tlp":["els",7813],"trp":["ld",24257],"tlw":["del",897],"trw":["lod",1333],"lp":["els","sel","del","else","deli","eld","dl"],"rp":["ld","lde","lse","old","led","ild","kel","lede","ilde","lid","lod","keli","olde"]},"103":{"input":[1,2,3,6,7],"tlw":["saaledes",615],"trw":["lad",680],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["til",31908],"trp":["ig",74754],"tlw":["til",24015],"trw":["liv",1247],"lp":["til","vo","vil","gi","gl","tig","till"],"rp":["ig","lig","ov","lt","igt","lv","liv","ligt","log","lg","ogi","logi","olog"]},"105":{"input":[1,4,6,7],"tlp":["alt",7650],"trp":["lag",2904],"tlw":["alt",2353],"trw":["lagt",315],"lp":["alt","fl","tal","fol","fal","talt","gla","alti","alv","gav","fla","folg","atio","flo","folt"],"rp":["lag","lav","lof","loft","lf"]},"106":{"input":[2,4,6,7],"tlp":["sig",18329],"trp":["lst",1082],"tlw":["sig",13498],"trw":["livs",105],"lp":["sig","gik","stil","sigt","vilk","stol","gvis","skov","slog","sov","tils","stig","vok","vikl","voks"],"rp":["lst","kov","lts","isto","ilst"]},"107":{"input":[1,2,4,6,7],"tlw":["folk",871],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vor",11354],"trp":["ige",17245],"tlw":["eller",3955],"trw":["over",5694],"lp":["vor","elig","rl","elv","rig","rli","rlig","vel","elt","gle"],"rp":["ige","ove","ler","lige","over","lev","ller","live","let","lte"]},"109":{"input":[1,3,4,6,7],"tlw":["tale",1118],"trw":["lave",376],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["selv",3736],"trw":["lidt",2473],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["aldrig",1646],"trw":["lagde",628],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["hu",19153],"trw":["hun",14886],"lp":[],"rp":["hu","ho","hun","ul","lu","hol","lin","ion","nl","nol","nolo","nli","uli","ull","llin","lun","oh","hoi","hul","uh"]},"113":{"input":[1,5,6,7],"tlp":["anl",545],"trp":["lan",8187],"tlw":["alanzo",70],"trw":["hal",31],"lp":["anl","anli","anal","alin","alan","anla"],"rp":["lan","hal","lau","nal","llan","oha","ohan","nla","olau","laan","lina","hali","onal","nzo"]},"114":{"input":[2,5,6,7],"tlp":["sku",5017],"trp":["ku",16083],"tlw":["suk",140],"trw":["kun",2632],"lp":["sku","skul","slu"],"rp":["ku","kun","kul","uk","nok","hoj","kon","kunn","kno","hus","knol","ukk","hos","kjo","jl","luk","lukk"]},"115":{"input":[1,2,5,6,7],"tlw":["slank",25],"trw":["nikola",431],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eho",625],"trp":["ly",6399],"tlw":["ellen",583],"trw":["hele",1963],"lp":["eho","enl","elen","enli"],"rp":["ly","hel","len","yl","hele","llen","hell","ulle","ule","ione","olen","lene","nel","niel","line","lyn"]},"117":{"input":[1,3,5,6,7],"tlw":["alene",617],"trw":["hallen",39],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["skulde",2683],"trw":["kunde",4358],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["sjael",328],"trw":["land",483],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",19380],"trp":["ing",14039],"tlw":["blot",846],"trw":["lob",434],"lp":["bl","bli","bliv","blo","gh","tilb","ting","bil"],"rp":["ing","hvo","ning","lb","igh","hov","ilb","ligh","nlig","nogl","ling","hvil"]},"121":{"input":[1,4,5,6,7],"tlw":["blaa",246],"trw":["langt",805],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["blik",653],"trw":["hojt",407],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["ansigt",951],"trw":["langs",456],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["blev",4782],"trw":["hvor",4842],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["tilbage",1940],"trw":["laenge",871],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["teknologi",565],"trw":["holdt",1084],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["ganske",1214],"trw":["hvordan",1085],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",3391],"trw":["p",397],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",2081],"trp":["pa",29683],"trw":["paa",14960],"lp":["ap","app","apa"],"rp":["pa","paa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",6812],"trp":["ps",284],"lp":["sp","ssp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",699],"trp":["pas",1008],"trw":["pas",96],"lp":["spa","asp","aspa","aps","spaa"],"rp":["pas","pass","psa","paas"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",1393],"trp":["pe",8158],"trw":["'",36],"lp":["ep","epp","eppe","e'","epe"],"rp":["pe","ppe","'e","pee","pep"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["a'",769],"trp":["pae",506],"tlw":["a'",18],"trw":["pae'",18],"lp":["a'","appe","aep","aepp","aa'","a'e","ae'"],"rp":["pae","pae'"]},"134":{"input":[2,3,8],"tlp":["spe",642],"trp":["ped",539],"lp":["spe","dsp","esp","espe","sep","s'","dp","es'","dep","depe","edp","dpe","edpe","desp"],"rp":["ped","pede","pd","pped","pes","pess"]},"135":{"input":[1,2,3,8],"tlp":["spae",341],"trp":["pda",378],"tlw":["saa'",120],"trw":["passe",116],"lp":["spae","saa'","spad","sa'","aspe","wes'","da'","da'e"],"rp":["pda","pad","paed","pads","peda","pda'","pade","psae"]},"136":{"input":[4,8],"trp":["pt",1019],"trw":["pt",16],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",205],"trp":["pf",375],"lp":["apt","apta","tap","tapp"],"rp":["pf","pta","pfa","pfat","pat","paat","paaf","paf","pafa"]},"138":{"input":[2,4,8],"trp":["pst",120],"lp":[],"rp":["pst"]},"139":{"input":[1,2,4,8],"tlp":["casp",50],"trp":["past",205],"lp":["casp","cap","fsp","afsp"],"rp":["past","psta"]},"140":{"input":[3,4,8],"tlp":["rp",670],"trp":["pr",5960],"tlw":["er'et",22],"trw":["per",374],"lp":["rp","erp","rep","rpt","epr","ept","tep","rpe"],"rp":["pr","per","pper","pet","pre","'r","ppet","pete","'er","pere","ptr","pte"]},"141":{"input":[1,3,4,8],"tlp":["rap",388],"trp":["pra",1908],"tlw":["ta'r",85],"trw":["par",1154],"lp":["rap","rapp","rpa","trap","rpaa","taep","arp","erpa","a'r","ta'","apr","arpt","ta'r"],"rp":["pra","par","prae","part","pare","para","ptra"]},"142":{"input":[2,3,4,8],"tlp":["spr",1019],"trp":["pers",530],"tlw":["spredte",60],"trw":["peder",77],"lp":["spr","derp","sper","spre","spec","step","sept","resp","dspr","rsp","ersp","rspe","cep","ccep","cept"],"rp":["pers","pres","pred","pec","pdr"]},"143":{"input":[1,2,3,4,8],"tlw":["derpaa",245],"trw":["praest",184],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",16277],"trw":["m",548],"lp":[],"rp":["mm","mp","nm","mn","pm","np","pn"]},"145":{"input":[1,5,8],"tlp":["am",21010],"trp":["ma",29964],"tlw":["anm",32],"trw":["man",5955],"lp":["am","amm","amp","anm","anma","ama","aam","aama"],"rp":["ma","man","maa","nma","pan","maan","nap","pma","paan","mann","mma","mman"]},"146":{"input":[2,5,8],"tlp":["sm",5093],"trp":["ms",1840],"tlw":["sms",12],"lp":["sm","sms"],"rp":["ms","nsp","msp","jm","jsp","mps","pj","nsm"]},"147":{"input":[1,2,5,8],"tlp":["sam",5398],"trp":["mas",938],"tlw":["smaa",567],"trw":["maj",88],"lp":["sam","samm","sma","smaa","saam","sman","ams","span","asm","sama","sams","amsp","ansp"],"rp":["mas","maas","mass","maj","jam","mans","jamm"]},"148":{"input":[3,5,8],"tlp":["em",22268],"trp":["me",73368],"tlw":["emne",22],"trw":["men",13807],"lp":["em","emm","emme","emp","empe","eme"],"rp":["me","men","mme","mmen","nem","nnem","menn","pen","mpe","mene","ppen","my","nemm","yp"]},"149":{"input":[1,3,5,8],"tlp":["amme",5549],"trp":["mae",3778],"tlw":["examen",40],"trw":["mae",475],"lp":["amme","ame","ema","aem","ampe","aemp","amen","emae","amae","eman","aemm","emma","aame","enpa"],"rp":["mae","maen","paen","pmae","naep","mane"]},"150":{"input":[2,3,5,8],"tlp":["dem",5798],"trp":["med",23442],"tlw":["dem",5668],"trw":["med",20679],"lp":["dem","sme","dm","sem","semp","spej","ems","smed"],"rp":["med","mens","jem","mede","mes","mmed","jemm","mend","pej","jdsp","mped","medd"]},"151":{"input":[1,2,3,5,8],"tlw":["samme",1733],"trw":["mand",1898],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",86],"trp":["mt",4208],"lp":["tm","bm"],"rp":["mt","mb","pb","ptb"]},"153":{"input":[1,4,5,8],"tlp":["amt",793],"trp":["maat",1392],"trw":["mat",54],"lp":["amt","fam","amta","tam","tamm","amf","amb","fm","afm","fma"],"rp":["maat","mat","mf","matt","mta","mfa","mant","napt","mfan","mfat"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",207],"trp":["mst",1374],"tlw":["cm",207],"lp":["cm","bsm"],"rp":["mst","mc","mtj","mcn"]},"155":{"input":[1,2,4,5,8],"tlw":["samt",115],"trw":["pjat",14],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",5355],"trp":["mer",8012],"tlw":["type",59],"trw":["mere",2523],"lp":["rm","rem","rme","tem","emt","erm","erme","temm","rmen","rmer","temt","remm"],"rp":["mer","mmer","mere","met","mte","mr","mmet","ment"]},"157":{"input":[1,3,4,5,8],"tlw":["frem",1987],"trw":["maatte",1220],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["stemme",569],"trw":["mest",560],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["fremmede",219],"trw":["praesten",235],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",3860],"lp":[],"rp":["pi","ip","ipp","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",492],"trp":["papi",191],"lp":["api"],"rp":["papi","ipa"]},"162":{"input":[2,6,8],"tlp":["spi",1676],"trp":["pis",540],"trw":["pis",22],"lp":["spi","spis","skip","sspi"],"rp":["pis","pisk","isp","kip","kipp","ips","ksp","pik","psi"]},"163":{"input":[1,2,6,8],"trp":["kap",494],"trw":["pak",15],"lp":[],"rp":["kap","kapi","pak","pakk","kapp","paak","ipas"]},"164":{"input":[3,6,8],"tlp":["epi",89],"trp":["ippe",551],"lp":["epi"],"rp":["ippe","i'","i'e","ipe"]},"165":{"input":[1,3,6,8],"tlp":["zep",15],"trp":["paei",16],"lp":["zep","azep","zepi","z'"],"rp":["paei"]},"166":{"input":[2,3,6,8],"tlp":["spid",136],"trp":["pise",257],"tlw":["spise",140],"trw":["piskede",12],"lp":["spid","spek","espi","eksp","si'","si'e"],"rp":["pise","pek","idsp","pid","pids","peki","ispe","ksep","kep","kkep","kspe","kepe","kepi"]},"167":{"input":[1,2,3,6,8],"tlw":["ska'",27],"trw":["pakke",52],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["vip",54],"trp":["pit",385],"lp":["vip","vipp"],"rp":["pit","pti","ipt"]},"169":{"input":[1,4,6,8],"tlp":["apit",301],"trp":["pav",149],"tlw":["fip",43],"lp":["apit","fip"],"rp":["pav","pati","pita","pavi","pfi"]},"170":{"input":[2,4,6,8],"tlp":["spit",84],"trp":["pist",182],"tlw":["spist",45],"lp":["spit","cip","vsp","scip","tisp"],"rp":["pist"]},"171":{"input":[1,2,4,6,8],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",58],"trp":["pri",1094],"tlw":["vipper",20],"trw":["itt'",73],"lp":["rip","repi","ript","trip","ripp","vep","rvep","vepr"],"rp":["pri","pir","pite","peri","pire","priv","i'r","itt'","piri","i'er","prie","ipte"]},"173":{"input":[1,3,4,6,8],"tlw":["appetit",14],"trw":["papir",90],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["spiste",89],"trw":["pris",129],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["skarpt",108],"trw":["praksis",264],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",24076],"trw":["min",4554],"lp":[],"rp":["mi","min","im","imi","him","mh","ph","imm","pin","imp","mni","mnin","himm","hm","phi","mpi","mini","nim","mim","imim"]},"177":{"input":[1,5,6,8],"tlp":["ami",472],"trp":["ham",8353],"trw":["ham",8026],"lp":["ami","aim","amin"],"rp":["ham","iam","ima","hamm","mia","mai","pha","iman","phan","pani","imia","mian","hamp","mha","hima","pina","mani"]},"178":{"input":[2,5,6,8],"tlp":["smi",1181],"trp":["mis",825],"trw":["km",70],"lp":["smi","sim","simp","spin","ssim","simi"],"rp":["mis","mk","imis","msi","miss","km","misk","ism","phis","pink","kim","mspi","mism","msk"]},"179":{"input":[1,2,5,6,8],"tlw":["skam",117],"trw":["knap",168],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emni",182],"trp":["ime",1615],"trw":["mine",1330],"lp":["emni","eph","empi","ephi"],"rp":["ime","mine","mhe","meni","imme","imen","hem","hemm","impe","menh","phe","mhy","hyp","hypp","yppi","meph"]},"181":{"input":[1,3,5,6,8],"trw":["ha'",99],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["spidsen",62],"trw":["hjem",1079],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["eksamen",41],"trw":["maske",618],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1144],"trp":["mit",1681],"trw":["mit",1681],"lp":["tim","timi","tmi","tmin","vim","vimm","vm","timm"],"rp":["mit","mti","ptim","imt","pib","mv","ntim","pint","itim","mvi","mvit","nvip"]},"185":{"input":[1,4,5,6,8],"tlw":["timian",19],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["capitain",20],"trw":["knapt",41],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["timer",267],"trw":["hvem",785],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["varme",252],"trw":["marie",351],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["derhjemme",61],"trw":["mennesker",759],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["danmark",309],"trw":["maerke",366],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",11049],"trw":["op",5000],"lp":[],"rp":["op","po","opp","ppo","pop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",13],"trp":["opa",178],"lp":["appo","apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",1107],"trp":["pos",203],"lp":["spo","sop"],"rp":["pos","ops","osp","pso","opso"]},"195":{"input":[1,2,7,8],"trp":["opsa",25],"lp":[],"rp":["opsa","opas"]},"196":{"input":[3,7,8],"trp":["oppe",1153],"trw":["oppe",424],"lp":[],"rp":["oppe","o'","p-","poe","-p","o'e","p-p","ope"]},"197":{"input":[1,3,7,8],"trp":["opae",16],"lp":[],"rp":["opae"]},"198":{"input":[2,3,7,8],"tlp":["dsop",23],"trp":["opd",408],"trw":["pose",26],"lp":["dsop"],"rp":["opd","pose","poes"]},"199":{"input":[1,2,3,7,8],"trw":["opad",89],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1156],"trp":["opt",558],"tlw":["top",127],"trw":["optog",47],"lp":["top","topp","gp","gpo"],"rp":["opt","pg","opg","pog","pto","opto","ptog","pot","pott"]},"201":{"input":[1,4,7,8],"tlp":["gpa",17],"trp":["opf",375],"lp":["gpa"],"rp":["opf","pga","opga","opta","ptag","opfa","pfo","opfo","pag","pagt","paga"]},"202":{"input":[2,4,7,8],"tlp":["stop",344],"trp":["opst",120],"tlw":["spog",51],"trw":["post",48],"lp":["stop","spog","gsp","spot","sopg","cop"],"rp":["opst","post","psto","psog"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",646],"trp":["pro",2431],"tlw":["toppe",42],"trw":["port",82],"lp":["rop","etop","ropp","gep","erop","epro"],"rp":["pro","por","porg","port","opr","peg","pege","prog","orp","o'r","optr","pore","opro","opre"]},"205":{"input":[1,3,4,7,8],"tlw":["fo'r",122],"trw":["proft",123],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["spor",199],"trw":["pegede",119],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["pastor",153],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",50261],"trw":["om",12169],"lp":[],"rp":["om","mo","omm","mu","um","pu","mun","up","umm","pun","mon","ump","omp","opm","umu","upp","pou","mum","mpu","ompu"]},"209":{"input":[1,5,7,8],"tlp":["amo",42],"trp":["opma",262],"trw":["opnaa",32],"lp":["amo","aamo","anmo","apon"],"rp":["opma","oma","uma","manu","oman","pau","opna","uman","umaa","omma","upa","upaa"]},"210":{"input":[2,5,7,8],"tlp":["som",21760],"trp":["oms",1497],"tlw":["som",18932],"trw":["moj",60],"lp":["som","spu","smu","somm","spun","smo","sum","smus","summ"],"rp":["oms","mus","nsom","jom","mos","moj","pus","ums","mons","usm","nspo"]},"211":{"input":[1,2,5,7,8],"tlw":["saasom",34],"trw":["mansson",22],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["en-m",111],"trp":["omme",6327],"trw":["-men",116],"lp":["en-m","emo","epu"],"rp":["omme","umme","-m","uppe","ume","umen","-me","-men","n-m","umpe","omne","ome","mue","pone","u-m","-mo","u-mo"]},"213":{"input":[1,3,5,7,8],"trw":["-man",13],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",83],"trw":["mod",3477],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["somand",13],"trw":["pause",61],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",486],"trp":["omt",1489],"tlw":["tom",108],"trw":["omt",46],"lp":["tom","tum","tomm","tomt","gm","gmo"],"rp":["omt","mog","mg","omg","pub","munt","put","mbo","mput","mob","omb","ombo","umt","mut"]},"217":{"input":[1,4,5,7,8],"tlw":["afmagt",13],"trw":["magt",215],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["stum",33],"trw":["pust",33],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["smag",71],"trw":["magnus",156],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["gennem",1130],"trw":["meget",3368],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["form",246],"trw":["mange",1787],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["spurgte",1168],"trw":["mogens",519],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["sprang",316],"trw":["professoren",159],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",5364],"trw":["pol",19],"lp":[],"rp":["pl","pil","lp","pill","pol","opl","lip","poli","lipp","pli","poll","plo","oplo","ilp","opi","pio","poi","lop","lpi","ipl"]},"225":{"input":[1,6,7,8],"tlp":["alp",194],"trp":["pla",2683],"lp":["alp","alop","alpi"],"rp":["pla","lap","lapp","pal","opla","lpa","ilpa","pall","pala"]},"226":{"input":[2,6,7,8],"tlp":["spil",933],"trp":["klip",214],"tlw":["spil",117],"trw":["kop",75],"lp":["spil","slip","spl","skop","sopi","spio"],"rp":["klip","kop","kopp","ospi","posi","pok","pokk","lips","plos","plik","opsi","lsp","lspo","kopi"]},"227":{"input":[1,2,6,7,8],"tlw":["slap",211],"trw":["klap",35],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",717],"trp":["ple",1132],"trw":["pille",26],"lp":["elp","elpe","epl","eple","epli"],"rp":["ple","lpe","pel","ople","plei","li'","lpel","pelo","-pl","p-pl","lpep","pepl","li'e","pole","p-i"]},"229":{"input":[1,3,6,7,8],"trw":["la'",18],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spillede",190],"trw":["poesi",41],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["slappe",19],"trw":["plads",674],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tilp",30],"trp":["pig",945],"trw":["pligt",89],"lp":["tilp"],"rp":["pig","opti","plig","pgi","opgi","pgiv","ppig","pov","povl","plov","plot","pigt","pitl"]},"233":{"input":[1,4,6,7,8],"tlw":["galop",20],"trw":["opgav",49],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["politik",54],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["tilpas",30],"trw":["plastisk",14],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["pige",386],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",92],"trw":["opgave",78],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["spiller",111],"trw":["krop",196],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["vokseplads",34],"trw":["kapitel",248],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",3277],"trw":["poul",218],"lp":[],"rp":["ml","mil","lm","lom","mul","imo","muli","plu","olm","holm","omh","lmi","lmin","mili","mli","iml","himl","oph","minu","lim"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alpina",16],"trw":["plan",125],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["smil",414],"trw":["kom",3720],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["william",837],"trw":["hjalp",126],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mellem",1362],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["emmanuelo",70],"trw":["lampen",77],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["smilede",325],"trw":["komme",1447],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["samlede",209],"trw":["hjaelp",283],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glimt",79],"trw":["mig",8747],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",34],"trw":["pollnitz",127],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["smukt",214],"trw":["punkt",116],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["samling",60],"trw":["langsomt",369],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["glemt",197],"trw":["norholm",521],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["gamle",1533],"trw":["planter",359],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["blomster",490],"trw":["kommer",1590],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["samtidig",195],"trw":["plantes",218],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",70938],"tlw":["a",1885],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",6312],"tlw":["s",729],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",51462],"tlw":["saa",14038],"lp":["sa","saa","as","ass","wa","aas","ssa","sas","ww","aw","saas","www","assa","ssaa","ws"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",2647],"tlw":["e",88],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ae",65201],"tlw":["ae",1518],"lp":["ae","aae","ex","ea","ax","aee","xe","xa","exa","exe","axe","aex","eae"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",283077],"tlw":["de",23660],"lp":["de","ed","es","se","ede","ds","des","sse","dd","dse","ess","dde","eds","edes","ese","sed","ded","see","dede","sede"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",24996],"tlw":["da",8071],"lp":["ad","da","ade","aes","aad","sae","aed","ada","sad","aede","aade","saad","aada","ads","asse","aese","dae","dda","esa","we"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",16147],"tlw":["t",62],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",52505],"tlw":["at",39486],"lp":["at","ta","af","fa","ft","att","taa","faa","aft","aat","ff","aatt","fat","fatt","aff","tat","tf","ata","fta","afta"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",66160],"tlw":["c",179],"lp":["st","ts","sc","sst","ct","cc","tc","cs","cst","tst","tsc","tts","sts"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",9134],"tlw":["fast",485],"lp":["sta","ast","sat","staa","ca","satt","tsa","fas","fast","fs","afs","ac","asta","sf","tas","tsaa","fst","afst","stat","tsat"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",200106],"tlw":["er",24396],"lp":["er","et","te","re","ere","rt","ter","tr","tte","ret","ett","ette","rte","ert","rr","tet","tter","rer","rre","eret"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",71256],"tlw":["fra",7354],"lp":["ar","ra","aer","fr","aar","aere","fte","fra","ef","tra","rae","are","fter","tae","eft","atte","efte","aet","fre","rf"],"rp":[]},"14":{"input":[2,3,4],"tlp":["det",50507],"tlw":["det",40064],"lp":["det","der","dt","ste","rd","dr","rs","est","dre","red","res","este","rde","ted","dere","rst","dte","rede","dst","str"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["aest",3267],"tlw":["satte",874],"lp":["aest","stra","stae","ader","ard","aerd","ared","rsta","saet","rda","derf","aard","fes","tad","stad","raad","dra","fred","fess","raed"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",12763],"trw":["n",53],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",107331],"trp":["na",18738],"tlw":["an",271],"trw":["naa",705],"lp":["an","aan","ann","anna","ana"],"rp":["na","naa","nan","nna","naan"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",2823],"trp":["ns",25305],"trw":["j",68],"lp":["sn","sj"],"rp":["ns","jn","js","nj","nss","jj"]},"19":{"input":[1,2,5],"tlp":["ans",12498],"trp":["ja",8744],"tlw":["sans",47],"trw":["ja",3506],"lp":["ans","san","sna","sja","aj","ajn","ssan","ansa","aaj","sans","snaa","wan","wn","asn","aasn"],"rp":["ja","nsa","jan","nas","nsaa"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",215951],"trp":["ne",54829],"tlw":["en",31130],"trw":["nye",787],"lp":["en","ene","enn","enne","enen","een","ey","eny"],"rp":["ne","nne","yn","nen","ny","ye","nene","yne","nye","yen","nnen","nee"]},"21":{"input":[1,3,5],"tlp":["aen",11318],"trp":["nae",4921],"tlw":["anne",45],"trw":["nae",24],"lp":["aen","anne","ane","aene","aane","aaen","anen","ay","ena","any","aany","ean","eann","aenn","xen"],"rp":["nae","naae","ya","yan","naee"]},"22":{"input":[2,3,5],"tlp":["den",50813],"trp":["nd",90348],"tlw":["den",24655],"trw":["ned",3104],"lp":["den","end","ende","ens","ej","sen","sy","dn","syn"],"rp":["nd","nde","je","nden","ned","ys","ndes","jen","nes","yd","nds"]},"23":{"input":[1,2,3,5],"tlp":["and",24671],"trp":["jae",3560],"tlw":["anden",1960],"trw":["naade",237],"lp":["and","ande","dan","aend","aand","adan","ands","aden","dann","sand","anse","sjae","dans","aned"],"rp":["jae","naes","nand","nda","naad","ndda"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["tn",1655],"trp":["nt",13043],"tlw":["b",55],"lp":["tn","bt","bn","bb","tb"],"rp":["nt","nb","ntn"]},"25":{"input":[1,4,5],"tlp":["ba",11045],"trp":["nat",1917],"tlw":["tabt",109],"trw":["nat",438],"lp":["ba","ab","tan","ant","aab","fan","ban","baa","abt","abn","aabn","aabt","anta","tab","tabt","fb"],"rp":["nat","nf","nta","natt"]},"26":{"input":[2,4,5],"tlp":["tj",1039],"trp":["nst",1524],"lp":["tj","bj","sb","stj","stn","bs","tsj","sbj"],"rp":["nst","nc","jst","jt","nsb","nstn","ncs","ncst","nct","jnb","nbj","jnbj"]},"27":{"input":[1,2,4,5],"tlp":["stan",1647],"trp":["nsta",463],"tlw":["satan",75],"lp":["stan","fj","anc","bac","taj","abs","tja","stja","tajn","sant","bja","anst","asb","asbj","bas","tans"],"rp":["nsta","ntas","nsat","jac"]},"28":{"input":[3,4,5],"tlp":["be",22658],"trp":["nte",7013],"tlw":["byen",409],"trw":["nyt",305],"lp":["be","rn","ren","ten","br","rne","ern","erne","ent","ry","ty","eb","rb","ber","eren","bet","ente"],"rp":["nte","ner","net"]},"29":{"input":[1,3,4,5],"tlp":["ran",3013],"trp":["naar",3178],"tlw":["bare",1165],"trw":["naar",3077],"lp":["ran","taen","bar","abe","ante","ften","arb","arbe","bra","raen","bare","fy","arn","aeb","bae","barn"],"rp":["naar","nar","naer","nart"]},"30":{"input":[2,3,4,5],"tlp":["sten",3731],"trp":["nder",8663],"tlw":["syntes",800],"trw":["jer",433],"lp":["sten","endt","bes","bed","rden","rej","bej","rejs","rbej","bejd","best","dern"],"rp":["nder","ndt","ndr","ndre","ndet","jer","ndte","yst"]},"31":{"input":[1,2,3,4,5],"tlw":["andre",1970],"trw":["naesten",941],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",246],"trw":["i",43365],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",419],"trp":["ia",2518],"lp":["ai","za","zi","az"],"rp":["ia","iz"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",39075],"trp":["ik",32997],"tlw":["si",156],"trw":["is",201],"lp":["si","sk","ski","sik","ssi","sikk","sis","skik"],"rp":["ik","kk","ikk","is","ki","ks","isk","iss","kik","ksi","ksis","kikk"]},"35":{"input":[1,2,6],"tlp":["ska",8476],"trp":["ka",23048],"tlw":["zak",168],"trw":["ka",248],"lp":["ska","ak","akk","ask","wi","aks","aask","aksi","asi","zak","aka","skaa","assi","aak"],"rp":["ka","kas","kaa","isa","ika","kass"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",2228],"trp":["ie",6094],"tlw":["ei",448],"lp":["ei","eie"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",48],"trp":["ix",31],"trw":["ix",31],"lp":["ze","xi","axi","aie","eiz","aei","aze"],"rp":["ix","iae"]},"38":{"input":[2,3,6],"tlp":["di",14167],"trp":["ke",57169],"tlw":["disse",1266],"trw":["ikke",20180],"lp":["di","ske","ek","sid","side","esk","ekk","ekke","eske"],"rp":["ke","kke","id","ikke","ide","ked","kede","ids","ise","kked","iske"]},"39":{"input":[1,2,3,6],"tlp":["aek",2798],"trp":["kae",1766],"tlw":["skade",99],"trw":["ida",70],"lp":["aek","akke","aekk","aske","skae","adi","dska","daek","adsk","eka","skad","aesk","eska","aeks"],"rp":["kae","idda","isae","ida","kad","kade"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",51178],"trp":["iv",10524],"tlw":["vi",7341],"trw":["it",23],"lp":["ti","vi","vt","tv","tvi","tiv","viv","tti","tviv","tit","vit","vv","vitt","tivt"],"rp":["iv","it","iti","itt","itti","ivt"]},"41":{"input":[1,4,6],"tlp":["va",50676],"trp":["if",1405],"tlw":["tav",135],"lp":["va","av","fi","ati","tav","avi","vaa","fti","tia","vf","avt","atti","tva","afti","tz"],"rp":["if","ift","iva","ita","itz"]},"42":{"input":[2,4,6],"tlp":["vis",7341],"trp":["ist",4703],"tlw":["sit",2281],"lp":["vis","sti","sv","sit","vist","vs","tis","tisk","ci","svi","visk","vik","tik"],"rp":["ist","kt","kv","kvi","isti","ic","kti"]},"43":{"input":[1,2,4,6],"tlp":["sva",3328],"trp":["kast",607],"tlw":["fik",1865],"trw":["kat",43],"lp":["sva","fik","akt","tak","avs","stak","takk","akti","tavs","fak","stia","fakt","fis","fisk","sav"],"rp":["kast","kat","kaf","kaff","kva"]},"44":{"input":[3,4,6],"tlp":["ve",58500],"trp":["ive",7238],"tlw":["rev",144],"trw":["iver",59],"lp":["ve","ri","ver","ev","eve","vet","eri","rv","rti","rev","vir","evet","rve","rie","vr"],"rp":["ive","ir","iver","ivet","ier"]},"45":{"input":[1,3,4,6],"tlp":["var",27429],"trp":["ifte",524],"tlw":["var",23713],"trw":["ivar",148],"lp":["var","vae","vaer","ave","vare","aev","eva","ari","fri","evae","rav","aeve","arv","arve","avet","farv","aver","verf","arie"],"rp":["ifte"]},"46":{"input":[2,3,4,6],"tlp":["ved",13008],"trp":["kr",7446],"tlw":["ved",9023],"trw":["idet",571],"lp":["ved","vd","vde","rk","tid","rke","vid","erk","dri","skr","vede","vide","erke"],"rp":["kr","ker","idt","ket","kri","idst","kker"]},"47":{"input":[1,2,3,4,6],"tlw":["svarede",1115],"trw":["kastede",275],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",55966],"trw":["h",182],"lp":[],"rp":["in","ni","nin","hi","nh","hin","inn","ih","nni","ini","hn","nnin","hinn","hini","hii","iin","hiin"]},"49":{"input":[1,5,6],"tlp":["ani",433],"trp":["ha",84475],"tlw":["zina",155],"trw":["han",28303],"lp":["ani","ah","anz","anni","zin","zina","ania"],"rp":["ha","han","haa","ina","haan","hina","inan","nha","ian","hann","nia","nz","nina"]},"50":{"input":[2,5,6],"tlp":["sin",8509],"trp":["nk",7187],"tlw":["sin",5448],"trw":["nik",30],"lp":["sin","skj","sni","sh","skin","snin"],"rp":["nk","hj","kn","nsk","kj","nsi","nik","kin","his","kni","ink","knin","nikk","nis"]},"51":{"input":[1,2,5,6],"tlp":["ansk",2386],"trp":["kan",8041],"tlw":["sank",149],"trw":["kan",7261],"lp":["ansk","ank","ansi","snak","skja","sha","sank","win"],"rp":["kan","hans","hja","kja","kna","hw","nak","nakk","nska","has","hwa","jak"]},"52":{"input":[3,5,6],"tlp":["enh",1378],"trp":["he",30604],"trw":["hen",2065],"lp":["enh","eh","eni","enin","enhe","ein"],"rp":["he","hen","ine","ien","hy","nie","nei","nhe","inne","inen","henn","ihe","hei","hein"]},"53":{"input":[1,3,5,6],"tlp":["enha",462],"trp":["hae",2302],"tlw":["annie",37],"trw":["hanne",108],"lp":["enha","eha","anie","ehan","einz","zen","enia","ahy","ehaa"],"rp":["hae","haen","nhae","hea","hena","hane","iane","haie"]},"54":{"input":[2,3,5,6],"tlp":["enk",3299],"trp":["ind",17207],"tlw":["sine",1896],"trw":["ind",4197],"lp":["enk","din","sky","ekn","enke","sine"],"rp":["ind","inde","hend","hed","ken","nke","iden","yk","nske","ky","hje","ykk","ykke","kend"]},"55":{"input":[1,2,3,5,6],"tlw":["danske",357],"trw":["hinanden",807],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["vin",3191],"trp":["hv",22271],"tlw":["thi",704],"trw":["int",55],"lp":["vin","vn","bi","th","tin","tni","tnin","thi","bin","vint"],"rp":["hv","hvi","int","ib","nv","nti","nhv","ntin","nit","niv"]},"57":{"input":[1,4,5,6],"tlp":["van",3040],"trp":["hav",16151],"tlw":["tania",150],"trw":["navn",505],"lp":["van","fin","avn","anv","tian","tha","avni","tani","vant","bav"],"rp":["hav","hva","nav","navn","havn","haf","haft","haab","nhav","hat"]},"58":{"input":[2,4,5,6],"tlp":["ch",2279],"trp":["hvis",2968],"tlw":["skib",43],"trw":["hvis",2525],"lp":["ch","svin","stin","visn","sch","sth","skib","vsh","chs","vink"],"rp":["hvis","nkt","kvin","hist","ich","kib","inst","istn","nist","nsv"]},"59":{"input":[1,2,4,5,6],"tlw":["skabt",80],"trw":["kant",116],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",8299],"trp":["her",6089],"tlw":["ven",504],"trw":["her",3645],"lp":["ven","rin","rh","bev","vent","vne","the","erh","even","beh","evn","rbi","erin","etni"],"rp":["her","hve","hver","inte","hr","herr"]},"61":{"input":[1,3,4,5,6],"tlw":["fine",167],"trw":["har",10914],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["vendte",689],"trw":["hvide",710],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["finde",734],"trw":["havde",11721],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",54],"trw":["o",656],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",60],"trp":["oa",43],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",30717],"trp":["os",7769],"tlw":["so",193],"trw":["os",2349],"lp":["so","sos","sso"],"rp":["os","oss","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",536],"trp":["ow",474],"tlw":["wos",58],"lp":["wo","aso","sow","wos","aaso","saso","aos"],"rp":["ow","osa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",700],"trp":["oe",2132],"trw":["-",3902],"lp":["eo","e-"],"rp":["oe","-o","-e","-e-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",13],"trp":["ox",139],"trw":["-aa",53],"lp":["a-","aa-","a-e","aa-e","a-e-"],"rp":["ox","oxe","-a","-aa"]},"70":{"input":[2,3,7],"tlp":["do",7429],"trp":["od",24132],"tlw":["dod",445],"trw":["ode",82],"lp":["do","eso","dod","dode","soe","esso","sod","dso","sode"],"rp":["od","ode","ods","oed","ose","oede","osse","odd","-d","odde","-de"]},"71":{"input":[1,2,3,7],"tlp":["ado",19],"trp":["odsa",172],"trw":["-saa",39],"lp":["ado"],"rp":["odsa","owe","-sa","-saa","odda","oda"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["gt",20766],"trp":["og",89433],"tlw":["to",2228],"trw":["og",64213],"lp":["gt","to","go","gg","tog","tot","tott","gtt","tto","gtto","ttog","tg","tgo","ggo"],"rp":["og","ot","ogt","ott","oot","oto"]},"73":{"input":[1,4,7],"tlp":["fo",49386],"trp":["of",4123],"tlw":["gaa",1197],"trw":["of",77],"lp":["fo","ag","ga","gaa","agt","tag","aag","tfo","fg","afg","agg","fag","tof","taag","fgo","afgo"],"rp":["of","oft","off","ofa"]},"74":{"input":[2,4,7],"tlp":["sto",10153],"trp":["ogs",3950],"tlw":["sogt",61],"trw":["ost",168],"lp":["sto","gs","sog","sogt","gst","sg","co","gso","sost","stot","tos","soc","toss","gts","sgo","gc"],"rp":["ogs","ost","oc","ogst"]},"75":{"input":[1,2,4,7],"tlp":["sag",7763],"trp":["ogsa",3841],"tlw":["sagt",613],"trw":["ogsaa",2370],"lp":["sag","gsa","gsaa","sagt","ags","sof","sga","asto","sgaa","sofa","sfo","stof","wot","tow","sfag","fos","foss"],"rp":["ogsa","ofas","osof"]},"76":{"input":[3,4,7],"tlp":["ge",73298],"trp":["or",91756],"tlw":["gore",1137],"trw":["ore",158],"lp":["ge","eg","ro","ger","get","ege","gr","tor","gte","rg","gge","tro","eget"],"rp":["or","ore","ort","oge","oget","org","orte"]},"77":{"input":[1,3,4,7],"tlp":["for",43517],"trp":["orf",1741],"tlw":["for",18700],"trw":["ofte",682],"lp":["for","age","aeg","tage","fort","rfo","rfor","gra","rag","gaar","fore","fora","ager","agte","aget","erfo","rof"],"rp":["orf","ofte","ora"]},"78":{"input":[2,3,4,7],"tlp":["gd",7202],"trp":["ord",8900],"tlw":["dog",2587],"trw":["ord",1092],"lp":["gd","gde","stor","god","tod","dog","stod","rod","godt","ges","sor","rso","dor","ged"],"rp":["ord","ors","orst","odt","orde","oder"]},"79":{"input":[1,2,3,4,7],"tlw":["sagde",5844],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",38415],"trw":["nu",6214],"lp":[],"rp":["un","no","on","nu","unn","onn","ou","uu","ono","nun","non","uo"]},"81":{"input":[1,5,7],"tlp":["au",1436],"trp":["ua",639],"tlw":["au",12],"lp":["au","anu","anua","ano","qu","anon"],"rp":["ua","ona","uan","nua","una","nuan","uana","oan"]},"82":{"input":[2,5,7],"tlp":["su",1821],"trp":["jo",11635],"tlw":["son",331],"trw":["jo",3858],"lp":["su","son","sun","sus","sonn"],"rp":["jo","oj","us","ojn","ju","ons","jon","noj","uns","nus","jus","jun","nso","nsu","onsu"]},"83":{"input":[1,2,5,7],"tlp":["aus",420],"trp":["usa",143],"trw":["jow",70],"lp":["aus","anus","sona","ajo","asou","ajon","sua"],"rp":["usa","jow","uans","janu","oja","noja","own","onsa","joa","joan","uja","jona","onas"]},"84":{"input":[3,5,7],"tlp":["eu",269],"trp":["ue",3024],"trw":["nue",32],"lp":["eu","eno","eun","en-"],"rp":["ue","one","unne","uen","onne","oen","onen","une","oy","-n","n-","nue","-ne","yo","oye","u-"]},"85":{"input":[1,3,5,7],"tlp":["eau",73],"trp":["ux",95],"trw":["-naa",21],"lp":["eau","anue","xu","xue","que","aue","eaue","aoy","aoye","aeu"],"rp":["ux","-na","-naa","oxen","unae","-au","uxe","oux"]},"86":{"input":[2,3,5,7],"tlp":["du",10932],"trp":["ud",16891],"tlw":["du",8921],"trw":["ud",5540],"lp":["du","dnu","due"],"rp":["ud","und","unde","ude","oje","uden","uds","ndnu","ojne","ond","udse","use","nod","oden","-j","ndu","ndue"]},"87":{"input":[1,2,3,5,7],"tlw":["aa-e-ja",13],"trw":["-ja",333],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",7356],"trp":["ng",36020],"tlw":["bog",542],"trw":["ung",427],"lp":["bo","tu","gn","gu","bu","bog","tun","ton","tung"],"rp":["ng","nog","ob","ug","ut","ung","ngt","ub","ugt","ont","utt"]},"89":{"input":[1,4,5,7],"tlp":["ang",11845],"trp":["uf",1211],"tlw":["gang",1991],"trw":["nabo",19],"lp":["ang","gan","gang","bag","fu","atu","angt","agn","fun","fang","fug","tau","bang","gna"],"rp":["uf","natu","nga","uft","nfo","ngan"]},"90":{"input":[2,4,5,7],"tlp":["gj",4375],"trp":["ngs",1845],"tlw":["sgu",306],"trw":["just",195],"lp":["gj","gjo","stu","boj","bjo","tus","sgu","toj","stun","goj","gnus"],"rp":["ngs","ust","ojt","ngst","ngso","unst","job","just","jont"]},"91":{"input":[1,2,4,5,7],"tlw":["sang",347],"trw":["jagt",44],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",17731],"trp":["nge",16467],"tlw":["bort",849],"trw":["noget",4194],"lp":["gen","ru","eng","bor","enge","beg","gne","run","gy","egy","bru"],"rp":["nge","noge","ur","ngen","yg","nger","ogen","orn","oren"]},"93":{"input":[1,3,4,5,7],"tlw":["foran",718],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gjorde",1269],"trw":["jeg",26496],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["dagen",378],"trw":["udenfor",361],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",52340],"trw":["lo",488],"lp":[],"rp":["il","li","ll","ol","lo","ill","lli","io","illi","olo","oli","lil","lill","oi","oll","ili","iol","ioli","lio","llio"]},"97":{"input":[1,6,7],"tlp":["al",35773],"trp":["la",34392],"tlw":["al",773],"trw":["laa",896],"lp":["al","all","aal","alli","ali","ala","aall","zo","ail","alo","aala"],"rp":["la","laa","lia","llia","lla","ola","ial","illa","olla"]},"98":{"input":[2,6,7],"tlp":["sl",6546],"trp":["ko",17253],"tlw":["sol",272],"trw":["los",173],"lp":["sl","sko","sol","slo","sio"],"rp":["ko","ls","ok","kl","lk","lik","kol","lsk","olk","ilk","okk","ils","lok","klo","los"]},"99":{"input":[1,2,6,7],"tlp":["skal",4331],"trp":["kal",5704],"tlw":["skal",4257],"trw":["las",152],"lp":["skal","sla","wil","will","saal","sal","als","slaa","alk","wol","woll"],"rp":["kal","kla","las","kola","lska","oka","lass","okal","kalk"]},"100":{"input":[3,6,7],"tlp":["el",52483],"trp":["le",62636],"tlw":["el",13],"trw":["lille",1799],"lp":["el","ell","elle","eli","ele","elli","elo","eol"],"rp":["le","lle","ille","ole","ile","olle","lie","iel","oie","ilie","lel","olel"]},"101":{"input":[1,3,6,7],"tlp":["ale",5962],"trp":["lae",8065],"tlw":["alle",3178],"trw":["lae",133],"lp":["ale","ael","alle","aale","aell","ela","aele","ella","elae","alie","alae","eal"],"rp":["lae","iale","laae","lox","lela","lea","i-a","li-a"]},"102":{"input":[2,3,6,7],"tlp":["els",7813],"trp":["ld",24257],"tlw":["del",897],"trw":["lod",1333],"lp":["els","sel","del","else","deli","eld","dl"],"rp":["ld","lde","lse","old","led","ild","kel","lede","ilde","lid","lod","keli","olde"]},"103":{"input":[1,2,3,6,7],"tlw":["saaledes",615],"trw":["lad",680],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["til",31908],"trp":["ig",74754],"tlw":["til",24015],"trw":["liv",1247],"lp":["til","vo","vil","gi","gl","tig","till"],"rp":["ig","lig","ov","lt","igt","lv","liv","ligt","log","lg","ogi","logi","olog"]},"105":{"input":[1,4,6,7],"tlp":["alt",7650],"trp":["lag",2904],"tlw":["alt",2353],"trw":["lagt",315],"lp":["alt","fl","tal","fol","fal","talt","gla","alti","alv","gav","fla","folg","atio","flo","folt"],"rp":["lag","lav","lof","loft","lf"]},"106":{"input":[2,4,6,7],"tlp":["sig",18329],"trp":["lst",1082],"tlw":["sig",13498],"trw":["livs",105],"lp":["sig","gik","stil","sigt","vilk","stol","gvis","skov","slog","sov","tils","stig","vok","vikl","voks"],"rp":["lst","kov","lts","isto","ilst"]},"107":{"input":[1,2,4,6,7],"tlw":["folk",871],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vor",11354],"trp":["ige",17245],"tlw":["eller",3955],"trw":["over",5694],"lp":["vor","elig","rl","elv","rig","rli","rlig","vel","elt","gle"],"rp":["ige","ove","ler","lige","over","lev","ller","live","let","lte"]},"109":{"input":[1,3,4,6,7],"tlw":["tale",1118],"trw":["lave",376],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["selv",3736],"trw":["lidt",2473],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["aldrig",1646],"trw":["lagde",628],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["hu",19153],"trw":["hun",14886],"lp":[],"rp":["hu","ho","hun","ul","lu","hol","lin","ion","nl","nol","nolo","nli","uli","ull","llin","lun","oh","hoi","hul","uh"]},"113":{"input":[1,5,6,7],"tlp":["anl",545],"trp":["lan",8187],"tlw":["alanzo",70],"trw":["hal",31],"lp":["anl","anli","anal","alin","alan","anla"],"rp":["lan","hal","lau","nal","llan","oha","ohan","nla","olau","laan","lina","hali","onal","nzo"]},"114":{"input":[2,5,6,7],"tlp":["sku",5017],"trp":["ku",16083],"tlw":["suk",140],"trw":["kun",2632],"lp":["sku","skul","slu"],"rp":["ku","kun","kul","uk","nok","hoj","kon","kunn","kno","hus","knol","ukk","hos","kjo","jl","luk","lukk"]},"115":{"input":[1,2,5,6,7],"tlw":["slank",25],"trw":["nikola",431],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eho",625],"trp":["ly",6399],"tlw":["ellen",583],"trw":["hele",1963],"lp":["eho","enl","elen","enli"],"rp":["ly","hel","len","yl","hele","llen","hell","ulle","ule","ione","olen","lene","nel","niel","line","lyn"]},"117":{"input":[1,3,5,6,7],"tlw":["alene",617],"trw":["hallen",39],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["skulde",2683],"trw":["kunde",4358],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["sjael",328],"trw":["land",483],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",19380],"trp":["ing",14039],"tlw":["blot",846],"trw":["lob",434],"lp":["bl","bli","bliv","blo","gh","tilb","ting","bil"],"rp":["ing","hvo","ning","lb","igh","hov","ilb","ligh","nlig","nogl","ling","hvil"]},"121":{"input":[1,4,5,6,7],"tlw":["blaa",246],"trw":["langt",805],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["blik",653],"trw":["hojt",407],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["ansigt",951],"trw":["langs",456],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["blev",4782],"trw":["hvor",4842],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["tilbage",1940],"trw":["laenge",871],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["teknologi",565],"trw":["holdt",1084],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["ganske",1214],"trw":["hvordan",1085],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",3391],"trw":["p",397],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",2081],"trp":["pa",29683],"trw":["paa",14960],"lp":["ap","app","apa"],"rp":["pa","paa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",6812],"trp":["ps",284],"lp":["sp","ssp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",699],"trp":["pas",1008],"trw":["pas",96],"lp":["spa","asp","aspa","aps","spaa"],"rp":["pas","pass","psa","paas"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",1393],"trp":["pe",8158],"trw":["'",36],"lp":["ep","epp","eppe","e'","epe"],"rp":["pe","ppe","'e","pee","pep"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["a'",769],"trp":["pae",506],"tlw":["a'",18],"trw":["pae'",18],"lp":["a'","appe","aep","aepp","aa'","a'e","ae'"],"rp":["pae","pae'"]},"134":{"input":[2,3,8],"tlp":["spe",642],"trp":["ped",539],"lp":["spe","dsp","esp","espe","sep","s'","dp","es'","dep","depe","edp","dpe","edpe","desp"],"rp":["ped","pede","pd","pped","pes","pess"]},"135":{"input":[1,2,3,8],"tlp":["spae",341],"trp":["pda",378],"tlw":["saa'",120],"trw":["passe",116],"lp":["spae","saa'","spad","sa'","aspe","wes'","da'","da'e"],"rp":["pda","pad","paed","pads","peda","pda'","pade","psae"]},"136":{"input":[4,8],"trp":["pt",1019],"trw":["pt",16],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",205],"trp":["pf",375],"lp":["apt","apta","tap","tapp"],"rp":["pf","pta","pfa","pfat","pat","paat","paaf","paf","pafa"]},"138":{"input":[2,4,8],"trp":["pst",120],"lp":[],"rp":["pst"]},"139":{"input":[1,2,4,8],"tlp":["casp",50],"trp":["past",205],"lp":["casp","cap","fsp","afsp"],"rp":["past","psta"]},"140":{"input":[3,4,8],"tlp":["rp",670],"trp":["pr",5960],"tlw":["er'et",22],"trw":["per",374],"lp":["rp","erp","rep","rpt","epr","ept","tep","rpe"],"rp":["pr","per","pper","pet","pre","'r","ppet","pete","'er","pere","ptr","pte"]},"141":{"input":[1,3,4,8],"tlp":["rap",388],"trp":["pra",1908],"tlw":["ta'r",85],"trw":["par",1154],"lp":["rap","rapp","rpa","trap","rpaa","taep","arp","erpa","a'r","ta'","apr","arpt","ta'r"],"rp":["pra","par","prae","part","pare","para","ptra"]},"142":{"input":[2,3,4,8],"tlp":["spr",1019],"trp":["pers",530],"tlw":["spredte",60],"trw":["peder",77],"lp":["spr","derp","sper","spre","spec","step","sept","resp","dspr","rsp","ersp","rspe","cep","ccep","cept"],"rp":["pers","pres","pred","pec","pdr"]},"143":{"input":[1,2,3,4,8],"tlw":["derpaa",245],"trw":["praest",184],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",16277],"trw":["m",548],"lp":[],"rp":["mm","mp","nm","mn","pm","np","pn"]},"145":{"input":[1,5,8],"tlp":["am",21010],"trp":["ma",29964],"tlw":["anm",32],"trw":["man",5955],"lp":["am","amm","amp","anm","anma","ama","aam","aama"],"rp":["ma","man","maa","nma","pan","maan","nap","pma","paan","mann","mma","mman"]},"146":{"input":[2,5,8],"tlp":["sm",5093],"trp":["ms",1840],"tlw":["sms",12],"lp":["sm","sms"],"rp":["ms","nsp","msp","jm","jsp","mps","pj","nsm"]},"147":{"input":[1,2,5,8],"tlp":["sam",5398],"trp":["mas",938],"tlw":["smaa",567],"trw":["maj",88],"lp":["sam","samm","sma","smaa","saam","sman","ams","span","asm","sama","sams","amsp","ansp"],"rp":["mas","maas","mass","maj","jam","mans","jamm"]},"148":{"input":[3,5,8],"tlp":["em",22268],"trp":["me",73368],"tlw":["emne",22],"trw":["men",13807],"lp":["em","emm","emme","emp","empe","eme"],"rp":["me","men","mme","mmen","nem","nnem","menn","pen","mpe","mene","ppen","my","nemm","yp"]},"149":{"input":[1,3,5,8],"tlp":["amme",5549],"trp":["mae",3778],"tlw":["examen",40],"trw":["mae",475],"lp":["amme","ame","ema","aem","ampe","aemp","amen","emae","amae","eman","aemm","emma","aame","enpa"],"rp":["mae","maen","paen","pmae","naep","mane"]},"150":{"input":[2,3,5,8],"tlp":["dem",5798],"trp":["med",23442],"tlw":["dem",5668],"trw":["med",20679],"lp":["dem","sme","dm","sem","semp","spej","ems","smed"],"rp":["med","mens","jem","mede","mes","mmed","jemm","mend","pej","jdsp","mped","medd"]},"151":{"input":[1,2,3,5,8],"tlw":["samme",1733],"trw":["mand",1898],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",86],"trp":["mt",4208],"lp":["tm","bm"],"rp":["mt","mb","pb","ptb"]},"153":{"input":[1,4,5,8],"tlp":["amt",793],"trp":["maat",1392],"trw":["mat",54],"lp":["amt","fam","amta","tam","tamm","amf","amb","fm","afm","fma"],"rp":["maat","mat","mf","matt","mta","mfa","mant","napt","mfan","mfat"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",207],"trp":["mst",1374],"tlw":["cm",207],"lp":["cm","bsm"],"rp":["mst","mc","mtj","mcn"]},"155":{"input":[1,2,4,5,8],"tlw":["samt",115],"trw":["pjat",14],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",5355],"trp":["mer",8012],"tlw":["type",59],"trw":["mere",2523],"lp":["rm","rem","rme","tem","emt","erm","erme","temm","rmen","rmer","temt","remm"],"rp":["mer","mmer","mere","met","mte","mr","mmet","ment"]},"157":{"input":[1,3,4,5,8],"tlw":["frem",1987],"trw":["maatte",1220],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["stemme",569],"trw":["mest",560],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["fremmede",219],"trw":["praesten",235],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",3860],"lp":[],"rp":["pi","ip","ipp","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",492],"trp":["papi",191],"lp":["api"],"rp":["papi","ipa"]},"162":{"input":[2,6,8],"tlp":["spi",1676],"trp":["pis",540],"trw":["pis",22],"lp":["spi","spis","skip","sspi"],"rp":["pis","pisk","isp","kip","kipp","ips","ksp","pik","psi"]},"163":{"input":[1,2,6,8],"trp":["kap",494],"trw":["pak",15],"lp":[],"rp":["kap","kapi","pak","pakk","kapp","paak","ipas"]},"164":{"input":[3,6,8],"tlp":["epi",89],"trp":["ippe",551],"lp":["epi"],"rp":["ippe","i'","i'e","ipe"]},"165":{"input":[1,3,6,8],"tlp":["zep",15],"trp":["paei",16],"lp":["zep","azep","zepi","z'"],"rp":["paei"]},"166":{"input":[2,3,6,8],"tlp":["spid",136],"trp":["pise",257],"tlw":["spise",140],"trw":["piskede",12],"lp":["spid","spek","espi","eksp","si'","si'e"],"rp":["pise","pek","idsp","pid","pids","peki","ispe","ksep","kep","kkep","kspe","kepe","kepi"]},"167":{"input":[1,2,3,6,8],"tlw":["ska'",27],"trw":["pakke",52],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["vip",54],"trp":["pit",385],"lp":["vip","vipp"],"rp":["pit","pti","ipt"]},"169":{"input":[1,4,6,8],"tlp":["apit",301],"trp":["pav",149],"tlw":["fip",43],"lp":["apit","fip"],"rp":["pav","pati","pita","pavi","pfi"]},"170":{"input":[2,4,6,8],"tlp":["spit",84],"trp":["pist",182],"tlw":["spist",45],"lp":["spit","cip","vsp","scip","tisp"],"rp":["pist"]},"171":{"input":[1,2,4,6,8],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",58],"trp":["pri",1094],"tlw":["vipper",20],"trw":["itt'",73],"lp":["rip","repi","ript","trip","ripp","vep","rvep","vepr"],"rp":["pri","pir","pite","peri","pire","priv","i'r","itt'","piri","i'er","prie","ipte"]},"173":{"input":[1,3,4,6,8],"tlw":["appetit",14],"trw":["papir",90],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["spiste",89],"trw":["pris",129],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["skarpt",108],"trw":["praksis",264],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",24076],"trw":["min",4554],"lp":[],"rp":["mi","min","im","imi","him","mh","ph","imm","pin","imp","mni","mnin","himm","hm","phi","mpi","mini","nim","mim","imim"]},"177":{"input":[1,5,6,8],"tlp":["ami",472],"trp":["ham",8353],"trw":["ham",8026],"lp":["ami","aim","amin"],"rp":["ham","iam","ima","hamm","mia","mai","pha","iman","phan","pani","imia","mian","hamp","mha","hima","pina","mani"]},"178":{"input":[2,5,6,8],"tlp":["smi",1181],"trp":["mis",825],"trw":["km",70],"lp":["smi","sim","simp","spin","ssim","simi"],"rp":["mis","mk","imis","msi","miss","km","misk","ism","phis","pink","kim","mspi","mism","msk"]},"179":{"input":[1,2,5,6,8],"tlw":["skam",117],"trw":["knap",168],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emni",182],"trp":["ime",1615],"trw":["mine",1330],"lp":["emni","eph","empi","ephi"],"rp":["ime","mine","mhe","meni","imme","imen","hem","hemm","impe","menh","phe","mhy","hyp","hypp","yppi","meph"]},"181":{"input":[1,3,5,6,8],"trw":["ha'",99],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["spidsen",62],"trw":["hjem",1079],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["eksamen",41],"trw":["maske",618],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1144],"trp":["mit",1681],"trw":["mit",1681],"lp":["tim","timi","tmi","tmin","vim","vimm","vm","timm"],"rp":["mit","mti","ptim","imt","pib","mv","ntim","pint","itim","mvi","mvit","nvip"]},"185":{"input":[1,4,5,6,8],"tlw":["timian",19],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["capitain",20],"trw":["knapt",41],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["timer",267],"trw":["hvem",785],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["varme",252],"trw":["marie",351],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["derhjemme",61],"trw":["mennesker",759],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["danmark",309],"trw":["maerke",366],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",11049],"trw":["op",5000],"lp":[],"rp":["op","po","opp","ppo","pop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",13],"trp":["opa",178],"lp":["appo","apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",1107],"trp":["pos",203],"lp":["spo","sop"],"rp":["pos","ops","osp","pso","opso"]},"195":{"input":[1,2,7,8],"trp":["opsa",25],"lp":[],"rp":["opsa","opas"]},"196":{"input":[3,7,8],"trp":["oppe",1153],"trw":["oppe",424],"lp":[],"rp":["oppe","o'","p-","poe","-p","o'e","p-p","ope"]},"197":{"input":[1,3,7,8],"trp":["opae",16],"lp":[],"rp":["opae"]},"198":{"input":[2,3,7,8],"tlp":["dsop",23],"trp":["opd",408],"trw":["pose",26],"lp":["dsop"],"rp":["opd","pose","poes"]},"199":{"input":[1,2,3,7,8],"trw":["opad",89],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1156],"trp":["opt",558],"tlw":["top",127],"trw":["optog",47],"lp":["top","topp","gp","gpo"],"rp":["opt","pg","opg","pog","pto","opto","ptog","pot","pott"]},"201":{"input":[1,4,7,8],"tlp":["gpa",17],"trp":["opf",375],"lp":["gpa"],"rp":["opf","pga","opga","opta","ptag","opfa","pfo","opfo","pag","pagt","paga"]},"202":{"input":[2,4,7,8],"tlp":["stop",344],"trp":["opst",120],"tlw":["spog",51],"trw":["post",48],"lp":["stop","spog","gsp","spot","sopg","cop"],"rp":["opst","post","psto","psog"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",646],"trp":["pro",2431],"tlw":["toppe",42],"trw":["port",82],"lp":["rop","etop","ropp","gep","erop","epro"],"rp":["pro","por","porg","port","opr","peg","pege","prog","orp","o'r","optr","pore","opro","opre"]},"205":{"input":[1,3,4,7,8],"tlw":["fo'r",122],"trw":["proft",123],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["spor",199],"trw":["pegede",119],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["pastor",153],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",50261],"trw":["om",12169],"lp":[],"rp":["om","mo","omm","mu","um","pu","mun","up","umm","pun","mon","ump","omp","opm","umu","upp","pou","mum","mpu","ompu"]},"209":{"input":[1,5,7,8],"tlp":["amo",42],"trp":["opma",262],"trw":["opnaa",32],"lp":["amo","aamo","anmo","apon"],"rp":["opma","oma","uma","manu","oman","pau","opna","uman","umaa","omma","upa","upaa"]},"210":{"input":[2,5,7,8],"tlp":["som",21760],"trp":["oms",1497],"tlw":["som",18932],"trw":["moj",60],"lp":["som","spu","smu","somm","spun","smo","sum","smus","summ"],"rp":["oms","mus","nsom","jom","mos","moj","pus","ums","mons","usm","nspo"]},"211":{"input":[1,2,5,7,8],"tlw":["saasom",34],"trw":["mansson",22],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["en-m",111],"trp":["omme",6327],"trw":["-men",116],"lp":["en-m","emo","epu"],"rp":["omme","umme","-m","uppe","ume","umen","-me","-men","n-m","umpe","omne","ome","mue","pone","u-m","-mo","u-mo"]},"213":{"input":[1,3,5,7,8],"trw":["-man",13],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",83],"trw":["mod",3477],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["somand",13],"trw":["pause",61],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",486],"trp":["omt",1489],"tlw":["tom",108],"trw":["omt",46],"lp":["tom","tum","tomm","tomt","gm","gmo"],"rp":["omt","mog","mg","omg","pub","munt","put","mbo","mput","mob","omb","ombo","umt","mut"]},"217":{"input":[1,4,5,7,8],"tlw":["afmagt",13],"trw":["magt",215],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["stum",33],"trw":["pust",33],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["smag",71],"trw":["magnus",156],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["gennem",1130],"trw":["meget",3368],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["form",246],"trw":["mange",1787],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["spurgte",1168],"trw":["mogens",519],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["sprang",316],"trw":["professoren",159],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",5364],"trw":["pol",19],"lp":[],"rp":["pl","pil","lp","pill","pol","opl","lip","poli","lipp","pli","poll","plo","oplo","ilp","opi","pio","poi","lop","lpi","ipl"]},"225":{"input":[1,6,7,8],"tlp":["alp",194],"trp":["pla",2683],"lp":["alp","alop","alpi"],"rp":["pla","lap","lapp","pal","opla","lpa","ilpa","pall","pala"]},"226":{"input":[2,6,7,8],"tlp":["spil",933],"trp":["klip",214],"tlw":["spil",117],"trw":["kop",75],"lp":["spil","slip","spl","skop","sopi","spio"],"rp":["klip","kop","kopp","ospi","posi","pok","pokk","lips","plos","plik","opsi","lsp","lspo","kopi"]},"227":{"input":[1,2,6,7,8],"tlw":["slap",211],"trw":["klap",35],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",717],"trp":["ple",1132],"trw":["pille",26],"lp":["elp","elpe","epl","eple","epli"],"rp":["ple","lpe","pel","ople","plei","li'","lpel","pelo","-pl","p-pl","lpep","pepl","li'e","pole","p-i"]},"229":{"input":[1,3,6,7,8],"trw":["la'",18],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spillede",190],"trw":["poesi",41],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["slappe",19],"trw":["plads",674],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tilp",30],"trp":["pig",945],"trw":["pligt",89],"lp":["tilp"],"rp":["pig","opti","plig","pgi","opgi","pgiv","ppig","pov","povl","plov","plot","pigt","pitl"]},"233":{"input":[1,4,6,7,8],"tlw":["galop",20],"trw":["opgav",49],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["politik",54],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["tilpas",30],"trw":["plastisk",14],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["pige",386],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",92],"trw":["opgave",78],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["spiller",111],"trw":["krop",196],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["vokseplads",34],"trw":["kapitel",248],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",3277],"trw":["poul",218],"lp":[],"rp":["ml","mil","lm","lom","mul","imo","muli","plu","olm","holm","omh","lmi","lmin","mili","mli","iml","himl","oph","minu","lim"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alpina",16],"trw":["plan",125],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["smil",414],"trw":["kom",3720],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["william",837],"trw":["hjalp",126],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mellem",1362],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["emmanuelo",70],"trw":["lampen",77],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["smilede",325],"trw":["komme",1447],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["samlede",209],"trw":["hjaelp",283],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glimt",79],"trw":["mig",8747],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",34],"trw":["pollnitz",127],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["smukt",214],"trw":["punkt",116],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["samling",60],"trw":["langsomt",369],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["glemt",197],"trw":["norholm",521],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["gamle",1533],"trw":["planter",359],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["blomster",490],"trw":["kommer",1590],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["samtidig",195],"trw":["plantes",218],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/de-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/de-keymap.json index c85c9213e3..1a25662b28 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/de-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/de-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",9644],"tlw":["a",672],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",161786],"tlw":["s",320],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",267481],"tlw":["was",33174],"lp":["as","wa","sa","ass","was","wass","ssa","sw","asa","assa","saa","aw","swa","awa","sas","ssas","asw","saw","sawa"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",14304],"tlw":["e",8272],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",6426],"lp":["ea","ex","ae","xa","ax","xe","exe","exa"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",603509],"tlw":["es",81182],"lp":["de","es","se","ed","sse","ese","ede","des","ess","esse","ses","eses","ds","dess","see","edes","sd","dee","dd","sess"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",270688],"tlw":["das",100677],"lp":["da","we","das","dass","ew","ad","asse","ewe","wes","ade","wese","ewes","esa","eda","dw","ewa","ase","essa","dwa","wed"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",129965],"tlw":["t",4870],"lp":["tt","ttt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",159129],"tlw":["tat",2050],"lp":["at","att","ta","fa","ft","ff","af","tat","aft","aff","tf","fft","tatt","tta","afft","fta","ffa","ata","ttf","taa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",329949],"tlw":["st",194],"lp":["st","sc","ts","sst","tsc","ssc","tst","tts","tc","sts","ttst","ssts","stst","ct","cc","stc","cs"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ac",129940],"tlw":["fast",4605],"lp":["ac","sta","tw","ast","twa","twas","asc","fas","fac","wac","sac","tsa","ca","fast","ats","asst","stat","fs","tas","atsa"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",1062516],"tlw":["er",139320],"lp":["er","te","re","rt","et","tte","ter","rte","tr","ere","ert","ete","tet","rr","erte","tete","rer","err","tter","tre"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",236202],"tlw":["trat",2331],"lp":["ar","ra","atte","fe","fr","ef","are","tra","fra","era","art","rf","ate","ffe","fre","arte","fer","ara","rat","ater"],"rp":[]},"14":{"input":[2,3,4],"tlp":["der",234317],"tlw":["der",139944],"lp":["der","ste","rd","rs","ers","rde","est","ec","rst","dr","erst","eder","ser","erd","ster","rc","dere","erde","sste","rsc"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["war",130034],"tlw":["war",76994],"lp":["war","wer","ware","rac","dar","etw","etwa","rw","werd","erw","dac","dara","dra","wart","star","rad","stra","fes","rwa","ras"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",160994],"trw":["n",114],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",368610],"trp":["na",94964],"tlw":["an",48407],"trw":["na",1852],"lp":["an","ann","ana","anna","aq","qq","aqq"],"rp":["na","nan","nna","nann","nq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",476],"trp":["ns",79641],"trw":["j",60],"lp":["sn"],"rp":["ns","nns","nj"]},"19":{"input":[1,2,5],"tlp":["wan",16048],"trp":["ja",26608],"tlw":["wann",1025],"trw":["ja",12041],"lp":["wan","ans","san","anns","wann","ssan","anw","ansa","sna","aj"],"rp":["ja","nw","nas","nsa","jan","nwa","nass","nja","jann","jans"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",1123066],"trp":["ne",372242],"tlw":["en",15361],"trw":["nennen",573],"lp":["en","enn","ene","enen","enne","ey","een","eyn"],"rp":["ne","nen","nne","nnen","yn","ny","nee","nenn","nny","ye","ney","yen"]},"21":{"input":[1,3,5],"tlp":["ena",8169],"trp":["ya",3585],"trw":["nyx",188],"lp":["ena","anne","ane","ay","ean","anen","anny","enan","any","enna","xan","eq","aya","xen","exen"],"rp":["ya","yan","nea","yx","nyx"]},"22":{"input":[2,3,5],"tlp":["den",182183],"trp":["nd",429334],"tlw":["den",92856],"trw":["jeden",2171],"lp":["den","sen","end","ssen","ens","esen","ende","denn","eden","dene"],"rp":["nd","nde","je","nden","nes","jed","nse","jede","ndes","jen"]},"23":{"input":[1,2,3,5],"tlp":["and",91655],"trp":["ndw",5333],"tlw":["wenn",26017],"trw":["nase",1633],"lp":["and","ande","wen","dan","wenn","dann","wand","endw","edan","aden","sand","wend","dana","anda"],"rp":["ndw","nand","nwe","nda","nase","ndwa"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",17983],"trp":["nt",123340],"tlw":["b",133],"lp":["bt","tb","tn","bb","bn","ttn"],"rp":["nt","nnt","nb","ntt","ntn","nntn","ntb","nnb"]},"25":{"input":[1,4,5],"tlp":["ab",110601],"trp":["nf",19807],"tlw":["ab",6161],"lp":["ab","ba","tan","ant","annt","fan","fn","anf","ffn","abt","ban","anft"],"rp":["nf","nfa","nat","nft","ntf","nab","nba","nta"]},"26":{"input":[2,4,5],"tlp":["bs",13819],"trp":["nst",18313],"lp":["bs","bst","bsc","sb","tj","stb","bj","bc","bstb"],"rp":["nst","nsc","nc","nts","ntsc","nnst","ntst","nnsc","nstb","nsb","nnts"]},"27":{"input":[1,2,4,5],"tlp":["stan",16933],"trp":["nac",40467],"tlw":["sanft",880],"lp":["stan","antw","bw","anc","abs","bac","anac","ansc","sanf","anst","absc","abw","stab","sab","abst"],"rp":["nac","ntw","nfac","jac","nsta"]},"28":{"input":[3,4,5],"tlp":["be",315569],"trp":["nte",72977],"tlw":["bett",2066],"trw":["neben",3915],"lp":["be","ten","ber","ren","ben","eb","rn","ern","br","ebe","ent","eben","rb","eren","tten","tern"],"rp":["nte","ner","nnte","nter"]},"29":{"input":[1,3,4,5],"tlp":["abe",79213],"tlw":["aber",39696],"lp":["abe","aber","fen","ran","aren","aben","bra","ffen","bar","arb","arbe","bef","aten","aran","fern","fne","enf","ffne","ary","arry"],"rp":[]},"30":{"input":[2,3,4,5],"tlp":["rden",23780],"trp":["nder",38861],"tlw":["ersten",3262],"trw":["jeder",2456],"lp":["rden","bes","sten","rend","ensc","best","dern","ents","bed","enst","bess","bend","enc"],"rp":["nder","jet","nser","nste","ndet","nce","ndt"]},"31":{"input":[1,2,3,4,5],"tlw":["waren",18283],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",157],"trw":["i",123],"lp":[],"rp":["ii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["zi",20813],"trp":["ia",9362],"tlw":["z",118],"lp":["zi","za","ai","az","zz","azi","aza","zzi","aia","zza","azz"],"rp":["ia","iz","izi","izz","izzi","izza"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",316897],"trp":["is",130177],"trw":["is",168],"lp":["si","ssi","sk","sik","sis","ski"],"rp":["is","iss","ki","ik","ks","kk","isi","isk","kis","isik","kiss","issi","iski","ksi"]},"35":{"input":[1,2,6],"tlp":["wi",167420],"trp":["ka",56299],"trw":["kai",169],"lp":["wi","zw","wis","zwi","wiss","zwis","ak","zwa","assi","sz","zis","asi","zs","ais"],"rp":["ka","ksa","kw","kz","isa","kas"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",652619],"trp":["ie",651532],"tlw":["ei",176],"lp":["ei","eie","eei","eiei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",61436],"trp":["ize",965],"lp":["ze","zei","zie","ez","eze","ezei","xi","eza","exi","ezi","eiz","axi","ezie","zzie","azie","eize"],"rp":["ize","izie","izei","ix"]},"38":{"input":[2,3,6],"tlp":["di",276515],"trp":["ke",89577],"tlw":["die",198925],"trw":["idee",1017],"lp":["di","die","sie","sei","dies","eis","eid","ek","esi","dei","eide"],"rp":["ke","ies","kei","id","iese","ied","iede","ide","ise"]},"39":{"input":[1,2,3,6],"tlp":["wie",72674],"tlw":["wie",48051],"trw":["kase",144],"lp":["wie","wei","wied","zwe","zwei","weis","wid","wide","ewi","daz","eka","wies","zd","zde","dwi","ewis","ake","dwie","zes","ewei"],"rp":[]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",64747],"trp":["it",174613],"tlw":["v",67],"lp":["ti","vi","tti","tit","tv","tiv","viv","vivi","vt","vit"],"rp":["it","itt","iti","iv","ivi","itiv"]},"41":{"input":[1,4,6],"tlp":["tz",57975],"trp":["if",14792],"tlw":["fitz",198],"lp":["tz","zt","tzt","fi","va","atz","av","vat","fz","ati","fti","afti","fzt","tia","zit"],"rp":["if","itz","iff","ita","ift"]},"42":{"input":[2,4,6],"tlp":["sic",113216],"trp":["ic",528821],"tlw":["vick",133],"trw":["ist",43418],"lp":["sic","ck","sti","ckt","tis","tisc","sit","cks","ckk","ci"],"rp":["ic","ist","kt","ick","isc","ickt","its","kti","issc","isti"]},"43":{"input":[1,2,4,6],"tlp":["wisc",7325],"trp":["kat",4899],"tlw":["satz",590],"trw":["katsa",541],"lp":["wisc","ack","wic","sitz","ackt","akt","satz","tak","wit","stia","asti","akti","cksa","twi","sack","fis","fisc"],"rp":["kat","katz","kaf"]},"44":{"input":[3,4,6],"tlp":["ri",94871],"trp":["ir",113010],"tlw":["vier",1685],"lp":["ri","ve","ver","eit","rei","eite","vie","rie","eri","tie","tei","reit","rit","tri"],"rp":["ir","ier","ite","itte","iter","iert"]},"45":{"input":[1,3,4,6],"tlp":["rz",29091],"trp":["ief",12679],"tlw":["zeit",6744],"lp":["rz","etz","etzt","erz","zte","tze","tzte","zeit","rze","eif","vate","tief","rif","arz","rief","riff","fie","eife"],"rp":["ief","ife"]},"46":{"input":[2,3,4,6],"tlp":["rk",34305],"trp":["kte",27132],"tlw":["dir",10511],"lp":["rk","eic","vers","erk","cke","ckte","eck","dic","ric","dir","seit","esic","eckt","ris","reic"],"rp":["kte","kr","ird","irk","iste"]},"47":{"input":[1,2,3,4,6],"tlw":["wir",29431],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",659187],"trw":["in",95638],"lp":[],"rp":["in","ni","ih","hi","hn","ihn","hin","inn","ini","nh","hni","hh","nni","nin","nih","inh","inni","hnh","inin","hinn"]},"49":{"input":[1,5,6],"tlp":["ah",76442],"trp":["ha",235199],"tlw":["ah",759],"trw":["nah",453],"lp":["ah","anz","zah","ahn","ani","ahi"],"rp":["ha","nz","han","nah","inz","ina","nzi","inzi","haa","hina","inan","ian","hna","hz"]},"50":{"input":[2,5,6],"tlp":["sin",16409],"trp":["nk",38114],"tlw":["sinn",805],"trw":["ins",5955],"lp":["sin","sh","shi","sinn"],"rp":["nk","ins","hs","kin","kn","nis","ink","nsi","kni","hk","ish","nks","nik","kh","niss","hns"]},"51":{"input":[1,2,5,6],"tlp":["wah",16237],"trp":["hw",26859],"tlw":["sah",11589],"trw":["kann",10392],"lp":["wah","sah","ank","win","sha","wanz"],"rp":["hw","kan","kann","has","hwa","jah","hwi","hwan","hwin","insa","inw","nzw","inzw","nzwi"]},"52":{"input":[3,5,6],"tlp":["ein",403963],"trp":["ine",235416],"tlw":["ein",66637],"trw":["ihnen",10635],"lp":["ein","eine","eh","ehe","ehen","eni"],"rp":["ine","he","hen","inen","hie","hne","hei","nie","ien","hnen","ihne","inne","nei","nein"]},"53":{"input":[1,3,5,6],"tlp":["zen",18592],"trp":["nze",12641],"tlw":["zehn",1114],"trw":["nahe",2024],"lp":["zen","ahe","anze","eha","einz","eina","zeh","zieh","zehn","ahne","ahen","enz","enze","anie"],"rp":["nze","nahe","nzen","inze","hze","hzei"]},"54":{"input":[2,3,5,6],"tlp":["sein",76189],"trp":["ind",34029],"tlw":["sein",25372],"trw":["keine",11161],"lp":["sein","seh","sehe","sind","dein","enk","din","denk","eseh","eins","enke"],"rp":["ind","ken","kein","nke","inde","ines","nken","iden","kenn"]},"55":{"input":[1,2,3,5,6],"tlw":["wissen",4749],"trw":["hand",7972],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",40682],"trp":["ht",252865],"tlw":["bin",8228],"lp":["bi","bin","th","bit","bitt","tin","thi"],"rp":["ht","int","ib","hint","hti","ibt","hnt","nit","nti","nv","htb","hnit","nitt"]},"57":{"input":[1,4,5,6],"tlp":["fin",11249],"trp":["hat",98724],"tlw":["zantini",146],"trw":["hat",19760],"lp":["fin","fah","tha","fh","ahnt","tian"],"rp":["hat","hatt","hab","haf","inf","infa","haft","habt","haff","hif","hiff","htba","nzt","hatz"]},"58":{"input":[2,4,5,6],"tlp":["ch",1037218],"trp":["ich",501099],"tlw":["sich",92744],"trw":["ich",126388],"lp":["ch","cht","sch","sich","chi","bis","schi","chts","chn","chs","schn","chti"],"rp":["ich","icht","nic","nich","isch","hts","nsch","hst"]},"59":{"input":[1,2,4,5,6],"tlw":["ach",1398],"trw":["nach",23041],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bei",38768],"trp":["hr",166493],"tlw":["einer",16300],"trw":["ihr",34974],"lp":["bei","ehr","rin","rh","erh","eht","teh"],"rp":["hr","ihr","hre","hte","her","ihre","iner","hren","ieb","hier","inte","hrer","hten"]},"61":{"input":[1,3,4,5,6],"tlw":["arbeit",1479],"trw":["hatte",62837],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["dich",11521],"trw":["nickte",3237],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["wahrend",7160],"trw":["jetzt",12900],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",2552],"trw":["o",417],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",544],"trp":["oa",1055],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",96770],"trp":["os",26972],"tlw":["so",35536],"lp":["so","sso","sos"],"rp":["os","oss","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",62062],"trp":["ow",3659],"tlw":["wo",7187],"lp":["wo","sow","woo","sowo","aos","swo","wow","aso","soa","woa","awo","sao"],"rp":["ow","osa","owa","owo","osw","osas"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",4452],"trp":["oe",1221],"trw":["-",5881],"lp":["eo","e-"],"rp":["oe","-o","-e"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",546],"trp":["ox",233],"lp":["a-"],"rp":["ox","-a","oxa","oxe"]},"70":{"input":[2,3,7],"tlp":["do",34031],"trp":["od",27025],"tlw":["dose",88],"lp":["do","eso","edo","sod","esso","deo","ddo","s-","s-o","soe","dos"],"rp":["od","ode","ose","osse","ood","-s","odes","ods","odo"]},"71":{"input":[1,2,3,7],"tlp":["ewo",5402],"trp":["oda",1427],"tlw":["sodass",1096],"lp":["ewo","dwo","soda","wood","sowe","ado","wod"],"rp":["oda","odas","owe","-w","-we","oswe","owes"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["gt",75665],"trp":["ot",33072],"tlw":["tot",1524],"trw":["otto",56],"lp":["gt","to","go","tot","tg","got","gott","gg","tto","gto","ttg"],"rp":["ot","og","ott","oot","oto","otto","ogo","ogg","ottt"]},"73":{"input":[1,4,7],"tlp":["ag",98104],"trp":["of",22112],"tlw":["tag",3421],"trw":["oft",1577],"lp":["ag","ga","agt","fo","tag","fg","fot","ago","fga","ttag","foto","tof","foa","gf"],"rp":["of","off","oga","ofo","oft","offt"]},"74":{"input":[2,4,7],"tlp":["gs",15827],"trp":["oc",76156],"tlw":["sto",607],"lp":["gs","sto","gst","sg","sog","co","toc","stoc","tos","gc","sgc","gos","goss"],"rp":["oc","ost","ots","osc","oots","otsc","otos"]},"75":{"input":[1,2,4,7],"tlp":["sag",41908],"tlw":["sagt",3037],"lp":["sag","sagt","two","sof","soga","sofo","gsa","wag","woc","gas","ags","gast","gw","agst","wagt","stof","aco","asto","stag","sags"],"rp":[]},"76":{"input":[3,4,7],"tlp":["ge",417472],"trp":["or",139857],"tlw":["gro",12824],"trw":["ort",1465],"lp":["ge","eg","ro","gte","gr","ger","rg","ege","rge","geg","gro","erg","gege","egt","tro"],"rp":["or","ort","orte","ote","org"]},"77":{"input":[1,3,4,7],"tlp":["agte",36381],"trp":["offe",6976],"tlw":["fragte",8751],"lp":["agte","age","rag","gef","frag","ragt","gar","for","gera","rage","gefa","ega","fort","gra","fge","tage","fote","trag"],"rp":["offe","ogar"]},"78":{"input":[2,3,4,7],"tlp":["ges",52897],"trp":["oder",15264],"tlw":["dort",4958],"trw":["oder",15082],"lp":["ges","doc","gesc","gest","gese","ged","dor","roc","dort","sor","sorg","sge","ros","stor","tod","rges"],"rp":["oder","ord","orde","ors"]},"79":{"input":[1,2,3,4,7],"tlw":["sagte",25887],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",390483],"trw":["nun",5974],"lp":[],"rp":["un","on","nu","no","onn","nun","unn","ou","nno","non","nnu","nnun","ono","onno","uo","unno","uu","uun","unu","unun"]},"81":{"input":[1,5,7],"tlp":["au",303972],"trp":["nau",10174],"tlw":["au",5558],"lp":["au","aun","qu","qua","anu","annu","ano","quo"],"rp":["nau","ona","ua","una","oan","unan","onna","unna","uan","unau","oann","oana"]},"82":{"input":[2,5,7],"tlp":["su",18391],"trp":["us",129755],"tlw":["su",647],"trw":["uns",13571],"lp":["su","son","sons","sonn","sun","sus","ssu"],"rp":["us","uss","uns","ju","jun","ons","jo","nso","uso","jon","jus","ous","nos"]},"83":{"input":[1,2,5,7],"tlp":["aus",69449],"trp":["usa",6060],"tlw":["aus",34379],"trw":["jason",129],"lp":["aus","wu","wus","wuss","wun","auss","wuns","auso","sau","won","saus","assu","ausw","asu"],"rp":["usa","naus","ussa","unw","uw","usw"]},"84":{"input":[3,5,7],"tlp":["eu",55225],"trp":["ue",28283],"trw":["neue",1471],"lp":["eu","eue","enu","eun","eno","euen","enno"],"rp":["ue","onne","uen","neu","one","une","neue","onen","unen","n-","unne","oy","yo"]},"85":{"input":[1,3,5,7],"tlp":["aue",12361],"trp":["ux",957],"lp":["aue","enau","auen","aune","que","equ","eque","an-","ean-","eau","equa","eona"],"rp":["ux","uxa","onea","na-","nna-","naue","oya","uya"]},"86":{"input":[2,3,5,7],"tlp":["du",75774],"trp":["und",249565],"tlw":["du",44764],"trw":["und",220198],"lp":["du","dun","deu","eund","sond","esu","seu","edeu","don"],"rp":["und","unde","ud","ond","ude","use","usse","unse","onde","oden","jedo"]},"87":{"input":[1,2,3,5,7],"tlw":["sonea",505],"trw":["nasuada",322],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",42893],"trp":["ng",148258],"tlw":["gut",8191],"trw":["ob",5684],"lp":["tu","gu","tun","bo","gut","bu","tung","gn","gun"],"rp":["ng","ut","ub","ung","ug","ob","onnt","unt","utt","nung","ngt"]},"89":{"input":[1,4,5,7],"tlp":["auf",98105],"trp":["uf",112428],"tlw":["auf",72050],"trw":["offnung",187],"lp":["auf","fu","ang","gan","aug","aut","aub","gab","tau","fun","gang","bau","aufg","atu"],"rp":["uf","uft","ufg","offn","unf","natu"]},"90":{"input":[2,4,5,7],"tlp":["stu",13806],"trp":["uc",97659],"tlw":["sonst",2451],"trw":["jung",472],"lp":["stu","suc","stun","buc","tuc","stuc"],"rp":["uc","noc","usst","ust","ngs","jung","ngst","usc","usg","onst","unsc","uts","ubs","utsc"]},"91":{"input":[1,2,4,5,7],"tlw":["angst",3094],"trw":["jacob",437],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",136399],"trp":["ur",167807],"tlw":["gegen",5275],"trw":["nur",23303],"lp":["gen","ru","egen","geb","eut","rgen","run","tur"],"rp":["ur","nge","ube","uber","ute","ngen","nur","uge","unte","ugen","unge","uer"]},"93":{"input":[1,3,4,5,7],"tlw":["fur",24293],"trw":["offnete",1687],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["boden",4242],"trw":["junge",3404],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["wurde",25182],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["li",151710],"trw":["ol",121],"lp":[],"rp":["li","ll","ol","il","oll","lo","ill","io","lli","ili","llo","illi","olli","oli","lio","lil","ilo","oi","lili","olo"]},"97":{"input":[1,6,7],"tlp":["al",191580],"trp":["la",130568],"tlw":["all",2129],"trw":["lilia",446],"lp":["al","all","zo","zl","zli","ali","alli","ala","allz"],"rp":["la","lz","olz","lia","ola","liz","ila","oz","oliz","lla","llz"]},"98":{"input":[2,6,7],"tlp":["sol",18755],"trp":["ko",75943],"tlw":["soll",3129],"trw":["los",2861],"lp":["sol","soll","sl","sil"],"rp":["ko","ls","kl","los","kli","lls","lso","loss","lk","ok","olk","ills","klo","llk","lko","llko"]},"99":{"input":[1,2,6,7],"tlp":["als",59443],"trp":["las",17376],"tlw":["als",47093],"trw":["lass",1226],"lp":["als","wol","woll","wil","will","also","wal","alls","wolk","sal","sola","sowi","alas"],"rp":["las","lass","kla","kal","oka","owi","low"]},"100":{"input":[3,6,7],"tlp":["el",169112],"trp":["le",200448],"tlw":["eile",168],"trw":["lie",7334],"lp":["el","ell","eil","elle","ele","eile","eli"],"rp":["le","lle","lei","lie","iel","llei","olle","iell","iele","ile","ille","ilie","lee"]},"101":{"input":[1,3,6,7],"tlp":["alle",36348],"trp":["lze",595],"tlw":["alle",9095],"trw":["lizzie",239],"lp":["alle","ale","ela","zel","elz","ezo","ziel","zoe","ael","zell","ella","alee","eal"],"rp":["lze","lize","iela","oze","lzei","-al","-ali"]},"102":{"input":[2,3,6,7],"tlp":["sel",17287],"trp":["ld",21588],"tlw":["seele",607],"trw":["leise",2478],"lp":["sel","dl","eko","dli","del","eld","els"],"rp":["ld","kle","les","klei","lles","kel","lde","ild","leid","leis","old","ilde","lke"]},"103":{"input":[1,2,3,6,7],"tlw":["alles",9526],"trw":["lasse",483],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",111639],"trp":["lt",103510],"tlw":["vollig",1315],"trw":["ig",1168],"lp":["vo","gl","gi","tig","tl","tli","gli","vol","voll"],"rp":["lt","ig","llt","ollt","igt","lg","olg","lig","ogl","lot","ogli"]},"105":{"input":[1,4,6,7],"tlp":["alt",26083],"trp":["lag",11095],"tlw":["zog",4180],"trw":["lag",3548],"lp":["alt","fl","fal","fall","gla","zog","zig","fol","folg","avo","tzl","fla","tzli","agi"],"rp":["lag","lf","lat","otz","latt","lotz"]},"106":{"input":[2,4,6,7],"tlp":["tlic",10135],"trp":["lic",83791],"tlw":["still",966],"trw":["lost",108],"lp":["tlic","cl","glic","ckl","gk","sig","solc","ckli","stil"],"rp":["lic","lick","klic","lc","ock","lst","olc","llst","igk","lsc","igs"]},"107":{"input":[1,2,4,6,7],"tlw":["willst",2074],"trw":["lasst",1485],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vor",42281],"trp":["lte",70997],"tlw":["vor",22128],"trw":["legte",3034],"lp":["vor","elt","rl","erl","gel","viel","tel","elte","eig","rli","tell","eige","verl"],"rp":["lte","ige","llte","ler","ieg","leg","irg"]},"109":{"input":[1,3,4,6,7],"tlw":["fiel",2565],"trw":["letzte",1489],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["sollte",5278],"trw":["krieger",1798],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["wollte",8491],"trw":["klar",2511],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["hl",69806],"trw":["oh",1758],"lp":[],"rp":["hl","ho","lu","oh","uh","hu","ul","hon","ohn","hli","ln","uhl","ohl","hul","lin","nl","hol","hun","hlu","ion"]},"113":{"input":[1,5,6,7],"tlp":["zu",171648],"trp":["lan",36595],"tlw":["zu",106187],"trw":["hinzu",1319],"lp":["zu","ahl","zahl","azu","zun","zau","aul","anzu"],"rp":["lan","lau","hau","hal","hla","nzu","inau","hall","inzu","unz","hlan","iau"]},"114":{"input":[2,5,6,7],"tlp":["soh",2201],"trp":["kon",39622],"tlw":["sohn",1591],"trw":["john",638],"lp":["soh","sohn"],"rp":["kon","konn","ku","unk","lus","hlos","kun","koni","luss","uk","nkl","unkl","kus","klin","hos","link","kuss","luk"]},"115":{"input":[1,2,5,6,7],"tlw":["wohl",3262],"trw":["haus",3123],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eln",9970],"trp":["len",34944],"trw":["ohne",6453],"lp":["eln","eho","elen"],"rp":["len","llen","lein","hel","hle","ohne","hiel","hlie","leu","nel","uhe","hlen","heu","ly","hnel","nell","ohe"]},"117":{"input":[1,3,5,6,7],"tlw":["allein",3101],"trw":["luxa",831],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["sollen",1705],"trw":["konnen",8192],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["dazu",3106],"trw":["lassen",4737],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["von",54263],"trp":["ing",35552],"tlw":["von",48992],"trw":["hob",2725],"lp":["von","bl","bli","gin","ging","bil","blu"],"rp":["ing","lb","nig","htig","hlt","hut","hob","lug","ntl","hig","onig","lut","ult"]},"121":{"input":[1,4,5,6,7],"tlw":["ganz",8095],"trw":["luft",3854],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["schon",15769],"trw":["noch",31550],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["auch",23263],"trw":["obwohl",3157],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["gehen",3878],"trw":["leben",6005],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["zur",7461],"trw":["lange",4757],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["doch",19379],"trw":["konnte",19700],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["zuruck",7484],"trw":["naturlich",3611],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",10101],"trw":["p",276],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",9189],"trp":["pa",25493],"trw":["papa",249],"lp":["ap","app","apa","appa"],"rp":["pa","paa","pap","papa","ppa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",35230],"trp":["ps",471],"lp":["sp","ssp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",6529],"trp":["pas",4544],"tlw":["spa",543],"trw":["pass",277],"lp":["spa","sap","wap","wapp","aps","asp"],"rp":["pas","pass"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",4107],"trp":["pe",21955],"lp":["ep","epp","eppe","e'"],"rp":["pe","ppe","pee","'e"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["appe",1127],"trp":["px",233],"trw":["px",233],"lp":["appe","ape","epa","xp","exp","a'","eap"],"rp":["px"]},"134":{"input":[2,3,8],"tlp":["esp",4229],"trp":["'s",1830],"lp":["esp","spe","espe","sep","spee","s'","dsp","dspe","e's","dep","es'"],"rp":["'s","pes","peed"]},"135":{"input":[1,2,3,8],"tlp":["espa",426],"trw":["passe",61],"lp":["espa","dap"],"rp":[]},"136":{"input":[4,8],"tlp":["tp",1024],"trp":["pt",8640],"trw":["pt",821],"lp":["tp","ttp"],"rp":["pt","ppt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["appt",1143],"trp":["pf",28238],"trw":["pat",81],"lp":["appt","tap","apf","tpf","attp","ttpf","fp","tapf","apt","tapp","fpa","apft","apta","ffp"],"rp":["pf","pat","pft","pfa","pta"]},"138":{"input":[2,4,8],"tlp":["tsp",820],"trp":["pts",393],"lp":["tsp","stp"],"rp":["pts","ptst","pst"]},"139":{"input":[1,2,4,8],"tlp":["spat",3485],"trp":["pac",1868],"tlw":["spat",894],"trw":["passt",223],"lp":["spat","stap","cap","tspa","fpas","capt","fsp"],"rp":["pac","pfs","pfsc","ptsa","past"]},"140":{"input":[3,4,8],"tlp":["rp",4472],"trp":["pr",23900],"tlw":["treppe",1030],"trw":["peter",275],"lp":["rp","rpe","rper","rep","trep","repp","erp","ept","t'","r'"],"rp":["pr","per","pre","pte","ppte","pet","pert","peet","pete","ptet"]},"141":{"input":[1,3,4,8],"tlp":["rpf",493],"trp":["pra",7549],"tlw":["tapfer",173],"trw":["paar",4977],"lp":["rpf","erpf","apfe","rpa","erpa","apr","rap","tape","ar'","ra'"],"rp":["pra","pfe","paar","pfte","pate","pfer","par","patr","perf","part"]},"142":{"input":[2,3,4,8],"tlp":["spr",13156],"trp":["prec",3135],"tlw":["speer",150],"trw":["presste",522],"lp":["spr","spre","rsp","espr","ersp","rspr","t's","sper","sept","tspr","resp","r's","ce'"],"rp":["prec","pers","pres","pred","perc","perd","pec"]},"143":{"input":[1,2,3,4,8],"tlw":["spater",2320],"trw":["pferd",730],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",75202],"lp":[],"rp":["mm","nm","mp","np","mn"]},"145":{"input":[1,5,8],"tlp":["am",75203],"trp":["ma",116805],"tlw":["am",13314],"trw":["man",13524],"lp":["am","amm","amp","ama","aman","anm"],"rp":["ma","man","mann","nma","nam","pan","nap","napp","pann","mma","mman","mam","mama","mna"]},"146":{"input":[2,5,8],"tlp":["sm",2006],"trp":["ms",3988],"tlw":["sms",84],"lp":["sm","ssm","sms"],"rp":["ms","mms","nsp","mj","nsm"]},"147":{"input":[1,2,5,8],"tlp":["sam",18083],"trp":["nsam",1490],"tlw":["sam",1544],"trw":["japan",53],"lp":["sam","samm","span","sma","asam","ams","ansp","sams","wam","wamm","ssam"],"rp":["nsam","mas","jam","mass","maj","mw","nspa","mja","mjan"]},"148":{"input":[3,5,8],"tlp":["em",142396],"trp":["me",172798],"tlw":["em",427],"trw":["'ne",199],"lp":["em","eme","emp","enp","enem","enpe"],"rp":["me","mme","men","nem","mmen","pen","ppen","mpe","my","mee","yp","npe","ym","mmy"]},"149":{"input":[1,3,5,8],"tlp":["ema",15399],"trp":["name",3654],"tlw":["amy",168],"trw":["namen",2293],"lp":["ema","ame","eman","amme","amen","ampe","aym","ampy","xem","eam","amy","enma","anme","emna","xeme"],"rp":["name","max","mae","may","maya"]},"150":{"input":[2,3,5,8],"tlp":["dem",54438],"trp":["mens",6613],"tlw":["dem",45085],"trw":["jedem",1143],"lp":["dem","sem","esem","emd","edem","emde","esm","djem","dm"],"rp":["mens","jem","md","mes","ndem","mde","mess","mden","mend","med","mmes"]},"151":{"input":[1,2,3,5,8],"tlw":["wem",425],"trw":["jemand",3073],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",2485],"trp":["mt",14056],"lp":["tm","bm"],"rp":["mt","mmt","mb","ptm","mpt"]},"153":{"input":[1,4,5,8],"tlp":["ampf",3371],"trp":["mpf",5070],"tlw":["amt",94],"trw":["matt",200],"lp":["ampf","tam","amt","fam","ammt","tamm","atm","fm","tama","tma","tman"],"rp":["mpf","mat","mpft","npf","matt","mant","mpfa","pfan","ptma"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["stm",109],"trp":["mst",1918],"lp":["stm","bstm"],"rp":["mst","mmst","ntsp","msc","mmsc","mc","nstm"]},"155":{"input":[1,2,4,5,8],"tlw":["stamm",309],"trw":["mats",101],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",24866],"trp":["mer",37720],"tlw":["typ",417],"trw":["mr",1767],"lp":["rm","rem","rme","tem","erm","emer","bem","beme","rmen","teme"],"rp":["mer","mmer","mte","ment","mmte","mr","met","mete","mbe","mert"]},"157":{"input":[1,3,4,5,8],"tlw":["arm",2393],"trw":["manner",2823],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["erdem",1712],"trw":["mrs",981],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["warme",548],"trw":["mandred",237],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",11374],"lp":[],"rp":["pi","ip","ipp","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2458],"trp":["papi",842],"trw":["pia",152],"lp":["api","aip","zip","zp","zap","zapp"],"rp":["papi","paz","pazi","pia","piz","pizz"]},"162":{"input":[2,6,8],"tlp":["spi",7019],"trp":["isp",965],"lp":["spi"],"rp":["isp","ispi","pis","kp","kip","kipp","ksp","kspi","ips"]},"163":{"input":[1,2,6,8],"tlp":["spaz",195],"trp":["kap",1913],"lp":["spaz","zsp","zspi","wisp","szip","szap"],"rp":["kap","kapi","kapp"]},"164":{"input":[3,6,8],"tlp":["eppi",167],"trp":["pie",5917],"lp":["eppi","eip"],"rp":["pie","ippe","pei","peie","ie'","ipe"]},"165":{"input":[1,3,6,8],"tlp":["apie",1000],"trp":["'z",210],"lp":["apie","zep","a'z","a'za","z'"],"rp":["'z","'za"]},"166":{"input":[2,3,6,8],"tlp":["spie",4741],"trp":["pek",382],"tlw":["spie",186],"lp":["spie","eisp","spek","spei","espi","skep","disp","sie'"],"rp":["pek","peis","kep","ispe","is'","ie's","idep","k'","k'e"]},"167":{"input":[1,2,3,6,8],"trw":["kappe",55],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",377],"trp":["pit",3051],"tlw":["tippt",50],"lp":["tip","tipp"],"rp":["pit","pti","ippt","itp","ipt","piv"]},"169":{"input":[1,4,6,8],"tlp":["apit",1458],"trp":["pitz",1593],"trw":["pfiff",129],"lp":["apit","zpf","tzp","zapf"],"rp":["pitz","pfi","pita","pati","ipf","ptai","pfif","pav","pavi","patz"]},"170":{"input":[2,4,6,8],"tlp":["spit",1593],"trp":["pist",286],"lp":["spit","cksp"],"rp":["pist","pisc","pic","ppic","ptis","ktp"]},"171":{"input":[1,2,4,6,8],"tlw":["spitz",113],"trw":["packt",105],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",838],"trp":["pri",3830],"tlw":["tippte",195],"lp":["rip","epti","ripr","verp","eitp","ripp","epri","ript"],"rp":["pri","pier","pite","prie","ipr","ipre","prei","ptie","peit","pir","prit","peti"]},"173":{"input":[1,3,4,6,8],"tlw":["appetit",109],"trw":["papier",621],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["ripred",581],"trw":["preis",373],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["spitze",616],"trw":["passiert",1606],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",156924],"trw":["im",27050],"lp":[],"rp":["mi","im","hm","imm","ihm","inm","min","ph","him","himm","phi","hmi","nim","nimm","imn","mni","imni","mh","pin","nmi"]},"177":{"input":[1,5,6,8],"tlp":["ami",10941],"trp":["inma",7220],"tlw":["ahm",221],"trw":["nahm",4064],"lp":["ami","ahm","zim","zimm","aph","aphi"],"rp":["inma","nahm","hma","mia","mah","ham","ima","mani","pha","hnap","iam","pani","hamm","mz"]},"178":{"input":[2,5,6,8],"tlp":["sim",1838],"trp":["mis",4451],"tlw":["sims",60],"trw":["miss",415],"lp":["sim","sph","spin","smi"],"rp":["mis","miss","mk","mnis","imms","imk","mik","jim","jimm","ims","mij","mmis","nspi","hms","issm","mmk"]},"179":{"input":[1,2,5,6,8],"tlw":["asami",402],"trw":["kam",6230],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["einm",7220],"trp":["mei",39849],"tlw":["einem",21852],"trw":["meine",11395],"lp":["einm","eim","ehm","ehme","emei","emi"],"rp":["mei","mein","inem","imme","meh","hme","iem","nehm","niem","hmen","heim","mie","hem","mien"]},"181":{"input":[1,3,5,6,8],"tlw":["annehmen",189],"trw":["nahmen",491],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["seinem",7860],"trw":["meines",844],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["damien",281],"trw":["niemand",3087],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",12361],"trp":["mit",82241],"tlw":["tim",137],"trw":["mit",65945],"lp":["tim","timm","thm","thim"],"rp":["mit","mitt","immt","htm","nmit","hmit","hmt","ptim","mith","mitn","mitb","ntim","htip","itm","hitm","htp"]},"185":{"input":[1,4,5,6,8],"tlw":["tamani",796],"trw":["mattia",102],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["stimmt",967],"trw":["mich",27002],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["wachmann",161],"trw":["macht",2965],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["beim",2845],"trw":["mir",28421],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["zimmer",2340],"trw":["prinz",511],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["stimme",5685],"trw":["menschen",4046],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["damit",7217],"trw":["machte",4587],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",16041],"lp":[],"rp":["op","po","opp"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",54],"trp":["opa",519],"lp":["apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",569],"trp":["pos",794],"lp":["spo","sop"],"rp":["pos","osp","pso","ops"]},"195":{"input":[1,2,7,8],"lp":[],"rp":[]},"196":{"input":[3,7,8],"tlp":["eop",243],"trp":["oppe",220],"lp":["eop","epo"],"rp":["oppe","-p","ope"]},"197":{"input":[1,3,7,8],"tlp":["eopa",185],"lp":["eopa","xpo","expo"],"rp":[]},"198":{"input":[2,3,7,8],"tlp":["dop",158],"trp":["odsp",102],"lp":["dop","dopp"],"rp":["odsp","pose"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1390],"trp":["pot",525],"lp":["top","topp","tpo"],"rp":["pot","pott","pto","ptop"]},"201":{"input":[1,4,7,8],"tlp":["tpfo",466],"trp":["opf",13450],"tlw":["topf",130],"lp":["tpfo","topf","apto"],"rp":["opf","pfo","pfot","opft","pag","pagg"]},"202":{"input":[2,4,7,8],"tlp":["stop",653],"trp":["post",447],"tlw":["spott",92],"trw":["post",110],"lp":["stop","spot","tpos"],"rp":["post","poc"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",949],"trp":["pro",5714],"tlw":["reporter",63],"trw":["potter",173],"lp":["rop","gep","trop","gepr","g'","repo","epor","geop","tpro"],"rp":["pro","orp","orpe","por","port","-top","prot","prop","prog","pero","perg"]},"205":{"input":[1,3,4,7,8],"tlw":["tropfte",104],"trw":["pfote",449],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["gepresst",119],"trw":["perdor",186],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["stopfte",111],"trw":["professor",480],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["um",81208],"trw":["um",30478],"lp":[],"rp":["um","mu","om","mo","omm","pu","up","mon","mom","umm","mun","nom","nomm","upp","pun","ump","unm","omp","nmo","unmo"]},"209":{"input":[1,5,7,8],"tlp":["aum",11931],"trp":["mau",2979],"trw":["mona",273],"lp":["aum","aup","amo","amon","amu","apu","ammo","aom","anmu"],"rp":["mau","pau","mona","oma","uma","omma","manu","naom","oman","pua","mano"]},"210":{"input":[2,5,7,8],"tlp":["spu",5447],"trp":["mus",23962],"trw":["muss",5445],"lp":["spu","som","sum","somm","summ","sup","smu","supp"],"rp":["mus","muss","ums","usp","mons","omms","mso","umso","mos","usm","moos","ussp"]},"211":{"input":[1,2,5,7,8],"tlw":["amos",143],"trw":["maus",230],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",2575],"trp":["omme",15487],"trw":["neuem",121],"lp":["enom","emu","empo","emo","emon","epu","eum"],"rp":["omme","ome","omen","mome","ume","umme","umen","uppe","umpe","omy","uem","mone","pony"]},"213":{"input":[1,3,5,7,8],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dumm",400],"trw":["mussen",4744],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["damon",348],"trw":["pause",441],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tum",1365],"trp":["mut",9353],"tlw":["tom",616],"trw":["mut",548],"lp":["tum","tom","tumm","ttom"],"rp":["mut","mutt","mog","upt","ommt","mg","umg","omb","ummt","mung","nmog","mot","umb","umt","put","mott"]},"217":{"input":[1,4,5,7,8],"tlw":["baum",788],"trw":["mag",837],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["stumm",329],"trw":["musst",1824],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["anspannung",163],"trw":["magnus",226],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["genommen",1020],"trw":["mutter",5624],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["raum",1894],"trw":["magen",753],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["spurte",2360],"trw":["musste",7028],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["warum",5314],"trw":["umstanden",254],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",9042],"lp":[],"rp":["pl","plo","lip","lipp","pol","poli","lop","lp","ilip","olp","pil","pli","pio","pilo","ipl","ipli","pill","opi","poll","ppl"]},"225":{"input":[1,6,7,8],"tlp":["zop",139],"trp":["pla",4483],"tlw":["apollo",54],"trw":["opal",202],"lp":["zop","zipl","apol","appl"],"rp":["pla","pal","lap","lapp","pala","opal","pliz","pilz","pila","ppla"]},"226":{"input":[2,6,7,8],"tlp":["spio",245],"trp":["kop",10195],"trw":["klops",60],"lp":["spio","spl","spli"],"rp":["kop","klop","posi","klip","kpl","ispl","plos","lops","kopi"]},"227":{"input":[1,2,6,7,8],"trw":["klaps",56],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",361],"trp":["piel",3820],"trw":["lippe",146],"lp":["elp","epl"],"rp":["piel","pel","lpe","olpe","ppel","leop","ple","lep","lepp","-pi","-pie","l'","ll'","oll'","pell","'el","lpel","opie"]},"229":{"input":[1,3,6,7,8],"trw":["pelz",894],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spiel",618],"trw":["klippe",159],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["speisesaal",104],"trw":["klappe",167],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tolp",465],"trp":["plot",3683],"trw":["pilot",82],"lp":["tolp","gip","tpl"],"rp":["plot","pito","pig","ppig","plit"]},"233":{"input":[1,4,6,7,8],"tlw":["zopf",91],"trw":["platz",1840],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["politik",180],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["spalt",238],"trw":["kopf",9064],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["prior",72],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["rappelte",154],"trw":["pfeil",312],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["spielte",526],"trw":["korper",2392],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["distelpfote",300],"trw":["kapitel",832],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",4691],"trw":["philip",527],"lp":[],"rp":["ml","mli","mil","lm","lim","muh","imo","limm","mili","imon","hlim","minu","oph","umi","umin","hop","hmu","lum","llm","phil"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["zum",13031],"trw":["mal",9722],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",1611],"trw":["komm",1435],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["william",287],"trw":["kaum",3695],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["himmel",2108],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["einmal",7220],"trw":["plane",315],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["spielen",619],"trw":["kommen",3154],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["zusammen",3969],"trw":["niemals",1641],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["vom",5596],"trw":["html",387],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",198],"trw":["umhang",262],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["schlimm",464],"trw":["kommt",2302],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["allmahlich",712],"trw":["plotzlich",3426],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["gemeint",376],"trw":["herum",2872],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["familie",1680],"trw":["uberhaupt",2569],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gekommen",2443],"trw":["mochte",2710],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["gemacht",2597],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",9644],"tlw":["a",672],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",161786],"tlw":["s",320],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",267481],"tlw":["was",33174],"lp":["as","wa","sa","ass","was","wass","ssa","sw","asa","assa","saa","aw","swa","awa","sas","ssas","asw","saw","sawa"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",14304],"tlw":["e",8272],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",6426],"lp":["ea","ex","ae","xa","ax","xe","exe","exa"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",603509],"tlw":["es",81182],"lp":["de","es","se","ed","sse","ese","ede","des","ess","esse","ses","eses","ds","dess","see","edes","sd","dee","dd","sess"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",270688],"tlw":["das",100677],"lp":["da","we","das","dass","ew","ad","asse","ewe","wes","ade","wese","ewes","esa","eda","dw","ewa","ase","essa","dwa","wed"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",129965],"tlw":["t",4870],"lp":["tt","ttt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",159129],"tlw":["tat",2050],"lp":["at","att","ta","fa","ft","ff","af","tat","aft","aff","tf","fft","tatt","tta","afft","fta","ffa","ata","ttf","taa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",329949],"tlw":["st",194],"lp":["st","sc","ts","sst","tsc","ssc","tst","tts","tc","sts","ttst","ssts","stst","ct","cc","stc","cs"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ac",129940],"tlw":["fast",4605],"lp":["ac","sta","tw","ast","twa","twas","asc","fas","fac","wac","sac","tsa","ca","fast","ats","asst","stat","fs","tas","atsa"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",1062516],"tlw":["er",139320],"lp":["er","te","re","rt","et","tte","ter","rte","tr","ere","ert","ete","tet","rr","erte","tete","rer","err","tter","tre"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",236202],"tlw":["trat",2331],"lp":["ar","ra","atte","fe","fr","ef","are","tra","fra","era","art","rf","ate","ffe","fre","arte","fer","ara","rat","ater"],"rp":[]},"14":{"input":[2,3,4],"tlp":["der",234317],"tlw":["der",139944],"lp":["der","ste","rd","rs","ers","rde","est","ec","rst","dr","erst","eder","ser","erd","ster","rc","dere","erde","sste","rsc"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["war",130034],"tlw":["war",76994],"lp":["war","wer","ware","rac","dar","etw","etwa","rw","werd","erw","dac","dara","dra","wart","star","rad","stra","fes","rwa","ras"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",160994],"trw":["n",114],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",368610],"trp":["na",94964],"tlw":["an",48407],"trw":["na",1852],"lp":["an","ann","ana","anna","aq","qq","aqq"],"rp":["na","nan","nna","nann","nq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",476],"trp":["ns",79641],"trw":["j",60],"lp":["sn"],"rp":["ns","nns","nj"]},"19":{"input":[1,2,5],"tlp":["wan",16048],"trp":["ja",26608],"tlw":["wann",1025],"trw":["ja",12041],"lp":["wan","ans","san","anns","wann","ssan","anw","ansa","sna","aj"],"rp":["ja","nw","nas","nsa","jan","nwa","nass","nja","jann","jans"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",1123066],"trp":["ne",372242],"tlw":["en",15361],"trw":["nennen",573],"lp":["en","enn","ene","enen","enne","ey","een","eyn"],"rp":["ne","nen","nne","nnen","yn","ny","nee","nenn","nny","ye","ney","yen"]},"21":{"input":[1,3,5],"tlp":["ena",8169],"trp":["ya",3585],"trw":["nyx",188],"lp":["ena","anne","ane","ay","ean","anen","anny","enan","any","enna","xan","eq","aya","xen","exen"],"rp":["ya","yan","nea","yx","nyx"]},"22":{"input":[2,3,5],"tlp":["den",182183],"trp":["nd",429334],"tlw":["den",92856],"trw":["jeden",2171],"lp":["den","sen","end","ssen","ens","esen","ende","denn","eden","dene"],"rp":["nd","nde","je","nden","nes","jed","nse","jede","ndes","jen"]},"23":{"input":[1,2,3,5],"tlp":["and",91655],"trp":["ndw",5333],"tlw":["wenn",26017],"trw":["nase",1633],"lp":["and","ande","wen","dan","wenn","dann","wand","endw","edan","aden","sand","wend","dana","anda"],"rp":["ndw","nand","nwe","nda","nase","ndwa"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",17983],"trp":["nt",123340],"tlw":["b",133],"lp":["bt","tb","tn","bb","bn","ttn"],"rp":["nt","nnt","nb","ntt","ntn","nntn","ntb","nnb"]},"25":{"input":[1,4,5],"tlp":["ab",110601],"trp":["nf",19807],"tlw":["ab",6161],"lp":["ab","ba","tan","ant","annt","fan","fn","anf","ffn","abt","ban","anft"],"rp":["nf","nfa","nat","nft","ntf","nab","nba","nta"]},"26":{"input":[2,4,5],"tlp":["bs",13819],"trp":["nst",18313],"lp":["bs","bst","bsc","sb","tj","stb","bj","bc","bstb"],"rp":["nst","nsc","nc","nts","ntsc","nnst","ntst","nnsc","nstb","nsb","nnts"]},"27":{"input":[1,2,4,5],"tlp":["stan",16933],"trp":["nac",40467],"tlw":["sanft",880],"lp":["stan","antw","bw","anc","abs","bac","anac","ansc","sanf","anst","absc","abw","stab","sab","abst"],"rp":["nac","ntw","nfac","jac","nsta"]},"28":{"input":[3,4,5],"tlp":["be",315569],"trp":["nte",72977],"tlw":["bett",2066],"trw":["neben",3915],"lp":["be","ten","ber","ren","ben","eb","rn","ern","br","ebe","ent","eben","rb","eren","tten","tern"],"rp":["nte","ner","nnte","nter"]},"29":{"input":[1,3,4,5],"tlp":["abe",79213],"tlw":["aber",39696],"lp":["abe","aber","fen","ran","aren","aben","bra","ffen","bar","arb","arbe","bef","aten","aran","fern","fne","enf","ffne","ary","arry"],"rp":[]},"30":{"input":[2,3,4,5],"tlp":["rden",23780],"trp":["nder",38861],"tlw":["ersten",3262],"trw":["jeder",2456],"lp":["rden","bes","sten","rend","ensc","best","dern","ents","bed","enst","bess","bend","enc"],"rp":["nder","jet","nser","nste","ndet","nce","ndt"]},"31":{"input":[1,2,3,4,5],"tlw":["waren",18283],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",157],"trw":["i",123],"lp":[],"rp":["ii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["zi",20813],"trp":["ia",9362],"tlw":["z",118],"lp":["zi","za","ai","az","zz","azi","aza","zzi","aia","zza","azz"],"rp":["ia","iz","izi","izz","izzi","izza"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",316897],"trp":["is",130177],"trw":["is",168],"lp":["si","ssi","sk","sik","sis","ski"],"rp":["is","iss","ki","ik","ks","kk","isi","isk","kis","isik","kiss","issi","iski","ksi"]},"35":{"input":[1,2,6],"tlp":["wi",167420],"trp":["ka",56299],"trw":["kai",169],"lp":["wi","zw","wis","zwi","wiss","zwis","ak","zwa","assi","sz","zis","asi","zs","ais"],"rp":["ka","ksa","kw","kz","isa","kas"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",652619],"trp":["ie",651532],"tlw":["ei",176],"lp":["ei","eie","eei","eiei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",61436],"trp":["ize",965],"lp":["ze","zei","zie","ez","eze","ezei","xi","eza","exi","ezi","eiz","axi","ezie","zzie","azie","eize"],"rp":["ize","izie","izei","ix"]},"38":{"input":[2,3,6],"tlp":["di",276515],"trp":["ke",89577],"tlw":["die",198925],"trw":["idee",1017],"lp":["di","die","sie","sei","dies","eis","eid","ek","esi","dei","eide"],"rp":["ke","ies","kei","id","iese","ied","iede","ide","ise"]},"39":{"input":[1,2,3,6],"tlp":["wie",72674],"tlw":["wie",48051],"trw":["kase",144],"lp":["wie","wei","wied","zwe","zwei","weis","wid","wide","ewi","daz","eka","wies","zd","zde","dwi","ewis","ake","dwie","zes","ewei"],"rp":[]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",64747],"trp":["it",174613],"tlw":["v",67],"lp":["ti","vi","tti","tit","tv","tiv","viv","vivi","vt","vit"],"rp":["it","itt","iti","iv","ivi","itiv"]},"41":{"input":[1,4,6],"tlp":["tz",57975],"trp":["if",14792],"tlw":["fitz",198],"lp":["tz","zt","tzt","fi","va","atz","av","vat","fz","ati","fti","afti","fzt","tia","zit"],"rp":["if","itz","iff","ita","ift"]},"42":{"input":[2,4,6],"tlp":["sic",113216],"trp":["ic",528821],"tlw":["vick",133],"trw":["ist",43418],"lp":["sic","ck","sti","ckt","tis","tisc","sit","cks","ckk","ci"],"rp":["ic","ist","kt","ick","isc","ickt","its","kti","issc","isti"]},"43":{"input":[1,2,4,6],"tlp":["wisc",7325],"trp":["kat",4899],"tlw":["satz",590],"trw":["katsa",541],"lp":["wisc","ack","wic","sitz","ackt","akt","satz","tak","wit","stia","asti","akti","cksa","twi","sack","fis","fisc"],"rp":["kat","katz","kaf"]},"44":{"input":[3,4,6],"tlp":["ri",94871],"trp":["ir",113010],"tlw":["vier",1685],"lp":["ri","ve","ver","eit","rei","eite","vie","rie","eri","tie","tei","reit","rit","tri"],"rp":["ir","ier","ite","itte","iter","iert"]},"45":{"input":[1,3,4,6],"tlp":["rz",29091],"trp":["ief",12679],"tlw":["zeit",6744],"lp":["rz","etz","etzt","erz","zte","tze","tzte","zeit","rze","eif","vate","tief","rif","arz","rief","riff","fie","eife"],"rp":["ief","ife"]},"46":{"input":[2,3,4,6],"tlp":["rk",34305],"trp":["kte",27132],"tlw":["dir",10511],"lp":["rk","eic","vers","erk","cke","ckte","eck","dic","ric","dir","seit","esic","eckt","ris","reic"],"rp":["kte","kr","ird","irk","iste"]},"47":{"input":[1,2,3,4,6],"tlw":["wir",29431],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",659187],"trw":["in",95638],"lp":[],"rp":["in","ni","ih","hi","hn","ihn","hin","inn","ini","nh","hni","hh","nni","nin","nih","inh","inni","hnh","inin","hinn"]},"49":{"input":[1,5,6],"tlp":["ah",76442],"trp":["ha",235199],"tlw":["ah",759],"trw":["nah",453],"lp":["ah","anz","zah","ahn","ani","ahi"],"rp":["ha","nz","han","nah","inz","ina","nzi","inzi","haa","hina","inan","ian","hna","hz"]},"50":{"input":[2,5,6],"tlp":["sin",16409],"trp":["nk",38114],"tlw":["sinn",805],"trw":["ins",5955],"lp":["sin","sh","shi","sinn"],"rp":["nk","ins","hs","kin","kn","nis","ink","nsi","kni","hk","ish","nks","nik","kh","niss","hns"]},"51":{"input":[1,2,5,6],"tlp":["wah",16237],"trp":["hw",26859],"tlw":["sah",11589],"trw":["kann",10392],"lp":["wah","sah","ank","win","sha","wanz"],"rp":["hw","kan","kann","has","hwa","jah","hwi","hwan","hwin","insa","inw","nzw","inzw","nzwi"]},"52":{"input":[3,5,6],"tlp":["ein",403963],"trp":["ine",235416],"tlw":["ein",66637],"trw":["ihnen",10635],"lp":["ein","eine","eh","ehe","ehen","eni"],"rp":["ine","he","hen","inen","hie","hne","hei","nie","ien","hnen","ihne","inne","nei","nein"]},"53":{"input":[1,3,5,6],"tlp":["zen",18592],"trp":["nze",12641],"tlw":["zehn",1114],"trw":["nahe",2024],"lp":["zen","ahe","anze","eha","einz","eina","zeh","zieh","zehn","ahne","ahen","enz","enze","anie"],"rp":["nze","nahe","nzen","inze","hze","hzei"]},"54":{"input":[2,3,5,6],"tlp":["sein",76189],"trp":["ind",34029],"tlw":["sein",25372],"trw":["keine",11161],"lp":["sein","seh","sehe","sind","dein","enk","din","denk","eseh","eins","enke"],"rp":["ind","ken","kein","nke","inde","ines","nken","iden","kenn"]},"55":{"input":[1,2,3,5,6],"tlw":["wissen",4749],"trw":["hand",7972],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",40682],"trp":["ht",252865],"tlw":["bin",8228],"lp":["bi","bin","th","bit","bitt","tin","thi"],"rp":["ht","int","ib","hint","hti","ibt","hnt","nit","nti","nv","htb","hnit","nitt"]},"57":{"input":[1,4,5,6],"tlp":["fin",11249],"trp":["hat",98724],"tlw":["zantini",146],"trw":["hat",19760],"lp":["fin","fah","tha","fh","ahnt","tian"],"rp":["hat","hatt","hab","haf","inf","infa","haft","habt","haff","hif","hiff","htba","nzt","hatz"]},"58":{"input":[2,4,5,6],"tlp":["ch",1037218],"trp":["ich",501099],"tlw":["sich",92744],"trw":["ich",126388],"lp":["ch","cht","sch","sich","chi","bis","schi","chts","chn","chs","schn","chti"],"rp":["ich","icht","nic","nich","isch","hts","nsch","hst"]},"59":{"input":[1,2,4,5,6],"tlw":["ach",1398],"trw":["nach",23041],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bei",38768],"trp":["hr",166493],"tlw":["einer",16300],"trw":["ihr",34974],"lp":["bei","ehr","rin","rh","erh","eht","teh"],"rp":["hr","ihr","hre","hte","her","ihre","iner","hren","ieb","hier","inte","hrer","hten"]},"61":{"input":[1,3,4,5,6],"tlw":["arbeit",1479],"trw":["hatte",62837],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["dich",11521],"trw":["nickte",3237],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["wahrend",7160],"trw":["jetzt",12900],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",2552],"trw":["o",417],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",544],"trp":["oa",1055],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",96770],"trp":["os",26972],"tlw":["so",35536],"lp":["so","sso","sos"],"rp":["os","oss","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",62062],"trp":["ow",3659],"tlw":["wo",7187],"lp":["wo","sow","woo","sowo","aos","swo","wow","aso","soa","woa","awo","sao"],"rp":["ow","osa","owa","owo","osw","osas"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",4452],"trp":["oe",1221],"trw":["-",5881],"lp":["eo","e-"],"rp":["oe","-o","-e"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",546],"trp":["ox",233],"lp":["a-"],"rp":["ox","-a","oxa","oxe"]},"70":{"input":[2,3,7],"tlp":["do",34031],"trp":["od",27025],"tlw":["dose",88],"lp":["do","eso","edo","sod","esso","deo","ddo","s-","s-o","soe","dos"],"rp":["od","ode","ose","osse","ood","-s","odes","ods","odo"]},"71":{"input":[1,2,3,7],"tlp":["ewo",5402],"trp":["oda",1427],"tlw":["sodass",1096],"lp":["ewo","dwo","soda","wood","sowe","ado","wod"],"rp":["oda","odas","owe","-w","-we","oswe","owes"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["gt",75665],"trp":["ot",33072],"tlw":["tot",1524],"trw":["otto",56],"lp":["gt","to","go","tot","tg","got","gott","gg","tto","gto","ttg"],"rp":["ot","og","ott","oot","oto","otto","ogo","ogg","ottt"]},"73":{"input":[1,4,7],"tlp":["ag",98104],"trp":["of",22112],"tlw":["tag",3421],"trw":["oft",1577],"lp":["ag","ga","agt","fo","tag","fg","fot","ago","fga","ttag","foto","tof","foa","gf"],"rp":["of","off","oga","ofo","oft","offt"]},"74":{"input":[2,4,7],"tlp":["gs",15827],"trp":["oc",76156],"tlw":["sto",607],"lp":["gs","sto","gst","sg","sog","co","toc","stoc","tos","gc","sgc","gos","goss"],"rp":["oc","ost","ots","osc","oots","otsc","otos"]},"75":{"input":[1,2,4,7],"tlp":["sag",41908],"tlw":["sagt",3037],"lp":["sag","sagt","two","sof","soga","sofo","gsa","wag","woc","gas","ags","gast","gw","agst","wagt","stof","aco","asto","stag","sags"],"rp":[]},"76":{"input":[3,4,7],"tlp":["ge",417472],"trp":["or",139857],"tlw":["gro",12824],"trw":["ort",1465],"lp":["ge","eg","ro","gte","gr","ger","rg","ege","rge","geg","gro","erg","gege","egt","tro"],"rp":["or","ort","orte","ote","org"]},"77":{"input":[1,3,4,7],"tlp":["agte",36381],"trp":["offe",6976],"tlw":["fragte",8751],"lp":["agte","age","rag","gef","frag","ragt","gar","for","gera","rage","gefa","ega","fort","gra","fge","tage","fote","trag"],"rp":["offe","ogar"]},"78":{"input":[2,3,4,7],"tlp":["ges",52897],"trp":["oder",15264],"tlw":["dort",4958],"trw":["oder",15082],"lp":["ges","doc","gesc","gest","gese","ged","dor","roc","dort","sor","sorg","sge","ros","stor","tod","rges"],"rp":["oder","ord","orde","ors"]},"79":{"input":[1,2,3,4,7],"tlw":["sagte",25887],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",390483],"trw":["nun",5974],"lp":[],"rp":["un","on","nu","no","onn","nun","unn","ou","nno","non","nnu","nnun","ono","onno","uo","unno","uu","uun","unu","unun"]},"81":{"input":[1,5,7],"tlp":["au",303972],"trp":["nau",10174],"tlw":["au",5558],"lp":["au","aun","qu","qua","anu","annu","ano","quo"],"rp":["nau","ona","ua","una","oan","unan","onna","unna","uan","unau","oann","oana"]},"82":{"input":[2,5,7],"tlp":["su",18391],"trp":["us",129755],"tlw":["su",647],"trw":["uns",13571],"lp":["su","son","sons","sonn","sun","sus","ssu"],"rp":["us","uss","uns","ju","jun","ons","jo","nso","uso","jon","jus","ous","nos"]},"83":{"input":[1,2,5,7],"tlp":["aus",69449],"trp":["usa",6060],"tlw":["aus",34379],"trw":["jason",129],"lp":["aus","wu","wus","wuss","wun","auss","wuns","auso","sau","won","saus","assu","ausw","asu"],"rp":["usa","naus","ussa","unw","uw","usw"]},"84":{"input":[3,5,7],"tlp":["eu",55225],"trp":["ue",28283],"trw":["neue",1471],"lp":["eu","eue","enu","eun","eno","euen","enno"],"rp":["ue","onne","uen","neu","one","une","neue","onen","unen","n-","unne","oy","yo"]},"85":{"input":[1,3,5,7],"tlp":["aue",12361],"trp":["ux",957],"lp":["aue","enau","auen","aune","que","equ","eque","an-","ean-","eau","equa","eona"],"rp":["ux","uxa","onea","na-","nna-","naue","oya","uya"]},"86":{"input":[2,3,5,7],"tlp":["du",75774],"trp":["und",249565],"tlw":["du",44764],"trw":["und",220198],"lp":["du","dun","deu","eund","sond","esu","seu","edeu","don"],"rp":["und","unde","ud","ond","ude","use","usse","unse","onde","oden","jedo"]},"87":{"input":[1,2,3,5,7],"tlw":["sonea",505],"trw":["nasuada",322],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",42893],"trp":["ng",148258],"tlw":["gut",8191],"trw":["ob",5684],"lp":["tu","gu","tun","bo","gut","bu","tung","gn","gun"],"rp":["ng","ut","ub","ung","ug","ob","onnt","unt","utt","nung","ngt"]},"89":{"input":[1,4,5,7],"tlp":["auf",98105],"trp":["uf",112428],"tlw":["auf",72050],"trw":["offnung",187],"lp":["auf","fu","ang","gan","aug","aut","aub","gab","tau","fun","gang","bau","aufg","atu"],"rp":["uf","uft","ufg","offn","unf","natu"]},"90":{"input":[2,4,5,7],"tlp":["stu",13806],"trp":["uc",97659],"tlw":["sonst",2451],"trw":["jung",472],"lp":["stu","suc","stun","buc","tuc","stuc"],"rp":["uc","noc","usst","ust","ngs","jung","ngst","usc","usg","onst","unsc","uts","ubs","utsc"]},"91":{"input":[1,2,4,5,7],"tlw":["angst",3094],"trw":["jacob",437],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",136399],"trp":["ur",167807],"tlw":["gegen",5275],"trw":["nur",23303],"lp":["gen","ru","egen","geb","eut","rgen","run","tur"],"rp":["ur","nge","ube","uber","ute","ngen","nur","uge","unte","ugen","unge","uer"]},"93":{"input":[1,3,4,5,7],"tlw":["fur",24293],"trw":["offnete",1687],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["boden",4242],"trw":["junge",3404],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["wurde",25182],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["li",151710],"trw":["ol",121],"lp":[],"rp":["li","ll","ol","il","oll","lo","ill","io","lli","ili","llo","illi","olli","oli","lio","lil","ilo","oi","lili","olo"]},"97":{"input":[1,6,7],"tlp":["al",191580],"trp":["la",130568],"tlw":["all",2129],"trw":["lilia",446],"lp":["al","all","zo","zl","zli","ali","alli","ala","allz"],"rp":["la","lz","olz","lia","ola","liz","ila","oz","oliz","lla","llz"]},"98":{"input":[2,6,7],"tlp":["sol",18755],"trp":["ko",75943],"tlw":["soll",3129],"trw":["los",2861],"lp":["sol","soll","sl","sil"],"rp":["ko","ls","kl","los","kli","lls","lso","loss","lk","ok","olk","ills","klo","llk","lko","llko"]},"99":{"input":[1,2,6,7],"tlp":["als",59443],"trp":["las",17376],"tlw":["als",47093],"trw":["lass",1226],"lp":["als","wol","woll","wil","will","also","wal","alls","wolk","sal","sola","sowi","alas"],"rp":["las","lass","kla","kal","oka","owi","low"]},"100":{"input":[3,6,7],"tlp":["el",169112],"trp":["le",200448],"tlw":["eile",168],"trw":["lie",7334],"lp":["el","ell","eil","elle","ele","eile","eli"],"rp":["le","lle","lei","lie","iel","llei","olle","iell","iele","ile","ille","ilie","lee"]},"101":{"input":[1,3,6,7],"tlp":["alle",36348],"trp":["lze",595],"tlw":["alle",9095],"trw":["lizzie",239],"lp":["alle","ale","ela","zel","elz","ezo","ziel","zoe","ael","zell","ella","alee","eal"],"rp":["lze","lize","iela","oze","lzei","-al","-ali"]},"102":{"input":[2,3,6,7],"tlp":["sel",17287],"trp":["ld",21588],"tlw":["seele",607],"trw":["leise",2478],"lp":["sel","dl","eko","dli","del","eld","els"],"rp":["ld","kle","les","klei","lles","kel","lde","ild","leid","leis","old","ilde","lke"]},"103":{"input":[1,2,3,6,7],"tlw":["alles",9526],"trw":["lasse",483],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",111639],"trp":["lt",103510],"tlw":["vollig",1315],"trw":["ig",1168],"lp":["vo","gl","gi","tig","tl","tli","gli","vol","voll"],"rp":["lt","ig","llt","ollt","igt","lg","olg","lig","ogl","lot","ogli"]},"105":{"input":[1,4,6,7],"tlp":["alt",26083],"trp":["lag",11095],"tlw":["zog",4180],"trw":["lag",3548],"lp":["alt","fl","fal","fall","gla","zog","zig","fol","folg","avo","tzl","fla","tzli","agi"],"rp":["lag","lf","lat","otz","latt","lotz"]},"106":{"input":[2,4,6,7],"tlp":["tlic",10135],"trp":["lic",83791],"tlw":["still",966],"trw":["lost",108],"lp":["tlic","cl","glic","ckl","gk","sig","solc","ckli","stil"],"rp":["lic","lick","klic","lc","ock","lst","olc","llst","igk","lsc","igs"]},"107":{"input":[1,2,4,6,7],"tlw":["willst",2074],"trw":["lasst",1485],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vor",42281],"trp":["lte",70997],"tlw":["vor",22128],"trw":["legte",3034],"lp":["vor","elt","rl","erl","gel","viel","tel","elte","eig","rli","tell","eige","verl"],"rp":["lte","ige","llte","ler","ieg","leg","irg"]},"109":{"input":[1,3,4,6,7],"tlw":["fiel",2565],"trw":["letzte",1489],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["sollte",5278],"trw":["krieger",1798],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["wollte",8491],"trw":["klar",2511],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["hl",69806],"trw":["oh",1758],"lp":[],"rp":["hl","ho","lu","oh","uh","hu","ul","hon","ohn","hli","ln","uhl","ohl","hul","lin","nl","hol","hun","hlu","ion"]},"113":{"input":[1,5,6,7],"tlp":["zu",171648],"trp":["lan",36595],"tlw":["zu",106187],"trw":["hinzu",1319],"lp":["zu","ahl","zahl","azu","zun","zau","aul","anzu"],"rp":["lan","lau","hau","hal","hla","nzu","inau","hall","inzu","unz","hlan","iau"]},"114":{"input":[2,5,6,7],"tlp":["soh",2201],"trp":["kon",39622],"tlw":["sohn",1591],"trw":["john",638],"lp":["soh","sohn"],"rp":["kon","konn","ku","unk","lus","hlos","kun","koni","luss","uk","nkl","unkl","kus","klin","hos","link","kuss","luk"]},"115":{"input":[1,2,5,6,7],"tlw":["wohl",3262],"trw":["haus",3123],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eln",9970],"trp":["len",34944],"trw":["ohne",6453],"lp":["eln","eho","elen"],"rp":["len","llen","lein","hel","hle","ohne","hiel","hlie","leu","nel","uhe","hlen","heu","ly","hnel","nell","ohe"]},"117":{"input":[1,3,5,6,7],"tlw":["allein",3101],"trw":["luxa",831],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["sollen",1705],"trw":["konnen",8192],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["dazu",3106],"trw":["lassen",4737],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["von",54263],"trp":["ing",35552],"tlw":["von",48992],"trw":["hob",2725],"lp":["von","bl","bli","gin","ging","bil","blu"],"rp":["ing","lb","nig","htig","hlt","hut","hob","lug","ntl","hig","onig","lut","ult"]},"121":{"input":[1,4,5,6,7],"tlw":["ganz",8095],"trw":["luft",3854],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["schon",15769],"trw":["noch",31550],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["auch",23263],"trw":["obwohl",3157],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["gehen",3878],"trw":["leben",6005],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["zur",7461],"trw":["lange",4757],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["doch",19379],"trw":["konnte",19700],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["zuruck",7484],"trw":["naturlich",3611],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",10101],"trw":["p",276],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",9189],"trp":["pa",25493],"trw":["papa",249],"lp":["ap","app","apa","appa"],"rp":["pa","paa","pap","papa","ppa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",35230],"trp":["ps",471],"lp":["sp","ssp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",6529],"trp":["pas",4544],"tlw":["spa",543],"trw":["pass",277],"lp":["spa","sap","wap","wapp","aps","asp"],"rp":["pas","pass"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",4107],"trp":["pe",21955],"lp":["ep","epp","eppe","e'"],"rp":["pe","ppe","pee","'e"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["appe",1127],"trp":["px",233],"trw":["px",233],"lp":["appe","ape","epa","xp","exp","a'","eap"],"rp":["px"]},"134":{"input":[2,3,8],"tlp":["esp",4229],"trp":["'s",1830],"lp":["esp","spe","espe","sep","spee","s'","dsp","dspe","e's","dep","es'"],"rp":["'s","pes","peed"]},"135":{"input":[1,2,3,8],"tlp":["espa",426],"trw":["passe",61],"lp":["espa","dap"],"rp":[]},"136":{"input":[4,8],"tlp":["tp",1024],"trp":["pt",8640],"trw":["pt",821],"lp":["tp","ttp"],"rp":["pt","ppt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["appt",1143],"trp":["pf",28238],"trw":["pat",81],"lp":["appt","tap","apf","tpf","attp","ttpf","fp","tapf","apt","tapp","fpa","apft","apta","ffp"],"rp":["pf","pat","pft","pfa","pta"]},"138":{"input":[2,4,8],"tlp":["tsp",820],"trp":["pts",393],"lp":["tsp","stp"],"rp":["pts","ptst","pst"]},"139":{"input":[1,2,4,8],"tlp":["spat",3485],"trp":["pac",1868],"tlw":["spat",894],"trw":["passt",223],"lp":["spat","stap","cap","tspa","fpas","capt","fsp"],"rp":["pac","pfs","pfsc","ptsa","past"]},"140":{"input":[3,4,8],"tlp":["rp",4472],"trp":["pr",23900],"tlw":["treppe",1030],"trw":["peter",275],"lp":["rp","rpe","rper","rep","trep","repp","erp","ept","t'","r'"],"rp":["pr","per","pre","pte","ppte","pet","pert","peet","pete","ptet"]},"141":{"input":[1,3,4,8],"tlp":["rpf",493],"trp":["pra",7549],"tlw":["tapfer",173],"trw":["paar",4977],"lp":["rpf","erpf","apfe","rpa","erpa","apr","rap","tape","ar'","ra'"],"rp":["pra","pfe","paar","pfte","pate","pfer","par","patr","perf","part"]},"142":{"input":[2,3,4,8],"tlp":["spr",13156],"trp":["prec",3135],"tlw":["speer",150],"trw":["presste",522],"lp":["spr","spre","rsp","espr","ersp","rspr","t's","sper","sept","tspr","resp","r's","ce'"],"rp":["prec","pers","pres","pred","perc","perd","pec"]},"143":{"input":[1,2,3,4,8],"tlw":["spater",2320],"trw":["pferd",730],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",75202],"lp":[],"rp":["mm","nm","mp","np","mn"]},"145":{"input":[1,5,8],"tlp":["am",75203],"trp":["ma",116805],"tlw":["am",13314],"trw":["man",13524],"lp":["am","amm","amp","ama","aman","anm"],"rp":["ma","man","mann","nma","nam","pan","nap","napp","pann","mma","mman","mam","mama","mna"]},"146":{"input":[2,5,8],"tlp":["sm",2006],"trp":["ms",3988],"tlw":["sms",84],"lp":["sm","ssm","sms"],"rp":["ms","mms","nsp","mj","nsm"]},"147":{"input":[1,2,5,8],"tlp":["sam",18083],"trp":["nsam",1490],"tlw":["sam",1544],"trw":["japan",53],"lp":["sam","samm","span","sma","asam","ams","ansp","sams","wam","wamm","ssam"],"rp":["nsam","mas","jam","mass","maj","mw","nspa","mja","mjan"]},"148":{"input":[3,5,8],"tlp":["em",142396],"trp":["me",172798],"tlw":["em",427],"trw":["'ne",199],"lp":["em","eme","emp","enp","enem","enpe"],"rp":["me","mme","men","nem","mmen","pen","ppen","mpe","my","mee","yp","npe","ym","mmy"]},"149":{"input":[1,3,5,8],"tlp":["ema",15399],"trp":["name",3654],"tlw":["amy",168],"trw":["namen",2293],"lp":["ema","ame","eman","amme","amen","ampe","aym","ampy","xem","eam","amy","enma","anme","emna","xeme"],"rp":["name","max","mae","may","maya"]},"150":{"input":[2,3,5,8],"tlp":["dem",54438],"trp":["mens",6613],"tlw":["dem",45085],"trw":["jedem",1143],"lp":["dem","sem","esem","emd","edem","emde","esm","djem","dm"],"rp":["mens","jem","md","mes","ndem","mde","mess","mden","mend","med","mmes"]},"151":{"input":[1,2,3,5,8],"tlw":["wem",425],"trw":["jemand",3073],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",2485],"trp":["mt",14056],"lp":["tm","bm"],"rp":["mt","mmt","mb","ptm","mpt"]},"153":{"input":[1,4,5,8],"tlp":["ampf",3371],"trp":["mpf",5070],"tlw":["amt",94],"trw":["matt",200],"lp":["ampf","tam","amt","fam","ammt","tamm","atm","fm","tama","tma","tman"],"rp":["mpf","mat","mpft","npf","matt","mant","mpfa","pfan","ptma"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["stm",109],"trp":["mst",1918],"lp":["stm","bstm"],"rp":["mst","mmst","ntsp","msc","mmsc","mc","nstm"]},"155":{"input":[1,2,4,5,8],"tlw":["stamm",309],"trw":["mats",101],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",24866],"trp":["mer",37720],"tlw":["typ",417],"trw":["mr",1767],"lp":["rm","rem","rme","tem","erm","emer","bem","beme","rmen","teme"],"rp":["mer","mmer","mte","ment","mmte","mr","met","mete","mbe","mert"]},"157":{"input":[1,3,4,5,8],"tlw":["arm",2393],"trw":["manner",2823],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["erdem",1712],"trw":["mrs",981],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["warme",548],"trw":["mandred",237],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",11374],"lp":[],"rp":["pi","ip","ipp","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2458],"trp":["papi",842],"trw":["pia",152],"lp":["api","aip","zip","zp","zap","zapp"],"rp":["papi","paz","pazi","pia","piz","pizz"]},"162":{"input":[2,6,8],"tlp":["spi",7019],"trp":["isp",965],"lp":["spi"],"rp":["isp","ispi","pis","kp","kip","kipp","ksp","kspi","ips"]},"163":{"input":[1,2,6,8],"tlp":["spaz",195],"trp":["kap",1913],"lp":["spaz","zsp","zspi","wisp","szip","szap"],"rp":["kap","kapi","kapp"]},"164":{"input":[3,6,8],"tlp":["eppi",167],"trp":["pie",5917],"lp":["eppi","eip"],"rp":["pie","ippe","pei","peie","ie'","ipe"]},"165":{"input":[1,3,6,8],"tlp":["apie",1000],"trp":["'z",210],"lp":["apie","zep","a'z","a'za","z'"],"rp":["'z","'za"]},"166":{"input":[2,3,6,8],"tlp":["spie",4741],"trp":["pek",382],"tlw":["spie",186],"lp":["spie","eisp","spek","spei","espi","skep","disp","sie'"],"rp":["pek","peis","kep","ispe","is'","ie's","idep","k'","k'e"]},"167":{"input":[1,2,3,6,8],"trw":["kappe",55],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",377],"trp":["pit",3051],"tlw":["tippt",50],"lp":["tip","tipp"],"rp":["pit","pti","ippt","itp","ipt","piv"]},"169":{"input":[1,4,6,8],"tlp":["apit",1458],"trp":["pitz",1593],"trw":["pfiff",129],"lp":["apit","zpf","tzp","zapf"],"rp":["pitz","pfi","pita","pati","ipf","ptai","pfif","pav","pavi","patz"]},"170":{"input":[2,4,6,8],"tlp":["spit",1593],"trp":["pist",286],"lp":["spit","cksp"],"rp":["pist","pisc","pic","ppic","ptis","ktp"]},"171":{"input":[1,2,4,6,8],"tlw":["spitz",113],"trw":["packt",105],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",838],"trp":["pri",3830],"tlw":["tippte",195],"lp":["rip","epti","ripr","verp","eitp","ripp","epri","ript"],"rp":["pri","pier","pite","prie","ipr","ipre","prei","ptie","peit","pir","prit","peti"]},"173":{"input":[1,3,4,6,8],"tlw":["appetit",109],"trw":["papier",621],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["ripred",581],"trw":["preis",373],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["spitze",616],"trw":["passiert",1606],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",156924],"trw":["im",27050],"lp":[],"rp":["mi","im","hm","imm","ihm","inm","min","ph","him","himm","phi","hmi","nim","nimm","imn","mni","imni","mh","pin","nmi"]},"177":{"input":[1,5,6,8],"tlp":["ami",10941],"trp":["inma",7220],"tlw":["ahm",221],"trw":["nahm",4064],"lp":["ami","ahm","zim","zimm","aph","aphi"],"rp":["inma","nahm","hma","mia","mah","ham","ima","mani","pha","hnap","iam","pani","hamm","mz"]},"178":{"input":[2,5,6,8],"tlp":["sim",1838],"trp":["mis",4451],"tlw":["sims",60],"trw":["miss",415],"lp":["sim","sph","spin","smi"],"rp":["mis","miss","mk","mnis","imms","imk","mik","jim","jimm","ims","mij","mmis","nspi","hms","issm","mmk"]},"179":{"input":[1,2,5,6,8],"tlw":["asami",402],"trw":["kam",6230],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["einm",7220],"trp":["mei",39849],"tlw":["einem",21852],"trw":["meine",11395],"lp":["einm","eim","ehm","ehme","emei","emi"],"rp":["mei","mein","inem","imme","meh","hme","iem","nehm","niem","hmen","heim","mie","hem","mien"]},"181":{"input":[1,3,5,6,8],"tlw":["annehmen",189],"trw":["nahmen",491],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["seinem",7860],"trw":["meines",844],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["damien",281],"trw":["niemand",3087],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",12361],"trp":["mit",82241],"tlw":["tim",137],"trw":["mit",65945],"lp":["tim","timm","thm","thim"],"rp":["mit","mitt","immt","htm","nmit","hmit","hmt","ptim","mith","mitn","mitb","ntim","htip","itm","hitm","htp"]},"185":{"input":[1,4,5,6,8],"tlw":["tamani",796],"trw":["mattia",102],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["stimmt",967],"trw":["mich",27002],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["wachmann",161],"trw":["macht",2965],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["beim",2845],"trw":["mir",28421],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["zimmer",2340],"trw":["prinz",511],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["stimme",5685],"trw":["menschen",4046],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["damit",7217],"trw":["machte",4587],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",16041],"lp":[],"rp":["op","po","opp"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",54],"trp":["opa",519],"lp":["apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",569],"trp":["pos",794],"lp":["spo","sop"],"rp":["pos","osp","pso","ops"]},"195":{"input":[1,2,7,8],"lp":[],"rp":[]},"196":{"input":[3,7,8],"tlp":["eop",243],"trp":["oppe",220],"lp":["eop","epo"],"rp":["oppe","-p","ope"]},"197":{"input":[1,3,7,8],"tlp":["eopa",185],"lp":["eopa","xpo","expo"],"rp":[]},"198":{"input":[2,3,7,8],"tlp":["dop",158],"trp":["odsp",102],"lp":["dop","dopp"],"rp":["odsp","pose"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1390],"trp":["pot",525],"lp":["top","topp","tpo"],"rp":["pot","pott","pto","ptop"]},"201":{"input":[1,4,7,8],"tlp":["tpfo",466],"trp":["opf",13450],"tlw":["topf",130],"lp":["tpfo","topf","apto"],"rp":["opf","pfo","pfot","opft","pag","pagg"]},"202":{"input":[2,4,7,8],"tlp":["stop",653],"trp":["post",447],"tlw":["spott",92],"trw":["post",110],"lp":["stop","spot","tpos"],"rp":["post","poc"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",949],"trp":["pro",5714],"tlw":["reporter",63],"trw":["potter",173],"lp":["rop","gep","trop","gepr","g'","repo","epor","geop","tpro"],"rp":["pro","orp","orpe","por","port","-top","prot","prop","prog","pero","perg"]},"205":{"input":[1,3,4,7,8],"tlw":["tropfte",104],"trw":["pfote",449],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["gepresst",119],"trw":["perdor",186],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["stopfte",111],"trw":["professor",480],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["um",81208],"trw":["um",30478],"lp":[],"rp":["um","mu","om","mo","omm","pu","up","mon","mom","umm","mun","nom","nomm","upp","pun","ump","unm","omp","nmo","unmo"]},"209":{"input":[1,5,7,8],"tlp":["aum",11931],"trp":["mau",2979],"trw":["mona",273],"lp":["aum","aup","amo","amon","amu","apu","ammo","aom","anmu"],"rp":["mau","pau","mona","oma","uma","omma","manu","naom","oman","pua","mano"]},"210":{"input":[2,5,7,8],"tlp":["spu",5447],"trp":["mus",23962],"trw":["muss",5445],"lp":["spu","som","sum","somm","summ","sup","smu","supp"],"rp":["mus","muss","ums","usp","mons","omms","mso","umso","mos","usm","moos","ussp"]},"211":{"input":[1,2,5,7,8],"tlw":["amos",143],"trw":["maus",230],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",2575],"trp":["omme",15487],"trw":["neuem",121],"lp":["enom","emu","empo","emo","emon","epu","eum"],"rp":["omme","ome","omen","mome","ume","umme","umen","uppe","umpe","omy","uem","mone","pony"]},"213":{"input":[1,3,5,7,8],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dumm",400],"trw":["mussen",4744],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["damon",348],"trw":["pause",441],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tum",1365],"trp":["mut",9353],"tlw":["tom",616],"trw":["mut",548],"lp":["tum","tom","tumm","ttom"],"rp":["mut","mutt","mog","upt","ommt","mg","umg","omb","ummt","mung","nmog","mot","umb","umt","put","mott"]},"217":{"input":[1,4,5,7,8],"tlw":["baum",788],"trw":["mag",837],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["stumm",329],"trw":["musst",1824],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["anspannung",163],"trw":["magnus",226],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["genommen",1020],"trw":["mutter",5624],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["raum",1894],"trw":["magen",753],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["spurte",2360],"trw":["musste",7028],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["warum",5314],"trw":["umstanden",254],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",9042],"lp":[],"rp":["pl","plo","lip","lipp","pol","poli","lop","lp","ilip","olp","pil","pli","pio","pilo","ipl","ipli","pill","opi","poll","ppl"]},"225":{"input":[1,6,7,8],"tlp":["zop",139],"trp":["pla",4483],"tlw":["apollo",54],"trw":["opal",202],"lp":["zop","zipl","apol","appl"],"rp":["pla","pal","lap","lapp","pala","opal","pliz","pilz","pila","ppla"]},"226":{"input":[2,6,7,8],"tlp":["spio",245],"trp":["kop",10195],"trw":["klops",60],"lp":["spio","spl","spli"],"rp":["kop","klop","posi","klip","kpl","ispl","plos","lops","kopi"]},"227":{"input":[1,2,6,7,8],"trw":["klaps",56],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",361],"trp":["piel",3820],"trw":["lippe",146],"lp":["elp","epl"],"rp":["piel","pel","lpe","olpe","ppel","leop","ple","lep","lepp","-pi","-pie","l'","ll'","oll'","pell","'el","lpel","opie"]},"229":{"input":[1,3,6,7,8],"trw":["pelz",894],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spiel",618],"trw":["klippe",159],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["speisesaal",104],"trw":["klappe",167],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tolp",465],"trp":["plot",3683],"trw":["pilot",82],"lp":["tolp","gip","tpl"],"rp":["plot","pito","pig","ppig","plit"]},"233":{"input":[1,4,6,7,8],"tlw":["zopf",91],"trw":["platz",1840],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["politik",180],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["spalt",238],"trw":["kopf",9064],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["prior",72],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["rappelte",154],"trw":["pfeil",312],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["spielte",526],"trw":["korper",2392],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["distelpfote",300],"trw":["kapitel",832],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",4691],"trw":["philip",527],"lp":[],"rp":["ml","mli","mil","lm","lim","muh","imo","limm","mili","imon","hlim","minu","oph","umi","umin","hop","hmu","lum","llm","phil"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["zum",13031],"trw":["mal",9722],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",1611],"trw":["komm",1435],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["william",287],"trw":["kaum",3695],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["himmel",2108],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["einmal",7220],"trw":["plane",315],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["spielen",619],"trw":["kommen",3154],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["zusammen",3969],"trw":["niemals",1641],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["vom",5596],"trw":["html",387],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",198],"trw":["umhang",262],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["schlimm",464],"trw":["kommt",2302],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["allmahlich",712],"trw":["plotzlich",3426],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["gemeint",376],"trw":["herum",2872],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["familie",1680],"trw":["uberhaupt",2569],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gekommen",2443],"trw":["mochte",2710],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["gemacht",2597],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/en-colemak-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/en-colemak-keymap.json index 2e8c2b1431..0a1def7b10 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/en-colemak-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/en-colemak-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",410],"tlw":["a",211837],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"r","baseshift":"R","tlp":["rr",29445],"tlw":["r",211],"lp":["rr"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["ar",265629],"tlw":["war",4160],"lp":["ar","wa","ra","aw","war","arr","wr","awa","ara","rw","raw","rar","rwa","rra","rwar","arra","awar","wra","warr","ww"],"rp":[]},"4":{"input":[3],"base":"s","baseshift":"S","tlp":["ss",89478],"tlw":["s",2993],"lp":["ss"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["as",286499],"tlw":["as",63759],"lp":["as","sa","ass","xa","ssa","ax","assa","asa","sas","saa","xas","ssas","sass","sax"],"rp":[]},"6":{"input":[2,3],"base":"f","baseshift":"F","tlp":["rs",105128],"tlw":["f",277],"lp":["rs","fr","ff","rf","sf","ssf","fs","sr","ssr","ffr","ffs"],"rp":[]},"7":{"input":[1,2,3],"tlp":["was",117615],"tlw":["was",112330],"lp":["was","fa","af","ars","ws","sw","far","fra","saw","aff","ras","fas","sar","rsa","ssar","saf","afr","aws","raf","rass"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",55910],"tlw":["t",670],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"p","baseshift":"P","tlp":["at",371419],"tlw":["at",51085],"lp":["at","ta","pa","ap","pp","app","pt","att","tat","pat","apt","apa","tta","atta","pap","pta","apta","patt","ppa","appa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["rt",81050],"tlw":["c",872],"lp":["rt","tr","ct","cr","rc","cc","tc","ttr","ctr","rtr","rcr","rct"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",118675],"tlw":["part",4589],"lp":["ca","ac","pr","art","par","act","tra","tw","rat","car","part","tar","rac","rta","cat","acc","rp","wat","ract","atc"],"rp":[]},"12":{"input":[3,4],"base":"d","baseshift":"D","tlp":["st",260669],"tlw":["st",798],"lp":["st","ts","ds","dd","sts","sd","dds","dst","tst","tts"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ad",140314],"tlw":["past",2353],"lp":["ad","da","sta","sp","ast","xp","ps","xt","pas","stat","sat","pass","add","spa","aps","dat","tas","past","ads","ats"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rd",48242],"tlw":["dr",852],"lp":["rd","ft","dr","sc","str","rst","rds","rts","scr","cts","cs","tf","ddr","df","fts","cd","dsc","rsd","cst","fc"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",26043],"tlw":["fact",3233],"lp":["ard","aft","fac","ward","star","stra","cas","fat","rad","fact","xc","dar","dra","sca","ards","rsta","draw","xtr","spr","fast"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",20957],"trw":["n",169],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"j","baseshift":"J","tlp":["an",578917],"trp":["na",51349],"tlw":["an",29559],"trw":["j",365],"lp":["an","ann","ana","aj","anna","aan"],"rp":["na","ja","nan","nj","nna","jan","nann"]},"18":{"input":[2,5],"base":"k","baseshift":"K","tlp":["rn",39425],"trp":["kn",27363],"trw":["k",182],"lp":["rn","rk","rkn"],"rp":["kn","nk","nr","nkn","kr","nkr"]},"19":{"input":[1,2,5],"tlp":["ak",39732],"trp":["ka",3991],"tlw":["ran",1611],"trw":["jr",190],"lp":["ak","wn","ran","wan","ark","ank","arn","rna","rank","rran","awn","aran","wak","warn","rawn","rka"],"rp":["ka","nar","nw","narr"]},"20":{"input":[3,5],"base":"m","baseshift":"M","tlp":["sm",13242],"trp":["ns",85305],"trw":["m",1273],"lp":["sm","sn","ssm"],"rp":["ns","ms","mm","nm","mn","nsm","nns","mns","mms"]},"21":{"input":[1,3,5],"tlp":["am",72035],"trp":["ma",137500],"tlw":["am",4235],"trw":["man",9572],"lp":["am","ans","sam","san","sma","asn","xam","ama","ams","xan"],"rp":["ma","man","nam","mas","mana","mma","mann","mman","maj","mass"]},"22":{"input":[2,3,5],"tlp":["rm",33028],"trp":["ks",14097],"trw":["mr",4133],"lp":["rm","sk","rms","rns","rks","rnm","sks","rkf","rkm"],"rp":["ks","nf","mr","mrs","nks","mf","kf","nsf","km","nfr","msf"]},"23":{"input":[1,2,3,5],"tlp":["ask",11409],"trp":["mar",15017],"tlw":["ask",2497],"trw":["mark",882],"lp":["ask","rma","arm","fam","rman","answ","wasn","ram","fran","fan","rans","arms","anks","warm","asks"],"rp":["mar","mak","mark","nsw","marr"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",3003],"trp":["nt",218499],"tlw":["b",695],"lp":["bt","tn","bb","tb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ab",55519],"trp":["nat",11510],"tlw":["pan",150],"trw":["japan",279],"lp":["ab","ba","ant","tan","pan","tant","tab","ban","bab","bj","bat","batt","anta","apan","abb"],"rp":["nat","nta","nab","jap","japa"]},"26":{"input":[2,4,5],"tlp":["ck",51278],"trp":["nc",79565],"tlw":["bc",95],"lp":["ck","br","rb","rtn","ckn","rnt","bc","tk","ckb","tbr","ckt","cn","cb"],"rp":["nc","ntr","ncr","nct","kt","kb"]},"27":{"input":[1,2,4,5],"tlp":["can",27607],"trp":["ntra",2857],"tlw":["can",15149],"trw":["jack",1623],"lp":["can","ack","anc","tak","bac","back","want","bra","ranc","tanc","tran","bar","rtan","rab","cann","rant","tack"],"rp":["ntra","jac","jack"]},"28":{"input":[3,4,5],"tlp":["dn",14682],"trp":["nd",415919],"trw":["nd",119],"lp":["dn","bs","tm","dm","sb","stm","bst","db","bm","bts"],"rp":["nd","mb","nts","nds","nst","mst","ntm","mbs","ndm","ndn"]},"29":{"input":[1,3,4,5],"tlp":["and",307129],"trp":["mp",43386],"tlw":["and",266855],"trw":["mad",373],"lp":["and","stan","tand","ands","amp","dan","bas","ants","band","bad"],"rp":["mp","mat","mad","mpa","mpan","nda","matt","mpt","mand","nsta"]},"30":{"input":[2,3,4,5],"tlp":["cks",2772],"trp":["ndr",3159],"tlw":["cbs",76],"trw":["kd",65],"lp":["cks","rtm","ckm","rnst","fb","rmt","rdb","dk","bstr"],"rp":["ndr","nstr","nsc","mbr","ndf","mc","mcd","ndsc","mcc","ndk","ncts"]},"31":{"input":[1,2,3,4,5],"tlw":["dark",1865],"lp":[],"rp":[]},"32":{"input":[6],"base":"e","baseshift":"E","trp":["ee",129154],"trw":["e",471],"lp":[],"rp":["ee"]},"33":{"input":[1,6],"base":"q","baseshift":"Q","tlp":["ae",810],"trp":["ea",216643],"tlw":["q",103],"lp":["ae","aq"],"rp":["ea","eq","eea"]},"34":{"input":[2,6],"base":"z","baseshift":"Z","tlp":["re",464927],"trp":["er",558051],"tlw":["re",63],"trw":["er",80],"lp":["re","ree","ze","rre","reer","zz","rer","zer","reez"],"rp":["er","ere","err","eer","erre","ez","eez","eze","eeze","eere","erer"]},"35":{"input":[1,2,6],"tlp":["we",135334],"trp":["ear",54836],"tlw":["were",34909],"trw":["ear",427],"lp":["we","rea","are","wer","were","wee","wea","rew","az","req","za","wear","ware","area"],"rp":["ear","ew","era","eare","erw","ewe"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["se",231764],"trp":["es",259811],"tlw":["see",9997],"lp":["se","see","sse","ses","sses","sess","sees"],"rp":["es","ess","ese","esse","ees","eese"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ase",11581],"trp":["ex",43940],"tlw":["sea",1374],"trw":["ease",378],"lp":["ase","sea","asse","xe","sq","ases","sex","seq","seas","axe","xes"],"rp":["ex","eas","exa","ease","essa","exe","esea","easa","exas"]},"38":{"input":[2,3,6],"tlp":["fe",67683],"trp":["ers",54211],"tlw":["free",1788],"lp":["fe","res","ffe","rse","ser","fer","fee","ress","ffer","fere","rese","fre","ref"],"rp":["ers","ef","erf","eff","erse","efe","eres"]},"39":{"input":[1,2,3,6],"tlp":["reas",7091],"trp":["ears",10248],"tlw":["few",5711],"trw":["ears",565],"lp":["reas","few","swe","fea","swer","fear","sear","wes","afe","wers","safe","aref","affe","werf","swee","xer"],"rp":["ears","ews","ersa","exer"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["te",259049],"trp":["et",117117],"tlw":["tv",551],"trw":["et",324],"lp":["te","ve","tte","tee","tev","teve","teet","tv","vet","ttee"],"rp":["et","ev","eve","ett","eet","ette","ete","etee","eev","eeve"]},"41":{"input":[1,4,6],"tlp":["pe",115056],"trp":["ep",39298],"tlw":["tea",508],"trw":["eat",1112],"lp":["pe","av","ate","ave","va","ppe","pea","atte","appe","tea","tate","ape","ppea"],"rp":["ep","eat","eep","ept","eate","eav","epa"]},"42":{"input":[2,4,6],"tlp":["ce",144944],"trp":["ec",91763],"tlw":["tree",670],"trw":["ever",4714],"lp":["ce","ver","ter","rec","tter","cre","rv","tre","ret","cer","rce","cte","rte","cce"],"rp":["ec","ever","ect","erv","ert","ece"]},"43":{"input":[1,2,4,6],"tlp":["per",37369],"trp":["eca",14464],"tlw":["water",2519],"lp":["per","pre","ace","reat","pec","rep","ater","twe","rate","crea","pect","care","pare","twee","cep"],"rp":["eca","eac","etw","erat","etwe"]},"44":{"input":[3,4,6],"tlp":["de",167797],"trp":["ed",326541],"tlw":["set",3472],"trw":["ed",253],"lp":["de","ted","ste","sed","ded","des","ved","ves","tes","ssed","set","sted","dde","sev","seve","dee","dv"],"rp":["ed","est","eed"]},"45":{"input":[1,3,4,6],"tlp":["spe",18659],"trp":["ead",29380],"tlw":["state",2221],"trw":["east",920],"lp":["spe","ade","dea","ated","xpe","ped","pped","ates","aste","dep","adv","stea","step"],"rp":["ead","exp","expe","ext","esp","east","espe"]},"46":{"input":[2,3,4,6],"tlp":["red",36139],"trp":["ered",12958],"tlw":["street",2374],"trw":["effect",1185],"lp":["red","der","fte","ces","fter","dre","ced","ster","rest","sec","rde","cess","serv","ders","dec","cted","stre","ters","rder"],"rp":["ered"]},"47":{"input":[1,2,3,4,6],"tlw":["after",12071],"trw":["except",1180],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["he",1036192],"trw":["he",92135],"lp":[],"rp":["he","en","ne","hen","een","ene","nee","nne","eh","hn","hee","enn","nh","nen","enne","hene","ehe","nhe","ehen","enh"]},"49":{"input":[1,5,6],"tlp":["ane",5091],"trp":["ha",357027],"tlw":["anne",519],"trw":["jane",336],"lp":["ane","ah","anne","ahe","ahea"],"rp":["ha","han","hea","ean","je","nea","ena","eha","enj","jea","nha","eah","eane","jean","nq"]},"50":{"input":[2,5,6],"tlp":["ren",22668],"trp":["her",160213],"tlw":["zen",79],"trw":["her",47940],"lp":["ren","rne","rke","rh"],"rp":["her","ke","here","hr","ner","ern","hre","eren","kne","ek","eek","ener","ken","hree","kee","nner"]},"51":{"input":[1,2,5,6],"tlp":["wh",148489],"trp":["new",18090],"tlw":["when",27718],"trw":["new",10172],"lp":["wh","whe","wha","when","ake","wher","wen","ween","aren","week","arke","aken"],"rp":["new","har","hear","eak","knew","earn","nera","near"]},"52":{"input":[3,5,6],"tlp":["sh",119750],"trp":["me",235102],"tlw":["she",45928],"trw":["me",30278],"lp":["sh","she","sen","seem"],"rp":["me","em","men","hem","nes","eme","hes","mes","ens","ness","hese","eem","nse","mse","mem","emen"]},"53":{"input":[1,3,5,6],"tlp":["ame",34012],"trp":["has",13193],"tlw":["same",6718],"trw":["has",11125],"lp":["ame","sha","same","ash","ames","anes","sham"],"rp":["has","mea","mean","ema","name","eam","nex","exam","ham","eman","eans","exan","hame"]},"54":{"input":[2,3,5,6],"tlp":["rem",11660],"trp":["mer",13928],"tlw":["fresh",618],"trw":["mere",523],"lp":["rem","ske","reme","rme","fren","fen","rsh","rmer","rnme"],"rp":["mer","hers","erm","kes","eks","eeks","ners","mmer","ernm","efen","mere"]},"55":{"input":[1,2,3,5,6],"tlw":["answer",1929],"trw":["make",9390],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",1104883],"trp":["ent",104826],"tlw":["the",506536],"trw":["even",12216],"lp":["th","the","be","ven","ten","bee","been","then","bet","tten"],"rp":["ent","ht","nte","even","eth","nev","nv","neve","ethe","ente"]},"57":{"input":[1,4,5,6],"tlp":["tha",132122],"trp":["hat",148416],"tlw":["that",110865],"trw":["have",35739],"lp":["tha","that","ath","pen","than","ph","athe","bea","ante","ppen","van","pene","bje"],"rp":["hat","hav","have","hap","happ","eath","enta"]},"58":{"input":[2,4,5,6],"tlp":["ch",138742],"trp":["nce",54473],"tlw":["there",23867],"trw":["never",9168],"lp":["ch","ther","thr","bec","che","ber","tch","cen","rth","rent","cent","thre","rch","cke","bre"],"rp":["nce","enc","ence","nter","nch"]},"59":{"input":[1,2,4,5,6],"tlw":["what",26770],"trw":["each",6050],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["them",24753],"trp":["ned",28030],"tlw":["them",21593],"trw":["need",4397],"lp":["them","den","thes","dent","tem","sent"],"rp":["ned","ment","nde","end","med","hed","met","ents","mbe","nted","emb","meth","need","nded"]},"61":{"input":[1,3,4,5,6],"tlw":["death",2323],"trw":["had",63389],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["remember",2277],"trw":["members",1108],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["came",6889],"trw":["heard",3016],"lp":[],"rp":[]},"64":{"input":[7],"base":"i","baseshift":"I","trp":["ii",1762],"trw":["i",117501],"lp":[],"rp":["ii","iii"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ai",104869],"trp":["ia",38456],"lp":["ai"],"rp":["ia","iai"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["ri",146328],"trp":["ir",91496],"lp":["ri","rri"],"rp":["ir","iri","irr","irri"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wi",119378],"trp":["ira",1826],"tlw":["air",2428],"trw":["ira",59],"lp":["wi","rai","air","ari","arri","ria","wri","wai","rria","aria","rwi","awi","rawi","wir","rari","awai","rrai","arwi"],"rp":["ira","iar"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["si",120170],"trp":["is",263616],"trw":["is",60295],"lp":["si","ssi","sis","ssis","siss"],"rp":["is","isi","iss","issi","-s","isis","-si","-i"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["sai",25354],"trp":["ix",4876],"tlw":["six",1928],"trw":["ix",80],"lp":["sai","asi","assi","xi","six","ais","sia","xis","ssia","asis","sias","asia","axi","aisi"],"rp":["ix","isa","ias","isas","isaa","issa"]},"70":{"input":[2,3,7],"tlp":["fi",67126],"trp":["if",58122],"tlw":["sir",1984],"trw":["if",25154],"lp":["fi","fir","ris","firs","ffi","fri","sir","rsi","fif","rif","risi","fis","rifi"],"rp":["if","irs","iff","ifi","iffi","isf","-f"]},"71":{"input":[1,2,3,7],"tlp":["fai",5226],"trp":["isfa",500],"tlw":["fair",842],"lp":["fai","wis","wif","aris","fair","rais","airs","swi","frai","fix","ffai","rwis","sari","afri","affi","rsia","swif","wais","fia"],"rp":["isfa"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["ti",213739],"trp":["it",311028],"tlw":["g",298],"trw":["it",92474],"lp":["ti","gi","tti","gg","tit","gt","tig","titi","ttit","ggi","git","gig","tg"],"rp":["it","ig","iti","itt","igi","itti","igg"]},"73":{"input":[1,4,7],"tlp":["ag",47829],"trp":["ip",16613],"tlw":["tip",221],"lp":["ag","ati","ga","pi","tai","aga","gai","agai","pai","ait","tia","tati","pti","agi","pit","ppi","gat"],"rp":["ip","ita","iat"]},"74":{"input":[2,4,7],"tlp":["ci",45417],"trp":["ic",118179],"tlw":["critic",79],"lp":["ci","gr","cti","tic","rg","rit","ric","tri","rig","rti","cri","cit","gir","riti","rtic","tir"],"rp":["ic","ici","ict","irt"]},"75":{"input":[1,2,4,7],"tlp":["wit",77056],"trp":["ica",19163],"tlw":["wait",1256],"lp":["wit","pri","gra","cia","acti","arg","rati","arti","rica","trai","pic","rtai","writ","gar","rag","wait","tica","cati"],"rp":["ica","icat"]},"76":{"input":[3,4,7],"tlp":["di",96016],"trp":["id",100069],"tlw":["did",12252],"trw":["its",10155],"lp":["di","sti","did","sid","gs","sit","dis","sig","dg","sist","dit","tis","siti","dist","diti"],"rp":["id","ist","its","isti","idd"]},"77":{"input":[1,3,4,7],"tlp":["aid",27860],"trp":["ista",3836],"tlw":["said",23960],"trw":["ida",198],"lp":["aid","said","spi","adi","dia","sati","spit","xist","diat","disa","sag","ssag","stai","atis","disp"],"rp":["ista","ips","isp","ida","isap"]},"78":{"input":[2,3,4,7],"tlp":["fic",12500],"trp":["irst",11403],"tlw":["first",11244],"lp":["fic","ffic","dif","diff","sic","dri","fig","sci","dir","disc","dic","cis","rid","tif","cid","rdi","stri"],"rp":["irst","ift","isc"]},"79":{"input":[1,2,3,4,7],"tlw":["paris",1353],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"y","baseshift":"Y","trp":["in",644105],"trw":["in",155002],"lp":[],"rp":["in","ni","ny","nin","yi","yin","ini","inn","nni","inin","nnin","inni","yn","nny","iny","nyi","nyin","inny","ynn"]},"81":{"input":[1,5,7],"tlp":["ay",87083],"trp":["ina",10155],"tlw":["any",10758],"trw":["nay",83],"lp":["ay","ain","any","ani","ayi","ayin","aini","anin","anni"],"rp":["ina","ian","ya","nia","inan","nai","ji","yan","inj","nian","iann"]},"82":{"input":[2,5,7],"tlp":["ry",67816],"trp":["ki",42462],"trw":["ink",130],"lp":["ry","rin","rni","rnin","rry","ryi","ryin","rki","rkin","rink","rik"],"rp":["ki","kin","ik","ink","nki","nkin","inki","ky","nry"]},"83":{"input":[1,2,5,7],"tlp":["way",28360],"trp":["yw",1970],"tlw":["way",11339],"trw":["iran",85],"lp":["way","win","ary","aki","akin","away","rain","arin","arry","ray","rian","arni","rary","anyw","wy"],"rp":["yw","nary","inar","nyw","kay"]},"84":{"input":[3,5,7],"tlp":["sin",21536],"trp":["im",93559],"tlw":["sin",306],"trw":["my",40423],"lp":["sin","sy","sim","smi","ssin"],"rp":["im","mi","my","ys","min","ins","nsi","mis","ims","nis","miss","mys","imi","insi","mmi"]},"85":{"input":[1,3,5,7],"tlp":["ays",16554],"trp":["may",9648],"tlw":["say",7781],"trw":["many",8068],"lp":["ays","say","ami","ains","says","asy","aim","sayi","amin","sian","anis","asin"],"rp":["may","many","ima","mai","main","iam","ians","mina"]},"86":{"input":[2,3,5,7],"tlp":["fin",16231],"trp":["inf",5607],"tlw":["firm",690],"trw":["kiss",443],"lp":["fin","ski","rim","rmi","fini","rmy","rmin","skin","firm","risk"],"rp":["inf","mir","nfi","nif","irm","isk","kis","kiss","nifi","mik"]},"87":{"input":[1,2,3,5,7],"tlw":["army",2073],"trw":["mary",586],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["ty",42717],"trp":["ng",301290],"tlw":["by",35333],"lp":["ty","by","tin","ting","bi","gin","gn","ttin"],"rp":["ng","ing","int","nti","ning","ity","ib","ying","ign","nit","yt","nig"]},"89":{"input":[1,4,5,7],"tlp":["ang",16987],"trp":["nati",5202],"tlw":["again",7165],"lp":["ang","gain","tain","gan","pin","ping","aint","anyt","atin","abi","py","pain","pany","ppin","agin","tay","anag"],"rp":["nati","nag","ntai"]},"90":{"input":[2,4,5,7],"tlp":["ring",17926],"trp":["king",26881],"tlw":["city",2930],"trw":["king",2321],"lp":["ring","bri","try","rty","cy","rib","city","cin","ryt","rity","cing","tryi","rinc","brin"],"rp":["king","inc","ick","nci","nic","ntry"]},"91":{"input":[1,2,4,5,7],"tlw":["taking",1995],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["tim",28120],"trp":["ind",31046],"tlw":["sitting",1409],"trw":["mind",4439],"lp":["tim","din","ding","dy","sing","didn","sib","sign"],"rp":["ind","ngs","ndi","ings","inst","idn","mig","ndin","ming","mind","mit","nsid"]},"93":{"input":[1,3,4,5,7],"tlw":["day",8306],"trw":["instant",472],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["find",4695],"trw":["kind",3481],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["asking",940],"trw":["making",2931],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"u","baseshift":"U","trp":["ie",85987],"trw":["u",744],"lp":[],"rp":["ie","ei","ue","ui","eu","uie","iu","uee","eei","ieu","uu"]},"97":{"input":[1,6,7],"tlp":["au",32369],"trp":["ua",23498],"tlw":["que",92],"trw":["iq",115],"lp":["au","qu","qui","que","qua","quie","quee","quai"],"rp":["ua","equ","equi","eau","eque","iq","equa","iqu","ique","uai","iqui","iae"]},"98":{"input":[2,6,7],"tlp":["ru",29549],"trp":["ur",136165],"tlw":["rue",170],"lp":["ru","rie","rrie","rue","zi","rei"],"rp":["ur","eir","ure","eri","ire","iz","uri","ize","ier","erie","urr","uir","uire","eur"]},"99":{"input":[1,2,6,7],"tlp":["requ",3277],"trp":["ura",5813],"tlw":["require",420],"trw":["iraq",73],"lp":["requ","quir","quar","azi","wei","arie","aur","aura","wire","aire"],"rp":["ura","uar","iew","eari","iza","eria","ewi","uare","erwi","iewe"]},"100":{"input":[3,6,7],"tlp":["su",62257],"trp":["us",124701],"tlw":["sue",76],"trw":["us",10609],"lp":["su","ssu","sus","sui","sue","sie"],"rp":["us","use","ies","ise","usi","esi","ues","essi","esu","uss","usu","uis","ussi","uses"]},"101":{"input":[1,3,6,7],"tlp":["aus",14032],"trp":["exi",2803],"trw":["usa",134],"lp":["aus","ause","ques","sua","asu","aise","assu","squ","sequ","squa","xu","asie"],"rp":["exi","usa","usua","easi","easu","exis","ixe","isea"]},"102":{"input":[2,3,6,7],"tlp":["fu",24057],"trp":["urs",13334],"tlw":["sure",3684],"trw":["users",252],"lp":["fu","sur","sure","frie","ries","rus","resi","fie","rise","resu","refu"],"rp":["urs","ife","urse","iffe","ief","efu","uf","uff","ures"]},"103":{"input":[1,2,3,6,7],"tlw":["wife",2078],"trw":["easier",513],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["ge",97282],"trp":["ut",147044],"tlw":["get",10986],"trw":["iv",292],"lp":["ge","vi","tu","get","gu","tiv","tive","giv","tie","give"],"rp":["ut","iv","ug","ive","eg","ite","ivi","ute","eti","uti"]},"105":{"input":[1,4,6,7],"tlp":["pu",22528],"trp":["up",44081],"tlw":["put",5210],"trw":["up",23594],"lp":["pu","age","put","avi","aug","tua","atu","aut","ativ","pie","quit","gav","gave"],"rp":["up","ega","upp","iva","iate","eati","uat"]},"106":{"input":[2,4,6,7],"tlp":["tur",27983],"trp":["uc",39944],"tlw":["true",2254],"trw":["ice",574],"lp":["tur","cu","gre","ger","ture","tru","rge","riv","cur","ctu","vic","gree","rive","ctiv"],"rp":["uc","ice","eci","ecti","iver","uct"]},"107":{"input":[1,2,4,6,7],"tlw":["great",6807],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["du",19747],"trp":["ide",35753],"tlw":["side",3662],"trw":["used",3487],"lp":["du","side","stu","ges","die","ged","vid","tud","vis","ties"],"rp":["ide","ust","ud","ied","iste","edi","esti","used","uest","ude"]},"109":{"input":[1,3,4,6,7],"tlw":["despite",946],"trw":["idea",2885],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["five",2604],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["arrived",1258],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["hi",274759],"trw":["eye",1504],"lp":[],"rp":["hi","un","ey","hin","hey","ye","ine","hei","hu","ien","nu","hy","uni","ein","eye","eni","inu","hun","ney","enin"]},"113":{"input":[1,5,6,7],"tlp":["aine",5046],"trp":["ju",21952],"tlw":["queen",763],"trw":["yeah",918],"lp":["aine","aye","quen","aun","anie","anu"],"rp":["ju","yea","hai","una","eani","jun","nua","yeah","niq","niqu","nqu","hain","june","hani"]},"114":{"input":[2,5,6,7],"tlp":["rien",11605],"trp":["ery",27793],"tlw":["run",1998],"trw":["henry",1546],"lp":["rien","run","zin"],"rp":["ery","heir","ike","urn","hink","urne","erin","hir","urin","hur","niz","yer","urni","hri","ury","key","enry"]},"115":{"input":[1,2,5,6,7],"tlw":["why",6090],"trw":["year",3064],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["shi",11339],"trp":["his",109386],"tlw":["sun",1066],"trw":["his",69304],"lp":["shi","sum","sine"],"rp":["his","him","ime","mu","um","ish","mus","ines","yes","usin","imes","hims","imse","eyes","ishe","hus","ume"]},"117":{"input":[1,3,5,6,7],"tlw":["assume",344],"trw":["human",2178],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["fine",1422],"trw":["mike",918],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["wish",1198],"trw":["years",7833],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["gh",90668],"trp":["ith",80740],"tlw":["but",49620],"trw":["night",4461],"lp":["gh","thi","bu","ght","but","thin","they","thei","vin","ving"],"rp":["ith","igh","ugh","ight","hing","nge","ught","unt","inte","ub"]},"121":{"input":[1,4,5,6,7],"tlw":["anything",3884],"trw":["having",3594],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["their",26687],"trw":["every",7264],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["with",67032],"trw":["nature",1587],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["this",36089],"trw":["might",6921],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["game",1331],"trw":["just",14589],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["such",8032],"trw":["much",10233],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["because",9879],"trw":["experience",2559],"lp":[],"rp":[]},"128":{"input":[8],"base":"o","baseshift":"O","trp":["oo",93108],"trw":["o",531],"lp":[],"rp":["oo"]},"129":{"input":[1,8],"tlp":["ao",915],"trp":["oa",14939],"lp":["ao"],"rp":["oa"],"special":"bksp","base":"ao"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["ro",170933],"trp":["or",314634],"trw":["or",34654],"lp":["ro","roo","rro","ror","rror"],"rp":["or","oor","orr","orro","oro"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["wo",92580],"trp":["ow",122368],"tlw":["row",380],"lp":["wo","wor","row","aro","roa","wro","rrow","woo","worr","arro","rao","aor"],"rp":["ow","ora","owa","owar","oar","orw","orwa","orar"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["so",117437],"trp":["os",70799],"tlw":["so",27040],"trw":["'",14271],"lp":["so","soo","sso","s'","s's","ss'","ss's"],"rp":["os","'s","oss","oos","o'","oso","''","o's","'o","oss'"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["aso",4273],"trp":["ox",1874],"lp":["aso","asso","a'","xo","a's","soa","aos","a'a","x'","ax'","x's","ax's","axo","saxo"],"rp":["ox","oas","osa","'a","ossa"]},"134":{"input":[2,3,8],"tlp":["fo",133745],"trp":["of",272457],"tlw":["for",70927],"trw":["of",245539],"lp":["fo","for","fro","rso","ros","sor","ross","foo","r'","r's","rof","ffo","ffor","rfo","rfor","sof"],"rp":["of","off","ors","'r"]},"135":{"input":[1,2,3,8],"tlp":["wors",1678],"trp":["ows",4674],"tlw":["sofa",209],"lp":["wors","forw","rows","swo","swor","affo","wso","awso","frow","sofa","rox","aros","ar'","ar's","w'"],"rp":["ows","'w","ofa","oars","ow'"]},"136":{"input":[4,8],"base":"?","baseshift":"/","tlp":["to",350815],"trp":["ot",133805],"tlw":["to",249163],"trw":["otto",67],"lp":["to","too","tto","tot","toot","toto"],"rp":["ot","ott","oot","oto","otto"],"special":"punc"},"137":{"input":[1,4,8],"tlp":["po",68607],"trp":["op",53305],"tlw":["top",1822],"lp":["po","ppo","top","pot","poo","ato","pop","topp","apo","appo","tota","pto"],"rp":["op","opp","oppo","oat","ota","oop","opt","opo"]},"138":{"input":[2,4,8],"tlp":["co",161789],"trp":["ort",28140],"tlw":["root",179],"lp":["co","tor","tro","cor","cro","rot","cto","cco","ctor","roc","ccor","coo","corr","cot"],"rp":["ort","oc","orc","occ","oct","octo"]},"139":{"input":[1,2,4,8],"tlp":["pro",33640],"trp":["orta",4717],"tlw":["two",11667],"lp":["pro","por","two","port","tow","rop","pow","acco","ppor","towa","prop","proc","acro","ppro","coa","crow","wrot"],"rp":["orta","oac","oca"]},"140":{"input":[3,4,8],"tlp":["do",77376],"trp":["od",44403],"tlw":["do",18689],"trw":["odd",416],"lp":["do","sto","t'","t's","doo","stoo","tood","tod","d'","d's"],"rp":["od","'t","ost","ood","'d","odd","ots","ods","oods","oots"]},"141":{"input":[1,3,4,8],"tlp":["pos",16560],"trp":["oad",3493],"tlw":["stop",1798],"lp":["pos","spo","at'","at's","poss","stop","ppos","ado","toda","post","spot","sop"],"rp":["oad","osp","oda","ops","oast","oops","opos","osop"]},"142":{"input":[2,3,4,8],"tlp":["stor",8576],"trp":["ord",17538],"tlw":["door",3713],"lp":["stor","fort","rod","soc","door","sco","cros","forc","stro","dro","cord","doc","sort","tors","food","dor"],"rp":["ord","oft","ords","orts"]},"143":{"input":[1,2,3,4,8],"tlw":["words",3228],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"l","baseshift":"L","trp":["on",380429],"trw":["on",61313],"lp":[],"rp":["on","ll","no","lo","ol","nl","loo","lon","onl","oll","llo","ool","oon","olo","ollo","nno","ono","onn","non","noo"]},"145":{"input":[1,5,8],"tlp":["al",228009],"trp":["la",103279],"tlw":["all",30772],"trw":["la",689],"lp":["al","all","ano","alo","alon","anno","allo","ala"],"rp":["la","jo","lan","nal","ona","onal","lla","nall","olla","oal","njo","ola"]},"146":{"input":[2,5,8],"tlp":["rl",25465],"trp":["ok",35246],"tlw":["roll",381],"trw":["look",5477],"lp":["rl","ron","rol","roll","rok","rno"],"rp":["ok","ook","kno","ork","look","lk","nor","orn","orl","lor","lr","kl","loor","olor"]},"147":{"input":[1,2,5,8],"tlp":["work",16534],"trp":["now",32603],"tlw":["work",8749],"trw":["now",13343],"lp":["work","ral","arl","alk","wal","worl","alw","alwa","won","walk","wl","alr"],"rp":["now","own","know","low","lar","llow","lw","lwa"]},"148":{"input":[3,5,8],"tlp":["som",32033],"trp":["om",158331],"tlw":["soon",3191],"trw":["mom",1398],"lp":["som","son","sl","sn'","sol"],"rp":["om","mo","n'","ons","ls","mos","mon","on'","los","omm","lso","oom","'m","lm","mom"]},"149":{"input":[1,3,5,8],"tlp":["als",13163],"trp":["las",11287],"tlw":["also",7989],"trw":["man's",744],"lp":["als","also","alm","amo","an'","smal","ason","almo","asn'","sona","amon","sla","sal","alls"],"rp":["las","mal","oma","oman","mall","lass"]},"150":{"input":[2,3,5,8],"tlp":["rom",40627],"trp":["mor",29841],"tlw":["from",35952],"trw":["looks",1175],"lp":["rom","from","fl","form","rson","room","fol","flo","foll","fron","floo"],"rp":["mor","lf","orm","onf","nfo","nfor","morn","oks","ooks"]},"151":{"input":[1,2,3,5,8],"tlw":["woman",3590],"trw":["major",1113],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["bo",64448],"trp":["not",62064],"tlw":["bob",306],"trw":["not",43106],"lp":["bo","bl","tl","ttl","bot","ton","tol","boo","blo","bloo"],"rp":["not","lt","ob","nto","ont","ntl","lot","obl","nnot","nob"]},"153":{"input":[1,4,5,8],"tlp":["pl",68379],"trp":["lat",15533],"tlw":["plan",1335],"trw":["job",3249],"lp":["pl","abo","pla","abl","tal","pon","alt","anot","pol","tabl","plan","bla","plo","ppl","bal"],"rp":["lat","opl","lp","job","oba"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["con",43239],"trp":["onc",10039],"tlw":["took",5513],"lp":["con","cl","cont","bro","col","clo","rob","took","bor","book","conc","coll","ctl","ront"],"rp":["onc","ock","loc","ncl","ontr","ntro"]},"155":{"input":[1,2,4,5,8],"tlw":["call",2856],"trw":["local",1100],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["don",16568],"trp":["ld",104617],"tlw":["don't",9569],"trw":["most",10396],"lp":["don","dn'","dn't","don'","dl","sn't","bod","told","tom"],"rp":["ld","n't","old","most","ond","on't","mot","ldn","ldn'","ndo","obs"]},"157":{"input":[1,3,4,5,8],"tlw":["almost",3784],"trw":["last",4981],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["front",2573],"trw":["lord",1049],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["down",11247],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"@","trp":["eo",22601],"lp":[],"rp":["eo","oe"],"special":"punc"},"161":{"input":[1,6,8],"trp":["oq",59],"lp":[],"rp":["oq"]},"162":{"input":[2,6,8],"tlp":["zo",557],"trp":["ore",43307],"tlw":["zero",137],"trw":["error",228],"lp":["zo","reo","roe","roz","roze","zero"],"rp":["ore","ero","eor","oz","oze","erro","orre","oreo","eror","eroe","oore","orer","ooz","ooze"]},"163":{"input":[1,2,6,8],"tlp":["wore",857],"trp":["owe",15537],"tlw":["wore",747],"trw":["owe",137],"lp":["wore","rowe","woe","azo"],"rp":["owe","ower","ewo","ewor","orea","erwo","oare"]},"164":{"input":[3,6,8],"tlp":["soe",138],"trp":["ose",25993],"lp":["soe","se'","se's"],"rp":["ose","e'","e's","oes","osse","oose","eso","esso","oses","'e","es'","eos","es's","oe'","oe's"]},"165":{"input":[1,3,6,8],"trp":["easo",4023],"lp":[],"rp":["easo","oxe","oxes","exo"]},"166":{"input":[2,3,6,8],"tlp":["fore",14026],"trp":["efo",11759],"tlw":["rose",1049],"trw":["offer",1014],"lp":["fore","re'","re's","rose","rofe"],"rp":["efo","efor","erso","'re","offe","er'","er's","ere'","orse","erfo","ofe","ofes","e'r","e're","effo"]},"167":{"input":[1,2,3,6,8],"tlw":["we're",1513],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["vo",13509],"trp":["ov",46618],"tlw":["vote",203],"lp":["vo","vot","vote","toe","tov","tove"],"rp":["ov","ove","ote","evo","otte","oet","evot","eov","eove","eto","oev","oeve","ovo","oote"]},"169":{"input":[1,4,6,8],"tlp":["peo",15223],"trp":["eop",15223],"tlw":["pope",239],"lp":["peo","peop","avo","poe","pote","poet","vato","pov","pove","pope"],"rp":["eop","ope","oppe","epo","ova","eapo","ovat","opea","opte","oope"]},"170":{"input":[2,4,6,8],"tlp":["rov",6005],"trp":["over",21892],"tlw":["cover",700],"trw":["over",12910],"lp":["rov","cov","cove","reco","rote","rove","roce","vor","tore","revo","core","rvo"],"rp":["over","eco","orce","oce","orte","ecor","otec","ecto"]},"171":{"input":[1,2,4,6,8],"tlw":["power",3130],"trw":["operate",192],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["doe",5478],"trp":["e'd",4775],"tlw":["does",3360],"lp":["doe","does","sov"],"rp":["e'd","'v","'ve","oved","ode","osed","oted","otes","edo","esto","et'","et's","odde","oves","e'v","e've","eedo"]},"173":{"input":[1,3,4,6,8],"tlw":["stopped",1419],"trw":["exposed",267],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["force",1513],"trw":["order",2602],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["process",1455],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["le",213808],"trw":["one",30730],"lp":[],"rp":["le","ho","el","one","ell","lle","hel","hol","eel","len","ele","hoo","ole","eno","oh","elo","hool","olle","hole","hon"]},"177":{"input":[1,5,6,8],"tlp":["alle",8964],"trp":["lea",26849],"tlw":["alone",2184],"trw":["john",1863],"lp":["alle","ale","alen"],"rp":["lea","eal","hal","ela","eall","hall","lean","joh","john","enjo","oje","heal","lane","joe","eale","elea","llea"]},"178":{"input":[2,5,6,8],"tlp":["rel",11908],"trp":["hro",12209],"tlw":["role",950],"trw":["honor",325],"lp":["rel","roke","rle","role","rele"],"rp":["hro","oke","hor","ooke","ler","lre","lke","orke","erl","kel","orne","ller","oken","erno","hook"]},"179":{"input":[1,2,5,6,8],"tlw":["who",23669],"trw":["how",14162],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["some",31924],"trp":["ome",63421],"tlw":["some",15162],"trw":["home",4865],"lp":["some","sel","sho"],"rp":["ome","les","hos","hose","hom","omen","less","he'","msel","els","emo","home","lose","lem","mome","lse","mone"]},"181":{"input":[1,3,5,6,8],"tlw":["shall",1999],"trw":["male",440],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["feel",4278],"trw":["more",21171],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["women",3612],"trw":["half",2504],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tho",36998],"trp":["oth",46489],"tlw":["both",5084],"trw":["let",4207],"lp":["tho","ble","tle","tel","ttle","bel","vel","tell","both"],"rp":["oth","othe","noth","let","lv","lve","lov","love","entl","elt","elv"]},"185":{"input":[1,4,5,6,8],"tlw":["people",14668],"trw":["help",3633],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["brother",1465],"trw":["other",13909],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["another",6638],"trw":["later",4588],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["those",7914],"trw":["moment",3684],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["that's",4282],"trw":["least",2856],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["before",10203],"trw":["left",5159],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["called",4581],"trw":["learned",1609],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["io",113622],"lp":[],"rp":["io","oi"],"special":"punc"},"193":{"input":[1,7,8],"lp":[],"rp":[]},"194":{"input":[2,7,8],"tlp":["rio",7327],"trp":["ori",8551],"lp":["rio","rior","rrio","roi","rori"],"rp":["ori","ior","iro","orri","irro","orio","iori","oir","oiro"]},"195":{"input":[1,2,7,8],"tlp":["ario",1160],"trp":["owi",4542],"tlw":["warrior",125],"lp":["ario","rowi","airo"],"rp":["owi","oria","iora","oari"]},"196":{"input":[3,7,8],"tlp":["sio",15825],"trp":["i'",14185],"trw":["'i",461],"lp":["sio","ssio","soi","so-"],"rp":["i'","osi","ossi","isio","iso","ois","o-","'i","ios","iosi","oosi","osio","oiso","-o","isso"]},"197":{"input":[1,3,7,8],"tlp":["asio",1897],"trp":["oxi",253],"lp":["asio","xio","aiso"],"rp":["oxi","ixo"]},"198":{"input":[2,3,7,8],"tlp":["riso",1574],"trp":["offi",5584],"trw":["'if",72],"lp":["riso","rofi","rsio","rios","rosi"],"rp":["offi","ifo","ifor","ofi","iors","oris","-fo","isor","-ro","-roo","oirs","isfo","'if","iff'","o-f"]},"199":{"input":[1,2,3,7,8],"tlw":["warriors",145],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["tio",72429],"trp":["og",14040],"tlw":["go",9032],"lp":["tio","go","goo","got","goi","tog","gio","gott","gto","goti"],"rp":["og","itio","oti","otio","ito","ogi","igio","iot","oog","otog"]},"201":{"input":[1,4,7,8],"tlp":["atio",33167],"trp":["opi",2391],"tlw":["ago",1471],"lp":["atio","poi","ptio","ago","goa","ppoi","topi","pio","aigo","goat","gapo"],"rp":["opi","opti","oppi","otia","oga","oati","opag","ogat","ipo"]},"202":{"input":[2,4,7,8],"tlp":["ctio",12347],"trp":["org",5456],"tlw":["torrio",94],"trw":["org",99],"lp":["ctio","gro","cio","tori","rog","rogr","cog","rgo","gor"],"rp":["org","oic","oci","ogr","otic","orit","orti","itor","orig","icio","icto"]},"203":{"input":[1,2,4,7,8],"tlw":["grow",678],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["good",10385],"trp":["it'",8789],"tlw":["good",9480],"trw":["it's",8558],"lp":["good","stio","god","doi","dog","dio","gdo","g'","g's","to-","gods"],"rp":["it'","it's","osit","isto","i'd","oid","odi","iod","isdo"]},"205":{"input":[1,3,4,7,8],"tlw":["gossip",164],"trw":["ipod",68],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["forgot",261],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["radio",638],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["li",155342],"trw":["only",13824],"lp":[],"rp":["li","ly","yo","il","ion","ill","lly","lin","oin","nly","only","lli","oy","ili","ily","oli","llin","yon","illi","nio"]},"209":{"input":[1,5,7,8],"tlp":["ally",22338],"trp":["ial",13366],"tlw":["ally",126],"trw":["lay",1482],"lp":["ally","ali","ail","alli","ainl","anyo"],"rp":["ial","lay","iona","lai","lia","inal","lain","iall","joy","ila","njoy","lian","joi","join"]},"210":{"input":[2,5,7,8],"tlp":["rly",8446],"trp":["lik",24097],"tlw":["roy",83],"trw":["york",1727],"lp":["rly","ril","rli","ryo","ryon"],"rp":["lik","ory","irl","oki","okin","kil","kill","orni","ooki","lki","lkin","orki","kly","yor","orry"]},"211":{"input":[1,2,5,7,8],"tlw":["will",14271],"trw":["okay",1081],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["sion",15757],"trp":["ions",18292],"tlw":["sly",561],"trw":["i'm",6537],"lp":["sion","sil","sly","smil","sli"],"rp":["ions","mil","lis","i'm","omi","y'","onsi","mily","mili","omin","lim","y's","i'l","i'll","ison"]},"213":{"input":[1,3,5,7,8],"tlw":["animal",491],"trw":["mail",328],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["sorry",899],"trw":["mirror",461],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["always",6467],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tion",71969],"trp":["lit",22460],"tlw":["going",6947],"trw":["into",18343],"lp":["tion","gl","tly","til","till","goin","bli"],"rp":["lit","ong","into","long","ling","lig","oing","litt","ittl","ibl","ngl","oint","ntly"]},"217":{"input":[1,4,5,7,8],"tlw":["point",3165],"trw":["national",867],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["girl",2370],"trw":["looking",3174],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["working",2448],"trw":["knowing",919],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["still",7621],"trw":["isn't",1565],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["among",2526],"trw":["lady",1132],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["story",2254],"trw":["morning",2986],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["company",2711],"trw":["important",2765],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["ou",377630],"lp":[],"rp":["ou","iou","uo","oui","eou","uou","oue"]},"225":{"input":[1,6,7,8],"tlp":["quo",328],"trp":["iquo",129],"lp":["quo"],"rp":["iquo","oqu","oque"]},"226":{"input":[2,6,7,8],"tlp":["rou",33045],"trp":["our",59933],"trw":["our",14347],"lp":["rou","riou","rrou","rizo"],"rp":["our","erio","orie","uro","erou","euro","urio","orei","urro","orou","ouri","oure","izo","oriz","iour","orru"]},"227":{"input":[1,2,6,7,8],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["sou",7964],"trp":["ous",26493],"lp":["sou","siou"],"rp":["ous","ious","u'","ou'","ouse","usio","esou","oise","ouis","ousi","eous","uous","osu","ouss","us'","usso","ies'"]},"229":{"input":[1,3,6,7,8],"tlw":["sioux",68],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["four",2961],"trw":["ours",177],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["wife's",127],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["vio",4502],"trp":["out",63916],"trw":["out",24396],"lp":["vio","voi","toge","tou","viou","gov","gove","geo","vou","goe"],"rp":["out","oug","ovi","oge","oget","utio","ovie","ego","oute","otiv"]},"233":{"input":[1,4,6,7,8],"tlw":["quote",89],"trw":["output",75],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["voice",2628],"trw":["occur",235],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["group",2351],"trw":["europe",720],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["goes",995],"trw":["i've",2219],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["positive",1027],"trw":["opposite",687],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["course",3730],"trw":["office",2363],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["support",1196],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["you",104946],"trw":["you",68463],"lp":[],"rp":["you","ul","oul","hou","oun","lu","ile","hil","ely","eli","lie","houl","ull","hile","nou","elie","line","youn","enou","lue"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["anyone",1715],"trw":["enjoy",693],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["rule",725],"trw":["your",20504],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["while",7024],"trw":["early",2452],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["smile",1413],"trw":["house",4935],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["anxious",432],"trw":["usually",1445],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["full",2345],"trw":["life",8740],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["families",960],"trw":["meanwhile",361],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["thought",7112],"trw":["little",9495],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["about",23108],"trw":["upon",4442],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["through",8798],"trw":["everyone",2219],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["without",5841],"trw":["large",2557],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["something",7615],"trw":["lives",1641],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["possible",2350],"trw":["immediately",1263],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["could",18061],"trw":["itself",2205],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["would",27522],"trw":["especially",1737],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",410],"tlw":["a",211837],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"r","baseshift":"R","tlp":["rr",29445],"tlw":["r",211],"lp":["rr"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["ar",265629],"tlw":["war",4160],"lp":["ar","wa","ra","aw","war","arr","wr","awa","ara","rw","raw","rar","rwa","rra","rwar","arra","awar","wra","warr","ww"],"rp":[]},"4":{"input":[3],"base":"s","baseshift":"S","tlp":["ss",89478],"tlw":["s",2993],"lp":["ss"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["as",286499],"tlw":["as",63759],"lp":["as","sa","ass","xa","ssa","ax","assa","asa","sas","saa","xas","ssas","sass","sax"],"rp":[]},"6":{"input":[2,3],"base":"f","baseshift":"F","tlp":["rs",105128],"tlw":["f",277],"lp":["rs","fr","ff","rf","sf","ssf","fs","sr","ssr","ffr","ffs"],"rp":[]},"7":{"input":[1,2,3],"tlp":["was",117615],"tlw":["was",112330],"lp":["was","fa","af","ars","ws","sw","far","fra","saw","aff","ras","fas","sar","rsa","ssar","saf","afr","aws","raf","rass"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",55910],"tlw":["t",670],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"p","baseshift":"P","tlp":["at",371419],"tlw":["at",51085],"lp":["at","ta","pa","ap","pp","app","pt","att","tat","pat","apt","apa","tta","atta","pap","pta","apta","patt","ppa","appa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["rt",81050],"tlw":["c",872],"lp":["rt","tr","ct","cr","rc","cc","tc","ttr","ctr","rtr","rcr","rct"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",118675],"tlw":["part",4589],"lp":["ca","ac","pr","art","par","act","tra","tw","rat","car","part","tar","rac","rta","cat","acc","rp","wat","ract","atc"],"rp":[]},"12":{"input":[3,4],"base":"d","baseshift":"D","tlp":["st",260669],"tlw":["st",798],"lp":["st","ts","ds","dd","sts","sd","dds","dst","tst","tts"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ad",140314],"tlw":["past",2353],"lp":["ad","da","sta","sp","ast","xp","ps","xt","pas","stat","sat","pass","add","spa","aps","dat","tas","past","ads","ats"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rd",48242],"tlw":["dr",852],"lp":["rd","ft","dr","sc","str","rst","rds","rts","scr","cts","cs","tf","ddr","df","fts","cd","dsc","rsd","cst","fc"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",26043],"tlw":["fact",3233],"lp":["ard","aft","fac","ward","star","stra","cas","fat","rad","fact","xc","dar","dra","sca","ards","rsta","draw","xtr","spr","fast"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",20957],"trw":["n",169],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"j","baseshift":"J","tlp":["an",578917],"trp":["na",51349],"tlw":["an",29559],"trw":["j",365],"lp":["an","ann","ana","aj","anna","aan"],"rp":["na","ja","nan","nj","nna","jan","nann"]},"18":{"input":[2,5],"base":"k","baseshift":"K","tlp":["rn",39425],"trp":["kn",27363],"trw":["k",182],"lp":["rn","rk","rkn"],"rp":["kn","nk","nr","nkn","kr","nkr"]},"19":{"input":[1,2,5],"tlp":["ak",39732],"trp":["ka",3991],"tlw":["ran",1611],"trw":["jr",190],"lp":["ak","wn","ran","wan","ark","ank","arn","rna","rank","rran","awn","aran","wak","warn","rawn","rka"],"rp":["ka","nar","nw","narr"]},"20":{"input":[3,5],"base":"m","baseshift":"M","tlp":["sm",13242],"trp":["ns",85305],"trw":["m",1273],"lp":["sm","sn","ssm"],"rp":["ns","ms","mm","nm","mn","nsm","nns","mns","mms"]},"21":{"input":[1,3,5],"tlp":["am",72035],"trp":["ma",137500],"tlw":["am",4235],"trw":["man",9572],"lp":["am","ans","sam","san","sma","asn","xam","ama","ams","xan"],"rp":["ma","man","nam","mas","mana","mma","mann","mman","maj","mass"]},"22":{"input":[2,3,5],"tlp":["rm",33028],"trp":["ks",14097],"trw":["mr",4133],"lp":["rm","sk","rms","rns","rks","rnm","sks","rkf","rkm"],"rp":["ks","nf","mr","mrs","nks","mf","kf","nsf","km","nfr","msf"]},"23":{"input":[1,2,3,5],"tlp":["ask",11409],"trp":["mar",15017],"tlw":["ask",2497],"trw":["mark",882],"lp":["ask","rma","arm","fam","rman","answ","wasn","ram","fran","fan","rans","arms","anks","warm","asks"],"rp":["mar","mak","mark","nsw","marr"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",3003],"trp":["nt",218499],"tlw":["b",695],"lp":["bt","tn","bb","tb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ab",55519],"trp":["nat",11510],"tlw":["pan",150],"trw":["japan",279],"lp":["ab","ba","ant","tan","pan","tant","tab","ban","bab","bj","bat","batt","anta","apan","abb"],"rp":["nat","nta","nab","jap","japa"]},"26":{"input":[2,4,5],"tlp":["ck",51278],"trp":["nc",79565],"tlw":["bc",95],"lp":["ck","br","rb","rtn","ckn","rnt","bc","tk","ckb","tbr","ckt","cn","cb"],"rp":["nc","ntr","ncr","nct","kt","kb"]},"27":{"input":[1,2,4,5],"tlp":["can",27607],"trp":["ntra",2857],"tlw":["can",15149],"trw":["jack",1623],"lp":["can","ack","anc","tak","bac","back","want","bra","ranc","tanc","tran","bar","rtan","rab","cann","rant","tack"],"rp":["ntra","jac","jack"]},"28":{"input":[3,4,5],"tlp":["dn",14682],"trp":["nd",415919],"trw":["nd",119],"lp":["dn","bs","tm","dm","sb","stm","bst","db","bm","bts"],"rp":["nd","mb","nts","nds","nst","mst","ntm","mbs","ndm","ndn"]},"29":{"input":[1,3,4,5],"tlp":["and",307129],"trp":["mp",43386],"tlw":["and",266855],"trw":["mad",373],"lp":["and","stan","tand","ands","amp","dan","bas","ants","band","bad"],"rp":["mp","mat","mad","mpa","mpan","nda","matt","mpt","mand","nsta"]},"30":{"input":[2,3,4,5],"tlp":["cks",2772],"trp":["ndr",3159],"tlw":["cbs",76],"trw":["kd",65],"lp":["cks","rtm","ckm","rnst","fb","rmt","rdb","dk","bstr"],"rp":["ndr","nstr","nsc","mbr","ndf","mc","mcd","ndsc","mcc","ndk","ncts"]},"31":{"input":[1,2,3,4,5],"tlw":["dark",1865],"lp":[],"rp":[]},"32":{"input":[6],"base":"e","baseshift":"E","trp":["ee",129154],"trw":["e",471],"lp":[],"rp":["ee"]},"33":{"input":[1,6],"base":"q","baseshift":"Q","tlp":["ae",810],"trp":["ea",216643],"tlw":["q",103],"lp":["ae","aq"],"rp":["ea","eq","eea"]},"34":{"input":[2,6],"base":"z","baseshift":"Z","tlp":["re",464927],"trp":["er",558051],"tlw":["re",63],"trw":["er",80],"lp":["re","ree","ze","rre","reer","zz","rer","zer","reez"],"rp":["er","ere","err","eer","erre","ez","eez","eze","eeze","eere","erer"]},"35":{"input":[1,2,6],"tlp":["we",135334],"trp":["ear",54836],"tlw":["were",34909],"trw":["ear",427],"lp":["we","rea","are","wer","were","wee","wea","rew","az","req","za","wear","ware","area"],"rp":["ear","ew","era","eare","erw","ewe"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["se",231764],"trp":["es",259811],"tlw":["see",9997],"lp":["se","see","sse","ses","sses","sess","sees"],"rp":["es","ess","ese","esse","ees","eese"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ase",11581],"trp":["ex",43940],"tlw":["sea",1374],"trw":["ease",378],"lp":["ase","sea","asse","xe","sq","ases","sex","seq","seas","axe","xes"],"rp":["ex","eas","exa","ease","essa","exe","esea","easa","exas"]},"38":{"input":[2,3,6],"tlp":["fe",67683],"trp":["ers",54211],"tlw":["free",1788],"lp":["fe","res","ffe","rse","ser","fer","fee","ress","ffer","fere","rese","fre","ref"],"rp":["ers","ef","erf","eff","erse","efe","eres"]},"39":{"input":[1,2,3,6],"tlp":["reas",7091],"trp":["ears",10248],"tlw":["few",5711],"trw":["ears",565],"lp":["reas","few","swe","fea","swer","fear","sear","wes","afe","wers","safe","aref","affe","werf","swee","xer"],"rp":["ears","ews","ersa","exer"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["te",259049],"trp":["et",117117],"tlw":["tv",551],"trw":["et",324],"lp":["te","ve","tte","tee","tev","teve","teet","tv","vet","ttee"],"rp":["et","ev","eve","ett","eet","ette","ete","etee","eev","eeve"]},"41":{"input":[1,4,6],"tlp":["pe",115056],"trp":["ep",39298],"tlw":["tea",508],"trw":["eat",1112],"lp":["pe","av","ate","ave","va","ppe","pea","atte","appe","tea","tate","ape","ppea"],"rp":["ep","eat","eep","ept","eate","eav","epa"]},"42":{"input":[2,4,6],"tlp":["ce",144944],"trp":["ec",91763],"tlw":["tree",670],"trw":["ever",4714],"lp":["ce","ver","ter","rec","tter","cre","rv","tre","ret","cer","rce","cte","rte","cce"],"rp":["ec","ever","ect","erv","ert","ece"]},"43":{"input":[1,2,4,6],"tlp":["per",37369],"trp":["eca",14464],"tlw":["water",2519],"lp":["per","pre","ace","reat","pec","rep","ater","twe","rate","crea","pect","care","pare","twee","cep"],"rp":["eca","eac","etw","erat","etwe"]},"44":{"input":[3,4,6],"tlp":["de",167797],"trp":["ed",326541],"tlw":["set",3472],"trw":["ed",253],"lp":["de","ted","ste","sed","ded","des","ved","ves","tes","ssed","set","sted","dde","sev","seve","dee","dv"],"rp":["ed","est","eed"]},"45":{"input":[1,3,4,6],"tlp":["spe",18659],"trp":["ead",29380],"tlw":["state",2221],"trw":["east",920],"lp":["spe","ade","dea","ated","xpe","ped","pped","ates","aste","dep","adv","stea","step"],"rp":["ead","exp","expe","ext","esp","east","espe"]},"46":{"input":[2,3,4,6],"tlp":["red",36139],"trp":["ered",12958],"tlw":["street",2374],"trw":["effect",1185],"lp":["red","der","fte","ces","fter","dre","ced","ster","rest","sec","rde","cess","serv","ders","dec","cted","stre","ters","rder"],"rp":["ered"]},"47":{"input":[1,2,3,4,6],"tlw":["after",12071],"trw":["except",1180],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["he",1036192],"trw":["he",92135],"lp":[],"rp":["he","en","ne","hen","een","ene","nee","nne","eh","hn","hee","enn","nh","nen","enne","hene","ehe","nhe","ehen","enh"]},"49":{"input":[1,5,6],"tlp":["ane",5091],"trp":["ha",357027],"tlw":["anne",519],"trw":["jane",336],"lp":["ane","ah","anne","ahe","ahea"],"rp":["ha","han","hea","ean","je","nea","ena","eha","enj","jea","nha","eah","eane","jean","nq"]},"50":{"input":[2,5,6],"tlp":["ren",22668],"trp":["her",160213],"tlw":["zen",79],"trw":["her",47940],"lp":["ren","rne","rke","rh"],"rp":["her","ke","here","hr","ner","ern","hre","eren","kne","ek","eek","ener","ken","hree","kee","nner"]},"51":{"input":[1,2,5,6],"tlp":["wh",148489],"trp":["new",18090],"tlw":["when",27718],"trw":["new",10172],"lp":["wh","whe","wha","when","ake","wher","wen","ween","aren","week","arke","aken"],"rp":["new","har","hear","eak","knew","earn","nera","near"]},"52":{"input":[3,5,6],"tlp":["sh",119750],"trp":["me",235102],"tlw":["she",45928],"trw":["me",30278],"lp":["sh","she","sen","seem"],"rp":["me","em","men","hem","nes","eme","hes","mes","ens","ness","hese","eem","nse","mse","mem","emen"]},"53":{"input":[1,3,5,6],"tlp":["ame",34012],"trp":["has",13193],"tlw":["same",6718],"trw":["has",11125],"lp":["ame","sha","same","ash","ames","anes","sham"],"rp":["has","mea","mean","ema","name","eam","nex","exam","ham","eman","eans","exan","hame"]},"54":{"input":[2,3,5,6],"tlp":["rem",11660],"trp":["mer",13928],"tlw":["fresh",618],"trw":["mere",523],"lp":["rem","ske","reme","rme","fren","fen","rsh","rmer","rnme"],"rp":["mer","hers","erm","kes","eks","eeks","ners","mmer","ernm","efen","mere"]},"55":{"input":[1,2,3,5,6],"tlw":["answer",1929],"trw":["make",9390],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",1104883],"trp":["ent",104826],"tlw":["the",506536],"trw":["even",12216],"lp":["th","the","be","ven","ten","bee","been","then","bet","tten"],"rp":["ent","ht","nte","even","eth","nev","nv","neve","ethe","ente"]},"57":{"input":[1,4,5,6],"tlp":["tha",132122],"trp":["hat",148416],"tlw":["that",110865],"trw":["have",35739],"lp":["tha","that","ath","pen","than","ph","athe","bea","ante","ppen","van","pene","bje"],"rp":["hat","hav","have","hap","happ","eath","enta"]},"58":{"input":[2,4,5,6],"tlp":["ch",138742],"trp":["nce",54473],"tlw":["there",23867],"trw":["never",9168],"lp":["ch","ther","thr","bec","che","ber","tch","cen","rth","rent","cent","thre","rch","cke","bre"],"rp":["nce","enc","ence","nter","nch"]},"59":{"input":[1,2,4,5,6],"tlw":["what",26770],"trw":["each",6050],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["them",24753],"trp":["ned",28030],"tlw":["them",21593],"trw":["need",4397],"lp":["them","den","thes","dent","tem","sent"],"rp":["ned","ment","nde","end","med","hed","met","ents","mbe","nted","emb","meth","need","nded"]},"61":{"input":[1,3,4,5,6],"tlw":["death",2323],"trw":["had",63389],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["remember",2277],"trw":["members",1108],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["came",6889],"trw":["heard",3016],"lp":[],"rp":[]},"64":{"input":[7],"base":"i","baseshift":"I","trp":["ii",1762],"trw":["i",117501],"lp":[],"rp":["ii","iii"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ai",104869],"trp":["ia",38456],"lp":["ai"],"rp":["ia","iai"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["ri",146328],"trp":["ir",91496],"lp":["ri","rri"],"rp":["ir","iri","irr","irri"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wi",119378],"trp":["ira",1826],"tlw":["air",2428],"trw":["ira",59],"lp":["wi","rai","air","ari","arri","ria","wri","wai","rria","aria","rwi","awi","rawi","wir","rari","awai","rrai","arwi"],"rp":["ira","iar"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["si",120170],"trp":["is",263616],"trw":["is",60295],"lp":["si","ssi","sis","ssis","siss"],"rp":["is","isi","iss","issi","-s","isis","-si","-i"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["sai",25354],"trp":["ix",4876],"tlw":["six",1928],"trw":["ix",80],"lp":["sai","asi","assi","xi","six","ais","sia","xis","ssia","asis","sias","asia","axi","aisi"],"rp":["ix","isa","ias","isas","isaa","issa"]},"70":{"input":[2,3,7],"tlp":["fi",67126],"trp":["if",58122],"tlw":["sir",1984],"trw":["if",25154],"lp":["fi","fir","ris","firs","ffi","fri","sir","rsi","fif","rif","risi","fis","rifi"],"rp":["if","irs","iff","ifi","iffi","isf","-f"]},"71":{"input":[1,2,3,7],"tlp":["fai",5226],"trp":["isfa",500],"tlw":["fair",842],"lp":["fai","wis","wif","aris","fair","rais","airs","swi","frai","fix","ffai","rwis","sari","afri","affi","rsia","swif","wais","fia"],"rp":["isfa"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["ti",213739],"trp":["it",311028],"tlw":["g",298],"trw":["it",92474],"lp":["ti","gi","tti","gg","tit","gt","tig","titi","ttit","ggi","git","gig","tg"],"rp":["it","ig","iti","itt","igi","itti","igg"]},"73":{"input":[1,4,7],"tlp":["ag",47829],"trp":["ip",16613],"tlw":["tip",221],"lp":["ag","ati","ga","pi","tai","aga","gai","agai","pai","ait","tia","tati","pti","agi","pit","ppi","gat"],"rp":["ip","ita","iat"]},"74":{"input":[2,4,7],"tlp":["ci",45417],"trp":["ic",118179],"tlw":["critic",79],"lp":["ci","gr","cti","tic","rg","rit","ric","tri","rig","rti","cri","cit","gir","riti","rtic","tir"],"rp":["ic","ici","ict","irt"]},"75":{"input":[1,2,4,7],"tlp":["wit",77056],"trp":["ica",19163],"tlw":["wait",1256],"lp":["wit","pri","gra","cia","acti","arg","rati","arti","rica","trai","pic","rtai","writ","gar","rag","wait","tica","cati"],"rp":["ica","icat"]},"76":{"input":[3,4,7],"tlp":["di",96016],"trp":["id",100069],"tlw":["did",12252],"trw":["its",10155],"lp":["di","sti","did","sid","gs","sit","dis","sig","dg","sist","dit","tis","siti","dist","diti"],"rp":["id","ist","its","isti","idd"]},"77":{"input":[1,3,4,7],"tlp":["aid",27860],"trp":["ista",3836],"tlw":["said",23960],"trw":["ida",198],"lp":["aid","said","spi","adi","dia","sati","spit","xist","diat","disa","sag","ssag","stai","atis","disp"],"rp":["ista","ips","isp","ida","isap"]},"78":{"input":[2,3,4,7],"tlp":["fic",12500],"trp":["irst",11403],"tlw":["first",11244],"lp":["fic","ffic","dif","diff","sic","dri","fig","sci","dir","disc","dic","cis","rid","tif","cid","rdi","stri"],"rp":["irst","ift","isc"]},"79":{"input":[1,2,3,4,7],"tlw":["paris",1353],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"y","baseshift":"Y","trp":["in",644105],"trw":["in",155002],"lp":[],"rp":["in","ni","ny","nin","yi","yin","ini","inn","nni","inin","nnin","inni","yn","nny","iny","nyi","nyin","inny","ynn"]},"81":{"input":[1,5,7],"tlp":["ay",87083],"trp":["ina",10155],"tlw":["any",10758],"trw":["nay",83],"lp":["ay","ain","any","ani","ayi","ayin","aini","anin","anni"],"rp":["ina","ian","ya","nia","inan","nai","ji","yan","inj","nian","iann"]},"82":{"input":[2,5,7],"tlp":["ry",67816],"trp":["ki",42462],"trw":["ink",130],"lp":["ry","rin","rni","rnin","rry","ryi","ryin","rki","rkin","rink","rik"],"rp":["ki","kin","ik","ink","nki","nkin","inki","ky","nry"]},"83":{"input":[1,2,5,7],"tlp":["way",28360],"trp":["yw",1970],"tlw":["way",11339],"trw":["iran",85],"lp":["way","win","ary","aki","akin","away","rain","arin","arry","ray","rian","arni","rary","anyw","wy"],"rp":["yw","nary","inar","nyw","kay"]},"84":{"input":[3,5,7],"tlp":["sin",21536],"trp":["im",93559],"tlw":["sin",306],"trw":["my",40423],"lp":["sin","sy","sim","smi","ssin"],"rp":["im","mi","my","ys","min","ins","nsi","mis","ims","nis","miss","mys","imi","insi","mmi"]},"85":{"input":[1,3,5,7],"tlp":["ays",16554],"trp":["may",9648],"tlw":["say",7781],"trw":["many",8068],"lp":["ays","say","ami","ains","says","asy","aim","sayi","amin","sian","anis","asin"],"rp":["may","many","ima","mai","main","iam","ians","mina"]},"86":{"input":[2,3,5,7],"tlp":["fin",16231],"trp":["inf",5607],"tlw":["firm",690],"trw":["kiss",443],"lp":["fin","ski","rim","rmi","fini","rmy","rmin","skin","firm","risk"],"rp":["inf","mir","nfi","nif","irm","isk","kis","kiss","nifi","mik"]},"87":{"input":[1,2,3,5,7],"tlw":["army",2073],"trw":["mary",586],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["ty",42717],"trp":["ng",301290],"tlw":["by",35333],"lp":["ty","by","tin","ting","bi","gin","gn","ttin"],"rp":["ng","ing","int","nti","ning","ity","ib","ying","ign","nit","yt","nig"]},"89":{"input":[1,4,5,7],"tlp":["ang",16987],"trp":["nati",5202],"tlw":["again",7165],"lp":["ang","gain","tain","gan","pin","ping","aint","anyt","atin","abi","py","pain","pany","ppin","agin","tay","anag"],"rp":["nati","nag","ntai"]},"90":{"input":[2,4,5,7],"tlp":["ring",17926],"trp":["king",26881],"tlw":["city",2930],"trw":["king",2321],"lp":["ring","bri","try","rty","cy","rib","city","cin","ryt","rity","cing","tryi","rinc","brin"],"rp":["king","inc","ick","nci","nic","ntry"]},"91":{"input":[1,2,4,5,7],"tlw":["taking",1995],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["tim",28120],"trp":["ind",31046],"tlw":["sitting",1409],"trw":["mind",4439],"lp":["tim","din","ding","dy","sing","didn","sib","sign"],"rp":["ind","ngs","ndi","ings","inst","idn","mig","ndin","ming","mind","mit","nsid"]},"93":{"input":[1,3,4,5,7],"tlw":["day",8306],"trw":["instant",472],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["find",4695],"trw":["kind",3481],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["asking",940],"trw":["making",2931],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"u","baseshift":"U","trp":["ie",85987],"trw":["u",744],"lp":[],"rp":["ie","ei","ue","ui","eu","uie","iu","uee","eei","ieu","uu"]},"97":{"input":[1,6,7],"tlp":["au",32369],"trp":["ua",23498],"tlw":["que",92],"trw":["iq",115],"lp":["au","qu","qui","que","qua","quie","quee","quai"],"rp":["ua","equ","equi","eau","eque","iq","equa","iqu","ique","uai","iqui","iae"]},"98":{"input":[2,6,7],"tlp":["ru",29549],"trp":["ur",136165],"tlw":["rue",170],"lp":["ru","rie","rrie","rue","zi","rei"],"rp":["ur","eir","ure","eri","ire","iz","uri","ize","ier","erie","urr","uir","uire","eur"]},"99":{"input":[1,2,6,7],"tlp":["requ",3277],"trp":["ura",5813],"tlw":["require",420],"trw":["iraq",73],"lp":["requ","quir","quar","azi","wei","arie","aur","aura","wire","aire"],"rp":["ura","uar","iew","eari","iza","eria","ewi","uare","erwi","iewe"]},"100":{"input":[3,6,7],"tlp":["su",62257],"trp":["us",124701],"tlw":["sue",76],"trw":["us",10609],"lp":["su","ssu","sus","sui","sue","sie"],"rp":["us","use","ies","ise","usi","esi","ues","essi","esu","uss","usu","uis","ussi","uses"]},"101":{"input":[1,3,6,7],"tlp":["aus",14032],"trp":["exi",2803],"trw":["usa",134],"lp":["aus","ause","ques","sua","asu","aise","assu","squ","sequ","squa","xu","asie"],"rp":["exi","usa","usua","easi","easu","exis","ixe","isea"]},"102":{"input":[2,3,6,7],"tlp":["fu",24057],"trp":["urs",13334],"tlw":["sure",3684],"trw":["users",252],"lp":["fu","sur","sure","frie","ries","rus","resi","fie","rise","resu","refu"],"rp":["urs","ife","urse","iffe","ief","efu","uf","uff","ures"]},"103":{"input":[1,2,3,6,7],"tlw":["wife",2078],"trw":["easier",513],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["ge",97282],"trp":["ut",147044],"tlw":["get",10986],"trw":["iv",292],"lp":["ge","vi","tu","get","gu","tiv","tive","giv","tie","give"],"rp":["ut","iv","ug","ive","eg","ite","ivi","ute","eti","uti"]},"105":{"input":[1,4,6,7],"tlp":["pu",22528],"trp":["up",44081],"tlw":["put",5210],"trw":["up",23594],"lp":["pu","age","put","avi","aug","tua","atu","aut","ativ","pie","quit","gav","gave"],"rp":["up","ega","upp","iva","iate","eati","uat"]},"106":{"input":[2,4,6,7],"tlp":["tur",27983],"trp":["uc",39944],"tlw":["true",2254],"trw":["ice",574],"lp":["tur","cu","gre","ger","ture","tru","rge","riv","cur","ctu","vic","gree","rive","ctiv"],"rp":["uc","ice","eci","ecti","iver","uct"]},"107":{"input":[1,2,4,6,7],"tlw":["great",6807],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["du",19747],"trp":["ide",35753],"tlw":["side",3662],"trw":["used",3487],"lp":["du","side","stu","ges","die","ged","vid","tud","vis","ties"],"rp":["ide","ust","ud","ied","iste","edi","esti","used","uest","ude"]},"109":{"input":[1,3,4,6,7],"tlw":["despite",946],"trw":["idea",2885],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["five",2604],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["arrived",1258],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["hi",274759],"trw":["eye",1504],"lp":[],"rp":["hi","un","ey","hin","hey","ye","ine","hei","hu","ien","nu","hy","uni","ein","eye","eni","inu","hun","ney","enin"]},"113":{"input":[1,5,6,7],"tlp":["aine",5046],"trp":["ju",21952],"tlw":["queen",763],"trw":["yeah",918],"lp":["aine","aye","quen","aun","anie","anu"],"rp":["ju","yea","hai","una","eani","jun","nua","yeah","niq","niqu","nqu","hain","june","hani"]},"114":{"input":[2,5,6,7],"tlp":["rien",11605],"trp":["ery",27793],"tlw":["run",1998],"trw":["henry",1546],"lp":["rien","run","zin"],"rp":["ery","heir","ike","urn","hink","urne","erin","hir","urin","hur","niz","yer","urni","hri","ury","key","enry"]},"115":{"input":[1,2,5,6,7],"tlw":["why",6090],"trw":["year",3064],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["shi",11339],"trp":["his",109386],"tlw":["sun",1066],"trw":["his",69304],"lp":["shi","sum","sine"],"rp":["his","him","ime","mu","um","ish","mus","ines","yes","usin","imes","hims","imse","eyes","ishe","hus","ume"]},"117":{"input":[1,3,5,6,7],"tlw":["assume",344],"trw":["human",2178],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["fine",1422],"trw":["mike",918],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["wish",1198],"trw":["years",7833],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["gh",90668],"trp":["ith",80740],"tlw":["but",49620],"trw":["night",4461],"lp":["gh","thi","bu","ght","but","thin","they","thei","vin","ving"],"rp":["ith","igh","ugh","ight","hing","nge","ught","unt","inte","ub"]},"121":{"input":[1,4,5,6,7],"tlw":["anything",3884],"trw":["having",3594],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["their",26687],"trw":["every",7264],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["with",67032],"trw":["nature",1587],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["this",36089],"trw":["might",6921],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["game",1331],"trw":["just",14589],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["such",8032],"trw":["much",10233],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["because",9879],"trw":["experience",2559],"lp":[],"rp":[]},"128":{"input":[8],"base":"o","baseshift":"O","trp":["oo",93108],"trw":["o",531],"lp":[],"rp":["oo"]},"129":{"input":[1,8],"tlp":["ao",915],"trp":["oa",14939],"lp":["ao"],"rp":["oa"],"special":"bksp","base":"ao"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["ro",170933],"trp":["or",314634],"trw":["or",34654],"lp":["ro","roo","rro","ror","rror"],"rp":["or","oor","orr","orro","oro"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["wo",92580],"trp":["ow",122368],"tlw":["row",380],"lp":["wo","wor","row","aro","roa","wro","rrow","woo","worr","arro","rao","aor"],"rp":["ow","ora","owa","owar","oar","orw","orwa","orar"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["so",117437],"trp":["os",70799],"tlw":["so",27040],"trw":["'",14271],"lp":["so","soo","sso","s'","s's","ss'","ss's"],"rp":["os","'s","oss","oos","o'","oso","''","o's","'o","oss'"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["aso",4273],"trp":["ox",1874],"lp":["aso","asso","a'","xo","a's","soa","aos","a'a","x'","ax'","x's","ax's","axo","saxo"],"rp":["ox","oas","osa","'a","ossa"]},"134":{"input":[2,3,8],"tlp":["fo",133745],"trp":["of",272457],"tlw":["for",70927],"trw":["of",245539],"lp":["fo","for","fro","rso","ros","sor","ross","foo","r'","r's","rof","ffo","ffor","rfo","rfor","sof"],"rp":["of","off","ors","'r"]},"135":{"input":[1,2,3,8],"tlp":["wors",1678],"trp":["ows",4674],"tlw":["sofa",209],"lp":["wors","forw","rows","swo","swor","affo","wso","awso","frow","sofa","rox","aros","ar'","ar's","w'"],"rp":["ows","'w","ofa","oars","ow'"]},"136":{"input":[4,8],"base":"?","baseshift":"/","tlp":["to",350815],"trp":["ot",133805],"tlw":["to",249163],"trw":["otto",67],"lp":["to","too","tto","tot","toot","toto"],"rp":["ot","ott","oot","oto","otto"],"special":"punc"},"137":{"input":[1,4,8],"tlp":["po",68607],"trp":["op",53305],"tlw":["top",1822],"lp":["po","ppo","top","pot","poo","ato","pop","topp","apo","appo","tota","pto"],"rp":["op","opp","oppo","oat","ota","oop","opt","opo"]},"138":{"input":[2,4,8],"tlp":["co",161789],"trp":["ort",28140],"tlw":["root",179],"lp":["co","tor","tro","cor","cro","rot","cto","cco","ctor","roc","ccor","coo","corr","cot"],"rp":["ort","oc","orc","occ","oct","octo"]},"139":{"input":[1,2,4,8],"tlp":["pro",33640],"trp":["orta",4717],"tlw":["two",11667],"lp":["pro","por","two","port","tow","rop","pow","acco","ppor","towa","prop","proc","acro","ppro","coa","crow","wrot"],"rp":["orta","oac","oca"]},"140":{"input":[3,4,8],"tlp":["do",77376],"trp":["od",44403],"tlw":["do",18689],"trw":["odd",416],"lp":["do","sto","t'","t's","doo","stoo","tood","tod","d'","d's"],"rp":["od","'t","ost","ood","'d","odd","ots","ods","oods","oots"]},"141":{"input":[1,3,4,8],"tlp":["pos",16560],"trp":["oad",3493],"tlw":["stop",1798],"lp":["pos","spo","at'","at's","poss","stop","ppos","ado","toda","post","spot","sop"],"rp":["oad","osp","oda","ops","oast","oops","opos","osop"]},"142":{"input":[2,3,4,8],"tlp":["stor",8576],"trp":["ord",17538],"tlw":["door",3713],"lp":["stor","fort","rod","soc","door","sco","cros","forc","stro","dro","cord","doc","sort","tors","food","dor"],"rp":["ord","oft","ords","orts"]},"143":{"input":[1,2,3,4,8],"tlw":["words",3228],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"l","baseshift":"L","trp":["on",380429],"trw":["on",61313],"lp":[],"rp":["on","ll","no","lo","ol","nl","loo","lon","onl","oll","llo","ool","oon","olo","ollo","nno","ono","onn","non","noo"]},"145":{"input":[1,5,8],"tlp":["al",228009],"trp":["la",103279],"tlw":["all",30772],"trw":["la",689],"lp":["al","all","ano","alo","alon","anno","allo","ala"],"rp":["la","jo","lan","nal","ona","onal","lla","nall","olla","oal","njo","ola"]},"146":{"input":[2,5,8],"tlp":["rl",25465],"trp":["ok",35246],"tlw":["roll",381],"trw":["look",5477],"lp":["rl","ron","rol","roll","rok","rno"],"rp":["ok","ook","kno","ork","look","lk","nor","orn","orl","lor","lr","kl","loor","olor"]},"147":{"input":[1,2,5,8],"tlp":["work",16534],"trp":["now",32603],"tlw":["work",8749],"trw":["now",13343],"lp":["work","ral","arl","alk","wal","worl","alw","alwa","won","walk","wl","alr"],"rp":["now","own","know","low","lar","llow","lw","lwa"]},"148":{"input":[3,5,8],"tlp":["som",32033],"trp":["om",158331],"tlw":["soon",3191],"trw":["mom",1398],"lp":["som","son","sl","sn'","sol"],"rp":["om","mo","n'","ons","ls","mos","mon","on'","los","omm","lso","oom","'m","lm","mom"]},"149":{"input":[1,3,5,8],"tlp":["als",13163],"trp":["las",11287],"tlw":["also",7989],"trw":["man's",744],"lp":["als","also","alm","amo","an'","smal","ason","almo","asn'","sona","amon","sla","sal","alls"],"rp":["las","mal","oma","oman","mall","lass"]},"150":{"input":[2,3,5,8],"tlp":["rom",40627],"trp":["mor",29841],"tlw":["from",35952],"trw":["looks",1175],"lp":["rom","from","fl","form","rson","room","fol","flo","foll","fron","floo"],"rp":["mor","lf","orm","onf","nfo","nfor","morn","oks","ooks"]},"151":{"input":[1,2,3,5,8],"tlw":["woman",3590],"trw":["major",1113],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["bo",64448],"trp":["not",62064],"tlw":["bob",306],"trw":["not",43106],"lp":["bo","bl","tl","ttl","bot","ton","tol","boo","blo","bloo"],"rp":["not","lt","ob","nto","ont","ntl","lot","obl","nnot","nob"]},"153":{"input":[1,4,5,8],"tlp":["pl",68379],"trp":["lat",15533],"tlw":["plan",1335],"trw":["job",3249],"lp":["pl","abo","pla","abl","tal","pon","alt","anot","pol","tabl","plan","bla","plo","ppl","bal"],"rp":["lat","opl","lp","job","oba"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["con",43239],"trp":["onc",10039],"tlw":["took",5513],"lp":["con","cl","cont","bro","col","clo","rob","took","bor","book","conc","coll","ctl","ront"],"rp":["onc","ock","loc","ncl","ontr","ntro"]},"155":{"input":[1,2,4,5,8],"tlw":["call",2856],"trw":["local",1100],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["don",16568],"trp":["ld",104617],"tlw":["don't",9569],"trw":["most",10396],"lp":["don","dn'","dn't","don'","dl","sn't","bod","told","tom"],"rp":["ld","n't","old","most","ond","on't","mot","ldn","ldn'","ndo","obs"]},"157":{"input":[1,3,4,5,8],"tlw":["almost",3784],"trw":["last",4981],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["front",2573],"trw":["lord",1049],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["down",11247],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"@","trp":["eo",22601],"lp":[],"rp":["eo","oe"],"special":"punc"},"161":{"input":[1,6,8],"trp":["oq",59],"lp":[],"rp":["oq"]},"162":{"input":[2,6,8],"tlp":["zo",557],"trp":["ore",43307],"tlw":["zero",137],"trw":["error",228],"lp":["zo","reo","roe","roz","roze","zero"],"rp":["ore","ero","eor","oz","oze","erro","orre","oreo","eror","eroe","oore","orer","ooz","ooze"]},"163":{"input":[1,2,6,8],"tlp":["wore",857],"trp":["owe",15537],"tlw":["wore",747],"trw":["owe",137],"lp":["wore","rowe","woe","azo"],"rp":["owe","ower","ewo","ewor","orea","erwo","oare"]},"164":{"input":[3,6,8],"tlp":["soe",138],"trp":["ose",25993],"lp":["soe","se'","se's"],"rp":["ose","e'","e's","oes","osse","oose","eso","esso","oses","'e","es'","eos","es's","oe'","oe's"]},"165":{"input":[1,3,6,8],"trp":["easo",4023],"lp":[],"rp":["easo","oxe","oxes","exo"]},"166":{"input":[2,3,6,8],"tlp":["fore",14026],"trp":["efo",11759],"tlw":["rose",1049],"trw":["offer",1014],"lp":["fore","re'","re's","rose","rofe"],"rp":["efo","efor","erso","'re","offe","er'","er's","ere'","orse","erfo","ofe","ofes","e'r","e're","effo"]},"167":{"input":[1,2,3,6,8],"tlw":["we're",1513],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["vo",13509],"trp":["ov",46618],"tlw":["vote",203],"lp":["vo","vot","vote","toe","tov","tove"],"rp":["ov","ove","ote","evo","otte","oet","evot","eov","eove","eto","oev","oeve","ovo","oote"]},"169":{"input":[1,4,6,8],"tlp":["peo",15223],"trp":["eop",15223],"tlw":["pope",239],"lp":["peo","peop","avo","poe","pote","poet","vato","pov","pove","pope"],"rp":["eop","ope","oppe","epo","ova","eapo","ovat","opea","opte","oope"]},"170":{"input":[2,4,6,8],"tlp":["rov",6005],"trp":["over",21892],"tlw":["cover",700],"trw":["over",12910],"lp":["rov","cov","cove","reco","rote","rove","roce","vor","tore","revo","core","rvo"],"rp":["over","eco","orce","oce","orte","ecor","otec","ecto"]},"171":{"input":[1,2,4,6,8],"tlw":["power",3130],"trw":["operate",192],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["doe",5478],"trp":["e'd",4775],"tlw":["does",3360],"lp":["doe","does","sov"],"rp":["e'd","'v","'ve","oved","ode","osed","oted","otes","edo","esto","et'","et's","odde","oves","e'v","e've","eedo"]},"173":{"input":[1,3,4,6,8],"tlw":["stopped",1419],"trw":["exposed",267],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["force",1513],"trw":["order",2602],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["process",1455],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["le",213808],"trw":["one",30730],"lp":[],"rp":["le","ho","el","one","ell","lle","hel","hol","eel","len","ele","hoo","ole","eno","oh","elo","hool","olle","hole","hon"]},"177":{"input":[1,5,6,8],"tlp":["alle",8964],"trp":["lea",26849],"tlw":["alone",2184],"trw":["john",1863],"lp":["alle","ale","alen"],"rp":["lea","eal","hal","ela","eall","hall","lean","joh","john","enjo","oje","heal","lane","joe","eale","elea","llea"]},"178":{"input":[2,5,6,8],"tlp":["rel",11908],"trp":["hro",12209],"tlw":["role",950],"trw":["honor",325],"lp":["rel","roke","rle","role","rele"],"rp":["hro","oke","hor","ooke","ler","lre","lke","orke","erl","kel","orne","ller","oken","erno","hook"]},"179":{"input":[1,2,5,6,8],"tlw":["who",23669],"trw":["how",14162],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["some",31924],"trp":["ome",63421],"tlw":["some",15162],"trw":["home",4865],"lp":["some","sel","sho"],"rp":["ome","les","hos","hose","hom","omen","less","he'","msel","els","emo","home","lose","lem","mome","lse","mone"]},"181":{"input":[1,3,5,6,8],"tlw":["shall",1999],"trw":["male",440],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["feel",4278],"trw":["more",21171],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["women",3612],"trw":["half",2504],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tho",36998],"trp":["oth",46489],"tlw":["both",5084],"trw":["let",4207],"lp":["tho","ble","tle","tel","ttle","bel","vel","tell","both"],"rp":["oth","othe","noth","let","lv","lve","lov","love","entl","elt","elv"]},"185":{"input":[1,4,5,6,8],"tlw":["people",14668],"trw":["help",3633],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["brother",1465],"trw":["other",13909],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["another",6638],"trw":["later",4588],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["those",7914],"trw":["moment",3684],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["that's",4282],"trw":["least",2856],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["before",10203],"trw":["left",5159],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["called",4581],"trw":["learned",1609],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["io",113622],"lp":[],"rp":["io","oi"],"special":"punc"},"193":{"input":[1,7,8],"lp":[],"rp":[]},"194":{"input":[2,7,8],"tlp":["rio",7327],"trp":["ori",8551],"lp":["rio","rior","rrio","roi","rori"],"rp":["ori","ior","iro","orri","irro","orio","iori","oir","oiro"]},"195":{"input":[1,2,7,8],"tlp":["ario",1160],"trp":["owi",4542],"tlw":["warrior",125],"lp":["ario","rowi","airo"],"rp":["owi","oria","iora","oari"]},"196":{"input":[3,7,8],"tlp":["sio",15825],"trp":["i'",14185],"trw":["'i",461],"lp":["sio","ssio","soi","so-"],"rp":["i'","osi","ossi","isio","iso","ois","o-","'i","ios","iosi","oosi","osio","oiso","-o","isso"]},"197":{"input":[1,3,7,8],"tlp":["asio",1897],"trp":["oxi",253],"lp":["asio","xio","aiso"],"rp":["oxi","ixo"]},"198":{"input":[2,3,7,8],"tlp":["riso",1574],"trp":["offi",5584],"trw":["'if",72],"lp":["riso","rofi","rsio","rios","rosi"],"rp":["offi","ifo","ifor","ofi","iors","oris","-fo","isor","-ro","-roo","oirs","isfo","'if","iff'","o-f"]},"199":{"input":[1,2,3,7,8],"tlw":["warriors",145],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["tio",72429],"trp":["og",14040],"tlw":["go",9032],"lp":["tio","go","goo","got","goi","tog","gio","gott","gto","goti"],"rp":["og","itio","oti","otio","ito","ogi","igio","iot","oog","otog"]},"201":{"input":[1,4,7,8],"tlp":["atio",33167],"trp":["opi",2391],"tlw":["ago",1471],"lp":["atio","poi","ptio","ago","goa","ppoi","topi","pio","aigo","goat","gapo"],"rp":["opi","opti","oppi","otia","oga","oati","opag","ogat","ipo"]},"202":{"input":[2,4,7,8],"tlp":["ctio",12347],"trp":["org",5456],"tlw":["torrio",94],"trw":["org",99],"lp":["ctio","gro","cio","tori","rog","rogr","cog","rgo","gor"],"rp":["org","oic","oci","ogr","otic","orit","orti","itor","orig","icio","icto"]},"203":{"input":[1,2,4,7,8],"tlw":["grow",678],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["good",10385],"trp":["it'",8789],"tlw":["good",9480],"trw":["it's",8558],"lp":["good","stio","god","doi","dog","dio","gdo","g'","g's","to-","gods"],"rp":["it'","it's","osit","isto","i'd","oid","odi","iod","isdo"]},"205":{"input":[1,3,4,7,8],"tlw":["gossip",164],"trw":["ipod",68],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["forgot",261],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["radio",638],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["li",155342],"trw":["only",13824],"lp":[],"rp":["li","ly","yo","il","ion","ill","lly","lin","oin","nly","only","lli","oy","ili","ily","oli","llin","yon","illi","nio"]},"209":{"input":[1,5,7,8],"tlp":["ally",22338],"trp":["ial",13366],"tlw":["ally",126],"trw":["lay",1482],"lp":["ally","ali","ail","alli","ainl","anyo"],"rp":["ial","lay","iona","lai","lia","inal","lain","iall","joy","ila","njoy","lian","joi","join"]},"210":{"input":[2,5,7,8],"tlp":["rly",8446],"trp":["lik",24097],"tlw":["roy",83],"trw":["york",1727],"lp":["rly","ril","rli","ryo","ryon"],"rp":["lik","ory","irl","oki","okin","kil","kill","orni","ooki","lki","lkin","orki","kly","yor","orry"]},"211":{"input":[1,2,5,7,8],"tlw":["will",14271],"trw":["okay",1081],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["sion",15757],"trp":["ions",18292],"tlw":["sly",561],"trw":["i'm",6537],"lp":["sion","sil","sly","smil","sli"],"rp":["ions","mil","lis","i'm","omi","y'","onsi","mily","mili","omin","lim","y's","i'l","i'll","ison"]},"213":{"input":[1,3,5,7,8],"tlw":["animal",491],"trw":["mail",328],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["sorry",899],"trw":["mirror",461],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["always",6467],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tion",71969],"trp":["lit",22460],"tlw":["going",6947],"trw":["into",18343],"lp":["tion","gl","tly","til","till","goin","bli"],"rp":["lit","ong","into","long","ling","lig","oing","litt","ittl","ibl","ngl","oint","ntly"]},"217":{"input":[1,4,5,7,8],"tlw":["point",3165],"trw":["national",867],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["girl",2370],"trw":["looking",3174],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["working",2448],"trw":["knowing",919],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["still",7621],"trw":["isn't",1565],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["among",2526],"trw":["lady",1132],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["story",2254],"trw":["morning",2986],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["company",2711],"trw":["important",2765],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["ou",377630],"lp":[],"rp":["ou","iou","uo","oui","eou","uou","oue"]},"225":{"input":[1,6,7,8],"tlp":["quo",328],"trp":["iquo",129],"lp":["quo"],"rp":["iquo","oqu","oque"]},"226":{"input":[2,6,7,8],"tlp":["rou",33045],"trp":["our",59933],"trw":["our",14347],"lp":["rou","riou","rrou","rizo"],"rp":["our","erio","orie","uro","erou","euro","urio","orei","urro","orou","ouri","oure","izo","oriz","iour","orru"]},"227":{"input":[1,2,6,7,8],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["sou",7964],"trp":["ous",26493],"lp":["sou","siou"],"rp":["ous","ious","u'","ou'","ouse","usio","esou","oise","ouis","ousi","eous","uous","osu","ouss","us'","usso","ies'"]},"229":{"input":[1,3,6,7,8],"tlw":["sioux",68],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["four",2961],"trw":["ours",177],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["wife's",127],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["vio",4502],"trp":["out",63916],"trw":["out",24396],"lp":["vio","voi","toge","tou","viou","gov","gove","geo","vou","goe"],"rp":["out","oug","ovi","oge","oget","utio","ovie","ego","oute","otiv"]},"233":{"input":[1,4,6,7,8],"tlw":["quote",89],"trw":["output",75],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["voice",2628],"trw":["occur",235],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["group",2351],"trw":["europe",720],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["goes",995],"trw":["i've",2219],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["positive",1027],"trw":["opposite",687],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["course",3730],"trw":["office",2363],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["support",1196],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["you",104946],"trw":["you",68463],"lp":[],"rp":["you","ul","oul","hou","oun","lu","ile","hil","ely","eli","lie","houl","ull","hile","nou","elie","line","youn","enou","lue"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["anyone",1715],"trw":["enjoy",693],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["rule",725],"trw":["your",20504],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["while",7024],"trw":["early",2452],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["smile",1413],"trw":["house",4935],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["anxious",432],"trw":["usually",1445],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["full",2345],"trw":["life",8740],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["families",960],"trw":["meanwhile",361],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["thought",7112],"trw":["little",9495],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["about",23108],"trw":["upon",4442],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["through",8798],"trw":["everyone",2219],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["without",5841],"trw":["large",2557],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["something",7615],"trw":["lives",1641],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["possible",2350],"trw":["immediately",1263],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["could",18061],"trw":["itself",2205],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["would",27522],"trw":["especially",1737],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/en-dvorak-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/en-dvorak-keymap.json index d7301ac637..64256c18ec 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/en-dvorak-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/en-dvorak-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",410],"tlw":["a",211837],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"o","baseshift":"O","trp":["oo",93108],"trw":["o",531],"lp":[],"rp":["oo"]},"3":{"input":[1,2],"base":",","baseshift":"<","tlp":["ao",915],"trp":["oa",14939],"lp":["ao"],"rp":["oa"],"special":"punc"},"4":{"input":[3],"base":"e","baseshift":"E","trp":["ee",129154],"trw":["e",471],"lp":[],"rp":["ee"]},"5":{"input":[1,3],"base":"!","baseshift":"@","tlp":["ae",810],"trp":["ea",216643],"lp":["ae"],"rp":["ea","eea"],"special":"punc"},"6":{"input":[2,3],"base":".","baseshift":">","trp":["eo",22601],"lp":[],"rp":["eo","oe"],"special":"punc"},"7":{"input":[1,2,3],"lp":[],"rp":[]},"8":{"input":[4],"base":"i","baseshift":"I","trp":["ii",1762],"trw":["i",117501],"lp":[],"rp":["ii","iii"]},"9":{"input":[1,4],"base":"p","baseshift":"P","tlp":["ai",104869],"trp":["ia",38456],"tlw":["p",765],"lp":["ai","pa","ap","pp","pi","app","pai","apa","ppi","pap","appi","api","ppa","appa","pip"],"rp":["ia","ip","ipp","ipa","ippi"]},"10":{"input":[2,4],"base":"y","baseshift":"Y","trp":["io",113622],"trw":["y",176],"lp":[],"rp":["io","yo","oi","oy","yi","oyi","oyo"]},"11":{"input":[1,2,4],"tlp":["ay",87083],"trp":["op",53305],"tlw":["pay",1548],"trw":["ya",68],"lp":["ay","po","ppo","poi","ayi","py","pay","ppy","poo","appy","pop","apo"],"rp":["op","opp","ya","oppo","opi","yp","oya","oop"]},"12":{"input":[3,4],"base":"u","baseshift":"U","trp":["ie",85987],"trw":["u",744],"lp":[],"rp":["ie","ei","ue","ui","eu","uie","iu","uee","eei","ieu","uu"]},"13":{"input":[1,3,4],"tlp":["pe",115056],"trp":["up",44081],"tlw":["pipe",229],"trw":["up",23594],"lp":["pe","au","pu","ppe","pea","appe","ape","ppea","pie","pape","pee"],"rp":["up","ep","ua","eep","upp","epa","epe","eau","epi"]},"14":{"input":[2,3,4],"trp":["ou",377630],"trw":["you",68463],"lp":[],"rp":["ou","you","ey","ye","iou","eye","uy","oye","eyo","yee","oyee","uo","oui","eou","uou","uyi","yie","uye","oue","oyou"]},"15":{"input":[1,2,3,4],"tlp":["peo",15223],"trp":["eop",15223],"tlw":["pope",239],"lp":["peo","peop","aye","pou","popu","poe"],"rp":["eop","ope","yea","oup","upo","uppo","oppe","epo","ype","opu","eapo","opea","oope","opie"]},"16":{"input":[5],"base":"h","baseshift":"H","trw":["h",335],"lp":[],"rp":[]},"17":{"input":[1,5],"base":";","baseshift":":","tlp":["ah",3197],"trp":["ha",357027],"tlw":["ah",458],"trw":["ha",121],"lp":["ah","aha"],"rp":["ha"],"special":"punc"},"18":{"input":[2,5],"base":"b","baseshift":"B","tlp":["bo",64448],"trp":["ho",160810],"tlw":["b",695],"trw":["oh",2847],"lp":["bo","boo","bb","bob","bobb","bbo"],"rp":["ho","ob","hoo","oh","hb","hbo","obo","obb","oho"]},"19":{"input":[1,2,5],"tlp":["ab",55519],"trp":["oba",3176],"lp":["ab","ba","abo","bab","boa","abb","aba","aboa","aho"],"rp":["oba","obab","hab","hao","oah","habb"]},"20":{"input":[3,5],"base":"j","baseshift":"J","trp":["he",1036192],"trw":["he",92135],"lp":[],"rp":["he","je","eh","hee","ehe","ej","eje"]},"21":{"input":[1,3,5],"tlp":["aj",1718],"trp":["hea",22882],"lp":["aj","ahe","ahea","aje"],"rp":["hea","ja","eha","jea","eah","hae","ehea"]},"22":{"input":[2,3,5],"tlp":["be",175052],"trp":["jo",17794],"tlw":["be",44932],"trw":["job",3249],"lp":["be","bee","beh","bj","bje","bbe"],"rp":["jo","job","eb","joh","obe","obj","obje","oj","oje","eho","hoe","joe","ebo","heo"]},"23":{"input":[1,2,3,5],"tlp":["bea",5725],"trp":["joa",569],"tlw":["abee",97],"lp":["bea","beha","ajo","abe","abbe","abea","abee"],"rp":["joa","eba","eab","eeab","habe"]},"24":{"input":[4,5],"base":"f","baseshift":"F","tlp":["fi",67126],"trp":["hi",274759],"tlw":["f",277],"trw":["if",25154],"lp":["fi","ff","ffi","fif"],"rp":["hi","if","iff","ifi","iffi","hif","hf","ih"]},"25":{"input":[1,4,5],"tlp":["fa",47251],"trp":["hap",14305],"trw":["hip",126],"lp":["fa","af","ph","fai","aff","phi","aph","pha","ffa","affa","ffai","affi","pf","fia"],"rp":["hap","happ","hip","hai","hia","hipp"]},"26":{"input":[2,4,5],"tlp":["fo",133745],"trp":["of",272457],"tlw":["by",35333],"trw":["of",245539],"lp":["fo","by","bi","foo","boy","ffo","fy"],"rp":["of","off","ib","hy","offi","yb","ibi","hoi","ybo","ifo","hio","ofi","oof"]},"27":{"input":[1,2,4,5],"tlp":["abi",3591],"trp":["hop",4723],"tlw":["baby",848],"trw":["happy",1895],"lp":["abi","pho","ayb","phy","aby","baby","pab","apab","affo","bay","babi","aphy","bai"],"rp":["hop","habi","oph","iab","hopi","ophy","hopp"]},"28":{"input":[3,4,5],"tlp":["fe",67683],"trp":["ef",36973],"tlw":["fee",65],"trw":["huh",118],"lp":["fe","fu","ffe","fee","fie"],"rp":["ef","hei","ju","hu","ife","iffe","eff","ief","efu","uf","uff","efe","ehi","hie","effe"]},"29":{"input":[1,3,4,5],"tlp":["fea",4050],"trp":["eph",1305],"trw":["heap",97],"lp":["fea","afe","phe","affe","fau","pfu","pef"],"rp":["eph","jap","japa","hape","hau","heap","ephe","efea","eaf","ufa","jai","heep","uph"]},"30":{"input":[2,3,4,5],"tlp":["bu",70306],"trp":["hou",45889],"tlw":["buy",1026],"trw":["joy",650],"lp":["bu","bou","fou","bef","befo","bei","bui","behi"],"rp":["hou","hey","ub","efo","offe","oub","ibe","joy","ybe","joi","ubj","ubje"]},"31":{"input":[1,2,3,4,5],"tlw":["pub",80],"trw":["hope",1489],"lp":[],"rp":[]},"32":{"input":[6],"base":"t","baseshift":"T","tlp":["tt",55910],"tlw":["t",670],"lp":["tt"],"rp":[]},"33":{"input":[1,6],"base":"(","baseshift":"[","tlp":["at",371419],"tlw":["at",51085],"lp":["at","ta","att","tat","tta","atta","ata","taa","ataa"],"rp":[],"special":"punc"},"34":{"input":[2,6],"base":"w","baseshift":"W","tlp":["to",350815],"trp":["ot",133805],"tlw":["to",249163],"trw":["otto",67],"lp":["to","wo","tw","too","two","tow","woo","tto","tot","wt","ww","www","wow"],"rp":["ot","ow","ott","oot","oto","otto","owt"]},"35":{"input":[1,2,6],"tlp":["wa",198379],"trp":["owa",3731],"lp":["wa","aw","awa","wat","towa","ato","tota","twa","atto","tato","atoo","awo","toa","aot"],"rp":["owa","oat","ota","otta","otat"]},"36":{"input":[3,6],"base":"c","baseshift":"C","tlp":["te",259049],"trp":["et",117117],"tlw":["c",872],"trw":["et",324],"lp":["te","ce","ct","tte","cc","tc","cte","cce","tee","tec","tect"],"rp":["et","ec","ect","ett","eet","ece","ette","ete","ecte"]},"37":{"input":[1,3,6],"tlp":["ca",118675],"trp":["eat",31678],"tlw":["act",1387],"trw":["eat",1112],"lp":["ca","ac","ate","act","ace","atte","tea","cat","acc","atc","tate","tac","cate","acte","acce"],"rp":["eat","eca","eac","eate","eta"]},"38":{"input":[2,3,6],"tlp":["co",161789],"trp":["ew",37100],"tlw":["we",33258],"trw":["owe",137],"lp":["co","we","wee","twe","twee","cto","cco","coo"],"rp":["ew","oc","owe","eco","ote","etw","etwe","oce","occ","oct","octo","otte"]},"39":{"input":[1,2,3,6],"tlp":["wea",5512],"trp":["oac",2483],"tlw":["coat",590],"lp":["wea","acco","watc","wate","coa","acto","weat","coat","coac","awe","aco","coca","cato"],"rp":["oac","oca","occa","ewa","ocat","ocea","eato"]},"40":{"input":[4,6],"base":"k","baseshift":"K","tlp":["ti",213739],"trp":["it",311028],"trw":["it",92474],"lp":["ti","tti","tit","titi","ttit","tk"],"rp":["it","ki","ik","iti","itt","itti","kit","iki","kitt","kt"]},"41":{"input":[1,4,6],"tlp":["ati",45742],"trp":["ita",7797],"tlw":["tip",221],"trw":["kaa",57],"lp":["ati","ak","pt","tak","tai","aki","pat","ait","tia","tati","apt","pti","pit","taki","pati","pta"],"rp":["ita","iat","ka","itat"]},"42":{"input":[2,4,6],"tlp":["wi",119378],"trp":["ok",35246],"tlw":["took",5513],"trw":["kitty",157],"lp":["wi","wit","tio","ty","took","tty","twi"],"rp":["ok","ook","ity","itio","yt","oti","owi","oki","ooki","otio","yw","ky","ito"]},"43":{"input":[1,2,4,6],"tlp":["atio",33167],"trp":["opt",1183],"tlw":["way",11339],"trw":["okay",1081],"lp":["atio","way","away","top","pow","wai","wait","ptio","tay","pot","typ","pok","topp","wak","pty"],"rp":["opt","oka","kay","okay","ywa"]},"44":{"input":[3,4,6],"tlp":["tu",53060],"trp":["ut",147044],"tlw":["cut",1451],"trw":["ice",574],"lp":["tu","ck","ci","cu","cti","tic","tie"],"rp":["ut","ic","ke","uc","ike","ice","ite","ick","eci","ecti","ute","eti","ici"]},"45":{"input":[1,3,4,6],"tlp":["ake",27987],"trp":["ica",19163],"tlw":["take",7122],"trw":["keep",3496],"lp":["ake","ack","cau","take","pec","cia","acti","put","tua","pect","atu","pic","cap","aut","cep","cept"],"rp":["ica","ecau","ept","eak"]},"46":{"input":[2,3,4,6],"tlp":["cou",38026],"trp":["out",63916],"tlw":["city",2930],"trw":["out",24396],"lp":["cou","wou","ctio","cy","city","week","cio","ciou","tou"],"rp":["out","oke","ock","ooke","yet","oic","oice","oci","iew","utio","ety"]},"47":{"input":[1,2,3,4,6],"tlw":["type",863],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"d","baseshift":"D","tlp":["th",1104883],"trp":["ht",56378],"tlw":["th",802],"lp":["th","dd","dh","thd","ddh","tth"],"rp":["ht","hd","hth","htt"]},"49":{"input":[1,5,6],"tlp":["ad",140314],"trp":["hat",148416],"tlw":["that",110865],"trw":["had",63389],"lp":["ad","tha","that","da","ath","add","dat","dad","ada","data","atth","dha","ddha","thda","dadd"],"rp":["hat","had","hatt","hda","hath"]},"50":{"input":[2,5,6],"tlp":["wh",148489],"trp":["oth",46489],"tlw":["who",23669],"trw":["how",14162],"lp":["wh","do","tho","who","dow","bot","bod","both","doo","tood","bt","wd","tod"],"rp":["oth","od","how","ood","hot","odd","owd"]},"51":{"input":[1,2,5,6],"tlp":["wha",30534],"trp":["oad",3493],"tlw":["what",26770],"trw":["oath",137],"lp":["wha","what","tab","bat","bad","ado","batt","toda","boat","adow","dwa","daw","bath","bta","tba","atho"],"rp":["oad","oda","hado","obta"]},"52":{"input":[3,5,6],"tlp":["the",718961],"trp":["ed",326541],"tlw":["the",506536],"trw":["ed",253],"lp":["the","de","ch","ted","ded","che","tch","ced","dec","cted","ched","dde","dee"],"rp":["ed","eth","eed","hed","ethe","jec","ject"]},"53":{"input":[1,3,5,6],"tlp":["cha",21540],"trp":["ead",29380],"tlw":["death",2323],"trw":["each",6050],"lp":["cha","ach","ade","dea","athe","ated","atch","ache","tead","deat","aced","dead","date"],"rp":["ead","each","head","eath","eade","jac","hate"]},"54":{"input":[2,3,5,6],"tlp":["whe",44709],"trp":["othe",34663],"tlw":["bed",1960],"trw":["object",689],"lp":["whe","bec","bet","cho","wed","doe","choo","betw","bed","beco","bett","bjec","whet","doc","doct"],"rp":["othe","howe","owed","ode","ojec"]},"55":{"input":[1,2,3,5,6],"tlw":["watch",1263],"trw":["jaw",167],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["di",96016],"trp":["id",100069],"tlw":["did",12252],"trw":["hit",1079],"lp":["di","thi","ft","did","dif","diff","dit","tif","diti","fit","ddi","fift"],"rp":["id","ith","hit","ift","idd","ithi","kid","idi"]},"57":{"input":[1,4,5,6],"tlp":["aid",27860],"trp":["hapt",2000],"tlw":["paid",1096],"trw":["ida",198],"lp":["aid","aft","fat","adi","fath","dia","path","diat","taf","taff","addi","paid","pid","dai","adit","fait","aith"],"rp":["hapt","ida","hak"]},"58":{"input":[2,4,5,6],"tlp":["with",75749],"trp":["yth",7557],"tlw":["with",67032],"lp":["with","whi","dy","why","body","book","bit","whit","doi","thy","wif","food","wid","foot"],"rp":["yth","ythi","itho","ody","othi","oft"]},"59":{"input":[1,2,4,5,6],"tlw":["day",8306],"trw":["habit",454],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["thei",26847],"trp":["ide",35753],"tlw":["feet",2131],"trw":["effect",1185],"lp":["thei","du","fte","chi","fic","ffic","die","duc","tud"],"rp":["ide","ich","hic","ked","hich","uch","ud","ied","edi","ethi","uth"]},"61":{"input":[1,3,4,5,6],"tlw":["face",4765],"trw":["idea",2885],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["but",49620],"trw":["office",2363],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["about",23108],"trw":["hoped",506],"lp":[],"rp":[]},"64":{"input":[7],"base":"n","baseshift":"N","trp":["nn",20957],"trw":["n",169],"lp":[],"rp":["nn"]},"65":{"input":[1,7],"base":"'","baseshift":"\"","tlp":["an",578917],"trp":["na",51349],"tlw":["an",29559],"trw":["'",14271],"lp":["an","ann","an'","ana","anna","a'","a'a","aan"],"rp":["na","n'","nan","nna","''","'a","nann","'an","'n"],"special":"punc"},"66":{"input":[2,7],"base":"q","baseshift":"Q","trp":["on",380429],"tlw":["q",103],"trw":["on",61313],"lp":[],"rp":["on","no","oon","nno","ono","onn","non","noo","noon","nq","onq","nnon","oq"]},"67":{"input":[1,2,7],"tlp":["ano",7268],"trp":["on'",11539],"trw":["o'",138],"lp":["ano","anno","aq","anon","anq"],"rp":["on'","ona","o'","oan","onna","onan","noa","'no","oan'","'o"]},"68":{"input":[3,7],"base":"v","baseshift":"V","tlp":["ve",240401],"trp":["en",361122],"tlw":["v",386],"trw":["even",12216],"lp":["ve","ven"],"rp":["en","ne","ev","eve","een","even","ene","nev","nv","neve","nee","nne","nve","enn","nen","nven","enne","env"]},"69":{"input":[1,3,7],"tlp":["av",63772],"trp":["e'",16794],"tlw":["van",633],"lp":["av","ave","va","ane","van","anne","aven","ava"],"rp":["e'","ean","eav","nea","'v","'ve","eave","en'","ena","eva","ne'","nav"]},"70":{"input":[2,3,7],"tlp":["vo",13509],"trp":["one",63385],"tlw":["von",319],"trw":["one",30730],"lp":["vo","von"],"rp":["one","ov","ove","eq","eno","onv","eon","eone","onve","onne","evo","nov","nvo","none","nove","nnov","onen","eov"]},"71":{"input":[1,2,3,7],"tlp":["avo",2634],"trp":["one'",1039],"lp":["avo","aneo"],"rp":["one'","ova","nova","eano","eavo","oe'","eona","oane","ovna"]},"72":{"input":[4,7],"base":"x","baseshift":"X","tlp":["xi",4595],"trp":["in",644105],"tlw":["x",233],"trw":["in",155002],"lp":["xi","xin","xii","xiii"],"rp":["in","ni","nin","ini","inn","ix","nni","inin","nnin","inni","nx","nxi","nix","ixi","ixin"]},"73":{"input":[1,4,7],"tlp":["ain",43995],"trp":["i'",14185],"tlw":["pain",1250],"trw":["'i",461],"lp":["ain","xp","ani","pan","pin","xa","pain","ppin","pani","aini","ax","anin","xan","apan","anx"],"rp":["i'","ina","ian","nia","inan"]},"74":{"input":[2,4,7],"trp":["ion",94353],"trw":["nixon",129],"lp":[],"rp":["ion","ny","oin","yin","yon","nio","oni","nion","ox","nyo","nyon","yn","iq","ony","nny","inno","iny","inio","ino","niq"]},"75":{"input":[1,2,4,7],"tlp":["any",30867],"trp":["iona",6976],"tlw":["any",10758],"trw":["opinion",667],"lp":["any","pon","poin","ayin","pany","anyo","apon","anio","xpo","any'","ay'","ppon"],"rp":["iona","y'","opin","yan","onia","ny'","iano","yna"]},"76":{"input":[3,4,7],"tlp":["vi",54014],"trp":["un",97406],"tlw":["vi",155],"trw":["nine",768],"lp":["vi","vin","vie"],"rp":["un","iv","ive","ex","ine","ien","nu","ivi","uni","ein","eni","inu","iev","inv","evi","ieve","nex"]},"77":{"input":[1,3,4,7],"tlp":["pen",17197],"trp":["exp",16071],"tlw":["avenue",408],"trw":["i've",2219],"lp":["pen","xpe","avi","avin","aine","ppen","pene","pine","aun"],"rp":["exp","expe","u'","exa","iva","i'v","i've","epen","una","eani","eavi"]},"78":{"input":[2,3,4,7],"tlp":["qu",27187],"trp":["oun",39137],"tlw":["queen",763],"trw":["union",600],"lp":["qu","qui","que","vio","voi","viou","quen"],"rp":["oun","equ","nou","ovi","youn","ney","enou","yone","oney","equi","eque","ovin","ovie"]},"79":{"input":[1,2,3,4,7],"tlw":["anyone",1715],"trw":["upon",4442],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"g","baseshift":"G","tlp":["gh",90668],"trp":["ng",301290],"tlw":["g",298],"lp":["gh","gn","gg"],"rp":["ng","hn","nh","ngn","ngh","hnn"]},"81":{"input":[1,5,7],"tlp":["ag",47829],"trp":["han",36890],"tlw":["gang",279],"trw":["hang",373],"lp":["ag","ga","ang","aga","gan","anag","gna","gag","agg","g'","agn","agan","gang"],"rp":["han","hang","nag","nha","nga","ngag","ng'"]},"82":{"input":[2,5,7],"tlp":["go",53049],"trp":["ong",22252],"tlw":["go",9032],"lp":["go","goo","gon","bon","gno","gho","ghb","ghbo","goog"],"rp":["ong","og","hon","ohn","ogn","nob","hono","nobo","oog","nb","hno"]},"83":{"input":[1,2,5,7],"tlp":["ban",5102],"trp":["nab",1526],"tlw":["ago",1471],"trw":["noah",100],"lp":["ban","ago","goa","bag","aban","agon","gab","bona","bagh"],"rp":["nab","ho'","onab","oga","nhab","ogan","onag","'b","noah","ohn'","'oh"]},"84":{"input":[3,5,7],"tlp":["ge",97282],"trp":["hen",50214],"tlw":["gene",85],"trw":["egg",150],"lp":["ge","gen","gene","gge","ghe","gne","veh"],"rp":["hen","eg","nge","eng","ege","nj","enj","enge","neg","hene","egg","egen","nhe"]},"85":{"input":[1,3,5,7],"tlp":["age",21698],"trp":["hav",41867],"tlw":["gave",3038],"trw":["have",35739],"lp":["age","ange","gav","gave","agen","gage","vag"],"rp":["hav","have","he'","ega","egan","nage","heav","eag","ehav","jan","enga","jean","jane"]},"86":{"input":[2,3,5,7],"tlp":["been",20749],"trp":["oge",4232],"tlw":["been",20749],"trw":["john",1863],"lp":["been","beg","ben","gone","gov","bov","bove","gove","bene","geo","bv","goe"],"rp":["oge","onge","hone","john","njo","enjo","ego","obv"]},"87":{"input":[1,2,3,5,7],"tlw":["began",3725],"trw":["joan",332],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["gi",33313],"trp":["ing",245338],"tlw":["fig",732],"trw":["high",3405],"lp":["gi","fin","gin","fig","ging"],"rp":["ing","ig","hin","igh","hing","ning","nf","ign","nig","nigh","hig","high","inf","ngi","ngin"]},"89":{"input":[1,4,5,7],"tlp":["gai",12716],"trp":["iga",1887],"tlw":["again",7165],"trw":["hanging",518],"lp":["gai","gain","agai","ping","fina","agi","agin","aig","gani","fan","gina","aigh","pag","angi","gia","aign"],"rp":["iga","iag","igna","nfa"]},"90":{"input":[2,4,5,7],"tlp":["goi",7117],"trp":["ying",10969],"tlw":["going",6947],"trw":["ongoing",108],"lp":["goi","goin","big","gy","bin","gio","bing","box"],"rp":["ying","oing","onf","nfo","info","onfi","ogni","ogi","igio","igno","ogy","ighb"]},"91":{"input":[1,2,4,5,7],"tlw":["paying",444],"trw":["hoping",381],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gu",19194],"trp":["ug",51619],"tlw":["give",3971],"trw":["evening",1505],"lp":["gu","ving","giv","give","gue","fiv","five","fun","gine"],"rp":["ug","ugh","eing","ung","eig","hun","egi","eigh","ugg","ehin","egin"]},"93":{"input":[1,3,4,5,7],"tlw":["page",587],"trw":["having",3594],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["being",7746],"trw":["enough",4614],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["phone",1178],"trw":["heavy",1152],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"r","baseshift":"R","tlp":["rt",81050],"trp":["nt",218499],"tlw":["r",211],"lp":["rt","tr","rn","rr","tn","ttr","rtn","rtr","rnt"],"rp":["nt","ntr","nr"]},"97":{"input":[1,6,7],"tlp":["ar",265629],"trp":["'t",37625],"tlw":["ran",1611],"lp":["ar","ra","ant","art","tra","tan","rat","ran","t'","arr","tar","rta","arn","tant","ara"],"rp":["'t","n't","nat","nta","'r"]},"98":{"input":[2,6,7],"tlp":["ro",170933],"trp":["or",314634],"tlw":["town",2110],"trw":["not",43106],"lp":["ro","wor","wn","tor","ron","tro","row","roo","wr","ton"],"rp":["or","not","now","own","ort","nto","ont","oor","nor","orn"]},"99":{"input":[1,2,6,7],"tlp":["war",17594],"trp":["on't",11002],"tlw":["want",6609],"trw":["narrow",524],"lp":["war","wan","want","aro","anot","roa","raw","rwa","rwar","awar","won'","awn"],"rp":["on't","orta","ora","owar","onta","oar","orwa","orat"]},"100":{"input":[3,6,7],"tlp":["re",464927],"trp":["er",558051],"tlw":["ten",1916],"trw":["never",9168],"lp":["re","ver","ter","cr","ten","rc","ren","ree","rec","tter"],"rp":["er","ere","ent","nc","nce","ever","nte","enc","ence","ner"]},"101":{"input":[1,3,6,7],"tlp":["rea",59674],"trp":["ear",54836],"tlw":["are",29172],"trw":["near",2012],"lp":["rea","are","can","anc","reat","ance","car","rac","ater","rate","crea","ract","arc","care","ante"],"rp":["ear","era","'re","erat","earn"]},"102":{"input":[2,3,6,7],"tlp":["wer",47082],"trp":["ore",43307],"tlw":["were",34909],"trw":["over",12910],"lp":["wer","con","were","cont","wen","went","cor","cro","rov","ween","conc","rew"],"rp":["ore","over","new","onc","once","ower","orc","econ"]},"103":{"input":[1,2,3,6,7],"tlw":["water",2519],"trw":["ocean",381],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["ri",146328],"trp":["ir",91496],"tlw":["tin",227],"trw":["ink",130],"lp":["ri","tin","rk","rin","rit","tri","rri","xt","rti","rni","ttin","rnin"],"rp":["ir","int","kin","kn","nti","nk","ink","nit"]},"105":{"input":[1,4,6,7],"tlp":["pr",76723],"trp":["it'",8789],"tlw":["part",4589],"lp":["pr","par","part","pri","rai","air","ari","tain","ark","arri","rati","rp","arti","ria","akin","ank","rain","trai"],"rp":["it'","nati"]},"106":{"input":[2,4,6,7],"tlp":["tion",71969],"trp":["kno",19117],"tlw":["work",8749],"trw":["into",18343],"lp":["tion","ry","work","win","try","rio","rry","tory","rty","wri","writ"],"rp":["kno","into","ork","know","ori","ory","oint","ntio","owin"]},"107":{"input":[1,2,4,6,7],"tlw":["point",3165],"trw":["nation",393],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["ru",29549],"trp":["ur",136165],"tlw":["turn",2317],"trw":["next",4617],"lp":["ru","tur","rie","tiv","ric","ture","rien","tru","tive","turn"],"rp":["ur","eir","ure","eri","unt","ire","inc","inte","urn","enti"]},"109":{"input":[1,3,4,6,7],"tlw":["taken",2592],"trw":["experience",2559],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["very",10569],"trw":["your",20504],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["power",3130],"trw":["you're",4043],"lp":[],"rp":[]},"112":{"input":[5,6,7],"tlp":["ght",56087],"trp":["nd",415919],"tlw":["dr",852],"trw":["nd",119],"lp":["ght","rd","gr","dr","thr","rg","dn","rth","dg","rh","gt","gth","ddr"],"rp":["nd","hr","nth","ndr","ngt","ngr","ngth"]},"113":{"input":[1,5,6,7],"tlp":["and",307129],"trp":["har",16333],"tlw":["and",266855],"trw":["hand",5168],"lp":["and","ard","than","dn'","dn't","gra","arg","tand","rad","dar","dan","gar","dra","rang"],"rp":["har","hand","'d","hat'","hard","nda"]},"114":{"input":[2,5,6,7],"tlp":["br",30536],"trp":["ord",17538],"tlw":["down",11247],"trw":["north",1391],"lp":["br","don","thro","down","good","bro","gro","got","rob","word","bor","rod","door"],"rp":["ord","ond","hro","noth","hor","org","ndo"]},"115":{"input":[1,2,5,6,7],"tlw":["don't",9569],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["ther",83716],"trp":["her",160213],"tlw":["there",23867],"trw":["her",47940],"lp":["ther","red","der","get","then","gre","den","ger","ved","dre","rge","rned"],"rp":["her","here","ned","nde","end","nder","ered","nted"]},"117":{"input":[1,3,5,6,7],"tlw":["great",6807],"trw":["heard",3016],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["when",27718],"trw":["other",13909],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["another",6638],"trw":["edward",463],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["fr",62589],"trp":["ight",39009],"tlw":["think",7751],"trw":["night",4461],"lp":["fr","thin","ting","din","ding","ring","fir","rig","righ","fri","rf","didn","find"],"rp":["ight","ind","king","ndi","hink","idn","ndin"]},"121":{"input":[1,4,5,6,7],"tlw":["didn't",7051],"trw":["i'd",3142],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["for",70927],"trw":["nothing",5093],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["anything",3884],"trw":["ordinary",614],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["their",26687],"trw":["under",4429],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["after",12071],"trw":["happened",1976],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["before",10203],"trw":["often",3952],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["around",6455],"trw":["opened",1401],"lp":[],"rp":[]},"128":{"input":[8],"base":"s","baseshift":"S","tlp":["ss",89478],"tlw":["s",2993],"lp":["ss"],"rp":[]},"129":{"input":[1,8],"base":"-","baseshift":"_","tlp":["as",286499],"trp":["-s",481],"tlw":["as",63759],"trw":["-",1362],"lp":["as","sa","ass","ssa","assa","asa","sas","saa","ssas","sass"],"rp":["-s","-a"],"special":"punc"},"130":{"input":[2,8],"tlp":["so",117437],"trp":["os",70799],"tlw":["so",27040],"lp":["so","soo","sso"],"rp":["os","oss","oos","oso"],"special":"bksp","base":"os"},"131":{"input":[1,2,8],"tlp":["aso",4273],"trp":["oas",835],"lp":["aso","asso","soa","aos","so-"],"rp":["oas","o-","osa","ossa","-o"]},"132":{"input":[3,8],"base":")","baseshift":"]","tlp":["se",231764],"trp":["es",259811],"tlw":["see",9997],"lp":["se","see","sse","ses","sses","sess","sees"],"rp":["es","ess","ese","esse","ees","eese"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ase",11581],"trp":["eas",23956],"tlw":["sea",1374],"trw":["ease",378],"lp":["ase","sea","asse","ases","seas"],"rp":["eas","ease","essa","esea","easa","e-","-e","eass","-se","e-a","-es"]},"134":{"input":[2,3,8],"tlp":["soe",138],"trp":["ose",25993],"lp":["soe"],"rp":["ose","oes","osse","oose","eso","esso","oses","eos"]},"135":{"input":[1,2,3,8],"trp":["easo",4023],"lp":[],"rp":["easo"]},"136":{"input":[4,8],"base":"?","baseshift":"/","tlp":["si",120170],"trp":["is",263616],"trw":["is",60295],"lp":["si","ssi","sis","ssis","siss"],"rp":["is","isi","iss","issi","isis"],"special":"punc"},"137":{"input":[1,4,8],"tlp":["sp",40374],"trp":["ips",2652],"tlw":["pass",1068],"lp":["sp","sai","ps","pas","asi","pass","spi","assi","spa","aps","ais","sia","sap","asp","sapp","ssia"],"rp":["ips","isa","isp","isap"]},"138":{"input":[2,4,8],"tlp":["sio",15825],"trp":["ys",27984],"lp":["sio","sy","ssio","sys","ssy"],"rp":["ys","osi","ossi","isio","iso","ysi","oys","ois","ios","ysis","iosi","yos","yoss","oosi","osio"]},"139":{"input":[1,2,4,8],"tlp":["pos",16560],"trp":["osp",1974],"tlw":["say",7781],"lp":["pos","ays","say","spo","poss","posi","says","ppos","asy","asio","sayi","psy","sop"],"rp":["osp","ops","y-","ospi","oops","opos","osop"]},"140":{"input":[3,4,8],"tlp":["su",62257],"trp":["us",124701],"tlw":["sue",76],"trw":["us",10609],"lp":["su","ssu","sus","sui","sue","sie"],"rp":["us","use","ies","ise","usi","esi","ues","essi","esu","uss","usu","uis","ussi","uses"]},"141":{"input":[1,3,4,8],"tlp":["spe",18659],"trp":["esp",8233],"tlw":["pause",378],"trw":["usa",134],"lp":["spe","aus","ause","sup","supp","sua","spea","asu","sep","aise","assu","spee","pus"],"rp":["esp","espe","usa","usua","easi","easu","ups"]},"142":{"input":[2,3,4,8],"tlp":["sou",7964],"trp":["ous",26493],"trw":["eyes",5472],"lp":["sou","sey"],"rp":["ous","ious","yes","ouse","eyes","yse","usio","usy","uys","esou","yees","oise","ouis","ousi","eous","eys","uous","osu"]},"143":{"input":[1,2,3,4,8],"tlw":["suppose",803],"trw":["easy",1561],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","tlp":["sh",119750],"trp":["ms",20491],"trw":["m",1273],"lp":["sh","sm","shm","ssm","ssh"],"rp":["ms","mm","hs","hm","mms"]},"145":{"input":[1,5,8],"tlp":["am",72035],"trp":["ma",137500],"tlw":["am",4235],"trw":["has",11125],"lp":["am","sha","sam","sma","ash","ama","ams","sham","amm","aham","asm","asha"],"rp":["ma","has","mas","ham","mma","mass","-m","-ma"]},"146":{"input":[2,5,8],"tlp":["som",32033],"trp":["om",158331],"tlw":["boss",848],"trw":["mom",1398],"lp":["som","sho","bs","sb","bos","smo"],"rp":["om","mo","mb","mos","hos","omm","hom","oom","mom","obs","mmo","ommo","omb","moo"]},"147":{"input":[1,2,5,8],"tlp":["amo",4702],"trp":["oma",6690],"tlw":["bass",106],"trw":["obama",363],"lp":["amo","bas","amb","abs","sba","abso","bass","bam","bama","amba"],"rp":["oma","omma","mba","mbas","homa","omas","obam","hamb","-b","omba"]},"148":{"input":[3,5,8],"tlp":["she",58316],"trp":["me",235102],"tlw":["she",45928],"trw":["me",30278],"lp":["she","seem"],"rp":["me","em","hem","eme","hes","mes","hese","eem","mse","mem","ems","mme","eeme","emem","mee","hems","emse","eems"]},"149":{"input":[1,3,5,8],"tlp":["ame",34012],"trp":["mea",9606],"tlw":["same",6718],"trw":["james",771],"lp":["ame","same","ames","ashe","amme"],"rp":["mea","ema","eam","maj","hame","jam","meas","eams","hase","jame","eame","emma","e-m","e-ma","mae"]},"150":{"input":[2,3,5,8],"tlp":["some",31924],"trp":["ome",63421],"tlw":["some",15162],"trw":["home",4865],"lp":["some","bes","bse","semb"],"rp":["ome","hose","mbe","emb","embe","emo","home","memb","mome","meo","omeo","omes","obse","memo","omme","jobs"]},"151":{"input":[1,2,3,5,8],"tlw":["base",538],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["shi",11339],"trp":["his",109386],"tlw":["fish",451],"trw":["his",69304],"lp":["shi","sim","smi","sf","fis"],"rp":["his","im","mi","him","ish","mis","ims","hims","miss","imi","mmi","imm","mf","ism","isf"]},"153":{"input":[1,4,5,8],"tlp":["ami",8211],"trp":["mp",43386],"tlw":["ship",877],"trw":["map",280],"lp":["ami","fam","fami","ship","amp","simp","fas","aim","ashi","saf","pm"],"rp":["mp","imp","mpa","ima","mai","haps","iam","hips","-f"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["sib",6869],"trp":["my",49697],"tlw":["boys",1175],"trw":["my",40423],"lp":["sib","ssib","sof","sibi","boys","sym","shio"],"rp":["my","omi","mys","ym","mbi","omis","hys","ommi","hysi","omf","mfo","omfo","imb"]},"155":{"input":[1,2,4,5,8],"tlw":["shop",667],"trw":["may",6928],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["sum",4274],"trp":["ime",28758],"tlw":["sum",220],"trw":["jim",446],"lp":["sum","fes","suf","suff"],"rp":["ime","mu","um","jus","mus","imes","imse","ishe","hus","ume","ush","hum","emi","mmu","umm","imme"]},"157":{"input":[1,3,4,5,8],"tlw":["safe",789],"trw":["jump",350],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["busy",647],"trw":["house",4935],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["famous",816],"trw":["maybe",2276],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"z","baseshift":"Z","tlp":["st",260669],"tlw":["st",798],"lp":["st","ts","sts","zz","tst","tz","tts"],"rp":[]},"161":{"input":[1,6,8],"tlp":["sta",40389],"trp":["-t",1205],"tlw":["sat",2253],"lp":["sta","ast","stat","sat","az","tas","za","ats","zat","tast","t-","sast","asta","asts","t-s","t-t","azz","zza","tsta"],"rp":["-t"]},"162":{"input":[2,6,8],"tlp":["sto",21671],"trp":["ost",21248],"tlw":["toss",85],"trw":["oz",100],"lp":["sto","ws","sw","stoo","tos","swo","zo","wso","toss","tso","stot"],"rp":["ost","ows","ots","oz","oots","osts","osto","otos","otst"]},"163":{"input":[1,2,6,8],"tlp":["was",117615],"trp":["oast",835],"tlw":["was",112330],"lp":["was","saw","aws","to-","swa","wast","awso","asto","atso","wats","toas","sota"],"rp":["oast","oats","-tw","-two","-to","-to-","-w","-wo"]},"164":{"input":[3,6,8],"tlp":["ste",30114],"trp":["est",36800],"tlw":["set",3472],"lp":["ste","sc","ces","tes","ze","sec","cess","set","cts","cces","test","cs","tse","sett"],"rp":["est","esc","ets","este","ects","eces"]},"165":{"input":[1,3,6,8],"tlp":["cas",7637],"trp":["east",4973],"tlw":["case",2870],"trw":["east",920],"lp":["cas","ates","aste","case","sca","stea","aces","ccas","seat","sac","cast","aze","acts","stac","asc"],"rp":["east","esta","esca","-c","eats"]},"166":{"input":[2,3,6,8],"tlp":["swe",5581],"trp":["ews",3282],"tlw":["west",1068],"lp":["swe","soc","sco","seco","wes","west","cos","cost","ssoc","stoc","swee","scot","sew"],"rp":["ews","oces","otes","oze","esto","oste","osc"]},"167":{"input":[1,2,3,6,8],"tlw":["coast",540],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["sti",24448],"trp":["ist",28091],"tlw":["sit",1264],"trw":["its",10155],"lp":["sti","sk","sit","sist","tis","siti","ski","zi","tsi","tist","sitt","stit"],"rp":["ist","its","ks","iz","isti","isit","ists","itis"]},"169":{"input":[1,4,6,8],"tlp":["ask",11409],"trp":["ista",3836],"tlw":["ask",2497],"lp":["ask","sati","past","spit","azi","zati","stai","stak","atis","task","asti","asks","aski","stia","sak","pts","sita"],"rp":["ista","iza","izat"]},"170":{"input":[2,4,6,8],"tlp":["wis",5185],"trp":["osit",4706],"tlw":["sky",622],"lp":["wis","stio","syst","sity","sty","swi","sky","zy","swit","sito","twis","wist"],"rp":["osit","isto","yst","oks","ooks","izo","osti","isky"]},"171":{"input":[1,2,4,6,8],"tlw":["stop",1798],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["suc",11912],"trp":["ust",31229],"tlw":["success",1485],"lp":["suc","stu","ske","ties","cus","sic","sci","cis","succ","stic","cks"],"rp":["ust","iste","esti","ize","uest","kes","isc","uts","ices"]},"173":{"input":[1,3,4,6,8],"tlw":["speak",1583],"trw":["escape",642],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["weeks",1328],"trw":["keys",254],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["spoke",1285],"trw":["opposite",687],"lp":[],"rp":[]},"176":{"input":[5,6,8],"tlp":["ds",32521],"trp":["hts",3276],"lp":["ds","tm","ths","dm","sd","stm","dsh","dds","dst","thm","thst","sht","sth"],"rp":["hts","mst","mt","mth","htm","hst"]},"177":{"input":[1,5,6,8],"tlp":["adm",2373],"trp":["mat",11909],"tlw":["sad",457],"trw":["mad",373],"lp":["adm","dam","ads","sad","shad","tma","adam","amaz","sda","atm","stma","tmas","d-"],"rp":["mat","mad","matt","mast","msta","maz","hast"]},"178":{"input":[2,5,6,8],"tlp":["thos",7914],"trp":["most",15009],"tlw":["show",2474],"trw":["most",10396],"lp":["thos","wom","show","tom","dom","whom","whos","stom","shot","dows","bst","doz","ttom"],"rp":["most","mot","moth","mod","ods","host","oods"]},"179":{"input":[1,2,5,6,8],"tlw":["thomas",561],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["them",24753],"trp":["med",15366],"tlw":["them",21593],"trw":["met",1822],"lp":["them","sed","des","thes","tem","ssed","shed","sch","sted","tme","ches","dem","zed","desc","stem"],"rp":["med","met","meth","emed","meet"]},"181":{"input":[1,3,5,6,8],"tlw":["came",6889],"trw":["made",9696],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["those",7914],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["became",2829],"trw":["matthew",262],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["this",36089],"trp":["mit",4914],"tlw":["this",36089],"trw":["kids",1451],"lp":["this","tim","sid","dis","dist","dmi","tsid","tish","tisf"],"rp":["mit","hist","mid","mist","ids","mitt","midd","kids","mmit","imit","mik"]},"185":{"input":[1,4,5,6,8],"tlw":["said",23960],"trw":["maid",197],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["books",1442],"trw":["myth",226],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["days",3754],"trw":["habits",317],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["time",17984],"trw":["just",14589],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["asked",5484],"trw":["make",9390],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["sometimes",2685],"trw":["outside",2061],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["because",9879],"trw":["empty",823],"lp":[],"rp":[]},"192":{"input":[7,8],"base":"l","baseshift":"L","tlp":["sl",14047],"trp":["ll",183975],"trw":["l",235],"lp":["sl","sn","ssl"],"rp":["ll","ns","ls","nl","lls","ln","lln","nsl","nns"]},"193":{"input":[1,7,8],"tlp":["al",228009],"trp":["la",103279],"tlw":["all",30772],"trw":["la",689],"lp":["al","all","als","ans","sn'","san","asn","asn'","sla"],"rp":["la","'s","lan","nal","las","'l","'ll","lla","lass","nall","n's"]},"194":{"input":[2,7,8],"tlp":["son",18915],"trp":["lo",103908],"tlw":["soon",3191],"trw":["loss",625],"lp":["son","sol","soon","slo","sons","sq"],"rp":["lo","ol","ons","loo","lon","onl","oll","los","llo","lso","ool","olo","ollo","ols"]},"195":{"input":[1,2,7,8],"tlp":["also",7989],"trp":["onal",8944],"tlw":["also",7989],"trw":["loan",120],"lp":["also","alo","alon","ason","sona","allo","sola","son'"],"rp":["onal","olla","oal","ola","loa","oals","on's","o's","osal","olan","loan","o-n"]},"196":{"input":[3,7,8],"tlp":["sel",25483],"trp":["le",213808],"tlw":["seen",3375],"trw":["less",3333],"lp":["sel","sen","ves","vel"],"rp":["le","el","ell","lle","les","nes","ens","ness","eel","len","less","ele","lv","nse","lve","els"]},"197":{"input":[1,3,7,8],"tlp":["alle",8964],"trp":["lea",26849],"tlw":["save",729],"trw":["leave",2148],"lp":["alle","ale","val","sav","avel","vas","aves"],"rp":["lea","eal","e's","leas","ela","eall","leav","eans","lean","esn'","e'l","e'll","lane"]},"198":{"input":[2,3,7,8],"tlp":["vol",4101],"trp":["ole",7645],"tlw":["solve",211],"trw":["love",3654],"lp":["vol","velo","volv","sov"],"rp":["ole","lov","love","lose","elo","olle","lone","ones","olv","olve","ello","oesn","onse","nvol","olen","evol"]},"199":{"input":[1,2,3,7,8],"tlw":["alone",2184],"trw":["one's",680],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["sin",21536],"trp":["li",155342],"tlw":["six",1928],"trw":["ill",512],"lp":["sin","sil","ssin","six","sli","xis"],"rp":["li","il","ill","lin","ins","lli","nsi","ili","lis","llin","nis","illi","insi","inis"]},"201":{"input":[1,4,7,8],"tlp":["pl",68379],"trp":["ial",13366],"tlw":["plan",1335],"trw":["i'll",2287],"lp":["pl","pla","ali","ail","ains","plan","pli","xpl","plai","ppl","xpla"],"rp":["ial","lp","lai","lia","inal","lain","iall","lip","ila"]},"202":{"input":[2,4,7,8],"tlp":["sion",15757],"trp":["ly",122921],"tlw":["sly",561],"trw":["only",13824],"lp":["sion","sly"],"rp":["ly","lly","ions","nly","only","ily","oli","onsi","loy","lio","lion","ison","llio","ilo","oil","yl","inly","lyi"]},"203":{"input":[1,2,4,7,8],"tlw":["play",1696],"trw":["lay",1482],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["vis",5954],"trp":["ul",100189],"tlw":["sun",1066],"trw":["live",2131],"lp":["vis","visi","sine"],"rp":["ul","lu","ile","eli","lie","liv","ines","ull","live","usin","elie","line","lue","uil","elli","liev","elin"]},"205":{"input":[1,3,4,7,8],"tlw":["value",1339],"trw":["explain",790],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["soul",950],"trw":["louis",534],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["people",14668],"trw":["usually",1445],"lp":[],"rp":[]},"208":{"input":[5,7,8],"tlp":["gs",15960],"trp":["ngs",13154],"lp":["gs","gl","ghl","ggl","gm","gns","sg","ghs","gnm","ggs"],"rp":["ngs","ngl","lm","nm","hl","nsh","mn","lg","ml","lsh"]},"209":{"input":[1,5,7,8],"tlp":["alm",5014],"trp":["man",42306],"tlw":["small",3786],"trw":["man",9572],"lp":["alm","gla","smal","shal","gam","glan","sag","glas"],"rp":["man","mal","hal","'m","nam","mag","mall","hall","mana","mann","mman","lang"]},"210":{"input":[2,5,7,8],"tlp":["bl",48180],"trp":["mon",15025],"tlw":["song",454],"trw":["long",7506],"lp":["bl","blo","bloo","gol","glo"],"rp":["mon","long","hol","hool","lmo","lmos","obl","log","mong","mbl","mmon","olog","nom","onsh","onom"]},"211":{"input":[1,2,5,7,8],"tlw":["along",3060],"trw":["lab",187],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["ges",7464],"trp":["men",40378],"tlw":["smell",549],"trw":["men",6294],"lp":["ges","gle","vem","gges","veme"],"rp":["men","hel","msel","emen","lem","leg","engl","nme","nmen","ngle","lege","mel","hell","leng","lleg"]},"213":{"input":[1,3,5,7,8],"tlw":["game",1331],"trw":["name",3325],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["someone",3001],"trw":["move",1750],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["able",2600],"trw":["ebola",147],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["fl",14707],"trp":["min",22065],"tlw":["sign",979],"trw":["hill",676],"lp":["fl","sing","sig","sign","fil"],"rp":["min","lf","hil","mil","ling","ings","lif","lig","ligh","mig","migh","ming","lish","mili","nish"]},"217":{"input":[1,4,5,7,8],"tlw":["fall",1195],"trw":["i'm",6537],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["bill",951],"trw":["million",900],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["family",3955],"trw":["many",8068],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["feel",4278],"trw":["life",8740],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["simple",1385],"trw":["help",3633],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["business",3695],"trw":["money",3556],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["possible",2350],"trw":["impossible",978],"lp":[],"rp":[]},"224":{"input":[6,7,8],"tlp":["rs",105128],"trp":["lt",24155],"lp":["rs","tl","str","rl","rst","ttl","rts","rns","rls","stl","rtl","sr"],"rp":["lt","nts","nst","ntl","lr","nstr","lts","nz"]},"225":{"input":[1,6,7,8],"tlp":["t's",15472],"trp":["lat",15533],"tlw":["start",1979],"trw":["last",4981],"lp":["t's","tal","ars","stan","ral","arl","star","stra","sn't","alt","at's","alr","r's","rsta","ants","ras"],"rp":["lat","lar","last","nsta"]},"226":{"input":[2,6,7,8],"tlp":["stor",8576],"trp":["low",16681],"tlw":["sort",1672],"trw":["lot",2713],"lp":["stor","rso","rson","worl","ros","tol","rol","sor","ross","wl","stro"],"rp":["low","llow","ors","orl","lw","lot","lor","nsw","owl"]},"227":{"input":[1,2,6,7,8],"tlw":["wasn't",3475],"trw":["law",1217],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["res",45093],"trp":["ers",54211],"tlw":["tell",4528],"trw":["let",4207],"lp":["res","cl","tle","tel","rse","ser","ttle","rel","ress","cle","ster","rest","tell","serv","sent","rese","stre"],"rp":["ers","ents","let"]},"229":{"input":[1,3,6,7,8],"tlw":["call",2856],"trw":["later",4588],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["well",8952],"trw":["news",1412],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["across",2659],"trw":["local",1100],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["til",13601],"trp":["lik",24097],"tlw":["still",7621],"trw":["list",991],"lp":["til","ris","till","stil","stin","sir"],"rp":["lik","lit","irs","irst","lk","inst","litt","ittl","ilit","irl","list","kil","ntil","kill"]},"233":{"input":[1,4,6,7,8],"tlw":["talk",2625],"trw":["it's",8558],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["will",14271],"trw":["look",5477],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["always",6467],"trw":["national",867],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["since",3793],"trw":["like",19390],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["place",5268],"trw":["natural",1235],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["course",3730],"trw":["likely",1530],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["really",4931],"trw":["years",7833],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"tlp":["rm",33028],"trp":["ld",104617],"trw":["mr",4133],"lp":["rm","dl","rds","rld","rms","ghts","rsh","ddl","rtm","rnm"],"rp":["ld","nds","mr","ldn","lth","ldr","ndl","mrs","nths","htl"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["that's",4282],"trw":["hands",3247],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["world",6250],"trw":["old",6168],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["almost",3784],"trw":["normal",610],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["themselves",2651],"trw":["held",2063],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["called",4581],"trw":["large",2557],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["school",3844],"trw":["more",21171],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["table",2154],"trw":["major",1113],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["first",11244],"trw":["might",6921],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["against",4423],"trw":["making",2931],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["from",35952],"trw":["looking",3174],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["probably",2197],"trw":["important",2765],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["felt",4669],"trw":["left",5159],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["perhaps",2737],"trw":["instead",2310],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["would",27522],"trw":["looked",5103],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["already",3329],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",410],"tlw":["a",211837],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"o","baseshift":"O","trp":["oo",93108],"trw":["o",531],"lp":[],"rp":["oo"]},"3":{"input":[1,2],"base":",","baseshift":"<","tlp":["ao",915],"trp":["oa",14939],"lp":["ao"],"rp":["oa"],"special":"punc"},"4":{"input":[3],"base":"e","baseshift":"E","trp":["ee",129154],"trw":["e",471],"lp":[],"rp":["ee"]},"5":{"input":[1,3],"base":"!","baseshift":"@","tlp":["ae",810],"trp":["ea",216643],"lp":["ae"],"rp":["ea","eea"],"special":"punc"},"6":{"input":[2,3],"base":".","baseshift":">","trp":["eo",22601],"lp":[],"rp":["eo","oe"],"special":"punc"},"7":{"input":[1,2,3],"lp":[],"rp":[]},"8":{"input":[4],"base":"i","baseshift":"I","trp":["ii",1762],"trw":["i",117501],"lp":[],"rp":["ii","iii"]},"9":{"input":[1,4],"base":"p","baseshift":"P","tlp":["ai",104869],"trp":["ia",38456],"tlw":["p",765],"lp":["ai","pa","ap","pp","pi","app","pai","apa","ppi","pap","appi","api","ppa","appa","pip"],"rp":["ia","ip","ipp","ipa","ippi"]},"10":{"input":[2,4],"base":"y","baseshift":"Y","trp":["io",113622],"trw":["y",176],"lp":[],"rp":["io","yo","oi","oy","yi","oyi","oyo"]},"11":{"input":[1,2,4],"tlp":["ay",87083],"trp":["op",53305],"tlw":["pay",1548],"trw":["ya",68],"lp":["ay","po","ppo","poi","ayi","py","pay","ppy","poo","appy","pop","apo"],"rp":["op","opp","ya","oppo","opi","yp","oya","oop"]},"12":{"input":[3,4],"base":"u","baseshift":"U","trp":["ie",85987],"trw":["u",744],"lp":[],"rp":["ie","ei","ue","ui","eu","uie","iu","uee","eei","ieu","uu"]},"13":{"input":[1,3,4],"tlp":["pe",115056],"trp":["up",44081],"tlw":["pipe",229],"trw":["up",23594],"lp":["pe","au","pu","ppe","pea","appe","ape","ppea","pie","pape","pee"],"rp":["up","ep","ua","eep","upp","epa","epe","eau","epi"]},"14":{"input":[2,3,4],"trp":["ou",377630],"trw":["you",68463],"lp":[],"rp":["ou","you","ey","ye","iou","eye","uy","oye","eyo","yee","oyee","uo","oui","eou","uou","uyi","yie","uye","oue","oyou"]},"15":{"input":[1,2,3,4],"tlp":["peo",15223],"trp":["eop",15223],"tlw":["pope",239],"lp":["peo","peop","aye","pou","popu","poe"],"rp":["eop","ope","yea","oup","upo","uppo","oppe","epo","ype","opu","eapo","opea","oope","opie"]},"16":{"input":[5],"base":"h","baseshift":"H","trw":["h",335],"lp":[],"rp":[]},"17":{"input":[1,5],"base":";","baseshift":":","tlp":["ah",3197],"trp":["ha",357027],"tlw":["ah",458],"trw":["ha",121],"lp":["ah","aha"],"rp":["ha"],"special":"punc"},"18":{"input":[2,5],"base":"b","baseshift":"B","tlp":["bo",64448],"trp":["ho",160810],"tlw":["b",695],"trw":["oh",2847],"lp":["bo","boo","bb","bob","bobb","bbo"],"rp":["ho","ob","hoo","oh","hb","hbo","obo","obb","oho"]},"19":{"input":[1,2,5],"tlp":["ab",55519],"trp":["oba",3176],"lp":["ab","ba","abo","bab","boa","abb","aba","aboa","aho"],"rp":["oba","obab","hab","hao","oah","habb"]},"20":{"input":[3,5],"base":"j","baseshift":"J","trp":["he",1036192],"trw":["he",92135],"lp":[],"rp":["he","je","eh","hee","ehe","ej","eje"]},"21":{"input":[1,3,5],"tlp":["aj",1718],"trp":["hea",22882],"lp":["aj","ahe","ahea","aje"],"rp":["hea","ja","eha","jea","eah","hae","ehea"]},"22":{"input":[2,3,5],"tlp":["be",175052],"trp":["jo",17794],"tlw":["be",44932],"trw":["job",3249],"lp":["be","bee","beh","bj","bje","bbe"],"rp":["jo","job","eb","joh","obe","obj","obje","oj","oje","eho","hoe","joe","ebo","heo"]},"23":{"input":[1,2,3,5],"tlp":["bea",5725],"trp":["joa",569],"tlw":["abee",97],"lp":["bea","beha","ajo","abe","abbe","abea","abee"],"rp":["joa","eba","eab","eeab","habe"]},"24":{"input":[4,5],"base":"f","baseshift":"F","tlp":["fi",67126],"trp":["hi",274759],"tlw":["f",277],"trw":["if",25154],"lp":["fi","ff","ffi","fif"],"rp":["hi","if","iff","ifi","iffi","hif","hf","ih"]},"25":{"input":[1,4,5],"tlp":["fa",47251],"trp":["hap",14305],"trw":["hip",126],"lp":["fa","af","ph","fai","aff","phi","aph","pha","ffa","affa","ffai","affi","pf","fia"],"rp":["hap","happ","hip","hai","hia","hipp"]},"26":{"input":[2,4,5],"tlp":["fo",133745],"trp":["of",272457],"tlw":["by",35333],"trw":["of",245539],"lp":["fo","by","bi","foo","boy","ffo","fy"],"rp":["of","off","ib","hy","offi","yb","ibi","hoi","ybo","ifo","hio","ofi","oof"]},"27":{"input":[1,2,4,5],"tlp":["abi",3591],"trp":["hop",4723],"tlw":["baby",848],"trw":["happy",1895],"lp":["abi","pho","ayb","phy","aby","baby","pab","apab","affo","bay","babi","aphy","bai"],"rp":["hop","habi","oph","iab","hopi","ophy","hopp"]},"28":{"input":[3,4,5],"tlp":["fe",67683],"trp":["ef",36973],"tlw":["fee",65],"trw":["huh",118],"lp":["fe","fu","ffe","fee","fie"],"rp":["ef","hei","ju","hu","ife","iffe","eff","ief","efu","uf","uff","efe","ehi","hie","effe"]},"29":{"input":[1,3,4,5],"tlp":["fea",4050],"trp":["eph",1305],"trw":["heap",97],"lp":["fea","afe","phe","affe","fau","pfu","pef"],"rp":["eph","jap","japa","hape","hau","heap","ephe","efea","eaf","ufa","jai","heep","uph"]},"30":{"input":[2,3,4,5],"tlp":["bu",70306],"trp":["hou",45889],"tlw":["buy",1026],"trw":["joy",650],"lp":["bu","bou","fou","bef","befo","bei","bui","behi"],"rp":["hou","hey","ub","efo","offe","oub","ibe","joy","ybe","joi","ubj","ubje"]},"31":{"input":[1,2,3,4,5],"tlw":["pub",80],"trw":["hope",1489],"lp":[],"rp":[]},"32":{"input":[6],"base":"t","baseshift":"T","tlp":["tt",55910],"tlw":["t",670],"lp":["tt"],"rp":[]},"33":{"input":[1,6],"base":"(","baseshift":"[","tlp":["at",371419],"tlw":["at",51085],"lp":["at","ta","att","tat","tta","atta","ata","taa","ataa"],"rp":[],"special":"punc"},"34":{"input":[2,6],"base":"w","baseshift":"W","tlp":["to",350815],"trp":["ot",133805],"tlw":["to",249163],"trw":["otto",67],"lp":["to","wo","tw","too","two","tow","woo","tto","tot","wt","ww","www","wow"],"rp":["ot","ow","ott","oot","oto","otto","owt"]},"35":{"input":[1,2,6],"tlp":["wa",198379],"trp":["owa",3731],"lp":["wa","aw","awa","wat","towa","ato","tota","twa","atto","tato","atoo","awo","toa","aot"],"rp":["owa","oat","ota","otta","otat"]},"36":{"input":[3,6],"base":"c","baseshift":"C","tlp":["te",259049],"trp":["et",117117],"tlw":["c",872],"trw":["et",324],"lp":["te","ce","ct","tte","cc","tc","cte","cce","tee","tec","tect"],"rp":["et","ec","ect","ett","eet","ece","ette","ete","ecte"]},"37":{"input":[1,3,6],"tlp":["ca",118675],"trp":["eat",31678],"tlw":["act",1387],"trw":["eat",1112],"lp":["ca","ac","ate","act","ace","atte","tea","cat","acc","atc","tate","tac","cate","acte","acce"],"rp":["eat","eca","eac","eate","eta"]},"38":{"input":[2,3,6],"tlp":["co",161789],"trp":["ew",37100],"tlw":["we",33258],"trw":["owe",137],"lp":["co","we","wee","twe","twee","cto","cco","coo"],"rp":["ew","oc","owe","eco","ote","etw","etwe","oce","occ","oct","octo","otte"]},"39":{"input":[1,2,3,6],"tlp":["wea",5512],"trp":["oac",2483],"tlw":["coat",590],"lp":["wea","acco","watc","wate","coa","acto","weat","coat","coac","awe","aco","coca","cato"],"rp":["oac","oca","occa","ewa","ocat","ocea","eato"]},"40":{"input":[4,6],"base":"k","baseshift":"K","tlp":["ti",213739],"trp":["it",311028],"trw":["it",92474],"lp":["ti","tti","tit","titi","ttit","tk"],"rp":["it","ki","ik","iti","itt","itti","kit","iki","kitt","kt"]},"41":{"input":[1,4,6],"tlp":["ati",45742],"trp":["ita",7797],"tlw":["tip",221],"trw":["kaa",57],"lp":["ati","ak","pt","tak","tai","aki","pat","ait","tia","tati","apt","pti","pit","taki","pati","pta"],"rp":["ita","iat","ka","itat"]},"42":{"input":[2,4,6],"tlp":["wi",119378],"trp":["ok",35246],"tlw":["took",5513],"trw":["kitty",157],"lp":["wi","wit","tio","ty","took","tty","twi"],"rp":["ok","ook","ity","itio","yt","oti","owi","oki","ooki","otio","yw","ky","ito"]},"43":{"input":[1,2,4,6],"tlp":["atio",33167],"trp":["opt",1183],"tlw":["way",11339],"trw":["okay",1081],"lp":["atio","way","away","top","pow","wai","wait","ptio","tay","pot","typ","pok","topp","wak","pty"],"rp":["opt","oka","kay","okay","ywa"]},"44":{"input":[3,4,6],"tlp":["tu",53060],"trp":["ut",147044],"tlw":["cut",1451],"trw":["ice",574],"lp":["tu","ck","ci","cu","cti","tic","tie"],"rp":["ut","ic","ke","uc","ike","ice","ite","ick","eci","ecti","ute","eti","ici"]},"45":{"input":[1,3,4,6],"tlp":["ake",27987],"trp":["ica",19163],"tlw":["take",7122],"trw":["keep",3496],"lp":["ake","ack","cau","take","pec","cia","acti","put","tua","pect","atu","pic","cap","aut","cep","cept"],"rp":["ica","ecau","ept","eak"]},"46":{"input":[2,3,4,6],"tlp":["cou",38026],"trp":["out",63916],"tlw":["city",2930],"trw":["out",24396],"lp":["cou","wou","ctio","cy","city","week","cio","ciou","tou"],"rp":["out","oke","ock","ooke","yet","oic","oice","oci","iew","utio","ety"]},"47":{"input":[1,2,3,4,6],"tlw":["type",863],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"d","baseshift":"D","tlp":["th",1104883],"trp":["ht",56378],"tlw":["th",802],"lp":["th","dd","dh","thd","ddh","tth"],"rp":["ht","hd","hth","htt"]},"49":{"input":[1,5,6],"tlp":["ad",140314],"trp":["hat",148416],"tlw":["that",110865],"trw":["had",63389],"lp":["ad","tha","that","da","ath","add","dat","dad","ada","data","atth","dha","ddha","thda","dadd"],"rp":["hat","had","hatt","hda","hath"]},"50":{"input":[2,5,6],"tlp":["wh",148489],"trp":["oth",46489],"tlw":["who",23669],"trw":["how",14162],"lp":["wh","do","tho","who","dow","bot","bod","both","doo","tood","bt","wd","tod"],"rp":["oth","od","how","ood","hot","odd","owd"]},"51":{"input":[1,2,5,6],"tlp":["wha",30534],"trp":["oad",3493],"tlw":["what",26770],"trw":["oath",137],"lp":["wha","what","tab","bat","bad","ado","batt","toda","boat","adow","dwa","daw","bath","bta","tba","atho"],"rp":["oad","oda","hado","obta"]},"52":{"input":[3,5,6],"tlp":["the",718961],"trp":["ed",326541],"tlw":["the",506536],"trw":["ed",253],"lp":["the","de","ch","ted","ded","che","tch","ced","dec","cted","ched","dde","dee"],"rp":["ed","eth","eed","hed","ethe","jec","ject"]},"53":{"input":[1,3,5,6],"tlp":["cha",21540],"trp":["ead",29380],"tlw":["death",2323],"trw":["each",6050],"lp":["cha","ach","ade","dea","athe","ated","atch","ache","tead","deat","aced","dead","date"],"rp":["ead","each","head","eath","eade","jac","hate"]},"54":{"input":[2,3,5,6],"tlp":["whe",44709],"trp":["othe",34663],"tlw":["bed",1960],"trw":["object",689],"lp":["whe","bec","bet","cho","wed","doe","choo","betw","bed","beco","bett","bjec","whet","doc","doct"],"rp":["othe","howe","owed","ode","ojec"]},"55":{"input":[1,2,3,5,6],"tlw":["watch",1263],"trw":["jaw",167],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["di",96016],"trp":["id",100069],"tlw":["did",12252],"trw":["hit",1079],"lp":["di","thi","ft","did","dif","diff","dit","tif","diti","fit","ddi","fift"],"rp":["id","ith","hit","ift","idd","ithi","kid","idi"]},"57":{"input":[1,4,5,6],"tlp":["aid",27860],"trp":["hapt",2000],"tlw":["paid",1096],"trw":["ida",198],"lp":["aid","aft","fat","adi","fath","dia","path","diat","taf","taff","addi","paid","pid","dai","adit","fait","aith"],"rp":["hapt","ida","hak"]},"58":{"input":[2,4,5,6],"tlp":["with",75749],"trp":["yth",7557],"tlw":["with",67032],"lp":["with","whi","dy","why","body","book","bit","whit","doi","thy","wif","food","wid","foot"],"rp":["yth","ythi","itho","ody","othi","oft"]},"59":{"input":[1,2,4,5,6],"tlw":["day",8306],"trw":["habit",454],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["thei",26847],"trp":["ide",35753],"tlw":["feet",2131],"trw":["effect",1185],"lp":["thei","du","fte","chi","fic","ffic","die","duc","tud"],"rp":["ide","ich","hic","ked","hich","uch","ud","ied","edi","ethi","uth"]},"61":{"input":[1,3,4,5,6],"tlw":["face",4765],"trw":["idea",2885],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["but",49620],"trw":["office",2363],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["about",23108],"trw":["hoped",506],"lp":[],"rp":[]},"64":{"input":[7],"base":"n","baseshift":"N","trp":["nn",20957],"trw":["n",169],"lp":[],"rp":["nn"]},"65":{"input":[1,7],"base":"'","baseshift":"\"","tlp":["an",578917],"trp":["na",51349],"tlw":["an",29559],"trw":["'",14271],"lp":["an","ann","an'","ana","anna","a'","a'a","aan"],"rp":["na","n'","nan","nna","''","'a","nann","'an","'n"],"special":"punc"},"66":{"input":[2,7],"base":"q","baseshift":"Q","trp":["on",380429],"tlw":["q",103],"trw":["on",61313],"lp":[],"rp":["on","no","oon","nno","ono","onn","non","noo","noon","nq","onq","nnon","oq"]},"67":{"input":[1,2,7],"tlp":["ano",7268],"trp":["on'",11539],"trw":["o'",138],"lp":["ano","anno","aq","anon","anq"],"rp":["on'","ona","o'","oan","onna","onan","noa","'no","oan'","'o"]},"68":{"input":[3,7],"base":"v","baseshift":"V","tlp":["ve",240401],"trp":["en",361122],"tlw":["v",386],"trw":["even",12216],"lp":["ve","ven"],"rp":["en","ne","ev","eve","een","even","ene","nev","nv","neve","nee","nne","nve","enn","nen","nven","enne","env"]},"69":{"input":[1,3,7],"tlp":["av",63772],"trp":["e'",16794],"tlw":["van",633],"lp":["av","ave","va","ane","van","anne","aven","ava"],"rp":["e'","ean","eav","nea","'v","'ve","eave","en'","ena","eva","ne'","nav"]},"70":{"input":[2,3,7],"tlp":["vo",13509],"trp":["one",63385],"tlw":["von",319],"trw":["one",30730],"lp":["vo","von"],"rp":["one","ov","ove","eq","eno","onv","eon","eone","onve","onne","evo","nov","nvo","none","nove","nnov","onen","eov"]},"71":{"input":[1,2,3,7],"tlp":["avo",2634],"trp":["one'",1039],"lp":["avo","aneo"],"rp":["one'","ova","nova","eano","eavo","oe'","eona","oane","ovna"]},"72":{"input":[4,7],"base":"x","baseshift":"X","tlp":["xi",4595],"trp":["in",644105],"tlw":["x",233],"trw":["in",155002],"lp":["xi","xin","xii","xiii"],"rp":["in","ni","nin","ini","inn","ix","nni","inin","nnin","inni","nx","nxi","nix","ixi","ixin"]},"73":{"input":[1,4,7],"tlp":["ain",43995],"trp":["i'",14185],"tlw":["pain",1250],"trw":["'i",461],"lp":["ain","xp","ani","pan","pin","xa","pain","ppin","pani","aini","ax","anin","xan","apan","anx"],"rp":["i'","ina","ian","nia","inan"]},"74":{"input":[2,4,7],"trp":["ion",94353],"trw":["nixon",129],"lp":[],"rp":["ion","ny","oin","yin","yon","nio","oni","nion","ox","nyo","nyon","yn","iq","ony","nny","inno","iny","inio","ino","niq"]},"75":{"input":[1,2,4,7],"tlp":["any",30867],"trp":["iona",6976],"tlw":["any",10758],"trw":["opinion",667],"lp":["any","pon","poin","ayin","pany","anyo","apon","anio","xpo","any'","ay'","ppon"],"rp":["iona","y'","opin","yan","onia","ny'","iano","yna"]},"76":{"input":[3,4,7],"tlp":["vi",54014],"trp":["un",97406],"tlw":["vi",155],"trw":["nine",768],"lp":["vi","vin","vie"],"rp":["un","iv","ive","ex","ine","ien","nu","ivi","uni","ein","eni","inu","iev","inv","evi","ieve","nex"]},"77":{"input":[1,3,4,7],"tlp":["pen",17197],"trp":["exp",16071],"tlw":["avenue",408],"trw":["i've",2219],"lp":["pen","xpe","avi","avin","aine","ppen","pene","pine","aun"],"rp":["exp","expe","u'","exa","iva","i'v","i've","epen","una","eani","eavi"]},"78":{"input":[2,3,4,7],"tlp":["qu",27187],"trp":["oun",39137],"tlw":["queen",763],"trw":["union",600],"lp":["qu","qui","que","vio","voi","viou","quen"],"rp":["oun","equ","nou","ovi","youn","ney","enou","yone","oney","equi","eque","ovin","ovie"]},"79":{"input":[1,2,3,4,7],"tlw":["anyone",1715],"trw":["upon",4442],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"g","baseshift":"G","tlp":["gh",90668],"trp":["ng",301290],"tlw":["g",298],"lp":["gh","gn","gg"],"rp":["ng","hn","nh","ngn","ngh","hnn"]},"81":{"input":[1,5,7],"tlp":["ag",47829],"trp":["han",36890],"tlw":["gang",279],"trw":["hang",373],"lp":["ag","ga","ang","aga","gan","anag","gna","gag","agg","g'","agn","agan","gang"],"rp":["han","hang","nag","nha","nga","ngag","ng'"]},"82":{"input":[2,5,7],"tlp":["go",53049],"trp":["ong",22252],"tlw":["go",9032],"lp":["go","goo","gon","bon","gno","gho","ghb","ghbo","goog"],"rp":["ong","og","hon","ohn","ogn","nob","hono","nobo","oog","nb","hno"]},"83":{"input":[1,2,5,7],"tlp":["ban",5102],"trp":["nab",1526],"tlw":["ago",1471],"trw":["noah",100],"lp":["ban","ago","goa","bag","aban","agon","gab","bona","bagh"],"rp":["nab","ho'","onab","oga","nhab","ogan","onag","'b","noah","ohn'","'oh"]},"84":{"input":[3,5,7],"tlp":["ge",97282],"trp":["hen",50214],"tlw":["gene",85],"trw":["egg",150],"lp":["ge","gen","gene","gge","ghe","gne","veh"],"rp":["hen","eg","nge","eng","ege","nj","enj","enge","neg","hene","egg","egen","nhe"]},"85":{"input":[1,3,5,7],"tlp":["age",21698],"trp":["hav",41867],"tlw":["gave",3038],"trw":["have",35739],"lp":["age","ange","gav","gave","agen","gage","vag"],"rp":["hav","have","he'","ega","egan","nage","heav","eag","ehav","jan","enga","jean","jane"]},"86":{"input":[2,3,5,7],"tlp":["been",20749],"trp":["oge",4232],"tlw":["been",20749],"trw":["john",1863],"lp":["been","beg","ben","gone","gov","bov","bove","gove","bene","geo","bv","goe"],"rp":["oge","onge","hone","john","njo","enjo","ego","obv"]},"87":{"input":[1,2,3,5,7],"tlw":["began",3725],"trw":["joan",332],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["gi",33313],"trp":["ing",245338],"tlw":["fig",732],"trw":["high",3405],"lp":["gi","fin","gin","fig","ging"],"rp":["ing","ig","hin","igh","hing","ning","nf","ign","nig","nigh","hig","high","inf","ngi","ngin"]},"89":{"input":[1,4,5,7],"tlp":["gai",12716],"trp":["iga",1887],"tlw":["again",7165],"trw":["hanging",518],"lp":["gai","gain","agai","ping","fina","agi","agin","aig","gani","fan","gina","aigh","pag","angi","gia","aign"],"rp":["iga","iag","igna","nfa"]},"90":{"input":[2,4,5,7],"tlp":["goi",7117],"trp":["ying",10969],"tlw":["going",6947],"trw":["ongoing",108],"lp":["goi","goin","big","gy","bin","gio","bing","box"],"rp":["ying","oing","onf","nfo","info","onfi","ogni","ogi","igio","igno","ogy","ighb"]},"91":{"input":[1,2,4,5,7],"tlw":["paying",444],"trw":["hoping",381],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gu",19194],"trp":["ug",51619],"tlw":["give",3971],"trw":["evening",1505],"lp":["gu","ving","giv","give","gue","fiv","five","fun","gine"],"rp":["ug","ugh","eing","ung","eig","hun","egi","eigh","ugg","ehin","egin"]},"93":{"input":[1,3,4,5,7],"tlw":["page",587],"trw":["having",3594],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["being",7746],"trw":["enough",4614],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["phone",1178],"trw":["heavy",1152],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"r","baseshift":"R","tlp":["rt",81050],"trp":["nt",218499],"tlw":["r",211],"lp":["rt","tr","rn","rr","tn","ttr","rtn","rtr","rnt"],"rp":["nt","ntr","nr"]},"97":{"input":[1,6,7],"tlp":["ar",265629],"trp":["'t",37625],"tlw":["ran",1611],"lp":["ar","ra","ant","art","tra","tan","rat","ran","t'","arr","tar","rta","arn","tant","ara"],"rp":["'t","n't","nat","nta","'r"]},"98":{"input":[2,6,7],"tlp":["ro",170933],"trp":["or",314634],"tlw":["town",2110],"trw":["not",43106],"lp":["ro","wor","wn","tor","ron","tro","row","roo","wr","ton"],"rp":["or","not","now","own","ort","nto","ont","oor","nor","orn"]},"99":{"input":[1,2,6,7],"tlp":["war",17594],"trp":["on't",11002],"tlw":["want",6609],"trw":["narrow",524],"lp":["war","wan","want","aro","anot","roa","raw","rwa","rwar","awar","won'","awn"],"rp":["on't","orta","ora","owar","onta","oar","orwa","orat"]},"100":{"input":[3,6,7],"tlp":["re",464927],"trp":["er",558051],"tlw":["ten",1916],"trw":["never",9168],"lp":["re","ver","ter","cr","ten","rc","ren","ree","rec","tter"],"rp":["er","ere","ent","nc","nce","ever","nte","enc","ence","ner"]},"101":{"input":[1,3,6,7],"tlp":["rea",59674],"trp":["ear",54836],"tlw":["are",29172],"trw":["near",2012],"lp":["rea","are","can","anc","reat","ance","car","rac","ater","rate","crea","ract","arc","care","ante"],"rp":["ear","era","'re","erat","earn"]},"102":{"input":[2,3,6,7],"tlp":["wer",47082],"trp":["ore",43307],"tlw":["were",34909],"trw":["over",12910],"lp":["wer","con","were","cont","wen","went","cor","cro","rov","ween","conc","rew"],"rp":["ore","over","new","onc","once","ower","orc","econ"]},"103":{"input":[1,2,3,6,7],"tlw":["water",2519],"trw":["ocean",381],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["ri",146328],"trp":["ir",91496],"tlw":["tin",227],"trw":["ink",130],"lp":["ri","tin","rk","rin","rit","tri","rri","xt","rti","rni","ttin","rnin"],"rp":["ir","int","kin","kn","nti","nk","ink","nit"]},"105":{"input":[1,4,6,7],"tlp":["pr",76723],"trp":["it'",8789],"tlw":["part",4589],"lp":["pr","par","part","pri","rai","air","ari","tain","ark","arri","rati","rp","arti","ria","akin","ank","rain","trai"],"rp":["it'","nati"]},"106":{"input":[2,4,6,7],"tlp":["tion",71969],"trp":["kno",19117],"tlw":["work",8749],"trw":["into",18343],"lp":["tion","ry","work","win","try","rio","rry","tory","rty","wri","writ"],"rp":["kno","into","ork","know","ori","ory","oint","ntio","owin"]},"107":{"input":[1,2,4,6,7],"tlw":["point",3165],"trw":["nation",393],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["ru",29549],"trp":["ur",136165],"tlw":["turn",2317],"trw":["next",4617],"lp":["ru","tur","rie","tiv","ric","ture","rien","tru","tive","turn"],"rp":["ur","eir","ure","eri","unt","ire","inc","inte","urn","enti"]},"109":{"input":[1,3,4,6,7],"tlw":["taken",2592],"trw":["experience",2559],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["very",10569],"trw":["your",20504],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["power",3130],"trw":["you're",4043],"lp":[],"rp":[]},"112":{"input":[5,6,7],"tlp":["ght",56087],"trp":["nd",415919],"tlw":["dr",852],"trw":["nd",119],"lp":["ght","rd","gr","dr","thr","rg","dn","rth","dg","rh","gt","gth","ddr"],"rp":["nd","hr","nth","ndr","ngt","ngr","ngth"]},"113":{"input":[1,5,6,7],"tlp":["and",307129],"trp":["har",16333],"tlw":["and",266855],"trw":["hand",5168],"lp":["and","ard","than","dn'","dn't","gra","arg","tand","rad","dar","dan","gar","dra","rang"],"rp":["har","hand","'d","hat'","hard","nda"]},"114":{"input":[2,5,6,7],"tlp":["br",30536],"trp":["ord",17538],"tlw":["down",11247],"trw":["north",1391],"lp":["br","don","thro","down","good","bro","gro","got","rob","word","bor","rod","door"],"rp":["ord","ond","hro","noth","hor","org","ndo"]},"115":{"input":[1,2,5,6,7],"tlw":["don't",9569],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["ther",83716],"trp":["her",160213],"tlw":["there",23867],"trw":["her",47940],"lp":["ther","red","der","get","then","gre","den","ger","ved","dre","rge","rned"],"rp":["her","here","ned","nde","end","nder","ered","nted"]},"117":{"input":[1,3,5,6,7],"tlw":["great",6807],"trw":["heard",3016],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["when",27718],"trw":["other",13909],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["another",6638],"trw":["edward",463],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["fr",62589],"trp":["ight",39009],"tlw":["think",7751],"trw":["night",4461],"lp":["fr","thin","ting","din","ding","ring","fir","rig","righ","fri","rf","didn","find"],"rp":["ight","ind","king","ndi","hink","idn","ndin"]},"121":{"input":[1,4,5,6,7],"tlw":["didn't",7051],"trw":["i'd",3142],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["for",70927],"trw":["nothing",5093],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["anything",3884],"trw":["ordinary",614],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["their",26687],"trw":["under",4429],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["after",12071],"trw":["happened",1976],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["before",10203],"trw":["often",3952],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["around",6455],"trw":["opened",1401],"lp":[],"rp":[]},"128":{"input":[8],"base":"s","baseshift":"S","tlp":["ss",89478],"tlw":["s",2993],"lp":["ss"],"rp":[]},"129":{"input":[1,8],"base":"-","baseshift":"_","tlp":["as",286499],"trp":["-s",481],"tlw":["as",63759],"trw":["-",1362],"lp":["as","sa","ass","ssa","assa","asa","sas","saa","ssas","sass"],"rp":["-s","-a"],"special":"punc"},"130":{"input":[2,8],"tlp":["so",117437],"trp":["os",70799],"tlw":["so",27040],"lp":["so","soo","sso"],"rp":["os","oss","oos","oso"],"special":"bksp","base":"os"},"131":{"input":[1,2,8],"tlp":["aso",4273],"trp":["oas",835],"lp":["aso","asso","soa","aos","so-"],"rp":["oas","o-","osa","ossa","-o"]},"132":{"input":[3,8],"base":")","baseshift":"]","tlp":["se",231764],"trp":["es",259811],"tlw":["see",9997],"lp":["se","see","sse","ses","sses","sess","sees"],"rp":["es","ess","ese","esse","ees","eese"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ase",11581],"trp":["eas",23956],"tlw":["sea",1374],"trw":["ease",378],"lp":["ase","sea","asse","ases","seas"],"rp":["eas","ease","essa","esea","easa","e-","-e","eass","-se","e-a","-es"]},"134":{"input":[2,3,8],"tlp":["soe",138],"trp":["ose",25993],"lp":["soe"],"rp":["ose","oes","osse","oose","eso","esso","oses","eos"]},"135":{"input":[1,2,3,8],"trp":["easo",4023],"lp":[],"rp":["easo"]},"136":{"input":[4,8],"base":"?","baseshift":"/","tlp":["si",120170],"trp":["is",263616],"trw":["is",60295],"lp":["si","ssi","sis","ssis","siss"],"rp":["is","isi","iss","issi","isis"],"special":"punc"},"137":{"input":[1,4,8],"tlp":["sp",40374],"trp":["ips",2652],"tlw":["pass",1068],"lp":["sp","sai","ps","pas","asi","pass","spi","assi","spa","aps","ais","sia","sap","asp","sapp","ssia"],"rp":["ips","isa","isp","isap"]},"138":{"input":[2,4,8],"tlp":["sio",15825],"trp":["ys",27984],"lp":["sio","sy","ssio","sys","ssy"],"rp":["ys","osi","ossi","isio","iso","ysi","oys","ois","ios","ysis","iosi","yos","yoss","oosi","osio"]},"139":{"input":[1,2,4,8],"tlp":["pos",16560],"trp":["osp",1974],"tlw":["say",7781],"lp":["pos","ays","say","spo","poss","posi","says","ppos","asy","asio","sayi","psy","sop"],"rp":["osp","ops","y-","ospi","oops","opos","osop"]},"140":{"input":[3,4,8],"tlp":["su",62257],"trp":["us",124701],"tlw":["sue",76],"trw":["us",10609],"lp":["su","ssu","sus","sui","sue","sie"],"rp":["us","use","ies","ise","usi","esi","ues","essi","esu","uss","usu","uis","ussi","uses"]},"141":{"input":[1,3,4,8],"tlp":["spe",18659],"trp":["esp",8233],"tlw":["pause",378],"trw":["usa",134],"lp":["spe","aus","ause","sup","supp","sua","spea","asu","sep","aise","assu","spee","pus"],"rp":["esp","espe","usa","usua","easi","easu","ups"]},"142":{"input":[2,3,4,8],"tlp":["sou",7964],"trp":["ous",26493],"trw":["eyes",5472],"lp":["sou","sey"],"rp":["ous","ious","yes","ouse","eyes","yse","usio","usy","uys","esou","yees","oise","ouis","ousi","eous","eys","uous","osu"]},"143":{"input":[1,2,3,4,8],"tlw":["suppose",803],"trw":["easy",1561],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","tlp":["sh",119750],"trp":["ms",20491],"trw":["m",1273],"lp":["sh","sm","shm","ssm","ssh"],"rp":["ms","mm","hs","hm","mms"]},"145":{"input":[1,5,8],"tlp":["am",72035],"trp":["ma",137500],"tlw":["am",4235],"trw":["has",11125],"lp":["am","sha","sam","sma","ash","ama","ams","sham","amm","aham","asm","asha"],"rp":["ma","has","mas","ham","mma","mass","-m","-ma"]},"146":{"input":[2,5,8],"tlp":["som",32033],"trp":["om",158331],"tlw":["boss",848],"trw":["mom",1398],"lp":["som","sho","bs","sb","bos","smo"],"rp":["om","mo","mb","mos","hos","omm","hom","oom","mom","obs","mmo","ommo","omb","moo"]},"147":{"input":[1,2,5,8],"tlp":["amo",4702],"trp":["oma",6690],"tlw":["bass",106],"trw":["obama",363],"lp":["amo","bas","amb","abs","sba","abso","bass","bam","bama","amba"],"rp":["oma","omma","mba","mbas","homa","omas","obam","hamb","-b","omba"]},"148":{"input":[3,5,8],"tlp":["she",58316],"trp":["me",235102],"tlw":["she",45928],"trw":["me",30278],"lp":["she","seem"],"rp":["me","em","hem","eme","hes","mes","hese","eem","mse","mem","ems","mme","eeme","emem","mee","hems","emse","eems"]},"149":{"input":[1,3,5,8],"tlp":["ame",34012],"trp":["mea",9606],"tlw":["same",6718],"trw":["james",771],"lp":["ame","same","ames","ashe","amme"],"rp":["mea","ema","eam","maj","hame","jam","meas","eams","hase","jame","eame","emma","e-m","e-ma","mae"]},"150":{"input":[2,3,5,8],"tlp":["some",31924],"trp":["ome",63421],"tlw":["some",15162],"trw":["home",4865],"lp":["some","bes","bse","semb"],"rp":["ome","hose","mbe","emb","embe","emo","home","memb","mome","meo","omeo","omes","obse","memo","omme","jobs"]},"151":{"input":[1,2,3,5,8],"tlw":["base",538],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["shi",11339],"trp":["his",109386],"tlw":["fish",451],"trw":["his",69304],"lp":["shi","sim","smi","sf","fis"],"rp":["his","im","mi","him","ish","mis","ims","hims","miss","imi","mmi","imm","mf","ism","isf"]},"153":{"input":[1,4,5,8],"tlp":["ami",8211],"trp":["mp",43386],"tlw":["ship",877],"trw":["map",280],"lp":["ami","fam","fami","ship","amp","simp","fas","aim","ashi","saf","pm"],"rp":["mp","imp","mpa","ima","mai","haps","iam","hips","-f"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["sib",6869],"trp":["my",49697],"tlw":["boys",1175],"trw":["my",40423],"lp":["sib","ssib","sof","sibi","boys","sym","shio"],"rp":["my","omi","mys","ym","mbi","omis","hys","ommi","hysi","omf","mfo","omfo","imb"]},"155":{"input":[1,2,4,5,8],"tlw":["shop",667],"trw":["may",6928],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["sum",4274],"trp":["ime",28758],"tlw":["sum",220],"trw":["jim",446],"lp":["sum","fes","suf","suff"],"rp":["ime","mu","um","jus","mus","imes","imse","ishe","hus","ume","ush","hum","emi","mmu","umm","imme"]},"157":{"input":[1,3,4,5,8],"tlw":["safe",789],"trw":["jump",350],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["busy",647],"trw":["house",4935],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["famous",816],"trw":["maybe",2276],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"z","baseshift":"Z","tlp":["st",260669],"tlw":["st",798],"lp":["st","ts","sts","zz","tst","tz","tts"],"rp":[]},"161":{"input":[1,6,8],"tlp":["sta",40389],"trp":["-t",1205],"tlw":["sat",2253],"lp":["sta","ast","stat","sat","az","tas","za","ats","zat","tast","t-","sast","asta","asts","t-s","t-t","azz","zza","tsta"],"rp":["-t"]},"162":{"input":[2,6,8],"tlp":["sto",21671],"trp":["ost",21248],"tlw":["toss",85],"trw":["oz",100],"lp":["sto","ws","sw","stoo","tos","swo","zo","wso","toss","tso","stot"],"rp":["ost","ows","ots","oz","oots","osts","osto","otos","otst"]},"163":{"input":[1,2,6,8],"tlp":["was",117615],"trp":["oast",835],"tlw":["was",112330],"lp":["was","saw","aws","to-","swa","wast","awso","asto","atso","wats","toas","sota"],"rp":["oast","oats","-tw","-two","-to","-to-","-w","-wo"]},"164":{"input":[3,6,8],"tlp":["ste",30114],"trp":["est",36800],"tlw":["set",3472],"lp":["ste","sc","ces","tes","ze","sec","cess","set","cts","cces","test","cs","tse","sett"],"rp":["est","esc","ets","este","ects","eces"]},"165":{"input":[1,3,6,8],"tlp":["cas",7637],"trp":["east",4973],"tlw":["case",2870],"trw":["east",920],"lp":["cas","ates","aste","case","sca","stea","aces","ccas","seat","sac","cast","aze","acts","stac","asc"],"rp":["east","esta","esca","-c","eats"]},"166":{"input":[2,3,6,8],"tlp":["swe",5581],"trp":["ews",3282],"tlw":["west",1068],"lp":["swe","soc","sco","seco","wes","west","cos","cost","ssoc","stoc","swee","scot","sew"],"rp":["ews","oces","otes","oze","esto","oste","osc"]},"167":{"input":[1,2,3,6,8],"tlw":["coast",540],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["sti",24448],"trp":["ist",28091],"tlw":["sit",1264],"trw":["its",10155],"lp":["sti","sk","sit","sist","tis","siti","ski","zi","tsi","tist","sitt","stit"],"rp":["ist","its","ks","iz","isti","isit","ists","itis"]},"169":{"input":[1,4,6,8],"tlp":["ask",11409],"trp":["ista",3836],"tlw":["ask",2497],"lp":["ask","sati","past","spit","azi","zati","stai","stak","atis","task","asti","asks","aski","stia","sak","pts","sita"],"rp":["ista","iza","izat"]},"170":{"input":[2,4,6,8],"tlp":["wis",5185],"trp":["osit",4706],"tlw":["sky",622],"lp":["wis","stio","syst","sity","sty","swi","sky","zy","swit","sito","twis","wist"],"rp":["osit","isto","yst","oks","ooks","izo","osti","isky"]},"171":{"input":[1,2,4,6,8],"tlw":["stop",1798],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["suc",11912],"trp":["ust",31229],"tlw":["success",1485],"lp":["suc","stu","ske","ties","cus","sic","sci","cis","succ","stic","cks"],"rp":["ust","iste","esti","ize","uest","kes","isc","uts","ices"]},"173":{"input":[1,3,4,6,8],"tlw":["speak",1583],"trw":["escape",642],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["weeks",1328],"trw":["keys",254],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["spoke",1285],"trw":["opposite",687],"lp":[],"rp":[]},"176":{"input":[5,6,8],"tlp":["ds",32521],"trp":["hts",3276],"lp":["ds","tm","ths","dm","sd","stm","dsh","dds","dst","thm","thst","sht","sth"],"rp":["hts","mst","mt","mth","htm","hst"]},"177":{"input":[1,5,6,8],"tlp":["adm",2373],"trp":["mat",11909],"tlw":["sad",457],"trw":["mad",373],"lp":["adm","dam","ads","sad","shad","tma","adam","amaz","sda","atm","stma","tmas","d-"],"rp":["mat","mad","matt","mast","msta","maz","hast"]},"178":{"input":[2,5,6,8],"tlp":["thos",7914],"trp":["most",15009],"tlw":["show",2474],"trw":["most",10396],"lp":["thos","wom","show","tom","dom","whom","whos","stom","shot","dows","bst","doz","ttom"],"rp":["most","mot","moth","mod","ods","host","oods"]},"179":{"input":[1,2,5,6,8],"tlw":["thomas",561],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["them",24753],"trp":["med",15366],"tlw":["them",21593],"trw":["met",1822],"lp":["them","sed","des","thes","tem","ssed","shed","sch","sted","tme","ches","dem","zed","desc","stem"],"rp":["med","met","meth","emed","meet"]},"181":{"input":[1,3,5,6,8],"tlw":["came",6889],"trw":["made",9696],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["those",7914],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["became",2829],"trw":["matthew",262],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["this",36089],"trp":["mit",4914],"tlw":["this",36089],"trw":["kids",1451],"lp":["this","tim","sid","dis","dist","dmi","tsid","tish","tisf"],"rp":["mit","hist","mid","mist","ids","mitt","midd","kids","mmit","imit","mik"]},"185":{"input":[1,4,5,6,8],"tlw":["said",23960],"trw":["maid",197],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["books",1442],"trw":["myth",226],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["days",3754],"trw":["habits",317],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["time",17984],"trw":["just",14589],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["asked",5484],"trw":["make",9390],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["sometimes",2685],"trw":["outside",2061],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["because",9879],"trw":["empty",823],"lp":[],"rp":[]},"192":{"input":[7,8],"base":"l","baseshift":"L","tlp":["sl",14047],"trp":["ll",183975],"trw":["l",235],"lp":["sl","sn","ssl"],"rp":["ll","ns","ls","nl","lls","ln","lln","nsl","nns"]},"193":{"input":[1,7,8],"tlp":["al",228009],"trp":["la",103279],"tlw":["all",30772],"trw":["la",689],"lp":["al","all","als","ans","sn'","san","asn","asn'","sla"],"rp":["la","'s","lan","nal","las","'l","'ll","lla","lass","nall","n's"]},"194":{"input":[2,7,8],"tlp":["son",18915],"trp":["lo",103908],"tlw":["soon",3191],"trw":["loss",625],"lp":["son","sol","soon","slo","sons","sq"],"rp":["lo","ol","ons","loo","lon","onl","oll","los","llo","lso","ool","olo","ollo","ols"]},"195":{"input":[1,2,7,8],"tlp":["also",7989],"trp":["onal",8944],"tlw":["also",7989],"trw":["loan",120],"lp":["also","alo","alon","ason","sona","allo","sola","son'"],"rp":["onal","olla","oal","ola","loa","oals","on's","o's","osal","olan","loan","o-n"]},"196":{"input":[3,7,8],"tlp":["sel",25483],"trp":["le",213808],"tlw":["seen",3375],"trw":["less",3333],"lp":["sel","sen","ves","vel"],"rp":["le","el","ell","lle","les","nes","ens","ness","eel","len","less","ele","lv","nse","lve","els"]},"197":{"input":[1,3,7,8],"tlp":["alle",8964],"trp":["lea",26849],"tlw":["save",729],"trw":["leave",2148],"lp":["alle","ale","val","sav","avel","vas","aves"],"rp":["lea","eal","e's","leas","ela","eall","leav","eans","lean","esn'","e'l","e'll","lane"]},"198":{"input":[2,3,7,8],"tlp":["vol",4101],"trp":["ole",7645],"tlw":["solve",211],"trw":["love",3654],"lp":["vol","velo","volv","sov"],"rp":["ole","lov","love","lose","elo","olle","lone","ones","olv","olve","ello","oesn","onse","nvol","olen","evol"]},"199":{"input":[1,2,3,7,8],"tlw":["alone",2184],"trw":["one's",680],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["sin",21536],"trp":["li",155342],"tlw":["six",1928],"trw":["ill",512],"lp":["sin","sil","ssin","six","sli","xis"],"rp":["li","il","ill","lin","ins","lli","nsi","ili","lis","llin","nis","illi","insi","inis"]},"201":{"input":[1,4,7,8],"tlp":["pl",68379],"trp":["ial",13366],"tlw":["plan",1335],"trw":["i'll",2287],"lp":["pl","pla","ali","ail","ains","plan","pli","xpl","plai","ppl","xpla"],"rp":["ial","lp","lai","lia","inal","lain","iall","lip","ila"]},"202":{"input":[2,4,7,8],"tlp":["sion",15757],"trp":["ly",122921],"tlw":["sly",561],"trw":["only",13824],"lp":["sion","sly"],"rp":["ly","lly","ions","nly","only","ily","oli","onsi","loy","lio","lion","ison","llio","ilo","oil","yl","inly","lyi"]},"203":{"input":[1,2,4,7,8],"tlw":["play",1696],"trw":["lay",1482],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["vis",5954],"trp":["ul",100189],"tlw":["sun",1066],"trw":["live",2131],"lp":["vis","visi","sine"],"rp":["ul","lu","ile","eli","lie","liv","ines","ull","live","usin","elie","line","lue","uil","elli","liev","elin"]},"205":{"input":[1,3,4,7,8],"tlw":["value",1339],"trw":["explain",790],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["soul",950],"trw":["louis",534],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["people",14668],"trw":["usually",1445],"lp":[],"rp":[]},"208":{"input":[5,7,8],"tlp":["gs",15960],"trp":["ngs",13154],"lp":["gs","gl","ghl","ggl","gm","gns","sg","ghs","gnm","ggs"],"rp":["ngs","ngl","lm","nm","hl","nsh","mn","lg","ml","lsh"]},"209":{"input":[1,5,7,8],"tlp":["alm",5014],"trp":["man",42306],"tlw":["small",3786],"trw":["man",9572],"lp":["alm","gla","smal","shal","gam","glan","sag","glas"],"rp":["man","mal","hal","'m","nam","mag","mall","hall","mana","mann","mman","lang"]},"210":{"input":[2,5,7,8],"tlp":["bl",48180],"trp":["mon",15025],"tlw":["song",454],"trw":["long",7506],"lp":["bl","blo","bloo","gol","glo"],"rp":["mon","long","hol","hool","lmo","lmos","obl","log","mong","mbl","mmon","olog","nom","onsh","onom"]},"211":{"input":[1,2,5,7,8],"tlw":["along",3060],"trw":["lab",187],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["ges",7464],"trp":["men",40378],"tlw":["smell",549],"trw":["men",6294],"lp":["ges","gle","vem","gges","veme"],"rp":["men","hel","msel","emen","lem","leg","engl","nme","nmen","ngle","lege","mel","hell","leng","lleg"]},"213":{"input":[1,3,5,7,8],"tlw":["game",1331],"trw":["name",3325],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["someone",3001],"trw":["move",1750],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["able",2600],"trw":["ebola",147],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["fl",14707],"trp":["min",22065],"tlw":["sign",979],"trw":["hill",676],"lp":["fl","sing","sig","sign","fil"],"rp":["min","lf","hil","mil","ling","ings","lif","lig","ligh","mig","migh","ming","lish","mili","nish"]},"217":{"input":[1,4,5,7,8],"tlw":["fall",1195],"trw":["i'm",6537],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["bill",951],"trw":["million",900],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["family",3955],"trw":["many",8068],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["feel",4278],"trw":["life",8740],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["simple",1385],"trw":["help",3633],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["business",3695],"trw":["money",3556],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["possible",2350],"trw":["impossible",978],"lp":[],"rp":[]},"224":{"input":[6,7,8],"tlp":["rs",105128],"trp":["lt",24155],"lp":["rs","tl","str","rl","rst","ttl","rts","rns","rls","stl","rtl","sr"],"rp":["lt","nts","nst","ntl","lr","nstr","lts","nz"]},"225":{"input":[1,6,7,8],"tlp":["t's",15472],"trp":["lat",15533],"tlw":["start",1979],"trw":["last",4981],"lp":["t's","tal","ars","stan","ral","arl","star","stra","sn't","alt","at's","alr","r's","rsta","ants","ras"],"rp":["lat","lar","last","nsta"]},"226":{"input":[2,6,7,8],"tlp":["stor",8576],"trp":["low",16681],"tlw":["sort",1672],"trw":["lot",2713],"lp":["stor","rso","rson","worl","ros","tol","rol","sor","ross","wl","stro"],"rp":["low","llow","ors","orl","lw","lot","lor","nsw","owl"]},"227":{"input":[1,2,6,7,8],"tlw":["wasn't",3475],"trw":["law",1217],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["res",45093],"trp":["ers",54211],"tlw":["tell",4528],"trw":["let",4207],"lp":["res","cl","tle","tel","rse","ser","ttle","rel","ress","cle","ster","rest","tell","serv","sent","rese","stre"],"rp":["ers","ents","let"]},"229":{"input":[1,3,6,7,8],"tlw":["call",2856],"trw":["later",4588],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["well",8952],"trw":["news",1412],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["across",2659],"trw":["local",1100],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["til",13601],"trp":["lik",24097],"tlw":["still",7621],"trw":["list",991],"lp":["til","ris","till","stil","stin","sir"],"rp":["lik","lit","irs","irst","lk","inst","litt","ittl","ilit","irl","list","kil","ntil","kill"]},"233":{"input":[1,4,6,7,8],"tlw":["talk",2625],"trw":["it's",8558],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["will",14271],"trw":["look",5477],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["always",6467],"trw":["national",867],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["since",3793],"trw":["like",19390],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["place",5268],"trw":["natural",1235],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["course",3730],"trw":["likely",1530],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["really",4931],"trw":["years",7833],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"tlp":["rm",33028],"trp":["ld",104617],"trw":["mr",4133],"lp":["rm","dl","rds","rld","rms","ghts","rsh","ddl","rtm","rnm"],"rp":["ld","nds","mr","ldn","lth","ldr","ndl","mrs","nths","htl"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["that's",4282],"trw":["hands",3247],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["world",6250],"trw":["old",6168],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["almost",3784],"trw":["normal",610],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["themselves",2651],"trw":["held",2063],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["called",4581],"trw":["large",2557],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["school",3844],"trw":["more",21171],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["table",2154],"trw":["major",1113],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["first",11244],"trw":["might",6921],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["against",4423],"trw":["making",2931],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["from",35952],"trw":["looking",3174],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["probably",2197],"trw":["important",2765],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["felt",4669],"trw":["left",5159],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["perhaps",2737],"trw":["instead",2310],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["would",27522],"trw":["looked",5103],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["already",3329],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/en-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/en-keymap.json index 054183678a..44a1a08813 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/en-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/en-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",410],"tlw":["a",211837],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",89478],"tlw":["s",2993],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",286499],"tlw":["was",112330],"lp":["as","wa","was","sa","aw","ass","ws","awa","sw","ssa","saw","assa","aws","asa","swa","sas","ww","saa","www","ssas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",129154],"tlw":["e",471],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",216643],"tlw":["x",233],"lp":["ea","ex","xa","exa","xe","exe","ax","ae","axe","eea"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["ed",326541],"tlw":["see",9997],"lp":["ed","es","se","de","ess","ds","see","sed","ese","ded","des","eed","sse","dd","ses","ssed","esse","dde","dee","sses"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",140314],"tlw":["we",33258],"lp":["ad","we","da","ew","ead","eas","ade","dea","ase","wee","sea","wed","swe","wea","asse","ease","add","ews","eade","essa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",55910],"tlw":["t",670],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",371419],"tlw":["at",51085],"lp":["at","ta","fa","ff","ft","af","att","aft","tat","fat","aff","tta","atta","tf","taf","taff","ata","ffa","affa","atf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",260669],"tlw":["c",872],"lp":["st","ct","ts","sc","cc","tc","sts","cts","cs","tst","cst","tts","stc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",118675],"tlw":["fact",3233],"lp":["ca","ac","sta","act","tw","ast","fac","cat","acc","cas","stat","wat","sat","atc","fact","tac","sca","watc","sf","fas"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",558051],"tlw":["tree",670],"lp":["er","re","te","et","ere","rt","tr","ter","rr","tte","ree","ett","tter","tre","ret","eet","ert","ette","ete","rte"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",265629],"tlw":["are",29172],"lp":["ar","ra","fe","fr","rea","ear","are","ate","ef","art","eat","tra","rat","fte","reat","era","ffe","arr","afte","fter"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",144944],"tlw":["set",3472],"lp":["ce","rs","ec","ers","ted","rd","res","est","red","der","cr","ect","ste","dr","str","rc","ces","rst","rec","rse"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["wer",47082],"tlw":["were",34909],"lp":["wer","were","ard","ace","war","car","eca","ars","eac","read","rac","ears","ated","wr","ward","star","twe","stra","crea","reas"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",20957],"trw":["n",169],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",578917],"trp":["na",51349],"tlw":["an",29559],"lp":["an","ann","ana","anna","aq","aan","anq"],"rp":["na","nan","nna","nq","nann"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",9321],"trp":["ns",85305],"trw":["j",365],"lp":["sn"],"rp":["ns","nj","nns"]},"19":{"input":[1,2,5],"tlp":["wn",31110],"trp":["ja",7328],"tlw":["san",544],"trw":["jaw",167],"lp":["wn","ans","wan","san","asn","answ","wasn","aj","sq","awn","asan","sna","wns","anw"],"rp":["ja","nsw","jan","nw","nsa","nwa"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",361122],"trp":["ne",208843],"tlw":["eye",1504],"trw":["ye",442],"lp":["en","ey","een","ene","eye","enn","enne","eny","enny"],"rp":["ne","ye","ny","nee","nne","ney","yn","nen","nny","yee","yne"]},"21":{"input":[1,3,5],"tlp":["ay",87083],"trp":["yea",12043],"tlw":["any",10758],"trw":["nay",83],"lp":["ay","any","ean","eq","ane","aye","anne","ena","xan","exan","anx","eane","enan","enea"],"rp":["yea","nea","nex","ya","nx","yan"]},"22":{"input":[2,3,5],"tlp":["end",27020],"trp":["nd",415919],"tlw":["eyes",5472],"trw":["need",4397],"lp":["end","dy","den","sen","dn","ens","sy","ense"],"rp":["nd","ned","ys","nde","nes","nds","ness","je","yes","nse","need","nded"]},"23":{"input":[1,2,3,5],"tlp":["and",307129],"trp":["new",18090],"tlw":["and",266855],"trw":["new",10172],"lp":["and","way","day","ays","say","wen","ways","ady","ands","away","eady","ween","dan","days","ande","says","sand"],"rp":["new","nda","nswe"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",3003],"trp":["nt",218499],"tlw":["b",695],"lp":["bt","tn","bb","tb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ab",55519],"trp":["nat",11510],"tlw":["fan",245],"lp":["ab","ba","ant","tan","tant","tab","ban","bab","bat","fan","batt","anta","fant","abb"],"rp":["nat","nf","nta","nab","nfa","nant"]},"26":{"input":[2,4,5],"tlp":["bs",6980],"trp":["nc",79565],"tlw":["bc",95],"lp":["bs","bj","sb","bst","bts","bc","bsc","bbs","cn","cb","cbs","stn"],"rp":["nc","nts","nst","nsc","nct","ncts"]},"27":{"input":[1,2,4,5],"tlp":["can",27607],"trp":["nsta",3211],"tlw":["can",15149],"lp":["can","anc","stan","bac","want","tanc","bas","ants","cann","abs","sba","sban","stab","sant","cq","acq","cans"],"rp":["nsta","jac","nanc"]},"28":{"input":[3,4,5],"tlp":["be",175052],"trp":["nte",31075],"tlw":["be",44932],"trw":["yet",4449],"lp":["be","ent","ry","ty","rn","by","br","ery","ten","ren","bee","been","ber","rne","ern","bet"],"rp":["nte","ner","nter","ntr"]},"29":{"input":[1,3,4,5],"tlp":["ran",19074],"trp":["year",11125],"tlw":["ran",1611],"trw":["next",4617],"lp":["ran","ary","bef","arn","bea","ante","earn","bra","brea","aren","tran","ften","anyt","bar","rtan","req"],"rp":["year","nera","next","near"]},"30":{"input":[2,3,4,5],"tlp":["enc",25606],"trp":["nce",54473],"tlw":["best",3733],"lp":["enc","ence","bec","ents","cen","cent","rned","dent","sent","bes","renc","bed","cy","tend"],"rp":["nce","nder","nted","jec","ject","nces"]},"31":{"input":[1,2,3,4,5],"tlw":["went",6413],"trw":["years",7833],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1762],"trw":["i",117501],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",104869],"trp":["ia",38456],"tlw":["aziz",61],"lp":["ai","az","za","zi","azi","zz","azz","zza","ziz","aziz"],"rp":["ia","iz","iza","izi","izz","izza","iai"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",120170],"trp":["is",263616],"trw":["is",60295],"lp":["si","ssi","sk","sis","ski","sks","ssis"],"rp":["is","ki","ik","ks","isi","iss","issi","isk","kis","kiss","iki","isis","isks"]},"35":{"input":[1,2,6],"tlp":["wi",119378],"trp":["ka",3991],"tlw":["ask",2497],"trw":["kaa",57],"lp":["wi","ak","sai","ask","asi","aki","wis","assi","wai","ais","sia","swi","ssia","wak","asks","aski","siz","asis"],"rp":["ka","isa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",51232],"trp":["ie",85987],"lp":["ei","eei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",9545],"trp":["ize",5603],"tlw":["xiii",65],"trw":["ix",80],"lp":["ze","xi","exi","aze","ez","eez","eiz","eze","eeze","eize","xie","axi","zei","ezi","eezi","eizi"],"rp":["ize","ix","ixe","ixi"]},"38":{"input":[2,3,6],"tlp":["di",96016],"trp":["id",100069],"tlw":["did",12252],"trw":["kids",1451],"lp":["di","did","sid","side","dis","esi","edi","die","ek","eek","ske","essi"],"rp":["id","ke","ide","ike","ked","ies","ied","ise"]},"39":{"input":[1,2,3,6],"tlp":["ake",27987],"trp":["idea",4816],"tlw":["said",23960],"trw":["idea",2885],"lp":["ake","aid","said","eak","aske","adi","dia","akes","week","six","zed","eadi","easi","edia","xis","aise"],"rp":["idea","iew","ized","ida"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",213739],"trp":["it",311028],"tlw":["tv",551],"trw":["it",92474],"lp":["ti","vi","tiv","tti","tit","vit","tivi","viv","titi","ttit","viti","tv"],"rp":["it","iv","iti","itt","ivi","itti","itiv","ivit"]},"41":{"input":[1,4,6],"tlp":["fi",67126],"trp":["if",58122],"tlw":["fit",689],"trw":["if",25154],"lp":["fi","av","ati","va","tai","ffi","avi","ait","fai","tia","tati","ativ","vat","tif"],"rp":["if","iff","ita","ift","iat","ifi"]},"42":{"input":[2,4,6],"tlp":["ck",51278],"trp":["ic",118179],"tlw":["sit",1264],"trw":["its",10155],"lp":["ck","ci","sti","cti","tic","sit","cit","vis","vic","sist","sic","ctiv","visi","tis"],"rp":["ic","ist","its","ick","ici","ict"]},"43":{"input":[1,2,4,6],"tlp":["wit",77056],"trp":["ica",19163],"tlw":["wait",1256],"trw":["isaac",209],"lp":["wit","ack","tak","fic","cia","acti","ffic","wait","tica","sati","cati","wif","taki","fici","aci"],"rp":["ica","ista","icat","ific","icia"]},"44":{"input":[3,4,6],"tlp":["ve",240401],"trp":["ir",91496],"tlw":["ever",4714],"trw":["ive",85],"lp":["ve","ri","ver","ev","eve","ever","eir","rie","eri","rit","rv","tri","rri","tive","erv","rti"],"rp":["ir","ive","ite","ire"]},"45":{"input":[1,3,4,6],"tlp":["ave",49806],"trp":["ife",12017],"tlw":["five",2604],"lp":["ave","fir","rai","air","ari","fri","arri","frie","rati","arti","ria","eav","trai","rtai","fie","eave"],"rp":["ife","iffe","ief","iate"]},"46":{"input":[2,3,4,6],"tlp":["rk",28978],"trp":["ice",25015],"tlw":["tried",2205],"lp":["rk","ved","ves","ric","ris","eci","ecti","serv","esti","ried","cri","rke","cke","vid","ties","vers"],"rp":["ice","irs","irst","iste"]},"47":{"input":[1,2,3,4,6],"tlw":["first",11244],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",644105],"trw":["in",155002],"lp":[],"rp":["in","hi","ni","hin","nin","ini","inn","nni","inin","hn","nnin","inni","nh","hni","inh","hini","hnn","ih"]},"49":{"input":[1,5,6],"tlp":["ain",43995],"trp":["ha",357027],"tlw":["ah",458],"trw":["han",268],"lp":["ain","ani","ah","aini","zin","anin","aniz","azin"],"rp":["ha","han","ina","ian","hai","niz","nia","iq","inan","niza","nha","niq"]},"50":{"input":[2,5,6],"tlp":["sh",119750],"trp":["his",109386],"tlw":["skin",661],"trw":["his",69304],"lp":["sh","sin","shi","ssin"],"rp":["his","kin","kn","nk","ins","ish","ink","nsi","hink","nis","nki","nkin","hs","nish","inki","insi"]},"51":{"input":[1,2,5,6],"tlp":["wh",148489],"trp":["has",13193],"tlw":["wish",1198],"trw":["has",11125],"lp":["wh","whi","wha","win","sha","ains","akin","ank","ash","wish","ashi","anks","wash","sian","anis","asin","whis"],"rp":["has","hank","ians"]},"52":{"input":[3,5,6],"tlp":["ein",10146],"trp":["he",1036192],"tlw":["eh",128],"trw":["he",92135],"lp":["ein","eh","eni","enin","ehi","ehin"],"rp":["he","hen","hey","ine","hei","ien","hy","yi","yin","hee","hie","nie","nei","inne"]},"53":{"input":[1,3,5,6],"tlp":["aine",5046],"trp":["hea",22882],"tlw":["annie",159],"trw":["yeah",918],"lp":["aine","ayi","ayin","eha","eani","zen","anie","ahe","anxi","ahea","eah","zy","zine","azy","xh","exh"],"rp":["hea","nize","nxi","yeah"]},"54":{"input":[2,3,5,6],"tlp":["she",58316],"trp":["ind",31046],"tlw":["she",45928],"trw":["kind",3481],"lp":["she","din","didn","shed"],"rp":["ind","hes","hed","ndi","hese","ines","ined","iend","iden","idn","kne","ndin","ken","nsid","ishe","indi"]},"55":{"input":[1,2,3,5,6],"tlw":["when",27718],"trw":["had",63389],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",1104883],"trp":["ith",80740],"tlw":["bit",1490],"trw":["hit",1079],"lp":["th","thi","thin","tin","bi","vin","ttin","bit"],"rp":["ith","ht","int","nti","ib","nv","nit","hit","inv","ntin","nth","ivin"]},"57":{"input":[1,4,5,6],"tlp":["tha",132122],"trp":["hat",148416],"tlw":["that",110865],"trw":["hat",521],"lp":["tha","that","ath","fin","than","tain","avin","fath","aint","van","fina","atin","abi","fini"],"rp":["hat","hav","inf","nati","havi","ntai"]},"58":{"input":[2,4,5,6],"tlp":["ch",138742],"trp":["ich",25423],"tlw":["this",36089],"trw":["nick",237],"lp":["ch","this","chi","tch","sib","chin","sch","ssib","stin","sinc","cin"],"rp":["ich","hic","hich","inc","inst","nch","nci","nic","hts"]},"59":{"input":[1,2,4,5,6],"tlw":["with",67032],"trw":["jack",1623],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["the",718961],"trp":["her",160213],"tlw":["the",506536],"trw":["her",47940],"lp":["the","ther","they","ven","thei","very","rin","thr","even","then","eth","enti","rien"],"rp":["her","here","heir","hr","ity","inte","nev"]},"61":{"input":[1,3,4,5,6],"tlw":["father",3696],"trw":["have",35739],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["these",9773],"trw":["interest",1336],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["where",9655],"trw":["heard",3016],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",93108],"trw":["o",531],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",915],"trp":["oa",14939],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",117437],"trp":["os",70799],"tlw":["so",27040],"lp":["so","soo","sso"],"rp":["os","oss","oos","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",92580],"trp":["ow",122368],"tlw":["wow",113],"lp":["wo","aso","woo","asso","swo","wso","awso","soa","aos","wow","awo","sow"],"rp":["ow","ows","owa","oas","osa","ossa","owo"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",22601],"trp":["oe",10755],"trw":["-",1362],"lp":["eo","e-"],"rp":["oe","o-","-e","-o"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",296],"trp":["ox",1874],"lp":["xo","exo","e-a","axo"],"rp":["ox","oxe","-a"]},"70":{"input":[2,3,7],"tlp":["do",77376],"trp":["od",44403],"tlw":["do",18689],"trw":["odd",416],"lp":["do","doe","does","doo","eso","esso","edo"],"rp":["od","ose","ood","oes","ode","osed","odd","osse","ods","oose","oods","odde","oses"]},"71":{"input":[1,2,3,7],"tlp":["dow",14691],"trp":["owe",15537],"tlw":["wood",515],"trw":["owed",149],"lp":["dow","easo","ado","wood","dows","adow","sado","ewo"],"rp":["owe","owed","oad","owd","oda","owde","owds","-da","o-da","oads","oade","oxes"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",350815],"trp":["ot",133805],"tlw":["to",249163],"trw":["otto",67],"lp":["to","go","too","goo","got","gg","tog","gt","tto","gott","tot","gto"],"rp":["ot","og","ott","oot","oto","otto","oog","otog"]},"73":{"input":[1,4,7],"tlp":["fo",133745],"trp":["of",272457],"tlw":["ago",1471],"trw":["of",245539],"lp":["fo","ag","ga","aga","foo","gat","tag","ago","ato","ffo","goa","foot","gag","agg","tota"],"rp":["of","off","oft","oat","ota"]},"74":{"input":[2,4,7],"tlp":["co",161789],"trp":["oc",25929],"tlw":["cost",675],"lp":["co","sto","gs","cto","soc","sco","cco","stoo","cog","coo","cos","cost","cot","ssoc"],"rp":["oc","ost","occ","oct","ots","octo"]},"75":{"input":[1,2,4,7],"tlp":["two",12798],"trp":["oac",2483],"tlw":["two",11667],"lp":["two","tow","acco","towa","coa","sag","foc","sof","ssag","soft","acto","stag","cof","coff","coat"],"rp":["oac","oca","occa","oast","ocat"]},"76":{"input":[3,4,7],"tlp":["ro",170933],"trp":["or",314634],"tlw":["get",10986],"trw":["or",34654],"lp":["ro","ge","gr","eg","get","gre","rg","tor","ger","tro","roo","rge","gro","rot"],"rp":["or","ore","ort","ote","oor","orr"]},"77":{"input":[1,3,4,7],"tlp":["for",111436],"trp":["orta",4717],"tlw":["for",70927],"trw":["offer",1014],"lp":["for","fro","age","fore","efo","efor","gra","grea","arg","aro","ega","fort","arge","roa","gar","rag"],"rp":["orta","ora","offe","ofte"]},"78":{"input":[2,3,4,7],"tlp":["eco",13557],"trp":["ord",17538],"tlw":["good",9480],"trw":["order",2602],"lp":["eco","good","cor","stor","ges","rso","erso","cro","ged","ros","dg","rod","dge","door","sor","ross"],"rp":["ord","ors","orde","orc"]},"79":{"input":[1,2,3,4,7],"tlw":["words",3228],"trw":["offered",1121],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",380429],"trw":["on",61313],"lp":[],"rp":["on","ou","no","un","oun","nu","nou","oon","nno","unn","ono","onn","non","noo","noon","noun","uo","nnou","onou","unu"]},"81":{"input":[1,5,7],"tlp":["au",32369],"trp":["ua",23498],"lp":["au","qu","ano","qua","anno","aun","anu","anua","quan","quo"],"rp":["ua","ona","una","nua","oan","nqu","onna","uan","onq","onqu"]},"82":{"input":[2,5,7],"tlp":["su",62257],"trp":["us",124701],"tlw":["soon",3191],"trw":["us",10609],"lp":["su","son","sou","ssu","soon","soun","sun","sus","sons"],"rp":["us","ons","ous","ju","jo","jus","uss","usu","nsu","njo","oj"]},"83":{"input":[1,2,5,7],"tlp":["wou",29932],"trp":["now",32603],"tlw":["won",495],"trw":["now",13343],"lp":["wou","aus","won","ason","sua","sona","asu","assu","ajo","squ","squa","woun"],"rp":["now","own","nown","usa","usua","usan","ousa","nows"]},"84":{"input":[3,5,7],"tlp":["eno",5765],"trp":["yo",112940],"trw":["you",68463],"lp":["eno","enou","eu","eon","eone"],"rp":["yo","you","one","ue","oy","yon","youn","yone","oney","uy","uen","oye","nue","une","onne"]},"85":{"input":[1,3,5,7],"tlp":["que",9630],"trp":["oya",1710],"tlw":["anyone",1715],"lp":["que","equ","eau","eque","quen","anyo","quee","equa","xu","exu","xua","exua","aneo","xon"],"rp":["oya","unex","ux","nque","uxu","unea"]},"86":{"input":[2,3,5,7],"tlp":["du",19747],"trp":["und",37128],"tlw":["done",3602],"trw":["use",3572],"lp":["du","don","done","esu"],"rp":["und","use","ound","ud","ond","unde","ues","ouse","used","ody","ude","ndo","odu","onde","udd","ones"]},"87":{"input":[1,2,3,5,7],"tlw":["down",11247],"trw":["owned",326],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bu",70306],"trp":["ng",301290],"tlw":["but",49620],"trw":["not",43106],"lp":["bu","bo","tu","but","bou","bout","gu","gn"],"rp":["ng","ut","out","not","ug","oug","ong","ob","nto","ont","unt","ub"]},"89":{"input":[1,4,5,7],"tlp":["abo",26472],"trp":["uf",3979],"tlw":["about",23108],"lp":["abo","fu","abou","ang","fou","gan","aug","tua","atu","anot","foun","aut"],"rp":["uf","onf","uff","natu","nfo","nag","oba","uat"]},"90":{"input":[2,4,5,7],"tlp":["con",43239],"trp":["uc",39944],"tlw":["cut",1451],"trw":["just",14589],"lp":["con","cou","cu","suc","cons","cont","stu","coun","bus","cus","ctu","conc"],"rp":["uc","ust","just","ngs","onc","unc","uct","job"]},"91":{"input":[1,2,4,5,7],"tlw":["town",2110],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["rou",33045],"trp":["ur",136165],"tlw":["turn",2317],"trw":["your",20504],"lp":["rou","ru","tur","roug","gen","ture","roun","tru","turn","ron","bro","eng"],"rp":["ur","our","ure","your","nge","urn","ute","nger"]},"93":{"input":[1,3,4,5,7],"tlw":["before",10203],"trw":["often",3952],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["course",3730],"trw":["once",5524],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["because",9879],"trw":["understand",2238],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",183975],"trw":["oil",657],"lp":[],"rp":["ll","li","io","il","lo","ol","ill","oi","loo","oll","lli","ili","llo","oli","ool","illi","olo","ollo","lio","llio"]},"97":{"input":[1,6,7],"tlp":["al",228009],"trp":["la",103279],"tlw":["all",30772],"trw":["la",689],"lp":["al","all","ali","ail","alo","allo","ala","aliz","alli"],"rp":["la","ial","lai","lia","lla","liz","iall","ila","olla","oal","ola"]},"98":{"input":[2,6,7],"tlp":["sio",15825],"trp":["ok",35246],"tlw":["skills",834],"trw":["look",5477],"lp":["sio","sl","ssio","sol","sil"],"rp":["ok","ls","ook","lik","look","lk","los","lis","lso","osi","ossi","lls","oki","kil","isio"]},"99":{"input":[1,2,6,7],"tlp":["wil",18445],"trp":["low",16681],"tlw":["will",14271],"trw":["low",1274],"lp":["wil","will","als","alk","also","wal","alw","alwa","walk","wl","wall"],"rp":["low","las","llow","lw","lwa","owi","lass","owl","law"]},"100":{"input":[3,6,7],"tlp":["el",142952],"trp":["le",213808],"tlw":["el",99],"trw":["lie",725],"lp":["el","ell","eli","eel","ele","elie","elo","elli","eeli","ello","elle"],"rp":["le","lle","ile","lie","ole","olle","ille","lee","iel"]},"101":{"input":[1,3,6,7],"tlp":["eal",18892],"trp":["lea",26849],"tlw":["alex",152],"lp":["eal","alle","ale","ela","eall","eali","aile","alex","eale","eliz","xio","elea","ael"],"rp":["lea","lex","lize","lexa","oze","llea","lexi"]},"102":{"input":[2,3,6,7],"tlp":["sel",25483],"trp":["ld",104617],"tlw":["else",2789],"trw":["like",19390],"lp":["sel","dl","els","eld","del","dle"],"rp":["ld","like","old","led","les","oke","lled","ild","less","oked","ooke","lose","ldi","lde"]},"103":{"input":[1,2,3,6,7],"tlw":["well",8952],"trw":["lead",1050],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["tio",72429],"trp":["ig",72061],"tlw":["till",1036],"trw":["lot",2713],"lp":["tio","gi","tl","gl","til","vo","ttl","till","giv"],"rp":["ig","ov","lt","lit","lig","liv","litt","ittl","lv","itio","oti"]},"105":{"input":[1,4,6,7],"tlp":["atio",33167],"trp":["lf",21773],"tlw":["fall",1195],"lp":["atio","tal","fl","gai","agai","alt","val","fol","gla","fig","flo","foll","agi","fil","alit"],"rp":["lf","lat","lif","offi","lati"]},"106":{"input":[2,4,6,7],"tlp":["cl",31724],"trp":["lic",9087],"tlw":["still",7621],"trw":["lost",2029],"lp":["cl","ctio","col","stil","sig","clo","took","clos","stio","cov","coll","soci","ctl"],"rp":["lic","ock","osit","loc","oic","oci","list"]},"107":{"input":[1,2,4,6,7],"tlw":["call",2856],"trw":["last",4981],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rl",25465],"trp":["ove",39462],"tlw":["tell",4528],"trw":["over",12910],"lp":["rl","tle","tel","ttle","rel","rig","vel","tell","give","rio","elt","rov"],"rp":["ove","over","let","ori","lve","live","orl","love"]},"109":{"input":[1,3,4,6,7],"tlw":["felt",4669],"trw":["life",8740],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["told",5605],"trw":["lives",1641],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["work",8749],"trw":["least",2856],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",160810],"trw":["oh",2847],"lp":[],"rp":["ho","ul","ion","oul","hou","ui","lin","lu","nl","hu","lon","oin","hil","onl","hol","iou","uni","houl","ull","hoo"]},"113":{"input":[1,5,6,7],"tlp":["qui",11723],"trp":["lan",16797],"tlw":["annual",207],"trw":["hall",950],"lp":["qui","alon","alu","qual","ainl","aul"],"rp":["lan","nal","ual","onal","hal","iona","uall","ula","hall","inal","lain","lau","nall","lian"]},"114":{"input":[2,5,6,7],"tlp":["sho",24544],"trp":["kno",19117],"tlw":["soul",950],"trw":["john",1863],"lp":["sho","sion","shou","sul"],"rp":["kno","ions","hos","ious","usi","hous","usin","onsi","lish","hus","okin","ush","lus","lkin","usl","ousl"]},"115":{"input":[1,2,5,6,7],"tlw":["who",23669],"trw":["how",14162],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["ely",17170],"trp":["ly",122921],"trw":["only",13824],"lp":["ely","elin","enl"],"rp":["ly","lly","nly","only","hel","ily","len","hile","line","lue","hole","lone","loy","hone","ully","llen","ule"]},"117":{"input":[1,3,5,6,7],"tlw":["alone",2184],"trw":["lay",1482],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["should",7178],"trw":["house",4935],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["would",27522],"trw":["usually",1445],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["gh",90668],"trp":["ing",245338],"tlw":["thought",7112],"trw":["into",18343],"lp":["gh","tion","ght","bl","tho","ting","thou"],"rp":["ing","igh","oth","ugh","ight","hing","ough","ning","into","ught","houg","long","ling"]},"121":{"input":[1,4,5,6,7],"tlw":["again",7165],"trw":["having",3594],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["such",8032],"trw":["looking",3174],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["without",5841],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["through",8798],"trw":["other",13909],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["another",6638],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["could",18061],"trw":["others",3864],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["already",3329],"trw":["however",3319],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",37015],"trw":["p",765],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",46764],"trp":["pa",72065],"trw":["pa",273],"lp":["ap","app","apa","appa"],"rp":["pa","pap","ppa","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",40374],"trp":["ps",13734],"lp":["sp","ssp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",3930],"trp":["pas",8500],"tlw":["sap",81],"trw":["pass",1068],"lp":["spa","aps","sap","asp","sapp","wsp","wspa","spap","assp"],"rp":["pas","pass","pw","pwa","paw","paws"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",39298],"trp":["pe",115056],"trw":["'",14271],"lp":["ep","e'","eep","epe","epp","eppe","eepe"],"rp":["pe","ppe","pee","''","'e","p'"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["xp",16071],"trp":["pea",10889],"lp":["xp","exp","appe","xpe","expe","ape","epa","eap","epea","xpa","expa","a'","eape","a'a","x'","ax'"],"rp":["pea","ppea","pape","'a"]},"134":{"input":[2,3,8],"tlp":["spe",18659],"trp":["'s",36901],"tlw":["deep",1465],"trw":["'s",213],"lp":["spe","e's","esp","e'd","dep","espe","deep","sep","desp","depe","spee","eps","d'","d's"],"rp":["'s","'d","ped","pped","pes","pse"]},"135":{"input":[1,2,3,8],"tlp":["we'",3765],"trp":["'w",281],"tlw":["we'd",695],"trw":["passed",1693],"lp":["we'","spea","depa","sepa","aspe","ewsp","we'd","weap","aped","weep","wep","apes","apse","swep","a's","xped","espa","dpa"],"rp":["'w","peas"]},"136":{"input":[4,8],"tlp":["tp",256],"trp":["pt",19963],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",4201],"trp":["pat",6411],"tlw":["tap",153],"trw":["pat",193],"lp":["apt","apta","tap","tapp"],"rp":["pat","pta","patt","pf","ptat"]},"138":{"input":[2,4,8],"trp":["pts",388],"lp":[],"rp":["pts","pst","ptc","pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",5240],"trp":["pac",3604],"tlw":["cap",258],"trw":["past",2353],"lp":["cap","capt","spac","scap","capa","apac","spat","fsp","ffsp","caps"],"rp":["pac","past","pact","patc","psta","pats"]},"140":{"input":[3,4,8],"tlp":["t'",15643],"trp":["pr",76723],"trw":["per",611],"lp":["t'","rep","ept","rp","tep","r'","er'","rpr","re'","ere'"],"rp":["pr","'t","per","pre","'r","'re","pte","ppr","pet","pret"]},"141":{"input":[1,3,4,8],"tlp":["at'",5623],"trp":["par",26731],"tlw":["appear",816],"trw":["part",4589],"lp":["at'","xper","epar","rap","appr","aper","apte","repa","xpr","expr","xpre","apar"],"rp":["par","part","pare","pear","pra","perf","pera","para"]},"142":{"input":[2,3,4,8],"tlp":["t's",15472],"trp":["pres",13007],"tlw":["step",1154],"trw":["press",708],"lp":["t's","spec","cep","cept","resp","step","r's","er's","re's","spr","sper","ccep","teps"],"rp":["pres","pec","pers","pect","perc","prec","pted"]},"143":{"input":[1,2,3,4,8],"tlw":["we're",1513],"trw":["perfect",1065],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",43386],"trw":["m",1273],"lp":[],"rp":["mp","mm","nm","mn","pm","np"]},"145":{"input":[1,5,8],"tlp":["am",72035],"trp":["ma",137500],"tlw":["am",4235],"trw":["man",9572],"lp":["am","amp","ama","apan","amm","ampa","amn","aman"],"rp":["ma","man","pan","mpa","nam","mpan","mana","mma","mann","mman","nap","map"]},"146":{"input":[2,5,8],"tlp":["sm",13242],"trp":["ms",20491],"trw":["ms",185],"lp":["sm","ssm"],"rp":["ms","nsp","mps","nsm","mns","mms"]},"147":{"input":[1,2,5,8],"tlp":["sam",7005],"trp":["mas",4399],"tlw":["sam",133],"trw":["mass",521],"lp":["sam","sma","ams","span","ansp","amps","snap","asm","assm","ssma"],"rp":["mas","maj","mass","jap","japa","mans","jam","mw","mpas","pans"]},"148":{"input":[3,5,8],"tlp":["em",87362],"trp":["me",235102],"tlw":["enemy",1028],"trw":["my",40423],"lp":["em","eme","eem","emp","emen","eeme","emem"],"rp":["me","my","n'","men","pen","mem","'m","y'","mme","ppen","pene","py","mee"]},"149":{"input":[1,3,5,8],"tlp":["ame",34012],"trp":["may",9648],"tlw":["an'",417],"trw":["many",8068],"lp":["ame","ema","eam","an'","xam","exam","eman","appy","xamp","amen","xpen"],"rp":["may","mea","many","mean","name","pany","pay","pane","man'"]},"150":{"input":[2,3,5,8],"tlp":["dn'",13235],"trp":["med",15366],"tlw":["seemed",4232],"trw":["jem",320],"lp":["dn'","seem","sn'","ems","emed","spen","dem","dm","emse","esn'"],"rp":["med","mes","mse","mys","pend","myse","y's","n's","mmed","pens"]},"151":{"input":[1,2,3,5,8],"tlw":["same",6718],"trw":["made",9696],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",4765],"trp":["mb",19208],"lp":["tm","bm"],"rp":["mb","mpt","ntm","pb","mt","mpb"]},"153":{"input":[1,4,5,8],"tlp":["fam",7099],"trp":["mat",11909],"trw":["mba",123],"lp":["fam","amb","tma","tnam","atm","apab","amat","bam","bama","amba","tam"],"rp":["mat","matt","mf","mba","mpat","pant","pab","mant","mbat"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["stm",1138],"trp":["mst",943],"lp":["stm"],"rp":["mst","mc","mbs","mpts","mcc","mcs"]},"155":{"input":[1,2,4,5,8],"tlw":["camp",660],"trw":["pants",299],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",33028],"trp":["n't",37419],"tlw":["remember",2277],"trw":["mr",4133],"lp":["rm","rem","emb","erm","tem","embe","reme","rme","temp","tme","tmen"],"rp":["n't","ment","met","mer","mbe","mber","mr","memb","meet"]},"157":{"input":[1,3,4,5,8],"tlw":["army",2073],"trw":["matter",2479],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["spent",1640],"trw":["mrs",2541],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["came",6889],"trw":["parents",2027],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",28303],"lp":[],"rp":["pi","ip","ppi","ipp","ippi","pip","ipi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["appi",2174],"trp":["pai",6465],"trw":["pizza",143],"lp":["appi","api"],"rp":["pai","ipa","pia","piz","pizz","iap","ippa"]},"162":{"input":[2,6,8],"tlp":["spi",5949],"trp":["ips",2652],"tlw":["sip",104],"trw":["piss",63],"lp":["spi","sip","ssip","sipp","skip","spis"],"rp":["ips","isp","pis","kp","pk","pki","piss","kip","psi","kipp"]},"163":{"input":[1,2,6,8],"tlp":["spai",637],"trp":["isap",1148],"lp":["spai","wip","aspi","apk","apki","wipi","apis"],"rp":["isap","ispa","kpa"]},"164":{"input":[3,6,8],"tlp":["epi",1744],"trp":["i'",14185],"trw":["'i",461],"lp":["epi","eepi","eppi"],"rp":["i'","pie","ippe","ipe","'i","pipe","ppie","ip'"]},"165":{"input":[1,3,6,8],"tlp":["epai",321],"trp":["iz'",67],"lp":["epai","z'","eapi"],"rp":["iz'"]},"166":{"input":[2,3,6,8],"tlp":["disp",1152],"trp":["keep",4608],"tlw":["spies",180],"trw":["keep",3496],"lp":["disp","espi","dip","spie","epis"],"rp":["keep","i'd","kep","pid","ispe","pied","pies","pedi","iped","ip's","k'","k's","ipes","kesp","psid"]},"167":{"input":[1,2,3,6,8],"tlw":["speak",1583],"trw":["paid",1096],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",610],"trp":["pti",3889],"tlw":["tip",221],"trw":["pit",127],"lp":["tip","tipp"],"rp":["pti","pit","ipt","ipti"]},"169":{"input":[1,4,6,8],"tlp":["apit",605],"trp":["pati",1779],"lp":["apit"],"rp":["pati","pita","ptai","ipat","pav","ptia"]},"170":{"input":[2,4,6,8],"tlp":["cip",2669],"trp":["pic",5474],"tlw":["tips",128],"trw":["pick",801],"lp":["cip","spit","spic","scip","tips","ckp"],"rp":["pic","pick","pict","icip","pici","pitc","pist","pics","ptic"]},"171":{"input":[1,2,4,6,8],"trw":["pack",385],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",2627],"trp":["pri",13942],"tlw":["trip",647],"trw":["i've",2219],"lp":["rip","rpri","epti","trip","ript","e'v","e've"],"rp":["pri","it'","peri","'v","'ve","pir","i'v","i've","priv","piri","prev","pite","peti"]},"173":{"input":[1,3,4,6,8],"tlw":["repair",185],"trw":["private",1010],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["despite",946],"trw":["it's",8558],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["we've",750],"trw":["paris",1353],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["im",93559],"trw":["him",28423],"lp":[],"rp":["im","mi","him","min","ph","imp","pin","hip","imi","ppin","mmi","imm","phi","mini","hm","nim","mmin","imin","pini","mpi"]},"177":{"input":[1,5,6,8],"tlp":["ami",8211],"trp":["hap",14305],"tlw":["aim",231],"trw":["pain",1250],"lp":["ami","aim","amin","aph","anim","amaz"],"rp":["hap","happ","ima","mai","main","pain","ham","pani","iam","mina","nima","pha","maz","impa"]},"178":{"input":[2,5,6,8],"tlp":["ship",5146],"trp":["mis",8985],"tlw":["ship",877],"trw":["miss",1642],"lp":["ship","sim","smi","simp","simi","shm","spin"],"rp":["mis","ims","hims","miss","hips","ism","mik","insp","ishm","hisp","nspi","jim","km"]},"179":{"input":[1,2,5,6,8],"tlw":["spanish",469],"trw":["mask",160],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",2800],"trp":["ime",28758],"trw":["i'm",6537],"lp":["emi","emin","epin","eph"],"rp":["ime","hem","he'","i'm","mine","hey'","phy","imme","pine","imen","phe","peni","hme","in'","hmen","meh"]},"181":{"input":[1,3,5,6,8],"tlw":["examine",179],"trw":["happy",1895],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["she'd",1495],"trw":["mind",4439],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["shame",796],"trw":["make",9390],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",28120],"trp":["mit",4914],"tlw":["tim",128],"trw":["ibm",109],"lp":["tim","timi","bmi"],"rp":["mit","mbi","mitt","mmit","imit","mbin","ntim","imb","mpti","ptin","mbit","intm","mith","itm","mitm","ptim","pth"]},"185":{"input":[1,4,5,6,8],"trw":["path",946],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",320],"trw":["pitch",164],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["captain",1078],"trw":["match",450],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["them",21593],"trw":["prevent",380],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["remain",740],"trw":["haven't",641],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["didn't",7051],"trw":["isn't",1565],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["that's",4282],"trw":["perhaps",2737],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",68607],"trw":["pop",223],"lp":[],"rp":["po","op","ppo","opp","oppo","poo","pop","oop","opo","popp"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",1508],"trp":["opa",186],"lp":["apo","appo"],"rp":["opa","oap"]},"194":{"input":[2,7,8],"tlp":["spo",7683],"trp":["pos",16560],"lp":["spo","sop","spos","sspo","spoo"],"rp":["pos","poss","ppos","osp","ops","oops","opos","osop","pso"]},"195":{"input":[1,2,7,8],"tlp":["soap",132],"trp":["pow",4845],"tlw":["soap",132],"lp":["soap"],"rp":["pow","posa"]},"196":{"input":[3,7,8],"tlp":["eop",15223],"trp":["peo",15223],"trw":["pope",239],"lp":["eop","epo"],"rp":["peo","peop","ope","oppe","o'","poe","oope","pope","oe'","'o","-p"]},"197":{"input":[1,3,7,8],"tlp":["eapo",649],"trp":["opea",428],"lp":["eapo","xpo","expo"],"rp":["opea","-pa"]},"198":{"input":[2,3,7,8],"tlp":["espo",3005],"trp":["pose",4757],"trw":["possessed",333],"lp":["espo","dop"],"rp":["pose","oped","ospe","o's","osep","opes","od'","od's","o'd","oe's","pod","oss'"]},"199":{"input":[1,2,3,7,8],"tlw":["exposed",267],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",6183],"trp":["pot",2394],"tlw":["top",1822],"trw":["pot",221],"lp":["top","topp","toop"],"rp":["pot","opt","pto","pott","ptop"]},"201":{"input":[1,4,7,8],"tlp":["gap",376],"trp":["pag",1322],"tlw":["gap",204],"trw":["potato",74],"lp":["gap","apto","gapo","atop"],"rp":["pag","pota","opag","paga"]},"202":{"input":[2,4,7,8],"tlp":["stop",3680],"trp":["post",1282],"tlw":["stop",1798],"trw":["post",644],"lp":["stop","cop","spot","tops","cops","coop","copp","gosp","copt","scop"],"rp":["post","poc","pots","pco"]},"203":{"input":[1,2,4,7,8],"tlw":["gaps",71],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",6404],"trp":["pro",33640],"tlw":["report",778],"trw":["poor",1596],"lp":["rop","rope","repo","epor","rpo","ropo","ropp","rpor","roop"],"rp":["pro","por","port","oper","ppor","prop","ppro","prog","poor","prot","orp"]},"205":{"input":[1,3,4,7,8],"tlw":["rapport",98],"trw":["page",587],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["stopped",1419],"trw":["process",1455],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["corporate",363],"trw":["power",3130],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",158331],"trw":["up",23594],"lp":[],"rp":["om","mo","up","mu","pu","um","omp","mon","omm","pon","oom","mom","mpo","mou","upp","oup","upo","upon","uppo","num"]},"209":{"input":[1,5,7,8],"tlp":["amo",4702],"trp":["oma",6690],"trw":["mao",108],"lp":["amo","amon","amou","apon","amu","ampu"],"rp":["oma","ompa","oman","uma","uman","omma","pau","manu","mona","mau","upa","napo","mao","opam"]},"210":{"input":[2,5,7,8],"tlp":["som",32033],"trp":["mos",15768],"tlw":["sum",220],"trw":["jump",350],"lp":["som","sup","supp","sum","spon","summ","smo","susp","ssum"],"rp":["mos","mus","pons","mous","mpos","pus","ups","usp","ums","mons","oms"]},"211":{"input":[1,2,5,7,8],"tlw":["woman",3590],"trw":["mason",79],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emo",6070],"trp":["ome",63421],"trw":["money",3556],"lp":["emo","epu"],"rp":["ome","on'","omen","u'","ou'","you'","open","mome","ume","mone","meo","omeo","meon","memo","omme","umen","ompe","umme"]},"213":{"input":[1,3,5,7,8],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["some",15162],"trw":["opened",1401],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["women",3612],"trw":["paused",403],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",5301],"trp":["mot",10460],"tlw":["tom",762],"trw":["put",5210],"lp":["tom","tum","gm","bom","bomb","tup","ttom"],"rp":["mot","put","umb","pub","mont","numb","mong","omb","mout","mput","upt","putt","ptu"]},"217":{"input":[1,4,5,7,8],"tlw":["among",2526],"trw":["obama",363],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["common",1407],"trw":["most",10396],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["famous",816],"trw":["moscow",341],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["room",5055],"trw":["more",21171],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["from",35952],"trw":["program",634],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["don't",9569],"trw":["person",3411],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["company",2711],"trw":["major",1113],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",68379],"trw":["pool",330],"lp":[],"rp":["pl","opl","lp","poi","pol","pli","poli","plo","ppl","lip","lop","opi","pil","ipl","ppli","ppoi","lipp","oppi","pill","pilo"]},"225":{"input":[1,6,7,8],"tlp":["appl",2216],"trp":["pla",24558],"tlw":["apollo",82],"trw":["lap",242],"lp":["appl","apol","alp"],"rp":["pla","plai","pal","lap","pala","ipal","llap","pola","lapp","ppal","pall","ppla","palo"]},"226":{"input":[2,6,7,8],"tlp":["spok",1763],"trp":["posi",4502],"tlw":["slip",260],"trw":["lips",930],"lp":["spok","spl","slip","spli","spoi","spio"],"rp":["posi","pok","lips","ospi","plis","ispl","ispo","lps","plos","pois","piso","kpl","opk","opki"]},"227":{"input":[1,2,6,7,8],"tlw":["slap",95],"trw":["pillow",134],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["eopl",15223],"trp":["ple",30676],"trw":["people",14668],"lp":["eopl","elp","epl","elop","e'l","e'll","epli"],"rp":["ple","ople","'l","'ll","plie","i'l","i'll","leep","iple","lope","pel","pple","lep"]},"229":{"input":[1,3,6,7,8],"tlw":["apple",631],"trw":["pale",447],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spoke",1285],"trw":["people's",449],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["we'll",807],"trw":["please",985],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topi",337],"trp":["ptio",2778],"trw":["pilot",266],"lp":["topi","tipl","tpl"],"rp":["ptio","opti","ptl","pig","plit","pov","pilg","plot","ltip","lpt","lpit"]},"233":{"input":[1,4,6,7,8],"tlw":["flip",108],"trw":["plato",120],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["split",254],"trw":["politics",443],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capital",544],"trw":["political",1085],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["grip",165],"trw":["prove",546],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",549],"trw":["plate",447],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["replied",1257],"trw":["police",1092],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["special",1059],"trw":["place",5268],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mil",16287],"trw":["million",900],"lp":[],"rp":["mil","mpl","hom","lm","omi","poin","ompl","impo","hop","mili","pul","impl","lmo","hum","omin","pho","minu","lim","muni","pull"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["animal",491],"trw":["human",2178],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["shop",667],"trw":["mission",568],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["small",3786],"trw":["plans",687],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["employee",275],"trw":["home",4865],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["example",1694],"trw":["play",1696],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["simply",1710],"trw":["pulled",1252],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["explained",950],"trw":["played",975],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["might",6921],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",366],"trw":["imagination",438],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["coming",1985],"trw":["much",10233],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["almost",3784],"trw":["making",2931],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["government",1285],"trw":["mother",4253],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["family",3955],"trw":["important",2765],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["something",7615],"trw":["possible",2350],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["especially",1737],"trw":["himself",5632],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",410],"tlw":["a",211837],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",89478],"tlw":["s",2993],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",286499],"tlw":["was",112330],"lp":["as","wa","was","sa","aw","ass","ws","awa","sw","ssa","saw","assa","aws","asa","swa","sas","ww","saa","www","ssas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",129154],"tlw":["e",471],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",216643],"tlw":["x",233],"lp":["ea","ex","xa","exa","xe","exe","ax","ae","axe","eea"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["ed",326541],"tlw":["see",9997],"lp":["ed","es","se","de","ess","ds","see","sed","ese","ded","des","eed","sse","dd","ses","ssed","esse","dde","dee","sses"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",140314],"tlw":["we",33258],"lp":["ad","we","da","ew","ead","eas","ade","dea","ase","wee","sea","wed","swe","wea","asse","ease","add","ews","eade","essa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",55910],"tlw":["t",670],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",371419],"tlw":["at",51085],"lp":["at","ta","fa","ff","ft","af","att","aft","tat","fat","aff","tta","atta","tf","taf","taff","ata","ffa","affa","atf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",260669],"tlw":["c",872],"lp":["st","ct","ts","sc","cc","tc","sts","cts","cs","tst","cst","tts","stc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",118675],"tlw":["fact",3233],"lp":["ca","ac","sta","act","tw","ast","fac","cat","acc","cas","stat","wat","sat","atc","fact","tac","sca","watc","sf","fas"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",558051],"tlw":["tree",670],"lp":["er","re","te","et","ere","rt","tr","ter","rr","tte","ree","ett","tter","tre","ret","eet","ert","ette","ete","rte"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",265629],"tlw":["are",29172],"lp":["ar","ra","fe","fr","rea","ear","are","ate","ef","art","eat","tra","rat","fte","reat","era","ffe","arr","afte","fter"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",144944],"tlw":["set",3472],"lp":["ce","rs","ec","ers","ted","rd","res","est","red","der","cr","ect","ste","dr","str","rc","ces","rst","rec","rse"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["wer",47082],"tlw":["were",34909],"lp":["wer","were","ard","ace","war","car","eca","ars","eac","read","rac","ears","ated","wr","ward","star","twe","stra","crea","reas"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",20957],"trw":["n",169],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",578917],"trp":["na",51349],"tlw":["an",29559],"lp":["an","ann","ana","anna","aq","aan","anq"],"rp":["na","nan","nna","nq","nann"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",9321],"trp":["ns",85305],"trw":["j",365],"lp":["sn"],"rp":["ns","nj","nns"]},"19":{"input":[1,2,5],"tlp":["wn",31110],"trp":["ja",7328],"tlw":["san",544],"trw":["jaw",167],"lp":["wn","ans","wan","san","asn","answ","wasn","aj","sq","awn","asan","sna","wns","anw"],"rp":["ja","nsw","jan","nw","nsa","nwa"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",361122],"trp":["ne",208843],"tlw":["eye",1504],"trw":["ye",442],"lp":["en","ey","een","ene","eye","enn","enne","eny","enny"],"rp":["ne","ye","ny","nee","nne","ney","yn","nen","nny","yee","yne"]},"21":{"input":[1,3,5],"tlp":["ay",87083],"trp":["yea",12043],"tlw":["any",10758],"trw":["nay",83],"lp":["ay","any","ean","eq","ane","aye","anne","ena","xan","exan","anx","eane","enan","enea"],"rp":["yea","nea","nex","ya","nx","yan"]},"22":{"input":[2,3,5],"tlp":["end",27020],"trp":["nd",415919],"tlw":["eyes",5472],"trw":["need",4397],"lp":["end","dy","den","sen","dn","ens","sy","ense"],"rp":["nd","ned","ys","nde","nes","nds","ness","je","yes","nse","need","nded"]},"23":{"input":[1,2,3,5],"tlp":["and",307129],"trp":["new",18090],"tlw":["and",266855],"trw":["new",10172],"lp":["and","way","day","ays","say","wen","ways","ady","ands","away","eady","ween","dan","days","ande","says","sand"],"rp":["new","nda","nswe"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",3003],"trp":["nt",218499],"tlw":["b",695],"lp":["bt","tn","bb","tb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ab",55519],"trp":["nat",11510],"tlw":["fan",245],"lp":["ab","ba","ant","tan","tant","tab","ban","bab","bat","fan","batt","anta","fant","abb"],"rp":["nat","nf","nta","nab","nfa","nant"]},"26":{"input":[2,4,5],"tlp":["bs",6980],"trp":["nc",79565],"tlw":["bc",95],"lp":["bs","bj","sb","bst","bts","bc","bsc","bbs","cn","cb","cbs","stn"],"rp":["nc","nts","nst","nsc","nct","ncts"]},"27":{"input":[1,2,4,5],"tlp":["can",27607],"trp":["nsta",3211],"tlw":["can",15149],"lp":["can","anc","stan","bac","want","tanc","bas","ants","cann","abs","sba","sban","stab","sant","cq","acq","cans"],"rp":["nsta","jac","nanc"]},"28":{"input":[3,4,5],"tlp":["be",175052],"trp":["nte",31075],"tlw":["be",44932],"trw":["yet",4449],"lp":["be","ent","ry","ty","rn","by","br","ery","ten","ren","bee","been","ber","rne","ern","bet"],"rp":["nte","ner","nter","ntr"]},"29":{"input":[1,3,4,5],"tlp":["ran",19074],"trp":["year",11125],"tlw":["ran",1611],"trw":["next",4617],"lp":["ran","ary","bef","arn","bea","ante","earn","bra","brea","aren","tran","ften","anyt","bar","rtan","req"],"rp":["year","nera","next","near"]},"30":{"input":[2,3,4,5],"tlp":["enc",25606],"trp":["nce",54473],"tlw":["best",3733],"lp":["enc","ence","bec","ents","cen","cent","rned","dent","sent","bes","renc","bed","cy","tend"],"rp":["nce","nder","nted","jec","ject","nces"]},"31":{"input":[1,2,3,4,5],"tlw":["went",6413],"trw":["years",7833],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1762],"trw":["i",117501],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",104869],"trp":["ia",38456],"tlw":["aziz",61],"lp":["ai","az","za","zi","azi","zz","azz","zza","ziz","aziz"],"rp":["ia","iz","iza","izi","izz","izza","iai"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",120170],"trp":["is",263616],"trw":["is",60295],"lp":["si","ssi","sk","sis","ski","sks","ssis"],"rp":["is","ki","ik","ks","isi","iss","issi","isk","kis","kiss","iki","isis","isks"]},"35":{"input":[1,2,6],"tlp":["wi",119378],"trp":["ka",3991],"tlw":["ask",2497],"trw":["kaa",57],"lp":["wi","ak","sai","ask","asi","aki","wis","assi","wai","ais","sia","swi","ssia","wak","asks","aski","siz","asis"],"rp":["ka","isa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",51232],"trp":["ie",85987],"lp":["ei","eei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",9545],"trp":["ize",5603],"tlw":["xiii",65],"trw":["ix",80],"lp":["ze","xi","exi","aze","ez","eez","eiz","eze","eeze","eize","xie","axi","zei","ezi","eezi","eizi"],"rp":["ize","ix","ixe","ixi"]},"38":{"input":[2,3,6],"tlp":["di",96016],"trp":["id",100069],"tlw":["did",12252],"trw":["kids",1451],"lp":["di","did","sid","side","dis","esi","edi","die","ek","eek","ske","essi"],"rp":["id","ke","ide","ike","ked","ies","ied","ise"]},"39":{"input":[1,2,3,6],"tlp":["ake",27987],"trp":["idea",4816],"tlw":["said",23960],"trw":["idea",2885],"lp":["ake","aid","said","eak","aske","adi","dia","akes","week","six","zed","eadi","easi","edia","xis","aise"],"rp":["idea","iew","ized","ida"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",213739],"trp":["it",311028],"tlw":["tv",551],"trw":["it",92474],"lp":["ti","vi","tiv","tti","tit","vit","tivi","viv","titi","ttit","viti","tv"],"rp":["it","iv","iti","itt","ivi","itti","itiv","ivit"]},"41":{"input":[1,4,6],"tlp":["fi",67126],"trp":["if",58122],"tlw":["fit",689],"trw":["if",25154],"lp":["fi","av","ati","va","tai","ffi","avi","ait","fai","tia","tati","ativ","vat","tif"],"rp":["if","iff","ita","ift","iat","ifi"]},"42":{"input":[2,4,6],"tlp":["ck",51278],"trp":["ic",118179],"tlw":["sit",1264],"trw":["its",10155],"lp":["ck","ci","sti","cti","tic","sit","cit","vis","vic","sist","sic","ctiv","visi","tis"],"rp":["ic","ist","its","ick","ici","ict"]},"43":{"input":[1,2,4,6],"tlp":["wit",77056],"trp":["ica",19163],"tlw":["wait",1256],"trw":["isaac",209],"lp":["wit","ack","tak","fic","cia","acti","ffic","wait","tica","sati","cati","wif","taki","fici","aci"],"rp":["ica","ista","icat","ific","icia"]},"44":{"input":[3,4,6],"tlp":["ve",240401],"trp":["ir",91496],"tlw":["ever",4714],"trw":["ive",85],"lp":["ve","ri","ver","ev","eve","ever","eir","rie","eri","rit","rv","tri","rri","tive","erv","rti"],"rp":["ir","ive","ite","ire"]},"45":{"input":[1,3,4,6],"tlp":["ave",49806],"trp":["ife",12017],"tlw":["five",2604],"lp":["ave","fir","rai","air","ari","fri","arri","frie","rati","arti","ria","eav","trai","rtai","fie","eave"],"rp":["ife","iffe","ief","iate"]},"46":{"input":[2,3,4,6],"tlp":["rk",28978],"trp":["ice",25015],"tlw":["tried",2205],"lp":["rk","ved","ves","ric","ris","eci","ecti","serv","esti","ried","cri","rke","cke","vid","ties","vers"],"rp":["ice","irs","irst","iste"]},"47":{"input":[1,2,3,4,6],"tlw":["first",11244],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",644105],"trw":["in",155002],"lp":[],"rp":["in","hi","ni","hin","nin","ini","inn","nni","inin","hn","nnin","inni","nh","hni","inh","hini","hnn","ih"]},"49":{"input":[1,5,6],"tlp":["ain",43995],"trp":["ha",357027],"tlw":["ah",458],"trw":["han",268],"lp":["ain","ani","ah","aini","zin","anin","aniz","azin"],"rp":["ha","han","ina","ian","hai","niz","nia","iq","inan","niza","nha","niq"]},"50":{"input":[2,5,6],"tlp":["sh",119750],"trp":["his",109386],"tlw":["skin",661],"trw":["his",69304],"lp":["sh","sin","shi","ssin"],"rp":["his","kin","kn","nk","ins","ish","ink","nsi","hink","nis","nki","nkin","hs","nish","inki","insi"]},"51":{"input":[1,2,5,6],"tlp":["wh",148489],"trp":["has",13193],"tlw":["wish",1198],"trw":["has",11125],"lp":["wh","whi","wha","win","sha","ains","akin","ank","ash","wish","ashi","anks","wash","sian","anis","asin","whis"],"rp":["has","hank","ians"]},"52":{"input":[3,5,6],"tlp":["ein",10146],"trp":["he",1036192],"tlw":["eh",128],"trw":["he",92135],"lp":["ein","eh","eni","enin","ehi","ehin"],"rp":["he","hen","hey","ine","hei","ien","hy","yi","yin","hee","hie","nie","nei","inne"]},"53":{"input":[1,3,5,6],"tlp":["aine",5046],"trp":["hea",22882],"tlw":["annie",159],"trw":["yeah",918],"lp":["aine","ayi","ayin","eha","eani","zen","anie","ahe","anxi","ahea","eah","zy","zine","azy","xh","exh"],"rp":["hea","nize","nxi","yeah"]},"54":{"input":[2,3,5,6],"tlp":["she",58316],"trp":["ind",31046],"tlw":["she",45928],"trw":["kind",3481],"lp":["she","din","didn","shed"],"rp":["ind","hes","hed","ndi","hese","ines","ined","iend","iden","idn","kne","ndin","ken","nsid","ishe","indi"]},"55":{"input":[1,2,3,5,6],"tlw":["when",27718],"trw":["had",63389],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",1104883],"trp":["ith",80740],"tlw":["bit",1490],"trw":["hit",1079],"lp":["th","thi","thin","tin","bi","vin","ttin","bit"],"rp":["ith","ht","int","nti","ib","nv","nit","hit","inv","ntin","nth","ivin"]},"57":{"input":[1,4,5,6],"tlp":["tha",132122],"trp":["hat",148416],"tlw":["that",110865],"trw":["hat",521],"lp":["tha","that","ath","fin","than","tain","avin","fath","aint","van","fina","atin","abi","fini"],"rp":["hat","hav","inf","nati","havi","ntai"]},"58":{"input":[2,4,5,6],"tlp":["ch",138742],"trp":["ich",25423],"tlw":["this",36089],"trw":["nick",237],"lp":["ch","this","chi","tch","sib","chin","sch","ssib","stin","sinc","cin"],"rp":["ich","hic","hich","inc","inst","nch","nci","nic","hts"]},"59":{"input":[1,2,4,5,6],"tlw":["with",67032],"trw":["jack",1623],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["the",718961],"trp":["her",160213],"tlw":["the",506536],"trw":["her",47940],"lp":["the","ther","they","ven","thei","very","rin","thr","even","then","eth","enti","rien"],"rp":["her","here","heir","hr","ity","inte","nev"]},"61":{"input":[1,3,4,5,6],"tlw":["father",3696],"trw":["have",35739],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["these",9773],"trw":["interest",1336],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["where",9655],"trw":["heard",3016],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",93108],"trw":["o",531],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",915],"trp":["oa",14939],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",117437],"trp":["os",70799],"tlw":["so",27040],"lp":["so","soo","sso"],"rp":["os","oss","oos","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",92580],"trp":["ow",122368],"tlw":["wow",113],"lp":["wo","aso","woo","asso","swo","wso","awso","soa","aos","wow","awo","sow"],"rp":["ow","ows","owa","oas","osa","ossa","owo"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",22601],"trp":["oe",10755],"trw":["-",1362],"lp":["eo","e-"],"rp":["oe","o-","-e","-o"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",296],"trp":["ox",1874],"lp":["xo","exo","e-a","axo"],"rp":["ox","oxe","-a"]},"70":{"input":[2,3,7],"tlp":["do",77376],"trp":["od",44403],"tlw":["do",18689],"trw":["odd",416],"lp":["do","doe","does","doo","eso","esso","edo"],"rp":["od","ose","ood","oes","ode","osed","odd","osse","ods","oose","oods","odde","oses"]},"71":{"input":[1,2,3,7],"tlp":["dow",14691],"trp":["owe",15537],"tlw":["wood",515],"trw":["owed",149],"lp":["dow","easo","ado","wood","dows","adow","sado","ewo"],"rp":["owe","owed","oad","owd","oda","owde","owds","-da","o-da","oads","oade","oxes"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",350815],"trp":["ot",133805],"tlw":["to",249163],"trw":["otto",67],"lp":["to","go","too","goo","got","gg","tog","gt","tto","gott","tot","gto"],"rp":["ot","og","ott","oot","oto","otto","oog","otog"]},"73":{"input":[1,4,7],"tlp":["fo",133745],"trp":["of",272457],"tlw":["ago",1471],"trw":["of",245539],"lp":["fo","ag","ga","aga","foo","gat","tag","ago","ato","ffo","goa","foot","gag","agg","tota"],"rp":["of","off","oft","oat","ota"]},"74":{"input":[2,4,7],"tlp":["co",161789],"trp":["oc",25929],"tlw":["cost",675],"lp":["co","sto","gs","cto","soc","sco","cco","stoo","cog","coo","cos","cost","cot","ssoc"],"rp":["oc","ost","occ","oct","ots","octo"]},"75":{"input":[1,2,4,7],"tlp":["two",12798],"trp":["oac",2483],"tlw":["two",11667],"lp":["two","tow","acco","towa","coa","sag","foc","sof","ssag","soft","acto","stag","cof","coff","coat"],"rp":["oac","oca","occa","oast","ocat"]},"76":{"input":[3,4,7],"tlp":["ro",170933],"trp":["or",314634],"tlw":["get",10986],"trw":["or",34654],"lp":["ro","ge","gr","eg","get","gre","rg","tor","ger","tro","roo","rge","gro","rot"],"rp":["or","ore","ort","ote","oor","orr"]},"77":{"input":[1,3,4,7],"tlp":["for",111436],"trp":["orta",4717],"tlw":["for",70927],"trw":["offer",1014],"lp":["for","fro","age","fore","efo","efor","gra","grea","arg","aro","ega","fort","arge","roa","gar","rag"],"rp":["orta","ora","offe","ofte"]},"78":{"input":[2,3,4,7],"tlp":["eco",13557],"trp":["ord",17538],"tlw":["good",9480],"trw":["order",2602],"lp":["eco","good","cor","stor","ges","rso","erso","cro","ged","ros","dg","rod","dge","door","sor","ross"],"rp":["ord","ors","orde","orc"]},"79":{"input":[1,2,3,4,7],"tlw":["words",3228],"trw":["offered",1121],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",380429],"trw":["on",61313],"lp":[],"rp":["on","ou","no","un","oun","nu","nou","oon","nno","unn","ono","onn","non","noo","noon","noun","uo","nnou","onou","unu"]},"81":{"input":[1,5,7],"tlp":["au",32369],"trp":["ua",23498],"lp":["au","qu","ano","qua","anno","aun","anu","anua","quan","quo"],"rp":["ua","ona","una","nua","oan","nqu","onna","uan","onq","onqu"]},"82":{"input":[2,5,7],"tlp":["su",62257],"trp":["us",124701],"tlw":["soon",3191],"trw":["us",10609],"lp":["su","son","sou","ssu","soon","soun","sun","sus","sons"],"rp":["us","ons","ous","ju","jo","jus","uss","usu","nsu","njo","oj"]},"83":{"input":[1,2,5,7],"tlp":["wou",29932],"trp":["now",32603],"tlw":["won",495],"trw":["now",13343],"lp":["wou","aus","won","ason","sua","sona","asu","assu","ajo","squ","squa","woun"],"rp":["now","own","nown","usa","usua","usan","ousa","nows"]},"84":{"input":[3,5,7],"tlp":["eno",5765],"trp":["yo",112940],"trw":["you",68463],"lp":["eno","enou","eu","eon","eone"],"rp":["yo","you","one","ue","oy","yon","youn","yone","oney","uy","uen","oye","nue","une","onne"]},"85":{"input":[1,3,5,7],"tlp":["que",9630],"trp":["oya",1710],"tlw":["anyone",1715],"lp":["que","equ","eau","eque","quen","anyo","quee","equa","xu","exu","xua","exua","aneo","xon"],"rp":["oya","unex","ux","nque","uxu","unea"]},"86":{"input":[2,3,5,7],"tlp":["du",19747],"trp":["und",37128],"tlw":["done",3602],"trw":["use",3572],"lp":["du","don","done","esu"],"rp":["und","use","ound","ud","ond","unde","ues","ouse","used","ody","ude","ndo","odu","onde","udd","ones"]},"87":{"input":[1,2,3,5,7],"tlw":["down",11247],"trw":["owned",326],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bu",70306],"trp":["ng",301290],"tlw":["but",49620],"trw":["not",43106],"lp":["bu","bo","tu","but","bou","bout","gu","gn"],"rp":["ng","ut","out","not","ug","oug","ong","ob","nto","ont","unt","ub"]},"89":{"input":[1,4,5,7],"tlp":["abo",26472],"trp":["uf",3979],"tlw":["about",23108],"lp":["abo","fu","abou","ang","fou","gan","aug","tua","atu","anot","foun","aut"],"rp":["uf","onf","uff","natu","nfo","nag","oba","uat"]},"90":{"input":[2,4,5,7],"tlp":["con",43239],"trp":["uc",39944],"tlw":["cut",1451],"trw":["just",14589],"lp":["con","cou","cu","suc","cons","cont","stu","coun","bus","cus","ctu","conc"],"rp":["uc","ust","just","ngs","onc","unc","uct","job"]},"91":{"input":[1,2,4,5,7],"tlw":["town",2110],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["rou",33045],"trp":["ur",136165],"tlw":["turn",2317],"trw":["your",20504],"lp":["rou","ru","tur","roug","gen","ture","roun","tru","turn","ron","bro","eng"],"rp":["ur","our","ure","your","nge","urn","ute","nger"]},"93":{"input":[1,3,4,5,7],"tlw":["before",10203],"trw":["often",3952],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["course",3730],"trw":["once",5524],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["because",9879],"trw":["understand",2238],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",183975],"trw":["oil",657],"lp":[],"rp":["ll","li","io","il","lo","ol","ill","oi","loo","oll","lli","ili","llo","oli","ool","illi","olo","ollo","lio","llio"]},"97":{"input":[1,6,7],"tlp":["al",228009],"trp":["la",103279],"tlw":["all",30772],"trw":["la",689],"lp":["al","all","ali","ail","alo","allo","ala","aliz","alli"],"rp":["la","ial","lai","lia","lla","liz","iall","ila","olla","oal","ola"]},"98":{"input":[2,6,7],"tlp":["sio",15825],"trp":["ok",35246],"tlw":["skills",834],"trw":["look",5477],"lp":["sio","sl","ssio","sol","sil"],"rp":["ok","ls","ook","lik","look","lk","los","lis","lso","osi","ossi","lls","oki","kil","isio"]},"99":{"input":[1,2,6,7],"tlp":["wil",18445],"trp":["low",16681],"tlw":["will",14271],"trw":["low",1274],"lp":["wil","will","als","alk","also","wal","alw","alwa","walk","wl","wall"],"rp":["low","las","llow","lw","lwa","owi","lass","owl","law"]},"100":{"input":[3,6,7],"tlp":["el",142952],"trp":["le",213808],"tlw":["el",99],"trw":["lie",725],"lp":["el","ell","eli","eel","ele","elie","elo","elli","eeli","ello","elle"],"rp":["le","lle","ile","lie","ole","olle","ille","lee","iel"]},"101":{"input":[1,3,6,7],"tlp":["eal",18892],"trp":["lea",26849],"tlw":["alex",152],"lp":["eal","alle","ale","ela","eall","eali","aile","alex","eale","eliz","xio","elea","ael"],"rp":["lea","lex","lize","lexa","oze","llea","lexi"]},"102":{"input":[2,3,6,7],"tlp":["sel",25483],"trp":["ld",104617],"tlw":["else",2789],"trw":["like",19390],"lp":["sel","dl","els","eld","del","dle"],"rp":["ld","like","old","led","les","oke","lled","ild","less","oked","ooke","lose","ldi","lde"]},"103":{"input":[1,2,3,6,7],"tlw":["well",8952],"trw":["lead",1050],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["tio",72429],"trp":["ig",72061],"tlw":["till",1036],"trw":["lot",2713],"lp":["tio","gi","tl","gl","til","vo","ttl","till","giv"],"rp":["ig","ov","lt","lit","lig","liv","litt","ittl","lv","itio","oti"]},"105":{"input":[1,4,6,7],"tlp":["atio",33167],"trp":["lf",21773],"tlw":["fall",1195],"lp":["atio","tal","fl","gai","agai","alt","val","fol","gla","fig","flo","foll","agi","fil","alit"],"rp":["lf","lat","lif","offi","lati"]},"106":{"input":[2,4,6,7],"tlp":["cl",31724],"trp":["lic",9087],"tlw":["still",7621],"trw":["lost",2029],"lp":["cl","ctio","col","stil","sig","clo","took","clos","stio","cov","coll","soci","ctl"],"rp":["lic","ock","osit","loc","oic","oci","list"]},"107":{"input":[1,2,4,6,7],"tlw":["call",2856],"trw":["last",4981],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rl",25465],"trp":["ove",39462],"tlw":["tell",4528],"trw":["over",12910],"lp":["rl","tle","tel","ttle","rel","rig","vel","tell","give","rio","elt","rov"],"rp":["ove","over","let","ori","lve","live","orl","love"]},"109":{"input":[1,3,4,6,7],"tlw":["felt",4669],"trw":["life",8740],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["told",5605],"trw":["lives",1641],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["work",8749],"trw":["least",2856],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",160810],"trw":["oh",2847],"lp":[],"rp":["ho","ul","ion","oul","hou","ui","lin","lu","nl","hu","lon","oin","hil","onl","hol","iou","uni","houl","ull","hoo"]},"113":{"input":[1,5,6,7],"tlp":["qui",11723],"trp":["lan",16797],"tlw":["annual",207],"trw":["hall",950],"lp":["qui","alon","alu","qual","ainl","aul"],"rp":["lan","nal","ual","onal","hal","iona","uall","ula","hall","inal","lain","lau","nall","lian"]},"114":{"input":[2,5,6,7],"tlp":["sho",24544],"trp":["kno",19117],"tlw":["soul",950],"trw":["john",1863],"lp":["sho","sion","shou","sul"],"rp":["kno","ions","hos","ious","usi","hous","usin","onsi","lish","hus","okin","ush","lus","lkin","usl","ousl"]},"115":{"input":[1,2,5,6,7],"tlw":["who",23669],"trw":["how",14162],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["ely",17170],"trp":["ly",122921],"trw":["only",13824],"lp":["ely","elin","enl"],"rp":["ly","lly","nly","only","hel","ily","len","hile","line","lue","hole","lone","loy","hone","ully","llen","ule"]},"117":{"input":[1,3,5,6,7],"tlw":["alone",2184],"trw":["lay",1482],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["should",7178],"trw":["house",4935],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["would",27522],"trw":["usually",1445],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["gh",90668],"trp":["ing",245338],"tlw":["thought",7112],"trw":["into",18343],"lp":["gh","tion","ght","bl","tho","ting","thou"],"rp":["ing","igh","oth","ugh","ight","hing","ough","ning","into","ught","houg","long","ling"]},"121":{"input":[1,4,5,6,7],"tlw":["again",7165],"trw":["having",3594],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["such",8032],"trw":["looking",3174],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["without",5841],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["through",8798],"trw":["other",13909],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["another",6638],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["could",18061],"trw":["others",3864],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["already",3329],"trw":["however",3319],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",37015],"trw":["p",765],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",46764],"trp":["pa",72065],"trw":["pa",273],"lp":["ap","app","apa","appa"],"rp":["pa","pap","ppa","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",40374],"trp":["ps",13734],"lp":["sp","ssp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",3930],"trp":["pas",8500],"tlw":["sap",81],"trw":["pass",1068],"lp":["spa","aps","sap","asp","sapp","wsp","wspa","spap","assp"],"rp":["pas","pass","pw","pwa","paw","paws"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",39298],"trp":["pe",115056],"trw":["'",14271],"lp":["ep","e'","eep","epe","epp","eppe","eepe"],"rp":["pe","ppe","pee","''","'e","p'"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["xp",16071],"trp":["pea",10889],"lp":["xp","exp","appe","xpe","expe","ape","epa","eap","epea","xpa","expa","a'","eape","a'a","x'","ax'"],"rp":["pea","ppea","pape","'a"]},"134":{"input":[2,3,8],"tlp":["spe",18659],"trp":["'s",36901],"tlw":["deep",1465],"trw":["'s",213],"lp":["spe","e's","esp","e'd","dep","espe","deep","sep","desp","depe","spee","eps","d'","d's"],"rp":["'s","'d","ped","pped","pes","pse"]},"135":{"input":[1,2,3,8],"tlp":["we'",3765],"trp":["'w",281],"tlw":["we'd",695],"trw":["passed",1693],"lp":["we'","spea","depa","sepa","aspe","ewsp","we'd","weap","aped","weep","wep","apes","apse","swep","a's","xped","espa","dpa"],"rp":["'w","peas"]},"136":{"input":[4,8],"tlp":["tp",256],"trp":["pt",19963],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",4201],"trp":["pat",6411],"tlw":["tap",153],"trw":["pat",193],"lp":["apt","apta","tap","tapp"],"rp":["pat","pta","patt","pf","ptat"]},"138":{"input":[2,4,8],"trp":["pts",388],"lp":[],"rp":["pts","pst","ptc","pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",5240],"trp":["pac",3604],"tlw":["cap",258],"trw":["past",2353],"lp":["cap","capt","spac","scap","capa","apac","spat","fsp","ffsp","caps"],"rp":["pac","past","pact","patc","psta","pats"]},"140":{"input":[3,4,8],"tlp":["t'",15643],"trp":["pr",76723],"trw":["per",611],"lp":["t'","rep","ept","rp","tep","r'","er'","rpr","re'","ere'"],"rp":["pr","'t","per","pre","'r","'re","pte","ppr","pet","pret"]},"141":{"input":[1,3,4,8],"tlp":["at'",5623],"trp":["par",26731],"tlw":["appear",816],"trw":["part",4589],"lp":["at'","xper","epar","rap","appr","aper","apte","repa","xpr","expr","xpre","apar"],"rp":["par","part","pare","pear","pra","perf","pera","para"]},"142":{"input":[2,3,4,8],"tlp":["t's",15472],"trp":["pres",13007],"tlw":["step",1154],"trw":["press",708],"lp":["t's","spec","cep","cept","resp","step","r's","er's","re's","spr","sper","ccep","teps"],"rp":["pres","pec","pers","pect","perc","prec","pted"]},"143":{"input":[1,2,3,4,8],"tlw":["we're",1513],"trw":["perfect",1065],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",43386],"trw":["m",1273],"lp":[],"rp":["mp","mm","nm","mn","pm","np"]},"145":{"input":[1,5,8],"tlp":["am",72035],"trp":["ma",137500],"tlw":["am",4235],"trw":["man",9572],"lp":["am","amp","ama","apan","amm","ampa","amn","aman"],"rp":["ma","man","pan","mpa","nam","mpan","mana","mma","mann","mman","nap","map"]},"146":{"input":[2,5,8],"tlp":["sm",13242],"trp":["ms",20491],"trw":["ms",185],"lp":["sm","ssm"],"rp":["ms","nsp","mps","nsm","mns","mms"]},"147":{"input":[1,2,5,8],"tlp":["sam",7005],"trp":["mas",4399],"tlw":["sam",133],"trw":["mass",521],"lp":["sam","sma","ams","span","ansp","amps","snap","asm","assm","ssma"],"rp":["mas","maj","mass","jap","japa","mans","jam","mw","mpas","pans"]},"148":{"input":[3,5,8],"tlp":["em",87362],"trp":["me",235102],"tlw":["enemy",1028],"trw":["my",40423],"lp":["em","eme","eem","emp","emen","eeme","emem"],"rp":["me","my","n'","men","pen","mem","'m","y'","mme","ppen","pene","py","mee"]},"149":{"input":[1,3,5,8],"tlp":["ame",34012],"trp":["may",9648],"tlw":["an'",417],"trw":["many",8068],"lp":["ame","ema","eam","an'","xam","exam","eman","appy","xamp","amen","xpen"],"rp":["may","mea","many","mean","name","pany","pay","pane","man'"]},"150":{"input":[2,3,5,8],"tlp":["dn'",13235],"trp":["med",15366],"tlw":["seemed",4232],"trw":["jem",320],"lp":["dn'","seem","sn'","ems","emed","spen","dem","dm","emse","esn'"],"rp":["med","mes","mse","mys","pend","myse","y's","n's","mmed","pens"]},"151":{"input":[1,2,3,5,8],"tlw":["same",6718],"trw":["made",9696],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",4765],"trp":["mb",19208],"lp":["tm","bm"],"rp":["mb","mpt","ntm","pb","mt","mpb"]},"153":{"input":[1,4,5,8],"tlp":["fam",7099],"trp":["mat",11909],"trw":["mba",123],"lp":["fam","amb","tma","tnam","atm","apab","amat","bam","bama","amba","tam"],"rp":["mat","matt","mf","mba","mpat","pant","pab","mant","mbat"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["stm",1138],"trp":["mst",943],"lp":["stm"],"rp":["mst","mc","mbs","mpts","mcc","mcs"]},"155":{"input":[1,2,4,5,8],"tlw":["camp",660],"trw":["pants",299],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",33028],"trp":["n't",37419],"tlw":["remember",2277],"trw":["mr",4133],"lp":["rm","rem","emb","erm","tem","embe","reme","rme","temp","tme","tmen"],"rp":["n't","ment","met","mer","mbe","mber","mr","memb","meet"]},"157":{"input":[1,3,4,5,8],"tlw":["army",2073],"trw":["matter",2479],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["spent",1640],"trw":["mrs",2541],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["came",6889],"trw":["parents",2027],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",28303],"lp":[],"rp":["pi","ip","ppi","ipp","ippi","pip","ipi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["appi",2174],"trp":["pai",6465],"trw":["pizza",143],"lp":["appi","api"],"rp":["pai","ipa","pia","piz","pizz","iap","ippa"]},"162":{"input":[2,6,8],"tlp":["spi",5949],"trp":["ips",2652],"tlw":["sip",104],"trw":["piss",63],"lp":["spi","sip","ssip","sipp","skip","spis"],"rp":["ips","isp","pis","kp","pk","pki","piss","kip","psi","kipp"]},"163":{"input":[1,2,6,8],"tlp":["spai",637],"trp":["isap",1148],"lp":["spai","wip","aspi","apk","apki","wipi","apis"],"rp":["isap","ispa","kpa"]},"164":{"input":[3,6,8],"tlp":["epi",1744],"trp":["i'",14185],"trw":["'i",461],"lp":["epi","eepi","eppi"],"rp":["i'","pie","ippe","ipe","'i","pipe","ppie","ip'"]},"165":{"input":[1,3,6,8],"tlp":["epai",321],"trp":["iz'",67],"lp":["epai","z'","eapi"],"rp":["iz'"]},"166":{"input":[2,3,6,8],"tlp":["disp",1152],"trp":["keep",4608],"tlw":["spies",180],"trw":["keep",3496],"lp":["disp","espi","dip","spie","epis"],"rp":["keep","i'd","kep","pid","ispe","pied","pies","pedi","iped","ip's","k'","k's","ipes","kesp","psid"]},"167":{"input":[1,2,3,6,8],"tlw":["speak",1583],"trw":["paid",1096],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",610],"trp":["pti",3889],"tlw":["tip",221],"trw":["pit",127],"lp":["tip","tipp"],"rp":["pti","pit","ipt","ipti"]},"169":{"input":[1,4,6,8],"tlp":["apit",605],"trp":["pati",1779],"lp":["apit"],"rp":["pati","pita","ptai","ipat","pav","ptia"]},"170":{"input":[2,4,6,8],"tlp":["cip",2669],"trp":["pic",5474],"tlw":["tips",128],"trw":["pick",801],"lp":["cip","spit","spic","scip","tips","ckp"],"rp":["pic","pick","pict","icip","pici","pitc","pist","pics","ptic"]},"171":{"input":[1,2,4,6,8],"trw":["pack",385],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",2627],"trp":["pri",13942],"tlw":["trip",647],"trw":["i've",2219],"lp":["rip","rpri","epti","trip","ript","e'v","e've"],"rp":["pri","it'","peri","'v","'ve","pir","i'v","i've","priv","piri","prev","pite","peti"]},"173":{"input":[1,3,4,6,8],"tlw":["repair",185],"trw":["private",1010],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["despite",946],"trw":["it's",8558],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["we've",750],"trw":["paris",1353],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["im",93559],"trw":["him",28423],"lp":[],"rp":["im","mi","him","min","ph","imp","pin","hip","imi","ppin","mmi","imm","phi","mini","hm","nim","mmin","imin","pini","mpi"]},"177":{"input":[1,5,6,8],"tlp":["ami",8211],"trp":["hap",14305],"tlw":["aim",231],"trw":["pain",1250],"lp":["ami","aim","amin","aph","anim","amaz"],"rp":["hap","happ","ima","mai","main","pain","ham","pani","iam","mina","nima","pha","maz","impa"]},"178":{"input":[2,5,6,8],"tlp":["ship",5146],"trp":["mis",8985],"tlw":["ship",877],"trw":["miss",1642],"lp":["ship","sim","smi","simp","simi","shm","spin"],"rp":["mis","ims","hims","miss","hips","ism","mik","insp","ishm","hisp","nspi","jim","km"]},"179":{"input":[1,2,5,6,8],"tlw":["spanish",469],"trw":["mask",160],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",2800],"trp":["ime",28758],"trw":["i'm",6537],"lp":["emi","emin","epin","eph"],"rp":["ime","hem","he'","i'm","mine","hey'","phy","imme","pine","imen","phe","peni","hme","in'","hmen","meh"]},"181":{"input":[1,3,5,6,8],"tlw":["examine",179],"trw":["happy",1895],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["she'd",1495],"trw":["mind",4439],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["shame",796],"trw":["make",9390],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",28120],"trp":["mit",4914],"tlw":["tim",128],"trw":["ibm",109],"lp":["tim","timi","bmi"],"rp":["mit","mbi","mitt","mmit","imit","mbin","ntim","imb","mpti","ptin","mbit","intm","mith","itm","mitm","ptim","pth"]},"185":{"input":[1,4,5,6,8],"trw":["path",946],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",320],"trw":["pitch",164],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["captain",1078],"trw":["match",450],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["them",21593],"trw":["prevent",380],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["remain",740],"trw":["haven't",641],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["didn't",7051],"trw":["isn't",1565],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["that's",4282],"trw":["perhaps",2737],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",68607],"trw":["pop",223],"lp":[],"rp":["po","op","ppo","opp","oppo","poo","pop","oop","opo","popp"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",1508],"trp":["opa",186],"lp":["apo","appo"],"rp":["opa","oap"]},"194":{"input":[2,7,8],"tlp":["spo",7683],"trp":["pos",16560],"lp":["spo","sop","spos","sspo","spoo"],"rp":["pos","poss","ppos","osp","ops","oops","opos","osop","pso"]},"195":{"input":[1,2,7,8],"tlp":["soap",132],"trp":["pow",4845],"tlw":["soap",132],"lp":["soap"],"rp":["pow","posa"]},"196":{"input":[3,7,8],"tlp":["eop",15223],"trp":["peo",15223],"trw":["pope",239],"lp":["eop","epo"],"rp":["peo","peop","ope","oppe","o'","poe","oope","pope","oe'","'o","-p"]},"197":{"input":[1,3,7,8],"tlp":["eapo",649],"trp":["opea",428],"lp":["eapo","xpo","expo"],"rp":["opea","-pa"]},"198":{"input":[2,3,7,8],"tlp":["espo",3005],"trp":["pose",4757],"trw":["possessed",333],"lp":["espo","dop"],"rp":["pose","oped","ospe","o's","osep","opes","od'","od's","o'd","oe's","pod","oss'"]},"199":{"input":[1,2,3,7,8],"tlw":["exposed",267],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",6183],"trp":["pot",2394],"tlw":["top",1822],"trw":["pot",221],"lp":["top","topp","toop"],"rp":["pot","opt","pto","pott","ptop"]},"201":{"input":[1,4,7,8],"tlp":["gap",376],"trp":["pag",1322],"tlw":["gap",204],"trw":["potato",74],"lp":["gap","apto","gapo","atop"],"rp":["pag","pota","opag","paga"]},"202":{"input":[2,4,7,8],"tlp":["stop",3680],"trp":["post",1282],"tlw":["stop",1798],"trw":["post",644],"lp":["stop","cop","spot","tops","cops","coop","copp","gosp","copt","scop"],"rp":["post","poc","pots","pco"]},"203":{"input":[1,2,4,7,8],"tlw":["gaps",71],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",6404],"trp":["pro",33640],"tlw":["report",778],"trw":["poor",1596],"lp":["rop","rope","repo","epor","rpo","ropo","ropp","rpor","roop"],"rp":["pro","por","port","oper","ppor","prop","ppro","prog","poor","prot","orp"]},"205":{"input":[1,3,4,7,8],"tlw":["rapport",98],"trw":["page",587],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["stopped",1419],"trw":["process",1455],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["corporate",363],"trw":["power",3130],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",158331],"trw":["up",23594],"lp":[],"rp":["om","mo","up","mu","pu","um","omp","mon","omm","pon","oom","mom","mpo","mou","upp","oup","upo","upon","uppo","num"]},"209":{"input":[1,5,7,8],"tlp":["amo",4702],"trp":["oma",6690],"trw":["mao",108],"lp":["amo","amon","amou","apon","amu","ampu"],"rp":["oma","ompa","oman","uma","uman","omma","pau","manu","mona","mau","upa","napo","mao","opam"]},"210":{"input":[2,5,7,8],"tlp":["som",32033],"trp":["mos",15768],"tlw":["sum",220],"trw":["jump",350],"lp":["som","sup","supp","sum","spon","summ","smo","susp","ssum"],"rp":["mos","mus","pons","mous","mpos","pus","ups","usp","ums","mons","oms"]},"211":{"input":[1,2,5,7,8],"tlw":["woman",3590],"trw":["mason",79],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emo",6070],"trp":["ome",63421],"trw":["money",3556],"lp":["emo","epu"],"rp":["ome","on'","omen","u'","ou'","you'","open","mome","ume","mone","meo","omeo","meon","memo","omme","umen","ompe","umme"]},"213":{"input":[1,3,5,7,8],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["some",15162],"trw":["opened",1401],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["women",3612],"trw":["paused",403],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",5301],"trp":["mot",10460],"tlw":["tom",762],"trw":["put",5210],"lp":["tom","tum","gm","bom","bomb","tup","ttom"],"rp":["mot","put","umb","pub","mont","numb","mong","omb","mout","mput","upt","putt","ptu"]},"217":{"input":[1,4,5,7,8],"tlw":["among",2526],"trw":["obama",363],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["common",1407],"trw":["most",10396],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["famous",816],"trw":["moscow",341],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["room",5055],"trw":["more",21171],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["from",35952],"trw":["program",634],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["don't",9569],"trw":["person",3411],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["company",2711],"trw":["major",1113],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",68379],"trw":["pool",330],"lp":[],"rp":["pl","opl","lp","poi","pol","pli","poli","plo","ppl","lip","lop","opi","pil","ipl","ppli","ppoi","lipp","oppi","pill","pilo"]},"225":{"input":[1,6,7,8],"tlp":["appl",2216],"trp":["pla",24558],"tlw":["apollo",82],"trw":["lap",242],"lp":["appl","apol","alp"],"rp":["pla","plai","pal","lap","pala","ipal","llap","pola","lapp","ppal","pall","ppla","palo"]},"226":{"input":[2,6,7,8],"tlp":["spok",1763],"trp":["posi",4502],"tlw":["slip",260],"trw":["lips",930],"lp":["spok","spl","slip","spli","spoi","spio"],"rp":["posi","pok","lips","ospi","plis","ispl","ispo","lps","plos","pois","piso","kpl","opk","opki"]},"227":{"input":[1,2,6,7,8],"tlw":["slap",95],"trw":["pillow",134],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["eopl",15223],"trp":["ple",30676],"trw":["people",14668],"lp":["eopl","elp","epl","elop","e'l","e'll","epli"],"rp":["ple","ople","'l","'ll","plie","i'l","i'll","leep","iple","lope","pel","pple","lep"]},"229":{"input":[1,3,6,7,8],"tlw":["apple",631],"trw":["pale",447],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spoke",1285],"trw":["people's",449],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["we'll",807],"trw":["please",985],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topi",337],"trp":["ptio",2778],"trw":["pilot",266],"lp":["topi","tipl","tpl"],"rp":["ptio","opti","ptl","pig","plit","pov","pilg","plot","ltip","lpt","lpit"]},"233":{"input":[1,4,6,7,8],"tlw":["flip",108],"trw":["plato",120],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["split",254],"trw":["politics",443],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capital",544],"trw":["political",1085],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["grip",165],"trw":["prove",546],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",549],"trw":["plate",447],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["replied",1257],"trw":["police",1092],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["special",1059],"trw":["place",5268],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mil",16287],"trw":["million",900],"lp":[],"rp":["mil","mpl","hom","lm","omi","poin","ompl","impo","hop","mili","pul","impl","lmo","hum","omin","pho","minu","lim","muni","pull"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["animal",491],"trw":["human",2178],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["shop",667],"trw":["mission",568],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["small",3786],"trw":["plans",687],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["employee",275],"trw":["home",4865],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["example",1694],"trw":["play",1696],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["simply",1710],"trw":["pulled",1252],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["explained",950],"trw":["played",975],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["might",6921],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",366],"trw":["imagination",438],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["coming",1985],"trw":["much",10233],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["almost",3784],"trw":["making",2931],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["government",1285],"trw":["mother",4253],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["family",3955],"trw":["important",2765],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["something",7615],"trw":["possible",2350],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["especially",1737],"trw":["himself",5632],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/es-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/es-keymap.json index 81395368b8..f8240db297 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/es-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/es-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",68],"tlw":["a",207382],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",1790],"tlw":["s",277],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",412461],"lp":["as","sa","asa","sas","asas","wa","ass","ssa","was","saa","aw"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",4724],"tlw":["e",5916],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",27380],"tlw":["ex",477],"lp":["ea","ex","ae","xa","exa","ax","axa","xx"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",743538],"tlw":["de",453446],"lp":["de","es","se","ed","des","ese","ede","sd","esd","desd","sde","esde","ses","ded","dese","eses","edes","eded","sed","ees"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",219474],"tlw":["esa",8099],"lp":["ad","da","dad","ada","esa","eda","ade","das","ase","sad","edad","sea","dea","dade","esas","asad","ades","desa","adas","ases"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",782],"tlw":["t",90],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",307672],"tlw":["f",113],"lp":["ta","at","fa","ata","af","afa","tat","fat","fata","att","taf","ft","atat","tata","ff","ataf","tf","atf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",235201],"tlw":["c",615],"lp":["st","sc","ct","cc","tc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",200066],"tlw":["casa",9057],"lp":["ca","ac","sta","cas","ast","tas","asta","casa","sca","aca","act","sac","stas","tac","cta","acc","sf","fac","cat","cast"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",499829],"tlw":["te",14709],"lp":["er","re","te","tr","rt","rr","et","ert","ter","tre","ere","err","rte","rre","ete","erte","ret","rer","etr","terr"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",416643],"tlw":["era",32659],"lp":["ra","ar","era","tra","ara","tar","are","fe","rta","art","fr","rar","rra","erra","ef","erta","atr","eta","arr","rat"],"rp":[]},"14":{"input":[2,3,4],"tlp":["est",139908],"tlw":["ser",12211],"lp":["est","ec","ce","res","rec","rd","cer","cr","dr","ste","rs","ser","tes","str","ces","rc","esc","der","erd","ece"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["esta",69315],"tlw":["esta",18675],"lp":["esta","ras","ace","car","rad","tad","tras","acer","adr","arec","sar","cad","ard","rac","rda","adre","dar","stra","rca","erda"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",1348],"trw":["n",91],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",382423],"trp":["na",233186],"tlw":["ana",597],"lp":["an","ana","aq","anan","anq","ann","anna"],"rp":["na","nq","nan","nana","nna"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",1069],"trp":["ns",48331],"trw":["j",166],"lp":["sn"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["aj",27458],"trp":["ja",36319],"tlw":["san",1894],"trw":["ja",145],"lp":["aj","san","aja","anas","ans","sq","saj","anj","ansa","asan","ajas","ajan"],"rp":["ja","nas","nsa","jan","jas","naj","nsan","nsaj"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",684719],"trp":["ne",94467],"tlw":["en",194129],"trw":["y",254303],"lp":["en","ene","ey","enen","eye","eyen","een","enn","enne"],"rp":["ne","ye","nen","yen","ny","nne","nny","yn","yene","yne"]},"21":{"input":[1,3,5],"tlp":["ena",25795],"trp":["ya",27580],"tlw":["ay",587],"trw":["ya",19283],"lp":["ena","ay","ane","eq","aya","ean","aye","aen","enan","ayan","enea","anen","ayen","anea","xq","exq"],"rp":["ya","nea","yan","nex"]},"22":{"input":[2,3,5],"tlp":["ej",40475],"trp":["nd",141755],"tlw":["deje",506],"lp":["ej","end","sen","ens","den","dej","ende","esen","eje","enes","ense"],"rp":["nd","je","nes","nde","nse","ndes","jes","nden","yend"]},"23":{"input":[1,2,3,5],"tlp":["and",60909],"trp":["nad",25609],"tlw":["deja",806],"trw":["nada",10498],"lp":["and","eja","ensa","aje","deja","dan","enas","ande","anda","ejan","sena","enda","anad","dena","dand"],"rp":["nad","nda","nada","jad","jand"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",656],"trp":["nt",349002],"tlw":["b",221],"lp":["bt","tb","bn"],"rp":["nt"]},"25":{"input":[1,4,5],"tlp":["ab",230416],"trp":["nta",49640],"tlw":["tan",12045],"lp":["ab","ba","aba","ant","tan","tab","taba","ban","tant","aban","anta","bat","tana"],"rp":["nta","nf","ntan","nat","ntab","nab","naba"]},"26":{"input":[2,4,5],"tlp":["bs",5233],"trp":["nc",100151],"lp":["bs","bj","bst","cn","sb","bc","tj"],"rp":["nc","nst","nsc"]},"27":{"input":[1,2,4,5],"tlp":["stab",23089],"trp":["nca",10670],"tlw":["santa",1043],"lp":["stab","cab","sab","anc","baj","can","stan","caba","abaj","bas","acab","baja","saba","sant","tanc","bast"],"rp":["nca","ntas","nac","nsta"]},"28":{"input":[3,4,5],"tlp":["ent",186144],"trp":["nte",139591],"tlw":["entre",11695],"lp":["ent","br","ente","ten","bre","be","entr","eb","ren","rn","ber","ener","ern","tene"],"rp":["nte","ntr","ner","ntre","nter","nten"]},"29":{"input":[1,3,4,5],"tlp":["ran",49950],"trp":["ntra",26185],"tlw":["eran",5913],"trw":["yabran",492],"lp":["ran","ante","abe","enta","bra","abr","rab","rq","raba","bar","eran","aber","trab","abra","tran","rant"],"rp":["ntra","nar","nera","ntar"]},"30":{"input":[2,3,4,5],"tlp":["enc",41323],"trp":["ntes",22621],"tlw":["debe",1755],"lp":["enc","sent","cen","deb","dent","bres","tend","rend","rden","tenc","debe","cent"],"rp":["ntes","nce","jer","nces","nec","nece","ndr","nder"]},"31":{"input":[1,2,3,4,5],"tlw":["estaba",15906],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1864],"trw":["i",432],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["za",46428],"trp":["ia",302035],"lp":["za","az","ai","aza","aia","zi","azi","zz","aiz","azz"],"rp":["ia","iz","iza","izz","iaz"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",193578],"trp":["is",104027],"tlw":["si",37389],"lp":["si","sis","sk","ssi"],"rp":["is","isi","ki","iss","isis","ik","iki","kis","ikis","kiss","isk","issi"]},"35":{"input":[1,2,6],"tlp":["asi",27185],"trp":["ias",18810],"tlw":["asi",11044],"trw":["kazz",77],"lp":["asi","sia","asia","zas","ais","sias","wi","asis","aisa","wis","wiss","azas","ak"],"rp":["ias","isa","izas","isas","ka","ika","issa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",15743],"trp":["ie",233722],"lp":["ei","eei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",37550],"trp":["iez",3157],"tlw":["xii",131],"trw":["ix",78],"lp":["ez","eza","xi","exi","eia","axi","xii","zie","azie","xix","xiii","ze"],"rp":["iez","ieza","ix"]},"38":{"input":[2,3,6],"tlp":["di",175458],"trp":["id",129921],"tlw":["seis",1304],"trw":["kid",113],"lp":["di","edi","sie","esi","die","sid","dis","did","side","eis","esid","edid","sei"],"rp":["id","ide","ies","ied","idi","iese","ise"]},"39":{"input":[1,2,3,6],"tlp":["dia",37584],"trp":["ida",49293],"tlw":["dia",8188],"trw":["idea",2311],"lp":["dia","adi","edia","dias","adie","dida","siad","zad","sida","xis","exis","esia","aid","diez"],"rp":["ida","idad","iad","idea","idas","ieda"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",133369],"trp":["it",63123],"tlw":["ti",1888],"trw":["iv",187],"lp":["ti","vi","viv","tiv","tit","vivi","vit","tti","tivi","vii","viii"],"rp":["it","iv","iti","ivi","itiv"]},"41":{"input":[1,4,6],"tlp":["va",51609],"trp":["ita",23108],"tlw":["va",3371],"lp":["va","fi","av","via","tia","avi","ati","avia","ava","fia","vita","tiva","afi","fav","ativ"],"rp":["ita","if","ifi","iva","iat"]},"42":{"input":[2,4,6],"tlp":["ci",238810],"trp":["ic",95632],"lp":["ci","sti","vis","tic","sit","cci","vist","cis","cti","sic","vic","visi","sist","cit","tici"],"rp":["ic","ist","ici","isti","isc"]},"43":{"input":[1,2,4,6],"tlp":["cia",69052],"trp":["ica",24474],"tlw":["casi",5393],"lp":["cia","aci","acia","fic","fici","casi","cias","tica","stia","taci","vas","sita","asti","saci","acti","acci"],"rp":["ica","ista","icia","ific"]},"44":{"input":[3,4,6],"tlp":["ri",190312],"trp":["ir",83670],"tlw":["ver",6228],"trw":["ir",2754],"lp":["ri","ve","ev","eri","ver","tie","vie","rti","rri","rit","rv","rie","tir","erv","tri","teri"],"rp":["ir","ier","iert","ire"]},"45":{"input":[1,3,4,6],"tlp":["ria",49114],"trp":["ira",16443],"tlw":["vez",12860],"trw":["ira",503],"lp":["ria","ari","eva","eria","vez","aria","raz","ave","var","zar","arti","rz","erz","rav","rza","fie"],"rp":["ira","iera","itar","iar"]},"46":{"input":[2,3,4,6],"tlp":["eci",43130],"trp":["ice",8339],"tlw":["decir",4827],"trw":["irse",431],"lp":["eci","cie","reci","dic","vid","deci","cid","rid","ris","cri","tid","dir","cier","cir","esti","rdi","dri","ves"],"rp":["ice","iste"]},"47":{"input":[1,2,3,4,6],"tlw":["vida",8817],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",187273],"trw":["ni",13944],"lp":[],"rp":["in","ni","hi","nin","ini","hin","hn","inn","nh","hnn"]},"49":{"input":[1,5,6],"tlp":["ah",14690],"trp":["ha",179890],"tlw":["ahi",2676],"trw":["ha",13606],"lp":["ah","ani","anz","anza","ahi","ania","zan","zq"],"rp":["ha","ian","ina","nia","nz","nza","han","hiz","iq","nian","iana","nina"]},"50":{"input":[2,5,6],"tlp":["sin",33228],"trp":["ij",25903],"tlw":["sin",21600],"lp":["sin","sini","sh","shi"],"rp":["ij","nsi","hij","ins","his","nis","ji","nsis","inis","insi","jin","nk","hisi","iji","inj","nins"]},"51":{"input":[1,2,5,6],"tlp":["siq",2408],"trp":["has",20672],"tlw":["ansia",145],"trw":["has",2554],"lp":["siq","ansi","sina","asin","anis","ash"],"rp":["has","ija","iaj","inas","hija","nzas","jai","nias","iaja","nsia","ijas","isaj","hans","isan"]},"52":{"input":[3,5,6],"tlp":["eni",26205],"trp":["ien",107409],"tlw":["eh",468],"trw":["he",7264],"lp":["eni","ein","enie","eh","enin","ehi","enei"],"rp":["ien","he","iene","ine","nie","nien","hie","inie","hen","inen","nei","nhe","nine"]},"53":{"input":[1,3,5,6],"tlp":["enia",16307],"trp":["hay",9090],"trw":["hay",7403],"lp":["enia","enz","enza","eina","enaz","eian","ezan","anie","eniz","aine"],"rp":["hay","haya","inea","ienz","hae","nez","hez","iena","yah","inez"]},"54":{"input":[2,3,5,6],"tlp":["dij",16709],"trp":["ndi",19946],"tlw":["dije",1690],"trw":["ines",410],"lp":["dij","endi","enid","sien","din","dien","dine","dije","ensi"],"rp":["ndi","iend","nid","ind","iden","ndid","indi","iej","ije","nsid","iens"]},"55":{"input":[1,2,3,5,6],"tlw":["ansiedad",269],"trw":["nadie",5526],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",119303],"trp":["ib",32479],"trw":["ibn",155],"lp":["bi","tin","vin","bit","th","tint"],"rp":["ib","int","nti","nv","ibi","nvi","ntin","inti","inv","nit","invi","niv","init","nvit"]},"57":{"input":[1,4,5,6],"tlp":["abi",63989],"trp":["hab",72658],"tlw":["fin",4343],"trw":["habia",39290],"lp":["abi","bia","abia","fin","bian","van","anti","fina","vant","vab","vaba","abit","zab"],"rp":["hab","habi","iba","inf","nfi","itan","ntia"]},"58":{"input":[2,4,5,6],"tlp":["ch",74839],"trp":["nci",46192],"lp":["ch","cin","sib","chi","stin","cinc","cib","chic","sint","cibi"],"rp":["nci","inc","nic","hic","ich","inci","inst","hist","nch","hici"]},"59":{"input":[1,2,4,5,6],"tlw":["sabia",3858],"trw":["hasta",13934],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bie",35373],"trp":["ient",36355],"tlw":["bien",10956],"lp":["bie","bien","ven","teni","bri","enti","tien","bier","rin","rib","ebi","rien","vien","vent"],"rp":["ient","inte","her","nve","ibr","nri"]},"61":{"input":[1,3,4,5,6],"tlw":["tenia",10650],"trw":["haber",3961],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tienes",1622],"trw":["interes",873],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["cabeza",5567],"trw":["hacer",6941],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",993],"trw":["o",22465],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",736],"trp":["oa",1039],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",149815],"trp":["os",465150],"tlw":["sos",79],"trw":["os",2177],"lp":["so","sos","sso"],"rp":["os","oso","osos","oss","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["aso",13706],"trp":["osa",17222],"lp":["aso","asos","aos","saso","wo"],"rp":["osa","osas","ow","oas"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",16208],"trp":["oe",2284],"trw":["-",992],"lp":["eo"],"rp":["oe"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",492],"trp":["ox",1396],"lp":["xo","exo"],"rp":["ox"]},"70":{"input":[2,3,7],"tlp":["do",328036],"trp":["od",79897],"tlw":["dos",13303],"lp":["do","dos","eso","edo","esos","dedo","seo","eseo","dose","edos","deo","eos","seos"],"rp":["od","odo","odos","ode","ose","oses","oes"]},"71":{"input":[1,2,3,7],"tlp":["ado",89938],"trp":["oda",15354],"tlw":["dado",2055],"lp":["ado","ados","dado","sado","eado","aseo","sexo","adeo","dosa","dox","adox"],"rp":["oda","odas","odea","osad","owe"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",261028],"trp":["ot",48115],"tlw":["g",93],"lp":["to","go","tot","got","goo","goog","tog","gt","gto","gg","goto","tto"],"rp":["ot","og","oto","oog","otog","ogo","ogg"]},"73":{"input":[1,4,7],"tlp":["ga",53335],"trp":["of",10649],"tlw":["foto",316],"trw":["of",213],"lp":["ga","ag","fo","ato","ago","aga","tota","fot","foto","gat","tag","afo","gota","gato","tago","gaf"],"rp":["of","ota","oga","ofo"]},"74":{"input":[2,4,7],"tlp":["co",351806],"trp":["oc",68424],"tlw":["toco",325],"lp":["co","sto","tos","cos","cto","sco","gos","stos","sot","cost","coc","cog","soc","sg"],"rp":["oc","oco","ost","osot","osc","oct"]},"75":{"input":[1,2,4,7],"tlp":["cosa",9340],"trp":["oca",11672],"tlw":["cosas",5443],"lp":["cosa","aco","caso","gas","acto","atos","gac","sof","toca","saco","asto","cato","sag","asco","acos"],"rp":["oca","ocas","osta","otas","osof"]},"76":{"input":[3,4,7],"tlp":["ro",246584],"trp":["or",270405],"tlw":["error",581],"trw":["otro",8826],"lp":["ro","ero","eg","tro","gr","ge","rg","tor","ego","rto","reg","erto","rro","rgo"],"rp":["or","otr","otro","ort","ore","orr"]},"77":{"input":[1,3,4,7],"tlp":["gra",22435],"trp":["ora",27567],"tlw":["rato",1491],"trw":["otra",7718],"lp":["gra","aro","gar","ega","arg","for","argo","rga","egar","atro","arga","rato","rof","agr","age","arro","arto"],"rp":["ora","otra","orta"]},"78":{"input":[2,3,4,7],"tlp":["tod",44574],"trp":["ord",10842],"tlw":["todo",18934],"trw":["otros",4846],"lp":["tod","ros","todo","esto","seg","cor","tros","dor","stro","rso","rdo","erso","ecto","eco","eros","corr","reco"],"rp":["ord","ores","oce"]},"79":{"input":[1,2,3,4,7],"tlw":["toda",5491],"trw":["otras",3010],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",376567],"trw":["no",116565],"lp":[],"rp":["on","no","un","nu","uno","ono","nun","uo","nuo","non","ou","onu","onun","uu","oun","nou","nnu","nuno","onn"]},"81":{"input":[1,5,7],"tlp":["qu",432873],"trp":["una",93404],"tlw":["aun",5685],"trw":["una",79449],"lp":["qu","ano","aqu","au","aun","aunq","anu","anqu"],"rp":["una","ua","uan","ona","nqu","unq","unqu","nua","oq","oqu","uq","uqu"]},"82":{"input":[2,5,7],"tlp":["su",160644],"trp":["us",78931],"tlw":["su",81749],"trw":["nos",11959],"lp":["su","sus","son","sun"],"rp":["us","jo","nos","ju","jos","ons","oj","uj","unos","ojo","uso","ojos","jun","nso","noso","jus"]},"83":{"input":[1,2,5,7],"tlp":["anos",18802],"trp":["unas",5230],"tlw":["anos",8719],"trw":["unas",3324],"lp":["anos","ajo","sona","aus","asu","sua","ausa","squ","asun"],"rp":["unas","usa","jua","juan","onas","oja","uas","onaj","onsa","osq","osqu"]},"84":{"input":[3,5,7],"tlp":["eno",33962],"trp":["ue",565691],"trw":["yo",19966],"lp":["eno","eu","enu","eon","eun","eyo"],"rp":["ue","yo","uen","one","uy","nue","oy","ueno","uyo","yu","oye","une","oyo","yun"]},"85":{"input":[1,3,5,7],"tlp":["que",383802],"trp":["nque",7839],"tlw":["que",312514],"lp":["que","aque","ayo","equ","eque","quen","ayu","anue","ayun","aneo","xu","exu","xua","exua"],"rp":["nque","uena","uya","oya","uque","oque"]},"86":{"input":[2,3,5,7],"tlp":["du",23000],"trp":["ndo",74158],"tlw":["donde",10101],"trw":["jose",1204],"lp":["du","don","ejo","endo","dond","enos","seno","sue"],"rp":["ndo","ues","ud","ond","ued","ones","onde","und","uje","nues","undo","uede"]},"87":{"input":[1,2,3,5,7],"tlw":["quedo",2301],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["gu",90299],"trp":["nto",80019],"tlw":["tu",10629],"trw":["noto",316],"lp":["gu","tu","gun","bo","bu","ton","gunt"],"rp":["nto","ob","ont","ng","unt","ub","ut","unto","nton","ug","ngu","uto","ngo"]},"89":{"input":[1,4,5,7],"tlp":["fu",44220],"trp":["uga",7270],"tlw":["tanto",6066],"trw":["nota",486],"lp":["fu","anto","gua","gan","guna","tua","agu","ang","agua","fun","abo","atu","fon"],"rp":["uga","unta","uant","onta","onf","uta","oba"]},"90":{"input":[2,4,5,7],"tlp":["con",167856],"trp":["uc",36702],"tlw":["con",92933],"trw":["junto",3143],"lp":["con","cu","cont","sob","cons","scu","cono","stu","tonc"],"rp":["uc","noc","ust","nco","onc","ntos","unc","ocu","onoc","ncon","nunc"]},"91":{"input":[1,2,4,5,7],"tlw":["bajo",4396],"trw":["nunca",6044],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ento",40726],"trp":["ur",54620],"tlw":["gente",4061],"trw":["negro",1571],"lp":["ento","ron","egu","ru","gen","egun","eron","enor","tur","bue","buen"],"rp":["ur","uer","obr","obre","nor","uert","ontr","uro","uent"]},"93":{"input":[1,3,4,5,7],"tlw":["fue",13323],"trw":["obra",1151],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["sobre",15089],"trw":["usted",6039],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["cuando",21007],"trw":["nuestra",3160],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["lo",300357],"trw":["lo",69406],"lp":[],"rp":["lo","io","ll","li","ol","il","llo","olo","ill","ili","oli","lli","illo","lio","oi","ilo","oll","iol","ollo","ilio"]},"97":{"input":[1,6,7],"tlp":["al",268424],"trp":["la",523649],"tlw":["al",55586],"trw":["la",292004],"lp":["al","zo","all","ali","ala","azo","alo","alli","alla","allo"],"rp":["la","lla","lia","illa","ial","oz","ola","izo","ilia","ila"]},"98":{"input":[2,6,7],"tlp":["sol",26132],"trp":["los",142568],"tlw":["solo",13145],"trw":["los",122255],"lp":["sol","sio","solo","sil","sill","sl","soli"],"rp":["los","ios","llos","osi","iso","isio","ls","ioso","lis","ols","lso","loso","isl"]},"99":{"input":[1,2,6,7],"tlp":["sal",19326],"trp":["las",90934],"tlw":["salio",1704],"trw":["las",76432],"lp":["sal","sali","zos","asio","sola","sala","azos","sla","alas","salo","asil","als","alis"],"rp":["las","llas","iosa","lsa","olas","isla","olsa"]},"100":{"input":[3,6,7],"tlp":["el",426668],"trp":["le",198463],"tlw":["el",234850],"trw":["le",48083],"lp":["el","ell","ello","elo","ele","eli","elle","elli"],"rp":["le","lle","ole","ile","iel","lie","ielo","leo","lee","iole","lei","ille"]},"101":{"input":[1,3,6,7],"tlp":["ella",27778],"trp":["lez",2228],"tlw":["ella",14508],"trw":["leia",238],"lp":["ella","ale","ela","alle","eal","eali","ezo","alie","alez","eliz","elia","ael","xio","exio"],"rp":["lez","leza","lea","iale","oxi","llez"]},"102":{"input":[2,3,6,7],"tlp":["del",76844],"trp":["ido",57544],"tlw":["del",70196],"trw":["les",7650],"lp":["del","dio","dios","dido","sido","edio","esio","dol","sile","eles"],"rp":["ido","les","odi","lid","ld","idos","ilid","oles","idio","iles"]},"103":{"input":[1,2,3,6,7],"tlw":["ellas",1912],"trw":["lado",4590],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",45659],"trp":["ig",52962],"tlw":["volvio",2823],"trw":["oigo",95],"lp":["vo","gi","vio","vol","tio","volv","gl"],"rp":["ig","lt","lg","lv","ito","ov","igo","olv","lgo","lvi","olvi","lto","lig"]},"105":{"input":[1,4,6,7],"tlp":["alg",26073],"trp":["lta",13054],"tlw":["algo",9338],"trw":["italia",381],"lp":["alg","tal","alt","algo","fl","alta","val","agi","voz","fal","alto","tall","avo","alv","gia"],"rp":["lta","iga","lat","ofi","lav"]},"106":{"input":[2,4,6,7],"tlp":["cio",75669],"trp":["ico",18875],"tlw":["visto",3153],"trw":["loco",681],"lp":["cio","cl","sig","col","ccio","cil","vos","cios","colo"],"rp":["ico","lic","icio","oci","isto","lc","loc","icos","lici","lico","igos"]},"107":{"input":[1,2,4,6,7],"tlw":["facil",1160],"trw":["oficial",985],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rio",36719],"trp":["leg",18029],"tlw":["rio",1831],"trw":["llego",2460],"lp":["rio","rl","erio","evo","gri","tori","tel","erl","rlo","rig"],"rp":["leg","ori","lev","lleg","iero","lor","llev","ove","ler","iro"]},"109":{"input":[1,3,4,6,7],"tlw":["favor",1408],"trw":["llegar",2630],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["cierto",3067],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["todavia",3269],"trw":["llegado",1772],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",77353],"trw":["nino",1684],"lp":[],"rp":["ui","ion","ho","lu","ul","ino","hu","uni","oni","nio","lin","lon","ulo","iu","inu","olu","onio","uin","nino","uil"]},"113":{"input":[1,5,6,7],"tlp":["qui",49071],"trp":["lan",19182],"tlw":["aqui",6351],"trw":["hizo",5133],"lp":["qui","aho","aqui","zon","azon","alq","alqu"],"rp":["lan","ual","nal","uz","iona","hizo","ula","iqu","lq","lqu","lqui","inal","ualq"]},"114":{"input":[2,5,6,7],"tlp":["sion",15408],"trp":["ijo",20150],"tlw":["sino",5212],"trw":["hijo",3480],"lp":["sion","sino","sul","solu"],"rp":["ijo","hos","hijo","usi","uis","lus","inos","onsi","luso","ijos","usio","ulos","nsio","luis","jul","juli"]},"115":{"input":[1,2,5,6,7],"tlw":["quiso",1107],"trw":["julia",613],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elen",1805],"trp":["uel",35859],"trw":["hoy",2254],"lp":["elen","euni"],"rp":["uel","uie","uien","len","uell","ione","lue","uelo","llen","ilen","lien","hoy","ley","hue","lone","line","leno","nel"]},"117":{"input":[1,3,5,6,7],"tlw":["quien",8560],"trw":["linea",925],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["dijo",13944],"trw":["lejos",1983],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["aquellos",2619],"trw":["juez",487],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",44167],"trp":["lgu",15861],"tlw":["tuvo",2452],"trw":["ningun",2097],"lp":["bl","gui","tuv","bio","vu"],"rp":["lgu","ult","igu","lgun","uv","ubi","itu","ing","ibl","hub","onv","lib","hubi","ulti","obl"]},"121":{"input":[1,4,5,6,7],"tlw":["alguna",3442],"trw":["ninguna",2180],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cinco",2085],"trw":["incluso",2762],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["cual",3860],"trw":["habitacion",1620],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["voy",2278],"trw":["luego",6071],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["ahora",9282],"trw":["lugar",4548],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["dicho",3458],"trw":["noche",5939],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["ciudad",3866],"trw":["historia",2737],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",273],"trw":["p",308],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",34091],"trp":["pa",189321],"trw":["papa",1263],"lp":["ap","apa"],"rp":["pa","pap","papa","ppa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",58765],"trp":["ps",612],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",11453],"trp":["pas",22840],"trw":["pasa",1406],"lp":["spa","asp","sap","sapa","apas","spas"],"rp":["pas","pasa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",17553],"trp":["pe",152316],"tlw":["ep",67],"trw":["pepe",388],"lp":["ep","epe","epp"],"rp":["pe","pep","pepe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["xp",7112],"trp":["pape",1900],"trw":["pa'",77],"lp":["xp","exp","ape","epa","xpe","expe","a'","xpa","expa"],"rp":["pape","pea","pa'","pepa"]},"134":{"input":[2,3,8],"tlp":["esp",48661],"trp":["pes",7009],"trw":["pese",726],"lp":["esp","spe","espe","desp","sep","dep","sesp","depe","sped","spes"],"rp":["pes","ped","pese","pede"]},"135":{"input":[1,2,3,8],"tlp":["espa",10359],"trp":["pad",10546],"tlw":["espada",1195],"trw":["pase",469],"lp":["espa","esap","aspe","spad","sepa","xped","apad","epas","depa","spea"],"rp":["pad","pesa","pada","pase","peda","pade","pead"]},"136":{"input":[4,8],"trp":["pt",3066],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",602],"trp":["pat",4693],"tlw":["tapa",136],"trw":["pata",128],"lp":["tap","apat","tapa","apt","apta"],"rp":["pat","pta","pata"]},"138":{"input":[2,4,8],"trp":["pc",1379],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",8573],"trp":["pac",6048],"tlw":["capa",378],"trw":["patas",294],"lp":["cap","capa","spac","apac","scap","capt"],"rp":["pac","past","pact"]},"140":{"input":[3,4,8],"tlp":["rp",9074],"trp":["pr",105517],"trw":["peter",135],"lp":["rp","rep","erp","rpr","rpre","ept","repe","epr","epre","repr","rpe"],"rp":["pr","per","pre","pet","pert","pret","prep","perr","pete"]},"141":{"input":[1,3,4,8],"tlp":["apar",7464],"trp":["par",95147],"tlw":["aparte",525],"trw":["para",50839],"lp":["apar","apr","epar","rap","apre","repa","xper","xpr","expr","xpre","epta"],"rp":["par","para","pare","part","pera","pra","perf","patr","pref"]},"142":{"input":[2,3,4,8],"tlp":["resp",9516],"trp":["pres",14702],"tlw":["espere",155],"trw":["perder",971],"lp":["resp","sper","spec","cep","cept","spet","epc","cepc","spr","espr","spre"],"rp":["pres","pec","pers","perd","prec","pect","pedr","perc","pece"]},"143":{"input":[1,2,3,4,8],"tlw":["espera",1024],"trw":["padre",6018],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",72228],"trw":["m",171],"lp":[],"rp":["mp","nm","mn","mpp"]},"145":{"input":[1,5,8],"tlp":["am",111190],"trp":["ma",217996],"tlw":["ama",379],"trw":["manana",3399],"lp":["am","ama","amp","aman","ampa"],"rp":["ma","man","pan","mpa","mana","mpan","pana","mam","nam","mama","mna","maq","pam","mpam","nap"]},"146":{"input":[2,5,8],"tlp":["sm",16472],"trp":["nsp",1139],"lp":["sm"],"rp":["nsp","mps","nsm"]},"147":{"input":[1,2,5,8],"tlp":["span",4757],"trp":["mas",62981],"tlw":["sam",202],"trw":["mas",42217],"lp":["span","sma","sam","amas","asm","smas","asma","asam","ansp"],"rp":["mas","jam","jama","nsam","paj","paja","masa","maj","mpas","mnas","mans"]},"148":{"input":[3,5,8],"tlp":["em",88958],"trp":["me",181753],"trw":["me",47087],"lp":["em","emp","eme","emen","empe","enem","epen","emn"],"rp":["me","men","pen","mpe","nem","nme","mem","mene","nmen","mpen","pene","pey"]},"149":{"input":[1,3,5,8],"tlp":["ame",24574],"trp":["mane",7021],"tlw":["examen",171],"trw":["pena",1009],"lp":["ame","amen","ema","eman","apen","enam","eam","eame","xam"],"rp":["mane","may","peq","pena","pane","mae","mena","max","name","mame","mex"]},"150":{"input":[2,3,5,8],"tlp":["dem",13584],"trp":["med",13820],"tlw":["depende",152],"trw":["meses",1727],"lp":["dem","sem","ejem","dm","seme","emej","spej","emed"],"rp":["med","pens","mej","mes","mens","jem","jemp","mese","nmed","pend","mend","pej"]},"151":{"input":[1,2,3,5,8],"tlw":["ademas",3394],"trw":["mesa",2367],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",622],"trp":["mb",53887],"lp":["tm","bm"],"rp":["mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",22247],"trp":["mba",6413],"tlw":["fama",385],"trw":["mata",229],"lp":["tam","amb","tamb","fam","tamp","amab","bam","atam","abam","amba"],"rp":["mba","mat","mant","mab","maba","mata","pant","pab","ntam","mbat"],"special":"numsym"},"154":{"input":[2,4,5,8],"lp":[],"rp":[]},"155":{"input":[1,2,4,5,8],"tlw":["cama",1722],"trw":["pasaba",1017],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",44145],"trp":["ment",47484],"tlw":["repente",849],"trw":["mente",1213],"lp":["rm","erm","empr","tem","rme","emb","rem","term","temp"],"rp":["ment","mbr","mbre","mer","mpr","mpre","pren","met","perm","ntem","mper"]},"157":{"input":[1,3,4,5,8],"tlw":["tema",888],"trw":["manera",3467],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["empece",256],"trw":["presente",701],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["armas",1351],"trw":["madre",4699],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",45492],"lp":[],"rp":["pi","ip","ipi","pip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",5901],"trp":["pia",3578],"trw":["paz",1186],"lp":["api","apaz","zap","zapa","apia","apiz"],"rp":["pia","paz","pai","ipa","piz","pipa","ppai"]},"162":{"input":[2,6,8],"tlp":["spi",5706],"trp":["isp",4720],"lp":["spi"],"rp":["isp","pis","psi","ispi"]},"163":{"input":[1,2,6,8],"tlp":["spia",239],"trp":["pais",2619],"trw":["pais",1820],"lp":["spia","aspi"],"rp":["pais","pasi","ispa","pias","pisa","psia","ipas"]},"164":{"input":[3,6,8],"tlp":["epi",1192],"trp":["pie",14289],"trw":["pie",2140],"lp":["epi"],"rp":["pie","ipe","ipie","pei"]},"165":{"input":[1,3,6,8],"trp":["pez",4584],"trw":["pieza",377],"lp":[],"rp":["pez","peza","piez"]},"166":{"input":[2,3,6,8],"tlp":["espi",3579],"trp":["pid",4842],"trw":["pies",1461],"lp":["espi","disp","dip","epis","spie","spid"],"rp":["pid","pedi","pied","pies","pidi","pide","pesi","ispe","ipes","k'","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["despedida",172],"trw":["paises",358],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2633],"trp":["pit",4928],"lp":["tip","tipi"],"rp":["pit","piti","pti","ipt","ipit"]},"169":{"input":[1,4,6,8],"tlp":["apit",3167],"trp":["pita",2814],"tlw":["tapia",110],"lp":["apit","tapi","vap"],"rp":["pita","pati","pav"]},"170":{"input":[2,4,6,8],"tlp":["cip",5255],"trp":["pci",1379],"lp":["cip","cipi","spit","scip","visp"],"rp":["pci","pist","icip","pic","ipc","ipci","ipic","psic","pisc","ptic"]},"171":{"input":[1,2,4,6,8],"tlw":["capaz",1523],"trw":["pista",305],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["repi",892],"trp":["pri",18110],"tlw":["repetir",243],"trw":["pierre",163],"lp":["repi","epit","epti","rip","rpi","trip","epri","erpi"],"rp":["pri","peri","pir","pier","piri","peti","priv","prev","ptie","piet","perv","pite"]},"173":{"input":[1,3,4,6,8],"tlw":["repetia",185],"trw":["partir",944],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["especie",1047],"trw":["pedir",513],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["capacidad",547],"trw":["parecia",4070],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",147074],"trw":["mi",29966],"lp":[],"rp":["mi","im","min","imp","imi","nim","inm","pin","mpi","mini","nmi","impi","pini","imin","inim","hip","him","imn","ph","phi"]},"177":{"input":[1,5,6,8],"tlp":["ami",19873],"trp":["ima",14150],"tlw":["anima",95],"trw":["mia",816],"lp":["ami","amin","anim","aim"],"rp":["ima","mina","iam","mia","mani","nima","pani","impa","ham","mpia","niam","mai","nami","mian","inam","imam"]},"178":{"input":[2,5,6,8],"tlp":["sim",4131],"trp":["mis",25550],"trw":["mis",5514],"lp":["sim","simp","simi","spin","smi","smis","sism"],"rp":["mis","ism","mism","misi","isim","insp","nspi","jim","nism","imis","hisp","ismi","jimi"]},"179":{"input":[1,2,5,6,8],"tlw":["animas",76],"trw":["misma",3576],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",4450],"trp":["mie",21370],"lp":["emi","empi","emin"],"rp":["mie","iem","iemp","mien","ime","imie","hem","inme","imen","pien","nemi","impe","miem","mpie","meni","heme","mine"]},"181":{"input":[1,3,5,6,8],"tlw":["empieza",396],"trw":["maxima",192],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["dime",307],"trw":["impide",99],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["demasiadas",229],"trw":["media",1745],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",9690],"trp":["mbi",15416],"lp":["tim","vim","timi","vimi","timb"],"rp":["mbi","mit","miti","ntim","pint","imit","imb","itm","pib","mbit","itim","ivim","mbin","mib","ptib"]},"185":{"input":[1,4,5,6,8],"trw":["pinta",126],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",64],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["capitan",1308],"trw":["incapaz",452],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["verme",274],"trw":["primer",2357],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["tambien",10237],"trw":["primera",3631],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["siempre",8021],"trw":["presidente",1129],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["encima",2175],"trw":["mientras",7333],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",202728],"trw":["pop",64],"lp":[],"rp":["po","op","opo","pop","ppo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",2962],"trp":["opa",4287],"trw":["popa",199],"lp":["apo"],"rp":["opa","popa"]},"194":{"input":[2,7,8],"tlp":["spo",8366],"trp":["pos",15078],"trw":["pos",130],"lp":["spo","spos","sop","sosp","sopo"],"rp":["pos","osp","opos","poso","pso","ops"]},"195":{"input":[1,2,7,8],"tlp":["apos",275],"trp":["paso",5668],"tlw":["sopa",128],"trw":["paso",4414],"lp":["apos","sopa"],"rp":["paso","opas","posa","pow"]},"196":{"input":[3,7,8],"tlp":["epo",1772],"trp":["ope",2726],"lp":["epo","eppo"],"rp":["ope","peo","poe","opeo","pope"]},"197":{"input":[1,3,7,8],"tlp":["xpo",209],"trp":["opea",131],"lp":["xpo","expo"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["espo",6435],"trp":["pod",19770],"tlw":["esposo",391],"trw":["peso",623],"lp":["espo","epos","depo","dop","speo","dope"],"rp":["pod","pode","pose","ospe","peso","poes","psoe","peos","podo"]},"199":{"input":[1,2,3,7,8],"tlw":["esposa",926],"trw":["pasado",2726],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",143],"trp":["pto",1342],"trw":["opto",99],"lp":["top"],"rp":["pto","pot","opt","opto"]},"201":{"input":[1,4,7,8],"tlp":["apag",394],"trp":["pag",2930],"tlw":["apago",137],"trw":["pago",329],"lp":["apag","tapo"],"rp":["pag","paga","pago","pato","opag","opta"]},"202":{"input":[2,4,7,8],"tlp":["cop",1471],"trp":["poc",14176],"trw":["poco",8226],"lp":["cop","scop","copo","tops"],"rp":["poc","poco","post","opc","ptos"]},"203":{"input":[1,2,4,7,8],"tlw":["copa",496],"trw":["pocas",752],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",11433],"trp":["por",105551],"tlw":["torpe",134],"trw":["por",82819],"lp":["rop","rpo","erpo","trop","ropo","epto"],"rp":["por","pero","pro","preg","prop","port","orp","orpr","preo","prot","opor","peor","oper","peg"]},"205":{"input":[1,3,4,7,8],"tlw":["ropa",972],"trw":["pagar",556],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["espero",808],"trw":["poder",3232],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["aspecto",1030],"trw":["profesor",509],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",151250],"trw":["puno",277],"lp":[],"rp":["mo","om","pu","mu","omo","mpo","um","omp","up","pon","mon","mun","mom","pun","upo","nom","omu","omun","num","umo"]},"209":{"input":[1,5,7,8],"tlp":["amo",19266],"trp":["mano",16278],"tlw":["amo",786],"trw":["mano",5872],"lp":["amo","ampo","apu","amon","aum"],"rp":["mano","oma","ompa","uma","pano","upa","uman","oman","manu","pau","mona","maqu","namo","umna","uap"]},"210":{"input":[2,5,7,8],"tlp":["spu",13016],"trp":["mos",30677],"tlw":["somos",935],"trw":["puso",2090],"lp":["spu","smo","sup","spon","som","supo","supu","sum","somo","smos"],"rp":["mos","muj","pus","puso","mpos","mus","moso","omos","pons","usp"]},"211":{"input":[1,2,5,7,8],"tlw":["suma",280],"trw":["manos",4296],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emo",15453],"trp":["pue",46340],"tlw":["empeno",236],"trw":["muy",14472],"lp":["emo","empo","emon","epu"],"rp":["pue","ome","muy","omen","mue","meno","mome","ume","pone","upe","umen","nume","nemo","upue","poy","memo"]},"213":{"input":[1,3,5,7,8],"tlw":["apoyo",685],"trw":["pequeno",1827],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["despues",9579],"trw":["menos",6628],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["amado",313],"trw":["mando",1140],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",6546],"trp":["omb",23704],"tlw":["tomo",1241],"trw":["punto",3190],"lp":["tom","tum","tumb","tomo","tup","bom","tmo"],"rp":["omb","punt","nomb","umb","pub","mont","pob","mbo","mot","pong","put","moto","umbo"]},"217":{"input":[1,4,5,7,8],"tlw":["toma",528],"trw":["punta",577],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["como",50874],"trw":["puntos",421],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["tampoco",2231],"trw":["montanas",596],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["grupo",2081],"trw":["momento",6711],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",3330],"trw":["porque",13945],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["cuerpo",3541],"trw":["mujer",5923],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["respuesta",1354],"trw":["personas",2316],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",26745],"trw":["pollo",147],"lp":[],"rp":["pl","opi","pli","pio","pol","poli","lp","ipo","olp","plo","opio","ipio","pil","lip","lop","plio","ipl","pill","ilip","lipo"]},"225":{"input":[1,6,7,8],"tlp":["apl",391],"trp":["pal",11994],"tlw":["apolo",118],"trw":["plaza",1014],"lp":["apl","apol","apil","apli","alop","apla"],"rp":["pal","pla","pala","opia","ipal","lpa","plaz","palo","pali","plia","pila","poz","pozo","lap"]},"226":{"input":[2,6,7,8],"tlp":["spl",427],"trp":["posi",7976],"tlw":["soplo",116],"trw":["piso",796],"lp":["spl","sopl","spio"],"rp":["posi","ispo","pios","piso","ospi","ipos","plos","lpis","opsi"]},"227":{"input":[1,2,6,7,8],"trw":["pasillo",584],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epl",1170],"trp":["pel",8010],"trw":["piel",1315],"lp":["epl","epli","elip","eple"],"rp":["pel","ple","lpe","olpe","peli","pelo","piel","pele","opie","pell","lipe","lope","pole","lpeo","pleo","opel"]},"229":{"input":[1,3,6,7,8],"trw":["papel",1409],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["episodio",202],"trw":["podido",1018],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["espalda",1291],"trw":["podia",6502],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["golp",2796],"trp":["polv",730],"tlw":["tipo",2063],"trw":["polvo",512],"lp":["golp","tipo","gip","gipt","tipl"],"rp":["polv","pito","ipto","ipot","ltip","plit"]},"233":{"input":[1,4,6,7,8],"tlw":["filipo",307],"trw":["patio",737],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["tipos",271],"trw":["politicos",569],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capital",627],"trw":["politica",1189],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["golpe",1615],"trw":["propio",2058],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["felipe",457],"trw":["propia",1864],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["replico",777],"trw":["perdido",1215],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["especial",896],"trw":["podria",2740],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["hom",15529],"trw":["mil",2026],"lp":[],"rp":["hom","mil","lm","mpl","imo","omi","mili","impo","mino","hum","lim","moni","ompl","mio","mpli","lum","poni","pul","mplo","impl"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alma",1817],"trw":["mal",3264],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"trw":["mismo",8546],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["suponia",297],"trw":["humanos",580],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["empleo",215],"trw":["pleno",336],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["empezo",1641],"trw":["manuel",722],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["ejemplo",1285],"trw":["medio",3051],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["demasiado",2974],"trw":["podian",1303],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["ultimo",2103],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["amigo",2622],"trw":["ultima",1629],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["conmigo",1217],"trw":["mucho",7468],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["camino",3366],"trw":["muchas",2632],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["tiempo",9492],"trw":["hombre",8282],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["finalmente",1135],"trw":["hermano",2152],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["respondio",2029],"trw":["hombres",5292],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["comenzo",1401],"trw":["palabras",3233],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",68],"tlw":["a",207382],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",1790],"tlw":["s",277],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",412461],"lp":["as","sa","asa","sas","asas","wa","ass","ssa","was","saa","aw"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",4724],"tlw":["e",5916],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",27380],"tlw":["ex",477],"lp":["ea","ex","ae","xa","exa","ax","axa","xx"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",743538],"tlw":["de",453446],"lp":["de","es","se","ed","des","ese","ede","sd","esd","desd","sde","esde","ses","ded","dese","eses","edes","eded","sed","ees"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",219474],"tlw":["esa",8099],"lp":["ad","da","dad","ada","esa","eda","ade","das","ase","sad","edad","sea","dea","dade","esas","asad","ades","desa","adas","ases"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",782],"tlw":["t",90],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",307672],"tlw":["f",113],"lp":["ta","at","fa","ata","af","afa","tat","fat","fata","att","taf","ft","atat","tata","ff","ataf","tf","atf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",235201],"tlw":["c",615],"lp":["st","sc","ct","cc","tc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",200066],"tlw":["casa",9057],"lp":["ca","ac","sta","cas","ast","tas","asta","casa","sca","aca","act","sac","stas","tac","cta","acc","sf","fac","cat","cast"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",499829],"tlw":["te",14709],"lp":["er","re","te","tr","rt","rr","et","ert","ter","tre","ere","err","rte","rre","ete","erte","ret","rer","etr","terr"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",416643],"tlw":["era",32659],"lp":["ra","ar","era","tra","ara","tar","are","fe","rta","art","fr","rar","rra","erra","ef","erta","atr","eta","arr","rat"],"rp":[]},"14":{"input":[2,3,4],"tlp":["est",139908],"tlw":["ser",12211],"lp":["est","ec","ce","res","rec","rd","cer","cr","dr","ste","rs","ser","tes","str","ces","rc","esc","der","erd","ece"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["esta",69315],"tlw":["esta",18675],"lp":["esta","ras","ace","car","rad","tad","tras","acer","adr","arec","sar","cad","ard","rac","rda","adre","dar","stra","rca","erda"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",1348],"trw":["n",91],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",382423],"trp":["na",233186],"tlw":["ana",597],"lp":["an","ana","aq","anan","anq","ann","anna"],"rp":["na","nq","nan","nana","nna"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",1069],"trp":["ns",48331],"trw":["j",166],"lp":["sn"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["aj",27458],"trp":["ja",36319],"tlw":["san",1894],"trw":["ja",145],"lp":["aj","san","aja","anas","ans","sq","saj","anj","ansa","asan","ajas","ajan"],"rp":["ja","nas","nsa","jan","jas","naj","nsan","nsaj"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",684719],"trp":["ne",94467],"tlw":["en",194129],"trw":["y",254303],"lp":["en","ene","ey","enen","eye","eyen","een","enn","enne"],"rp":["ne","ye","nen","yen","ny","nne","nny","yn","yene","yne"]},"21":{"input":[1,3,5],"tlp":["ena",25795],"trp":["ya",27580],"tlw":["ay",587],"trw":["ya",19283],"lp":["ena","ay","ane","eq","aya","ean","aye","aen","enan","ayan","enea","anen","ayen","anea","xq","exq"],"rp":["ya","nea","yan","nex"]},"22":{"input":[2,3,5],"tlp":["ej",40475],"trp":["nd",141755],"tlw":["deje",506],"lp":["ej","end","sen","ens","den","dej","ende","esen","eje","enes","ense"],"rp":["nd","je","nes","nde","nse","ndes","jes","nden","yend"]},"23":{"input":[1,2,3,5],"tlp":["and",60909],"trp":["nad",25609],"tlw":["deja",806],"trw":["nada",10498],"lp":["and","eja","ensa","aje","deja","dan","enas","ande","anda","ejan","sena","enda","anad","dena","dand"],"rp":["nad","nda","nada","jad","jand"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",656],"trp":["nt",349002],"tlw":["b",221],"lp":["bt","tb","bn"],"rp":["nt"]},"25":{"input":[1,4,5],"tlp":["ab",230416],"trp":["nta",49640],"tlw":["tan",12045],"lp":["ab","ba","aba","ant","tan","tab","taba","ban","tant","aban","anta","bat","tana"],"rp":["nta","nf","ntan","nat","ntab","nab","naba"]},"26":{"input":[2,4,5],"tlp":["bs",5233],"trp":["nc",100151],"lp":["bs","bj","bst","cn","sb","bc","tj"],"rp":["nc","nst","nsc"]},"27":{"input":[1,2,4,5],"tlp":["stab",23089],"trp":["nca",10670],"tlw":["santa",1043],"lp":["stab","cab","sab","anc","baj","can","stan","caba","abaj","bas","acab","baja","saba","sant","tanc","bast"],"rp":["nca","ntas","nac","nsta"]},"28":{"input":[3,4,5],"tlp":["ent",186144],"trp":["nte",139591],"tlw":["entre",11695],"lp":["ent","br","ente","ten","bre","be","entr","eb","ren","rn","ber","ener","ern","tene"],"rp":["nte","ntr","ner","ntre","nter","nten"]},"29":{"input":[1,3,4,5],"tlp":["ran",49950],"trp":["ntra",26185],"tlw":["eran",5913],"trw":["yabran",492],"lp":["ran","ante","abe","enta","bra","abr","rab","rq","raba","bar","eran","aber","trab","abra","tran","rant"],"rp":["ntra","nar","nera","ntar"]},"30":{"input":[2,3,4,5],"tlp":["enc",41323],"trp":["ntes",22621],"tlw":["debe",1755],"lp":["enc","sent","cen","deb","dent","bres","tend","rend","rden","tenc","debe","cent"],"rp":["ntes","nce","jer","nces","nec","nece","ndr","nder"]},"31":{"input":[1,2,3,4,5],"tlw":["estaba",15906],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1864],"trw":["i",432],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["za",46428],"trp":["ia",302035],"lp":["za","az","ai","aza","aia","zi","azi","zz","aiz","azz"],"rp":["ia","iz","iza","izz","iaz"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",193578],"trp":["is",104027],"tlw":["si",37389],"lp":["si","sis","sk","ssi"],"rp":["is","isi","ki","iss","isis","ik","iki","kis","ikis","kiss","isk","issi"]},"35":{"input":[1,2,6],"tlp":["asi",27185],"trp":["ias",18810],"tlw":["asi",11044],"trw":["kazz",77],"lp":["asi","sia","asia","zas","ais","sias","wi","asis","aisa","wis","wiss","azas","ak"],"rp":["ias","isa","izas","isas","ka","ika","issa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",15743],"trp":["ie",233722],"lp":["ei","eei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",37550],"trp":["iez",3157],"tlw":["xii",131],"trw":["ix",78],"lp":["ez","eza","xi","exi","eia","axi","xii","zie","azie","xix","xiii","ze"],"rp":["iez","ieza","ix"]},"38":{"input":[2,3,6],"tlp":["di",175458],"trp":["id",129921],"tlw":["seis",1304],"trw":["kid",113],"lp":["di","edi","sie","esi","die","sid","dis","did","side","eis","esid","edid","sei"],"rp":["id","ide","ies","ied","idi","iese","ise"]},"39":{"input":[1,2,3,6],"tlp":["dia",37584],"trp":["ida",49293],"tlw":["dia",8188],"trw":["idea",2311],"lp":["dia","adi","edia","dias","adie","dida","siad","zad","sida","xis","exis","esia","aid","diez"],"rp":["ida","idad","iad","idea","idas","ieda"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",133369],"trp":["it",63123],"tlw":["ti",1888],"trw":["iv",187],"lp":["ti","vi","viv","tiv","tit","vivi","vit","tti","tivi","vii","viii"],"rp":["it","iv","iti","ivi","itiv"]},"41":{"input":[1,4,6],"tlp":["va",51609],"trp":["ita",23108],"tlw":["va",3371],"lp":["va","fi","av","via","tia","avi","ati","avia","ava","fia","vita","tiva","afi","fav","ativ"],"rp":["ita","if","ifi","iva","iat"]},"42":{"input":[2,4,6],"tlp":["ci",238810],"trp":["ic",95632],"lp":["ci","sti","vis","tic","sit","cci","vist","cis","cti","sic","vic","visi","sist","cit","tici"],"rp":["ic","ist","ici","isti","isc"]},"43":{"input":[1,2,4,6],"tlp":["cia",69052],"trp":["ica",24474],"tlw":["casi",5393],"lp":["cia","aci","acia","fic","fici","casi","cias","tica","stia","taci","vas","sita","asti","saci","acti","acci"],"rp":["ica","ista","icia","ific"]},"44":{"input":[3,4,6],"tlp":["ri",190312],"trp":["ir",83670],"tlw":["ver",6228],"trw":["ir",2754],"lp":["ri","ve","ev","eri","ver","tie","vie","rti","rri","rit","rv","rie","tir","erv","tri","teri"],"rp":["ir","ier","iert","ire"]},"45":{"input":[1,3,4,6],"tlp":["ria",49114],"trp":["ira",16443],"tlw":["vez",12860],"trw":["ira",503],"lp":["ria","ari","eva","eria","vez","aria","raz","ave","var","zar","arti","rz","erz","rav","rza","fie"],"rp":["ira","iera","itar","iar"]},"46":{"input":[2,3,4,6],"tlp":["eci",43130],"trp":["ice",8339],"tlw":["decir",4827],"trw":["irse",431],"lp":["eci","cie","reci","dic","vid","deci","cid","rid","ris","cri","tid","dir","cier","cir","esti","rdi","dri","ves"],"rp":["ice","iste"]},"47":{"input":[1,2,3,4,6],"tlw":["vida",8817],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",187273],"trw":["ni",13944],"lp":[],"rp":["in","ni","hi","nin","ini","hin","hn","inn","nh","hnn"]},"49":{"input":[1,5,6],"tlp":["ah",14690],"trp":["ha",179890],"tlw":["ahi",2676],"trw":["ha",13606],"lp":["ah","ani","anz","anza","ahi","ania","zan","zq"],"rp":["ha","ian","ina","nia","nz","nza","han","hiz","iq","nian","iana","nina"]},"50":{"input":[2,5,6],"tlp":["sin",33228],"trp":["ij",25903],"tlw":["sin",21600],"lp":["sin","sini","sh","shi"],"rp":["ij","nsi","hij","ins","his","nis","ji","nsis","inis","insi","jin","nk","hisi","iji","inj","nins"]},"51":{"input":[1,2,5,6],"tlp":["siq",2408],"trp":["has",20672],"tlw":["ansia",145],"trw":["has",2554],"lp":["siq","ansi","sina","asin","anis","ash"],"rp":["has","ija","iaj","inas","hija","nzas","jai","nias","iaja","nsia","ijas","isaj","hans","isan"]},"52":{"input":[3,5,6],"tlp":["eni",26205],"trp":["ien",107409],"tlw":["eh",468],"trw":["he",7264],"lp":["eni","ein","enie","eh","enin","ehi","enei"],"rp":["ien","he","iene","ine","nie","nien","hie","inie","hen","inen","nei","nhe","nine"]},"53":{"input":[1,3,5,6],"tlp":["enia",16307],"trp":["hay",9090],"trw":["hay",7403],"lp":["enia","enz","enza","eina","enaz","eian","ezan","anie","eniz","aine"],"rp":["hay","haya","inea","ienz","hae","nez","hez","iena","yah","inez"]},"54":{"input":[2,3,5,6],"tlp":["dij",16709],"trp":["ndi",19946],"tlw":["dije",1690],"trw":["ines",410],"lp":["dij","endi","enid","sien","din","dien","dine","dije","ensi"],"rp":["ndi","iend","nid","ind","iden","ndid","indi","iej","ije","nsid","iens"]},"55":{"input":[1,2,3,5,6],"tlw":["ansiedad",269],"trw":["nadie",5526],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",119303],"trp":["ib",32479],"trw":["ibn",155],"lp":["bi","tin","vin","bit","th","tint"],"rp":["ib","int","nti","nv","ibi","nvi","ntin","inti","inv","nit","invi","niv","init","nvit"]},"57":{"input":[1,4,5,6],"tlp":["abi",63989],"trp":["hab",72658],"tlw":["fin",4343],"trw":["habia",39290],"lp":["abi","bia","abia","fin","bian","van","anti","fina","vant","vab","vaba","abit","zab"],"rp":["hab","habi","iba","inf","nfi","itan","ntia"]},"58":{"input":[2,4,5,6],"tlp":["ch",74839],"trp":["nci",46192],"lp":["ch","cin","sib","chi","stin","cinc","cib","chic","sint","cibi"],"rp":["nci","inc","nic","hic","ich","inci","inst","hist","nch","hici"]},"59":{"input":[1,2,4,5,6],"tlw":["sabia",3858],"trw":["hasta",13934],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bie",35373],"trp":["ient",36355],"tlw":["bien",10956],"lp":["bie","bien","ven","teni","bri","enti","tien","bier","rin","rib","ebi","rien","vien","vent"],"rp":["ient","inte","her","nve","ibr","nri"]},"61":{"input":[1,3,4,5,6],"tlw":["tenia",10650],"trw":["haber",3961],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tienes",1622],"trw":["interes",873],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["cabeza",5567],"trw":["hacer",6941],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",993],"trw":["o",22465],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",736],"trp":["oa",1039],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",149815],"trp":["os",465150],"tlw":["sos",79],"trw":["os",2177],"lp":["so","sos","sso"],"rp":["os","oso","osos","oss","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["aso",13706],"trp":["osa",17222],"lp":["aso","asos","aos","saso","wo"],"rp":["osa","osas","ow","oas"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",16208],"trp":["oe",2284],"trw":["-",992],"lp":["eo"],"rp":["oe"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",492],"trp":["ox",1396],"lp":["xo","exo"],"rp":["ox"]},"70":{"input":[2,3,7],"tlp":["do",328036],"trp":["od",79897],"tlw":["dos",13303],"lp":["do","dos","eso","edo","esos","dedo","seo","eseo","dose","edos","deo","eos","seos"],"rp":["od","odo","odos","ode","ose","oses","oes"]},"71":{"input":[1,2,3,7],"tlp":["ado",89938],"trp":["oda",15354],"tlw":["dado",2055],"lp":["ado","ados","dado","sado","eado","aseo","sexo","adeo","dosa","dox","adox"],"rp":["oda","odas","odea","osad","owe"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",261028],"trp":["ot",48115],"tlw":["g",93],"lp":["to","go","tot","got","goo","goog","tog","gt","gto","gg","goto","tto"],"rp":["ot","og","oto","oog","otog","ogo","ogg"]},"73":{"input":[1,4,7],"tlp":["ga",53335],"trp":["of",10649],"tlw":["foto",316],"trw":["of",213],"lp":["ga","ag","fo","ato","ago","aga","tota","fot","foto","gat","tag","afo","gota","gato","tago","gaf"],"rp":["of","ota","oga","ofo"]},"74":{"input":[2,4,7],"tlp":["co",351806],"trp":["oc",68424],"tlw":["toco",325],"lp":["co","sto","tos","cos","cto","sco","gos","stos","sot","cost","coc","cog","soc","sg"],"rp":["oc","oco","ost","osot","osc","oct"]},"75":{"input":[1,2,4,7],"tlp":["cosa",9340],"trp":["oca",11672],"tlw":["cosas",5443],"lp":["cosa","aco","caso","gas","acto","atos","gac","sof","toca","saco","asto","cato","sag","asco","acos"],"rp":["oca","ocas","osta","otas","osof"]},"76":{"input":[3,4,7],"tlp":["ro",246584],"trp":["or",270405],"tlw":["error",581],"trw":["otro",8826],"lp":["ro","ero","eg","tro","gr","ge","rg","tor","ego","rto","reg","erto","rro","rgo"],"rp":["or","otr","otro","ort","ore","orr"]},"77":{"input":[1,3,4,7],"tlp":["gra",22435],"trp":["ora",27567],"tlw":["rato",1491],"trw":["otra",7718],"lp":["gra","aro","gar","ega","arg","for","argo","rga","egar","atro","arga","rato","rof","agr","age","arro","arto"],"rp":["ora","otra","orta"]},"78":{"input":[2,3,4,7],"tlp":["tod",44574],"trp":["ord",10842],"tlw":["todo",18934],"trw":["otros",4846],"lp":["tod","ros","todo","esto","seg","cor","tros","dor","stro","rso","rdo","erso","ecto","eco","eros","corr","reco"],"rp":["ord","ores","oce"]},"79":{"input":[1,2,3,4,7],"tlw":["toda",5491],"trw":["otras",3010],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",376567],"trw":["no",116565],"lp":[],"rp":["on","no","un","nu","uno","ono","nun","uo","nuo","non","ou","onu","onun","uu","oun","nou","nnu","nuno","onn"]},"81":{"input":[1,5,7],"tlp":["qu",432873],"trp":["una",93404],"tlw":["aun",5685],"trw":["una",79449],"lp":["qu","ano","aqu","au","aun","aunq","anu","anqu"],"rp":["una","ua","uan","ona","nqu","unq","unqu","nua","oq","oqu","uq","uqu"]},"82":{"input":[2,5,7],"tlp":["su",160644],"trp":["us",78931],"tlw":["su",81749],"trw":["nos",11959],"lp":["su","sus","son","sun"],"rp":["us","jo","nos","ju","jos","ons","oj","uj","unos","ojo","uso","ojos","jun","nso","noso","jus"]},"83":{"input":[1,2,5,7],"tlp":["anos",18802],"trp":["unas",5230],"tlw":["anos",8719],"trw":["unas",3324],"lp":["anos","ajo","sona","aus","asu","sua","ausa","squ","asun"],"rp":["unas","usa","jua","juan","onas","oja","uas","onaj","onsa","osq","osqu"]},"84":{"input":[3,5,7],"tlp":["eno",33962],"trp":["ue",565691],"trw":["yo",19966],"lp":["eno","eu","enu","eon","eun","eyo"],"rp":["ue","yo","uen","one","uy","nue","oy","ueno","uyo","yu","oye","une","oyo","yun"]},"85":{"input":[1,3,5,7],"tlp":["que",383802],"trp":["nque",7839],"tlw":["que",312514],"lp":["que","aque","ayo","equ","eque","quen","ayu","anue","ayun","aneo","xu","exu","xua","exua"],"rp":["nque","uena","uya","oya","uque","oque"]},"86":{"input":[2,3,5,7],"tlp":["du",23000],"trp":["ndo",74158],"tlw":["donde",10101],"trw":["jose",1204],"lp":["du","don","ejo","endo","dond","enos","seno","sue"],"rp":["ndo","ues","ud","ond","ued","ones","onde","und","uje","nues","undo","uede"]},"87":{"input":[1,2,3,5,7],"tlw":["quedo",2301],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["gu",90299],"trp":["nto",80019],"tlw":["tu",10629],"trw":["noto",316],"lp":["gu","tu","gun","bo","bu","ton","gunt"],"rp":["nto","ob","ont","ng","unt","ub","ut","unto","nton","ug","ngu","uto","ngo"]},"89":{"input":[1,4,5,7],"tlp":["fu",44220],"trp":["uga",7270],"tlw":["tanto",6066],"trw":["nota",486],"lp":["fu","anto","gua","gan","guna","tua","agu","ang","agua","fun","abo","atu","fon"],"rp":["uga","unta","uant","onta","onf","uta","oba"]},"90":{"input":[2,4,5,7],"tlp":["con",167856],"trp":["uc",36702],"tlw":["con",92933],"trw":["junto",3143],"lp":["con","cu","cont","sob","cons","scu","cono","stu","tonc"],"rp":["uc","noc","ust","nco","onc","ntos","unc","ocu","onoc","ncon","nunc"]},"91":{"input":[1,2,4,5,7],"tlw":["bajo",4396],"trw":["nunca",6044],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ento",40726],"trp":["ur",54620],"tlw":["gente",4061],"trw":["negro",1571],"lp":["ento","ron","egu","ru","gen","egun","eron","enor","tur","bue","buen"],"rp":["ur","uer","obr","obre","nor","uert","ontr","uro","uent"]},"93":{"input":[1,3,4,5,7],"tlw":["fue",13323],"trw":["obra",1151],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["sobre",15089],"trw":["usted",6039],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["cuando",21007],"trw":["nuestra",3160],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["lo",300357],"trw":["lo",69406],"lp":[],"rp":["lo","io","ll","li","ol","il","llo","olo","ill","ili","oli","lli","illo","lio","oi","ilo","oll","iol","ollo","ilio"]},"97":{"input":[1,6,7],"tlp":["al",268424],"trp":["la",523649],"tlw":["al",55586],"trw":["la",292004],"lp":["al","zo","all","ali","ala","azo","alo","alli","alla","allo"],"rp":["la","lla","lia","illa","ial","oz","ola","izo","ilia","ila"]},"98":{"input":[2,6,7],"tlp":["sol",26132],"trp":["los",142568],"tlw":["solo",13145],"trw":["los",122255],"lp":["sol","sio","solo","sil","sill","sl","soli"],"rp":["los","ios","llos","osi","iso","isio","ls","ioso","lis","ols","lso","loso","isl"]},"99":{"input":[1,2,6,7],"tlp":["sal",19326],"trp":["las",90934],"tlw":["salio",1704],"trw":["las",76432],"lp":["sal","sali","zos","asio","sola","sala","azos","sla","alas","salo","asil","als","alis"],"rp":["las","llas","iosa","lsa","olas","isla","olsa"]},"100":{"input":[3,6,7],"tlp":["el",426668],"trp":["le",198463],"tlw":["el",234850],"trw":["le",48083],"lp":["el","ell","ello","elo","ele","eli","elle","elli"],"rp":["le","lle","ole","ile","iel","lie","ielo","leo","lee","iole","lei","ille"]},"101":{"input":[1,3,6,7],"tlp":["ella",27778],"trp":["lez",2228],"tlw":["ella",14508],"trw":["leia",238],"lp":["ella","ale","ela","alle","eal","eali","ezo","alie","alez","eliz","elia","ael","xio","exio"],"rp":["lez","leza","lea","iale","oxi","llez"]},"102":{"input":[2,3,6,7],"tlp":["del",76844],"trp":["ido",57544],"tlw":["del",70196],"trw":["les",7650],"lp":["del","dio","dios","dido","sido","edio","esio","dol","sile","eles"],"rp":["ido","les","odi","lid","ld","idos","ilid","oles","idio","iles"]},"103":{"input":[1,2,3,6,7],"tlw":["ellas",1912],"trw":["lado",4590],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",45659],"trp":["ig",52962],"tlw":["volvio",2823],"trw":["oigo",95],"lp":["vo","gi","vio","vol","tio","volv","gl"],"rp":["ig","lt","lg","lv","ito","ov","igo","olv","lgo","lvi","olvi","lto","lig"]},"105":{"input":[1,4,6,7],"tlp":["alg",26073],"trp":["lta",13054],"tlw":["algo",9338],"trw":["italia",381],"lp":["alg","tal","alt","algo","fl","alta","val","agi","voz","fal","alto","tall","avo","alv","gia"],"rp":["lta","iga","lat","ofi","lav"]},"106":{"input":[2,4,6,7],"tlp":["cio",75669],"trp":["ico",18875],"tlw":["visto",3153],"trw":["loco",681],"lp":["cio","cl","sig","col","ccio","cil","vos","cios","colo"],"rp":["ico","lic","icio","oci","isto","lc","loc","icos","lici","lico","igos"]},"107":{"input":[1,2,4,6,7],"tlw":["facil",1160],"trw":["oficial",985],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rio",36719],"trp":["leg",18029],"tlw":["rio",1831],"trw":["llego",2460],"lp":["rio","rl","erio","evo","gri","tori","tel","erl","rlo","rig"],"rp":["leg","ori","lev","lleg","iero","lor","llev","ove","ler","iro"]},"109":{"input":[1,3,4,6,7],"tlw":["favor",1408],"trw":["llegar",2630],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["cierto",3067],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["todavia",3269],"trw":["llegado",1772],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",77353],"trw":["nino",1684],"lp":[],"rp":["ui","ion","ho","lu","ul","ino","hu","uni","oni","nio","lin","lon","ulo","iu","inu","olu","onio","uin","nino","uil"]},"113":{"input":[1,5,6,7],"tlp":["qui",49071],"trp":["lan",19182],"tlw":["aqui",6351],"trw":["hizo",5133],"lp":["qui","aho","aqui","zon","azon","alq","alqu"],"rp":["lan","ual","nal","uz","iona","hizo","ula","iqu","lq","lqu","lqui","inal","ualq"]},"114":{"input":[2,5,6,7],"tlp":["sion",15408],"trp":["ijo",20150],"tlw":["sino",5212],"trw":["hijo",3480],"lp":["sion","sino","sul","solu"],"rp":["ijo","hos","hijo","usi","uis","lus","inos","onsi","luso","ijos","usio","ulos","nsio","luis","jul","juli"]},"115":{"input":[1,2,5,6,7],"tlw":["quiso",1107],"trw":["julia",613],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elen",1805],"trp":["uel",35859],"trw":["hoy",2254],"lp":["elen","euni"],"rp":["uel","uie","uien","len","uell","ione","lue","uelo","llen","ilen","lien","hoy","ley","hue","lone","line","leno","nel"]},"117":{"input":[1,3,5,6,7],"tlw":["quien",8560],"trw":["linea",925],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["dijo",13944],"trw":["lejos",1983],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["aquellos",2619],"trw":["juez",487],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",44167],"trp":["lgu",15861],"tlw":["tuvo",2452],"trw":["ningun",2097],"lp":["bl","gui","tuv","bio","vu"],"rp":["lgu","ult","igu","lgun","uv","ubi","itu","ing","ibl","hub","onv","lib","hubi","ulti","obl"]},"121":{"input":[1,4,5,6,7],"tlw":["alguna",3442],"trw":["ninguna",2180],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cinco",2085],"trw":["incluso",2762],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["cual",3860],"trw":["habitacion",1620],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["voy",2278],"trw":["luego",6071],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["ahora",9282],"trw":["lugar",4548],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["dicho",3458],"trw":["noche",5939],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["ciudad",3866],"trw":["historia",2737],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",273],"trw":["p",308],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",34091],"trp":["pa",189321],"trw":["papa",1263],"lp":["ap","apa"],"rp":["pa","pap","papa","ppa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",58765],"trp":["ps",612],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",11453],"trp":["pas",22840],"trw":["pasa",1406],"lp":["spa","asp","sap","sapa","apas","spas"],"rp":["pas","pasa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",17553],"trp":["pe",152316],"tlw":["ep",67],"trw":["pepe",388],"lp":["ep","epe","epp"],"rp":["pe","pep","pepe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["xp",7112],"trp":["pape",1900],"trw":["pa'",77],"lp":["xp","exp","ape","epa","xpe","expe","a'","xpa","expa"],"rp":["pape","pea","pa'","pepa"]},"134":{"input":[2,3,8],"tlp":["esp",48661],"trp":["pes",7009],"trw":["pese",726],"lp":["esp","spe","espe","desp","sep","dep","sesp","depe","sped","spes"],"rp":["pes","ped","pese","pede"]},"135":{"input":[1,2,3,8],"tlp":["espa",10359],"trp":["pad",10546],"tlw":["espada",1195],"trw":["pase",469],"lp":["espa","esap","aspe","spad","sepa","xped","apad","epas","depa","spea"],"rp":["pad","pesa","pada","pase","peda","pade","pead"]},"136":{"input":[4,8],"trp":["pt",3066],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",602],"trp":["pat",4693],"tlw":["tapa",136],"trw":["pata",128],"lp":["tap","apat","tapa","apt","apta"],"rp":["pat","pta","pata"]},"138":{"input":[2,4,8],"trp":["pc",1379],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",8573],"trp":["pac",6048],"tlw":["capa",378],"trw":["patas",294],"lp":["cap","capa","spac","apac","scap","capt"],"rp":["pac","past","pact"]},"140":{"input":[3,4,8],"tlp":["rp",9074],"trp":["pr",105517],"trw":["peter",135],"lp":["rp","rep","erp","rpr","rpre","ept","repe","epr","epre","repr","rpe"],"rp":["pr","per","pre","pet","pert","pret","prep","perr","pete"]},"141":{"input":[1,3,4,8],"tlp":["apar",7464],"trp":["par",95147],"tlw":["aparte",525],"trw":["para",50839],"lp":["apar","apr","epar","rap","apre","repa","xper","xpr","expr","xpre","epta"],"rp":["par","para","pare","part","pera","pra","perf","patr","pref"]},"142":{"input":[2,3,4,8],"tlp":["resp",9516],"trp":["pres",14702],"tlw":["espere",155],"trw":["perder",971],"lp":["resp","sper","spec","cep","cept","spet","epc","cepc","spr","espr","spre"],"rp":["pres","pec","pers","perd","prec","pect","pedr","perc","pece"]},"143":{"input":[1,2,3,4,8],"tlw":["espera",1024],"trw":["padre",6018],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",72228],"trw":["m",171],"lp":[],"rp":["mp","nm","mn","mpp"]},"145":{"input":[1,5,8],"tlp":["am",111190],"trp":["ma",217996],"tlw":["ama",379],"trw":["manana",3399],"lp":["am","ama","amp","aman","ampa"],"rp":["ma","man","pan","mpa","mana","mpan","pana","mam","nam","mama","mna","maq","pam","mpam","nap"]},"146":{"input":[2,5,8],"tlp":["sm",16472],"trp":["nsp",1139],"lp":["sm"],"rp":["nsp","mps","nsm"]},"147":{"input":[1,2,5,8],"tlp":["span",4757],"trp":["mas",62981],"tlw":["sam",202],"trw":["mas",42217],"lp":["span","sma","sam","amas","asm","smas","asma","asam","ansp"],"rp":["mas","jam","jama","nsam","paj","paja","masa","maj","mpas","mnas","mans"]},"148":{"input":[3,5,8],"tlp":["em",88958],"trp":["me",181753],"trw":["me",47087],"lp":["em","emp","eme","emen","empe","enem","epen","emn"],"rp":["me","men","pen","mpe","nem","nme","mem","mene","nmen","mpen","pene","pey"]},"149":{"input":[1,3,5,8],"tlp":["ame",24574],"trp":["mane",7021],"tlw":["examen",171],"trw":["pena",1009],"lp":["ame","amen","ema","eman","apen","enam","eam","eame","xam"],"rp":["mane","may","peq","pena","pane","mae","mena","max","name","mame","mex"]},"150":{"input":[2,3,5,8],"tlp":["dem",13584],"trp":["med",13820],"tlw":["depende",152],"trw":["meses",1727],"lp":["dem","sem","ejem","dm","seme","emej","spej","emed"],"rp":["med","pens","mej","mes","mens","jem","jemp","mese","nmed","pend","mend","pej"]},"151":{"input":[1,2,3,5,8],"tlw":["ademas",3394],"trw":["mesa",2367],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",622],"trp":["mb",53887],"lp":["tm","bm"],"rp":["mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",22247],"trp":["mba",6413],"tlw":["fama",385],"trw":["mata",229],"lp":["tam","amb","tamb","fam","tamp","amab","bam","atam","abam","amba"],"rp":["mba","mat","mant","mab","maba","mata","pant","pab","ntam","mbat"],"special":"numsym"},"154":{"input":[2,4,5,8],"lp":[],"rp":[]},"155":{"input":[1,2,4,5,8],"tlw":["cama",1722],"trw":["pasaba",1017],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",44145],"trp":["ment",47484],"tlw":["repente",849],"trw":["mente",1213],"lp":["rm","erm","empr","tem","rme","emb","rem","term","temp"],"rp":["ment","mbr","mbre","mer","mpr","mpre","pren","met","perm","ntem","mper"]},"157":{"input":[1,3,4,5,8],"tlw":["tema",888],"trw":["manera",3467],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["empece",256],"trw":["presente",701],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["armas",1351],"trw":["madre",4699],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",45492],"lp":[],"rp":["pi","ip","ipi","pip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",5901],"trp":["pia",3578],"trw":["paz",1186],"lp":["api","apaz","zap","zapa","apia","apiz"],"rp":["pia","paz","pai","ipa","piz","pipa","ppai"]},"162":{"input":[2,6,8],"tlp":["spi",5706],"trp":["isp",4720],"lp":["spi"],"rp":["isp","pis","psi","ispi"]},"163":{"input":[1,2,6,8],"tlp":["spia",239],"trp":["pais",2619],"trw":["pais",1820],"lp":["spia","aspi"],"rp":["pais","pasi","ispa","pias","pisa","psia","ipas"]},"164":{"input":[3,6,8],"tlp":["epi",1192],"trp":["pie",14289],"trw":["pie",2140],"lp":["epi"],"rp":["pie","ipe","ipie","pei"]},"165":{"input":[1,3,6,8],"trp":["pez",4584],"trw":["pieza",377],"lp":[],"rp":["pez","peza","piez"]},"166":{"input":[2,3,6,8],"tlp":["espi",3579],"trp":["pid",4842],"trw":["pies",1461],"lp":["espi","disp","dip","epis","spie","spid"],"rp":["pid","pedi","pied","pies","pidi","pide","pesi","ispe","ipes","k'","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["despedida",172],"trw":["paises",358],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2633],"trp":["pit",4928],"lp":["tip","tipi"],"rp":["pit","piti","pti","ipt","ipit"]},"169":{"input":[1,4,6,8],"tlp":["apit",3167],"trp":["pita",2814],"tlw":["tapia",110],"lp":["apit","tapi","vap"],"rp":["pita","pati","pav"]},"170":{"input":[2,4,6,8],"tlp":["cip",5255],"trp":["pci",1379],"lp":["cip","cipi","spit","scip","visp"],"rp":["pci","pist","icip","pic","ipc","ipci","ipic","psic","pisc","ptic"]},"171":{"input":[1,2,4,6,8],"tlw":["capaz",1523],"trw":["pista",305],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["repi",892],"trp":["pri",18110],"tlw":["repetir",243],"trw":["pierre",163],"lp":["repi","epit","epti","rip","rpi","trip","epri","erpi"],"rp":["pri","peri","pir","pier","piri","peti","priv","prev","ptie","piet","perv","pite"]},"173":{"input":[1,3,4,6,8],"tlw":["repetia",185],"trw":["partir",944],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["especie",1047],"trw":["pedir",513],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["capacidad",547],"trw":["parecia",4070],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",147074],"trw":["mi",29966],"lp":[],"rp":["mi","im","min","imp","imi","nim","inm","pin","mpi","mini","nmi","impi","pini","imin","inim","hip","him","imn","ph","phi"]},"177":{"input":[1,5,6,8],"tlp":["ami",19873],"trp":["ima",14150],"tlw":["anima",95],"trw":["mia",816],"lp":["ami","amin","anim","aim"],"rp":["ima","mina","iam","mia","mani","nima","pani","impa","ham","mpia","niam","mai","nami","mian","inam","imam"]},"178":{"input":[2,5,6,8],"tlp":["sim",4131],"trp":["mis",25550],"trw":["mis",5514],"lp":["sim","simp","simi","spin","smi","smis","sism"],"rp":["mis","ism","mism","misi","isim","insp","nspi","jim","nism","imis","hisp","ismi","jimi"]},"179":{"input":[1,2,5,6,8],"tlw":["animas",76],"trw":["misma",3576],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",4450],"trp":["mie",21370],"lp":["emi","empi","emin"],"rp":["mie","iem","iemp","mien","ime","imie","hem","inme","imen","pien","nemi","impe","miem","mpie","meni","heme","mine"]},"181":{"input":[1,3,5,6,8],"tlw":["empieza",396],"trw":["maxima",192],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["dime",307],"trw":["impide",99],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["demasiadas",229],"trw":["media",1745],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",9690],"trp":["mbi",15416],"lp":["tim","vim","timi","vimi","timb"],"rp":["mbi","mit","miti","ntim","pint","imit","imb","itm","pib","mbit","itim","ivim","mbin","mib","ptib"]},"185":{"input":[1,4,5,6,8],"trw":["pinta",126],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",64],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["capitan",1308],"trw":["incapaz",452],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["verme",274],"trw":["primer",2357],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["tambien",10237],"trw":["primera",3631],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["siempre",8021],"trw":["presidente",1129],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["encima",2175],"trw":["mientras",7333],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",202728],"trw":["pop",64],"lp":[],"rp":["po","op","opo","pop","ppo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",2962],"trp":["opa",4287],"trw":["popa",199],"lp":["apo"],"rp":["opa","popa"]},"194":{"input":[2,7,8],"tlp":["spo",8366],"trp":["pos",15078],"trw":["pos",130],"lp":["spo","spos","sop","sosp","sopo"],"rp":["pos","osp","opos","poso","pso","ops"]},"195":{"input":[1,2,7,8],"tlp":["apos",275],"trp":["paso",5668],"tlw":["sopa",128],"trw":["paso",4414],"lp":["apos","sopa"],"rp":["paso","opas","posa","pow"]},"196":{"input":[3,7,8],"tlp":["epo",1772],"trp":["ope",2726],"lp":["epo","eppo"],"rp":["ope","peo","poe","opeo","pope"]},"197":{"input":[1,3,7,8],"tlp":["xpo",209],"trp":["opea",131],"lp":["xpo","expo"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["espo",6435],"trp":["pod",19770],"tlw":["esposo",391],"trw":["peso",623],"lp":["espo","epos","depo","dop","speo","dope"],"rp":["pod","pode","pose","ospe","peso","poes","psoe","peos","podo"]},"199":{"input":[1,2,3,7,8],"tlw":["esposa",926],"trw":["pasado",2726],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",143],"trp":["pto",1342],"trw":["opto",99],"lp":["top"],"rp":["pto","pot","opt","opto"]},"201":{"input":[1,4,7,8],"tlp":["apag",394],"trp":["pag",2930],"tlw":["apago",137],"trw":["pago",329],"lp":["apag","tapo"],"rp":["pag","paga","pago","pato","opag","opta"]},"202":{"input":[2,4,7,8],"tlp":["cop",1471],"trp":["poc",14176],"trw":["poco",8226],"lp":["cop","scop","copo","tops"],"rp":["poc","poco","post","opc","ptos"]},"203":{"input":[1,2,4,7,8],"tlw":["copa",496],"trw":["pocas",752],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",11433],"trp":["por",105551],"tlw":["torpe",134],"trw":["por",82819],"lp":["rop","rpo","erpo","trop","ropo","epto"],"rp":["por","pero","pro","preg","prop","port","orp","orpr","preo","prot","opor","peor","oper","peg"]},"205":{"input":[1,3,4,7,8],"tlw":["ropa",972],"trw":["pagar",556],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["espero",808],"trw":["poder",3232],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["aspecto",1030],"trw":["profesor",509],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",151250],"trw":["puno",277],"lp":[],"rp":["mo","om","pu","mu","omo","mpo","um","omp","up","pon","mon","mun","mom","pun","upo","nom","omu","omun","num","umo"]},"209":{"input":[1,5,7,8],"tlp":["amo",19266],"trp":["mano",16278],"tlw":["amo",786],"trw":["mano",5872],"lp":["amo","ampo","apu","amon","aum"],"rp":["mano","oma","ompa","uma","pano","upa","uman","oman","manu","pau","mona","maqu","namo","umna","uap"]},"210":{"input":[2,5,7,8],"tlp":["spu",13016],"trp":["mos",30677],"tlw":["somos",935],"trw":["puso",2090],"lp":["spu","smo","sup","spon","som","supo","supu","sum","somo","smos"],"rp":["mos","muj","pus","puso","mpos","mus","moso","omos","pons","usp"]},"211":{"input":[1,2,5,7,8],"tlw":["suma",280],"trw":["manos",4296],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emo",15453],"trp":["pue",46340],"tlw":["empeno",236],"trw":["muy",14472],"lp":["emo","empo","emon","epu"],"rp":["pue","ome","muy","omen","mue","meno","mome","ume","pone","upe","umen","nume","nemo","upue","poy","memo"]},"213":{"input":[1,3,5,7,8],"tlw":["apoyo",685],"trw":["pequeno",1827],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["despues",9579],"trw":["menos",6628],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["amado",313],"trw":["mando",1140],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",6546],"trp":["omb",23704],"tlw":["tomo",1241],"trw":["punto",3190],"lp":["tom","tum","tumb","tomo","tup","bom","tmo"],"rp":["omb","punt","nomb","umb","pub","mont","pob","mbo","mot","pong","put","moto","umbo"]},"217":{"input":[1,4,5,7,8],"tlw":["toma",528],"trw":["punta",577],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["como",50874],"trw":["puntos",421],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["tampoco",2231],"trw":["montanas",596],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["grupo",2081],"trw":["momento",6711],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",3330],"trw":["porque",13945],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["cuerpo",3541],"trw":["mujer",5923],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["respuesta",1354],"trw":["personas",2316],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",26745],"trw":["pollo",147],"lp":[],"rp":["pl","opi","pli","pio","pol","poli","lp","ipo","olp","plo","opio","ipio","pil","lip","lop","plio","ipl","pill","ilip","lipo"]},"225":{"input":[1,6,7,8],"tlp":["apl",391],"trp":["pal",11994],"tlw":["apolo",118],"trw":["plaza",1014],"lp":["apl","apol","apil","apli","alop","apla"],"rp":["pal","pla","pala","opia","ipal","lpa","plaz","palo","pali","plia","pila","poz","pozo","lap"]},"226":{"input":[2,6,7,8],"tlp":["spl",427],"trp":["posi",7976],"tlw":["soplo",116],"trw":["piso",796],"lp":["spl","sopl","spio"],"rp":["posi","ispo","pios","piso","ospi","ipos","plos","lpis","opsi"]},"227":{"input":[1,2,6,7,8],"trw":["pasillo",584],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epl",1170],"trp":["pel",8010],"trw":["piel",1315],"lp":["epl","epli","elip","eple"],"rp":["pel","ple","lpe","olpe","peli","pelo","piel","pele","opie","pell","lipe","lope","pole","lpeo","pleo","opel"]},"229":{"input":[1,3,6,7,8],"trw":["papel",1409],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["episodio",202],"trw":["podido",1018],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["espalda",1291],"trw":["podia",6502],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["golp",2796],"trp":["polv",730],"tlw":["tipo",2063],"trw":["polvo",512],"lp":["golp","tipo","gip","gipt","tipl"],"rp":["polv","pito","ipto","ipot","ltip","plit"]},"233":{"input":[1,4,6,7,8],"tlw":["filipo",307],"trw":["patio",737],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["tipos",271],"trw":["politicos",569],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capital",627],"trw":["politica",1189],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["golpe",1615],"trw":["propio",2058],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["felipe",457],"trw":["propia",1864],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["replico",777],"trw":["perdido",1215],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["especial",896],"trw":["podria",2740],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["hom",15529],"trw":["mil",2026],"lp":[],"rp":["hom","mil","lm","mpl","imo","omi","mili","impo","mino","hum","lim","moni","ompl","mio","mpli","lum","poni","pul","mplo","impl"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alma",1817],"trw":["mal",3264],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"trw":["mismo",8546],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["suponia",297],"trw":["humanos",580],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["empleo",215],"trw":["pleno",336],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["empezo",1641],"trw":["manuel",722],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["ejemplo",1285],"trw":["medio",3051],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["demasiado",2974],"trw":["podian",1303],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["ultimo",2103],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["amigo",2622],"trw":["ultima",1629],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["conmigo",1217],"trw":["mucho",7468],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["camino",3366],"trw":["muchas",2632],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["tiempo",9492],"trw":["hombre",8282],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["finalmente",1135],"trw":["hermano",2152],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["respondio",2029],"trw":["hombres",5292],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["comenzo",1401],"trw":["palabras",3233],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/fn-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/fn-keymap.json index 24e357aa16..04e421cf2a 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/fn-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/fn-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",258251],"tlw":["a",455],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",66466],"tlw":["s",731],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",177484],"tlw":["saa",2123],"lp":["sa","as","ssa","saa","ass","assa","aas","ssaa","aass","sas","sass","asa","saas","aaas","wa","ssas","aasa","asas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",59327],"tlw":["e",519],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",19583],"tlw":["x",52],"lp":["ea","ae","eaa","ex","ax","aae"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["se",143967],"tlw":["se",27105],"lp":["se","es","de","ess","ed","ses","see","des","ede","dess","edes","ees","sess","eess","ese","eese","esee","sse","ssee","eed"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",33895],"tlw":["saada",1657],"lp":["da","essa","ad","ase","eda","aad","ada","eas","aada","ade","saad","sea","esa","aase","ades","seaa","das","daa","eass","asee"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",182756],"tlw":["t",129],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",443960],"tlw":["tata",2224],"lp":["ta","at","tta","taa","att","ttaa","aat","ata","atta","aatt","tat","aata","tata","ataa","fa","ff","ft","af","tatt","aff"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",131877],"tlw":["st",145],"lp":["st","ts","sc","tc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",78874],"tlw":["taas",3738],"lp":["sta","ast","asta","staa","tas","ats","aast","taas","saat","tass","tsa","stas","sat","tast","satt","ac","stat","sata","tsas","sast"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["et",120310],"tlw":["te",3216],"lp":["et","te","ett","er","tte","re","rt","rr","tee","err","eet","ette","ert","tet","ete","tett","ter","rte","ere","etee"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",56709],"tlw":["etta",32564],"lp":["ar","ra","etta","tar","rra","era","erra","raa","eta","rta","aar","art","ara","ate","are","atte","rat","etaa","eraa","erta"],"rp":[]},"14":{"input":[2,3,4],"tlp":["est",21714],"tlw":["ester",156],"lp":["est","tse","ste","set","sest","rs","det","ets","res","dest","ress","tsee","este","sett","dett","rd","rest","ster","tses","der"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["esta",12314],"tlw":["eras",1057],"lp":["esta","ras","ars","eras","atse","dat","rast","aste","east","aras","tsea","etsa","rass","aset","sar","seta","ard","edat","sef","datt"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",48589],"trw":["n",1456],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",427381],"trp":["na",121169],"tlw":["anna",1340],"trw":["na",532],"lp":["an","aan","ana","ann","anna","anaa","aana","anan","aann","anq"],"rp":["na","nna","naa","naan","nan","nnan","nnaa","nq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",381],"trp":["ns",47964],"trw":["j",621],"lp":["sn"],"rp":["ns","nss","nj"]},"19":{"input":[1,2,5],"tlp":["san",29730],"trp":["ja",188698],"tlw":["ajan",1077],"trw":["ja",138817],"lp":["san","ans","ansa","aj","saan","aja","anss","sana","aans","ajan","ssan"],"rp":["ja","nsa","jaa","jan","nssa","jas","jaan","nas","nsan"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",297363],"trp":["ne",120612],"tlw":["en",8035],"trw":["ne",8601],"lp":["en","een","enn","ene","enne","enen","ey","enee"],"rp":["ne","nen","ny","nne","yy","nee","yn","nnen","yny","neen","nny","yyn"]},"21":{"input":[1,3,5],"tlp":["ane",47273],"trp":["nay",5887],"tlw":["enaa",3363],"trw":["naen",437],"lp":["ane","anen","ay","ena","any","anne","enaa","aen","anee","aane","enna","ean","ayn","eaan","eena","ayny"],"rp":["nay","ya","nae","ynna"]},"22":{"input":[2,3,5],"tlp":["sen",43375],"trp":["ys",15306],"tlw":["sen",18097],"lp":["sen","ens","sy","den","seen","eens","sens","syn","syd","syy"],"rp":["ys","je","yd","ysy","nes","jen","yde","yys","nd","nnes"]},"23":{"input":[1,2,3,5],"tlp":["dan",14539],"trp":["yda",4761],"tlw":["sydan",458],"trw":["jaada",316],"lp":["dan","ensa","syda","anes","sena","ayd","asen","ayde","edan","daan","sean","and","ande","ays","ayda","assy","esan"],"rp":["yda","ydan","ysa"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",82],"trp":["nt",46733],"tlw":["b",145],"lp":["bb","tn"],"rp":["nt","ntt","nb"]},"25":{"input":[1,4,5],"tlp":["taan",23917],"trp":["nta",24277],"tlw":["antaa",1443],"lp":["taan","ant","tan","anta","ttan","tann","aant","tana","ba","antt","anat","atan","bat","ab"],"rp":["nta","ntaa","nat","ntan","nnat","natt"]},"26":{"input":[2,4,5],"tlp":["bj",117],"trp":["nc",817],"lp":["bj","sb","sbj"],"rp":["nc","nst"]},"27":{"input":[1,2,4,5],"tlp":["ajat",5379],"trp":["jat",10551],"tlw":["sanat",714],"trw":["jattaa",503],"lp":["ajat","stan","taj","taja","tans","ttaj","sant","tsan","anc","cq","acq","staj"],"rp":["jat","jatt","jast","nast","jac","jacq","jata","ntas"]},"28":{"input":[3,4,5],"tlp":["ten",35400],"trp":["yt",52934],"tlw":["eteen",754],"trw":["nyt",14068],"lp":["ten","ty","tten","ent","teen","ren","tyy","tyt","tytt"],"rp":["yt","nyt","ytt","net","nte","yty","neet","ynyt","nty","nett","nnet"]},"29":{"input":[1,3,4,5],"tlp":["ayt",12824],"trp":["nayt",5724],"tlw":["taytyy",2000],"trw":["naet",1065],"lp":["ayt","ran","tay","aytt","tayt","anyt","anet","tany","rran","ayty","enta","raan","taen","aten","tya","aren","rann"],"rp":["nayt","ytta","yta"]},"30":{"input":[2,3,4,5],"tlp":["rj",9328],"trp":["yst",5033],"tlw":["syntynyt",298],"lp":["rj","sten","sty","tys","rje","tens","tsen","sent","tyst","esty","synt","etys","syt","rjee","syyt","stys"],"rp":["yst","nest","jet","jest"]},"31":{"input":[1,2,3,4,5],"tlw":["sentaan",644],"trw":["jaanyt",372],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",103087],"trw":["i",313],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",154264],"trp":["ia",39589],"tlw":["z",67],"lp":["ai","aai","zi","az","zz","zzi","za","aza"],"rp":["ia","iaa","iia","iai","iz","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",217633],"trp":["is",146392],"tlw":["siis",3048],"trw":["k",311],"lp":["si","sk","sii","ski","sis"],"rp":["is","ki","ik","ks","kk","isi","ksi","ikk","kki","ikki","iss","iis","kii","iks","iksi"]},"35":{"input":[1,2,6],"tlp":["ak",50178],"trp":["ka",233392],"tlw":["sai",2457],"trw":["kaikki",9023],"lp":["ak","aik","ais","asi","aikk","sia","aks","aka","aki","ska","aisi"],"rp":["ka","kaa","ika","kai","kaik","kas","kka","issa","isa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",107437],"trp":["ie",70245],"tlw":["ei",34289],"lp":["ei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",677],"trp":["ix",36],"tlw":["xii",62],"trw":["ix",36],"lp":["ez","xi","ezi","exi","ze","xii","aie","eia"],"rp":["ix"]},"38":{"input":[2,3,6],"tlp":["ek",18980],"trp":["ke",62524],"tlw":["die",61],"trw":["keksi",101],"lp":["ek","eid","eik","eis","sie","sei","esi","eks","ske","sek"],"rp":["ke","ise","id","kse","ike","ies","ide","ises","kei","kes"]},"39":{"input":[1,2,3,6],"tlp":["eida",12497],"trp":["ida",14485],"tlw":["eika",6048],"trw":["kaikkea",823],"lp":["eida","aise","eika","eka","aike","seka","ake","akse","aske","aid","aide","dak"],"rp":["ida","kea","ikea","ieda","kad","kade","keas","kkea"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",98241],"trp":["it",143226],"tlw":["v",870],"trw":["iv",91],"lp":["ti","vi","tti","tii","vii","ttii","vit","tiv","ttiv","vitt","viit"],"rp":["it","iv","itt","iit","iti","itti","ivi","iitt","ivit"]},"41":{"input":[1,4,6],"tlp":["va",182750],"trp":["ita",65115],"tlw":["tai",4545],"lp":["va","vat","av","vai","ava","vaa","tai","aiv","aiva","tav","tava","ait","aav","avat"],"rp":["ita","iva","ivat","iita","itta","itaa"]},"42":{"input":[2,4,6],"tlp":["sit",26898],"trp":["ist",39998],"tlw":["viisi",327],"trw":["itki",255],"lp":["sit","sti","tk","sitt","siit","siv","tki","tsi","sv","vis","tis"],"rp":["ist","its","itk","isti","itsi","itki","kiv","iist","kiit"]},"43":{"input":[1,2,4,6],"tlp":["vas",19036],"trp":["ista",23491],"tlw":["sita",11781],"trw":["kavi",1357],"lp":["vas","vast","tka","sita","asti","tak","vaik","aist","atk","taka","siva","asv","tais","tasi","atka"],"rp":["ista","kat","kats","kasv","kav"]},"44":{"input":[3,4,6],"tlp":["ri",43375],"trp":["ir",15903],"tlw":["ettei",3147],"trw":["irti",421],"lp":["ri","ve","vie","tie","ev","tei","eit","rv","eri","eiv","etti","tiet","eti","ttei","vet"],"rp":["ir","itte","ite","iet","ier"]},"45":{"input":[1,3,4,6],"tlp":["ari",10391],"trp":["ieta",3954],"tlw":["eivat",3839],"lp":["ari","eva","var","eita","arv","eiva","ria","evat","arvi","tarv","vaar","vart","rva","raav","tari","veta","rai"],"rp":["ieta","ira","iera"]},"46":{"input":[2,3,4,6],"tlp":["rk",13550],"trp":["itse",13494],"tlw":["teki",1489],"trw":["itse",3766],"lp":["rk","esti","tek","etk","rkk","rsi","tied","ris","tke","rke","teid"],"rp":["itse","ker","kir","iste","iset","kert","kerr","irk","kirk"]},"47":{"input":[1,2,3,4,6],"tlw":["tieda",1175],"trw":["kertaa",1619],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",333976],"trw":["niin",26801],"lp":[],"rp":["in","ni","iin","nii","niin","ih","hi","inn","nh","nin","iih","hin","nni","hn","ihi","ihin","ini","iinn","inni","nhi"]},"49":{"input":[1,5,6],"tlp":["ah",50528],"trp":["ha",155587],"tlw":["aina",4737],"trw":["han",60727],"lp":["ah","ain","aha","ani","ahan","aina","anh","anha"],"rp":["ha","han","ina","nai","iina","nah","ian","nha","haa","iha","nain","ihan"]},"50":{"input":[2,5,6],"tlp":["sin",32954],"trp":["nk",49072],"tlw":["sikin",37],"trw":["kiinni",1175],"lp":["sin","siin","siih","skin"],"rp":["nk","kin","ink","nki","nkin","nsi","isin","iink","ij","hk","inki","ksin","nis","kiin","ins","ikin"]},"51":{"input":[1,2,5,6],"tlp":["akin",7540],"trp":["kaan",25562],"tlw":["sina",5798],"trw":["kanssa",4169],"lp":["akin","sina","ank"],"rp":["kaan","nka","kan","inka","kans","nak","nkaa","nais","naki","kana","ija","inak","kah","ikan","hka","jai","isan"]},"52":{"input":[3,5,6],"tlp":["eh",17793],"trp":["he",62964],"tlw":["enin",79],"trw":["he",9072],"lp":["eh","eni","ein","ehe"],"rp":["he","ine","inen","hy","yh","hei","ien","yi","hen","ieh","ihe","iihe","ihen","iehe","hny","inne"]},"53":{"input":[1,3,5,6],"tlp":["aine",8961],"trp":["hane",41802],"tlw":["eihan",834],"trw":["hanen",25783],"lp":["aine","ahe","ahny","eiha","eha","eina","ehia","ehan","enia","anhe","aihe","enha","ahne","eani"],"rp":["hane","yha","yhan","hea","hena","inay"]},"54":{"input":[2,3,5,6],"tlp":["enk",14707],"trp":["hd",22326],"tlw":["siihen",4304],"trw":["niiden",2381],"lp":["enk","enki","ensi","ehd"],"rp":["hd","ky","isen","ken","hde","yk","yks","heid","ksen","iden","hden","kein","yksi","kys","kysy","keen"]},"55":{"input":[1,2,3,5,6],"tlw":["ehka",1532],"trw":["heidan",5518],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["tiin",8421],"trp":["ht",36404],"tlw":["viini",52],"trw":["nti",182],"lp":["tiin","vin","tin","vih","th","viin"],"rp":["ht","hti","niit","nti","int","hit","ntti","nit","init","nv","iint","nitt","hv","itin"]},"57":{"input":[1,4,5,6],"tlp":["van",24884],"trp":["hta",10602],"tlw":["vaan",7099],"trw":["hanta",8388],"lp":["van","aht","tah","vaan","vain","vah","vanh","taht","ahti","vaha","avan","tain","taha","vana"],"rp":["hta","hant","ivan","htaa","hat","inta"]},"58":{"input":[2,4,5,6],"tlp":["tkin",2359],"trp":["ntis",951],"tlw":["viisin",90],"trw":["kiinnitti",90],"lp":["tkin","ch","tsin","tins","stin","tij","vink","tsh","tsij","tch"],"rp":["ntis","nist","hist","nci","hits","ncis","nsiv","itsh","nits","htik"]},"59":{"input":[1,2,4,5,6],"tlw":["vastaan",3099],"trw":["niista",1303],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["rin",8705],"trp":["yv",14540],"tlw":["tehnyt",1374],"trw":["hyvin",4061],"lp":["rin","teh","tyi","eht","ven","rh"],"rp":["yv","hyv","het","iten","her","yht","hte","yvi","herr","hyvi","yvin","ytti","heit","hnyt"]},"61":{"input":[1,3,4,5,6],"tlw":["taytyi",1362],"trw":["hanet",4513],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["sitten",8039],"trw":["kenties",944],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["teidan",2121],"trw":["kerran",2976],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",9026],"trw":["o",542],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",201],"trp":["oa",14352],"lp":["ao"],"rp":["oa","oaa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",15574],"trp":["os",54094],"tlw":["so",36],"lp":["so","soo","sso","sos","soss"],"rp":["os","oss","oso","oos","ooss"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["soa",566],"trp":["ossa",8151],"trw":["osaa",838],"lp":["soa","aso","sao","ssao"],"rp":["ossa","osa","oas","osaa","osas","ow"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",536],"trp":["oe",3004],"trw":["-",534],"lp":["eo"],"rp":["oe"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",142],"trp":["ox",358],"lp":["a-","a-a","xo"],"rp":["ox","-a","oxo"]},"70":{"input":[2,3,7],"tlp":["do",12063],"trp":["od",8394],"lp":["do","dos","edo","sod","soe","doss","esso","eos","eoss","edos"],"rp":["od","ode","odo","ose","odos","oose","oses","odes","oes","oess"]},"71":{"input":[1,2,3,7],"tlp":["ado",599],"trp":["oda",1130],"tlw":["sodassa",75],"lp":["ado","soda","aado","dow","eado","adow"],"rp":["oda","odas","odaa"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",61617],"trp":["ot",51834],"tlw":["g",128],"trw":["ogoot",161],"lp":["to","tto","tot","too","tott","go","gt","goo","goot","gto","ttoo","gg"],"rp":["ot","ott","oto","otto","oot","og","ogo","ogoo"]},"73":{"input":[1,4,7],"tlp":["ato",2846],"trp":["ota",12728],"tlw":["totta",1107],"trw":["ottaa",1121],"lp":["ato","toa","ga","atto","ag","gat","gata","aato","ttoa","ago","gatt","toaa","fo"],"rp":["ota","otta","otaa","of","oat","oata","otoa"]},"74":{"input":[2,4,7],"tlp":["sto",3632],"trp":["ost",9527],"lp":["sto","tso","tos","sot","co","toss","tost","sott","stos","tsoo","stot","stoo","tsos","tsot","gs"],"rp":["ost","ots","oc","osto","osot"]},"75":{"input":[1,2,4,7],"tlp":["atso",3515],"trp":["osta",6277],"tlw":["sota",171],"trw":["ostaa",147],"lp":["atso","asto","gas","sota","atos","tsoa","sato","stoa","gast","sof","aggs","asot"],"rp":["osta","oast","otsa","osat","osof","owc"]},"76":{"input":[3,4,7],"tlp":["ro",11439],"trp":["or",16598],"tlw":["eero",648],"lp":["ro","ero","rto","tor","erto","ge","eto","rot","rg","erg","rro","erro","etto"],"rp":["or","ote","ort","ore","oet","oett","otte"]},"77":{"input":[1,3,4,7],"tlp":["rag",1424],"trp":["ora",1253],"tlw":["erottaa",195],"lp":["rag","aro","rtoa","rof","atro","rota","etoa","rofe","gra","aroo","roa","eroa","for"],"rp":["ora","oraa","orta","ofe","oeta","orea","otar"]},"78":{"input":[2,3,4,7],"tlp":["dot",4568],"trp":["odot",2046],"tlw":["god",157],"lp":["dot","dott","tod","tode","dost","ros","stor","sor","doto","cor","cort","roc","serg","ssor","tsoe","tros","ross"],"rp":["odot","oste","ors"]},"79":{"input":[1,2,3,4,7],"tlw":["grace",80],"trw":["odottaa",481],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",111283],"trw":["on",43019],"lp":[],"rp":["on","un","uu","uo","nu","no","ou","uon","nun","unn","onn","uun","unu","nnu","nuo","oon","nno","non","nou","onu"]},"81":{"input":[1,5,7],"tlp":["au",31984],"trp":["ua",18997],"lp":["au","ano","anu","aun","annu","aanu","aua","anoa","anon","auan"],"rp":["ua","nua","noa","ona","una","nau","uan","uona","onaa","unna"]},"82":{"input":[2,5,7],"tlp":["su",33737],"trp":["jo",99696],"tlw":["sun",387],"trw":["jos",9131],"lp":["su","suu","suo"],"rp":["jo","us","jos","ju","jon","oj","uus","jou","juu","uos","joss","ous","uns","nous","nus","ons","uss"]},"83":{"input":[1,2,5,7],"tlp":["sano",17998],"trp":["oja",7593],"tlw":["sanoa",1500],"trw":["jossa",2870],"lp":["sano","aus","asu","ausu","ajo","anoj","aju","sua"],"rp":["oja","noas","onsa","ussa","uja","noja","unsa","ojan","osan","uas","uoja","ojaa"]},"84":{"input":[3,5,7],"tlp":["eu",8909],"trp":["yo",14437],"tlw":["eno",84],"trw":["yon",465],"lp":["eu","enu","eno","ennu"],"rp":["yo","one","onne","unne","oy","ue","uone","yon","onee","une","oen","neu","unee","onen","noe","noen"]},"85":{"input":[1,3,5,7],"tlp":["que",622],"trp":["yona",396],"trw":["yona",396],"lp":["que","anoe","aune","aue","enoa","euna","xon","aneu","aeu"],"rp":["yona","nox","oxon","-na","-nay","nque","naeu","unay"]},"86":{"input":[2,3,5,7],"tlp":["seu",5113],"trp":["ud",9289],"tlw":["syo",106],"trw":["uuden",713],"lp":["seu","don","du","suud","syo"],"rp":["ud","ude","uud","uude","yos","use","uden","uod","oje","ojen","udes","uode","oyd","ues","oden"]},"87":{"input":[1,2,3,5,7],"tlw":["sanoen",554],"trw":["juoda",134],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",97385],"trp":["ut",111271],"tlw":["tuo",4127],"trw":["outo",170],"lp":["tu","tun","tuo","ttu","ton","tunt","tuu"],"rp":["ut","utt","nut","uut","ng","unt","uot","unut","nnut","nto","uutt","utu","ont"]},"89":{"input":[1,4,5,7],"tlp":["anut",9016],"trp":["utta",36184],"tlw":["tuota",1414],"trw":["uutta",628],"lp":["anut","tanu","aut","tua","atu","autt","anto","attu","ttua","anot","tau","agn","ang"],"rp":["utta","uta","uuta","nga","onta","uota","unta"]},"90":{"input":[2,4,5,7],"tlp":["stu",9987],"trp":["jot",16587],"tlw":["totuus",204],"trw":["joutunut",411],"lp":["stu","tus","tuns","tuos","suut","toj","tust","stun","tsu","stus","sut"],"rp":["jot","ust","nust","jost","jout","nost","jott","uost","uots"]},"91":{"input":[1,2,4,5,7],"tlw":["saanut",2403],"trw":["jota",3761],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",10641],"trp":["ur",27188],"tlw":["tytto",1225],"trw":["nuoren",497],"lp":["ru","eur","ettu","tyo","rou","ruu","tur","eut"],"rp":["ur","uur","uor","ure","uure","ute","nuor","uten","unte","yot","uute","ytto"]},"93":{"input":[1,3,4,5,7],"tlw":["tyota",814],"trw":["yota",359],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["suuren",1116],"trw":["joten",283],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["suurta",798],"trw":["uudestaan",554],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",180531],"trw":["oli",55295],"lp":[],"rp":["ll","ol","li","oi","oli","il","ill","lo","oll","lli","loi","llo","lloi","illo","lii","io","olli","ilo","oil","oill"]},"97":{"input":[1,6,7],"tlp":["al",103204],"trp":["la",161361],"tlw":["alla",1156],"trw":["olla",4699],"lp":["al","all","alla","ala","aal","aall","ali","alli","alo","ail","alai"],"rp":["la","lla","illa","lai","olla","laa","ila","llai","llaa"]},"98":{"input":[2,6,7],"tlp":["sil",23278],"trp":["ko",79476],"tlw":["soi",379],"trw":["olisi",9034],"lp":["sil","sill"],"rp":["ko","ok","lis","ois","lk","lisi","olis","koi","oik","llis","osk","oko","kok","kos","koko","iko","oisi","lko"]},"99":{"input":[1,2,6,7],"tlp":["alk",11320],"trp":["oka",22378],"tlw":["silla",7800],"trw":["koska",1773],"lp":["alk","sal","alko","alka","alas","aiko","ako","sala","sall"],"rp":["oka","lais","las","kal","lka","oska","kall","lak","oika","lkaa","laki"]},"100":{"input":[3,6,7],"tlp":["el",107523],"trp":["le",115183],"tlw":["eli",822],"trw":["ole",10027],"lp":["el","ell","elle","eli","ele","eil","eill","elli"],"rp":["le","lle","ole","iel","lee","ille","llee","iell","olle","iele","lei","lel"]},"101":{"input":[1,3,6,7],"tlp":["ella",24479],"trp":["iela",9775],"tlw":["elaa",782],"trw":["lea",62],"lp":["ella","ela","alle","ale","eal","elaa","eall","elia","aile","elai","alee","alel","a-al","aale","alea","elal"],"rp":["iela","lea","-al","lae"]},"102":{"input":[2,3,6,7],"tlp":["sel",13503],"trp":["oise",7642],"tlw":["eiko",1404],"trw":["kello",600],"lp":["sel","sell","siel","del","dell","elk","eiso","seli","skel"],"rp":["oise","lke","oike","lise","les","kel","lkee","kell","okse","isel","oid"]},"103":{"input":[1,2,3,6,7],"tlw":["siella",4520],"trw":["keskella",829],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",29749],"trp":["lt",22549],"tlw":["voi",5384],"trw":["otti",1283],"lp":["vo","toi","voi","til","toiv","gi","voit"],"rp":["lt","oit","ov","liv","oliv","oitt","oiv","lit","lv","ilt","otti","oti","ito"]},"105":{"input":[1,4,6,7],"tlp":["val",18640],"trp":["lta",17662],"tlw":["taalla",3001],"trw":["olivat",8509],"lp":["val","tal","alt","vall","alta","vali","taal","talo","aval","tila","tall","valt"],"rp":["lta","liva","ova","ovat","oita","oiva","ilta","lat"]},"106":{"input":[2,4,6,7],"tlp":["tois",11857],"trp":["otk",7732],"tlw":["voisi",1258],"trw":["kiitos",454],"lp":["tois","tko","svo","vois","tosi","tok","soit","vos","tsoi","tkoi","svoi","stoi"],"rp":["otk","oist","list","kot","kov","isto","koti","osti"]},"107":{"input":[1,2,4,6,7],"tlw":["saattoi",861],"trw":["katsoi",951],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["tel",10931],"trp":["lev",8000],"tlw":["teille",1239],"trw":["olet",1963],"lp":["tel","viel","elt","vel","teli","tell","ttel","ril","rill","evo","elv"],"rp":["lev","let","ori","olet","olev","ielt","lett","ove","leet"]},"109":{"input":[1,3,4,6,7],"tlw":["viela",8600],"trw":["oleva",577],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["toiset",990],"trw":["kertoi",658],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["sielta",1053],"trw":["katseli",846],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",66193],"trw":["olin",2657],"lp":[],"rp":["ui","ul","lu","uin","inu","oin","hu","oh","ull","llu","uh","uol","noi","uul","lin","ollu","loin","uli","huo","luo"]},"113":{"input":[1,5,6,7],"tlp":["anoi",9266],"trp":["lah",8966],"tlw":["ainoa",772],"trw":["liian",1614],"lp":["anoi","aino","auh","alan","aul","auni","alu"],"rp":["lah","ulla","lan","inua","laan","hal","inoa","lain","lau","uha","nal","hall","ula"]},"114":{"input":[2,5,6,7],"tlp":["sinu",6349],"trp":["ku",115005],"tlw":["silloin",5497],"trw":["kuin",22585],"lp":["sinu"],"rp":["ku","kui","kuin","kun","uk","jok","kuu","onk","lj","joi","nku","kuul","koh","uks","jonk","usk","nkui","kul","usi"]},"115":{"input":[1,2,5,6,7],"tlw":["sanoi",7087],"trw":["joka",18978],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elu",3144],"trp":["len",16714],"tlw":["eilen",316],"trw":["olen",5653],"lp":["elu","elen"],"rp":["len","yl","nel","ule","nell","leen","olen","uole","ulle","yll","hel","oine","line","ulee","llen","uule","yli","ly"]},"117":{"input":[1,3,5,6,7],"tlw":["aanella",765],"trw":["hanelle",4619],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["ennenkuin",1410],"trw":["oikein",2049],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["sellainen",739],"trw":["kylla",3839],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["tul",21501],"trp":["lut",16706],"tlw":["tuli",4747],"trw":["ollut",10662],"lp":["tul","tui","vu","tuli","vuo","voin","tull","toin"],"rp":["lut","llut","uv","oht","uit","inut","hto","ing","ult","htu","itu","utti"]},"121":{"input":[1,4,5,6,7],"tlw":["tulla",1527],"trw":["lahti",967],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["tunsi",1344],"trw":["istui",1253],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["ainoastaan",2528],"trw":["jotka",7436],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["tulee",3128],"trw":["nuori",1213],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["rouva",1878],"trw":["olevan",1792],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["suuri",2189],"trw":["kuitenkin",3603],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["tahdon",933],"trw":["kuitenkaan",984],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",8308],"trw":["p",1108],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",22497],"trp":["pa",77545],"trw":["paa",544],"lp":["ap","apa","app","apaa","aap","appa","aapa"],"rp":["pa","paa","pap","ppa","papp","ppaa","paaa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",2110],"trp":["ps",4292],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["aps",4165],"trp":["paas",5700],"trw":["paassa",773],"lp":["aps","spa","saap","apas","asp","aspa","sap","saps","apsa"],"rp":["paas","pas","ppas","psa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",2526],"trp":["pe",16376],"trw":["'",576],"lp":["ep","epp","e'","eep"],"rp":["pe","'e","pee","ppe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["epa",1849],"trp":["pea",2103],"tlw":["aape",205],"lp":["epa","ape","aape","apea","eppa","appe","epaa"],"rp":["pea","'a","pape","pae","peaa","paae"]},"134":{"input":[2,3,8],"tlp":["s'",618],"trp":["pse",2270],"lp":["s'","sep","esp","sepp","d'","spe","ss'","s'e","es'"],"rp":["pse","pes","psee","ped","pede","pses","pees"]},"135":{"input":[1,2,3,8],"tlp":["apse",2143],"trp":["peas",737],"tlw":["sepa",189],"trw":["paase",202],"lp":["apse","espa","sepa","epas","d'a","d'as"],"rp":["peas","pesa","'as"]},"136":{"input":[4,8],"tlp":["tp",203],"trp":["pt",207],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",6856],"trp":["paat",3775],"tlw":["tapa",257],"trw":["paata",312],"lp":["tap","tapa","tapp","apt","taap","tpa","apat"],"rp":["paat","pat"]},"138":{"input":[2,4,8],"lp":[],"rp":[]},"139":{"input":[1,2,4,8],"tlp":["stap",241],"trp":["past",383],"trw":["paasta",1393],"lp":["stap","spat"],"rp":["past"]},"140":{"input":[3,4,8],"tlp":["t'",2289],"trp":["per",3933],"tlw":["ett'",217],"lp":["t'","tt'","ett'","t'e","tt'e","rp","rpe","rpee","r'","rr'","rep","err'"],"rp":["per","pet","pett","pr","pte","ptee","pere","pre"]},"141":{"input":[1,3,4,8],"tlp":["arp",756],"trp":["par",8411],"trw":["paeta",156],"lp":["arp","tarp","arpe","aper","t'a","rap","rapa","apte","epat","arr'","rapp","fe'"],"rp":["par","pera","pare","para","paet","pate","part","peat"]},"142":{"input":[2,3,4,8],"tlp":["spr",153],"trp":["pset",690],"lp":["spr","spre","tsep","st'"],"rp":["pset"]},"143":{"input":[1,2,3,4,8],"tlw":["d'astarac",81],"trw":["perasta",769],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",28094],"trw":["m",905],"lp":[],"rp":["mm","mp","np","nm","mpp"]},"145":{"input":[1,5,8],"tlp":["am",46002],"trp":["ma",123834],"trw":["nama",1502],"lp":["am","ama","amaa","aman","aam","amm","aama","amp"],"rp":["ma","maa","man","maan","mma","pan","mpa","mman","npa","paan","nam","nama"]},"146":{"input":[2,5,8],"tlp":["sm",505],"lp":["sm"],"rp":[]},"147":{"input":[1,2,5,8],"tlp":["sam",8343],"trp":["mas",10187],"tlw":["samassa",1358],"trw":["paansa",590],"lp":["sam","sama","amas","span","saam","samm","ssam","sma","sanm","asm"],"rp":["mas","mass","mans","maas","mmas","panj","maj","pans","mpas","jam"]},"148":{"input":[3,5,8],"tlp":["em",30930],"trp":["me",55008],"tlw":["emme",1059],"trw":["me",4210],"lp":["em","emm","emp","emme","enem"],"rp":["me","men","my","mme","ym","py","nem","mene","menn","ymm","nemm","ymp","ymy","pyy","mee"]},"149":{"input":[1,3,5,8],"tlp":["ema",9490],"trp":["ympa",2574],"tlw":["enemman",2199],"trw":["menna",1245],"lp":["ema","emma","emaa","ame","amme","eman","empa","amen","enpa","eam","eamm","eamp"],"rp":["ympa","ymma","mea","pane","yma","nema","ymaa","mpea"]},"150":{"input":[2,3,5,8],"tlp":["sem",3594],"trp":["mes",2527],"tlw":["esm",37],"trw":["pysyy",153],"lp":["sem","semm","sym","symy","spen","dem","demm"],"rp":["mes","pys","ysym","psen","pysy","mess","mens","pyys","mys","ymys","pyyd","meyd","pend"]},"151":{"input":[1,2,3,5,8],"tlw":["sydamensa",387],"trw":["pyydan",244],"lp":[],"rp":[]},"152":{"input":[4,5,8],"trp":["mb",336],"lp":[],"rp":["mb","mmb"]},"153":{"input":[1,4,5,8],"tlp":["tam",18925],"trp":["mat",13373],"tlw":["tama",6514],"trw":["maata",654],"lp":["tam","tama","amat","ttam","tamm","ammb","atam","taam","tamp","amb"],"rp":["mat","matt","mmat","maat","mant","pant","mata","ntam","ntap"],"special":"numsym"},"154":{"input":[2,4,5,8],"lp":[],"rp":[]},"155":{"input":[1,2,4,5,8],"tlw":["samat",179],"trw":["maasta",321],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",5379],"trp":["mer",3161],"tlw":["ett'en",165],"trw":["mr",635],"lp":["rm","rem","tem","remp","remm","temm","rme","ttem","temp"],"rp":["mer","met","mr","pent","ment","mere","pyyt","ntem","pyr","myr","metr"]},"157":{"input":[1,3,4,5,8],"tlw":["emanta",515],"trw":["ymmarra",345],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"trw":["mrs",279],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["armas",161],"trw":["paassyt",507],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",36935],"lp":[],"rp":["pi","ip","ppi","pii","iip","ipp","ipi","iipp","iipi","piip","ipii","ppii"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2247],"trp":["pai",17547],"trw":["pappi",810],"lp":["api","appi","apai","aip","aipa","aapi","aipp"],"rp":["pai","pia","ipa","papi","ppia","ipaa","ippa","piaa"]},"162":{"input":[2,6,8],"tlp":["sip",134],"trp":["pik",1832],"lp":["sip","siip"],"rp":["pik","psi","pis","pikk","isp","piis","iisp","pisi","piki","kip","ksip","kkip","kipi","piik","psis","piks","isip","kiip"]},"163":{"input":[1,2,6,8],"tlp":["apsi",1759],"trp":["paik",2876],"tlw":["saapi",132],"trw":["paasi",542],"lp":["apsi","spai","apis","sipa"],"rp":["paik","pak","kap","pasi","ispa","kapa","pais","kapp","paak","pakk","psia","paks","kaip","kkap","ipas","pias"]},"164":{"input":[3,6,8],"tlp":["eip",817],"trp":["pie",5244],"lp":["eip","epi","eppi","eipp","e'i","eepi"],"rp":["pie","'ei","pei","ipe","'i","iep","ppie","iepp","iepi","iipe","ipie"]},"165":{"input":[1,3,6,8],"tlp":["epai",1133],"trp":["'ai",235],"tlw":["eipa",378],"lp":["epai","eipa","epia","apei"],"rp":["'ai","ipea"]},"166":{"input":[2,3,6,8],"tlp":["siep",69],"trp":["pid",1813],"trw":["kiipesi",44],"lp":["siep"],"rp":["pid","pesi","pide","k'","peek","kk'","ikk'","pek","pike","pekk","kipe","pidi","is'","ksep","k'e","kk'e","k'ei","ipid","iss'"]},"167":{"input":[1,2,3,6,8],"tlw":["sieppasi",69],"trw":["pida",405],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["viip",485],"trp":["pit",11493],"trw":["piti",1713],"lp":["viip"],"rp":["pit","piti","piv","ipit","ppiv","pitt","ipiv"]},"169":{"input":[1,4,6,8],"tlp":["vap",1883],"trp":["paiv",6732],"tlw":["vapaa",269],"trw":["pitaa",1916],"lp":["vap","vapa","vaip","vapi","apit","taip","tapi"],"rp":["paiv","pita","pait","itap","piva","paav"]},"170":{"input":[2,4,6,8],"trp":["pitk",4224],"trw":["pisti",361],"lp":[],"rp":["pitk","pist"]},"171":{"input":[1,2,4,6,8],"tlw":["sitapaitsi",428],"trw":["pitaisi",756],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["t'ei",979],"trp":["peri",1054],"tlw":["ett'ei",867],"trw":["peitti",175],"lp":["t'ei","riip","reip","repi","viep","t'i","rip"],"rp":["peri","peit","piet","pite","piir","pir","it'","pier","pri","pirt","'eiv","iit'","irip"]},"173":{"input":[1,3,4,6,8],"tlw":["ett'eivat",74],"trw":["pari",989],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["sit'",100],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["tarpeeksi",310],"trw":["parka",244],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",120870],"trw":["mihin",694],"lp":[],"rp":["mi","min","im","hm","ihm","mmi","hmi","ihmi","mmin","imm","imi","nim","iim","mpi","mii","nimi","miin","pin","pim","hmin"]},"177":{"input":[1,5,6,8],"tlp":["aim",2568],"trp":["mina",17633],"trw":["mina",16504],"lp":["aim","ami","apah","amia"],"rp":["mina","mai","ima","pain","pah","mia","main","mah","maai","imma","pian","paha","ham","imaa","maah","imai"]},"178":{"input":[2,5,6,8],"tlp":["sim",3768],"trp":["mis",12062],"trw":["miksi",1344],"lp":["sim","simm","smi"],"rp":["mis","mik","hmis","miss","mink","nsim","misi","miks","imis","kim","isim","jim","mpik","ism","mk","kimp","ismi"]},"179":{"input":[1,2,5,6,8],"trw":["mika",3480],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emmi",3536],"trp":["mie",19226],"tlw":["ennemmin",163],"trw":["meni",1459],"lp":["emmi","empi","emi"],"rp":["mie","mei","ime","mieh","pien","iime","meni","hem","imei","imme","hemm","nime","hym","mein","hymy","hme","mine"]},"181":{"input":[1,3,5,6,8],"trw":["miehia",566],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["esim",379],"trw":["mies",3388],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["ensimainen",403],"trw":["meidan",2780],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["viim",3133],"trp":["mit",21696],"trw":["nimitti",52],"lp":["viim","tim","ttim","vim","vimm","timm","tinp"],"rp":["mit","mitt","imit","mint","htim","miit","mmit","npit","pint","miv","imiv"]},"185":{"input":[1,4,5,6,8],"trw":["mita",10059],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"trw":["pitkin",1130],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"trw":["mista",982],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["viimein",718],"trw":["miten",2370],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["eteenpain",770],"trw":["meita",1361],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["sittemmin",355],"trw":["ihmiset",1045],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["varmaankin",428],"trw":["miesta",877],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",17061],"lp":[],"rp":["po","op","opp","ppo","oop","oopp","poo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",392],"trp":["opa",760],"lp":["apo","appo","aapo"],"rp":["opa","poa","ppoa","oopa","opaa"]},"194":{"input":[2,7,8],"tlp":["sop",886],"trp":["pos",648],"lp":["sop"],"rp":["pos","osp"]},"195":{"input":[1,2,7,8],"trp":["ospa",434],"lp":[],"rp":["ospa"]},"196":{"input":[3,7,8],"tlp":["epo",141],"trp":["ope",2399],"lp":["epo","epoo"],"rp":["ope","'o","oppe"]},"197":{"input":[1,3,7,8],"tlp":["epoa",105],"trp":["opea",620],"lp":["epoa"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["s'o",328],"trp":["osep",102],"lp":["s'o"],"rp":["osep"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["gtp",153],"trp":["pot",295],"lp":["gtp","tpo","gtpo","top"],"rp":["pot","pott"]},"201":{"input":[1,4,7,8],"tlp":["apot",165],"trp":["pato",255],"lp":["apot","tapo","topa"],"rp":["pato","pota","otap"]},"202":{"input":[2,4,7,8],"trp":["post",449],"lp":[],"rp":["post"]},"203":{"input":[1,2,4,7,8],"trw":["paatos",82],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["tpor",153],"trp":["opet",1620],"trw":["peto",55],"lp":["tpor","tope","roop"],"rp":["opet","por","port","pro","poro","peto"]},"205":{"input":[1,3,4,7,8],"trw":["opettaa",197],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["petosta",39],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mu",58870],"trw":["muu",588],"lp":[],"rp":["mu","pu","om","mo","muu","um","uom","puo","up","mon","pun","puu","upu","upun","opu","umm","ppu","nom","uum","mmo"]},"209":{"input":[1,5,7,8],"tlp":["aup",2791],"trp":["oma",16400],"tlw":["apua",470],"trw":["oman",1021],"lp":["aup","apu","aupu","amo","amu","apau","aamu","aapu","anom"],"rp":["oma","uma","uoma","omaa","oman","pau","noma","upa","umaa","umma","panu"]},"210":{"input":[2,5,7,8],"tlp":["suom",4018],"trp":["jum",4241],"tlw":["suom",417],"lp":["suom","som","sum"],"rp":["jum","mus","poj","jop","mons","muus","pus","moj","opus","moos","josp","puss","omus","mos","npoj","psu","psuu"]},"211":{"input":[1,2,5,7,8],"tlw":["sanomaan",203],"trw":["pojan",607],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emmo",1235],"trp":["myo",6382],"tlw":["emo",86],"trw":["monen",273],"lp":["emmo","emu"],"rp":["myo","ome","uome","omen","poy","mone","upe","nope","pue","myon","ume","uem","yom","meno","pyo","omme","uemm","pune"]},"213":{"input":[1,3,5,7,8],"trw":["myonnan",82],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["suomen",1322],"trw":["myos",1706],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["suomessa",236],"trw":["poydan",440],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",3714],"trp":["mut",29213],"tlw":["tom",275],"trw":["muut",992],"lp":["tom","ttom","tum","tuom","tomu","bom","gbom","tup","ttum"],"rp":["mut","mutt","muut","pung","mont","puut","muot","put","mbo","mmbo","puto"]},"217":{"input":[1,4,5,7,8],"trw":["mutta",28564],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"trw":["muutos",112],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["tuomas",244],"trw":["pojat",604],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["bergbom",465],"trw":["muuten",1081],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["tuntemaan",300],"trw":["poytaan",161],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["sprengtport",116],"trw":["prudence",171],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["etupaassa",239],"trw":["opettaja",379],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["poi",8488],"trw":["oppi",180],"lp":[],"rp":["poi","lop","lp","oppi","opi","pil","pol","lpo","lopp","ppil","lip","iop","liop","ilp","lpp","lppo","ippo","ppol","poli","pio"]},"225":{"input":[1,6,7,8],"tlp":["alp",476],"trp":["pal",8702],"trw":["lapi",904],"lp":["alp","alap"],"rp":["pal","lap","pala","paal","lapi","pail","pila","ppal","lapa","lipa","lpa","palo","lpaa","llap","lapp","iopa","opai","ilpa"]},"226":{"input":[2,6,7,8],"tlp":["sopi",829],"trp":["poik",4206],"tlw":["sopii",210],"trw":["pois",3248],"lp":["sopi"],"rp":["poik","pois","lpos","kop","lkop","opis","polk","posk","losp","psil","pilk","oisp","kilp","pios"]},"227":{"input":[1,2,6,7,8],"trw":["poika",1648],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",1235],"trp":["pel",3429],"tlw":["ell'ei",70],"trw":["piilee",68],"lp":["elp","elpo","elpp","elip","ell'"],"rp":["pel","lpe","l'","lep","ll'","pelo","peli","leip","ppel","lope","peel","pell","'ol","'oli","ill'"]},"229":{"input":[1,3,6,7,8],"tlw":["epailla",102],"trw":["paalle",747],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["s'oli",178],"trw":["pelko",234],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["sill'aikaa",122],"trw":["pelkaa",283],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["voip",114],"trp":["pilv",391],"tlw":["voipi",114],"trw":["ippolit",287],"lp":["voip","vilp","tiop"],"rp":["pilv","opiv","polv","polt","lpit","lpot","pito"]},"233":{"input":[1,4,6,7,8],"tlw":["apotti",165],"trw":["palata",236],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["potki",36],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["sopiva",101],"trw":["palasivat",135],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["viel'",99],"trw":["perille",288],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["vielapa",360],"trw":["portaita",183],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["tok'",38],"trw":["posket",92],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["tarpeellista",75],"trw":["lapset",690],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["lm",22428],"trw":["minun",5382],"lp":[],"rp":["lm","minu","ilm","puh","puol","mui","oim","mil","puhu","huom","lmi","omi","mill","moi","olm","ilmi","imo","pui","mol","moin"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["aamulla",431],"trw":["minua",4742],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["silmin",342],"trw":["pikku",1155],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["samalla",1927],"trw":["paljon",3194],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["minulle",3318],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["elaman",1008],"trw":["meilla",1051],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["semmoinen",325],"trw":["myoskin",2227],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["suomalaisen",431],"trw":["kallem",1117],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["toimi",174],"trw":["minut",1928],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["tapahtunut",602],"trw":["muutamia",1006],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["sopinut",80],"trw":["muutkin",289],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["silmat",1184],"trw":["minusta",1102],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["toimeen",479],"trw":["miltei",281],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["epailematta",384],"trw":["molemmat",921],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["rupesi",652],"trw":["helposti",449],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["tapauksessa",366],"trw":["puolesta",598],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",258251],"tlw":["a",455],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",66466],"tlw":["s",731],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",177484],"tlw":["saa",2123],"lp":["sa","as","ssa","saa","ass","assa","aas","ssaa","aass","sas","sass","asa","saas","aaas","wa","ssas","aasa","asas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",59327],"tlw":["e",519],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",19583],"tlw":["x",52],"lp":["ea","ae","eaa","ex","ax","aae"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["se",143967],"tlw":["se",27105],"lp":["se","es","de","ess","ed","ses","see","des","ede","dess","edes","ees","sess","eess","ese","eese","esee","sse","ssee","eed"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",33895],"tlw":["saada",1657],"lp":["da","essa","ad","ase","eda","aad","ada","eas","aada","ade","saad","sea","esa","aase","ades","seaa","das","daa","eass","asee"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",182756],"tlw":["t",129],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",443960],"tlw":["tata",2224],"lp":["ta","at","tta","taa","att","ttaa","aat","ata","atta","aatt","tat","aata","tata","ataa","fa","ff","ft","af","tatt","aff"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",131877],"tlw":["st",145],"lp":["st","ts","sc","tc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",78874],"tlw":["taas",3738],"lp":["sta","ast","asta","staa","tas","ats","aast","taas","saat","tass","tsa","stas","sat","tast","satt","ac","stat","sata","tsas","sast"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["et",120310],"tlw":["te",3216],"lp":["et","te","ett","er","tte","re","rt","rr","tee","err","eet","ette","ert","tet","ete","tett","ter","rte","ere","etee"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",56709],"tlw":["etta",32564],"lp":["ar","ra","etta","tar","rra","era","erra","raa","eta","rta","aar","art","ara","ate","are","atte","rat","etaa","eraa","erta"],"rp":[]},"14":{"input":[2,3,4],"tlp":["est",21714],"tlw":["ester",156],"lp":["est","tse","ste","set","sest","rs","det","ets","res","dest","ress","tsee","este","sett","dett","rd","rest","ster","tses","der"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["esta",12314],"tlw":["eras",1057],"lp":["esta","ras","ars","eras","atse","dat","rast","aste","east","aras","tsea","etsa","rass","aset","sar","seta","ard","edat","sef","datt"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",48589],"trw":["n",1456],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",427381],"trp":["na",121169],"tlw":["anna",1340],"trw":["na",532],"lp":["an","aan","ana","ann","anna","anaa","aana","anan","aann","anq"],"rp":["na","nna","naa","naan","nan","nnan","nnaa","nq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",381],"trp":["ns",47964],"trw":["j",621],"lp":["sn"],"rp":["ns","nss","nj"]},"19":{"input":[1,2,5],"tlp":["san",29730],"trp":["ja",188698],"tlw":["ajan",1077],"trw":["ja",138817],"lp":["san","ans","ansa","aj","saan","aja","anss","sana","aans","ajan","ssan"],"rp":["ja","nsa","jaa","jan","nssa","jas","jaan","nas","nsan"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",297363],"trp":["ne",120612],"tlw":["en",8035],"trw":["ne",8601],"lp":["en","een","enn","ene","enne","enen","ey","enee"],"rp":["ne","nen","ny","nne","yy","nee","yn","nnen","yny","neen","nny","yyn"]},"21":{"input":[1,3,5],"tlp":["ane",47273],"trp":["nay",5887],"tlw":["enaa",3363],"trw":["naen",437],"lp":["ane","anen","ay","ena","any","anne","enaa","aen","anee","aane","enna","ean","ayn","eaan","eena","ayny"],"rp":["nay","ya","nae","ynna"]},"22":{"input":[2,3,5],"tlp":["sen",43375],"trp":["ys",15306],"tlw":["sen",18097],"lp":["sen","ens","sy","den","seen","eens","sens","syn","syd","syy"],"rp":["ys","je","yd","ysy","nes","jen","yde","yys","nd","nnes"]},"23":{"input":[1,2,3,5],"tlp":["dan",14539],"trp":["yda",4761],"tlw":["sydan",458],"trw":["jaada",316],"lp":["dan","ensa","syda","anes","sena","ayd","asen","ayde","edan","daan","sean","and","ande","ays","ayda","assy","esan"],"rp":["yda","ydan","ysa"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",82],"trp":["nt",46733],"tlw":["b",145],"lp":["bb","tn"],"rp":["nt","ntt","nb"]},"25":{"input":[1,4,5],"tlp":["taan",23917],"trp":["nta",24277],"tlw":["antaa",1443],"lp":["taan","ant","tan","anta","ttan","tann","aant","tana","ba","antt","anat","atan","bat","ab"],"rp":["nta","ntaa","nat","ntan","nnat","natt"]},"26":{"input":[2,4,5],"tlp":["bj",117],"trp":["nc",817],"lp":["bj","sb","sbj"],"rp":["nc","nst"]},"27":{"input":[1,2,4,5],"tlp":["ajat",5379],"trp":["jat",10551],"tlw":["sanat",714],"trw":["jattaa",503],"lp":["ajat","stan","taj","taja","tans","ttaj","sant","tsan","anc","cq","acq","staj"],"rp":["jat","jatt","jast","nast","jac","jacq","jata","ntas"]},"28":{"input":[3,4,5],"tlp":["ten",35400],"trp":["yt",52934],"tlw":["eteen",754],"trw":["nyt",14068],"lp":["ten","ty","tten","ent","teen","ren","tyy","tyt","tytt"],"rp":["yt","nyt","ytt","net","nte","yty","neet","ynyt","nty","nett","nnet"]},"29":{"input":[1,3,4,5],"tlp":["ayt",12824],"trp":["nayt",5724],"tlw":["taytyy",2000],"trw":["naet",1065],"lp":["ayt","ran","tay","aytt","tayt","anyt","anet","tany","rran","ayty","enta","raan","taen","aten","tya","aren","rann"],"rp":["nayt","ytta","yta"]},"30":{"input":[2,3,4,5],"tlp":["rj",9328],"trp":["yst",5033],"tlw":["syntynyt",298],"lp":["rj","sten","sty","tys","rje","tens","tsen","sent","tyst","esty","synt","etys","syt","rjee","syyt","stys"],"rp":["yst","nest","jet","jest"]},"31":{"input":[1,2,3,4,5],"tlw":["sentaan",644],"trw":["jaanyt",372],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",103087],"trw":["i",313],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",154264],"trp":["ia",39589],"tlw":["z",67],"lp":["ai","aai","zi","az","zz","zzi","za","aza"],"rp":["ia","iaa","iia","iai","iz","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",217633],"trp":["is",146392],"tlw":["siis",3048],"trw":["k",311],"lp":["si","sk","sii","ski","sis"],"rp":["is","ki","ik","ks","kk","isi","ksi","ikk","kki","ikki","iss","iis","kii","iks","iksi"]},"35":{"input":[1,2,6],"tlp":["ak",50178],"trp":["ka",233392],"tlw":["sai",2457],"trw":["kaikki",9023],"lp":["ak","aik","ais","asi","aikk","sia","aks","aka","aki","ska","aisi"],"rp":["ka","kaa","ika","kai","kaik","kas","kka","issa","isa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",107437],"trp":["ie",70245],"tlw":["ei",34289],"lp":["ei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",677],"trp":["ix",36],"tlw":["xii",62],"trw":["ix",36],"lp":["ez","xi","ezi","exi","ze","xii","aie","eia"],"rp":["ix"]},"38":{"input":[2,3,6],"tlp":["ek",18980],"trp":["ke",62524],"tlw":["die",61],"trw":["keksi",101],"lp":["ek","eid","eik","eis","sie","sei","esi","eks","ske","sek"],"rp":["ke","ise","id","kse","ike","ies","ide","ises","kei","kes"]},"39":{"input":[1,2,3,6],"tlp":["eida",12497],"trp":["ida",14485],"tlw":["eika",6048],"trw":["kaikkea",823],"lp":["eida","aise","eika","eka","aike","seka","ake","akse","aske","aid","aide","dak"],"rp":["ida","kea","ikea","ieda","kad","kade","keas","kkea"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",98241],"trp":["it",143226],"tlw":["v",870],"trw":["iv",91],"lp":["ti","vi","tti","tii","vii","ttii","vit","tiv","ttiv","vitt","viit"],"rp":["it","iv","itt","iit","iti","itti","ivi","iitt","ivit"]},"41":{"input":[1,4,6],"tlp":["va",182750],"trp":["ita",65115],"tlw":["tai",4545],"lp":["va","vat","av","vai","ava","vaa","tai","aiv","aiva","tav","tava","ait","aav","avat"],"rp":["ita","iva","ivat","iita","itta","itaa"]},"42":{"input":[2,4,6],"tlp":["sit",26898],"trp":["ist",39998],"tlw":["viisi",327],"trw":["itki",255],"lp":["sit","sti","tk","sitt","siit","siv","tki","tsi","sv","vis","tis"],"rp":["ist","its","itk","isti","itsi","itki","kiv","iist","kiit"]},"43":{"input":[1,2,4,6],"tlp":["vas",19036],"trp":["ista",23491],"tlw":["sita",11781],"trw":["kavi",1357],"lp":["vas","vast","tka","sita","asti","tak","vaik","aist","atk","taka","siva","asv","tais","tasi","atka"],"rp":["ista","kat","kats","kasv","kav"]},"44":{"input":[3,4,6],"tlp":["ri",43375],"trp":["ir",15903],"tlw":["ettei",3147],"trw":["irti",421],"lp":["ri","ve","vie","tie","ev","tei","eit","rv","eri","eiv","etti","tiet","eti","ttei","vet"],"rp":["ir","itte","ite","iet","ier"]},"45":{"input":[1,3,4,6],"tlp":["ari",10391],"trp":["ieta",3954],"tlw":["eivat",3839],"lp":["ari","eva","var","eita","arv","eiva","ria","evat","arvi","tarv","vaar","vart","rva","raav","tari","veta","rai"],"rp":["ieta","ira","iera"]},"46":{"input":[2,3,4,6],"tlp":["rk",13550],"trp":["itse",13494],"tlw":["teki",1489],"trw":["itse",3766],"lp":["rk","esti","tek","etk","rkk","rsi","tied","ris","tke","rke","teid"],"rp":["itse","ker","kir","iste","iset","kert","kerr","irk","kirk"]},"47":{"input":[1,2,3,4,6],"tlw":["tieda",1175],"trw":["kertaa",1619],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",333976],"trw":["niin",26801],"lp":[],"rp":["in","ni","iin","nii","niin","ih","hi","inn","nh","nin","iih","hin","nni","hn","ihi","ihin","ini","iinn","inni","nhi"]},"49":{"input":[1,5,6],"tlp":["ah",50528],"trp":["ha",155587],"tlw":["aina",4737],"trw":["han",60727],"lp":["ah","ain","aha","ani","ahan","aina","anh","anha"],"rp":["ha","han","ina","nai","iina","nah","ian","nha","haa","iha","nain","ihan"]},"50":{"input":[2,5,6],"tlp":["sin",32954],"trp":["nk",49072],"tlw":["sikin",37],"trw":["kiinni",1175],"lp":["sin","siin","siih","skin"],"rp":["nk","kin","ink","nki","nkin","nsi","isin","iink","ij","hk","inki","ksin","nis","kiin","ins","ikin"]},"51":{"input":[1,2,5,6],"tlp":["akin",7540],"trp":["kaan",25562],"tlw":["sina",5798],"trw":["kanssa",4169],"lp":["akin","sina","ank"],"rp":["kaan","nka","kan","inka","kans","nak","nkaa","nais","naki","kana","ija","inak","kah","ikan","hka","jai","isan"]},"52":{"input":[3,5,6],"tlp":["eh",17793],"trp":["he",62964],"tlw":["enin",79],"trw":["he",9072],"lp":["eh","eni","ein","ehe"],"rp":["he","ine","inen","hy","yh","hei","ien","yi","hen","ieh","ihe","iihe","ihen","iehe","hny","inne"]},"53":{"input":[1,3,5,6],"tlp":["aine",8961],"trp":["hane",41802],"tlw":["eihan",834],"trw":["hanen",25783],"lp":["aine","ahe","ahny","eiha","eha","eina","ehia","ehan","enia","anhe","aihe","enha","ahne","eani"],"rp":["hane","yha","yhan","hea","hena","inay"]},"54":{"input":[2,3,5,6],"tlp":["enk",14707],"trp":["hd",22326],"tlw":["siihen",4304],"trw":["niiden",2381],"lp":["enk","enki","ensi","ehd"],"rp":["hd","ky","isen","ken","hde","yk","yks","heid","ksen","iden","hden","kein","yksi","kys","kysy","keen"]},"55":{"input":[1,2,3,5,6],"tlw":["ehka",1532],"trw":["heidan",5518],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["tiin",8421],"trp":["ht",36404],"tlw":["viini",52],"trw":["nti",182],"lp":["tiin","vin","tin","vih","th","viin"],"rp":["ht","hti","niit","nti","int","hit","ntti","nit","init","nv","iint","nitt","hv","itin"]},"57":{"input":[1,4,5,6],"tlp":["van",24884],"trp":["hta",10602],"tlw":["vaan",7099],"trw":["hanta",8388],"lp":["van","aht","tah","vaan","vain","vah","vanh","taht","ahti","vaha","avan","tain","taha","vana"],"rp":["hta","hant","ivan","htaa","hat","inta"]},"58":{"input":[2,4,5,6],"tlp":["tkin",2359],"trp":["ntis",951],"tlw":["viisin",90],"trw":["kiinnitti",90],"lp":["tkin","ch","tsin","tins","stin","tij","vink","tsh","tsij","tch"],"rp":["ntis","nist","hist","nci","hits","ncis","nsiv","itsh","nits","htik"]},"59":{"input":[1,2,4,5,6],"tlw":["vastaan",3099],"trw":["niista",1303],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["rin",8705],"trp":["yv",14540],"tlw":["tehnyt",1374],"trw":["hyvin",4061],"lp":["rin","teh","tyi","eht","ven","rh"],"rp":["yv","hyv","het","iten","her","yht","hte","yvi","herr","hyvi","yvin","ytti","heit","hnyt"]},"61":{"input":[1,3,4,5,6],"tlw":["taytyi",1362],"trw":["hanet",4513],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["sitten",8039],"trw":["kenties",944],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["teidan",2121],"trw":["kerran",2976],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",9026],"trw":["o",542],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",201],"trp":["oa",14352],"lp":["ao"],"rp":["oa","oaa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",15574],"trp":["os",54094],"tlw":["so",36],"lp":["so","soo","sso","sos","soss"],"rp":["os","oss","oso","oos","ooss"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["soa",566],"trp":["ossa",8151],"trw":["osaa",838],"lp":["soa","aso","sao","ssao"],"rp":["ossa","osa","oas","osaa","osas","ow"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",536],"trp":["oe",3004],"trw":["-",534],"lp":["eo"],"rp":["oe"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",142],"trp":["ox",358],"lp":["a-","a-a","xo"],"rp":["ox","-a","oxo"]},"70":{"input":[2,3,7],"tlp":["do",12063],"trp":["od",8394],"lp":["do","dos","edo","sod","soe","doss","esso","eos","eoss","edos"],"rp":["od","ode","odo","ose","odos","oose","oses","odes","oes","oess"]},"71":{"input":[1,2,3,7],"tlp":["ado",599],"trp":["oda",1130],"tlw":["sodassa",75],"lp":["ado","soda","aado","dow","eado","adow"],"rp":["oda","odas","odaa"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",61617],"trp":["ot",51834],"tlw":["g",128],"trw":["ogoot",161],"lp":["to","tto","tot","too","tott","go","gt","goo","goot","gto","ttoo","gg"],"rp":["ot","ott","oto","otto","oot","og","ogo","ogoo"]},"73":{"input":[1,4,7],"tlp":["ato",2846],"trp":["ota",12728],"tlw":["totta",1107],"trw":["ottaa",1121],"lp":["ato","toa","ga","atto","ag","gat","gata","aato","ttoa","ago","gatt","toaa","fo"],"rp":["ota","otta","otaa","of","oat","oata","otoa"]},"74":{"input":[2,4,7],"tlp":["sto",3632],"trp":["ost",9527],"lp":["sto","tso","tos","sot","co","toss","tost","sott","stos","tsoo","stot","stoo","tsos","tsot","gs"],"rp":["ost","ots","oc","osto","osot"]},"75":{"input":[1,2,4,7],"tlp":["atso",3515],"trp":["osta",6277],"tlw":["sota",171],"trw":["ostaa",147],"lp":["atso","asto","gas","sota","atos","tsoa","sato","stoa","gast","sof","aggs","asot"],"rp":["osta","oast","otsa","osat","osof","owc"]},"76":{"input":[3,4,7],"tlp":["ro",11439],"trp":["or",16598],"tlw":["eero",648],"lp":["ro","ero","rto","tor","erto","ge","eto","rot","rg","erg","rro","erro","etto"],"rp":["or","ote","ort","ore","oet","oett","otte"]},"77":{"input":[1,3,4,7],"tlp":["rag",1424],"trp":["ora",1253],"tlw":["erottaa",195],"lp":["rag","aro","rtoa","rof","atro","rota","etoa","rofe","gra","aroo","roa","eroa","for"],"rp":["ora","oraa","orta","ofe","oeta","orea","otar"]},"78":{"input":[2,3,4,7],"tlp":["dot",4568],"trp":["odot",2046],"tlw":["god",157],"lp":["dot","dott","tod","tode","dost","ros","stor","sor","doto","cor","cort","roc","serg","ssor","tsoe","tros","ross"],"rp":["odot","oste","ors"]},"79":{"input":[1,2,3,4,7],"tlw":["grace",80],"trw":["odottaa",481],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",111283],"trw":["on",43019],"lp":[],"rp":["on","un","uu","uo","nu","no","ou","uon","nun","unn","onn","uun","unu","nnu","nuo","oon","nno","non","nou","onu"]},"81":{"input":[1,5,7],"tlp":["au",31984],"trp":["ua",18997],"lp":["au","ano","anu","aun","annu","aanu","aua","anoa","anon","auan"],"rp":["ua","nua","noa","ona","una","nau","uan","uona","onaa","unna"]},"82":{"input":[2,5,7],"tlp":["su",33737],"trp":["jo",99696],"tlw":["sun",387],"trw":["jos",9131],"lp":["su","suu","suo"],"rp":["jo","us","jos","ju","jon","oj","uus","jou","juu","uos","joss","ous","uns","nous","nus","ons","uss"]},"83":{"input":[1,2,5,7],"tlp":["sano",17998],"trp":["oja",7593],"tlw":["sanoa",1500],"trw":["jossa",2870],"lp":["sano","aus","asu","ausu","ajo","anoj","aju","sua"],"rp":["oja","noas","onsa","ussa","uja","noja","unsa","ojan","osan","uas","uoja","ojaa"]},"84":{"input":[3,5,7],"tlp":["eu",8909],"trp":["yo",14437],"tlw":["eno",84],"trw":["yon",465],"lp":["eu","enu","eno","ennu"],"rp":["yo","one","onne","unne","oy","ue","uone","yon","onee","une","oen","neu","unee","onen","noe","noen"]},"85":{"input":[1,3,5,7],"tlp":["que",622],"trp":["yona",396],"trw":["yona",396],"lp":["que","anoe","aune","aue","enoa","euna","xon","aneu","aeu"],"rp":["yona","nox","oxon","-na","-nay","nque","naeu","unay"]},"86":{"input":[2,3,5,7],"tlp":["seu",5113],"trp":["ud",9289],"tlw":["syo",106],"trw":["uuden",713],"lp":["seu","don","du","suud","syo"],"rp":["ud","ude","uud","uude","yos","use","uden","uod","oje","ojen","udes","uode","oyd","ues","oden"]},"87":{"input":[1,2,3,5,7],"tlw":["sanoen",554],"trw":["juoda",134],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",97385],"trp":["ut",111271],"tlw":["tuo",4127],"trw":["outo",170],"lp":["tu","tun","tuo","ttu","ton","tunt","tuu"],"rp":["ut","utt","nut","uut","ng","unt","uot","unut","nnut","nto","uutt","utu","ont"]},"89":{"input":[1,4,5,7],"tlp":["anut",9016],"trp":["utta",36184],"tlw":["tuota",1414],"trw":["uutta",628],"lp":["anut","tanu","aut","tua","atu","autt","anto","attu","ttua","anot","tau","agn","ang"],"rp":["utta","uta","uuta","nga","onta","uota","unta"]},"90":{"input":[2,4,5,7],"tlp":["stu",9987],"trp":["jot",16587],"tlw":["totuus",204],"trw":["joutunut",411],"lp":["stu","tus","tuns","tuos","suut","toj","tust","stun","tsu","stus","sut"],"rp":["jot","ust","nust","jost","jout","nost","jott","uost","uots"]},"91":{"input":[1,2,4,5,7],"tlw":["saanut",2403],"trw":["jota",3761],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",10641],"trp":["ur",27188],"tlw":["tytto",1225],"trw":["nuoren",497],"lp":["ru","eur","ettu","tyo","rou","ruu","tur","eut"],"rp":["ur","uur","uor","ure","uure","ute","nuor","uten","unte","yot","uute","ytto"]},"93":{"input":[1,3,4,5,7],"tlw":["tyota",814],"trw":["yota",359],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["suuren",1116],"trw":["joten",283],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["suurta",798],"trw":["uudestaan",554],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",180531],"trw":["oli",55295],"lp":[],"rp":["ll","ol","li","oi","oli","il","ill","lo","oll","lli","loi","llo","lloi","illo","lii","io","olli","ilo","oil","oill"]},"97":{"input":[1,6,7],"tlp":["al",103204],"trp":["la",161361],"tlw":["alla",1156],"trw":["olla",4699],"lp":["al","all","alla","ala","aal","aall","ali","alli","alo","ail","alai"],"rp":["la","lla","illa","lai","olla","laa","ila","llai","llaa"]},"98":{"input":[2,6,7],"tlp":["sil",23278],"trp":["ko",79476],"tlw":["soi",379],"trw":["olisi",9034],"lp":["sil","sill"],"rp":["ko","ok","lis","ois","lk","lisi","olis","koi","oik","llis","osk","oko","kok","kos","koko","iko","oisi","lko"]},"99":{"input":[1,2,6,7],"tlp":["alk",11320],"trp":["oka",22378],"tlw":["silla",7800],"trw":["koska",1773],"lp":["alk","sal","alko","alka","alas","aiko","ako","sala","sall"],"rp":["oka","lais","las","kal","lka","oska","kall","lak","oika","lkaa","laki"]},"100":{"input":[3,6,7],"tlp":["el",107523],"trp":["le",115183],"tlw":["eli",822],"trw":["ole",10027],"lp":["el","ell","elle","eli","ele","eil","eill","elli"],"rp":["le","lle","ole","iel","lee","ille","llee","iell","olle","iele","lei","lel"]},"101":{"input":[1,3,6,7],"tlp":["ella",24479],"trp":["iela",9775],"tlw":["elaa",782],"trw":["lea",62],"lp":["ella","ela","alle","ale","eal","elaa","eall","elia","aile","elai","alee","alel","a-al","aale","alea","elal"],"rp":["iela","lea","-al","lae"]},"102":{"input":[2,3,6,7],"tlp":["sel",13503],"trp":["oise",7642],"tlw":["eiko",1404],"trw":["kello",600],"lp":["sel","sell","siel","del","dell","elk","eiso","seli","skel"],"rp":["oise","lke","oike","lise","les","kel","lkee","kell","okse","isel","oid"]},"103":{"input":[1,2,3,6,7],"tlw":["siella",4520],"trw":["keskella",829],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",29749],"trp":["lt",22549],"tlw":["voi",5384],"trw":["otti",1283],"lp":["vo","toi","voi","til","toiv","gi","voit"],"rp":["lt","oit","ov","liv","oliv","oitt","oiv","lit","lv","ilt","otti","oti","ito"]},"105":{"input":[1,4,6,7],"tlp":["val",18640],"trp":["lta",17662],"tlw":["taalla",3001],"trw":["olivat",8509],"lp":["val","tal","alt","vall","alta","vali","taal","talo","aval","tila","tall","valt"],"rp":["lta","liva","ova","ovat","oita","oiva","ilta","lat"]},"106":{"input":[2,4,6,7],"tlp":["tois",11857],"trp":["otk",7732],"tlw":["voisi",1258],"trw":["kiitos",454],"lp":["tois","tko","svo","vois","tosi","tok","soit","vos","tsoi","tkoi","svoi","stoi"],"rp":["otk","oist","list","kot","kov","isto","koti","osti"]},"107":{"input":[1,2,4,6,7],"tlw":["saattoi",861],"trw":["katsoi",951],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["tel",10931],"trp":["lev",8000],"tlw":["teille",1239],"trw":["olet",1963],"lp":["tel","viel","elt","vel","teli","tell","ttel","ril","rill","evo","elv"],"rp":["lev","let","ori","olet","olev","ielt","lett","ove","leet"]},"109":{"input":[1,3,4,6,7],"tlw":["viela",8600],"trw":["oleva",577],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["toiset",990],"trw":["kertoi",658],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["sielta",1053],"trw":["katseli",846],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",66193],"trw":["olin",2657],"lp":[],"rp":["ui","ul","lu","uin","inu","oin","hu","oh","ull","llu","uh","uol","noi","uul","lin","ollu","loin","uli","huo","luo"]},"113":{"input":[1,5,6,7],"tlp":["anoi",9266],"trp":["lah",8966],"tlw":["ainoa",772],"trw":["liian",1614],"lp":["anoi","aino","auh","alan","aul","auni","alu"],"rp":["lah","ulla","lan","inua","laan","hal","inoa","lain","lau","uha","nal","hall","ula"]},"114":{"input":[2,5,6,7],"tlp":["sinu",6349],"trp":["ku",115005],"tlw":["silloin",5497],"trw":["kuin",22585],"lp":["sinu"],"rp":["ku","kui","kuin","kun","uk","jok","kuu","onk","lj","joi","nku","kuul","koh","uks","jonk","usk","nkui","kul","usi"]},"115":{"input":[1,2,5,6,7],"tlw":["sanoi",7087],"trw":["joka",18978],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elu",3144],"trp":["len",16714],"tlw":["eilen",316],"trw":["olen",5653],"lp":["elu","elen"],"rp":["len","yl","nel","ule","nell","leen","olen","uole","ulle","yll","hel","oine","line","ulee","llen","uule","yli","ly"]},"117":{"input":[1,3,5,6,7],"tlw":["aanella",765],"trw":["hanelle",4619],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["ennenkuin",1410],"trw":["oikein",2049],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["sellainen",739],"trw":["kylla",3839],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["tul",21501],"trp":["lut",16706],"tlw":["tuli",4747],"trw":["ollut",10662],"lp":["tul","tui","vu","tuli","vuo","voin","tull","toin"],"rp":["lut","llut","uv","oht","uit","inut","hto","ing","ult","htu","itu","utti"]},"121":{"input":[1,4,5,6,7],"tlw":["tulla",1527],"trw":["lahti",967],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["tunsi",1344],"trw":["istui",1253],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["ainoastaan",2528],"trw":["jotka",7436],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["tulee",3128],"trw":["nuori",1213],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["rouva",1878],"trw":["olevan",1792],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["suuri",2189],"trw":["kuitenkin",3603],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["tahdon",933],"trw":["kuitenkaan",984],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",8308],"trw":["p",1108],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",22497],"trp":["pa",77545],"trw":["paa",544],"lp":["ap","apa","app","apaa","aap","appa","aapa"],"rp":["pa","paa","pap","ppa","papp","ppaa","paaa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",2110],"trp":["ps",4292],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["aps",4165],"trp":["paas",5700],"trw":["paassa",773],"lp":["aps","spa","saap","apas","asp","aspa","sap","saps","apsa"],"rp":["paas","pas","ppas","psa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",2526],"trp":["pe",16376],"trw":["'",576],"lp":["ep","epp","e'","eep"],"rp":["pe","'e","pee","ppe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["epa",1849],"trp":["pea",2103],"tlw":["aape",205],"lp":["epa","ape","aape","apea","eppa","appe","epaa"],"rp":["pea","'a","pape","pae","peaa","paae"]},"134":{"input":[2,3,8],"tlp":["s'",618],"trp":["pse",2270],"lp":["s'","sep","esp","sepp","d'","spe","ss'","s'e","es'"],"rp":["pse","pes","psee","ped","pede","pses","pees"]},"135":{"input":[1,2,3,8],"tlp":["apse",2143],"trp":["peas",737],"tlw":["sepa",189],"trw":["paase",202],"lp":["apse","espa","sepa","epas","d'a","d'as"],"rp":["peas","pesa","'as"]},"136":{"input":[4,8],"tlp":["tp",203],"trp":["pt",207],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",6856],"trp":["paat",3775],"tlw":["tapa",257],"trw":["paata",312],"lp":["tap","tapa","tapp","apt","taap","tpa","apat"],"rp":["paat","pat"]},"138":{"input":[2,4,8],"lp":[],"rp":[]},"139":{"input":[1,2,4,8],"tlp":["stap",241],"trp":["past",383],"trw":["paasta",1393],"lp":["stap","spat"],"rp":["past"]},"140":{"input":[3,4,8],"tlp":["t'",2289],"trp":["per",3933],"tlw":["ett'",217],"lp":["t'","tt'","ett'","t'e","tt'e","rp","rpe","rpee","r'","rr'","rep","err'"],"rp":["per","pet","pett","pr","pte","ptee","pere","pre"]},"141":{"input":[1,3,4,8],"tlp":["arp",756],"trp":["par",8411],"trw":["paeta",156],"lp":["arp","tarp","arpe","aper","t'a","rap","rapa","apte","epat","arr'","rapp","fe'"],"rp":["par","pera","pare","para","paet","pate","part","peat"]},"142":{"input":[2,3,4,8],"tlp":["spr",153],"trp":["pset",690],"lp":["spr","spre","tsep","st'"],"rp":["pset"]},"143":{"input":[1,2,3,4,8],"tlw":["d'astarac",81],"trw":["perasta",769],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",28094],"trw":["m",905],"lp":[],"rp":["mm","mp","np","nm","mpp"]},"145":{"input":[1,5,8],"tlp":["am",46002],"trp":["ma",123834],"trw":["nama",1502],"lp":["am","ama","amaa","aman","aam","amm","aama","amp"],"rp":["ma","maa","man","maan","mma","pan","mpa","mman","npa","paan","nam","nama"]},"146":{"input":[2,5,8],"tlp":["sm",505],"lp":["sm"],"rp":[]},"147":{"input":[1,2,5,8],"tlp":["sam",8343],"trp":["mas",10187],"tlw":["samassa",1358],"trw":["paansa",590],"lp":["sam","sama","amas","span","saam","samm","ssam","sma","sanm","asm"],"rp":["mas","mass","mans","maas","mmas","panj","maj","pans","mpas","jam"]},"148":{"input":[3,5,8],"tlp":["em",30930],"trp":["me",55008],"tlw":["emme",1059],"trw":["me",4210],"lp":["em","emm","emp","emme","enem"],"rp":["me","men","my","mme","ym","py","nem","mene","menn","ymm","nemm","ymp","ymy","pyy","mee"]},"149":{"input":[1,3,5,8],"tlp":["ema",9490],"trp":["ympa",2574],"tlw":["enemman",2199],"trw":["menna",1245],"lp":["ema","emma","emaa","ame","amme","eman","empa","amen","enpa","eam","eamm","eamp"],"rp":["ympa","ymma","mea","pane","yma","nema","ymaa","mpea"]},"150":{"input":[2,3,5,8],"tlp":["sem",3594],"trp":["mes",2527],"tlw":["esm",37],"trw":["pysyy",153],"lp":["sem","semm","sym","symy","spen","dem","demm"],"rp":["mes","pys","ysym","psen","pysy","mess","mens","pyys","mys","ymys","pyyd","meyd","pend"]},"151":{"input":[1,2,3,5,8],"tlw":["sydamensa",387],"trw":["pyydan",244],"lp":[],"rp":[]},"152":{"input":[4,5,8],"trp":["mb",336],"lp":[],"rp":["mb","mmb"]},"153":{"input":[1,4,5,8],"tlp":["tam",18925],"trp":["mat",13373],"tlw":["tama",6514],"trw":["maata",654],"lp":["tam","tama","amat","ttam","tamm","ammb","atam","taam","tamp","amb"],"rp":["mat","matt","mmat","maat","mant","pant","mata","ntam","ntap"],"special":"numsym"},"154":{"input":[2,4,5,8],"lp":[],"rp":[]},"155":{"input":[1,2,4,5,8],"tlw":["samat",179],"trw":["maasta",321],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",5379],"trp":["mer",3161],"tlw":["ett'en",165],"trw":["mr",635],"lp":["rm","rem","tem","remp","remm","temm","rme","ttem","temp"],"rp":["mer","met","mr","pent","ment","mere","pyyt","ntem","pyr","myr","metr"]},"157":{"input":[1,3,4,5,8],"tlw":["emanta",515],"trw":["ymmarra",345],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"trw":["mrs",279],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["armas",161],"trw":["paassyt",507],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",36935],"lp":[],"rp":["pi","ip","ppi","pii","iip","ipp","ipi","iipp","iipi","piip","ipii","ppii"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2247],"trp":["pai",17547],"trw":["pappi",810],"lp":["api","appi","apai","aip","aipa","aapi","aipp"],"rp":["pai","pia","ipa","papi","ppia","ipaa","ippa","piaa"]},"162":{"input":[2,6,8],"tlp":["sip",134],"trp":["pik",1832],"lp":["sip","siip"],"rp":["pik","psi","pis","pikk","isp","piis","iisp","pisi","piki","kip","ksip","kkip","kipi","piik","psis","piks","isip","kiip"]},"163":{"input":[1,2,6,8],"tlp":["apsi",1759],"trp":["paik",2876],"tlw":["saapi",132],"trw":["paasi",542],"lp":["apsi","spai","apis","sipa"],"rp":["paik","pak","kap","pasi","ispa","kapa","pais","kapp","paak","pakk","psia","paks","kaip","kkap","ipas","pias"]},"164":{"input":[3,6,8],"tlp":["eip",817],"trp":["pie",5244],"lp":["eip","epi","eppi","eipp","e'i","eepi"],"rp":["pie","'ei","pei","ipe","'i","iep","ppie","iepp","iepi","iipe","ipie"]},"165":{"input":[1,3,6,8],"tlp":["epai",1133],"trp":["'ai",235],"tlw":["eipa",378],"lp":["epai","eipa","epia","apei"],"rp":["'ai","ipea"]},"166":{"input":[2,3,6,8],"tlp":["siep",69],"trp":["pid",1813],"trw":["kiipesi",44],"lp":["siep"],"rp":["pid","pesi","pide","k'","peek","kk'","ikk'","pek","pike","pekk","kipe","pidi","is'","ksep","k'e","kk'e","k'ei","ipid","iss'"]},"167":{"input":[1,2,3,6,8],"tlw":["sieppasi",69],"trw":["pida",405],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["viip",485],"trp":["pit",11493],"trw":["piti",1713],"lp":["viip"],"rp":["pit","piti","piv","ipit","ppiv","pitt","ipiv"]},"169":{"input":[1,4,6,8],"tlp":["vap",1883],"trp":["paiv",6732],"tlw":["vapaa",269],"trw":["pitaa",1916],"lp":["vap","vapa","vaip","vapi","apit","taip","tapi"],"rp":["paiv","pita","pait","itap","piva","paav"]},"170":{"input":[2,4,6,8],"trp":["pitk",4224],"trw":["pisti",361],"lp":[],"rp":["pitk","pist"]},"171":{"input":[1,2,4,6,8],"tlw":["sitapaitsi",428],"trw":["pitaisi",756],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["t'ei",979],"trp":["peri",1054],"tlw":["ett'ei",867],"trw":["peitti",175],"lp":["t'ei","riip","reip","repi","viep","t'i","rip"],"rp":["peri","peit","piet","pite","piir","pir","it'","pier","pri","pirt","'eiv","iit'","irip"]},"173":{"input":[1,3,4,6,8],"tlw":["ett'eivat",74],"trw":["pari",989],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["sit'",100],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["tarpeeksi",310],"trw":["parka",244],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",120870],"trw":["mihin",694],"lp":[],"rp":["mi","min","im","hm","ihm","mmi","hmi","ihmi","mmin","imm","imi","nim","iim","mpi","mii","nimi","miin","pin","pim","hmin"]},"177":{"input":[1,5,6,8],"tlp":["aim",2568],"trp":["mina",17633],"trw":["mina",16504],"lp":["aim","ami","apah","amia"],"rp":["mina","mai","ima","pain","pah","mia","main","mah","maai","imma","pian","paha","ham","imaa","maah","imai"]},"178":{"input":[2,5,6,8],"tlp":["sim",3768],"trp":["mis",12062],"trw":["miksi",1344],"lp":["sim","simm","smi"],"rp":["mis","mik","hmis","miss","mink","nsim","misi","miks","imis","kim","isim","jim","mpik","ism","mk","kimp","ismi"]},"179":{"input":[1,2,5,6,8],"trw":["mika",3480],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emmi",3536],"trp":["mie",19226],"tlw":["ennemmin",163],"trw":["meni",1459],"lp":["emmi","empi","emi"],"rp":["mie","mei","ime","mieh","pien","iime","meni","hem","imei","imme","hemm","nime","hym","mein","hymy","hme","mine"]},"181":{"input":[1,3,5,6,8],"trw":["miehia",566],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["esim",379],"trw":["mies",3388],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["ensimainen",403],"trw":["meidan",2780],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["viim",3133],"trp":["mit",21696],"trw":["nimitti",52],"lp":["viim","tim","ttim","vim","vimm","timm","tinp"],"rp":["mit","mitt","imit","mint","htim","miit","mmit","npit","pint","miv","imiv"]},"185":{"input":[1,4,5,6,8],"trw":["mita",10059],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"trw":["pitkin",1130],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"trw":["mista",982],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["viimein",718],"trw":["miten",2370],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["eteenpain",770],"trw":["meita",1361],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["sittemmin",355],"trw":["ihmiset",1045],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["varmaankin",428],"trw":["miesta",877],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",17061],"lp":[],"rp":["po","op","opp","ppo","oop","oopp","poo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",392],"trp":["opa",760],"lp":["apo","appo","aapo"],"rp":["opa","poa","ppoa","oopa","opaa"]},"194":{"input":[2,7,8],"tlp":["sop",886],"trp":["pos",648],"lp":["sop"],"rp":["pos","osp"]},"195":{"input":[1,2,7,8],"trp":["ospa",434],"lp":[],"rp":["ospa"]},"196":{"input":[3,7,8],"tlp":["epo",141],"trp":["ope",2399],"lp":["epo","epoo"],"rp":["ope","'o","oppe"]},"197":{"input":[1,3,7,8],"tlp":["epoa",105],"trp":["opea",620],"lp":["epoa"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["s'o",328],"trp":["osep",102],"lp":["s'o"],"rp":["osep"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["gtp",153],"trp":["pot",295],"lp":["gtp","tpo","gtpo","top"],"rp":["pot","pott"]},"201":{"input":[1,4,7,8],"tlp":["apot",165],"trp":["pato",255],"lp":["apot","tapo","topa"],"rp":["pato","pota","otap"]},"202":{"input":[2,4,7,8],"trp":["post",449],"lp":[],"rp":["post"]},"203":{"input":[1,2,4,7,8],"trw":["paatos",82],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["tpor",153],"trp":["opet",1620],"trw":["peto",55],"lp":["tpor","tope","roop"],"rp":["opet","por","port","pro","poro","peto"]},"205":{"input":[1,3,4,7,8],"trw":["opettaa",197],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["petosta",39],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mu",58870],"trw":["muu",588],"lp":[],"rp":["mu","pu","om","mo","muu","um","uom","puo","up","mon","pun","puu","upu","upun","opu","umm","ppu","nom","uum","mmo"]},"209":{"input":[1,5,7,8],"tlp":["aup",2791],"trp":["oma",16400],"tlw":["apua",470],"trw":["oman",1021],"lp":["aup","apu","aupu","amo","amu","apau","aamu","aapu","anom"],"rp":["oma","uma","uoma","omaa","oman","pau","noma","upa","umaa","umma","panu"]},"210":{"input":[2,5,7,8],"tlp":["suom",4018],"trp":["jum",4241],"tlw":["suom",417],"lp":["suom","som","sum"],"rp":["jum","mus","poj","jop","mons","muus","pus","moj","opus","moos","josp","puss","omus","mos","npoj","psu","psuu"]},"211":{"input":[1,2,5,7,8],"tlw":["sanomaan",203],"trw":["pojan",607],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emmo",1235],"trp":["myo",6382],"tlw":["emo",86],"trw":["monen",273],"lp":["emmo","emu"],"rp":["myo","ome","uome","omen","poy","mone","upe","nope","pue","myon","ume","uem","yom","meno","pyo","omme","uemm","pune"]},"213":{"input":[1,3,5,7,8],"trw":["myonnan",82],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["suomen",1322],"trw":["myos",1706],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["suomessa",236],"trw":["poydan",440],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",3714],"trp":["mut",29213],"tlw":["tom",275],"trw":["muut",992],"lp":["tom","ttom","tum","tuom","tomu","bom","gbom","tup","ttum"],"rp":["mut","mutt","muut","pung","mont","puut","muot","put","mbo","mmbo","puto"]},"217":{"input":[1,4,5,7,8],"trw":["mutta",28564],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"trw":["muutos",112],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["tuomas",244],"trw":["pojat",604],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["bergbom",465],"trw":["muuten",1081],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["tuntemaan",300],"trw":["poytaan",161],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["sprengtport",116],"trw":["prudence",171],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["etupaassa",239],"trw":["opettaja",379],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["poi",8488],"trw":["oppi",180],"lp":[],"rp":["poi","lop","lp","oppi","opi","pil","pol","lpo","lopp","ppil","lip","iop","liop","ilp","lpp","lppo","ippo","ppol","poli","pio"]},"225":{"input":[1,6,7,8],"tlp":["alp",476],"trp":["pal",8702],"trw":["lapi",904],"lp":["alp","alap"],"rp":["pal","lap","pala","paal","lapi","pail","pila","ppal","lapa","lipa","lpa","palo","lpaa","llap","lapp","iopa","opai","ilpa"]},"226":{"input":[2,6,7,8],"tlp":["sopi",829],"trp":["poik",4206],"tlw":["sopii",210],"trw":["pois",3248],"lp":["sopi"],"rp":["poik","pois","lpos","kop","lkop","opis","polk","posk","losp","psil","pilk","oisp","kilp","pios"]},"227":{"input":[1,2,6,7,8],"trw":["poika",1648],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",1235],"trp":["pel",3429],"tlw":["ell'ei",70],"trw":["piilee",68],"lp":["elp","elpo","elpp","elip","ell'"],"rp":["pel","lpe","l'","lep","ll'","pelo","peli","leip","ppel","lope","peel","pell","'ol","'oli","ill'"]},"229":{"input":[1,3,6,7,8],"tlw":["epailla",102],"trw":["paalle",747],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["s'oli",178],"trw":["pelko",234],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["sill'aikaa",122],"trw":["pelkaa",283],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["voip",114],"trp":["pilv",391],"tlw":["voipi",114],"trw":["ippolit",287],"lp":["voip","vilp","tiop"],"rp":["pilv","opiv","polv","polt","lpit","lpot","pito"]},"233":{"input":[1,4,6,7,8],"tlw":["apotti",165],"trw":["palata",236],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["potki",36],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["sopiva",101],"trw":["palasivat",135],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["viel'",99],"trw":["perille",288],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["vielapa",360],"trw":["portaita",183],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["tok'",38],"trw":["posket",92],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["tarpeellista",75],"trw":["lapset",690],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["lm",22428],"trw":["minun",5382],"lp":[],"rp":["lm","minu","ilm","puh","puol","mui","oim","mil","puhu","huom","lmi","omi","mill","moi","olm","ilmi","imo","pui","mol","moin"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["aamulla",431],"trw":["minua",4742],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["silmin",342],"trw":["pikku",1155],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["samalla",1927],"trw":["paljon",3194],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["minulle",3318],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["elaman",1008],"trw":["meilla",1051],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["semmoinen",325],"trw":["myoskin",2227],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["suomalaisen",431],"trw":["kallem",1117],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["toimi",174],"trw":["minut",1928],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["tapahtunut",602],"trw":["muutamia",1006],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["sopinut",80],"trw":["muutkin",289],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["silmat",1184],"trw":["minusta",1102],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["toimeen",479],"trw":["miltei",281],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["epailematta",384],"trw":["molemmat",921],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["rupesi",652],"trw":["helposti",449],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["tapauksessa",366],"trw":["puolesta",598],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/fr-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/fr-keymap.json index 9613ba92b6..22c4f4cd26 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/fr-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/fr-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlw":["a",186860],"lp":[],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",130131],"tlw":["s",189],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",154012],"tlw":["sa",35710],"lp":["as","sa","ass","ssa","assa","wa","asa","sas","ssas","sass","aw","was","sw"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",43082],"tlw":["e",648],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",45510],"tlw":["x",164],"lp":["ea","ex","xe","xa","exa","exe","ae","ax","xee"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["es",647732],"tlw":["de",329573],"lp":["es","de","se","des","sse","ses","ess","ed","esse","ds","ese","ees","dess","see","dee","ede","sses","eds","ssee","dese"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",113149],"tlw":["sexe",325],"lp":["da","asse","ad","essa","ade","ada","sea","dea","eda","ase","we","deda","das","sex","ew","ades","esa","ssea","adea","dex"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",56643],"tlw":["t",179],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",168893],"tlw":["ta",2612],"lp":["ta","fa","at","ff","att","af","tat","tta","aff","ffa","affa","ata","atta","fat","tf","ttf","ft","fata","tata"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",141218],"tlw":["c",294],"lp":["st","ts","ct","sc","cc","cs","tc","cts","sts"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",78160],"tlw":["ca",22002],"lp":["ca","ac","sta","fac","act","acc","cas","sac","tac","cat","tas","sat","ats","ast","aca","sca","cac","cca","fs","sf"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["re",583533],"tlw":["et",174550],"lp":["re","et","er","te","tr","tre","rt","ere","rr","ete","ter","tte","etr","ett","rte","ret","etre","ette","err","rre"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",199557],"tlw":["frere",1316],"lp":["ar","ra","eta","fe","tra","art","fr","arr","era","ef","rta","fer","are","atte","ara","ate","rra","fra","ref","rea"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",214983],"tlw":["ce",47447],"lp":["ce","ec","est","res","rs","rd","dr","ser","rc","tes","cr","ers","dre","ste","ces","tres","cet","der","cett","rec"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",29774],"tlw":["tard",3213],"lp":["ard","ace","arc","car","ras","sera","arde","rac","rda","arda","dra","arce","cra","tard","face","esta","rsa","xc","exc","acte"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",57349],"trw":["n",242],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",332256],"trp":["na",60823],"tlw":["anna",1043],"trw":["na",258],"lp":["an","ann","aq","anq","anna","ana","anan"],"rp":["na","nna","nan","nq","nnan","nann","nana"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",130],"trp":["ns",191473],"trw":["j",225],"lp":["sn"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["ans",94605],"trp":["ja",25027],"tlw":["sans",15580],"trw":["jan",70],"lp":["ans","san","sq","sans","ssan","aj","asq","ansa","wn","wan"],"rp":["ja","nsa","jan","nsan","nas","jas","nja","nw","nwa"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",547626],"trp":["ne",292024],"tlw":["en",90753],"trw":["ne",63131],"lp":["en","ene","enn","enne","ey","enny","eye"],"rp":["ne","nne","ye","nee","ny","nnee","nny","nen","yen","nnen","yn","yne","ney"]},"21":{"input":[1,3,5],"tlp":["ena",18722],"trp":["ya",10697],"tlw":["annee",430],"trw":["nanny",98],"lp":["ena","ay","enan","anne","ane","eq","ean","aye","aya","ayan","any","xan","anny","enq","exan"],"rp":["ya","yan","nea","nnea","nean"]},"22":{"input":[2,3,5],"tlp":["end",46705],"trp":["nd",127339],"tlw":["sens",2477],"trw":["je",94389],"lp":["end","ens","sen","ense","ej","den","dej","esen","sens","ends","ende"],"rp":["nd","je","nde","nse","nes","nds","ys","nees","ndes"]},"23":{"input":[1,2,3,5],"tlp":["dan",83378],"trp":["nda",18852],"tlw":["dans",69810],"trw":["jean",744],"lp":["dan","dans","and","ande","enda","anda","eja","deja","esq","say","ssay","ensa","ands","ays","saye","saya"],"rp":["nda","ndan","jea","jean"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",863],"trp":["nt",395069],"tlw":["b",429],"lp":["bb","bt","tn"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ant",99116],"trp":["nf",14856],"tlw":["tant",2815],"lp":["ant","ab","ba","tan","tant","tab","fan","bat","fant","ban","anta","batt","aba","bab"],"rp":["nf","nta","nant","nfa","nfan","nat"]},"26":{"input":[2,4,5],"tlp":["bs",4870],"trp":["nc",84806],"lp":["bs","bj","bsc","bst","sb"],"rp":["nc","nts","nst","nsc","ncs","nct"]},"27":{"input":[1,2,4,5],"tlp":["anc",29956],"trp":["nca",8089],"tlw":["bas",1760],"lp":["anc","sant","stan","bas","ants","can","anca","tanc","sanc","abs","sab","cab","bass","ancs","cq","acq"],"rp":["nca","nsta","jac","ntac"]},"28":{"input":[3,4,5],"tlp":["ent",205997],"trp":["nte",52433],"tlw":["entre",6016],"lp":["ent","ten","ren","be","br","rn","ente","entr","bre","rent","ern","rne","tent","tten"],"rp":["nte","ntr","ntre","ner","nten","nter"]},"29":{"input":[1,3,4,5],"tlp":["ran",32995],"trp":["ntra",4859],"tlw":["enfant",1479],"lp":["ran","rq","enf","tena","ante","bra","rna","bea","enta","rant","tran","enfa","rtan","fran","arq","bar","arb","fen","rena"],"rp":["ntra"]},"30":{"input":[2,3,4,5],"tlp":["enc",33290],"trp":["nce",37449],"tlw":["cent",1511],"trw":["jeter",658],"lp":["enc","endr","tend","ence","rend","sent","cen","ents","cent","bes","dern","dent","scen","renc","deb"],"rp":["nce","ndr","ndre","jet","ncer"]},"31":{"input":[1,2,3,4,5],"tlw":["bras",4531],"trw":["jeta",1297],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",352],"trw":["ii",352],"lp":[],"rp":["ii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",540051],"trp":["ia",19364],"tlw":["ai",3119],"lp":["ai","za","zi","zai","az","zz","azi","zzi","aza","zza","ziz","aziz","ziza"],"rp":["ia","iz","iza","iai","izai","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",117702],"trp":["is",301576],"tlw":["si",24030],"trw":["k",204],"lp":["si","ssi","sis","ssis","sk","ski","sisk"],"rp":["is","iss","isi","ki","ik","issi","ks","isk","kk","isis","kis","iski","kiss"]},"35":{"input":[1,2,6],"tlp":["ais",132120],"trp":["isa",17988],"tlw":["sais",5940],"lp":["ais","sai","aiss","sais","ssai","assi","aisa","aisi","asi","wi","ak","sia","sias"],"rp":["isa","issa","isai","ka","ias","kw","iais"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",36481],"trp":["ie",241794],"lp":["ei"],"rp":["ie","iei","iee"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",35534],"trp":["ix",16144],"tlw":["aie",130],"lp":["ez","aie","xi","ze","exi","xie","eai","aix","axi","zie","eiz","eize","eze","eez","xai"],"rp":["ix","iez","ixe","ixa","ize"]},"38":{"input":[2,3,6],"tlp":["di",97853],"trp":["id",28086],"tlw":["dis",1668],"trw":["idee",1596],"lp":["di","dis","sie","die","essi","esi","sei","edi","ssie"],"rp":["id","ide","ise","isse","ke","ied","ies","idee","idi","ieds","ises"]},"39":{"input":[1,2,3,6],"tlp":["dai",9749],"trp":["ida",1007],"tlw":["assez",2893],"lp":["dai","sez","aise","ssez","aid","dix","saie","dia","aide","disa","adi","xis","exis","six","dez","edia","adie","daie"],"rp":["ida","idea"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",116014],"trp":["it",399129],"tlw":["vit",2136],"lp":["ti","vi","tit","vit","viv","tiv","tti","ttit","vivi","tivi","titi"],"rp":["it","iv","iti","ivi","itt","ivit","itiv","itti"]},"41":{"input":[1,4,6],"tlp":["ait",223936],"trp":["if",12313],"tlw":["avait",34178],"trw":["if",198],"lp":["ait","av","va","tai","vai","ava","avai","tait","vait","fai","fi","ati","fait","fit","ffi","avi"],"rp":["if","ita","iva","iff"]},"42":{"input":[2,4,6],"tlp":["ci",50221],"trp":["ic",35688],"tlw":["vis",479],"trw":["ici",5070],"lp":["ci","vis","sit","sti","cti","ck","visi","vic","cit","ssit","tis","tic","sci","cis"],"rp":["ic","ist","ici","its","isit","ict"]},"43":{"input":[1,2,4,6],"tlp":["sait",14527],"trp":["ica",3062],"tlw":["vais",3612],"lp":["sait","vais","sav","fais","visa","tais","fic","cai","sava","ffic","aci","sati","vas","fici","cia","acti","stai","ack"],"rp":["ica","ista"]},"44":{"input":[3,4,6],"tlp":["ve",170346],"trp":["ir",150486],"tlw":["vie",6638],"lp":["ve","ri","ev","ver","rie","vr","vie","rit","eve","rri","eti","rti","eri","tie"],"rp":["ir","ire","ier","ite","iere","ive"]},"45":{"input":[1,3,4,6],"tlp":["etai",66155],"tlw":["etait",29101],"lp":["etai","rai","ave","air","aire","rait","eva","fair","rav","taie","vra","arri","arti","vrai","ari","vaie","erai","vez","trai","trav"],"rp":[]},"46":{"input":[2,3,4,6],"tlp":["dit",34652],"trp":["ice",6888],"tlw":["dit",17108],"lp":["dit","vec","ris","dev","vers","dir","cie","dire","cri","eci","serv","esti","sir","rci","vid","rise"],"rp":["ice","iste","ites","iers"]},"47":{"input":[1,2,3,4,6],"tlw":["avec",32748],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",206097],"trw":["ni",4413],"lp":[],"rp":["in","ni","hi","ini","nni","hin","inn","hn","nh","inni","nin","hni","inin","ih","hnn"]},"49":{"input":[1,5,6],"tlp":["ain",53875],"trp":["ha",60789],"tlw":["ah",2082],"trw":["hanna",151],"lp":["ain","ani","ah","aha","zain"],"rp":["ha","nai","iq","han","nnai","ina","hai","ian","inq","haq","niq","hain","nz","inai","nia"]},"50":{"input":[2,5,6],"tlp":["sin",6536],"trp":["ins",29943],"tlw":["siskin",137],"lp":["sin","sh","ssin","sins","shi","sini"],"rp":["ins","nsi","his","insi","nis","ji","isin","kin","inis","nk","nsis","ish","ij","nnis"]},"51":{"input":[1,2,5,6],"tlp":["ains",11321],"trp":["nais",6028],"tlw":["ainsi",3447],"trw":["jai",619],"lp":["ains","siq","sha","shan","ash","sain","anis","win","asin"],"rp":["nais","isan","isq","has","nsai","kah","kaha","hais","hass","jai","hasa"]},"52":{"input":[3,5,6],"tlp":["ein",12287],"trp":["he",90853],"tlw":["eh",1812],"trw":["hein",876],"lp":["ein","eni","eine","eh"],"rp":["he","ien","ine","nie","ienn","hie","nnie","hee","hen","hien","inee","nei","hei","hein","hine","hy"]},"53":{"input":[1,3,5,6],"tlp":["aien",30150],"trp":["hez",5597],"tlw":["ayez",139],"trw":["nez",1504],"lp":["aien","aine","enai","anie","enez","ayai","enia","zy"],"rp":["hez","nez","yai","yez","naie","nze","inze","heq","hae","hany","ixan","iane"]},"54":{"input":[2,3,5,6],"tlp":["endi",4399],"trp":["ndi",15037],"tlw":["sein",422],"trw":["indiens",185],"lp":["endi","din","sine","ensi","sien","deh","dien"],"rp":["ndi","hes","ind","iens","ines","ndis","iden","indi","nsie","ky","nsei","hesi","nsid"]},"55":{"input":[1,2,3,5,6],"tlw":["whisky",263],"trw":["jadis",260],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",37344],"trp":["int",28711],"tlw":["vin",885],"lp":["bi","tin","th","vin","vint","bit","bin","thi"],"rp":["int","nti","ib","nv","nvi","ntin","nit","ntit","niv","inv","init","invi"]},"57":{"input":[1,4,5,6],"tlp":["van",25237],"trp":["nait",11496],"tlw":["avant",8624],"trw":["navait",354],"lp":["van","vant","avan","fin","tain","aint","tiq","abi","bai","fini","atin","abit"],"rp":["nait","nfi","ntai","nfin","hab","habi","hant","ivan"]},"58":{"input":[2,4,5,6],"tlp":["ch",136528],"trp":["nch",8814],"tlw":["chic",138],"trw":["instinct",141],"lp":["ch","chi","cin","sib","ssib","stin","chin","tch"],"rp":["nch","inc","inst","nci","hist","ich","nic","nsci","isib","inci","nist","nsti"]},"59":{"input":[1,2,4,5,6],"tlw":["cinq",2262],"trw":["instant",2350],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",26666],"trp":["ient",38518],"tlw":["bien",22012],"trw":["hier",848],"lp":["ven","bie","bien","enti","rien","enir","vent","vien","rin","env","rni","even","veni","erni"],"rp":["ient","her","inte","nir","nier","hev"]},"61":{"input":[1,3,4,5,6],"tlw":["etaient",7356],"trw":["navire",568],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["dernier",2102],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["devant",6605],"trw":["jardin",804],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",3036],"trw":["o",368],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",1455],"trp":["oa",938],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",164552],"trp":["os",50157],"trw":["os",408],"lp":["so","sso"],"rp":["os","oss","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",820],"trp":["osa",3212],"lp":["wo","woo","asso","aso","aos","sao","wao","swo"],"rp":["osa","ow","owa","ossa","oas"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["e-",5380],"trp":["-e",12923],"trw":["-",5238],"lp":["e-","eo","ee-","e-o"],"rp":["-e","oe","-o"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",8193],"trp":["-a",862],"lp":["a-","x-","xo","exo","ea-","axo","a-a"],"rp":["-a","-a-","ox","oxe"]},"70":{"input":[2,3,7],"tlp":["do",52067],"trp":["ose",20090],"tlw":["dos",2170],"trw":["ose",204],"lp":["do","s-","eso","dos","es-","deso","soe","d-","esso","doss"],"rp":["ose","od","-d","-de","ode","oses","osse","-des","-s","ood"]},"71":{"input":[1,2,3,7],"tlp":["a-d",1260],"trp":["owe",807],"trw":["owe",223],"lp":["a-d","da-","ado","as-","a-de","wood","sa-","x-s","x-se","dexo","s-a","s-a-","saxo"],"rp":["owe","-a-d","-w","-we","oad","odw","oodw"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",128509],"trp":["ot",47901],"tlw":["tot",1188],"lp":["to","go","gt","tot","tto","gg","tog","gto","goo","got"],"rp":["ot","ott","og","oto","otto","otog"]},"73":{"input":[1,4,7],"tlp":["ag",49385],"trp":["of",7071],"trw":["ota",208],"lp":["ag","fo","ga","tag","gag","ffo","gat","aga","ato","tota","ago","afo","agg","atto","gato"],"rp":["of","off","ota","ofo","otta"]},"74":{"input":[2,4,7],"tlp":["co",202727],"trp":["oc",21912],"tlw":["scott",175],"lp":["co","cot","sto","cco","gts","soc","gs","cos","cost","cto","sco","coo","tos","coc"],"rp":["oc","occ","ots","ost","oct","otos"]},"75":{"input":[1,2,4,7],"tlp":["sag",9331],"trp":["oca",927],"tlw":["costas",502],"lp":["sag","aco","acco","faco","ssag","gas","sfo","agas","cag","cof","coff","fos","foss","gac","gats","gatc"],"rp":["oca","occa","osta","ocat"]},"76":{"input":[3,4,7],"tlp":["ro",122176],"trp":["or",127784],"tlw":["gorge",1040],"trw":["or",770],"lp":["ro","ge","t-","tro","gr","eg","reg","rg","t-e","ger","rge","eto"],"rp":["or","ort","orte","ore","otr","otre","ote","-t"]},"77":{"input":[1,3,4,7],"tlp":["age",30406],"trp":["orta",6654],"tlw":["fort",2164],"trw":["offert",256],"lp":["age","gar","ega","gra","egar","for","rega","arg","arge","a-t","a-t-","fort","fro","gea","rof","rag","tage","aro","rage"],"rp":["orta"]},"78":{"input":[2,3,4,7],"tlp":["cor",18700],"trp":["ors",18331],"tlw":["cote",5418],"trw":["orc",491],"lp":["cor","eco","cro","sor","core","sort","st-","est-","roc","t-c","t-ce","ges","st-c","dro","rso","erso"],"rp":["ors","ord","-c","-ce"]},"79":{"input":[1,2,3,4,7],"tlw":["regard",4785],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["ou",485081],"trw":["un",105377],"lp":[],"rp":["ou","on","un","no","nou","onn","nu","non","uo","nnu","onnu","nno","nnon","ono","oon","onon","uu","uun","uon","unn"]},"81":{"input":[1,5,7],"tlp":["qu",374405],"trp":["ua",32749],"tlw":["au",38456],"trw":["noua",61],"lp":["qu","au","qua","quan","quo","aqu","anqu","anno"],"rp":["ua","uan","onna","nqu","oq","oqu","oua","nua","uq","uqu","nqua","ona"]},"82":{"input":[2,5,7],"tlp":["su",105459],"trp":["us",202802],"tlw":["son",49965],"trw":["nous",27592],"lp":["su","son","sou","sonn","sous","ssu"],"rp":["us","ous","jo","ons","jou","nous","uss","ju","jus","uj","ujo","ujou","ouj","oujo"]},"83":{"input":[1,2,5,7],"tlp":["squ",20943],"trp":["usq",8393],"tlw":["sonna",267],"trw":["joanna",329],"lp":["squ","aus","auss","sau","ajo","ajou","auj","aujo","assu","asqu","squa"],"rp":["usq","usqu","jusq","ussa","onsa","usa","jau","jaun","joua"]},"84":{"input":[3,5,7],"tlp":["eu",220654],"trp":["ue",233945],"tlw":["eu",4099],"trw":["une",73318],"lp":["eu","enu","eun","eune","eno"],"rp":["ue","une","onne","oy","yeu","oue","oeu","oye","nue","neu","one","ueu","u-","n-","uy"]},"85":{"input":[1,3,5,7],"tlp":["que",190819],"trp":["ux",83482],"tlw":["que",98515],"trw":["yeux",10617],"lp":["que","eux","eau","aux","aque","eaux","equ","au-","eque","quen","eux-"],"rp":["ux","yeux","oya","nque","oque","oux","uque","ux-","noux"]},"86":{"input":[2,3,5,7],"tlp":["du",78771],"trp":["ond",27438],"tlw":["du",57769],"trw":["jeune",4462],"lp":["du","don","deu","seu","dou","donn","eus","euse","endu","essu"],"rp":["ond","ues","ud","use","onde","ndu","jeu","jeun","-j","-je"]},"87":{"input":[1,2,3,5,7],"tlw":["deux",15643],"trw":["judas",547],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tou",80480],"trp":["ut",149891],"tlw":["tout",29188],"trw":["ont",5688],"lp":["tou","tu","tout","bo","gn","gu","bou","bon","ton","bu"],"rp":["ut","out","ont","ng","ob","ong","ub","uto","ug","not"]},"89":{"input":[1,4,5,7],"tlp":["aut",41481],"trp":["uf",8214],"tlw":["fut",4720],"lp":["aut","ang","fu","fon","fau","agn","faut","fou","fut","auto","atu","quat","font"],"rp":["uf","uta","uff","uat","onta","ouf","ouff"]},"90":{"input":[2,4,5,7],"tlp":["con",57360],"trp":["uc",26771],"tlw":["sont",9987],"lp":["con","cou","cu","cont","sont","conn","tous","cons","touj","cun","bouc"],"rp":["uc","nco","onc","ouc","ust","just","ucu","ucun","uco"]},"91":{"input":[1,2,4,5,7],"tlw":["facon",2654],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["eur",78762],"trp":["ur",328352],"tlw":["toute",6285],"trw":["notre",4935],"lp":["eur","rou","ru","tour","eut","gen","trou","gne","eure","gue"],"rp":["ur","our","ure","ute","oute","utr","utre","nge","ontr","urn"]},"93":{"input":[1,3,4,5,7],"tlw":["autre",5877],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["sur",51346],"trw":["jour",4530],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["grand",4887],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",274962],"trw":["il",109781],"lp":[],"rp":["il","oi","ll","li","lo","io","ill","ol","loi","ili","oli","lli","oil","oll","llo","illi","olo","iol","ilo","lio"]},"97":{"input":[1,6,7],"tlp":["al",90167],"trp":["la",335135],"tlw":["alla",769],"trw":["la",216676],"lp":["al","all","alo","ail","aill","ali","alla","ala","allo","alai"],"rp":["la","lai","lla","llai","illa","ila","oila","ial","olla","ola"]},"98":{"input":[2,6,7],"tlp":["soi",15762],"trp":["ois",37730],"tlw":["sol",2016],"trw":["ils",17730],"lp":["soi","sio","sol","ssio","sil"],"rp":["ois","ls","ils","iso","lis","ossi","oisi","liss","osi","isio","los","isso","oiss","ok","ilis"]},"99":{"input":[1,2,6,7],"tlp":["aiso",9482],"trp":["lais",13196],"tlw":["siloa",232],"trw":["laissa",1173],"lp":["aiso","sal","sall","alis","salo","asio","ails","sali","sala","wil","wal","slow","will"],"rp":["lais","las","lass","lisa","low","osai","oisa"]},"100":{"input":[3,6,7],"tlp":["el",190433],"trp":["le",657856],"tlw":["elle",59054],"trw":["le",177879],"lp":["el","ell","elle","eil","ele","eill","elo","eli"],"rp":["le","lle","ille","lie","ile","ole","-i","-il","-el","-ell","i-","lei"]},"101":{"input":[1,3,6,7],"tlp":["ale",15620],"trp":["oix",8324],"tlw":["allez",1376],"trw":["lizzie",89],"lp":["ale","ela","alle","z-","ez-","alie","eal","eali","elai","ai-"],"rp":["oix","lez","-la","la-","laie","llez","lex","lea","iale","lez-"]},"102":{"input":[2,3,6,7],"tlp":["doi",7114],"trp":["les",154394],"tlw":["elles",3562],"trw":["les",123647],"lp":["doi","sel","sile","esoi","sole","del","dis-","els","dois","ssel","dol"],"rp":["les","lles","is-","oid","lise","oise","iles","ld","less"]},"103":{"input":[1,2,3,6,7],"tlw":["salle",2270],"trw":["laisse",2177],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",127497],"trp":["ig",30369],"tlw":["toi",4595],"trw":["lit",2373],"lp":["vo","voi","tio","gi","toi","gl","vot","vil","vol","vill","voit"],"rp":["ig","oit","lit","oig","liv","lt","lig","itio","lot"]},"105":{"input":[1,4,6,7],"tlp":["avo",15975],"trp":["lait",13889],"tlw":["voila",2492],"trw":["livia",632],"lp":["avo","foi","atio","avoi","fil","fl","tal","fill","agi","val","vail","tail","fal","fall","fla","gal"],"rp":["lait","lat","lag","iga"]},"106":{"input":[2,4,6,7],"tlp":["cl",21798],"trp":["lic",7092],"tlw":["soit",3898],"trw":["kotko",169],"lp":["cl","col","ctio","sig","cil","stio","soit","stoi","vois","coi","coll","cli","glis","vos"],"rp":["lic","isto","olic","igts","osit","loc"]},"107":{"input":[1,2,4,6,7],"tlw":["fois",9209],"trw":["lac",564],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["roi",25378],"trp":["oir",45550],"tlw":["votre",6708],"trw":["livre",1128],"lp":["roi","voir","rl","t-i","t-il","tel","rle","troi","roit","votr"],"rp":["oir","ler","lor","lev","it-","oire","let","it-i","lier","ller"]},"109":{"input":[1,3,4,6,7],"tlw":["voix",6714],"trw":["leva",2445],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["trois",5530],"trw":["levres",1891],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["alors",9986],"trw":["laisser",1893],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",198698],"trw":["lui",41038],"lp":[],"rp":["ui","lu","ul","ion","lui","ho","oin","lon","oul","uoi","uil","oui","hu","inu","noi","hon","uill","nui","lou","uni"]},"113":{"input":[1,5,6,7],"tlp":["qui",72449],"trp":["lan",19838],"tlw":["qui",60034],"trw":["hall",554],"lp":["qui","quoi","quil","aul"],"rp":["lan","iqu","lq","lqu","hau","ula","oula","ulai","liq","liqu","nal","uai","haqu","laq","laqu","niqu"]},"114":{"input":[2,5,6,7],"tlp":["sui",21452],"trp":["lus",40230],"tlw":["suis",11506],"trw":["john",694],"lp":["sui","suis","sion","soin"],"rp":["lus","uis","ussi","ison","hos","ions","oins","usi","onsi","uiss","uk","luk","lusi","lons","joi","nsui"]},"115":{"input":[1,2,5,6,7],"tlw":["aussi",11177],"trw":["ouais",603],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eul",11197],"trp":["leu",32420],"tlw":["euh",642],"trw":["lieu",1585],"lp":["eul","eule","elu","elui","eui","euil"],"rp":["leu","uel","ieu","ule","len","heu","oule","uell","lieu","lleu","ilen","nel","lein","ly"]},"117":{"input":[1,3,5,6,7],"tlw":["quelque",6947],"trw":["laquelle",1557],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["seul",3625],"trw":["luke",3101],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["quelques",6336],"trw":["la-dedans",355],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["vou",60021],"trp":["uv",57671],"tlw":["vu",3991],"trw":["nuit",3923],"lp":["vou","bl","tion","vu","voul","von","gin"],"rp":["uv","ouv","uit","ign","long","itu","ibl","nouv","ing","oint","lut","uiv","ubl"]},"121":{"input":[1,4,5,6,7],"tlw":["voulait",2213],"trw":["haut",2023],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["vous",46221],"trw":["longs",581],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["avons",2442],"trw":["lanca",1051],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["trouve",3189],"trw":["leur",13514],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["veux",4192],"trw":["nouveau",4416],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["chose",7901],"trw":["leurs",6620],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["chaque",3120],"trw":["lorsque",2306],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",26335],"trw":["p",553],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",48180],"trp":["pa",224861],"tlw":["ap",72],"trw":["papa",974],"lp":["ap","app","appa","apa"],"rp":["pa","ppa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",20685],"trp":["ps",18522],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",4429],"trp":["pas",100009],"tlw":["saps",129],"trw":["pas",84383],"lp":["spa","asp","sap","aps","sapp","saps"],"rp":["pas","pass"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",48775],"trp":["pe",136807],"tlw":["epee",266],"trw":["'",318],"lp":["ep","epe","epee","e'"],"rp":["pe","'e","ppe","'ep","pee","ppee","pep","pepe","p'","'epe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["epa",8854],"trp":["'a",123917],"trw":["pape",116],"lp":["epa","appe","xp","exp","ape","xpe","expe","apea"],"rp":["'a","'ap","'app","'ex","'ea","pea","'exp","'epa","'ape","'exa","'exe","pape"]},"134":{"input":[2,3,8],"tlp":["d'",72817],"trp":["'es",50133],"tlw":["epees",70],"trw":["pdd",99],"lp":["d'","s'","s'e","d'e","esp","dep","spe","s'es","espe","sep","sesp","depe","d'es","eps"],"rp":["'es","'esp","pes","'ess","ped","pese"]},"135":{"input":[1,2,3,8],"tlp":["d'a",18719],"trp":["'as",4949],"tlw":["depasse",270],"trw":["passe",4560],"lp":["d'a","s'a","s'ap","depa","epas","s'as","d'ap","d'ea","espa","s'ex","sepa","aspe","s'ad","d'ad","d'ex","xped"],"rp":["'as","'ass","'ad","pesa"]},"136":{"input":[4,8],"trp":["pt",10944],"trw":["pt",1183],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",1491],"trp":["pat",3801],"tlw":["tapa",68],"lp":["tap","apt","tapa"],"rp":["pat","patt","pta","pf"]},"138":{"input":[2,4,8],"trp":["pc",625],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",4228],"trp":["pac",1260],"tlw":["cap",326],"lp":["cap","capa","spac","apac","apc","capt"],"rp":["pac","pats","past"]},"140":{"input":[3,4,8],"tlp":["rep",21795],"trp":["pr",118408],"tlw":["repete",469],"trw":["pere",4207],"lp":["rep","epr","rp","repr","ept","t'","epre","rpr","repe"],"rp":["pr","pre","per","'et","pet","pere","pte","ppr","'etr","pret","pete"]},"141":{"input":[1,3,4,8],"tlp":["apr",9449],"trp":["par",86969],"tlw":["frappe",557],"trw":["par",27661],"lp":["apr","apre","rap","rapp","appr","epar","repa","t'a","aper"],"rp":["par","'eta","part","'ar","pare","para","ppar","'arr","parf","'at","'att"]},"142":{"input":[2,3,4,8],"tlp":["c'",37695],"trp":["'est",44521],"tlw":["c'est",27418],"trw":["pres",4017],"lp":["c'","c'e","c'es","c'et","s'et","spec","cep","rps","d'et","resp","cept","spr"],"rp":["'est","pres","pers","pec","prec","perd","'ec","pect"]},"143":{"input":[1,2,3,4,8],"tlw":["apres",7671],"trw":["parce",4758],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",78967],"trw":["m",2037],"lp":[],"rp":["mm","mp","nm","mn","pn","np"]},"145":{"input":[1,5,8],"tlp":["am",51798],"trp":["ma",187703],"trw":["ma",11423],"lp":["am","ama","amp","aman","amm","ampa","anm","anap"],"rp":["ma","man","mpa","mma","pan","mam","mama","manq","mman","paq","nap","pann"]},"146":{"input":[2,5,8],"tlp":["sm",1338],"trp":["mps",12697],"trw":["ms",179],"lp":["sm"],"rp":["mps","nsp","ms","nsm"]},"147":{"input":[1,2,5,8],"tlp":["sam",1341],"trp":["jam",12043],"tlw":["sam",363],"trw":["pans",80],"lp":["sam","amas","samm","ansp","asm","amps","ansm","span","sma"],"rp":["jam","jama","mas","mass","masq","maj","mpas","mw","njam","mans","nsma"]},"148":{"input":[3,5,8],"tlp":["em",168013],"trp":["me",306012],"tlw":["emmene",192],"trw":["me",28601],"lp":["em","eme","emen","emp","emm","emme"],"rp":["me","men","mme","n'","mem","pen","'en","meme","n'e","mmen","m'","'y","mpe","n'y"]},"149":{"input":[1,3,5,8],"tlp":["ema",18574],"trp":["n'a",19043],"tlw":["ame",424],"trw":["m'a",4088],"lp":["ema","eman","ame","amme","amen","xem","exem","xemp","ampe","xam","exam"],"rp":["n'a","m'a","pay","'an","'am","mena","paye","'ann","mane"]},"150":{"input":[2,3,5,8],"tlp":["dem",20176],"trp":["j'",30702],"tlw":["s'en",2720],"trw":["mes",6170],"lp":["dem","sem","emps","s'en","deme","d'en","seme","ssem","emes"],"rp":["j'","mes","pens","mmes","n'es","pend","j'e","med","j'en","mess","ndem"]},"151":{"input":[1,2,3,5,8],"tlw":["demande",3741],"trw":["pays",1471],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",463],"trp":["mb",31529],"lp":["tm","bm","ttm"],"rp":["mb","mpt","mt"]},"153":{"input":[1,4,5,8],"tlp":["amb",5301],"trp":["mat",6196],"tlw":["amant",146],"trw":["mat",200],"lp":["amb","fam","apab","tam","tamm","atm","amat","bap","bapt"],"rp":["mat","pab","mba","mant","mbat","pant","mpat","mpta","matt","mab","mban"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",1559],"trp":["mc",93],"tlw":["cm",1559],"lp":["cm"],"rp":["mc"]},"155":{"input":[1,2,4,5,8],"tlw":["camp",691],"trw":["passant",523],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",29998],"trp":["ment",81650],"tlw":["type",1817],"trw":["mere",4432],"lp":["rm","tem","rem","rme","temp","teme","emb","erm","reme"],"rp":["ment","mer","pren","met","mbr","mbre","mpr","prem","n'et","mpre","mbe"]},"157":{"input":[1,3,4,5,8],"tlw":["femme",6271],"trw":["payer",631],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["temps",9524],"trw":["n'est",6536],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["femmes",2197],"trw":["pendant",4274],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",30694],"lp":[],"rp":["pi","ip","ipp","ipi","pip","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",6237],"trp":["pai",4095],"trw":["pizza",69],"lp":["api","apai"],"rp":["pai","papi","ipa","pia","ppai","piz","pizz","ippa","piaz"]},"162":{"input":[2,6,8],"tlp":["spi",1730],"trp":["isp",3645],"trw":["pis",282],"lp":["spi"],"rp":["isp","pis"]},"163":{"input":[1,2,6,8],"tlp":["apis",563],"trp":["ispa",2356],"trw":["passai",91],"lp":["apis","spai"],"rp":["ispa","pais"]},"164":{"input":[3,6,8],"tlp":["epi",615],"trp":["'i",49129],"trw":["pipe",239],"lp":["epi"],"rp":["'i","pie","pei","ipe","ippe","pipe","ie'"]},"165":{"input":[1,3,6,8],"tlp":["apie",1594],"trp":["'ai",30601],"trw":["paix",638],"lp":["apie","epai"],"rp":["'ai","'exi","paix","'aie","paie"]},"166":{"input":[2,3,6,8],"tlp":["s'i",6660],"trp":["pied",4225],"tlw":["d'idees",66],"trw":["pieds",2197],"lp":["s'i","disp","d'i","espi","depi","d'id","epis","dip"],"rp":["pied","pid","pide","'id","'ide","ispe","ipes","pedi","'k","'ke","'kee","pidi"]},"167":{"input":[1,2,3,6,8],"tlw":["epais",338],"trw":["peake",83],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",158],"trp":["pit",5509],"trw":["pitt",410],"lp":["tip"],"rp":["pit","pti","ipit","pitt","piti","ipt","ipti","piv"]},"169":{"input":[1,4,6,8],"tlp":["apit",2174],"trp":["pita",2057],"tlw":["tapait",66],"lp":["apit","tapi","vap","apti"],"rp":["pita","pati","pait","pav","ptai","pavi","ipat"]},"170":{"input":[2,4,6,8],"tlp":["cip",2146],"trp":["pist",956],"trw":["pic",121],"lp":["cip","cipi","scip"],"rp":["pist","icip","pic","pisc","pick","ptis"]},"171":{"input":[1,2,4,6,8],"tlw":["tapis",563],"trw":["passait",777],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["epri",3352],"trp":["pri",24618],"tlw":["reprit",1215],"trw":["petit",6366],"lp":["epri","rpri","epti","rip","epit"],"rp":["pri","peti","prit","pier","pir","peri","pire","prie","prev","ppri","pitr","priv","'ev","pite","'evi"]},"173":{"input":[1,3,4,6,8],"tlw":["t'ai",504],"trw":["partie",2466],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["esprit",982],"trw":["pris",3067],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["c'etait",9128],"trw":["paris",1112],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",66310],"trw":["pin",80],"lp":[],"rp":["mi","im","min","imp","ph","imm","phi","nim","pin","imi","mpi","mmi","mini","hm","minn","imin","inim","pini","nip","mih"]},"177":{"input":[1,5,6,8],"tlp":["ami",10224],"trp":["mai",88086],"tlw":["ami",1414],"trw":["main",8212],"lp":["ami","amai","aim","amin","anim","aima"],"rp":["mai","main","ima","ham","hap","mani","iam","hamp","mina","nima","pain","hapi","happ","imai"]},"178":{"input":[2,5,6,8],"tlp":["sim",4174],"trp":["mis",9740],"trw":["mis",1921],"lp":["sim","simp","sph","smi","ssim","snip"],"rp":["mis","jim","miss","insp","mmis","mik","mins","nspi","ism","nism","jimm","pins","ijim","misi"]},"179":{"input":[1,2,5,6,8],"tlw":["amis",1180],"trw":["mais",42478],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",15514],"trp":["mie",15315],"tlw":["ennemi",205],"trw":["peine",2455],"lp":["emi","emie","emin","eph"],"rp":["mie","ime","'h","imen","'in","hem","'im","mine","hemi","pein","'imp","iem","ieme","mei","imme","'he"]},"181":{"input":[1,3,5,6,8],"tlw":["aime",856],"trw":["n'ai",2898],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["demi",438],"trw":["mise",705],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["semaine",1154],"trw":["j'ai",15346],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",5445],"trp":["mit",5727],"tlw":["tim",73],"trw":["mit",2329],"lp":["tim","thm","timi","bim","timb"],"rp":["mit","ntim","mbi","imb","imit","mpit","ptib","mbin","miti","mith","itim","mv","mvi"]},"185":{"input":[1,4,5,6,8],"tlw":["faim",558],"trw":["matin",2422],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",155],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["champ",458],"trw":["massif",152],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["termine",610],"trw":["premiere",3206],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["vraiment",3840],"trw":["n'etait",4972],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["chemin",1720],"trw":["merci",1888],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["chambre",2756],"trw":["j'avais",3059],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",155941],"trw":["pop",58],"lp":[],"rp":["po","op","ppo","opo","opp","pop","oppo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",2216],"trp":["opa",340],"lp":["appo","apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",3643],"trp":["pos",17016],"lp":["spo","spos","sop"],"rp":["pos","poss","opos","ppos","osop","osp","pso"]},"195":{"input":[1,2,7,8],"trp":["posa",2884],"trw":["posa",1155],"lp":[],"rp":["posa","pow"]},"196":{"input":[3,7,8],"tlp":["epo",13316],"trp":["'o",22659],"lp":["epo"],"rp":["'o","'oe","ope","oppe","'epo","-p","poe","-pe","o'","'op","'ope","-po"]},"197":{"input":[1,3,7,8],"tlp":["xpo",114],"trp":["-pa",135],"lp":["xpo","expo"],"rp":["-pa","'a-"]},"198":{"input":[2,3,7,8],"tlp":["d'o",3873],"trp":["pose",6350],"tlw":["depose",222],"trw":["pose",1409],"lp":["d'o","espo","epos","d'oe","s'o","depo","d-p","d-pe","epso","dop","d'os"],"rp":["pose","'od","'ode","'os","-sep","osep","poes","ps-","'ose"]},"199":{"input":[1,2,3,7,8],"tlw":["deposa",185],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1434],"trp":["pot",1385],"tlw":["top",89],"trw":["pot",240],"lp":["top"],"rp":["pot","pto","opt"]},"201":{"input":[1,4,7,8],"tlp":["apot",365],"trp":["pag",5377],"tlw":["tapota",134],"lp":["apot","tapo"],"rp":["pag","pota"]},"202":{"input":[2,4,7,8],"tlp":["cop",842],"trp":["poc",1602],"tlw":["stop",73],"trw":["pots",103],"lp":["cop","copt","stop"],"rp":["poc","post","pco","pots"]},"203":{"input":[1,2,4,7,8],"tlw":["capot",86],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",11883],"trp":["pro",26938],"tlw":["trop",6088],"trw":["porte",7561],"lp":["rop","repo","trop","ropr","ropo","epro"],"rp":["pro","por","port","prop","orp","opr","'or","ppor","opre","ppro","prot","-top","'ore","prog"]},"205":{"input":[1,3,4,7,8],"tlw":["rapport",803],"trw":["page",1683],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corps",3633],"trw":["propos",951],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["d'accord",1426],"trw":["passage",1091],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",114832],"trw":["mon",15902],"lp":[],"rp":["om","mo","pou","omm","mon","pu","up","omp","oup","um","mu","pon","nom","mou","mpo","mom","upp","mun","uppo","mmu"]},"209":{"input":[1,5,7,8],"tlp":["amo",2232],"trp":["pau",6517],"trw":["mona",153],"lp":["amo","amou","aup","aum","appu","amu","aupa","anmo"],"rp":["pau","oma","mau","ompa","upa","uma","omma","poq","poqu","oman","oupa","paqu"]},"210":{"input":[2,5,7,8],"tlp":["som",5403],"trp":["pous",4373],"trw":["noms",472],"lp":["som","somm","sup","soup","supp","spon","susp"],"rp":["pous","mons","mus","pons","mpos","ups","oups","mos","oms","noms","usp","mous","jup"]},"211":{"input":[1,2,5,7,8],"trw":["poussa",827],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["epon",8146],"trp":["u'",72122],"tlw":["emu",95],"trw":["peu",10328],"lp":["epon","epu"],"rp":["u'","omme","'u","'un","peu","u'e","'une","'on","ome","u'u","u'un","ume","upe","-m","omen","u'o","u'on","mome"]},"213":{"input":[1,3,5,7,8],"tlw":["qu'on",6252],"trw":["peux",3366],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["d'un",18560],"trw":["monde",5892],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["d'eau",1024],"trw":["jusqu'a",4050],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",8498],"trp":["omb",12802],"tlw":["tom",1064],"trw":["mot",1938],"lp":["tom","tomb","ttom","tup","tum","tmo"],"rp":["omb","mont","mot","ompt","nomb","put","pub","mbo","mob","pont","mmob","mout","omt","mpto"]},"217":{"input":[1,4,5,7,8],"tlw":["tomba",500],"trw":["monta",334],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["coup",5443],"trw":["mots",1844],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["combat",528],"trw":["poussant",233],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["tomber",1545],"trw":["pour",54806],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forme",1597],"trw":["pourtant",2127],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["comme",26616],"trw":["personne",4398],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["qu'est-ce",3758],"trw":["presque",3280],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",81861],"trw":["poil",237],"lp":[],"rp":["pl","poi","pli","pol","poli","plo","lip","ilip","lop","lopp","opi","pil","lipp","lp","ppl","ipl","poil","ppli","ploi","pilo"]},"225":{"input":[1,6,7,8],"tlp":["alp",231],"trp":["pla",16627],"trw":["plaza",92],"lp":["alp","alop","apil","apol","appl"],"rp":["pla","plai","pal","ipal","pala","opai","lpa","pali","pail","lap","lapi","plaz","plia","opla"]},"226":{"input":[2,6,7,8],"tlp":["spoi",1196],"trp":["posi",1139],"trw":["poils",186],"lp":["spoi","spl"],"rp":["posi","ispo","pois","plis","plos","piso","pok"]},"227":{"input":[1,2,6,7,8],"trw":["palais",478],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elep",2381],"trp":["l'",88780],"trw":["l'oeil",749],"lp":["elep","epl","elop"],"rp":["l'","'il","l'e","'el","'ell","ple","l'o","l'i","pel","ppel","plei","pele","lep","pell","'oei","l'ep","l'oe"]},"229":{"input":[1,3,6,7,8],"tlw":["appele",632],"trw":["l'a",2169],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["s'il",4703],"trw":["l'idee",964],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["s'appelle",386],"trw":["l'aide",479],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tipl",158],"trp":["ptio",1479],"lp":["tipl"],"rp":["ptio","poig","poit","opit","ptoi","pig","pivo","plit","ltip","lpt","lpit","pito","pilt","plot"]},"233":{"input":[1,4,6,7,8],"tlw":["galop",145],"trw":["plait",891],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capital",85],"trw":["posait",183],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["reprit-il",188],"trw":["l'oreille",587],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["appeler",517],"trw":["l'air",3916],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["desespoir",393],"trw":["police",1783],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["d'avoir",1685],"trw":["place",3372],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["plu",43647],"trw":["moi",12680],"lp":[],"rp":["plu","moi","pui","hom","homm","mpl","mil","moin","mill","poin","lum","impo","pho","impl","minu","umi","hum","upi","ompl","mili"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["animal",319],"trw":["mal",4543],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",341],"trw":["plus",37565],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["salim",412],"trw":["maison",4491],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["homme",5277],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["qu'il",23610],"trw":["mieux",3375],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["depuis",5560],"trw":["hommes",4084],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["qu'ils",4873],"trw":["musique",825],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["bulpitt",89],"trw":["point",3139],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",348],"trw":["pouvait",3877],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["commis",274],"trw":["jimbo",666],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["thomas",448],"trw":["mauvais",894],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["telephone",2027],"trw":["lumiere",2031],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["famille",1962],"trw":["pourquoi",6282],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["repondit",2783],"trw":["longtemps",2380],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["semblait",1934],"trw":["larmes",1018],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlw":["a",186860],"lp":[],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",130131],"tlw":["s",189],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",154012],"tlw":["sa",35710],"lp":["as","sa","ass","ssa","assa","wa","asa","sas","ssas","sass","aw","was","sw"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",43082],"tlw":["e",648],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",45510],"tlw":["x",164],"lp":["ea","ex","xe","xa","exa","exe","ae","ax","xee"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["es",647732],"tlw":["de",329573],"lp":["es","de","se","des","sse","ses","ess","ed","esse","ds","ese","ees","dess","see","dee","ede","sses","eds","ssee","dese"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",113149],"tlw":["sexe",325],"lp":["da","asse","ad","essa","ade","ada","sea","dea","eda","ase","we","deda","das","sex","ew","ades","esa","ssea","adea","dex"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",56643],"tlw":["t",179],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",168893],"tlw":["ta",2612],"lp":["ta","fa","at","ff","att","af","tat","tta","aff","ffa","affa","ata","atta","fat","tf","ttf","ft","fata","tata"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",141218],"tlw":["c",294],"lp":["st","ts","ct","sc","cc","cs","tc","cts","sts"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",78160],"tlw":["ca",22002],"lp":["ca","ac","sta","fac","act","acc","cas","sac","tac","cat","tas","sat","ats","ast","aca","sca","cac","cca","fs","sf"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["re",583533],"tlw":["et",174550],"lp":["re","et","er","te","tr","tre","rt","ere","rr","ete","ter","tte","etr","ett","rte","ret","etre","ette","err","rre"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",199557],"tlw":["frere",1316],"lp":["ar","ra","eta","fe","tra","art","fr","arr","era","ef","rta","fer","are","atte","ara","ate","rra","fra","ref","rea"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",214983],"tlw":["ce",47447],"lp":["ce","ec","est","res","rs","rd","dr","ser","rc","tes","cr","ers","dre","ste","ces","tres","cet","der","cett","rec"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",29774],"tlw":["tard",3213],"lp":["ard","ace","arc","car","ras","sera","arde","rac","rda","arda","dra","arce","cra","tard","face","esta","rsa","xc","exc","acte"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",57349],"trw":["n",242],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",332256],"trp":["na",60823],"tlw":["anna",1043],"trw":["na",258],"lp":["an","ann","aq","anq","anna","ana","anan"],"rp":["na","nna","nan","nq","nnan","nann","nana"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",130],"trp":["ns",191473],"trw":["j",225],"lp":["sn"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["ans",94605],"trp":["ja",25027],"tlw":["sans",15580],"trw":["jan",70],"lp":["ans","san","sq","sans","ssan","aj","asq","ansa","wn","wan"],"rp":["ja","nsa","jan","nsan","nas","jas","nja","nw","nwa"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",547626],"trp":["ne",292024],"tlw":["en",90753],"trw":["ne",63131],"lp":["en","ene","enn","enne","ey","enny","eye"],"rp":["ne","nne","ye","nee","ny","nnee","nny","nen","yen","nnen","yn","yne","ney"]},"21":{"input":[1,3,5],"tlp":["ena",18722],"trp":["ya",10697],"tlw":["annee",430],"trw":["nanny",98],"lp":["ena","ay","enan","anne","ane","eq","ean","aye","aya","ayan","any","xan","anny","enq","exan"],"rp":["ya","yan","nea","nnea","nean"]},"22":{"input":[2,3,5],"tlp":["end",46705],"trp":["nd",127339],"tlw":["sens",2477],"trw":["je",94389],"lp":["end","ens","sen","ense","ej","den","dej","esen","sens","ends","ende"],"rp":["nd","je","nde","nse","nes","nds","ys","nees","ndes"]},"23":{"input":[1,2,3,5],"tlp":["dan",83378],"trp":["nda",18852],"tlw":["dans",69810],"trw":["jean",744],"lp":["dan","dans","and","ande","enda","anda","eja","deja","esq","say","ssay","ensa","ands","ays","saye","saya"],"rp":["nda","ndan","jea","jean"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",863],"trp":["nt",395069],"tlw":["b",429],"lp":["bb","bt","tn"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ant",99116],"trp":["nf",14856],"tlw":["tant",2815],"lp":["ant","ab","ba","tan","tant","tab","fan","bat","fant","ban","anta","batt","aba","bab"],"rp":["nf","nta","nant","nfa","nfan","nat"]},"26":{"input":[2,4,5],"tlp":["bs",4870],"trp":["nc",84806],"lp":["bs","bj","bsc","bst","sb"],"rp":["nc","nts","nst","nsc","ncs","nct"]},"27":{"input":[1,2,4,5],"tlp":["anc",29956],"trp":["nca",8089],"tlw":["bas",1760],"lp":["anc","sant","stan","bas","ants","can","anca","tanc","sanc","abs","sab","cab","bass","ancs","cq","acq"],"rp":["nca","nsta","jac","ntac"]},"28":{"input":[3,4,5],"tlp":["ent",205997],"trp":["nte",52433],"tlw":["entre",6016],"lp":["ent","ten","ren","be","br","rn","ente","entr","bre","rent","ern","rne","tent","tten"],"rp":["nte","ntr","ntre","ner","nten","nter"]},"29":{"input":[1,3,4,5],"tlp":["ran",32995],"trp":["ntra",4859],"tlw":["enfant",1479],"lp":["ran","rq","enf","tena","ante","bra","rna","bea","enta","rant","tran","enfa","rtan","fran","arq","bar","arb","fen","rena"],"rp":["ntra"]},"30":{"input":[2,3,4,5],"tlp":["enc",33290],"trp":["nce",37449],"tlw":["cent",1511],"trw":["jeter",658],"lp":["enc","endr","tend","ence","rend","sent","cen","ents","cent","bes","dern","dent","scen","renc","deb"],"rp":["nce","ndr","ndre","jet","ncer"]},"31":{"input":[1,2,3,4,5],"tlw":["bras",4531],"trw":["jeta",1297],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",352],"trw":["ii",352],"lp":[],"rp":["ii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",540051],"trp":["ia",19364],"tlw":["ai",3119],"lp":["ai","za","zi","zai","az","zz","azi","zzi","aza","zza","ziz","aziz","ziza"],"rp":["ia","iz","iza","iai","izai","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",117702],"trp":["is",301576],"tlw":["si",24030],"trw":["k",204],"lp":["si","ssi","sis","ssis","sk","ski","sisk"],"rp":["is","iss","isi","ki","ik","issi","ks","isk","kk","isis","kis","iski","kiss"]},"35":{"input":[1,2,6],"tlp":["ais",132120],"trp":["isa",17988],"tlw":["sais",5940],"lp":["ais","sai","aiss","sais","ssai","assi","aisa","aisi","asi","wi","ak","sia","sias"],"rp":["isa","issa","isai","ka","ias","kw","iais"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",36481],"trp":["ie",241794],"lp":["ei"],"rp":["ie","iei","iee"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",35534],"trp":["ix",16144],"tlw":["aie",130],"lp":["ez","aie","xi","ze","exi","xie","eai","aix","axi","zie","eiz","eize","eze","eez","xai"],"rp":["ix","iez","ixe","ixa","ize"]},"38":{"input":[2,3,6],"tlp":["di",97853],"trp":["id",28086],"tlw":["dis",1668],"trw":["idee",1596],"lp":["di","dis","sie","die","essi","esi","sei","edi","ssie"],"rp":["id","ide","ise","isse","ke","ied","ies","idee","idi","ieds","ises"]},"39":{"input":[1,2,3,6],"tlp":["dai",9749],"trp":["ida",1007],"tlw":["assez",2893],"lp":["dai","sez","aise","ssez","aid","dix","saie","dia","aide","disa","adi","xis","exis","six","dez","edia","adie","daie"],"rp":["ida","idea"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",116014],"trp":["it",399129],"tlw":["vit",2136],"lp":["ti","vi","tit","vit","viv","tiv","tti","ttit","vivi","tivi","titi"],"rp":["it","iv","iti","ivi","itt","ivit","itiv","itti"]},"41":{"input":[1,4,6],"tlp":["ait",223936],"trp":["if",12313],"tlw":["avait",34178],"trw":["if",198],"lp":["ait","av","va","tai","vai","ava","avai","tait","vait","fai","fi","ati","fait","fit","ffi","avi"],"rp":["if","ita","iva","iff"]},"42":{"input":[2,4,6],"tlp":["ci",50221],"trp":["ic",35688],"tlw":["vis",479],"trw":["ici",5070],"lp":["ci","vis","sit","sti","cti","ck","visi","vic","cit","ssit","tis","tic","sci","cis"],"rp":["ic","ist","ici","its","isit","ict"]},"43":{"input":[1,2,4,6],"tlp":["sait",14527],"trp":["ica",3062],"tlw":["vais",3612],"lp":["sait","vais","sav","fais","visa","tais","fic","cai","sava","ffic","aci","sati","vas","fici","cia","acti","stai","ack"],"rp":["ica","ista"]},"44":{"input":[3,4,6],"tlp":["ve",170346],"trp":["ir",150486],"tlw":["vie",6638],"lp":["ve","ri","ev","ver","rie","vr","vie","rit","eve","rri","eti","rti","eri","tie"],"rp":["ir","ire","ier","ite","iere","ive"]},"45":{"input":[1,3,4,6],"tlp":["etai",66155],"tlw":["etait",29101],"lp":["etai","rai","ave","air","aire","rait","eva","fair","rav","taie","vra","arri","arti","vrai","ari","vaie","erai","vez","trai","trav"],"rp":[]},"46":{"input":[2,3,4,6],"tlp":["dit",34652],"trp":["ice",6888],"tlw":["dit",17108],"lp":["dit","vec","ris","dev","vers","dir","cie","dire","cri","eci","serv","esti","sir","rci","vid","rise"],"rp":["ice","iste","ites","iers"]},"47":{"input":[1,2,3,4,6],"tlw":["avec",32748],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",206097],"trw":["ni",4413],"lp":[],"rp":["in","ni","hi","ini","nni","hin","inn","hn","nh","inni","nin","hni","inin","ih","hnn"]},"49":{"input":[1,5,6],"tlp":["ain",53875],"trp":["ha",60789],"tlw":["ah",2082],"trw":["hanna",151],"lp":["ain","ani","ah","aha","zain"],"rp":["ha","nai","iq","han","nnai","ina","hai","ian","inq","haq","niq","hain","nz","inai","nia"]},"50":{"input":[2,5,6],"tlp":["sin",6536],"trp":["ins",29943],"tlw":["siskin",137],"lp":["sin","sh","ssin","sins","shi","sini"],"rp":["ins","nsi","his","insi","nis","ji","isin","kin","inis","nk","nsis","ish","ij","nnis"]},"51":{"input":[1,2,5,6],"tlp":["ains",11321],"trp":["nais",6028],"tlw":["ainsi",3447],"trw":["jai",619],"lp":["ains","siq","sha","shan","ash","sain","anis","win","asin"],"rp":["nais","isan","isq","has","nsai","kah","kaha","hais","hass","jai","hasa"]},"52":{"input":[3,5,6],"tlp":["ein",12287],"trp":["he",90853],"tlw":["eh",1812],"trw":["hein",876],"lp":["ein","eni","eine","eh"],"rp":["he","ien","ine","nie","ienn","hie","nnie","hee","hen","hien","inee","nei","hei","hein","hine","hy"]},"53":{"input":[1,3,5,6],"tlp":["aien",30150],"trp":["hez",5597],"tlw":["ayez",139],"trw":["nez",1504],"lp":["aien","aine","enai","anie","enez","ayai","enia","zy"],"rp":["hez","nez","yai","yez","naie","nze","inze","heq","hae","hany","ixan","iane"]},"54":{"input":[2,3,5,6],"tlp":["endi",4399],"trp":["ndi",15037],"tlw":["sein",422],"trw":["indiens",185],"lp":["endi","din","sine","ensi","sien","deh","dien"],"rp":["ndi","hes","ind","iens","ines","ndis","iden","indi","nsie","ky","nsei","hesi","nsid"]},"55":{"input":[1,2,3,5,6],"tlw":["whisky",263],"trw":["jadis",260],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",37344],"trp":["int",28711],"tlw":["vin",885],"lp":["bi","tin","th","vin","vint","bit","bin","thi"],"rp":["int","nti","ib","nv","nvi","ntin","nit","ntit","niv","inv","init","invi"]},"57":{"input":[1,4,5,6],"tlp":["van",25237],"trp":["nait",11496],"tlw":["avant",8624],"trw":["navait",354],"lp":["van","vant","avan","fin","tain","aint","tiq","abi","bai","fini","atin","abit"],"rp":["nait","nfi","ntai","nfin","hab","habi","hant","ivan"]},"58":{"input":[2,4,5,6],"tlp":["ch",136528],"trp":["nch",8814],"tlw":["chic",138],"trw":["instinct",141],"lp":["ch","chi","cin","sib","ssib","stin","chin","tch"],"rp":["nch","inc","inst","nci","hist","ich","nic","nsci","isib","inci","nist","nsti"]},"59":{"input":[1,2,4,5,6],"tlw":["cinq",2262],"trw":["instant",2350],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",26666],"trp":["ient",38518],"tlw":["bien",22012],"trw":["hier",848],"lp":["ven","bie","bien","enti","rien","enir","vent","vien","rin","env","rni","even","veni","erni"],"rp":["ient","her","inte","nir","nier","hev"]},"61":{"input":[1,3,4,5,6],"tlw":["etaient",7356],"trw":["navire",568],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["dernier",2102],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["devant",6605],"trw":["jardin",804],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",3036],"trw":["o",368],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",1455],"trp":["oa",938],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",164552],"trp":["os",50157],"trw":["os",408],"lp":["so","sso"],"rp":["os","oss","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",820],"trp":["osa",3212],"lp":["wo","woo","asso","aso","aos","sao","wao","swo"],"rp":["osa","ow","owa","ossa","oas"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["e-",5380],"trp":["-e",12923],"trw":["-",5238],"lp":["e-","eo","ee-","e-o"],"rp":["-e","oe","-o"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",8193],"trp":["-a",862],"lp":["a-","x-","xo","exo","ea-","axo","a-a"],"rp":["-a","-a-","ox","oxe"]},"70":{"input":[2,3,7],"tlp":["do",52067],"trp":["ose",20090],"tlw":["dos",2170],"trw":["ose",204],"lp":["do","s-","eso","dos","es-","deso","soe","d-","esso","doss"],"rp":["ose","od","-d","-de","ode","oses","osse","-des","-s","ood"]},"71":{"input":[1,2,3,7],"tlp":["a-d",1260],"trp":["owe",807],"trw":["owe",223],"lp":["a-d","da-","ado","as-","a-de","wood","sa-","x-s","x-se","dexo","s-a","s-a-","saxo"],"rp":["owe","-a-d","-w","-we","oad","odw","oodw"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",128509],"trp":["ot",47901],"tlw":["tot",1188],"lp":["to","go","gt","tot","tto","gg","tog","gto","goo","got"],"rp":["ot","ott","og","oto","otto","otog"]},"73":{"input":[1,4,7],"tlp":["ag",49385],"trp":["of",7071],"trw":["ota",208],"lp":["ag","fo","ga","tag","gag","ffo","gat","aga","ato","tota","ago","afo","agg","atto","gato"],"rp":["of","off","ota","ofo","otta"]},"74":{"input":[2,4,7],"tlp":["co",202727],"trp":["oc",21912],"tlw":["scott",175],"lp":["co","cot","sto","cco","gts","soc","gs","cos","cost","cto","sco","coo","tos","coc"],"rp":["oc","occ","ots","ost","oct","otos"]},"75":{"input":[1,2,4,7],"tlp":["sag",9331],"trp":["oca",927],"tlw":["costas",502],"lp":["sag","aco","acco","faco","ssag","gas","sfo","agas","cag","cof","coff","fos","foss","gac","gats","gatc"],"rp":["oca","occa","osta","ocat"]},"76":{"input":[3,4,7],"tlp":["ro",122176],"trp":["or",127784],"tlw":["gorge",1040],"trw":["or",770],"lp":["ro","ge","t-","tro","gr","eg","reg","rg","t-e","ger","rge","eto"],"rp":["or","ort","orte","ore","otr","otre","ote","-t"]},"77":{"input":[1,3,4,7],"tlp":["age",30406],"trp":["orta",6654],"tlw":["fort",2164],"trw":["offert",256],"lp":["age","gar","ega","gra","egar","for","rega","arg","arge","a-t","a-t-","fort","fro","gea","rof","rag","tage","aro","rage"],"rp":["orta"]},"78":{"input":[2,3,4,7],"tlp":["cor",18700],"trp":["ors",18331],"tlw":["cote",5418],"trw":["orc",491],"lp":["cor","eco","cro","sor","core","sort","st-","est-","roc","t-c","t-ce","ges","st-c","dro","rso","erso"],"rp":["ors","ord","-c","-ce"]},"79":{"input":[1,2,3,4,7],"tlw":["regard",4785],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["ou",485081],"trw":["un",105377],"lp":[],"rp":["ou","on","un","no","nou","onn","nu","non","uo","nnu","onnu","nno","nnon","ono","oon","onon","uu","uun","uon","unn"]},"81":{"input":[1,5,7],"tlp":["qu",374405],"trp":["ua",32749],"tlw":["au",38456],"trw":["noua",61],"lp":["qu","au","qua","quan","quo","aqu","anqu","anno"],"rp":["ua","uan","onna","nqu","oq","oqu","oua","nua","uq","uqu","nqua","ona"]},"82":{"input":[2,5,7],"tlp":["su",105459],"trp":["us",202802],"tlw":["son",49965],"trw":["nous",27592],"lp":["su","son","sou","sonn","sous","ssu"],"rp":["us","ous","jo","ons","jou","nous","uss","ju","jus","uj","ujo","ujou","ouj","oujo"]},"83":{"input":[1,2,5,7],"tlp":["squ",20943],"trp":["usq",8393],"tlw":["sonna",267],"trw":["joanna",329],"lp":["squ","aus","auss","sau","ajo","ajou","auj","aujo","assu","asqu","squa"],"rp":["usq","usqu","jusq","ussa","onsa","usa","jau","jaun","joua"]},"84":{"input":[3,5,7],"tlp":["eu",220654],"trp":["ue",233945],"tlw":["eu",4099],"trw":["une",73318],"lp":["eu","enu","eun","eune","eno"],"rp":["ue","une","onne","oy","yeu","oue","oeu","oye","nue","neu","one","ueu","u-","n-","uy"]},"85":{"input":[1,3,5,7],"tlp":["que",190819],"trp":["ux",83482],"tlw":["que",98515],"trw":["yeux",10617],"lp":["que","eux","eau","aux","aque","eaux","equ","au-","eque","quen","eux-"],"rp":["ux","yeux","oya","nque","oque","oux","uque","ux-","noux"]},"86":{"input":[2,3,5,7],"tlp":["du",78771],"trp":["ond",27438],"tlw":["du",57769],"trw":["jeune",4462],"lp":["du","don","deu","seu","dou","donn","eus","euse","endu","essu"],"rp":["ond","ues","ud","use","onde","ndu","jeu","jeun","-j","-je"]},"87":{"input":[1,2,3,5,7],"tlw":["deux",15643],"trw":["judas",547],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tou",80480],"trp":["ut",149891],"tlw":["tout",29188],"trw":["ont",5688],"lp":["tou","tu","tout","bo","gn","gu","bou","bon","ton","bu"],"rp":["ut","out","ont","ng","ob","ong","ub","uto","ug","not"]},"89":{"input":[1,4,5,7],"tlp":["aut",41481],"trp":["uf",8214],"tlw":["fut",4720],"lp":["aut","ang","fu","fon","fau","agn","faut","fou","fut","auto","atu","quat","font"],"rp":["uf","uta","uff","uat","onta","ouf","ouff"]},"90":{"input":[2,4,5,7],"tlp":["con",57360],"trp":["uc",26771],"tlw":["sont",9987],"lp":["con","cou","cu","cont","sont","conn","tous","cons","touj","cun","bouc"],"rp":["uc","nco","onc","ouc","ust","just","ucu","ucun","uco"]},"91":{"input":[1,2,4,5,7],"tlw":["facon",2654],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["eur",78762],"trp":["ur",328352],"tlw":["toute",6285],"trw":["notre",4935],"lp":["eur","rou","ru","tour","eut","gen","trou","gne","eure","gue"],"rp":["ur","our","ure","ute","oute","utr","utre","nge","ontr","urn"]},"93":{"input":[1,3,4,5,7],"tlw":["autre",5877],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["sur",51346],"trw":["jour",4530],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["grand",4887],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",274962],"trw":["il",109781],"lp":[],"rp":["il","oi","ll","li","lo","io","ill","ol","loi","ili","oli","lli","oil","oll","llo","illi","olo","iol","ilo","lio"]},"97":{"input":[1,6,7],"tlp":["al",90167],"trp":["la",335135],"tlw":["alla",769],"trw":["la",216676],"lp":["al","all","alo","ail","aill","ali","alla","ala","allo","alai"],"rp":["la","lai","lla","llai","illa","ila","oila","ial","olla","ola"]},"98":{"input":[2,6,7],"tlp":["soi",15762],"trp":["ois",37730],"tlw":["sol",2016],"trw":["ils",17730],"lp":["soi","sio","sol","ssio","sil"],"rp":["ois","ls","ils","iso","lis","ossi","oisi","liss","osi","isio","los","isso","oiss","ok","ilis"]},"99":{"input":[1,2,6,7],"tlp":["aiso",9482],"trp":["lais",13196],"tlw":["siloa",232],"trw":["laissa",1173],"lp":["aiso","sal","sall","alis","salo","asio","ails","sali","sala","wil","wal","slow","will"],"rp":["lais","las","lass","lisa","low","osai","oisa"]},"100":{"input":[3,6,7],"tlp":["el",190433],"trp":["le",657856],"tlw":["elle",59054],"trw":["le",177879],"lp":["el","ell","elle","eil","ele","eill","elo","eli"],"rp":["le","lle","ille","lie","ile","ole","-i","-il","-el","-ell","i-","lei"]},"101":{"input":[1,3,6,7],"tlp":["ale",15620],"trp":["oix",8324],"tlw":["allez",1376],"trw":["lizzie",89],"lp":["ale","ela","alle","z-","ez-","alie","eal","eali","elai","ai-"],"rp":["oix","lez","-la","la-","laie","llez","lex","lea","iale","lez-"]},"102":{"input":[2,3,6,7],"tlp":["doi",7114],"trp":["les",154394],"tlw":["elles",3562],"trw":["les",123647],"lp":["doi","sel","sile","esoi","sole","del","dis-","els","dois","ssel","dol"],"rp":["les","lles","is-","oid","lise","oise","iles","ld","less"]},"103":{"input":[1,2,3,6,7],"tlw":["salle",2270],"trw":["laisse",2177],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",127497],"trp":["ig",30369],"tlw":["toi",4595],"trw":["lit",2373],"lp":["vo","voi","tio","gi","toi","gl","vot","vil","vol","vill","voit"],"rp":["ig","oit","lit","oig","liv","lt","lig","itio","lot"]},"105":{"input":[1,4,6,7],"tlp":["avo",15975],"trp":["lait",13889],"tlw":["voila",2492],"trw":["livia",632],"lp":["avo","foi","atio","avoi","fil","fl","tal","fill","agi","val","vail","tail","fal","fall","fla","gal"],"rp":["lait","lat","lag","iga"]},"106":{"input":[2,4,6,7],"tlp":["cl",21798],"trp":["lic",7092],"tlw":["soit",3898],"trw":["kotko",169],"lp":["cl","col","ctio","sig","cil","stio","soit","stoi","vois","coi","coll","cli","glis","vos"],"rp":["lic","isto","olic","igts","osit","loc"]},"107":{"input":[1,2,4,6,7],"tlw":["fois",9209],"trw":["lac",564],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["roi",25378],"trp":["oir",45550],"tlw":["votre",6708],"trw":["livre",1128],"lp":["roi","voir","rl","t-i","t-il","tel","rle","troi","roit","votr"],"rp":["oir","ler","lor","lev","it-","oire","let","it-i","lier","ller"]},"109":{"input":[1,3,4,6,7],"tlw":["voix",6714],"trw":["leva",2445],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["trois",5530],"trw":["levres",1891],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["alors",9986],"trw":["laisser",1893],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",198698],"trw":["lui",41038],"lp":[],"rp":["ui","lu","ul","ion","lui","ho","oin","lon","oul","uoi","uil","oui","hu","inu","noi","hon","uill","nui","lou","uni"]},"113":{"input":[1,5,6,7],"tlp":["qui",72449],"trp":["lan",19838],"tlw":["qui",60034],"trw":["hall",554],"lp":["qui","quoi","quil","aul"],"rp":["lan","iqu","lq","lqu","hau","ula","oula","ulai","liq","liqu","nal","uai","haqu","laq","laqu","niqu"]},"114":{"input":[2,5,6,7],"tlp":["sui",21452],"trp":["lus",40230],"tlw":["suis",11506],"trw":["john",694],"lp":["sui","suis","sion","soin"],"rp":["lus","uis","ussi","ison","hos","ions","oins","usi","onsi","uiss","uk","luk","lusi","lons","joi","nsui"]},"115":{"input":[1,2,5,6,7],"tlw":["aussi",11177],"trw":["ouais",603],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eul",11197],"trp":["leu",32420],"tlw":["euh",642],"trw":["lieu",1585],"lp":["eul","eule","elu","elui","eui","euil"],"rp":["leu","uel","ieu","ule","len","heu","oule","uell","lieu","lleu","ilen","nel","lein","ly"]},"117":{"input":[1,3,5,6,7],"tlw":["quelque",6947],"trw":["laquelle",1557],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["seul",3625],"trw":["luke",3101],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["quelques",6336],"trw":["la-dedans",355],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["vou",60021],"trp":["uv",57671],"tlw":["vu",3991],"trw":["nuit",3923],"lp":["vou","bl","tion","vu","voul","von","gin"],"rp":["uv","ouv","uit","ign","long","itu","ibl","nouv","ing","oint","lut","uiv","ubl"]},"121":{"input":[1,4,5,6,7],"tlw":["voulait",2213],"trw":["haut",2023],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["vous",46221],"trw":["longs",581],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["avons",2442],"trw":["lanca",1051],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["trouve",3189],"trw":["leur",13514],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["veux",4192],"trw":["nouveau",4416],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["chose",7901],"trw":["leurs",6620],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["chaque",3120],"trw":["lorsque",2306],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",26335],"trw":["p",553],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",48180],"trp":["pa",224861],"tlw":["ap",72],"trw":["papa",974],"lp":["ap","app","appa","apa"],"rp":["pa","ppa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",20685],"trp":["ps",18522],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",4429],"trp":["pas",100009],"tlw":["saps",129],"trw":["pas",84383],"lp":["spa","asp","sap","aps","sapp","saps"],"rp":["pas","pass"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",48775],"trp":["pe",136807],"tlw":["epee",266],"trw":["'",318],"lp":["ep","epe","epee","e'"],"rp":["pe","'e","ppe","'ep","pee","ppee","pep","pepe","p'","'epe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["epa",8854],"trp":["'a",123917],"trw":["pape",116],"lp":["epa","appe","xp","exp","ape","xpe","expe","apea"],"rp":["'a","'ap","'app","'ex","'ea","pea","'exp","'epa","'ape","'exa","'exe","pape"]},"134":{"input":[2,3,8],"tlp":["d'",72817],"trp":["'es",50133],"tlw":["epees",70],"trw":["pdd",99],"lp":["d'","s'","s'e","d'e","esp","dep","spe","s'es","espe","sep","sesp","depe","d'es","eps"],"rp":["'es","'esp","pes","'ess","ped","pese"]},"135":{"input":[1,2,3,8],"tlp":["d'a",18719],"trp":["'as",4949],"tlw":["depasse",270],"trw":["passe",4560],"lp":["d'a","s'a","s'ap","depa","epas","s'as","d'ap","d'ea","espa","s'ex","sepa","aspe","s'ad","d'ad","d'ex","xped"],"rp":["'as","'ass","'ad","pesa"]},"136":{"input":[4,8],"trp":["pt",10944],"trw":["pt",1183],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",1491],"trp":["pat",3801],"tlw":["tapa",68],"lp":["tap","apt","tapa"],"rp":["pat","patt","pta","pf"]},"138":{"input":[2,4,8],"trp":["pc",625],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",4228],"trp":["pac",1260],"tlw":["cap",326],"lp":["cap","capa","spac","apac","apc","capt"],"rp":["pac","pats","past"]},"140":{"input":[3,4,8],"tlp":["rep",21795],"trp":["pr",118408],"tlw":["repete",469],"trw":["pere",4207],"lp":["rep","epr","rp","repr","ept","t'","epre","rpr","repe"],"rp":["pr","pre","per","'et","pet","pere","pte","ppr","'etr","pret","pete"]},"141":{"input":[1,3,4,8],"tlp":["apr",9449],"trp":["par",86969],"tlw":["frappe",557],"trw":["par",27661],"lp":["apr","apre","rap","rapp","appr","epar","repa","t'a","aper"],"rp":["par","'eta","part","'ar","pare","para","ppar","'arr","parf","'at","'att"]},"142":{"input":[2,3,4,8],"tlp":["c'",37695],"trp":["'est",44521],"tlw":["c'est",27418],"trw":["pres",4017],"lp":["c'","c'e","c'es","c'et","s'et","spec","cep","rps","d'et","resp","cept","spr"],"rp":["'est","pres","pers","pec","prec","perd","'ec","pect"]},"143":{"input":[1,2,3,4,8],"tlw":["apres",7671],"trw":["parce",4758],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",78967],"trw":["m",2037],"lp":[],"rp":["mm","mp","nm","mn","pn","np"]},"145":{"input":[1,5,8],"tlp":["am",51798],"trp":["ma",187703],"trw":["ma",11423],"lp":["am","ama","amp","aman","amm","ampa","anm","anap"],"rp":["ma","man","mpa","mma","pan","mam","mama","manq","mman","paq","nap","pann"]},"146":{"input":[2,5,8],"tlp":["sm",1338],"trp":["mps",12697],"trw":["ms",179],"lp":["sm"],"rp":["mps","nsp","ms","nsm"]},"147":{"input":[1,2,5,8],"tlp":["sam",1341],"trp":["jam",12043],"tlw":["sam",363],"trw":["pans",80],"lp":["sam","amas","samm","ansp","asm","amps","ansm","span","sma"],"rp":["jam","jama","mas","mass","masq","maj","mpas","mw","njam","mans","nsma"]},"148":{"input":[3,5,8],"tlp":["em",168013],"trp":["me",306012],"tlw":["emmene",192],"trw":["me",28601],"lp":["em","eme","emen","emp","emm","emme"],"rp":["me","men","mme","n'","mem","pen","'en","meme","n'e","mmen","m'","'y","mpe","n'y"]},"149":{"input":[1,3,5,8],"tlp":["ema",18574],"trp":["n'a",19043],"tlw":["ame",424],"trw":["m'a",4088],"lp":["ema","eman","ame","amme","amen","xem","exem","xemp","ampe","xam","exam"],"rp":["n'a","m'a","pay","'an","'am","mena","paye","'ann","mane"]},"150":{"input":[2,3,5,8],"tlp":["dem",20176],"trp":["j'",30702],"tlw":["s'en",2720],"trw":["mes",6170],"lp":["dem","sem","emps","s'en","deme","d'en","seme","ssem","emes"],"rp":["j'","mes","pens","mmes","n'es","pend","j'e","med","j'en","mess","ndem"]},"151":{"input":[1,2,3,5,8],"tlw":["demande",3741],"trw":["pays",1471],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",463],"trp":["mb",31529],"lp":["tm","bm","ttm"],"rp":["mb","mpt","mt"]},"153":{"input":[1,4,5,8],"tlp":["amb",5301],"trp":["mat",6196],"tlw":["amant",146],"trw":["mat",200],"lp":["amb","fam","apab","tam","tamm","atm","amat","bap","bapt"],"rp":["mat","pab","mba","mant","mbat","pant","mpat","mpta","matt","mab","mban"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",1559],"trp":["mc",93],"tlw":["cm",1559],"lp":["cm"],"rp":["mc"]},"155":{"input":[1,2,4,5,8],"tlw":["camp",691],"trw":["passant",523],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",29998],"trp":["ment",81650],"tlw":["type",1817],"trw":["mere",4432],"lp":["rm","tem","rem","rme","temp","teme","emb","erm","reme"],"rp":["ment","mer","pren","met","mbr","mbre","mpr","prem","n'et","mpre","mbe"]},"157":{"input":[1,3,4,5,8],"tlw":["femme",6271],"trw":["payer",631],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["temps",9524],"trw":["n'est",6536],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["femmes",2197],"trw":["pendant",4274],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",30694],"lp":[],"rp":["pi","ip","ipp","ipi","pip","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",6237],"trp":["pai",4095],"trw":["pizza",69],"lp":["api","apai"],"rp":["pai","papi","ipa","pia","ppai","piz","pizz","ippa","piaz"]},"162":{"input":[2,6,8],"tlp":["spi",1730],"trp":["isp",3645],"trw":["pis",282],"lp":["spi"],"rp":["isp","pis"]},"163":{"input":[1,2,6,8],"tlp":["apis",563],"trp":["ispa",2356],"trw":["passai",91],"lp":["apis","spai"],"rp":["ispa","pais"]},"164":{"input":[3,6,8],"tlp":["epi",615],"trp":["'i",49129],"trw":["pipe",239],"lp":["epi"],"rp":["'i","pie","pei","ipe","ippe","pipe","ie'"]},"165":{"input":[1,3,6,8],"tlp":["apie",1594],"trp":["'ai",30601],"trw":["paix",638],"lp":["apie","epai"],"rp":["'ai","'exi","paix","'aie","paie"]},"166":{"input":[2,3,6,8],"tlp":["s'i",6660],"trp":["pied",4225],"tlw":["d'idees",66],"trw":["pieds",2197],"lp":["s'i","disp","d'i","espi","depi","d'id","epis","dip"],"rp":["pied","pid","pide","'id","'ide","ispe","ipes","pedi","'k","'ke","'kee","pidi"]},"167":{"input":[1,2,3,6,8],"tlw":["epais",338],"trw":["peake",83],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",158],"trp":["pit",5509],"trw":["pitt",410],"lp":["tip"],"rp":["pit","pti","ipit","pitt","piti","ipt","ipti","piv"]},"169":{"input":[1,4,6,8],"tlp":["apit",2174],"trp":["pita",2057],"tlw":["tapait",66],"lp":["apit","tapi","vap","apti"],"rp":["pita","pati","pait","pav","ptai","pavi","ipat"]},"170":{"input":[2,4,6,8],"tlp":["cip",2146],"trp":["pist",956],"trw":["pic",121],"lp":["cip","cipi","scip"],"rp":["pist","icip","pic","pisc","pick","ptis"]},"171":{"input":[1,2,4,6,8],"tlw":["tapis",563],"trw":["passait",777],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["epri",3352],"trp":["pri",24618],"tlw":["reprit",1215],"trw":["petit",6366],"lp":["epri","rpri","epti","rip","epit"],"rp":["pri","peti","prit","pier","pir","peri","pire","prie","prev","ppri","pitr","priv","'ev","pite","'evi"]},"173":{"input":[1,3,4,6,8],"tlw":["t'ai",504],"trw":["partie",2466],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["esprit",982],"trw":["pris",3067],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["c'etait",9128],"trw":["paris",1112],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",66310],"trw":["pin",80],"lp":[],"rp":["mi","im","min","imp","ph","imm","phi","nim","pin","imi","mpi","mmi","mini","hm","minn","imin","inim","pini","nip","mih"]},"177":{"input":[1,5,6,8],"tlp":["ami",10224],"trp":["mai",88086],"tlw":["ami",1414],"trw":["main",8212],"lp":["ami","amai","aim","amin","anim","aima"],"rp":["mai","main","ima","ham","hap","mani","iam","hamp","mina","nima","pain","hapi","happ","imai"]},"178":{"input":[2,5,6,8],"tlp":["sim",4174],"trp":["mis",9740],"trw":["mis",1921],"lp":["sim","simp","sph","smi","ssim","snip"],"rp":["mis","jim","miss","insp","mmis","mik","mins","nspi","ism","nism","jimm","pins","ijim","misi"]},"179":{"input":[1,2,5,6,8],"tlw":["amis",1180],"trw":["mais",42478],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",15514],"trp":["mie",15315],"tlw":["ennemi",205],"trw":["peine",2455],"lp":["emi","emie","emin","eph"],"rp":["mie","ime","'h","imen","'in","hem","'im","mine","hemi","pein","'imp","iem","ieme","mei","imme","'he"]},"181":{"input":[1,3,5,6,8],"tlw":["aime",856],"trw":["n'ai",2898],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["demi",438],"trw":["mise",705],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["semaine",1154],"trw":["j'ai",15346],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",5445],"trp":["mit",5727],"tlw":["tim",73],"trw":["mit",2329],"lp":["tim","thm","timi","bim","timb"],"rp":["mit","ntim","mbi","imb","imit","mpit","ptib","mbin","miti","mith","itim","mv","mvi"]},"185":{"input":[1,4,5,6,8],"tlw":["faim",558],"trw":["matin",2422],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",155],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["champ",458],"trw":["massif",152],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["termine",610],"trw":["premiere",3206],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["vraiment",3840],"trw":["n'etait",4972],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["chemin",1720],"trw":["merci",1888],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["chambre",2756],"trw":["j'avais",3059],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",155941],"trw":["pop",58],"lp":[],"rp":["po","op","ppo","opo","opp","pop","oppo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",2216],"trp":["opa",340],"lp":["appo","apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",3643],"trp":["pos",17016],"lp":["spo","spos","sop"],"rp":["pos","poss","opos","ppos","osop","osp","pso"]},"195":{"input":[1,2,7,8],"trp":["posa",2884],"trw":["posa",1155],"lp":[],"rp":["posa","pow"]},"196":{"input":[3,7,8],"tlp":["epo",13316],"trp":["'o",22659],"lp":["epo"],"rp":["'o","'oe","ope","oppe","'epo","-p","poe","-pe","o'","'op","'ope","-po"]},"197":{"input":[1,3,7,8],"tlp":["xpo",114],"trp":["-pa",135],"lp":["xpo","expo"],"rp":["-pa","'a-"]},"198":{"input":[2,3,7,8],"tlp":["d'o",3873],"trp":["pose",6350],"tlw":["depose",222],"trw":["pose",1409],"lp":["d'o","espo","epos","d'oe","s'o","depo","d-p","d-pe","epso","dop","d'os"],"rp":["pose","'od","'ode","'os","-sep","osep","poes","ps-","'ose"]},"199":{"input":[1,2,3,7,8],"tlw":["deposa",185],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1434],"trp":["pot",1385],"tlw":["top",89],"trw":["pot",240],"lp":["top"],"rp":["pot","pto","opt"]},"201":{"input":[1,4,7,8],"tlp":["apot",365],"trp":["pag",5377],"tlw":["tapota",134],"lp":["apot","tapo"],"rp":["pag","pota"]},"202":{"input":[2,4,7,8],"tlp":["cop",842],"trp":["poc",1602],"tlw":["stop",73],"trw":["pots",103],"lp":["cop","copt","stop"],"rp":["poc","post","pco","pots"]},"203":{"input":[1,2,4,7,8],"tlw":["capot",86],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",11883],"trp":["pro",26938],"tlw":["trop",6088],"trw":["porte",7561],"lp":["rop","repo","trop","ropr","ropo","epro"],"rp":["pro","por","port","prop","orp","opr","'or","ppor","opre","ppro","prot","-top","'ore","prog"]},"205":{"input":[1,3,4,7,8],"tlw":["rapport",803],"trw":["page",1683],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corps",3633],"trw":["propos",951],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["d'accord",1426],"trw":["passage",1091],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",114832],"trw":["mon",15902],"lp":[],"rp":["om","mo","pou","omm","mon","pu","up","omp","oup","um","mu","pon","nom","mou","mpo","mom","upp","mun","uppo","mmu"]},"209":{"input":[1,5,7,8],"tlp":["amo",2232],"trp":["pau",6517],"trw":["mona",153],"lp":["amo","amou","aup","aum","appu","amu","aupa","anmo"],"rp":["pau","oma","mau","ompa","upa","uma","omma","poq","poqu","oman","oupa","paqu"]},"210":{"input":[2,5,7,8],"tlp":["som",5403],"trp":["pous",4373],"trw":["noms",472],"lp":["som","somm","sup","soup","supp","spon","susp"],"rp":["pous","mons","mus","pons","mpos","ups","oups","mos","oms","noms","usp","mous","jup"]},"211":{"input":[1,2,5,7,8],"trw":["poussa",827],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["epon",8146],"trp":["u'",72122],"tlw":["emu",95],"trw":["peu",10328],"lp":["epon","epu"],"rp":["u'","omme","'u","'un","peu","u'e","'une","'on","ome","u'u","u'un","ume","upe","-m","omen","u'o","u'on","mome"]},"213":{"input":[1,3,5,7,8],"tlw":["qu'on",6252],"trw":["peux",3366],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["d'un",18560],"trw":["monde",5892],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["d'eau",1024],"trw":["jusqu'a",4050],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",8498],"trp":["omb",12802],"tlw":["tom",1064],"trw":["mot",1938],"lp":["tom","tomb","ttom","tup","tum","tmo"],"rp":["omb","mont","mot","ompt","nomb","put","pub","mbo","mob","pont","mmob","mout","omt","mpto"]},"217":{"input":[1,4,5,7,8],"tlw":["tomba",500],"trw":["monta",334],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["coup",5443],"trw":["mots",1844],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["combat",528],"trw":["poussant",233],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["tomber",1545],"trw":["pour",54806],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forme",1597],"trw":["pourtant",2127],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["comme",26616],"trw":["personne",4398],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["qu'est-ce",3758],"trw":["presque",3280],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",81861],"trw":["poil",237],"lp":[],"rp":["pl","poi","pli","pol","poli","plo","lip","ilip","lop","lopp","opi","pil","lipp","lp","ppl","ipl","poil","ppli","ploi","pilo"]},"225":{"input":[1,6,7,8],"tlp":["alp",231],"trp":["pla",16627],"trw":["plaza",92],"lp":["alp","alop","apil","apol","appl"],"rp":["pla","plai","pal","ipal","pala","opai","lpa","pali","pail","lap","lapi","plaz","plia","opla"]},"226":{"input":[2,6,7,8],"tlp":["spoi",1196],"trp":["posi",1139],"trw":["poils",186],"lp":["spoi","spl"],"rp":["posi","ispo","pois","plis","plos","piso","pok"]},"227":{"input":[1,2,6,7,8],"trw":["palais",478],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elep",2381],"trp":["l'",88780],"trw":["l'oeil",749],"lp":["elep","epl","elop"],"rp":["l'","'il","l'e","'el","'ell","ple","l'o","l'i","pel","ppel","plei","pele","lep","pell","'oei","l'ep","l'oe"]},"229":{"input":[1,3,6,7,8],"tlw":["appele",632],"trw":["l'a",2169],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["s'il",4703],"trw":["l'idee",964],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["s'appelle",386],"trw":["l'aide",479],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tipl",158],"trp":["ptio",1479],"lp":["tipl"],"rp":["ptio","poig","poit","opit","ptoi","pig","pivo","plit","ltip","lpt","lpit","pito","pilt","plot"]},"233":{"input":[1,4,6,7,8],"tlw":["galop",145],"trw":["plait",891],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capital",85],"trw":["posait",183],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["reprit-il",188],"trw":["l'oreille",587],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["appeler",517],"trw":["l'air",3916],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["desespoir",393],"trw":["police",1783],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["d'avoir",1685],"trw":["place",3372],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["plu",43647],"trw":["moi",12680],"lp":[],"rp":["plu","moi","pui","hom","homm","mpl","mil","moin","mill","poin","lum","impo","pho","impl","minu","umi","hum","upi","ompl","mili"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["animal",319],"trw":["mal",4543],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",341],"trw":["plus",37565],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["salim",412],"trw":["maison",4491],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["homme",5277],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["qu'il",23610],"trw":["mieux",3375],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["depuis",5560],"trw":["hommes",4084],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["qu'ils",4873],"trw":["musique",825],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["bulpitt",89],"trw":["point",3139],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",348],"trw":["pouvait",3877],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["commis",274],"trw":["jimbo",666],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["thomas",448],"trw":["mauvais",894],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["telephone",2027],"trw":["lumiere",2031],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["famille",1962],"trw":["pourquoi",6282],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["repondit",2783],"trw":["longtemps",2380],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["semblait",1934],"trw":["larmes",1018],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/hu-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/hu-keymap.json index ec03cb5989..c7516e776f 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/hu-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/hu-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",383],"tlw":["a",307731],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",24364],"tlw":["s",39563],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",66595],"tlw":["was",3404],"lp":["as","sa","ass","wa","asa","was","sas","ssa","assa","sass","aw","sasa","awa","ws","saw","sw","ww","asas","aws","www"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",3291],"tlw":["e",6340],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",12313],"tlw":["x",109],"lp":["ea","ex","ae","xa","exa","xe","exe","xx"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["es",161633],"tlw":["es",60379],"lp":["es","de","se","ed","ese","des","ede","ess","dd","sse","edes","ds","esse","edd","dese","ses","sed","sd","eed","ded"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",36504],"tlw":["we",1547],"lp":["ad","da","ada","we","das","add","sad","sada","ase","ead","dasa","ew","ade","adas","ads","dea","eas","asd","esa","desa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",111811],"tlw":["t",315],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",110634],"tlw":["at",3435],"lp":["ta","at","att","tta","ata","fa","tat","atta","tata","af","ft","ff","tatt","aft","fat","atat","tf","aff","afa","ffa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["cs",52385],"tlw":["c",503],"lp":["cs","st","ts","ct","cc","tc","sc","scs","tts","sts","csc","cscs","cts","stt"],"rp":[]},"11":{"input":[1,2,4],"tlp":["csa",25323],"tlw":["fact",237],"lp":["csa","ac","ca","ast","tas","acs","sta","ats","atas","sat","csas","cas","tw","act","tsa","cat","stat","cast","tasa","asta"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",141919],"tlw":["te",4722],"lp":["er","et","te","re","rt","ett","ere","ert","ete","tet","tte","ette","rr","ter","tett","rte","etet","ret","erte","eret"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",117406],"tlw":["arra",2662],"lp":["ar","ra","fe","ara","art","tar","rta","tart","rat","arr","fr","rra","fer","arta","ef","ate","arra","arat","tra","rea"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rs",15788],"tlw":["este",960],"lp":["rs","dt","rd","res","ste","est","tes","erd","ce","rde","ec","rc","erde","ers","eres","set","cse","det","etes","este"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["dta",9305],"tlw":["were",1692],"lp":["dta","adt","rad","arad","ars","rsa","arc","adta","sar","tars","arsa","wer","ras","radt","dar","ard","were","dat","dra","rsad"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",30933],"trw":["n",210],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",171406],"trp":["na",74976],"tlw":["an",1125],"trw":["na",433],"lp":["an","ann","ana","anna","anan"],"rp":["na","nna","nan","nnan","nana","nq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",2399],"trp":["ns",7890],"trw":["j",225],"lp":["sn"],"rp":["ns","jj","nj","js","jn"]},"19":{"input":[1,2,5],"tlp":["aj",26099],"trp":["ja",44839],"tlw":["aj",46],"trw":["jaj",1254],"lp":["aj","aja","san","ans","saj","saja","sna","asn","asna","wn","ajan","ssan","ajn","ajna"],"rp":["ja","jan","jaj","nas","jna","jana"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",192896],"trp":["ne",139773],"tlw":["en",13217],"trw":["ne",6355],"lp":["en","enn","eny","ene","enne","enye","ey","enny","een"],"rp":["ne","ny","ye","yen","nne","nye","nny","yn","yne","nen","nyn"]},"21":{"input":[1,3,5],"tlp":["any",20653],"trp":["ya",37836],"tlw":["any",460],"lp":["any","ane","ean","anya","eany","anny","ay","anyn","ena","enna","eq"],"rp":["ya","yan","nya","yna","yana","yany","nyna","yea","ynya"]},"22":{"input":[2,3,5],"tlp":["den",14339],"trp":["nd",76373],"tlw":["ej",386],"trw":["need",144],"lp":["den","dj","ej","sen","end","eje","esen","dn","ende"],"rp":["nd","nde","je","nden","ys","ndj","jd","yes","yj","nse","jen"]},"23":{"input":[1,2,3,5],"tlp":["and",17737],"trp":["ndja",5958],"tlw":["and",12896],"trw":["new",369],"lp":["and","dja","ajd","adj","dan","adn","adja","dna","sand","anyj","day","way","ande"],"rp":["ndja","nda","yas","yja","ndan","nyja","ysa"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",33278],"trp":["nt",65227],"tlw":["b",333],"lp":["bb","tn","tb","bn","bbn","bt"],"rp":["nt","nb","ntb","nnt","ntt"]},"25":{"input":[1,4,5],"tlp":["ba",46116],"trp":["nat",3727],"tlw":["abban",1391],"lp":["ba","ab","ban","tan","aba","abb","ant","aban","bba","bban","abba","bat","tana","anat","atn"],"rp":["nat","nta","nba","nban","nf"]},"26":{"input":[2,4,5],"tlp":["tj",4670],"trp":["nc",13855],"tlw":["stb",576],"lp":["tj","sb","bs","stb","bbs","cb","bj","sbb","csb","csn"],"rp":["nc","ncs","jt","nst","nts","jb","nbs","ntj","jts","jtj"]},"27":{"input":[1,2,4,5],"tlp":["ajt",5087],"trp":["jat",5127],"tlw":["sajat",1345],"lp":["ajt","tja","ajta","anc","ajat","atj","atja","baj","can","ancs","faj","fj","sab","sba","bac","sabb"],"rp":["jat","jta","jab","jaba"]},"28":{"input":[3,4,5],"tlp":["be",65601],"trp":["nte",8707],"tlw":["be",6609],"lp":["be","ben","ent","ten","eb","ber","rn","ebe","ren","ebb","ty","bbe","eben","ry","bet","rten"],"rp":["nte","yet","yt","yer"]},"29":{"input":[1,3,4,5],"tlp":["ran",8885],"trp":["yar",8550],"tlw":["bar",1464],"trw":["natty",172],"lp":["ran","bar","aran","arn","rany","tya","aty","rna","fen","rab","atya","bara","rba","arna","ary","rant"],"rp":["yar","yat","yf","yta"]},"30":{"input":[2,3,4,5],"tlp":["sten",4933],"trp":["ndt",3578],"tlw":["esetben",368],"lp":["sten","rj","bes","rend","enc","seb","renc","csen","dent","sebb","bec","ejet","erj","tend","encs"],"rp":["ndt","ncse","nce","jet","jr"]},"31":{"input":[1,2,3,4,5],"tlw":["rajta",1591],"trw":["jart",812],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",2593],"trw":["i",2017],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["az",158164],"trp":["ia",19708],"tlw":["az",99800],"lp":["az","za","zi","ai","zz","aza","zza","zaz","azz","azza","azi","zaza","zia","azaz","zai"],"rp":["ia","iz","iai","iza","izi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",22088],"trp":["is",89346],"tlw":["si",71],"trw":["is",40982],"lp":["si","sk","sik","sis","ssi","ski"],"rp":["is","ki","ik","kk","kis","kik","iss","ks","isk","kiss","isi","iki","ksi","ikk"]},"35":{"input":[1,2,6],"tlp":["sz",176990],"trp":["ka",44404],"tlw":["aki",3851],"trw":["iszik",209],"lp":["sz","ak","sza","sak","ssz","szi","aka","asz","aki","zs","akk","assz","zik","wi","asi","ssza","szik","zsa"],"rp":["ka","isz"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",6348],"trp":["ie",7511],"lp":["ei","eei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",100252],"trp":["ize",2949],"tlw":["ez",13097],"trw":["ize",69],"lp":["ze","ez","eze","aze","zze","ezz","ezze","ezi","eza","xi","zei","ezei","zez","zeze","ezai","xix","xii"],"rp":["ize","ix","izze"]},"38":{"input":[2,3,6],"tlp":["ek",80676],"trp":["ke",88251],"tlw":["did",582],"trw":["ide",1572],"lp":["ek","di","eke","eki","edi","dik","dek","ddi","ekk","sek","ske","sid"],"rp":["ke","id","ide","ked","kes","ike","ise","kek"]},"39":{"input":[1,2,3,6],"tlp":["sze",62411],"trp":["kez",11007],"tlw":["ezek",1919],"trw":["kezd",305],"lp":["sze","esz","esze","zd","zek","ezd","ezek","ssze","azd","zda","azda","szek","dez","adi","zeke","zes"],"rp":["kez","keze","kezd","isze"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",26187],"trp":["it",48328],"tlw":["ti",467],"trw":["itt",6106],"lp":["ti","vi","tv","vit","tit","tiv","vitt","vv","tti","vt","vii","viii"],"rp":["it","iv","itt","iti","ivi","itv","ivt","itiv"]},"41":{"input":[1,4,6],"tlp":["va",85476],"trp":["if",3685],"tlw":["azt",15369],"trw":["if",856],"lp":["va","zt","azt","fi","zta","av","ava","fia","azta","ati","ziv","vat","zat","viz","tva","tiz","fiat"],"rp":["if","iat","iva"]},"42":{"input":[2,4,6],"tlp":["csi",6831],"trp":["ic",8214],"tlw":["cit",131],"trw":["kit",1125],"lp":["csi","ci","vis","tk","viss","tis","sti","stv","sit","tik"],"rp":["ic","ist","kiv","ics","kit","kt","kic","kics","its","icsi"]},"43":{"input":[1,2,4,6],"tlp":["csak",20970],"trp":["kat",7650],"tlw":["csak",17322],"lp":["csak","szt","tak","cz","wit","tsz","vas","aszt","szta","sziv","tisz","atsz","czi","ttak","visz","cia"],"rp":["kat","iszt","kiva","kta"]},"44":{"input":[3,4,6],"tlp":["ve",74884],"trp":["ir",33168],"tlw":["vette",950],"trw":["irt",530],"lp":["ve","ri","ev","eve","vet","ver","rv","eri","eti","vett","tve","eir","rve","evet"],"rp":["ir","ive","ire","irt","ite","itte"]},"45":{"input":[1,3,4,6],"tlp":["zer",25432],"trp":["ira",15949],"tlw":["ezt",5966],"lp":["zer","zet","ezt","zere","var","zte","ezet","zett","ari","zert","ezte","vez","ria","zar","ezer","azer","rva","veze","zeri"],"rp":["ira"]},"46":{"input":[2,3,4,6],"tlp":["tek",13729],"trp":["ket",19030],"tlw":["vers",850],"trw":["ket",6195],"lp":["tek","ves","dv","rk","eket","rek","erek","dve","edv","edve","ttek","vid"],"rp":["ket","ker","kir","kere","iste","kerd","kedv","kr"]},"47":{"input":[1,2,3,4,6],"tlw":["akar",1873],"trw":["kezet",1015],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",100465],"trw":["in",9209],"lp":[],"rp":["in","ni","hi","nin","nni","hin","inn","ih","hh","ini","nh","inni","inh","hn","hinn","nii","hni","nini","hih","nnin"]},"49":{"input":[1,5,6],"tlp":["ah",5695],"trp":["ha",99222],"tlw":["ah",347],"trw":["ha",15507],"lp":["ah","zn","ani","zin","zan","zni","zna","ain","azan","aha"],"rp":["ha","han","haz","haza","ian","ina","nz","hia","nia","hazi"]},"50":{"input":[2,5,6],"tlp":["sin",3147],"trp":["nk",18980],"trw":["his",3359],"lp":["sin","sh","sni"],"rp":["nk","his","kin","nki","kn","ink","nik","nis","ij","kh","ins","ish","ikn","nkin","kikn","nsi","jh"]},"51":{"input":[1,2,5,6],"tlp":["wh",5945],"trp":["nak",17010],"tlw":["annak",3112],"trw":["hisz",637],"lp":["wh","szin","anak","szn","zaj","ank","whi","sina","aszn","szaj"],"rp":["nak","nka","nnak","has","haj","jak","hisz","kan","inka","hasz"]},"52":{"input":[3,5,6],"tlp":["eh",18062],"trp":["he",78848],"tlw":["enni",263],"trw":["he",3277],"lp":["eh","ehe","enni","eni","enyi","ein"],"rp":["he","yi","nyi","nnyi","ine","neh","hey","hen","hei","yh","nehe","inne","ien","nyh"]},"53":{"input":[1,3,5,6],"tlp":["zen",10585],"trp":["hane",4811],"tlw":["ezen",1479],"trw":["nehany",1282],"lp":["zen","eha","ezen","enz","ehan","ehez","zne","ezn","ezni"],"rp":["hane","nez","neha","hany","hez","yha","izen","neze","yz","yze","yez"]},"54":{"input":[2,3,5,6],"tlp":["enk",5048],"trp":["nek",29850],"tlw":["ennek",2112],"trw":["neki",6003],"lp":["enk","enek","enki","dni","senk"],"rp":["nek","ind","inde","neki","yek","neke","ken","yik","nnek","ndi","indi","inek","kine","nke","kne"]},"55":{"input":[1,2,3,5,6],"tlw":["when",993],"trw":["had",1905],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",71797],"trp":["int",32779],"tlw":["th",242],"trw":["hit",168],"lp":["th","bi","thi","bbi","tni","tth","vin","thin"],"rp":["int","ith","nth","inth","ib","ht","nti","hiv","hit","nv","hitt","nit"]},"57":{"input":[1,4,5,6],"tlp":["van",18634],"trp":["hat",22178],"tlw":["van",11948],"trw":["hat",6837],"lp":["van","tha","that","biz","ztan","zb","zab","ath","vab","vabb","zaba","zint","tvan","vann"],"rp":["hat","hata","ntha","hav","ivan","hab"]},"58":{"input":[2,4,5,6],"tlp":["ch",5920],"trp":["inc",7312],"tlw":["this",2307],"trw":["nincs",3085],"lp":["ch","this","csin","sinc","chi","bis"],"rp":["inc","incs","ninc","kb","kint","ich","hic","hich","nci","hist","nsti","inst","itj","nkit"]},"59":{"input":[1,2,4,5,6],"tlw":["with",3691],"trw":["inkabb",1478],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["the",47933],"trp":["het",10465],"tlw":["the",34738],"trw":["het",978],"lp":["the","ehet","ven","rin","ther","they","rint","teh","erin","thei","bir"],"rp":["het","her","inte","nev","neve","hete","hir","heir","yv"]},"61":{"input":[1,3,4,5,6],"tlw":["tehat",2571],"trw":["have",1230],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["these",599],"trw":["isten",2805],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["szerint",2186],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",1820],"trw":["o",10573],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","trp":["oa",760],"lp":[],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",41762],"trp":["os",59448],"tlw":["so",930],"trw":["os",131],"lp":["so","sos","soso","sso","soo"],"rp":["os","oss","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["aso",4417],"trp":["osa",3764],"lp":["aso","wo","asos","swo","woo","asso"],"rp":["osa","ow","ossa","owa","ows"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",1230],"trp":["-e",3142],"trw":["-",1439],"lp":["eo","e-","e-o"],"rp":["-e","oe","o-","-o","o-o"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",237],"trp":["-a",532],"trw":["-a",180],"lp":["a-","a-e","xo"],"rp":["-a","ox"]},"70":{"input":[2,3,7],"tlp":["do",41052],"trp":["od",15802],"tlw":["eso",376],"trw":["-es",254],"lp":["do","sod","dos","eso","dod","edo","d-","d-e","sose"],"rp":["od","ose","odo","ode","od-","od-e","odes","ood","osse","-d","-es"]},"71":{"input":[1,2,3,7],"tlp":["ado",4227],"trp":["oda",6077],"tlw":["ado",161],"trw":["oda",2095],"lp":["ado","soda","asod","dow","easo","doa","dosa","as-","ados","wood","adod","ewo"],"rp":["oda","owe","odas","-as","odaa","owed","-oda","odae"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",78142],"trp":["og",80035],"tlw":["to",11182],"trw":["ott",6355],"lp":["to","go","tot","tott","got","gt","gg","tto","gott","gto","tog"],"rp":["og","ot","ott","ogo","ogt","ogot","oto","ogto","otot"]},"73":{"input":[1,4,7],"tlp":["ag",87943],"trp":["of",19703],"tlw":["fog",1642],"trw":["of",16836],"lp":["ag","ga","fo","aga","ato","fog","ago","gat","agat","atot","agot","gta","foga","gf","fogo","agg"],"rp":["of","otta","oga","ota"]},"74":{"input":[2,4,7],"tlp":["cso",6549],"trp":["ost",9595],"tlw":["sot",1437],"lp":["cso","co","tos","gs","sot","gos","sto","sg","csos","csot","soc","cco","cto","ttos","sog"],"rp":["ost","oc","ocs","ogs","osto"]},"75":{"input":[1,2,4,7],"tlp":["sag",7512],"trp":["osag",1075],"tlw":["two",477],"lp":["sag","agos","sago","gas","atos","asag","agas","tosa","acso","ssag","tsag","gosa","two","saga","sga","gsa","ags"],"rp":["osag","oca","ocsa"]},"76":{"input":[3,4,7],"tlp":["eg",183750],"trp":["or",88200],"tlw":["eg",697],"trw":["oreg",2917],"lp":["eg","ro","ge","ege","reg","tor","gr","get","ero","tort","eget","rto","teg","rg","ger"],"rp":["or","ore","oro","ort","oreg"]},"77":{"input":[1,3,4,7],"tlp":["aro",14078],"trp":["ora",5234],"tlw":["for",3067],"trw":["ora",808],"lp":["aro","for","gar","rag","arto","fro","ega","rof","grof","egf","gra","arg","aror","taro","forr","rga","efo","arag"],"rp":["ora","orra"]},"78":{"input":[2,3,4,7],"tlp":["seg",14126],"trp":["ors",6702],"tlw":["eros",707],"trw":["ordog",649],"lp":["seg","ges","eges","ros","sege","dot","dott","rdo","deg","sor","dor","dog","ged","eseg","ross","tseg","egs","eros"],"rp":["ors","ord"]},"79":{"input":[1,2,3,4,7],"tlw":["adott",1280],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",101004],"trw":["on",3707],"lp":[],"rp":["on","un","no","ou","onn","nu","ono","oun","non","uno","nno","nnu","unn","nnon","nun","nnun","uo","onu","nou","oon"]},"81":{"input":[1,5,7],"tlp":["ano",4244],"trp":["ona",5750],"tlw":["au",143],"trw":["onnan",503],"lp":["ano","au","anu","qu","anno","anon","qua","anua"],"rp":["ona","onna","ua","una","uan","oan","unan","onan","nua","onq","nqu","onqu"]},"82":{"input":[2,5,7],"tlp":["su",6983],"trp":["jo",26548],"tlw":["son",366],"trw":["jo",6226],"lp":["su","son","ssu"],"rp":["jo","us","ju","uj","nos","jon","ons","onos","jos","oj","ous","jonn","jus","jjo","jjon","joj","jun"]},"83":{"input":[1,2,5,7],"tlp":["anos",2908],"trp":["jano",2283],"tlw":["sajnos",113],"trw":["janos",2073],"lp":["anos","ajo","ason","wou","aus","ajos","aju","asu","ajjo"],"rp":["jano","osan","own","now","uja","usa","onas","ujsa","oja","ujja","jua"]},"84":{"input":[3,5,7],"tlp":["eu",1868],"trp":["yo",25659],"tlw":["eu",103],"trw":["one",972],"lp":["eu","enu"],"rp":["yo","ony","yu","nyo","yon","nyu","onyo","one","ue","y-","onny","y-e","onne","yun","uny","you","yony","oen"]},"85":{"input":[1,3,5,7],"tlp":["anyo",2334],"trp":["unya",473],"tlw":["que",241],"trw":["-an",97],"lp":["anyo","que","an-","an-e","equ","equa","anyu","aux","eque","quee"],"rp":["unya","onya","-na","yano","oya","yanu","yona","-an","nque","ux"]},"86":{"input":[2,3,5,7],"tlp":["du",7212],"trp":["ond",20755],"tlw":["du",322],"trw":["und",201],"lp":["du","don","endo","edu"],"rp":["ond","ud","ndo","ondo","udo","ondj","yos","und","nyos","udj","udn","ndu","osen","use","yedu","unde"]},"87":{"input":[1,2,3,5,7],"tlw":["adjon",401],"trw":["odaadja",48],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",26336],"trp":["ut",29088],"tlw":["tobb",2199],"trw":["not",2568],"lp":["tu","bo","tob","tobb","gon","bu","gu","ton","gn"],"rp":["ut","ob","ng","ug","obb","ont","uto","not","onb","nto","ung"]},"89":{"input":[1,4,5,7],"tlp":["ang",4181],"trp":["nag",18488],"tlw":["about",409],"trw":["utan",3611],"lp":["ang","fu","abo","gan","gab","gna","aton","tona","ango","agu","gaba"],"rp":["nag","uta","utan","oba","nga","unga","onba","utat","obba"]},"90":{"input":[2,4,5,7],"tlp":["gj",3961],"trp":["job",3981],"tlw":["bus",289],"trw":["jott",1407],"lp":["gj","csu","cou","sob","con","cson","sobb"],"rp":["job","jobb","jot","jott","jto","ntos","ust","uc","jut","ogj","ujt","jtot","juto"]},"91":{"input":[1,2,4,5,7],"tlw":["fogja",947],"trw":["jobban",1258],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gy",213097],"trp":["ogy",60410],"tlw":["egy",31147],"trw":["ugy",8993],"lp":["gy","egy","gye","gyo","egye","ru","gen","egen","gyon","geny","gyu","eng","gyen","enge","bor"],"rp":["ogy","ur","ugy","oru","nge"]},"93":{"input":[1,3,4,5,7],"tlw":["baro",394],"trw":["nagy",10563],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["tudott",1092],"trw":["ures",337],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["tudja",1421],"trw":["ujra",1374],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ol",117661],"trw":["l",1029],"lp":[],"rp":["ol","lo","ll","il","li","io","ill","llo","olo","lol","oi","oll","oli","lli","ili","illi","ilo","ollo","iol","lio"]},"97":{"input":[1,6,7],"tlp":["al",141761],"trp":["la",89690],"tlw":["all",2554],"trw":["la",881],"lp":["al","zo","ala","all","alo","azo","zol","alal","alla","zal","ali","allo"],"rp":["la","oz","ozo","lal","lla","ila","ola","ozz"]},"98":{"input":[2,6,7],"tlp":["sok",10043],"trp":["ko",67727],"tlw":["sok",3390],"trw":["ok",1198],"lp":["sok","sol","sko"],"rp":["ko","ok","lk","ls","iko","kko","lso","oko","kol","los","lko","lok","kos","lis","lik","kl","ols"]},"99":{"input":[1,2,6,7],"tlp":["szo",28916],"trp":["koz",17882],"tlw":["azok",1917],"trw":["law",597],"lp":["szo","zok","akko","szol","sszo","alk","azok","ako","soka","szok"],"rp":["koz","osz","oka","las","ossz","kozo","lak","kal","ozs","lasz"]},"100":{"input":[3,6,7],"tlp":["el",185226],"trp":["le",131988],"tlw":["el",11925],"trw":["le",3722],"lp":["el","ele","ell","elo","elle","eli","elel","elol"],"rp":["le","lle","lel","ole","ille","lole","lele","ile","lelo","olle","-i","lei"]},"101":{"input":[1,3,6,7],"tlp":["zel",9993],"trp":["lea",5723],"tlw":["ezzel",1164],"trw":["lexi",93],"lp":["zel","ezo","zele","ela","zzel","zle","zelo","zell","ale","alle","zeli","eal","ezel","elz","ezal","azel","elal"],"rp":["lea","oze","ozel"]},"102":{"input":[2,3,6,7],"tlp":["dol",7310],"trp":["ld",13454],"tlw":["elso",2743],"trw":["kell",5494],"lp":["dol","elk","els","elso","del","eles","elke","dok"],"rp":["ld","kel","les","kell","old","ido","oke","lek","lke","ldo","led","lese"]},"103":{"input":[1,2,3,6,7],"tlw":["szel",525],"trw":["lesz",3740],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",40145],"trp":["lt",63226],"tlw":["volt",20311],"trw":["ivott",154],"lp":["vo","vol","volt","gi","tl","tol","vil","tio","gl"],"rp":["lt","ig","olt","ov","lot","lott","lv","lg","olg","lto","lit"]},"105":{"input":[1,4,6,7],"tlp":["val",23257],"trp":["lat",20885],"tlw":["alatt",3368],"trw":["igaz",1408],"lp":["val","tal","vag","alt","fol","vala","zot","tala","zott","gaz","alat","alta","valo"],"rp":["lat","lta","latt","ova","lag","ozot","olta"]},"106":{"input":[2,4,6,7],"tlp":["tok",4349],"trp":["kot",3836],"tlw":["titkos",290],"trw":["kolto",379],"lp":["tok","gis","gok","tko","gk","tols"],"rp":["kot","kov","lc","olc","okt","lcs","kolt","loc","olcs","koc","icso","kott","okot","oci"]},"107":{"input":[1,2,4,6,7],"tlw":["voltak",2244],"trw":["kozott",2109],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vel",12822],"trp":["let",20248],"tlw":["elott",2567],"trw":["lett",3000],"lp":["vel","tel","egi","elt","veg","elet","vele","rol","tle","elot","tele"],"rp":["let","leg","lett","llet","ove","lte","lete","lev","iro"]},"109":{"input":[1,3,4,6,7],"tlw":["fel",5055],"trw":["left",288],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["ekkor",1030],"trw":["kellett",2170],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["akkor",5794],"trw":["orszag",966],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",91631],"trw":["hol",3321],"lp":[],"rp":["ho","ul","ln","oln","hol","hu","lu","lon","oh","ulo","ion","hun","ulon","lni","iu","hon","nl","nul","oul","uh"]},"113":{"input":[1,5,6,7],"tlp":["zon",17866],"trp":["lan",11536],"tlw":["azon",1845],"trw":["hozza",2127],"lp":["zon","zu","azon","alan","aho","zul","alu"],"rp":["lan","hal","lna","olna","hoz","nal","hall","hozz","oha","uz","izon","hala","llan"]},"114":{"input":[2,5,6,7],"tlp":["soh",2706],"trp":["ku",14889],"trw":["jol",2741],"lp":["soh","sul","sho"],"rp":["ku","kul","unk","uk","lj","kon","kulo","hos","jol","lku","lkul","juk","hus","hoss","konn","uks","nok"]},"115":{"input":[1,2,5,6,7],"tlw":["soha",1668],"trw":["kozul",1472],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["ely",25178],"trp":["ly",62035],"tlw":["ellen",1350],"trw":["oly",2731],"lp":["ely","elye","elen"],"rp":["ly","len","lye","oly","leh","lehe","ily","lyen","hel","hely","ilye","llen","nel","ule","lyi","yel","lyn"]},"117":{"input":[1,3,5,6,7],"tlw":["equal",129],"trw":["olyan",5589],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["ejjel",683],"trw":["nelkul",2214],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["asszony",2441],"trw":["kisasszony",460],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["voln",8076],"trp":["hog",60062],"tlw":["tobbi",901],"trw":["otthon",874],"lp":["voln","bol","gh","tion","bl","tho","tul","gin","vu","ght","gint"],"rp":["hog","ult","ing","hung","oth","obbi","lonb","lob","ivu"]},"121":{"input":[1,4,5,6,7],"tlw":["volna",7681],"trw":["hova",947],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["such",497],"trw":["king",1415],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["viszont",558],"trw":["ifju",760],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["bele",1164],"trw":["hogy",55048],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["vagy",8524],"trw":["horvath",1175],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["egyik",2647],"trw":["korul",1156],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["vagyok",3023],"trw":["kiraly",5259],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",4972],"trw":["p",636],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",22391],"trp":["pa",18427],"tlw":["apa",231],"trw":["pap",604],"lp":["ap","apa","app","appa"],"rp":["pa","pap","ppa","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",1610],"trp":["ps",1710],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["sap",895],"trp":["pas",1331],"trw":["pas",147],"lp":["sap","sapa","spa","aps","apas","asp","aspa","apsa"],"rp":["pas","pass","pasa","psa","paps"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",23212],"trp":["pe",28344],"tlw":["epp",420],"trw":["'",39],"lp":["ep","epe","epp","eppe","eep","e'"],"rp":["pe","ppe","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",1036],"trp":["pea",574],"tlw":["a'",897],"lp":["ape","a'","xp","exp","appe","xpe","expe","eap","epa"],"rp":["pea","ppea","pape"]},"134":{"input":[2,3,8],"tlp":["epes",1628],"trp":["ped",6768],"trw":["'s",163],"lp":["epes","eps","spe","esp","sep","sepp","epse","espe","desp","s'","s's","epd","dep"],"rp":["ped","pes","'s","pess","pse","pese","pd"]},"135":{"input":[1,2,3,8],"tlp":["dap",867],"trp":["pad",901],"tlw":["apad",98],"trw":["passed",66],"lp":["dap","dape","apes","apad","esap","weap","spea","as'","as's","aped"],"rp":["pad","peda","peas"]},"136":{"input":[4,8],"tlp":["tp",115],"trp":["pt",1949],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",1138],"trp":["pta",935],"tlw":["apat",58],"trw":["papat",43],"lp":["apt","apta","apat","tap","tapa","apf"],"rp":["pta","pat","pf","pata"]},"138":{"input":[2,4,8],"trp":["pc",781],"lp":[],"rp":["pc","pcs"]},"139":{"input":[1,2,4,8],"tlp":["apc",704],"trp":["past",91],"tlw":["csapat",159],"trw":["past",91],"lp":["apc","apcs","csap","cap","sapt","capt","scap","spac"],"rp":["past","pcsa","pac"]},"140":{"input":[3,4,8],"tlp":["epet",1843],"trp":["pr",5345],"trw":["peter",932],"lp":["epet","rep","rp","erep","ept","repe","tep","epte","epr","epre"],"rp":["pr","per","pet","pete","pre","pett","pte","pere","ppet","ppr"]},"141":{"input":[1,3,4,8],"tlp":["apr",954],"trp":["par",5757],"tlw":["expert",89],"trw":["par",1156],"lp":["apr","arp","rpa","arpa","apra","rap","xper","appr","aper","apte","erap"],"rp":["par","part","para","pera","pra","pfe","pear","perf","pate"]},"142":{"input":[2,3,4,8],"tlp":["step",391],"trp":["pest",1888],"tlw":["csepp",134],"trw":["pest",218],"lp":["step","spec","csep","resp","cep","cept","epc","epcs","r's","er's","rdep","spr"],"rp":["pest","pers","perc","pres","pec","pecs","pect","pted"]},"143":{"input":[1,2,3,4,8],"tlw":["arpad",569],"trw":["peace",107],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",5907],"trw":["m",703],"lp":[],"rp":["mm","mp","pn","nm","mn","pm","np","nnm"]},"145":{"input":[1,5,8],"tlp":["am",53502],"trp":["ma",92967],"tlw":["am",1222],"trw":["ma",3061],"lp":["am","ama","apam","amp","apn","amn","amna"],"rp":["ma","nap","man","pan","nam","mma","pam","mpa","napp","mam","nnap","mna","nma"]},"146":{"input":[2,5,8],"tlp":["sm",4467],"trp":["pj",2668],"lp":["sm"],"rp":["pj","ms","mj","mps"]},"147":{"input":[1,2,5,8],"tlp":["apj",2668],"trp":["mas",14915],"tlw":["apja",679],"trw":["mas",3210],"lp":["apj","apja","sam","snap","sma","amas","span"],"rp":["mas","maj","pja","masn","pjan","napj","mass","jam","paj","mpas","mans","maja","masa"]},"148":{"input":[3,5,8],"tlp":["em",127947],"trp":["me",140514],"tlw":["eppen",1670],"trw":["nem",50476],"lp":["em","eme","emm","epen","emen","emp","enem"],"rp":["me","nem","men","pen","menn","nep","ym","neme","ppen","meny","my","nepe","mem"]},"149":{"input":[1,3,5,8],"tlp":["ame",9265],"trp":["yma",2568],"tlw":["anyam",835],"trw":["many",675],"lp":["ame","anem","amen","ema","xam","exam","xamp","eman","eam"],"rp":["yma","many","yam","nyam","name","may","yama","mea","mean","nema","pean"]},"150":{"input":[2,3,5,8],"tlp":["sem",13924],"trp":["mes",7145],"tlw":["sem",8470],"trw":["nemes",571],"lp":["sem","sme","semm","emes","dem","ems","dnem","esem","deme","ejem","dm","edm"],"rp":["mes","mess","menj","med","mese","mse","jem","nems"]},"151":{"input":[1,2,3,5,8],"tlw":["adam",721],"trw":["majd",4082],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["bp",213],"trp":["mb",15442],"tlw":["bp",213],"lp":["bp","tm"],"rp":["mb","mt","pb","mpt"]},"153":{"input":[1,4,5,8],"tlp":["tam",7013],"trp":["mat",4622],"tlw":["babam",244],"trw":["mta",69],"lp":["tam","amb","ttam","amat","tama","bam","amba","abam","fam"],"rp":["mat","mba","mban","mab","maba","pant","matt","mta","ptam","mbat","mant"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["csm",290],"trp":["mc",1065],"tlw":["cm",129],"lp":["csm","cm"],"rp":["mc","mcs","mts"]},"155":{"input":[1,2,4,5,8],"tlw":["tamas",235],"trw":["mast",389],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["emb",12508],"trp":["mer",17137],"tlw":["ember",5090],"trw":["mert",10572],"lp":["emb","embe","rm","tem","erm","rme","erme","emet","rem","term","ttem","erem"],"rp":["mer","mbe","mert","mber","ment","met","yerm","mere"]},"157":{"input":[1,3,4,5,8],"tlw":["ram",766],"trw":["mar",14439],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["erdemes",264],"trw":["mester",269],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["tamadt",304],"trw":["matyas",1445],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",6058],"lp":[],"rp":["pi","ip","pip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",1249],"trp":["pai",741],"tlw":["apai",47],"trw":["papi",72],"lp":["api","zp","apai","zap"],"rp":["pai","ipa","pz","pia","papi","pipa"]},"162":{"input":[2,6,8],"tlp":["spi",214],"trp":["pis",406],"tlw":["sip",39],"lp":["spi","sip"],"rp":["pis","isp","pk"]},"163":{"input":[1,2,6,8],"tlp":["szp",99],"trp":["kap",3878],"trw":["kap",330],"lp":["szp","apsz","szap"],"rp":["kap","pasz","psz","kapi","ispa","pszi","pisz","pak","paks","kaps","psza"]},"164":{"input":[3,6,8],"tlp":["epi",405],"trp":["pie",218],"lp":["epi","epie"],"rp":["pie"]},"165":{"input":[1,3,6,8],"tlp":["zep",7772],"trp":["pze",497],"lp":["zep","zepe","epz","epze","z'","zepi","epez"],"rp":["pze","iz'","pez","pezi"]},"166":{"input":[2,3,6,8],"tlp":["epek",443],"trp":["pedi",6445],"trw":["kepes",493],"lp":["epek","skep","epk","espi"],"rp":["pedi","kep","kepe","kepp","pek","ikep","keep","pies","pied"]},"167":{"input":[1,2,3,6,8],"tlw":["szep",5043],"trw":["kepzes",85],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",62],"trp":["pit",714],"lp":["tip"],"rp":["pit","pv","pvi","pti"]},"169":{"input":[1,4,6,8],"tlp":["apit",393],"trp":["pita",305],"trw":["pava",90],"lp":["apit","apv"],"rp":["pita","ipat","pati","pav","pava","pitz","pva"]},"170":{"input":[2,4,6,8],"tlp":["cip",416],"trp":["pist",271],"lp":["cip","spit"],"rp":["pist","pic","icip","pvis","pict","pics"]},"171":{"input":[1,2,4,6,8],"tlw":["csaptak",83],"trw":["kapta",303],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["epit",176],"trp":["pri",1125],"tlw":["epitett",92],"lp":["epit","rip","epv","epvi","epve","epir"],"rp":["pri","pir","pve","pite","pvet","piri","peri","prev","petv","pire"]},"173":{"input":[1,3,4,6,8],"trw":["ipari",85],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["despite",105],"trw":["kepet",297],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["szerepet",241],"trw":["persze",601],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",105379],"trw":["mi",6559],"lp":[],"rp":["mi","min","im","mmi","him","mih","imp","ph","pin","hm","imm","mini","pni","mpi","mh","phi","pih","inp","pini","nim"]},"177":{"input":[1,5,6,8],"tlp":["ami",13718],"trp":["mz",2071],"tlw":["ami",1585],"trw":["mai",619],"lp":["ami","zam","amin","zama","zm","zzam","zma"],"rp":["mz","mia","mai","iam","ham","hama","maz","napi","ima","izm","miha","izma","miai"]},"178":{"input":[2,5,6,8],"tlp":["sim",317],"trp":["mik",10073],"trw":["mik",271],"lp":["sim","smi","smin","simp","simi","ship"],"rp":["mik","ism","mis","kim","mink","km","mk","ims","hims","miss","misk","mikn","mmik"]},"179":{"input":[1,2,5,6,8],"tlw":["szama",327],"trw":["masik",2051],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emmi",3676],"trp":["mie",2185],"tlw":["enyim",109],"trw":["menni",726],"lp":["emmi","emi","emei","eph","ephe","empi"],"rp":["mie","ime","hem","mine","nemi","imen","mei","meh","phe","phen","mehe","mihe","yim","nepi"]},"181":{"input":[1,3,5,6,8],"tlw":["amennyi",66],"trw":["hanem",4711],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["semmi",1966],"trw":["minden",7752],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["szepen",924],"trw":["messze",712],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1125],"trp":["mint",20757],"trw":["mint",15155],"lp":["tim"],"rp":["mint","mit","miv","mmit","mib","http","mitt","ptim","mmiv","imb","mitv","mmib","nmit","pith"]},"185":{"input":[1,4,5,6,8],"tlw":["amit",1691],"trw":["mintha",2774],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["cim",39],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["szamat",111],"trw":["masikat",211],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["them",1440],"trw":["miert",1425],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["ereztem",268],"trw":["nemzeti",722],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["semmit",1211],"trw":["mindent",1246],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["szamara",1197],"trw":["mindjart",1584],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",11623],"trw":["op",133],"lp":[],"rp":["po","op","opo","opp","oop","ppo","oppo","pop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",4028],"trp":["opa",952],"lp":["apo","appo"],"rp":["opa","oppa","papo","opap"]},"194":{"input":[2,7,8],"tlp":["spo",489],"trp":["pos",929],"lp":["spo","sop","sopo","sopp"],"rp":["pos","ops","pso","oops","poss","ppos"]},"195":{"input":[1,2,7,8],"tlp":["apos",470],"trp":["pow",266],"lp":["apos","sapo","apso"],"rp":["pow","posa","opas"]},"196":{"input":[3,7,8],"tlp":["eop",677],"trp":["ope",1301],"trw":["pope",55],"lp":["eop","epo","ep-","ep-e","eopo"],"rp":["ope","peo","peop","-op","o-op","-ope","oope","-p","o-p","poe","p-","p-e","pope","oppe"]},"197":{"input":[1,3,7,8],"tlp":["eapo",51],"trp":["opea",193],"lp":["eapo"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["dop",118],"trp":["pose",49],"lp":["dop","epso","espo","epos"],"rp":["pose","oped","osep"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["gp",235],"trp":["pot",2175],"lp":["gp","top"],"rp":["pot","pott","pog","opt","opot","pto","poto"]},"201":{"input":[1,4,7,8],"tlp":["apot",1897],"trp":["poga",242],"tlw":["fopap",36],"trw":["papot",116],"lp":["apot","apto","gpa","fop","fopa"],"rp":["poga","pag","pota","pato","paga","opf","pfo","opta"]},"202":{"input":[2,4,7,8],"tlp":["csop",415],"trp":["pcso",700],"tlw":["csopp",40],"lp":["csop","coop"],"rp":["pcso","post"]},"203":{"input":[1,2,4,7,8],"tlw":["csapott",121],"trw":["papsag",47],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",1475],"trp":["pro",2619],"tlw":["gep",120],"trw":["por",106],"lp":["rop","rope","ropp","gep","egp","g'","roop","ro-p","gepe","gpe"],"rp":["pro","por","port","oper","opor","prog","pero","prot","ppor","ppro"]},"205":{"input":[1,3,4,7,8],"tlw":["apro",445],"trw":["poeta",81],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["troops",160],"trw":["process",152],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["gaspar",102],"trw":["power",166],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",35377],"trw":["up",463],"lp":[],"rp":["mo","om","mon","mu","mun","pu","up","omo","pon","nom","omm","oup","um","mpo","omp","onom","mpon","num","pom","upo"]},"209":{"input":[1,5,7,8],"tlp":["amo",1826],"trp":["oma",2710],"trw":["napon",471],"lp":["amo","amu","apon","apu","amon","anom","apun"],"rp":["oma","napo","oman","upa","upan","onap","omma","ompa","uma","uman","omam","onma","mano"]},"210":{"input":[2,5,7,8],"tlp":["sup",1243],"trp":["mos",10693],"tlw":["sum",38],"trw":["mos",122],"lp":["sup","som","somo","spon","supp"],"rp":["mos","pus","moso","oms","mus","ups","oups","usp","mso","pusp","uspo","pons","omj","osm","pson"]},"211":{"input":[1,2,5,7,8],"tlw":["samu",63],"trw":["pompas",221],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["epu",963],"trp":["yom",2209],"trw":["unnep",70],"lp":["epu","empo","emu","emo","emon"],"rp":["yom","ome","nyom","yomo","-m","omme","opme","ompe","mue","ymu","onym","nymu","memo","omen","ume"]},"213":{"input":[1,3,5,7,8],"trw":["nyoman",158],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["some",472],"trw":["modon",602],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["adom",249],"trw":["mondja",3298],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",2250],"trp":["mut",1499],"tlw":["gomb",66],"trw":["mogott",467],"lp":["tom","gm","gom","gmo","gmon","bom"],"rp":["mut","pont","omb","mog","mbo","mogo","mong","mot","pub","put","mbom","ogom","umb","numb"]},"217":{"input":[1,4,5,7,8],"tlw":["among",360],"trw":["maga",4082],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["common",147],"trw":["most",8125],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["csupan",725],"trw":["magas",697],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["engem",1555],"trw":["meg",36148],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["from",2513],"trw":["magyar",4376],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["tudom",1658],"trw":["mondott",476],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["egymast",707],"trw":["mondta",2475],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",3315],"trw":["pl",264],"lp":[],"rp":["pl","pil","pill","pol","plo","poli","opl","lop","lp","opi","poi","ipo","ipl","lip","ilip","lopo","pipo","lipo","lpi","opol"]},"225":{"input":[1,6,7,8],"tlp":["alap",1705],"trp":["lap",2645],"tlw":["alap",49],"trw":["pal",363],"lp":["alap","zpo","alp","zapo","apol"],"rp":["lap","pal","palo","lapo","pla","opai","ppal","llap","pala","ozp","ozpo","poz","pozi","lapi","pali"]},"226":{"input":[2,6,7,8],"tlp":["spok",377],"trp":["pok",1363],"trw":["pokol",157],"lp":["spok","sipo"],"rp":["pok","poko","kop","kopo","pko","posi","lisp","ipok","pkol","plok","oisp"]},"227":{"input":[1,2,6,7,8],"tlw":["alapos",56],"trw":["papok",148],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["eopl",632],"trp":["lep",2067],"trw":["people",540],"lp":["eopl","elep","elop","elp","epel","epl","eplo"],"rp":["lep","ple","pel","lepe","ople","iple","-pi","o-pi","pole","lepo","ppel","ilep","leop"]},"229":{"input":[1,3,6,7,8],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spoke",44],"trw":["peoples",92],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["eposz",50],"trw":["kozepso",112],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topi",149],"trp":["pig",452],"trw":["lopott",92],"lp":["topi","gpi","gpil"],"rp":["pig","polg","ipot","ptol","opti","lpig","pito","lopt","opv","lopv"]},"233":{"input":[1,4,6,7,8],"tlw":["allapot",76],"trw":["palota",179],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["topic",99],"trw":["kopott",78],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["csapatok",70],"trw":["kapott",697],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["lepett",361],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["alapveto",130],"trw":["polgari",178],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["csoportok",138],"trw":["pedig",6327],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["co-operative",438],"trw":["pasztor",331],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["lm",13260],"trw":["mino",264],"lp":[],"rp":["lm","lom","mil","mul","lmi","ml","lmo","mpl","mol","pul","hom","miu","mplo","plom","omol","mli","lmu","hop","lmon","oml"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alom",310],"trw":["hozzam",615],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",66],"trw":["miklos",345],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["alapjan",546],"trw":["munka",592],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["elem",115],"trw":["mely",4580],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["amely",1640],"trw":["mihaly",309],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["selyem",203],"trw":["midon",1554],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["amelyek",644],"trw":["masodik",891],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["mig",2990],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["valami",3022],"trw":["lattam",817],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["cimu",318],"trw":["much",250],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"trw":["maganak",843],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["velem",847],"trw":["mellett",2095],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["amelyet",615],"trw":["harom",3127],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gyermek",947],"trw":["mikor",6075],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["amikor",2030],"trw":["magyarok",775],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",383],"tlw":["a",307731],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",24364],"tlw":["s",39563],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",66595],"tlw":["was",3404],"lp":["as","sa","ass","wa","asa","was","sas","ssa","assa","sass","aw","sasa","awa","ws","saw","sw","ww","asas","aws","www"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",3291],"tlw":["e",6340],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",12313],"tlw":["x",109],"lp":["ea","ex","ae","xa","exa","xe","exe","xx"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["es",161633],"tlw":["es",60379],"lp":["es","de","se","ed","ese","des","ede","ess","dd","sse","edes","ds","esse","edd","dese","ses","sed","sd","eed","ded"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",36504],"tlw":["we",1547],"lp":["ad","da","ada","we","das","add","sad","sada","ase","ead","dasa","ew","ade","adas","ads","dea","eas","asd","esa","desa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",111811],"tlw":["t",315],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",110634],"tlw":["at",3435],"lp":["ta","at","att","tta","ata","fa","tat","atta","tata","af","ft","ff","tatt","aft","fat","atat","tf","aff","afa","ffa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["cs",52385],"tlw":["c",503],"lp":["cs","st","ts","ct","cc","tc","sc","scs","tts","sts","csc","cscs","cts","stt"],"rp":[]},"11":{"input":[1,2,4],"tlp":["csa",25323],"tlw":["fact",237],"lp":["csa","ac","ca","ast","tas","acs","sta","ats","atas","sat","csas","cas","tw","act","tsa","cat","stat","cast","tasa","asta"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",141919],"tlw":["te",4722],"lp":["er","et","te","re","rt","ett","ere","ert","ete","tet","tte","ette","rr","ter","tett","rte","etet","ret","erte","eret"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",117406],"tlw":["arra",2662],"lp":["ar","ra","fe","ara","art","tar","rta","tart","rat","arr","fr","rra","fer","arta","ef","ate","arra","arat","tra","rea"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rs",15788],"tlw":["este",960],"lp":["rs","dt","rd","res","ste","est","tes","erd","ce","rde","ec","rc","erde","ers","eres","set","cse","det","etes","este"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["dta",9305],"tlw":["were",1692],"lp":["dta","adt","rad","arad","ars","rsa","arc","adta","sar","tars","arsa","wer","ras","radt","dar","ard","were","dat","dra","rsad"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",30933],"trw":["n",210],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",171406],"trp":["na",74976],"tlw":["an",1125],"trw":["na",433],"lp":["an","ann","ana","anna","anan"],"rp":["na","nna","nan","nnan","nana","nq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",2399],"trp":["ns",7890],"trw":["j",225],"lp":["sn"],"rp":["ns","jj","nj","js","jn"]},"19":{"input":[1,2,5],"tlp":["aj",26099],"trp":["ja",44839],"tlw":["aj",46],"trw":["jaj",1254],"lp":["aj","aja","san","ans","saj","saja","sna","asn","asna","wn","ajan","ssan","ajn","ajna"],"rp":["ja","jan","jaj","nas","jna","jana"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",192896],"trp":["ne",139773],"tlw":["en",13217],"trw":["ne",6355],"lp":["en","enn","eny","ene","enne","enye","ey","enny","een"],"rp":["ne","ny","ye","yen","nne","nye","nny","yn","yne","nen","nyn"]},"21":{"input":[1,3,5],"tlp":["any",20653],"trp":["ya",37836],"tlw":["any",460],"lp":["any","ane","ean","anya","eany","anny","ay","anyn","ena","enna","eq"],"rp":["ya","yan","nya","yna","yana","yany","nyna","yea","ynya"]},"22":{"input":[2,3,5],"tlp":["den",14339],"trp":["nd",76373],"tlw":["ej",386],"trw":["need",144],"lp":["den","dj","ej","sen","end","eje","esen","dn","ende"],"rp":["nd","nde","je","nden","ys","ndj","jd","yes","yj","nse","jen"]},"23":{"input":[1,2,3,5],"tlp":["and",17737],"trp":["ndja",5958],"tlw":["and",12896],"trw":["new",369],"lp":["and","dja","ajd","adj","dan","adn","adja","dna","sand","anyj","day","way","ande"],"rp":["ndja","nda","yas","yja","ndan","nyja","ysa"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",33278],"trp":["nt",65227],"tlw":["b",333],"lp":["bb","tn","tb","bn","bbn","bt"],"rp":["nt","nb","ntb","nnt","ntt"]},"25":{"input":[1,4,5],"tlp":["ba",46116],"trp":["nat",3727],"tlw":["abban",1391],"lp":["ba","ab","ban","tan","aba","abb","ant","aban","bba","bban","abba","bat","tana","anat","atn"],"rp":["nat","nta","nba","nban","nf"]},"26":{"input":[2,4,5],"tlp":["tj",4670],"trp":["nc",13855],"tlw":["stb",576],"lp":["tj","sb","bs","stb","bbs","cb","bj","sbb","csb","csn"],"rp":["nc","ncs","jt","nst","nts","jb","nbs","ntj","jts","jtj"]},"27":{"input":[1,2,4,5],"tlp":["ajt",5087],"trp":["jat",5127],"tlw":["sajat",1345],"lp":["ajt","tja","ajta","anc","ajat","atj","atja","baj","can","ancs","faj","fj","sab","sba","bac","sabb"],"rp":["jat","jta","jab","jaba"]},"28":{"input":[3,4,5],"tlp":["be",65601],"trp":["nte",8707],"tlw":["be",6609],"lp":["be","ben","ent","ten","eb","ber","rn","ebe","ren","ebb","ty","bbe","eben","ry","bet","rten"],"rp":["nte","yet","yt","yer"]},"29":{"input":[1,3,4,5],"tlp":["ran",8885],"trp":["yar",8550],"tlw":["bar",1464],"trw":["natty",172],"lp":["ran","bar","aran","arn","rany","tya","aty","rna","fen","rab","atya","bara","rba","arna","ary","rant"],"rp":["yar","yat","yf","yta"]},"30":{"input":[2,3,4,5],"tlp":["sten",4933],"trp":["ndt",3578],"tlw":["esetben",368],"lp":["sten","rj","bes","rend","enc","seb","renc","csen","dent","sebb","bec","ejet","erj","tend","encs"],"rp":["ndt","ncse","nce","jet","jr"]},"31":{"input":[1,2,3,4,5],"tlw":["rajta",1591],"trw":["jart",812],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",2593],"trw":["i",2017],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["az",158164],"trp":["ia",19708],"tlw":["az",99800],"lp":["az","za","zi","ai","zz","aza","zza","zaz","azz","azza","azi","zaza","zia","azaz","zai"],"rp":["ia","iz","iai","iza","izi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",22088],"trp":["is",89346],"tlw":["si",71],"trw":["is",40982],"lp":["si","sk","sik","sis","ssi","ski"],"rp":["is","ki","ik","kk","kis","kik","iss","ks","isk","kiss","isi","iki","ksi","ikk"]},"35":{"input":[1,2,6],"tlp":["sz",176990],"trp":["ka",44404],"tlw":["aki",3851],"trw":["iszik",209],"lp":["sz","ak","sza","sak","ssz","szi","aka","asz","aki","zs","akk","assz","zik","wi","asi","ssza","szik","zsa"],"rp":["ka","isz"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",6348],"trp":["ie",7511],"lp":["ei","eei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",100252],"trp":["ize",2949],"tlw":["ez",13097],"trw":["ize",69],"lp":["ze","ez","eze","aze","zze","ezz","ezze","ezi","eza","xi","zei","ezei","zez","zeze","ezai","xix","xii"],"rp":["ize","ix","izze"]},"38":{"input":[2,3,6],"tlp":["ek",80676],"trp":["ke",88251],"tlw":["did",582],"trw":["ide",1572],"lp":["ek","di","eke","eki","edi","dik","dek","ddi","ekk","sek","ske","sid"],"rp":["ke","id","ide","ked","kes","ike","ise","kek"]},"39":{"input":[1,2,3,6],"tlp":["sze",62411],"trp":["kez",11007],"tlw":["ezek",1919],"trw":["kezd",305],"lp":["sze","esz","esze","zd","zek","ezd","ezek","ssze","azd","zda","azda","szek","dez","adi","zeke","zes"],"rp":["kez","keze","kezd","isze"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",26187],"trp":["it",48328],"tlw":["ti",467],"trw":["itt",6106],"lp":["ti","vi","tv","vit","tit","tiv","vitt","vv","tti","vt","vii","viii"],"rp":["it","iv","itt","iti","ivi","itv","ivt","itiv"]},"41":{"input":[1,4,6],"tlp":["va",85476],"trp":["if",3685],"tlw":["azt",15369],"trw":["if",856],"lp":["va","zt","azt","fi","zta","av","ava","fia","azta","ati","ziv","vat","zat","viz","tva","tiz","fiat"],"rp":["if","iat","iva"]},"42":{"input":[2,4,6],"tlp":["csi",6831],"trp":["ic",8214],"tlw":["cit",131],"trw":["kit",1125],"lp":["csi","ci","vis","tk","viss","tis","sti","stv","sit","tik"],"rp":["ic","ist","kiv","ics","kit","kt","kic","kics","its","icsi"]},"43":{"input":[1,2,4,6],"tlp":["csak",20970],"trp":["kat",7650],"tlw":["csak",17322],"lp":["csak","szt","tak","cz","wit","tsz","vas","aszt","szta","sziv","tisz","atsz","czi","ttak","visz","cia"],"rp":["kat","iszt","kiva","kta"]},"44":{"input":[3,4,6],"tlp":["ve",74884],"trp":["ir",33168],"tlw":["vette",950],"trw":["irt",530],"lp":["ve","ri","ev","eve","vet","ver","rv","eri","eti","vett","tve","eir","rve","evet"],"rp":["ir","ive","ire","irt","ite","itte"]},"45":{"input":[1,3,4,6],"tlp":["zer",25432],"trp":["ira",15949],"tlw":["ezt",5966],"lp":["zer","zet","ezt","zere","var","zte","ezet","zett","ari","zert","ezte","vez","ria","zar","ezer","azer","rva","veze","zeri"],"rp":["ira"]},"46":{"input":[2,3,4,6],"tlp":["tek",13729],"trp":["ket",19030],"tlw":["vers",850],"trw":["ket",6195],"lp":["tek","ves","dv","rk","eket","rek","erek","dve","edv","edve","ttek","vid"],"rp":["ket","ker","kir","kere","iste","kerd","kedv","kr"]},"47":{"input":[1,2,3,4,6],"tlw":["akar",1873],"trw":["kezet",1015],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",100465],"trw":["in",9209],"lp":[],"rp":["in","ni","hi","nin","nni","hin","inn","ih","hh","ini","nh","inni","inh","hn","hinn","nii","hni","nini","hih","nnin"]},"49":{"input":[1,5,6],"tlp":["ah",5695],"trp":["ha",99222],"tlw":["ah",347],"trw":["ha",15507],"lp":["ah","zn","ani","zin","zan","zni","zna","ain","azan","aha"],"rp":["ha","han","haz","haza","ian","ina","nz","hia","nia","hazi"]},"50":{"input":[2,5,6],"tlp":["sin",3147],"trp":["nk",18980],"trw":["his",3359],"lp":["sin","sh","sni"],"rp":["nk","his","kin","nki","kn","ink","nik","nis","ij","kh","ins","ish","ikn","nkin","kikn","nsi","jh"]},"51":{"input":[1,2,5,6],"tlp":["wh",5945],"trp":["nak",17010],"tlw":["annak",3112],"trw":["hisz",637],"lp":["wh","szin","anak","szn","zaj","ank","whi","sina","aszn","szaj"],"rp":["nak","nka","nnak","has","haj","jak","hisz","kan","inka","hasz"]},"52":{"input":[3,5,6],"tlp":["eh",18062],"trp":["he",78848],"tlw":["enni",263],"trw":["he",3277],"lp":["eh","ehe","enni","eni","enyi","ein"],"rp":["he","yi","nyi","nnyi","ine","neh","hey","hen","hei","yh","nehe","inne","ien","nyh"]},"53":{"input":[1,3,5,6],"tlp":["zen",10585],"trp":["hane",4811],"tlw":["ezen",1479],"trw":["nehany",1282],"lp":["zen","eha","ezen","enz","ehan","ehez","zne","ezn","ezni"],"rp":["hane","nez","neha","hany","hez","yha","izen","neze","yz","yze","yez"]},"54":{"input":[2,3,5,6],"tlp":["enk",5048],"trp":["nek",29850],"tlw":["ennek",2112],"trw":["neki",6003],"lp":["enk","enek","enki","dni","senk"],"rp":["nek","ind","inde","neki","yek","neke","ken","yik","nnek","ndi","indi","inek","kine","nke","kne"]},"55":{"input":[1,2,3,5,6],"tlw":["when",993],"trw":["had",1905],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",71797],"trp":["int",32779],"tlw":["th",242],"trw":["hit",168],"lp":["th","bi","thi","bbi","tni","tth","vin","thin"],"rp":["int","ith","nth","inth","ib","ht","nti","hiv","hit","nv","hitt","nit"]},"57":{"input":[1,4,5,6],"tlp":["van",18634],"trp":["hat",22178],"tlw":["van",11948],"trw":["hat",6837],"lp":["van","tha","that","biz","ztan","zb","zab","ath","vab","vabb","zaba","zint","tvan","vann"],"rp":["hat","hata","ntha","hav","ivan","hab"]},"58":{"input":[2,4,5,6],"tlp":["ch",5920],"trp":["inc",7312],"tlw":["this",2307],"trw":["nincs",3085],"lp":["ch","this","csin","sinc","chi","bis"],"rp":["inc","incs","ninc","kb","kint","ich","hic","hich","nci","hist","nsti","inst","itj","nkit"]},"59":{"input":[1,2,4,5,6],"tlw":["with",3691],"trw":["inkabb",1478],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["the",47933],"trp":["het",10465],"tlw":["the",34738],"trw":["het",978],"lp":["the","ehet","ven","rin","ther","they","rint","teh","erin","thei","bir"],"rp":["het","her","inte","nev","neve","hete","hir","heir","yv"]},"61":{"input":[1,3,4,5,6],"tlw":["tehat",2571],"trw":["have",1230],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["these",599],"trw":["isten",2805],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["szerint",2186],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",1820],"trw":["o",10573],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","trp":["oa",760],"lp":[],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",41762],"trp":["os",59448],"tlw":["so",930],"trw":["os",131],"lp":["so","sos","soso","sso","soo"],"rp":["os","oss","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["aso",4417],"trp":["osa",3764],"lp":["aso","wo","asos","swo","woo","asso"],"rp":["osa","ow","ossa","owa","ows"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",1230],"trp":["-e",3142],"trw":["-",1439],"lp":["eo","e-","e-o"],"rp":["-e","oe","o-","-o","o-o"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",237],"trp":["-a",532],"trw":["-a",180],"lp":["a-","a-e","xo"],"rp":["-a","ox"]},"70":{"input":[2,3,7],"tlp":["do",41052],"trp":["od",15802],"tlw":["eso",376],"trw":["-es",254],"lp":["do","sod","dos","eso","dod","edo","d-","d-e","sose"],"rp":["od","ose","odo","ode","od-","od-e","odes","ood","osse","-d","-es"]},"71":{"input":[1,2,3,7],"tlp":["ado",4227],"trp":["oda",6077],"tlw":["ado",161],"trw":["oda",2095],"lp":["ado","soda","asod","dow","easo","doa","dosa","as-","ados","wood","adod","ewo"],"rp":["oda","owe","odas","-as","odaa","owed","-oda","odae"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",78142],"trp":["og",80035],"tlw":["to",11182],"trw":["ott",6355],"lp":["to","go","tot","tott","got","gt","gg","tto","gott","gto","tog"],"rp":["og","ot","ott","ogo","ogt","ogot","oto","ogto","otot"]},"73":{"input":[1,4,7],"tlp":["ag",87943],"trp":["of",19703],"tlw":["fog",1642],"trw":["of",16836],"lp":["ag","ga","fo","aga","ato","fog","ago","gat","agat","atot","agot","gta","foga","gf","fogo","agg"],"rp":["of","otta","oga","ota"]},"74":{"input":[2,4,7],"tlp":["cso",6549],"trp":["ost",9595],"tlw":["sot",1437],"lp":["cso","co","tos","gs","sot","gos","sto","sg","csos","csot","soc","cco","cto","ttos","sog"],"rp":["ost","oc","ocs","ogs","osto"]},"75":{"input":[1,2,4,7],"tlp":["sag",7512],"trp":["osag",1075],"tlw":["two",477],"lp":["sag","agos","sago","gas","atos","asag","agas","tosa","acso","ssag","tsag","gosa","two","saga","sga","gsa","ags"],"rp":["osag","oca","ocsa"]},"76":{"input":[3,4,7],"tlp":["eg",183750],"trp":["or",88200],"tlw":["eg",697],"trw":["oreg",2917],"lp":["eg","ro","ge","ege","reg","tor","gr","get","ero","tort","eget","rto","teg","rg","ger"],"rp":["or","ore","oro","ort","oreg"]},"77":{"input":[1,3,4,7],"tlp":["aro",14078],"trp":["ora",5234],"tlw":["for",3067],"trw":["ora",808],"lp":["aro","for","gar","rag","arto","fro","ega","rof","grof","egf","gra","arg","aror","taro","forr","rga","efo","arag"],"rp":["ora","orra"]},"78":{"input":[2,3,4,7],"tlp":["seg",14126],"trp":["ors",6702],"tlw":["eros",707],"trw":["ordog",649],"lp":["seg","ges","eges","ros","sege","dot","dott","rdo","deg","sor","dor","dog","ged","eseg","ross","tseg","egs","eros"],"rp":["ors","ord"]},"79":{"input":[1,2,3,4,7],"tlw":["adott",1280],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",101004],"trw":["on",3707],"lp":[],"rp":["on","un","no","ou","onn","nu","ono","oun","non","uno","nno","nnu","unn","nnon","nun","nnun","uo","onu","nou","oon"]},"81":{"input":[1,5,7],"tlp":["ano",4244],"trp":["ona",5750],"tlw":["au",143],"trw":["onnan",503],"lp":["ano","au","anu","qu","anno","anon","qua","anua"],"rp":["ona","onna","ua","una","uan","oan","unan","onan","nua","onq","nqu","onqu"]},"82":{"input":[2,5,7],"tlp":["su",6983],"trp":["jo",26548],"tlw":["son",366],"trw":["jo",6226],"lp":["su","son","ssu"],"rp":["jo","us","ju","uj","nos","jon","ons","onos","jos","oj","ous","jonn","jus","jjo","jjon","joj","jun"]},"83":{"input":[1,2,5,7],"tlp":["anos",2908],"trp":["jano",2283],"tlw":["sajnos",113],"trw":["janos",2073],"lp":["anos","ajo","ason","wou","aus","ajos","aju","asu","ajjo"],"rp":["jano","osan","own","now","uja","usa","onas","ujsa","oja","ujja","jua"]},"84":{"input":[3,5,7],"tlp":["eu",1868],"trp":["yo",25659],"tlw":["eu",103],"trw":["one",972],"lp":["eu","enu"],"rp":["yo","ony","yu","nyo","yon","nyu","onyo","one","ue","y-","onny","y-e","onne","yun","uny","you","yony","oen"]},"85":{"input":[1,3,5,7],"tlp":["anyo",2334],"trp":["unya",473],"tlw":["que",241],"trw":["-an",97],"lp":["anyo","que","an-","an-e","equ","equa","anyu","aux","eque","quee"],"rp":["unya","onya","-na","yano","oya","yanu","yona","-an","nque","ux"]},"86":{"input":[2,3,5,7],"tlp":["du",7212],"trp":["ond",20755],"tlw":["du",322],"trw":["und",201],"lp":["du","don","endo","edu"],"rp":["ond","ud","ndo","ondo","udo","ondj","yos","und","nyos","udj","udn","ndu","osen","use","yedu","unde"]},"87":{"input":[1,2,3,5,7],"tlw":["adjon",401],"trw":["odaadja",48],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",26336],"trp":["ut",29088],"tlw":["tobb",2199],"trw":["not",2568],"lp":["tu","bo","tob","tobb","gon","bu","gu","ton","gn"],"rp":["ut","ob","ng","ug","obb","ont","uto","not","onb","nto","ung"]},"89":{"input":[1,4,5,7],"tlp":["ang",4181],"trp":["nag",18488],"tlw":["about",409],"trw":["utan",3611],"lp":["ang","fu","abo","gan","gab","gna","aton","tona","ango","agu","gaba"],"rp":["nag","uta","utan","oba","nga","unga","onba","utat","obba"]},"90":{"input":[2,4,5,7],"tlp":["gj",3961],"trp":["job",3981],"tlw":["bus",289],"trw":["jott",1407],"lp":["gj","csu","cou","sob","con","cson","sobb"],"rp":["job","jobb","jot","jott","jto","ntos","ust","uc","jut","ogj","ujt","jtot","juto"]},"91":{"input":[1,2,4,5,7],"tlw":["fogja",947],"trw":["jobban",1258],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gy",213097],"trp":["ogy",60410],"tlw":["egy",31147],"trw":["ugy",8993],"lp":["gy","egy","gye","gyo","egye","ru","gen","egen","gyon","geny","gyu","eng","gyen","enge","bor"],"rp":["ogy","ur","ugy","oru","nge"]},"93":{"input":[1,3,4,5,7],"tlw":["baro",394],"trw":["nagy",10563],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["tudott",1092],"trw":["ures",337],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["tudja",1421],"trw":["ujra",1374],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ol",117661],"trw":["l",1029],"lp":[],"rp":["ol","lo","ll","il","li","io","ill","llo","olo","lol","oi","oll","oli","lli","ili","illi","ilo","ollo","iol","lio"]},"97":{"input":[1,6,7],"tlp":["al",141761],"trp":["la",89690],"tlw":["all",2554],"trw":["la",881],"lp":["al","zo","ala","all","alo","azo","zol","alal","alla","zal","ali","allo"],"rp":["la","oz","ozo","lal","lla","ila","ola","ozz"]},"98":{"input":[2,6,7],"tlp":["sok",10043],"trp":["ko",67727],"tlw":["sok",3390],"trw":["ok",1198],"lp":["sok","sol","sko"],"rp":["ko","ok","lk","ls","iko","kko","lso","oko","kol","los","lko","lok","kos","lis","lik","kl","ols"]},"99":{"input":[1,2,6,7],"tlp":["szo",28916],"trp":["koz",17882],"tlw":["azok",1917],"trw":["law",597],"lp":["szo","zok","akko","szol","sszo","alk","azok","ako","soka","szok"],"rp":["koz","osz","oka","las","ossz","kozo","lak","kal","ozs","lasz"]},"100":{"input":[3,6,7],"tlp":["el",185226],"trp":["le",131988],"tlw":["el",11925],"trw":["le",3722],"lp":["el","ele","ell","elo","elle","eli","elel","elol"],"rp":["le","lle","lel","ole","ille","lole","lele","ile","lelo","olle","-i","lei"]},"101":{"input":[1,3,6,7],"tlp":["zel",9993],"trp":["lea",5723],"tlw":["ezzel",1164],"trw":["lexi",93],"lp":["zel","ezo","zele","ela","zzel","zle","zelo","zell","ale","alle","zeli","eal","ezel","elz","ezal","azel","elal"],"rp":["lea","oze","ozel"]},"102":{"input":[2,3,6,7],"tlp":["dol",7310],"trp":["ld",13454],"tlw":["elso",2743],"trw":["kell",5494],"lp":["dol","elk","els","elso","del","eles","elke","dok"],"rp":["ld","kel","les","kell","old","ido","oke","lek","lke","ldo","led","lese"]},"103":{"input":[1,2,3,6,7],"tlw":["szel",525],"trw":["lesz",3740],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",40145],"trp":["lt",63226],"tlw":["volt",20311],"trw":["ivott",154],"lp":["vo","vol","volt","gi","tl","tol","vil","tio","gl"],"rp":["lt","ig","olt","ov","lot","lott","lv","lg","olg","lto","lit"]},"105":{"input":[1,4,6,7],"tlp":["val",23257],"trp":["lat",20885],"tlw":["alatt",3368],"trw":["igaz",1408],"lp":["val","tal","vag","alt","fol","vala","zot","tala","zott","gaz","alat","alta","valo"],"rp":["lat","lta","latt","ova","lag","ozot","olta"]},"106":{"input":[2,4,6,7],"tlp":["tok",4349],"trp":["kot",3836],"tlw":["titkos",290],"trw":["kolto",379],"lp":["tok","gis","gok","tko","gk","tols"],"rp":["kot","kov","lc","olc","okt","lcs","kolt","loc","olcs","koc","icso","kott","okot","oci"]},"107":{"input":[1,2,4,6,7],"tlw":["voltak",2244],"trw":["kozott",2109],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vel",12822],"trp":["let",20248],"tlw":["elott",2567],"trw":["lett",3000],"lp":["vel","tel","egi","elt","veg","elet","vele","rol","tle","elot","tele"],"rp":["let","leg","lett","llet","ove","lte","lete","lev","iro"]},"109":{"input":[1,3,4,6,7],"tlw":["fel",5055],"trw":["left",288],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["ekkor",1030],"trw":["kellett",2170],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["akkor",5794],"trw":["orszag",966],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",91631],"trw":["hol",3321],"lp":[],"rp":["ho","ul","ln","oln","hol","hu","lu","lon","oh","ulo","ion","hun","ulon","lni","iu","hon","nl","nul","oul","uh"]},"113":{"input":[1,5,6,7],"tlp":["zon",17866],"trp":["lan",11536],"tlw":["azon",1845],"trw":["hozza",2127],"lp":["zon","zu","azon","alan","aho","zul","alu"],"rp":["lan","hal","lna","olna","hoz","nal","hall","hozz","oha","uz","izon","hala","llan"]},"114":{"input":[2,5,6,7],"tlp":["soh",2706],"trp":["ku",14889],"trw":["jol",2741],"lp":["soh","sul","sho"],"rp":["ku","kul","unk","uk","lj","kon","kulo","hos","jol","lku","lkul","juk","hus","hoss","konn","uks","nok"]},"115":{"input":[1,2,5,6,7],"tlw":["soha",1668],"trw":["kozul",1472],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["ely",25178],"trp":["ly",62035],"tlw":["ellen",1350],"trw":["oly",2731],"lp":["ely","elye","elen"],"rp":["ly","len","lye","oly","leh","lehe","ily","lyen","hel","hely","ilye","llen","nel","ule","lyi","yel","lyn"]},"117":{"input":[1,3,5,6,7],"tlw":["equal",129],"trw":["olyan",5589],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["ejjel",683],"trw":["nelkul",2214],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["asszony",2441],"trw":["kisasszony",460],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["voln",8076],"trp":["hog",60062],"tlw":["tobbi",901],"trw":["otthon",874],"lp":["voln","bol","gh","tion","bl","tho","tul","gin","vu","ght","gint"],"rp":["hog","ult","ing","hung","oth","obbi","lonb","lob","ivu"]},"121":{"input":[1,4,5,6,7],"tlw":["volna",7681],"trw":["hova",947],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["such",497],"trw":["king",1415],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["viszont",558],"trw":["ifju",760],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["bele",1164],"trw":["hogy",55048],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["vagy",8524],"trw":["horvath",1175],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["egyik",2647],"trw":["korul",1156],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["vagyok",3023],"trw":["kiraly",5259],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",4972],"trw":["p",636],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",22391],"trp":["pa",18427],"tlw":["apa",231],"trw":["pap",604],"lp":["ap","apa","app","appa"],"rp":["pa","pap","ppa","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",1610],"trp":["ps",1710],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["sap",895],"trp":["pas",1331],"trw":["pas",147],"lp":["sap","sapa","spa","aps","apas","asp","aspa","apsa"],"rp":["pas","pass","pasa","psa","paps"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",23212],"trp":["pe",28344],"tlw":["epp",420],"trw":["'",39],"lp":["ep","epe","epp","eppe","eep","e'"],"rp":["pe","ppe","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",1036],"trp":["pea",574],"tlw":["a'",897],"lp":["ape","a'","xp","exp","appe","xpe","expe","eap","epa"],"rp":["pea","ppea","pape"]},"134":{"input":[2,3,8],"tlp":["epes",1628],"trp":["ped",6768],"trw":["'s",163],"lp":["epes","eps","spe","esp","sep","sepp","epse","espe","desp","s'","s's","epd","dep"],"rp":["ped","pes","'s","pess","pse","pese","pd"]},"135":{"input":[1,2,3,8],"tlp":["dap",867],"trp":["pad",901],"tlw":["apad",98],"trw":["passed",66],"lp":["dap","dape","apes","apad","esap","weap","spea","as'","as's","aped"],"rp":["pad","peda","peas"]},"136":{"input":[4,8],"tlp":["tp",115],"trp":["pt",1949],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",1138],"trp":["pta",935],"tlw":["apat",58],"trw":["papat",43],"lp":["apt","apta","apat","tap","tapa","apf"],"rp":["pta","pat","pf","pata"]},"138":{"input":[2,4,8],"trp":["pc",781],"lp":[],"rp":["pc","pcs"]},"139":{"input":[1,2,4,8],"tlp":["apc",704],"trp":["past",91],"tlw":["csapat",159],"trw":["past",91],"lp":["apc","apcs","csap","cap","sapt","capt","scap","spac"],"rp":["past","pcsa","pac"]},"140":{"input":[3,4,8],"tlp":["epet",1843],"trp":["pr",5345],"trw":["peter",932],"lp":["epet","rep","rp","erep","ept","repe","tep","epte","epr","epre"],"rp":["pr","per","pet","pete","pre","pett","pte","pere","ppet","ppr"]},"141":{"input":[1,3,4,8],"tlp":["apr",954],"trp":["par",5757],"tlw":["expert",89],"trw":["par",1156],"lp":["apr","arp","rpa","arpa","apra","rap","xper","appr","aper","apte","erap"],"rp":["par","part","para","pera","pra","pfe","pear","perf","pate"]},"142":{"input":[2,3,4,8],"tlp":["step",391],"trp":["pest",1888],"tlw":["csepp",134],"trw":["pest",218],"lp":["step","spec","csep","resp","cep","cept","epc","epcs","r's","er's","rdep","spr"],"rp":["pest","pers","perc","pres","pec","pecs","pect","pted"]},"143":{"input":[1,2,3,4,8],"tlw":["arpad",569],"trw":["peace",107],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",5907],"trw":["m",703],"lp":[],"rp":["mm","mp","pn","nm","mn","pm","np","nnm"]},"145":{"input":[1,5,8],"tlp":["am",53502],"trp":["ma",92967],"tlw":["am",1222],"trw":["ma",3061],"lp":["am","ama","apam","amp","apn","amn","amna"],"rp":["ma","nap","man","pan","nam","mma","pam","mpa","napp","mam","nnap","mna","nma"]},"146":{"input":[2,5,8],"tlp":["sm",4467],"trp":["pj",2668],"lp":["sm"],"rp":["pj","ms","mj","mps"]},"147":{"input":[1,2,5,8],"tlp":["apj",2668],"trp":["mas",14915],"tlw":["apja",679],"trw":["mas",3210],"lp":["apj","apja","sam","snap","sma","amas","span"],"rp":["mas","maj","pja","masn","pjan","napj","mass","jam","paj","mpas","mans","maja","masa"]},"148":{"input":[3,5,8],"tlp":["em",127947],"trp":["me",140514],"tlw":["eppen",1670],"trw":["nem",50476],"lp":["em","eme","emm","epen","emen","emp","enem"],"rp":["me","nem","men","pen","menn","nep","ym","neme","ppen","meny","my","nepe","mem"]},"149":{"input":[1,3,5,8],"tlp":["ame",9265],"trp":["yma",2568],"tlw":["anyam",835],"trw":["many",675],"lp":["ame","anem","amen","ema","xam","exam","xamp","eman","eam"],"rp":["yma","many","yam","nyam","name","may","yama","mea","mean","nema","pean"]},"150":{"input":[2,3,5,8],"tlp":["sem",13924],"trp":["mes",7145],"tlw":["sem",8470],"trw":["nemes",571],"lp":["sem","sme","semm","emes","dem","ems","dnem","esem","deme","ejem","dm","edm"],"rp":["mes","mess","menj","med","mese","mse","jem","nems"]},"151":{"input":[1,2,3,5,8],"tlw":["adam",721],"trw":["majd",4082],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["bp",213],"trp":["mb",15442],"tlw":["bp",213],"lp":["bp","tm"],"rp":["mb","mt","pb","mpt"]},"153":{"input":[1,4,5,8],"tlp":["tam",7013],"trp":["mat",4622],"tlw":["babam",244],"trw":["mta",69],"lp":["tam","amb","ttam","amat","tama","bam","amba","abam","fam"],"rp":["mat","mba","mban","mab","maba","pant","matt","mta","ptam","mbat","mant"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["csm",290],"trp":["mc",1065],"tlw":["cm",129],"lp":["csm","cm"],"rp":["mc","mcs","mts"]},"155":{"input":[1,2,4,5,8],"tlw":["tamas",235],"trw":["mast",389],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["emb",12508],"trp":["mer",17137],"tlw":["ember",5090],"trw":["mert",10572],"lp":["emb","embe","rm","tem","erm","rme","erme","emet","rem","term","ttem","erem"],"rp":["mer","mbe","mert","mber","ment","met","yerm","mere"]},"157":{"input":[1,3,4,5,8],"tlw":["ram",766],"trw":["mar",14439],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["erdemes",264],"trw":["mester",269],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["tamadt",304],"trw":["matyas",1445],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",6058],"lp":[],"rp":["pi","ip","pip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",1249],"trp":["pai",741],"tlw":["apai",47],"trw":["papi",72],"lp":["api","zp","apai","zap"],"rp":["pai","ipa","pz","pia","papi","pipa"]},"162":{"input":[2,6,8],"tlp":["spi",214],"trp":["pis",406],"tlw":["sip",39],"lp":["spi","sip"],"rp":["pis","isp","pk"]},"163":{"input":[1,2,6,8],"tlp":["szp",99],"trp":["kap",3878],"trw":["kap",330],"lp":["szp","apsz","szap"],"rp":["kap","pasz","psz","kapi","ispa","pszi","pisz","pak","paks","kaps","psza"]},"164":{"input":[3,6,8],"tlp":["epi",405],"trp":["pie",218],"lp":["epi","epie"],"rp":["pie"]},"165":{"input":[1,3,6,8],"tlp":["zep",7772],"trp":["pze",497],"lp":["zep","zepe","epz","epze","z'","zepi","epez"],"rp":["pze","iz'","pez","pezi"]},"166":{"input":[2,3,6,8],"tlp":["epek",443],"trp":["pedi",6445],"trw":["kepes",493],"lp":["epek","skep","epk","espi"],"rp":["pedi","kep","kepe","kepp","pek","ikep","keep","pies","pied"]},"167":{"input":[1,2,3,6,8],"tlw":["szep",5043],"trw":["kepzes",85],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",62],"trp":["pit",714],"lp":["tip"],"rp":["pit","pv","pvi","pti"]},"169":{"input":[1,4,6,8],"tlp":["apit",393],"trp":["pita",305],"trw":["pava",90],"lp":["apit","apv"],"rp":["pita","ipat","pati","pav","pava","pitz","pva"]},"170":{"input":[2,4,6,8],"tlp":["cip",416],"trp":["pist",271],"lp":["cip","spit"],"rp":["pist","pic","icip","pvis","pict","pics"]},"171":{"input":[1,2,4,6,8],"tlw":["csaptak",83],"trw":["kapta",303],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["epit",176],"trp":["pri",1125],"tlw":["epitett",92],"lp":["epit","rip","epv","epvi","epve","epir"],"rp":["pri","pir","pve","pite","pvet","piri","peri","prev","petv","pire"]},"173":{"input":[1,3,4,6,8],"trw":["ipari",85],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["despite",105],"trw":["kepet",297],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["szerepet",241],"trw":["persze",601],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",105379],"trw":["mi",6559],"lp":[],"rp":["mi","min","im","mmi","him","mih","imp","ph","pin","hm","imm","mini","pni","mpi","mh","phi","pih","inp","pini","nim"]},"177":{"input":[1,5,6,8],"tlp":["ami",13718],"trp":["mz",2071],"tlw":["ami",1585],"trw":["mai",619],"lp":["ami","zam","amin","zama","zm","zzam","zma"],"rp":["mz","mia","mai","iam","ham","hama","maz","napi","ima","izm","miha","izma","miai"]},"178":{"input":[2,5,6,8],"tlp":["sim",317],"trp":["mik",10073],"trw":["mik",271],"lp":["sim","smi","smin","simp","simi","ship"],"rp":["mik","ism","mis","kim","mink","km","mk","ims","hims","miss","misk","mikn","mmik"]},"179":{"input":[1,2,5,6,8],"tlw":["szama",327],"trw":["masik",2051],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emmi",3676],"trp":["mie",2185],"tlw":["enyim",109],"trw":["menni",726],"lp":["emmi","emi","emei","eph","ephe","empi"],"rp":["mie","ime","hem","mine","nemi","imen","mei","meh","phe","phen","mehe","mihe","yim","nepi"]},"181":{"input":[1,3,5,6,8],"tlw":["amennyi",66],"trw":["hanem",4711],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["semmi",1966],"trw":["minden",7752],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["szepen",924],"trw":["messze",712],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1125],"trp":["mint",20757],"trw":["mint",15155],"lp":["tim"],"rp":["mint","mit","miv","mmit","mib","http","mitt","ptim","mmiv","imb","mitv","mmib","nmit","pith"]},"185":{"input":[1,4,5,6,8],"tlw":["amit",1691],"trw":["mintha",2774],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["cim",39],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["szamat",111],"trw":["masikat",211],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["them",1440],"trw":["miert",1425],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["ereztem",268],"trw":["nemzeti",722],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["semmit",1211],"trw":["mindent",1246],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["szamara",1197],"trw":["mindjart",1584],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",11623],"trw":["op",133],"lp":[],"rp":["po","op","opo","opp","oop","ppo","oppo","pop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",4028],"trp":["opa",952],"lp":["apo","appo"],"rp":["opa","oppa","papo","opap"]},"194":{"input":[2,7,8],"tlp":["spo",489],"trp":["pos",929],"lp":["spo","sop","sopo","sopp"],"rp":["pos","ops","pso","oops","poss","ppos"]},"195":{"input":[1,2,7,8],"tlp":["apos",470],"trp":["pow",266],"lp":["apos","sapo","apso"],"rp":["pow","posa","opas"]},"196":{"input":[3,7,8],"tlp":["eop",677],"trp":["ope",1301],"trw":["pope",55],"lp":["eop","epo","ep-","ep-e","eopo"],"rp":["ope","peo","peop","-op","o-op","-ope","oope","-p","o-p","poe","p-","p-e","pope","oppe"]},"197":{"input":[1,3,7,8],"tlp":["eapo",51],"trp":["opea",193],"lp":["eapo"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["dop",118],"trp":["pose",49],"lp":["dop","epso","espo","epos"],"rp":["pose","oped","osep"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["gp",235],"trp":["pot",2175],"lp":["gp","top"],"rp":["pot","pott","pog","opt","opot","pto","poto"]},"201":{"input":[1,4,7,8],"tlp":["apot",1897],"trp":["poga",242],"tlw":["fopap",36],"trw":["papot",116],"lp":["apot","apto","gpa","fop","fopa"],"rp":["poga","pag","pota","pato","paga","opf","pfo","opta"]},"202":{"input":[2,4,7,8],"tlp":["csop",415],"trp":["pcso",700],"tlw":["csopp",40],"lp":["csop","coop"],"rp":["pcso","post"]},"203":{"input":[1,2,4,7,8],"tlw":["csapott",121],"trw":["papsag",47],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",1475],"trp":["pro",2619],"tlw":["gep",120],"trw":["por",106],"lp":["rop","rope","ropp","gep","egp","g'","roop","ro-p","gepe","gpe"],"rp":["pro","por","port","oper","opor","prog","pero","prot","ppor","ppro"]},"205":{"input":[1,3,4,7,8],"tlw":["apro",445],"trw":["poeta",81],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["troops",160],"trw":["process",152],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["gaspar",102],"trw":["power",166],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",35377],"trw":["up",463],"lp":[],"rp":["mo","om","mon","mu","mun","pu","up","omo","pon","nom","omm","oup","um","mpo","omp","onom","mpon","num","pom","upo"]},"209":{"input":[1,5,7,8],"tlp":["amo",1826],"trp":["oma",2710],"trw":["napon",471],"lp":["amo","amu","apon","apu","amon","anom","apun"],"rp":["oma","napo","oman","upa","upan","onap","omma","ompa","uma","uman","omam","onma","mano"]},"210":{"input":[2,5,7,8],"tlp":["sup",1243],"trp":["mos",10693],"tlw":["sum",38],"trw":["mos",122],"lp":["sup","som","somo","spon","supp"],"rp":["mos","pus","moso","oms","mus","ups","oups","usp","mso","pusp","uspo","pons","omj","osm","pson"]},"211":{"input":[1,2,5,7,8],"tlw":["samu",63],"trw":["pompas",221],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["epu",963],"trp":["yom",2209],"trw":["unnep",70],"lp":["epu","empo","emu","emo","emon"],"rp":["yom","ome","nyom","yomo","-m","omme","opme","ompe","mue","ymu","onym","nymu","memo","omen","ume"]},"213":{"input":[1,3,5,7,8],"trw":["nyoman",158],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["some",472],"trw":["modon",602],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["adom",249],"trw":["mondja",3298],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",2250],"trp":["mut",1499],"tlw":["gomb",66],"trw":["mogott",467],"lp":["tom","gm","gom","gmo","gmon","bom"],"rp":["mut","pont","omb","mog","mbo","mogo","mong","mot","pub","put","mbom","ogom","umb","numb"]},"217":{"input":[1,4,5,7,8],"tlw":["among",360],"trw":["maga",4082],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["common",147],"trw":["most",8125],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["csupan",725],"trw":["magas",697],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["engem",1555],"trw":["meg",36148],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["from",2513],"trw":["magyar",4376],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["tudom",1658],"trw":["mondott",476],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["egymast",707],"trw":["mondta",2475],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",3315],"trw":["pl",264],"lp":[],"rp":["pl","pil","pill","pol","plo","poli","opl","lop","lp","opi","poi","ipo","ipl","lip","ilip","lopo","pipo","lipo","lpi","opol"]},"225":{"input":[1,6,7,8],"tlp":["alap",1705],"trp":["lap",2645],"tlw":["alap",49],"trw":["pal",363],"lp":["alap","zpo","alp","zapo","apol"],"rp":["lap","pal","palo","lapo","pla","opai","ppal","llap","pala","ozp","ozpo","poz","pozi","lapi","pali"]},"226":{"input":[2,6,7,8],"tlp":["spok",377],"trp":["pok",1363],"trw":["pokol",157],"lp":["spok","sipo"],"rp":["pok","poko","kop","kopo","pko","posi","lisp","ipok","pkol","plok","oisp"]},"227":{"input":[1,2,6,7,8],"tlw":["alapos",56],"trw":["papok",148],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["eopl",632],"trp":["lep",2067],"trw":["people",540],"lp":["eopl","elep","elop","elp","epel","epl","eplo"],"rp":["lep","ple","pel","lepe","ople","iple","-pi","o-pi","pole","lepo","ppel","ilep","leop"]},"229":{"input":[1,3,6,7,8],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spoke",44],"trw":["peoples",92],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["eposz",50],"trw":["kozepso",112],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topi",149],"trp":["pig",452],"trw":["lopott",92],"lp":["topi","gpi","gpil"],"rp":["pig","polg","ipot","ptol","opti","lpig","pito","lopt","opv","lopv"]},"233":{"input":[1,4,6,7,8],"tlw":["allapot",76],"trw":["palota",179],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["topic",99],"trw":["kopott",78],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["csapatok",70],"trw":["kapott",697],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["lepett",361],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["alapveto",130],"trw":["polgari",178],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["csoportok",138],"trw":["pedig",6327],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["co-operative",438],"trw":["pasztor",331],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["lm",13260],"trw":["mino",264],"lp":[],"rp":["lm","lom","mil","mul","lmi","ml","lmo","mpl","mol","pul","hom","miu","mplo","plom","omol","mli","lmu","hop","lmon","oml"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alom",310],"trw":["hozzam",615],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",66],"trw":["miklos",345],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["alapjan",546],"trw":["munka",592],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["elem",115],"trw":["mely",4580],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["amely",1640],"trw":["mihaly",309],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["selyem",203],"trw":["midon",1554],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["amelyek",644],"trw":["masodik",891],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["mig",2990],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["valami",3022],"trw":["lattam",817],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["cimu",318],"trw":["much",250],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"trw":["maganak",843],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["velem",847],"trw":["mellett",2095],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["amelyet",615],"trw":["harom",3127],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gyermek",947],"trw":["mikor",6075],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["amikor",2030],"trw":["magyarok",775],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/it-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/it-keymap.json index 56265a3572..9c3d3400ff 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/it-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/it-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",76],"tlw":["a",134646],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",181781],"tlw":["s",689],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",147177],"tlw":["sa",4372],"lp":["sa","as","ssa","ass","assa","asa","sas","wa","sass","ssas","aw","saw","was","awa","ws"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",2590],"tlw":["e",285768],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",16928],"tlw":["ex",571],"lp":["ea","ae","ex","ax","xe"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",299367],"tlw":["se",42825],"lp":["de","se","es","ess","sse","ed","esse","ede","ese","des","dd","sed","edd","dess","sede","edes","ses","sess","dde","dee"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",161213],"tlw":["da",50742],"lp":["da","ad","essa","esa","ade","ada","asse","ase","aes","add","dea","ades","eda","we","aese","seda","ew","sea","adde","aesa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",206553],"tlw":["t",2430],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",338700],"tlw":["fa",5357],"lp":["ta","at","fa","att","tta","tat","ata","ff","fat","fatt","af","atta","tata","aff","ffa","affa","ttat","ffat","tatt","taf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",249453],"tlw":["c",1986],"lp":["st","sc","cc","ts","ct","tc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",149612],"tlw":["casa",7589],"lp":["ca","sta","ac","acc","stat","cas","asc","fac","cat","cca","ast","sat","sca","casa","facc","sf","acca","asta","tas","ssat"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",504768],"tlw":["te",8282],"lp":["er","re","te","tr","et","rt","ere","ett","ter","rr","tre","tte","rte","ert","err","ret","ette","rre","etr","tere"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",368409],"tlw":["era",57211],"lp":["ra","ar","era","are","tra","fe","rat","art","rta","fr","tar","far","ara","eta","etta","fer","tare","arte","ratt","fra"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",118940],"tlw":["essere",13580],"lp":["ce","est","ec","rs","str","rc","res","ser","rd","ste","ers","tes","erc","cr","der","cer","sser","tess","dere","ece"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["sar",25172],"tlw":["testa",5675],"lp":["sar","esta","stra","ard","car","sare","ace","rad","dar","dat","rda","rac","adr","racc","rca","ars","dare","ssar","face","erca"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",46289],"trw":["n",1203],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",351085],"trp":["na",191784],"tlw":["an",861],"trw":["na",3153],"lp":["an","ann","ana","anna","anq","anan"],"rp":["na","nq","nna","nan","nnan"]},"18":{"input":[2,5],"base":"j","baseshift":"J","trp":["ns",40629],"trw":["j",428],"lp":[],"rp":["ns","nj","jn"]},"19":{"input":[1,2,5],"tlp":["san",10754],"trp":["nsa",10125],"tlw":["san",820],"lp":["san","ssan","sann","ans","sq","wn","asq","aj","sana","anj","anja","aja"],"rp":["nsa","nas","ja","nsan","nja","nasa","nsas","nass"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",325999],"trp":["ne",240032],"tlw":["en",427],"trw":["ne",18897],"lp":["en","ene","enn","enne","ey","enen","eyn","een","enny","eyne"],"rp":["ne","nne","ny","yn","nny","nen","yne","ye","nyn","nee"]},"21":{"input":[1,3,5],"tlp":["ena",10474],"trp":["nea",2742],"tlw":["aye",382],"lp":["ena","ane","ay","ean","ayn","ayne","enna","eq","anne","anea","aye","aen","eann"],"rp":["nea","nean","yna","nae","nyna","ynae","ya"]},"22":{"input":[2,3,5],"tlp":["sen",39413],"trp":["nd",129982],"tlw":["sen",952],"trw":["nes",163],"lp":["sen","end","ens","den","ende","sens","esen","eden","dend","ssen","dy"],"rp":["nd","nde","nes","ness","nse","nden","je","nsen","nese"]},"23":{"input":[1,2,3,5],"tlp":["and",60721],"trp":["nda",24205],"tlw":["and",382],"trw":["new",833],"lp":["and","anda","ensa","ande","dan","enda","sand","dand","dann","wen","esan","wene","dena","sean","anes","andy"],"rp":["nda","ndan","new","nand"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",46376],"trp":["nt",291380],"tlw":["b",526],"lp":["bb","tn"],"rp":["nt"]},"25":{"input":[1,4,5],"tlp":["ant",64341],"trp":["nta",37477],"tlw":["tanta",636],"trw":["nata",204],"lp":["ant","tan","ba","ab","tant","abb","ban","anta","fan","bba","bat","abba","batt"],"rp":["nta","nat","nf","ntan","ntat","nata","nfa"]},"26":{"input":[2,4,5],"tlp":["sb",2201],"trp":["nc",80441],"lp":["sb","cn","tsb"],"rp":["nc","nst","nsc"]},"27":{"input":[1,2,4,5],"tlp":["anc",55675],"trp":["nca",4603],"tlw":["basta",1053],"lp":["anc","can","stan","bas","cant","bast","anca","cq","acq","sant","bbas","bass","ccan","sab","sba","banc"],"rp":["nca","nasc","jac","ntas"]},"28":{"input":[3,4,5],"tlp":["ent",152199],"trp":["nte",100114],"tlw":["bene",6300],"trw":["nere",364],"lp":["ent","ente","be","rn","eb","br","ebb","ten","bbe","ebbe","reb","rebb","entr","ren","ber","ben","ener"],"rp":["nte","ntr","ner"]},"29":{"input":[1,3,4,5],"tlp":["ran",45980],"trp":["nar",8583],"tlw":["entrare",873],"trw":["nera",1031],"lp":["ran","eran","ante","bra","enta","areb","rna","tran","bar","rtan","rant","fran","abbr","erna"],"rp":["nar","ntra","nare","nera","ntar","nfe"]},"30":{"input":[2,3,4,5],"tlp":["sent",16908],"trp":["nce",6484],"tlw":["sebbene",761],"lp":["sent","cen","dent","rend","cent","cend","tend","scen","sten","deb","ecen","cenn","ccen"],"rp":["nce","nder","nec","nece","nest","nces","ncer"]},"31":{"input":[1,2,3,4,5],"tlw":["sarebbe",7398],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",3469],"trw":["i",56666],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["zi",77724],"trp":["ia",200353],"tlw":["ai",8188],"lp":["zi","za","ai","az","zz","azi","zza","azz","zia","zzi","azza","azzi","aia","azia"],"rp":["ia","iz","izi","izia","izz","iaz"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",267038],"trp":["is",117042],"tlw":["si",95698],"trw":["k",250],"lp":["si","ssi","sis","sk","siss","ssis","sii","sisi","ski"],"rp":["is","iss","isi","issi","ki","ik","isk","ks","kik"]},"35":{"input":[1,2,6],"tlp":["sia",18324],"trp":["issa",4411],"tlw":["sia",7163],"trw":["ka",126],"lp":["sia","asi","assi","sai","ak","siz","sizi","ssia","saz","sazi","sias","ssai","aki","wi","asia"],"rp":["issa","isa","ias","iasi","ka"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",64002],"trp":["ie",107111],"lp":["ei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",20251],"trp":["ize",737],"tlw":["zie",189],"trw":["ix",82],"lp":["ez","ezz","ezza","ze","ezi","zie","azie","zze","ezzi","azze","xi","eaz","eazi","aie","ezze","eez","eze"],"rp":["ize","ix","izie"]},"38":{"input":[2,3,6],"tlp":["di",428636],"trp":["id",39251],"tlw":["di",272620],"trw":["idee",923],"lp":["di","dis","dei","esi","edi","diss","essi","die","sie","sid","side","sei","ddi"],"rp":["id","ide","isse","ied","ise","ies","idi"]},"39":{"input":[1,2,3,6],"tlp":["dia",9487],"trp":["ida",5456],"tlw":["dai",4684],"trw":["idea",948],"lp":["dia","dai","adi","diz","dizi","edia","esia","addi","ake","edai","adiz","aid","disa","aesi","aida","ediz"],"rp":["ida","idea","iesa","idia"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",201674],"trp":["it",120823],"tlw":["ti",13315],"trw":["ivi",381],"lp":["ti","vi","tti","vit","tiv","vv","tit","viv","vvi","ttiv","tivi","vitt"],"rp":["it","iv","itt","iti","ivi","itti","ivit","itiv"]},"41":{"input":[1,4,6],"tlp":["va",190389],"trp":["ita",47351],"tlw":["vita",7521],"lp":["va","av","fi","ava","tav","ati","tava","via","atti","vita","avi","avv","ffi","vat"],"rp":["ita","iva","if","iat","ifi","itta"]},"42":{"input":[2,4,6],"tlp":["ci",164338],"trp":["ic",121416],"tlw":["ci",18525],"lp":["ci","sci","sti","tic","vis","cci","cit","sic","vist","sit","sist","vic","cis","vici"],"rp":["ic","ist","ici","icc","isc","isti"]},"43":{"input":[1,2,4,6],"tlp":["cia",31011],"trp":["ica",28164],"tlw":["stava",5638],"lp":["cia","fic","acci","stav","asci","ccia","tica","fici","scia","cav","ffic","cita","aci","cava","ciat","fica"],"rp":["ica","ista","iac","ific"]},"44":{"input":[3,4,6],"tlp":["ri",271321],"trp":["ir",53396],"tlw":["ri",3645],"trw":["ieri",513],"lp":["ri","ve","ev","ver","vev","eri","rit","tri","riv","rri","vr","rti","vre","rv","rie"],"rp":["ir","ire","ive","ier","iet"]},"45":{"input":[1,3,4,6],"tlp":["eva",73289],"trp":["iar",12328],"tlw":["aveva",25419],"lp":["eva","ave","veva","avev","ari","ria","rav","avr","aver","avre","arti","raz","riva","teva","rava","rz","razi","aria","var"],"rp":["iar"]},"46":{"input":[2,3,4,6],"tlp":["ris",22044],"trp":["ice",15501],"tlw":["dire",5876],"lp":["ris","ric","vers","dic","dir","dev","rsi","div","esti","cri","eci","cie","ved","dire","vec","cev","rdi","dive","ves"],"rp":["ice"]},"47":{"input":[1,2,3,4,6],"tlw":["avesse",3478],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",320519],"trw":["in",109997],"lp":[],"rp":["in","ni","hi","ini","nni","hin","hn","inn","hnn","nin","inni","nh","iin","hini"]},"49":{"input":[1,5,6],"tlp":["ani",19586],"trp":["nz",54632],"tlw":["anni",5707],"trw":["ha",18022],"lp":["ani","anz","anza","anni","anzi","ah"],"rp":["nz","nza","ha","ina","ian","hia","nzi","han","hann","hai","nia","niz","naz","nizi"]},"50":{"input":[2,5,6],"tlp":["sin",7946],"trp":["nsi",15035],"tlw":["sin",309],"lp":["sin","sh","sini","ssin","shi","shin","sinn"],"rp":["nsi","nis","ins","inis","insi","niss","his","nsis","hiss","nk","kn","nkn","hisk"]},"51":{"input":[1,2,5,6],"tlp":["sian",1135],"trp":["nsaz",1239],"tlw":["assassini",163],"trw":["hans",173],"lp":["sian","sha","shai","ansi","ash","anis","ank","wh","whi","whis","shak","sina","asha"],"rp":["nsaz","jak","kan","nsai","nsia","hak","hans"]},"52":{"input":[3,5,6],"tlp":["eni",10691],"trp":["he",257312],"tlw":["eh",464],"trw":["nei",6212],"lp":["eni","eh","ein","enni"],"rp":["he","ien","ine","hie","nie","nei","iene","nien","hnny","hien","ieni","hen","iy","hei","nhe","nhei"]},"53":{"input":[1,3,5,6],"tlp":["enz",33789],"trp":["ienz",3732],"tlw":["annie",76],"trw":["haze",116],"lp":["enz","enza","enzi","anie","enze","anze","zien","aine","anei","enez","enia"],"rp":["ienz","nze","iena","inea","hez","hezz","iane","nez","nezz"]},"54":{"input":[2,3,5,6],"tlp":["din",9601],"trp":["ndi",18448],"tlw":["sensi",395],"trw":["jessie",395],"lp":["din","ensi","dine","dini","enis","endi"],"rp":["ndi","ind","indi","nsie","iden","hies","ines","nsid","hied","ndie","inse","hes","hese","iend"]},"55":{"input":[1,2,3,5,6],"tlw":["senza",11519],"trw":["jake",1119],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",59544],"trp":["nti",54757],"tlw":["bi",1153],"lp":["bi","tin","bbi","bit","vin","th","bin"],"rp":["nti","int","ib","nv","ibi","inv","nit","ntin","niv","init","nvi","ntit","ntiv"]},"57":{"input":[1,4,5,6],"tlp":["van",36986],"trp":["inf",7482],"tlw":["avanti",2333],"trw":["infatti",1929],"lp":["van","fin","anti","avan","bia","abi","tanz","bbia","vant","abbi","fini","bian","tina"],"rp":["inf","ivan","nfi","nif","nita","nav","inat"]},"58":{"input":[2,4,5,6],"tlp":["ch",325862],"trp":["nch",30760],"tlw":["chi",6236],"trw":["nisci",250],"lp":["ch","chi","cch","cchi","cin","sib","sibi","sch","ssib","bis","schi"],"rp":["nch","inc","nci","inci","ich","nic","icin","ntic","nist"]},"59":{"input":[1,2,4,5,6],"tlw":["stanza",2031],"trw":["jack",1501],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["enti",29283],"trp":["inte",12868],"tlw":["viene",2680],"trw":["niente",4357],"lp":["enti","ven","vreb","vent","rin","veni","rni","vien","bri","venn"],"rp":["inte","ient","nve","iven","inve","ibe","iber","nev","ibr","nir"]},"61":{"input":[1,3,4,5,6],"tlw":["avrebbe",7187],"trw":["infine",1261],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["che",190983],"trw":["invece",4329],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["anche",22478],"trw":["neanche",898],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",538],"trw":["o",24888],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",1339],"trp":["oa",935],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",207940],"trp":["os",147196],"tlw":["so",6170],"trw":["oso",79],"lp":["so","sso","sos"],"rp":["os","oss","osso","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["asso",6821],"trp":["osa",24654],"tlw":["sasso",152],"trw":["ossa",382],"lp":["asso","aso","aos","wo","sao"],"rp":["osa","ossa","ow","ows"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",5232],"trp":["oe",8136],"trw":["-",14856],"lp":["eo"],"rp":["oe","o-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",67],"lp":["xo"],"rp":[]},"70":{"input":[2,3,7],"tlp":["do",158471],"trp":["od",22403],"tlw":["do",2723],"trw":["od",70],"lp":["do","esso","eso","edo","dos","doss","ddo","eddo","sod","ddos","sodd","seo"],"rp":["od","osse","odo","ose","ode","oes","odd","odes"]},"71":{"input":[1,2,3,7],"tlp":["ado",4250],"trp":["oda",1104],"tlw":["adesso",3039],"lp":["ado","addo","aseo","ados","dado"],"rp":["oda","oad","owd","owde","osea"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",401592],"trp":["ot",65714],"tlw":["to",7313],"trw":["otto",700],"lp":["to","tto","gg","go","tog","tot","gog","got","gott","gt","gto","ggo"],"rp":["ot","og","ott","otto","ogg","oto","ogo","otog"]},"73":{"input":[1,4,7],"tlp":["ato",73996],"trp":["of",9885],"tlw":["fatto",10159],"trw":["of",731],"lp":["ato","ag","fo","ga","atto","tato","agg","aga","tag","gat","ago","fog","fot","gato","foto"],"rp":["of","ota","off","ofo","otta"]},"74":{"input":[2,4,7],"tlp":["co",390163],"trp":["oc",56253],"tlw":["sotto",6145],"trw":["oc",194],"lp":["co","sto","cos","cco","sco","sog","sot","sott","cost","soc","sg","tos","ttos","tost"],"rp":["oc","ost","occ","osc","osto","oco"]},"75":{"input":[1,2,4,7],"tlp":["cosa",19547],"trp":["osta",6879],"tlw":["cosa",13626],"lp":["cosa","fos","foss","acco","cato","sato","asco","caso","sag","sagg","sof","sfo","aco","asto","soff","ssag","asfo"],"rp":["osta","occa","oca"]},"76":{"input":[3,4,7],"tlp":["ro",227920],"trp":["or",269472],"tlw":["ero",2296],"trw":["ore",1264],"lp":["ro","eg","tro","ero","ge","gr","tor","etto","rto","rg","erto","gge","egg","ttor"],"rp":["or","ore","ort","oro","ote","orr"]},"77":{"input":[1,3,4,7],"tlp":["for",26973],"trp":["ora",39990],"tlw":["forte",2002],"trw":["ora",7824],"lp":["for","gra","aro","rag","rato","ega","raga","rof","gar","fort","fro","arg","ator","ragg","rofo","egat","efo"],"rp":["ora","orta","orat"]},"78":{"input":[2,3,4,7],"tlp":["cor",38804],"trp":["ors",15158],"tlw":["stesso",6792],"lp":["cor","esto","rso","erso","seg","sor","rdo","ros","eco","deg","seco","stro","cord","stor","cors"],"rp":["ors","ostr","ord","orse","oce"]},"79":{"input":[1,2,3,4,7],"tlw":["fosse",8373],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",433832],"trw":["un",115533],"lp":[],"rp":["on","no","un","non","uo","ono","nu","uno","nno","nuo","onn","uon","nun","uono","nono","nnu","onno","ou","onu","nuno"]},"81":{"input":[1,5,7],"tlp":["qu",190328],"trp":["ua",132700],"tlw":["qua",1585],"trw":["una",79579],"lp":["qu","qua","ano","quan","anno","au","anqu","annu","quo"],"rp":["ua","una","uan","ona","nqu","unq","unqu","onna","nua","uona","uann"]},"82":{"input":[2,5,7],"tlp":["su",132637],"trp":["us",36612],"tlw":["sono",21614],"trw":["uso",357],"lp":["su","son","suo","sono","ssu","sun","ssun","suno","sus","suon","sson"],"rp":["us","nos","ons","nso","onos","uss","jo","uso","uns"]},"83":{"input":[1,2,5,7],"tlp":["sua",24168],"trp":["uas",6999],"tlw":["sua",23065],"trw":["naso",1168],"lp":["sua","quas","sona","aus","ausa","suna","susa","assu","squ","sano","squa","ssua"],"rp":["uas","usa","usan","onsa","naso","ussa","own","jona"]},"84":{"input":[3,5,7],"tlp":["eno",16301],"trp":["ue",125676],"trw":["oy",212],"lp":["eno","enu","eu","enno","eon","eone"],"rp":["ue","one","onne","une","uen","yo","n-","oy","neo","uone","onen","nue","uy","noe"]},"85":{"input":[1,3,5,7],"tlp":["que",97787],"trp":["nque",9338],"tlw":["que",683],"lp":["que","equ","eque","quen","aneo","enua","aone","eau","aneu","anue"],"rp":["nque","yoa","uane"]},"86":{"input":[2,3,5,7],"tlp":["du",34768],"trp":["ndo",56462],"tlw":["due",12347],"trw":["nessuno",3678],"lp":["du","due","don","endo","donn","essu","enso","sue","edu","dun","sone"],"rp":["ndo","ues","ond","ondo","ud","onde","ude","use","onse"]},"87":{"input":[1,2,3,5,7],"tlw":["quando",17079],"trw":["nessuna",1517],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",92522],"trp":["ut",89032],"tlw":["tutto",14989],"trw":["noto",633],"lp":["tu","tut","gn","tutt","gu","gno","bo"],"rp":["ut","nto","utt","ont","ng","uto","utto","ogn","ob","ub","ngo","not","ung"]},"89":{"input":[1,4,5,7],"tlp":["anto",26642],"trp":["onta",14073],"tlw":["quanto",9498],"trw":["nota",688],"lp":["anto","fu","gua","fon","atu","gna","ang","tua","agn","fuo","bano","aut"],"rp":["onta","uant","uta","utta","nato","natu","onf","uat"]},"90":{"input":[2,4,5,7],"tlp":["con",129147],"trp":["nco",21375],"tlw":["con",65735],"trw":["jung",428],"lp":["con","cu","cont","cun","cono","cons","sogn","scu","stu","cuo","sub","conc"],"rp":["nco","uc","usc","nost","ucc","nosc","ust","onc"]},"91":{"input":[1,2,4,5,7],"tlw":["bocca",2528],"trw":["nascosto",446],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ento",24735],"trp":["ur",55498],"tlw":["tutte",5259],"trw":["notte",3456],"lp":["ento","rno","ru","tur","ron","gen","torn","gnor","gue","egn"],"rp":["ur","orn","nor","ntro","orno","uro","ontr","ure","onte","uor"]},"93":{"input":[1,3,4,5,7],"tlw":["erano",13650],"trw":["natura",2226],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["contro",4167],"trw":["nostro",2381],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["questo",17502],"trw":["nostra",2563],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",292163],"trw":["il",150399],"lp":[],"rp":["ll","io","li","il","ol","lo","llo","olo","oi","lio","lli","oli","ili","oll","ill","ilo","ollo","iol","olli","oio"]},"97":{"input":[1,6,7],"tlp":["al",306120],"trp":["la",389912],"tlw":["al",34419],"trw":["la",169844],"lp":["al","all","zio","alla","azio","ali","zo","allo","zzo","ala","alo","azzo","alz"],"rp":["la","lla","ola","lia","ial","izio","lz"]},"98":{"input":[2,6,7],"tlp":["sol",35720],"trp":["osi",21430],"tlw":["solo",15660],"trw":["los",154],"lp":["sol","solo","sio","ssio","soli","sil","ssol","soll"],"rp":["osi","iso","ossi","ios","ls","lis","isio","ioso","los","ols","lsi","loso"]},"99":{"input":[1,2,6,7],"tlp":["sal",7582],"trp":["las",8686],"tlw":["sola",1804],"trw":["ossia",438],"lp":["sal","sola","als","sali","alsi","alis","zios","sala","asio","wil","wal","salo","will"],"rp":["las","osiz","lass","lsia","iosa","oak","oaki"]},"100":{"input":[3,6,7],"tlp":["el",300307],"trp":["le",283237],"tlw":["el",414],"trw":["le",75413],"lp":["el","ell","elle","ello","elli","ele","eli","elo"],"rp":["le","lle","ile","ole","lei","lie","iel","olle","ielo","ioe","ille","liel"]},"101":{"input":[1,3,6,7],"tlp":["ella",86423],"trp":["iale",6102],"tlw":["alle",8523],"lp":["ella","ale","alle","ela","eal","ezzo","ezio","eale","elai","elaz","eali","aile","alie"],"rp":["iale","lez","lezz","llez","lea","lezi","olez"]},"102":{"input":[2,3,6,7],"tlp":["del",145198],"trp":["ido",5517],"tlw":["del",59660],"trw":["les",352],"lp":["del","dell","dio","dol","sole","sile","dolo","deli","sold"],"rp":["ido","ld","les","odi","oesi","less","old","lid","lse","iod","olse"]},"103":{"input":[1,2,3,6,7],"tlw":["della",49783],"trw":["ideale",372],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["gi",98127],"trp":["lt",89489],"tlw":["gli",38211],"trw":["oggi",2072],"lp":["gi","gl","gli","vo","gio","vol","ggi","volt","glio","ggio"],"rp":["lt","ov","olt","ig","ito","lto","igl","igli","lit","olto"]},"105":{"input":[1,4,6,7],"tlp":["alt",36637],"trp":["lta",24023],"tlw":["volta",7909],"trw":["lato",1361],"lp":["alt","tal","gia","aggi","agi","avo","glia","agl","agli","gaz","val","fig","agaz"],"rp":["lta","olta","ova","lita","iato","lat","lav"]},"106":{"input":[2,4,6,7],"tlp":["col",38715],"trp":["ico",29735],"tlw":["cosi",14686],"lp":["col","cio","cosi","sig","colo","voc","ccol","tico","soci","cl","coll"],"rp":["ico","lc","lic","oci","lco","isto","icol","lcos","icco"]},"107":{"input":[1,2,4,6,7],"tlw":["cavallo",1015],"trw":["lasciato",1193],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rio",23501],"trp":["lor",31885],"tlw":["vero",3849],"trw":["loro",17911],"lp":["rio","egl","egli","rl","rov","gior","evo","tori","rol","trov"],"rp":["lor","ltr","ori","ove","ior","loro","let","lett","ltro","leg"]},"109":{"input":[1,3,4,6,7],"tlw":["allora",5910],"trw":["lavoro",2692],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["dove",7905],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["storia",3176],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["iu",69600],"trw":["lui",16197],"lp":[],"rp":["iu","ion","ui","lu","ul","ino","oni","ull","lui","ho","ioni","uoi","lin","uni","lun","hio","inu","lon","noi","iun"]},"113":{"input":[1,5,6,7],"tlp":["zion",44305],"trp":["ual",34744],"tlw":["qui",6480],"trw":["hanno",4870],"lp":["zion","qual","qui","quin","alu"],"rp":["ual","ulla","nal","lan","nzio","uz","uali","iano","uzi","uzio","onal","iona","inua","inqu","nzo"]},"114":{"input":[2,5,6,7],"tlp":["sul",27914],"trp":["ius",9576],"tlw":["sul",12074],"trw":["john",422],"lp":["sul","sull","sion","suoi","sui","sino","solu"],"rp":["ius","usi","onsi","lus","joh","john","isu","hius","uis","nsio","ussi","usio","isul"]},"115":{"input":[1,2,5,6,7],"tlw":["sulla",9250],"trw":["unknown",242],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"trp":["nel",55639],"tlw":["ellen",168],"trw":["nel",25842],"lp":[],"rp":["nel","ione","uel","uell","nell","len","ulle","uei","ilen","uole","olen","line","ieno","ly","lly","llen","hel","iyo","onie","lien"]},"117":{"input":[1,3,5,6,7],"tlw":["quella",13048],"trw":["nella",18121],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["sulle",3574],"trw":["johnny",2025],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["quindi",2988],"trw":["honda",1391],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bil",19308],"trp":["ing",11351],"tlw":["tutti",11017],"trw":["ogni",9891],"lp":["bil","gni","vu","giu","gin","bl"],"rp":["ing","utti","ign","ogni","uov","ibil","nuov","ult","igno","lib","onti","itu","iut","lung"]},"121":{"input":[1,4,5,6,7],"tlw":["fino",4978],"trw":["lingua",2263],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cui",15060],"trw":["occhi",7963],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["qualcosa",5921],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["giorno",5009],"trw":["intorno",2138],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["avevano",4836],"trw":["labbra",1521],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["vecchio",2836],"trw":["luce",3993],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["qualche",7372],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",38074],"trw":["p",2856],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",53641],"trp":["pa",113853],"tlw":["ap",277],"trw":["pa",1374],"lp":["ap","app","appa","apa"],"rp":["pa","ppa","pap","papa","papp"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",57528],"trp":["ps",391],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["sap",10722],"trp":["pas",13080],"tlw":["spa",392],"trw":["passa",483],"lp":["sap","spa","asp","sapp","aspa","asap","spas"],"rp":["pas","pass","ppas"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",9203],"trp":["pe",210895],"tlw":["e'",746],"trw":["'",1162],"lp":["ep","epp","e'","eppe","epe"],"rp":["pe","'e","ppe","'ep","pep","pepe","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",12996],"trp":["'a",34981],"tlw":["a'",123],"trw":["pae",158],"lp":["ape","appe","epa","a'","epap","a'a","eppa"],"rp":["'a","pae","pea","'ap","'ape","pape","'app","'ex"]},"134":{"input":[2,3,8],"tlp":["spe",21318],"trp":["pes",6844],"tlw":["de'",420],"lp":["spe","d'","esp","spes","s'","espe","s'e","sep","sepp","d'e","sped","d'es","de'"],"rp":["pes","'es","pess","'ess","'esp","ped","ppes"]},"135":{"input":[1,2,3,8],"tlp":["sape",7738],"trp":["pad",5524],"tlw":["spada",415],"trw":["paese",1433],"lp":["sape","d'a","aspe","sepa","spad","dap","dapp","s'a","apes","spea","s'as"],"rp":["pad","paes","pesa","'as","'ass","pada","pade","peda","'asp"]},"136":{"input":[4,8],"tlp":["tp",67],"trp":["pt",593],"trw":["pt",593],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",444],"trp":["pat",3422],"tlw":["tappa",74],"trw":["pat",105],"lp":["tap","tapp"],"rp":["pat","pata","patt","ppat"]},"138":{"input":[2,4,8],"lp":[],"rp":[]},"139":{"input":[1,2,4,8],"tlp":["cap",16620],"trp":["pac",3619],"tlw":["cap",137],"trw":["passata",399],"lp":["cap","capa","apac","capp","scap"],"rp":["pac","past","pasc","pacc","paca"]},"140":{"input":[3,4,8],"tlp":["rp",6335],"trp":["pr",145579],"trw":["per",80117],"lp":["rp","t'","rep","rpr","rpre","rpe"],"rp":["pr","per","pre","pet","'er","pett","pert","pere","ppr","ppre","pete","perr","pret","prep"]},"141":{"input":[1,3,4,8],"tlp":["rap",5944],"trp":["par",50789],"tlw":["aperta",930],"trw":["parte",8500],"lp":["rap","aper","rapp","apr","appr","epar","t'a"],"rp":["par","part","'era","pra","pare","pera","'ar","ppar","perf","prat","para","'art","'at"]},"142":{"input":[2,3,4,8],"tlp":["c'",13326],"trp":["pres",21493],"tlw":["c'e",5387],"trw":["prese",1400],"lp":["c'","c'e","spet","c'er","sper","spec","spr","espr","spre","resp","st'"],"rp":["pres","perc","pers","pec","prec","perd","pecc","'est","pesc"]},"143":{"input":[1,2,3,4,8],"tlw":["c'era",5795],"trw":["padre",3195],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",63764],"trw":["m",580],"lp":[],"rp":["mp","mm","pn","pm"]},"145":{"input":[1,5,8],"tlp":["am",93470],"trp":["ma",209998],"tlw":["ama",245],"trw":["ma",53590],"lp":["am","ama","amm","amp","amma","ampa","aman","anam"],"rp":["ma","man","mma","mpa","pan","mana","mam","nam","mamm","nap","mpan","pann"]},"146":{"input":[2,5,8],"tlp":["sm",3714],"lp":["sm"],"rp":[]},"147":{"input":[1,2,5,8],"tlp":["sam",2868],"trp":["mas",6926],"tlw":["sam",230],"trw":["massa",628],"lp":["sam","asm","sma","asma","ssam"],"rp":["mas","mass","nsap","jam","mpas","njam","pasq","mmas","nasp","nsam"]},"148":{"input":[3,5,8],"tlp":["em",69499],"trp":["me",205039],"trw":["me",9600],"lp":["em","emp","eme","emen","emm","emme"],"rp":["me","men","pen","n'","mme","nem","ppen","mmen","mpe","nemm","nep","m'","mem","nepp"]},"149":{"input":[1,3,5,8],"tlp":["ame",31411],"trp":["pena",4673],"tlw":["appena",3899],"trw":["'na",1029],"lp":["ame","amen","ema","amme","eam","eame","emma"],"rp":["pena","'an","n'a","mane","'am","mae","'ann","nema","'na","name","pane","neam","mame"]},"150":{"input":[2,3,5,8],"tlp":["sem",25705],"trp":["pens",14000],"tlw":["sem",596],"trw":["mese",638],"lp":["sem","semp","esem","spen","sme","dem","ssem"],"rp":["pens","mes","mess","med","pend","mmed","mens","n'es","mese","mped","mede","mmes","mend"]},"151":{"input":[1,2,3,5,8],"tlw":["damane",190],"trw":["pensa",920],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",759],"trp":["mb",24935],"lp":["tm"],"rp":["mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",11090],"trp":["mat",11944],"tlw":["fama",205],"trw":["mat",965],"lp":["tam","amb","fam","bam","bamb","ttam","amat","atam","tamp","amba"],"rp":["mat","matt","mant","mba","ntam","mata","mpat","mmat","pant","mbat"],"special":"numsym"},"154":{"input":[2,4,5,8],"lp":[],"rp":[]},"155":{"input":[1,2,4,5,8],"tlw":["stampa",344],"trw":["manca",395],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",30451],"trp":["ment",73144],"tlw":["be'",1001],"trw":["mentre",7346],"lp":["rm","tem","temp","empr","erm","emb","embr","rme","rem","term","trem"],"rp":["ment","mpr","mpre","mer","mbr","met","mett","pren","ntem"]},"157":{"input":[1,3,4,5,8],"tlw":["entrambe",518],"trw":["mare",1575],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["sempre",11019],"trw":["prendere",1451],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["sembra",1918],"trw":["madre",2851],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",115591],"trw":["pi",1894],"lp":[],"rp":["pi","ip","ipi","ppi","pii","pip","ipp"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",10470],"trp":["pia",13275],"trw":["piazza",530],"lp":["api","appi","apii"],"rp":["pia","paz","pazi","ipa","ppia","pai","pazz","piaz","iap","iapi","ipaz","iapp","pipa","piz","pizz","ppai"]},"162":{"input":[2,6,8],"tlp":["spi",10357],"trp":["isp",11667],"tlw":["spi",83],"lp":["spi"],"rp":["isp","pis","psi","ispi"]},"163":{"input":[1,2,6,8],"tlp":["spia",1284],"trp":["ispa",273],"tlw":["sappia",270],"trw":["passi",1081],"lp":["spia","apis","spaz","sapi","aspi"],"rp":["ispa","pais","isap","pias"]},"164":{"input":[3,6,8],"tlp":["epi",750],"trp":["pie",14120],"trw":["pie",288],"lp":["epi","eppi"],"rp":["pie","'i","ipe","i'","'ip","iep","pei","ppie","iepi","iepe"]},"165":{"input":[1,3,6,8],"tlp":["apie",832],"trp":["pez",2090],"trw":["pezzi",621],"lp":["apie","z'","zz'","ezz'","z'a","ai'"],"rp":["pez","pezz","'az","'azi","'ai"]},"166":{"input":[2,3,6,8],"tlp":["disp",3751],"trp":["pied",3956],"tlw":["spie",208],"trw":["piedi",2995],"lp":["disp","spie","dip","dipe","espi","d'i","dipi","s'i"],"rp":["pied","ispe","pid","'id","'ide","pedi","'esi","'is","pidi","ipes","'edi","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["appesi",112],"trw":["paesi",504],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2675],"trp":["pit",7247],"tlw":["tipi",332],"lp":["tip","tipi"],"rp":["pit","piv","piti","pitt","ipit"]},"169":{"input":[1,4,6,8],"tlp":["apit",4239],"trp":["pita",2661],"trw":["piatti",270],"lp":["apit","apiv","vap"],"rp":["pita","pav","piat","pavi","piva","pati","pava","ipat"]},"170":{"input":[2,4,6,8],"tlp":["cip",5282],"trp":["pic",6757],"tlw":["tipici",78],"lp":["cip","cipi","spit","scip","stip","tisp"],"rp":["pic","picc","pisc","pist","ipic","psic","icip","pick","pici"]},"171":{"input":[1,2,4,6,8],"tlw":["capi",635],"trw":["passava",443],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",3818],"trp":["pri",41676],"tlw":["ripete",508],"trw":["pri",723],"lp":["rip","ripr","ripe","v'","v'e"],"rp":["pri","pir","peri","pev","piri","priv","piet","pire","prie","ipr","ipet","ipre","prir","prev","pier"]},"173":{"input":[1,3,4,6,8],"tlw":["apri",920],"trw":["parti",1322],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["specie",1573],"trw":["presi",303],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["sapeva",2346],"trw":["piacere",1214],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",125525],"trw":["mi",29736],"lp":[],"rp":["mi","im","min","imp","imi","mini","mpi","mmi","imm","nim","mmin","pin","inim","immi","mim","mimi","impi","pini","ph","ipin"]},"177":{"input":[1,5,6,8],"tlp":["ami",11196],"trp":["ima",27754],"tlw":["anima",623],"trw":["mai",10502],"lp":["ami","anim","ammi","ampi"],"rp":["ima","iam","mai","mia","mani","mina","hiam","pian","imma","iama","nima","iman","maz","impa","mazi","manz"]},"178":{"input":[2,5,6,8],"tlp":["sim",7979],"trp":["mis",8876],"tlw":["spin",81],"trw":["misi",410],"lp":["sim","ssim","simi","spin","smi","simp","smis","sism"],"rp":["mis","miss","mmis","ism","pins","misi","nism","imis","jim","mk"]},"179":{"input":[1,2,5,6,8],"tlw":["spina",102],"trw":["massima",364],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["empi",4592],"trp":["ime",13962],"tlw":["ehm",84],"trw":["miei",2459],"lp":["empi","emi"],"rp":["ime","imen","'in","mie","'h","iem","'im","pien","ieme","miei","'imp","impe","imme","h'","mine","ipen","inem","'imm"]},"181":{"input":[1,3,5,6,8],"tlw":["zampe",282],"trw":["piena",963],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["dimmi",325],"trw":["insieme",2565],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["assieme",502],"trw":["pensai",375],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",12886],"trp":["mbi",7548],"tlw":["tim",512],"trw":["miti",105],"lp":["tim","ttim","vim","timi","bim","bimb"],"rp":["mbi","mit","mbin","imit","ntim","imb","pint","mpit","miti","itm","mbit","miv","mith","mpiv"]},"185":{"input":[1,4,5,6,8],"tlw":["bambini",1251],"trw":["mattina",971],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",194],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["amici",1446],"trw":["macchina",1679],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["tempi",1297],"trw":["perrin",1178],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["veramente",1194],"trw":["prima",12710],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["sentimenti",600],"trw":["perche",14386],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["sembrava",3174],"trw":["presenza",1054],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",170696],"trw":["po",1713],"lp":[],"rp":["po","op","opo","ppo","opp","oppo","pop","popo","oop","ppop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",3603],"trp":["opa",1076],"lp":["appo","apo"],"rp":["opa","oppa","pao"]},"194":{"input":[2,7,8],"tlp":["spo",12332],"trp":["pos",30275],"tlw":["spo",162],"trw":["posso",2175],"lp":["spo","spos","sop","sosp","sopp"],"rp":["pos","poss","osp","opos","poso","ppos"]},"195":{"input":[1,2,7,8],"tlp":["sapo",395],"trp":["posa",1234],"tlw":["sposa",181],"trw":["passo",2265],"lp":["sapo","aspo","apos"],"rp":["posa"]},"196":{"input":[3,7,8],"tlp":["epo",996],"trp":["'o",10586],"trw":["po'",5326],"lp":["epo","eop","eppo"],"rp":["'o","ope","o'","poe","po'","'op","'ope","peo","'epo","oppe","oope","opeo","'opp","opee"]},"197":{"input":[1,3,7,8],"tlp":["eopa",82],"trp":["opea",192],"lp":["eopa"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["dop",11237],"trp":["pose",2787],"tlw":["dopo",9632],"trw":["peso",740],"lp":["dop","dopo","d'o","espo","dopp","depo","epos"],"rp":["pose","poes","ospe","peso","os'","os'e","'od","'os","'odo","pod","opod","pode","'osp"]},"199":{"input":[1,2,3,7,8],"tlw":["appeso",230],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",650],"trp":["pot",22315],"tlw":["topo",171],"lp":["top","topo","ttop"],"rp":["pot","pog","ppog","pogg","pott","opot","ppot","opog"]},"201":{"input":[1,4,7,8],"trp":["pag",5925],"trw":["patto",180],"lp":[],"rp":["pag","paga","pato","opag","pago","ppag"]},"202":{"input":[2,4,7,8],"tlp":["cop",6022],"trp":["post",9448],"tlw":["scopo",742],"trw":["poco",4741],"lp":["cop","scop","copp","copo","coop","spog","cosp"],"rp":["post","poc","poco"]},"203":{"input":[1,2,4,7,8],"tlw":["capo",2162],"trw":["passato",1802],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",21378],"trp":["pro",42777],"tlw":["troppo",4434],"trw":["pero",4668],"lp":["rop","ropr","trop","ropp","rpo","ropo"],"rp":["pro","por","opr","port","pote","prop","oper","pero","'or","orp","potr","ppor","orpo","poet"]},"205":{"input":[1,3,4,7,8],"tlw":["rapporto",1150],"trw":["porta",4253],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corpo",2667],"trw":["presto",1698],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["sopra",3357],"trw":["peccato",398],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",124534],"trw":["puo",6756],"lp":[],"rp":["mo","om","pu","mpo","um","mon","omp","up","uom","mu","omo","puo","pun","uomo","omm","mom","nom","ppu","pon","mun"]},"209":{"input":[1,5,7,8],"tlp":["amo",18506],"trp":["oma",10024],"tlw":["amo",246],"trw":["mano",6828],"lp":["amo","ampo","appu","apu","aum","amon"],"rp":["oma","mano","oman","ompa","uma","uman","pau","upa","munq","omma","napo","mona","uam","nuam"]},"210":{"input":[2,5,7,8],"tlp":["sup",3910],"trp":["mos",4879],"tlw":["sommo",127],"trw":["possono",1433],"lp":["sup","spon","som","smo","somm","sum","spu","ssum","supp","spun"],"rp":["mos","mus","mpos","nsom","moss","pons","moso","nsum","mous","moos"]},"211":{"input":[1,2,5,7,8],"tlw":["somma",313],"trw":["pausa",424],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["empo",10444],"trp":["ome",58690],"trw":["meno",4910],"lp":["empo","emo","eppu"],"rp":["ome","'u","meno","omen","un'","ume","mome","'un","'uo","'uom","nome","upe","nume","umen","omme","n'o","un'o"]},"213":{"input":[1,3,5,7,8],"trw":["umane",290],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["d'un",897],"trw":["modo",7852],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["domanda",1306],"trw":["pensando",468],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",2271],"trp":["punt",7081],"tlw":["tom",318],"trw":["punto",4093],"lp":["tom","tup","gom"],"rp":["punt","mont","omb","potu","pub","pubb","mot","mog","mbo","put","mob","pug","mut","pugn","moto","puto","pont"]},"217":{"input":[1,4,5,7,8],"tlw":["appunto",879],"trw":["punta",775],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["com",539],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["campo",1259],"trw":["manco",711],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["tempo",9244],"trw":["momento",5714],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",2605],"trw":["paura",1888],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["come",44183],"trw":["persone",2066],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["comunque",2203],"trw":["persona",1755],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["poi",14737],"trw":["poi",13201],"lp":[],"rp":["poi","pl","pol","pio","pli","lp","poli","olp","ipo","opol","lpo","olpo","oppi","lpi","olpi","opi","polo","ipio","ppio","ipl"]},"225":{"input":[1,6,7,8],"tlp":["alp",617],"trp":["pal",8270],"trw":["paio",1036],"lp":["alp","apol","alap"],"rp":["pal","pall","pola","paio","pala","ipal","pla","lpa","olpa","poz","pozz","palp","pali","pila","opia","lap","paol"]},"226":{"input":[2,6,7,8],"tlp":["spl",884],"trp":["ispo",7900],"tlw":["spio",684],"trw":["polso",267],"lp":["spl","spio","splo","spli"],"rp":["ispo","posi","ospi","pols","ipos","piso","lpis","plos"]},"227":{"input":[1,2,6,7,8],"tlw":["spazio",928],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["ell'",11381],"trp":["l'",63315],"trw":["pelle",1317],"lp":["ell'","epl","epli"],"rp":["l'","ll'","l'i","l'o","l'e","pel","ll'i","pell","ple","ll'e","ll'o","lpe","'io","l'op","ppel","pelo","olpe"]},"229":{"input":[1,3,6,7,8],"tlw":["appello",93],"trw":["pezzo",996],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["doppio",286],"trw":["poesie",742],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["spalle",2219],"trw":["poesia",1881],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tipo",1710],"trp":["pito",3299],"tlw":["tipo",1710],"trw":["piglio",445],"lp":["tipo","topi","volp"],"rp":["pito","pov","pig","pigl","piog","ipot","polv","polt","lpit","poti","ipig","pogl","piov","lpiv"]},"233":{"input":[1,4,6,7,8],"tlw":["appoggio",268],"trw":["pioggia",738],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["colpo",1583],"trw":["piccolo",2047],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capito",1303],"trw":["piccola",1514],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["proprio",7247],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"trw":["poteva",4863],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["rispose",2477],"trw":["percio",1506],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["capelli",2276],"trw":["particolare",1528],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["piu",40881],"trw":["piu",38322],"lp":[],"rp":["piu","lm","imo","omi","mol","omin","mio","mpl","mil","uomi","impo","ilm","mpli","lim","ompl","ommi","mili","mpio","imil","umi"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["animali",640],"trw":["piano",2006],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simili",901],"trw":["luminoso",184],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["siamo",2506],"trw":["possiamo",953],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["l'uomo",2192],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["almeno",2906],"trw":["mezzo",2952],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["esempio",1778],"trw":["modi",645],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["domani",713],"trw":["posizione",1014],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["molto",8286],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["abbiamo",2561],"trw":["montalbano",3474],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["comincio",1412],"trw":["piuttosto",1744],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["amico",1691],"trw":["possibilita",1220],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"trw":["meglio",3762],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["finalmente",1303],"trw":["ormai",2373],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["semplice",1455],"trw":["possibile",2609],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["commissario",2277],"trw":["l'unica",795],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",76],"tlw":["a",134646],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",181781],"tlw":["s",689],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",147177],"tlw":["sa",4372],"lp":["sa","as","ssa","ass","assa","asa","sas","wa","sass","ssas","aw","saw","was","awa","ws"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",2590],"tlw":["e",285768],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",16928],"tlw":["ex",571],"lp":["ea","ae","ex","ax","xe"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",299367],"tlw":["se",42825],"lp":["de","se","es","ess","sse","ed","esse","ede","ese","des","dd","sed","edd","dess","sede","edes","ses","sess","dde","dee"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",161213],"tlw":["da",50742],"lp":["da","ad","essa","esa","ade","ada","asse","ase","aes","add","dea","ades","eda","we","aese","seda","ew","sea","adde","aesa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",206553],"tlw":["t",2430],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",338700],"tlw":["fa",5357],"lp":["ta","at","fa","att","tta","tat","ata","ff","fat","fatt","af","atta","tata","aff","ffa","affa","ttat","ffat","tatt","taf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",249453],"tlw":["c",1986],"lp":["st","sc","cc","ts","ct","tc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",149612],"tlw":["casa",7589],"lp":["ca","sta","ac","acc","stat","cas","asc","fac","cat","cca","ast","sat","sca","casa","facc","sf","acca","asta","tas","ssat"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",504768],"tlw":["te",8282],"lp":["er","re","te","tr","et","rt","ere","ett","ter","rr","tre","tte","rte","ert","err","ret","ette","rre","etr","tere"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",368409],"tlw":["era",57211],"lp":["ra","ar","era","are","tra","fe","rat","art","rta","fr","tar","far","ara","eta","etta","fer","tare","arte","ratt","fra"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",118940],"tlw":["essere",13580],"lp":["ce","est","ec","rs","str","rc","res","ser","rd","ste","ers","tes","erc","cr","der","cer","sser","tess","dere","ece"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["sar",25172],"tlw":["testa",5675],"lp":["sar","esta","stra","ard","car","sare","ace","rad","dar","dat","rda","rac","adr","racc","rca","ars","dare","ssar","face","erca"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",46289],"trw":["n",1203],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",351085],"trp":["na",191784],"tlw":["an",861],"trw":["na",3153],"lp":["an","ann","ana","anna","anq","anan"],"rp":["na","nq","nna","nan","nnan"]},"18":{"input":[2,5],"base":"j","baseshift":"J","trp":["ns",40629],"trw":["j",428],"lp":[],"rp":["ns","nj","jn"]},"19":{"input":[1,2,5],"tlp":["san",10754],"trp":["nsa",10125],"tlw":["san",820],"lp":["san","ssan","sann","ans","sq","wn","asq","aj","sana","anj","anja","aja"],"rp":["nsa","nas","ja","nsan","nja","nasa","nsas","nass"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",325999],"trp":["ne",240032],"tlw":["en",427],"trw":["ne",18897],"lp":["en","ene","enn","enne","ey","enen","eyn","een","enny","eyne"],"rp":["ne","nne","ny","yn","nny","nen","yne","ye","nyn","nee"]},"21":{"input":[1,3,5],"tlp":["ena",10474],"trp":["nea",2742],"tlw":["aye",382],"lp":["ena","ane","ay","ean","ayn","ayne","enna","eq","anne","anea","aye","aen","eann"],"rp":["nea","nean","yna","nae","nyna","ynae","ya"]},"22":{"input":[2,3,5],"tlp":["sen",39413],"trp":["nd",129982],"tlw":["sen",952],"trw":["nes",163],"lp":["sen","end","ens","den","ende","sens","esen","eden","dend","ssen","dy"],"rp":["nd","nde","nes","ness","nse","nden","je","nsen","nese"]},"23":{"input":[1,2,3,5],"tlp":["and",60721],"trp":["nda",24205],"tlw":["and",382],"trw":["new",833],"lp":["and","anda","ensa","ande","dan","enda","sand","dand","dann","wen","esan","wene","dena","sean","anes","andy"],"rp":["nda","ndan","new","nand"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",46376],"trp":["nt",291380],"tlw":["b",526],"lp":["bb","tn"],"rp":["nt"]},"25":{"input":[1,4,5],"tlp":["ant",64341],"trp":["nta",37477],"tlw":["tanta",636],"trw":["nata",204],"lp":["ant","tan","ba","ab","tant","abb","ban","anta","fan","bba","bat","abba","batt"],"rp":["nta","nat","nf","ntan","ntat","nata","nfa"]},"26":{"input":[2,4,5],"tlp":["sb",2201],"trp":["nc",80441],"lp":["sb","cn","tsb"],"rp":["nc","nst","nsc"]},"27":{"input":[1,2,4,5],"tlp":["anc",55675],"trp":["nca",4603],"tlw":["basta",1053],"lp":["anc","can","stan","bas","cant","bast","anca","cq","acq","sant","bbas","bass","ccan","sab","sba","banc"],"rp":["nca","nasc","jac","ntas"]},"28":{"input":[3,4,5],"tlp":["ent",152199],"trp":["nte",100114],"tlw":["bene",6300],"trw":["nere",364],"lp":["ent","ente","be","rn","eb","br","ebb","ten","bbe","ebbe","reb","rebb","entr","ren","ber","ben","ener"],"rp":["nte","ntr","ner"]},"29":{"input":[1,3,4,5],"tlp":["ran",45980],"trp":["nar",8583],"tlw":["entrare",873],"trw":["nera",1031],"lp":["ran","eran","ante","bra","enta","areb","rna","tran","bar","rtan","rant","fran","abbr","erna"],"rp":["nar","ntra","nare","nera","ntar","nfe"]},"30":{"input":[2,3,4,5],"tlp":["sent",16908],"trp":["nce",6484],"tlw":["sebbene",761],"lp":["sent","cen","dent","rend","cent","cend","tend","scen","sten","deb","ecen","cenn","ccen"],"rp":["nce","nder","nec","nece","nest","nces","ncer"]},"31":{"input":[1,2,3,4,5],"tlw":["sarebbe",7398],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",3469],"trw":["i",56666],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["zi",77724],"trp":["ia",200353],"tlw":["ai",8188],"lp":["zi","za","ai","az","zz","azi","zza","azz","zia","zzi","azza","azzi","aia","azia"],"rp":["ia","iz","izi","izia","izz","iaz"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",267038],"trp":["is",117042],"tlw":["si",95698],"trw":["k",250],"lp":["si","ssi","sis","sk","siss","ssis","sii","sisi","ski"],"rp":["is","iss","isi","issi","ki","ik","isk","ks","kik"]},"35":{"input":[1,2,6],"tlp":["sia",18324],"trp":["issa",4411],"tlw":["sia",7163],"trw":["ka",126],"lp":["sia","asi","assi","sai","ak","siz","sizi","ssia","saz","sazi","sias","ssai","aki","wi","asia"],"rp":["issa","isa","ias","iasi","ka"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",64002],"trp":["ie",107111],"lp":["ei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",20251],"trp":["ize",737],"tlw":["zie",189],"trw":["ix",82],"lp":["ez","ezz","ezza","ze","ezi","zie","azie","zze","ezzi","azze","xi","eaz","eazi","aie","ezze","eez","eze"],"rp":["ize","ix","izie"]},"38":{"input":[2,3,6],"tlp":["di",428636],"trp":["id",39251],"tlw":["di",272620],"trw":["idee",923],"lp":["di","dis","dei","esi","edi","diss","essi","die","sie","sid","side","sei","ddi"],"rp":["id","ide","isse","ied","ise","ies","idi"]},"39":{"input":[1,2,3,6],"tlp":["dia",9487],"trp":["ida",5456],"tlw":["dai",4684],"trw":["idea",948],"lp":["dia","dai","adi","diz","dizi","edia","esia","addi","ake","edai","adiz","aid","disa","aesi","aida","ediz"],"rp":["ida","idea","iesa","idia"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",201674],"trp":["it",120823],"tlw":["ti",13315],"trw":["ivi",381],"lp":["ti","vi","tti","vit","tiv","vv","tit","viv","vvi","ttiv","tivi","vitt"],"rp":["it","iv","itt","iti","ivi","itti","ivit","itiv"]},"41":{"input":[1,4,6],"tlp":["va",190389],"trp":["ita",47351],"tlw":["vita",7521],"lp":["va","av","fi","ava","tav","ati","tava","via","atti","vita","avi","avv","ffi","vat"],"rp":["ita","iva","if","iat","ifi","itta"]},"42":{"input":[2,4,6],"tlp":["ci",164338],"trp":["ic",121416],"tlw":["ci",18525],"lp":["ci","sci","sti","tic","vis","cci","cit","sic","vist","sit","sist","vic","cis","vici"],"rp":["ic","ist","ici","icc","isc","isti"]},"43":{"input":[1,2,4,6],"tlp":["cia",31011],"trp":["ica",28164],"tlw":["stava",5638],"lp":["cia","fic","acci","stav","asci","ccia","tica","fici","scia","cav","ffic","cita","aci","cava","ciat","fica"],"rp":["ica","ista","iac","ific"]},"44":{"input":[3,4,6],"tlp":["ri",271321],"trp":["ir",53396],"tlw":["ri",3645],"trw":["ieri",513],"lp":["ri","ve","ev","ver","vev","eri","rit","tri","riv","rri","vr","rti","vre","rv","rie"],"rp":["ir","ire","ive","ier","iet"]},"45":{"input":[1,3,4,6],"tlp":["eva",73289],"trp":["iar",12328],"tlw":["aveva",25419],"lp":["eva","ave","veva","avev","ari","ria","rav","avr","aver","avre","arti","raz","riva","teva","rava","rz","razi","aria","var"],"rp":["iar"]},"46":{"input":[2,3,4,6],"tlp":["ris",22044],"trp":["ice",15501],"tlw":["dire",5876],"lp":["ris","ric","vers","dic","dir","dev","rsi","div","esti","cri","eci","cie","ved","dire","vec","cev","rdi","dive","ves"],"rp":["ice"]},"47":{"input":[1,2,3,4,6],"tlw":["avesse",3478],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",320519],"trw":["in",109997],"lp":[],"rp":["in","ni","hi","ini","nni","hin","hn","inn","hnn","nin","inni","nh","iin","hini"]},"49":{"input":[1,5,6],"tlp":["ani",19586],"trp":["nz",54632],"tlw":["anni",5707],"trw":["ha",18022],"lp":["ani","anz","anza","anni","anzi","ah"],"rp":["nz","nza","ha","ina","ian","hia","nzi","han","hann","hai","nia","niz","naz","nizi"]},"50":{"input":[2,5,6],"tlp":["sin",7946],"trp":["nsi",15035],"tlw":["sin",309],"lp":["sin","sh","sini","ssin","shi","shin","sinn"],"rp":["nsi","nis","ins","inis","insi","niss","his","nsis","hiss","nk","kn","nkn","hisk"]},"51":{"input":[1,2,5,6],"tlp":["sian",1135],"trp":["nsaz",1239],"tlw":["assassini",163],"trw":["hans",173],"lp":["sian","sha","shai","ansi","ash","anis","ank","wh","whi","whis","shak","sina","asha"],"rp":["nsaz","jak","kan","nsai","nsia","hak","hans"]},"52":{"input":[3,5,6],"tlp":["eni",10691],"trp":["he",257312],"tlw":["eh",464],"trw":["nei",6212],"lp":["eni","eh","ein","enni"],"rp":["he","ien","ine","hie","nie","nei","iene","nien","hnny","hien","ieni","hen","iy","hei","nhe","nhei"]},"53":{"input":[1,3,5,6],"tlp":["enz",33789],"trp":["ienz",3732],"tlw":["annie",76],"trw":["haze",116],"lp":["enz","enza","enzi","anie","enze","anze","zien","aine","anei","enez","enia"],"rp":["ienz","nze","iena","inea","hez","hezz","iane","nez","nezz"]},"54":{"input":[2,3,5,6],"tlp":["din",9601],"trp":["ndi",18448],"tlw":["sensi",395],"trw":["jessie",395],"lp":["din","ensi","dine","dini","enis","endi"],"rp":["ndi","ind","indi","nsie","iden","hies","ines","nsid","hied","ndie","inse","hes","hese","iend"]},"55":{"input":[1,2,3,5,6],"tlw":["senza",11519],"trw":["jake",1119],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",59544],"trp":["nti",54757],"tlw":["bi",1153],"lp":["bi","tin","bbi","bit","vin","th","bin"],"rp":["nti","int","ib","nv","ibi","inv","nit","ntin","niv","init","nvi","ntit","ntiv"]},"57":{"input":[1,4,5,6],"tlp":["van",36986],"trp":["inf",7482],"tlw":["avanti",2333],"trw":["infatti",1929],"lp":["van","fin","anti","avan","bia","abi","tanz","bbia","vant","abbi","fini","bian","tina"],"rp":["inf","ivan","nfi","nif","nita","nav","inat"]},"58":{"input":[2,4,5,6],"tlp":["ch",325862],"trp":["nch",30760],"tlw":["chi",6236],"trw":["nisci",250],"lp":["ch","chi","cch","cchi","cin","sib","sibi","sch","ssib","bis","schi"],"rp":["nch","inc","nci","inci","ich","nic","icin","ntic","nist"]},"59":{"input":[1,2,4,5,6],"tlw":["stanza",2031],"trw":["jack",1501],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["enti",29283],"trp":["inte",12868],"tlw":["viene",2680],"trw":["niente",4357],"lp":["enti","ven","vreb","vent","rin","veni","rni","vien","bri","venn"],"rp":["inte","ient","nve","iven","inve","ibe","iber","nev","ibr","nir"]},"61":{"input":[1,3,4,5,6],"tlw":["avrebbe",7187],"trw":["infine",1261],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["che",190983],"trw":["invece",4329],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["anche",22478],"trw":["neanche",898],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",538],"trw":["o",24888],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",1339],"trp":["oa",935],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",207940],"trp":["os",147196],"tlw":["so",6170],"trw":["oso",79],"lp":["so","sso","sos"],"rp":["os","oss","osso","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["asso",6821],"trp":["osa",24654],"tlw":["sasso",152],"trw":["ossa",382],"lp":["asso","aso","aos","wo","sao"],"rp":["osa","ossa","ow","ows"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",5232],"trp":["oe",8136],"trw":["-",14856],"lp":["eo"],"rp":["oe","o-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",67],"lp":["xo"],"rp":[]},"70":{"input":[2,3,7],"tlp":["do",158471],"trp":["od",22403],"tlw":["do",2723],"trw":["od",70],"lp":["do","esso","eso","edo","dos","doss","ddo","eddo","sod","ddos","sodd","seo"],"rp":["od","osse","odo","ose","ode","oes","odd","odes"]},"71":{"input":[1,2,3,7],"tlp":["ado",4250],"trp":["oda",1104],"tlw":["adesso",3039],"lp":["ado","addo","aseo","ados","dado"],"rp":["oda","oad","owd","owde","osea"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",401592],"trp":["ot",65714],"tlw":["to",7313],"trw":["otto",700],"lp":["to","tto","gg","go","tog","tot","gog","got","gott","gt","gto","ggo"],"rp":["ot","og","ott","otto","ogg","oto","ogo","otog"]},"73":{"input":[1,4,7],"tlp":["ato",73996],"trp":["of",9885],"tlw":["fatto",10159],"trw":["of",731],"lp":["ato","ag","fo","ga","atto","tato","agg","aga","tag","gat","ago","fog","fot","gato","foto"],"rp":["of","ota","off","ofo","otta"]},"74":{"input":[2,4,7],"tlp":["co",390163],"trp":["oc",56253],"tlw":["sotto",6145],"trw":["oc",194],"lp":["co","sto","cos","cco","sco","sog","sot","sott","cost","soc","sg","tos","ttos","tost"],"rp":["oc","ost","occ","osc","osto","oco"]},"75":{"input":[1,2,4,7],"tlp":["cosa",19547],"trp":["osta",6879],"tlw":["cosa",13626],"lp":["cosa","fos","foss","acco","cato","sato","asco","caso","sag","sagg","sof","sfo","aco","asto","soff","ssag","asfo"],"rp":["osta","occa","oca"]},"76":{"input":[3,4,7],"tlp":["ro",227920],"trp":["or",269472],"tlw":["ero",2296],"trw":["ore",1264],"lp":["ro","eg","tro","ero","ge","gr","tor","etto","rto","rg","erto","gge","egg","ttor"],"rp":["or","ore","ort","oro","ote","orr"]},"77":{"input":[1,3,4,7],"tlp":["for",26973],"trp":["ora",39990],"tlw":["forte",2002],"trw":["ora",7824],"lp":["for","gra","aro","rag","rato","ega","raga","rof","gar","fort","fro","arg","ator","ragg","rofo","egat","efo"],"rp":["ora","orta","orat"]},"78":{"input":[2,3,4,7],"tlp":["cor",38804],"trp":["ors",15158],"tlw":["stesso",6792],"lp":["cor","esto","rso","erso","seg","sor","rdo","ros","eco","deg","seco","stro","cord","stor","cors"],"rp":["ors","ostr","ord","orse","oce"]},"79":{"input":[1,2,3,4,7],"tlw":["fosse",8373],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",433832],"trw":["un",115533],"lp":[],"rp":["on","no","un","non","uo","ono","nu","uno","nno","nuo","onn","uon","nun","uono","nono","nnu","onno","ou","onu","nuno"]},"81":{"input":[1,5,7],"tlp":["qu",190328],"trp":["ua",132700],"tlw":["qua",1585],"trw":["una",79579],"lp":["qu","qua","ano","quan","anno","au","anqu","annu","quo"],"rp":["ua","una","uan","ona","nqu","unq","unqu","onna","nua","uona","uann"]},"82":{"input":[2,5,7],"tlp":["su",132637],"trp":["us",36612],"tlw":["sono",21614],"trw":["uso",357],"lp":["su","son","suo","sono","ssu","sun","ssun","suno","sus","suon","sson"],"rp":["us","nos","ons","nso","onos","uss","jo","uso","uns"]},"83":{"input":[1,2,5,7],"tlp":["sua",24168],"trp":["uas",6999],"tlw":["sua",23065],"trw":["naso",1168],"lp":["sua","quas","sona","aus","ausa","suna","susa","assu","squ","sano","squa","ssua"],"rp":["uas","usa","usan","onsa","naso","ussa","own","jona"]},"84":{"input":[3,5,7],"tlp":["eno",16301],"trp":["ue",125676],"trw":["oy",212],"lp":["eno","enu","eu","enno","eon","eone"],"rp":["ue","one","onne","une","uen","yo","n-","oy","neo","uone","onen","nue","uy","noe"]},"85":{"input":[1,3,5,7],"tlp":["que",97787],"trp":["nque",9338],"tlw":["que",683],"lp":["que","equ","eque","quen","aneo","enua","aone","eau","aneu","anue"],"rp":["nque","yoa","uane"]},"86":{"input":[2,3,5,7],"tlp":["du",34768],"trp":["ndo",56462],"tlw":["due",12347],"trw":["nessuno",3678],"lp":["du","due","don","endo","donn","essu","enso","sue","edu","dun","sone"],"rp":["ndo","ues","ond","ondo","ud","onde","ude","use","onse"]},"87":{"input":[1,2,3,5,7],"tlw":["quando",17079],"trw":["nessuna",1517],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",92522],"trp":["ut",89032],"tlw":["tutto",14989],"trw":["noto",633],"lp":["tu","tut","gn","tutt","gu","gno","bo"],"rp":["ut","nto","utt","ont","ng","uto","utto","ogn","ob","ub","ngo","not","ung"]},"89":{"input":[1,4,5,7],"tlp":["anto",26642],"trp":["onta",14073],"tlw":["quanto",9498],"trw":["nota",688],"lp":["anto","fu","gua","fon","atu","gna","ang","tua","agn","fuo","bano","aut"],"rp":["onta","uant","uta","utta","nato","natu","onf","uat"]},"90":{"input":[2,4,5,7],"tlp":["con",129147],"trp":["nco",21375],"tlw":["con",65735],"trw":["jung",428],"lp":["con","cu","cont","cun","cono","cons","sogn","scu","stu","cuo","sub","conc"],"rp":["nco","uc","usc","nost","ucc","nosc","ust","onc"]},"91":{"input":[1,2,4,5,7],"tlw":["bocca",2528],"trw":["nascosto",446],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ento",24735],"trp":["ur",55498],"tlw":["tutte",5259],"trw":["notte",3456],"lp":["ento","rno","ru","tur","ron","gen","torn","gnor","gue","egn"],"rp":["ur","orn","nor","ntro","orno","uro","ontr","ure","onte","uor"]},"93":{"input":[1,3,4,5,7],"tlw":["erano",13650],"trw":["natura",2226],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["contro",4167],"trw":["nostro",2381],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["questo",17502],"trw":["nostra",2563],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",292163],"trw":["il",150399],"lp":[],"rp":["ll","io","li","il","ol","lo","llo","olo","oi","lio","lli","oli","ili","oll","ill","ilo","ollo","iol","olli","oio"]},"97":{"input":[1,6,7],"tlp":["al",306120],"trp":["la",389912],"tlw":["al",34419],"trw":["la",169844],"lp":["al","all","zio","alla","azio","ali","zo","allo","zzo","ala","alo","azzo","alz"],"rp":["la","lla","ola","lia","ial","izio","lz"]},"98":{"input":[2,6,7],"tlp":["sol",35720],"trp":["osi",21430],"tlw":["solo",15660],"trw":["los",154],"lp":["sol","solo","sio","ssio","soli","sil","ssol","soll"],"rp":["osi","iso","ossi","ios","ls","lis","isio","ioso","los","ols","lsi","loso"]},"99":{"input":[1,2,6,7],"tlp":["sal",7582],"trp":["las",8686],"tlw":["sola",1804],"trw":["ossia",438],"lp":["sal","sola","als","sali","alsi","alis","zios","sala","asio","wil","wal","salo","will"],"rp":["las","osiz","lass","lsia","iosa","oak","oaki"]},"100":{"input":[3,6,7],"tlp":["el",300307],"trp":["le",283237],"tlw":["el",414],"trw":["le",75413],"lp":["el","ell","elle","ello","elli","ele","eli","elo"],"rp":["le","lle","ile","ole","lei","lie","iel","olle","ielo","ioe","ille","liel"]},"101":{"input":[1,3,6,7],"tlp":["ella",86423],"trp":["iale",6102],"tlw":["alle",8523],"lp":["ella","ale","alle","ela","eal","ezzo","ezio","eale","elai","elaz","eali","aile","alie"],"rp":["iale","lez","lezz","llez","lea","lezi","olez"]},"102":{"input":[2,3,6,7],"tlp":["del",145198],"trp":["ido",5517],"tlw":["del",59660],"trw":["les",352],"lp":["del","dell","dio","dol","sole","sile","dolo","deli","sold"],"rp":["ido","ld","les","odi","oesi","less","old","lid","lse","iod","olse"]},"103":{"input":[1,2,3,6,7],"tlw":["della",49783],"trw":["ideale",372],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["gi",98127],"trp":["lt",89489],"tlw":["gli",38211],"trw":["oggi",2072],"lp":["gi","gl","gli","vo","gio","vol","ggi","volt","glio","ggio"],"rp":["lt","ov","olt","ig","ito","lto","igl","igli","lit","olto"]},"105":{"input":[1,4,6,7],"tlp":["alt",36637],"trp":["lta",24023],"tlw":["volta",7909],"trw":["lato",1361],"lp":["alt","tal","gia","aggi","agi","avo","glia","agl","agli","gaz","val","fig","agaz"],"rp":["lta","olta","ova","lita","iato","lat","lav"]},"106":{"input":[2,4,6,7],"tlp":["col",38715],"trp":["ico",29735],"tlw":["cosi",14686],"lp":["col","cio","cosi","sig","colo","voc","ccol","tico","soci","cl","coll"],"rp":["ico","lc","lic","oci","lco","isto","icol","lcos","icco"]},"107":{"input":[1,2,4,6,7],"tlw":["cavallo",1015],"trw":["lasciato",1193],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rio",23501],"trp":["lor",31885],"tlw":["vero",3849],"trw":["loro",17911],"lp":["rio","egl","egli","rl","rov","gior","evo","tori","rol","trov"],"rp":["lor","ltr","ori","ove","ior","loro","let","lett","ltro","leg"]},"109":{"input":[1,3,4,6,7],"tlw":["allora",5910],"trw":["lavoro",2692],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["dove",7905],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["storia",3176],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["iu",69600],"trw":["lui",16197],"lp":[],"rp":["iu","ion","ui","lu","ul","ino","oni","ull","lui","ho","ioni","uoi","lin","uni","lun","hio","inu","lon","noi","iun"]},"113":{"input":[1,5,6,7],"tlp":["zion",44305],"trp":["ual",34744],"tlw":["qui",6480],"trw":["hanno",4870],"lp":["zion","qual","qui","quin","alu"],"rp":["ual","ulla","nal","lan","nzio","uz","uali","iano","uzi","uzio","onal","iona","inua","inqu","nzo"]},"114":{"input":[2,5,6,7],"tlp":["sul",27914],"trp":["ius",9576],"tlw":["sul",12074],"trw":["john",422],"lp":["sul","sull","sion","suoi","sui","sino","solu"],"rp":["ius","usi","onsi","lus","joh","john","isu","hius","uis","nsio","ussi","usio","isul"]},"115":{"input":[1,2,5,6,7],"tlw":["sulla",9250],"trw":["unknown",242],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"trp":["nel",55639],"tlw":["ellen",168],"trw":["nel",25842],"lp":[],"rp":["nel","ione","uel","uell","nell","len","ulle","uei","ilen","uole","olen","line","ieno","ly","lly","llen","hel","iyo","onie","lien"]},"117":{"input":[1,3,5,6,7],"tlw":["quella",13048],"trw":["nella",18121],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["sulle",3574],"trw":["johnny",2025],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["quindi",2988],"trw":["honda",1391],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bil",19308],"trp":["ing",11351],"tlw":["tutti",11017],"trw":["ogni",9891],"lp":["bil","gni","vu","giu","gin","bl"],"rp":["ing","utti","ign","ogni","uov","ibil","nuov","ult","igno","lib","onti","itu","iut","lung"]},"121":{"input":[1,4,5,6,7],"tlw":["fino",4978],"trw":["lingua",2263],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cui",15060],"trw":["occhi",7963],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["qualcosa",5921],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["giorno",5009],"trw":["intorno",2138],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["avevano",4836],"trw":["labbra",1521],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["vecchio",2836],"trw":["luce",3993],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["qualche",7372],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",38074],"trw":["p",2856],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",53641],"trp":["pa",113853],"tlw":["ap",277],"trw":["pa",1374],"lp":["ap","app","appa","apa"],"rp":["pa","ppa","pap","papa","papp"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",57528],"trp":["ps",391],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["sap",10722],"trp":["pas",13080],"tlw":["spa",392],"trw":["passa",483],"lp":["sap","spa","asp","sapp","aspa","asap","spas"],"rp":["pas","pass","ppas"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",9203],"trp":["pe",210895],"tlw":["e'",746],"trw":["'",1162],"lp":["ep","epp","e'","eppe","epe"],"rp":["pe","'e","ppe","'ep","pep","pepe","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",12996],"trp":["'a",34981],"tlw":["a'",123],"trw":["pae",158],"lp":["ape","appe","epa","a'","epap","a'a","eppa"],"rp":["'a","pae","pea","'ap","'ape","pape","'app","'ex"]},"134":{"input":[2,3,8],"tlp":["spe",21318],"trp":["pes",6844],"tlw":["de'",420],"lp":["spe","d'","esp","spes","s'","espe","s'e","sep","sepp","d'e","sped","d'es","de'"],"rp":["pes","'es","pess","'ess","'esp","ped","ppes"]},"135":{"input":[1,2,3,8],"tlp":["sape",7738],"trp":["pad",5524],"tlw":["spada",415],"trw":["paese",1433],"lp":["sape","d'a","aspe","sepa","spad","dap","dapp","s'a","apes","spea","s'as"],"rp":["pad","paes","pesa","'as","'ass","pada","pade","peda","'asp"]},"136":{"input":[4,8],"tlp":["tp",67],"trp":["pt",593],"trw":["pt",593],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",444],"trp":["pat",3422],"tlw":["tappa",74],"trw":["pat",105],"lp":["tap","tapp"],"rp":["pat","pata","patt","ppat"]},"138":{"input":[2,4,8],"lp":[],"rp":[]},"139":{"input":[1,2,4,8],"tlp":["cap",16620],"trp":["pac",3619],"tlw":["cap",137],"trw":["passata",399],"lp":["cap","capa","apac","capp","scap"],"rp":["pac","past","pasc","pacc","paca"]},"140":{"input":[3,4,8],"tlp":["rp",6335],"trp":["pr",145579],"trw":["per",80117],"lp":["rp","t'","rep","rpr","rpre","rpe"],"rp":["pr","per","pre","pet","'er","pett","pert","pere","ppr","ppre","pete","perr","pret","prep"]},"141":{"input":[1,3,4,8],"tlp":["rap",5944],"trp":["par",50789],"tlw":["aperta",930],"trw":["parte",8500],"lp":["rap","aper","rapp","apr","appr","epar","t'a"],"rp":["par","part","'era","pra","pare","pera","'ar","ppar","perf","prat","para","'art","'at"]},"142":{"input":[2,3,4,8],"tlp":["c'",13326],"trp":["pres",21493],"tlw":["c'e",5387],"trw":["prese",1400],"lp":["c'","c'e","spet","c'er","sper","spec","spr","espr","spre","resp","st'"],"rp":["pres","perc","pers","pec","prec","perd","pecc","'est","pesc"]},"143":{"input":[1,2,3,4,8],"tlw":["c'era",5795],"trw":["padre",3195],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",63764],"trw":["m",580],"lp":[],"rp":["mp","mm","pn","pm"]},"145":{"input":[1,5,8],"tlp":["am",93470],"trp":["ma",209998],"tlw":["ama",245],"trw":["ma",53590],"lp":["am","ama","amm","amp","amma","ampa","aman","anam"],"rp":["ma","man","mma","mpa","pan","mana","mam","nam","mamm","nap","mpan","pann"]},"146":{"input":[2,5,8],"tlp":["sm",3714],"lp":["sm"],"rp":[]},"147":{"input":[1,2,5,8],"tlp":["sam",2868],"trp":["mas",6926],"tlw":["sam",230],"trw":["massa",628],"lp":["sam","asm","sma","asma","ssam"],"rp":["mas","mass","nsap","jam","mpas","njam","pasq","mmas","nasp","nsam"]},"148":{"input":[3,5,8],"tlp":["em",69499],"trp":["me",205039],"trw":["me",9600],"lp":["em","emp","eme","emen","emm","emme"],"rp":["me","men","pen","n'","mme","nem","ppen","mmen","mpe","nemm","nep","m'","mem","nepp"]},"149":{"input":[1,3,5,8],"tlp":["ame",31411],"trp":["pena",4673],"tlw":["appena",3899],"trw":["'na",1029],"lp":["ame","amen","ema","amme","eam","eame","emma"],"rp":["pena","'an","n'a","mane","'am","mae","'ann","nema","'na","name","pane","neam","mame"]},"150":{"input":[2,3,5,8],"tlp":["sem",25705],"trp":["pens",14000],"tlw":["sem",596],"trw":["mese",638],"lp":["sem","semp","esem","spen","sme","dem","ssem"],"rp":["pens","mes","mess","med","pend","mmed","mens","n'es","mese","mped","mede","mmes","mend"]},"151":{"input":[1,2,3,5,8],"tlw":["damane",190],"trw":["pensa",920],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",759],"trp":["mb",24935],"lp":["tm"],"rp":["mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",11090],"trp":["mat",11944],"tlw":["fama",205],"trw":["mat",965],"lp":["tam","amb","fam","bam","bamb","ttam","amat","atam","tamp","amba"],"rp":["mat","matt","mant","mba","ntam","mata","mpat","mmat","pant","mbat"],"special":"numsym"},"154":{"input":[2,4,5,8],"lp":[],"rp":[]},"155":{"input":[1,2,4,5,8],"tlw":["stampa",344],"trw":["manca",395],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",30451],"trp":["ment",73144],"tlw":["be'",1001],"trw":["mentre",7346],"lp":["rm","tem","temp","empr","erm","emb","embr","rme","rem","term","trem"],"rp":["ment","mpr","mpre","mer","mbr","met","mett","pren","ntem"]},"157":{"input":[1,3,4,5,8],"tlw":["entrambe",518],"trw":["mare",1575],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["sempre",11019],"trw":["prendere",1451],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["sembra",1918],"trw":["madre",2851],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",115591],"trw":["pi",1894],"lp":[],"rp":["pi","ip","ipi","ppi","pii","pip","ipp"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",10470],"trp":["pia",13275],"trw":["piazza",530],"lp":["api","appi","apii"],"rp":["pia","paz","pazi","ipa","ppia","pai","pazz","piaz","iap","iapi","ipaz","iapp","pipa","piz","pizz","ppai"]},"162":{"input":[2,6,8],"tlp":["spi",10357],"trp":["isp",11667],"tlw":["spi",83],"lp":["spi"],"rp":["isp","pis","psi","ispi"]},"163":{"input":[1,2,6,8],"tlp":["spia",1284],"trp":["ispa",273],"tlw":["sappia",270],"trw":["passi",1081],"lp":["spia","apis","spaz","sapi","aspi"],"rp":["ispa","pais","isap","pias"]},"164":{"input":[3,6,8],"tlp":["epi",750],"trp":["pie",14120],"trw":["pie",288],"lp":["epi","eppi"],"rp":["pie","'i","ipe","i'","'ip","iep","pei","ppie","iepi","iepe"]},"165":{"input":[1,3,6,8],"tlp":["apie",832],"trp":["pez",2090],"trw":["pezzi",621],"lp":["apie","z'","zz'","ezz'","z'a","ai'"],"rp":["pez","pezz","'az","'azi","'ai"]},"166":{"input":[2,3,6,8],"tlp":["disp",3751],"trp":["pied",3956],"tlw":["spie",208],"trw":["piedi",2995],"lp":["disp","spie","dip","dipe","espi","d'i","dipi","s'i"],"rp":["pied","ispe","pid","'id","'ide","pedi","'esi","'is","pidi","ipes","'edi","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["appesi",112],"trw":["paesi",504],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2675],"trp":["pit",7247],"tlw":["tipi",332],"lp":["tip","tipi"],"rp":["pit","piv","piti","pitt","ipit"]},"169":{"input":[1,4,6,8],"tlp":["apit",4239],"trp":["pita",2661],"trw":["piatti",270],"lp":["apit","apiv","vap"],"rp":["pita","pav","piat","pavi","piva","pati","pava","ipat"]},"170":{"input":[2,4,6,8],"tlp":["cip",5282],"trp":["pic",6757],"tlw":["tipici",78],"lp":["cip","cipi","spit","scip","stip","tisp"],"rp":["pic","picc","pisc","pist","ipic","psic","icip","pick","pici"]},"171":{"input":[1,2,4,6,8],"tlw":["capi",635],"trw":["passava",443],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",3818],"trp":["pri",41676],"tlw":["ripete",508],"trw":["pri",723],"lp":["rip","ripr","ripe","v'","v'e"],"rp":["pri","pir","peri","pev","piri","priv","piet","pire","prie","ipr","ipet","ipre","prir","prev","pier"]},"173":{"input":[1,3,4,6,8],"tlw":["apri",920],"trw":["parti",1322],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["specie",1573],"trw":["presi",303],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["sapeva",2346],"trw":["piacere",1214],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",125525],"trw":["mi",29736],"lp":[],"rp":["mi","im","min","imp","imi","mini","mpi","mmi","imm","nim","mmin","pin","inim","immi","mim","mimi","impi","pini","ph","ipin"]},"177":{"input":[1,5,6,8],"tlp":["ami",11196],"trp":["ima",27754],"tlw":["anima",623],"trw":["mai",10502],"lp":["ami","anim","ammi","ampi"],"rp":["ima","iam","mai","mia","mani","mina","hiam","pian","imma","iama","nima","iman","maz","impa","mazi","manz"]},"178":{"input":[2,5,6,8],"tlp":["sim",7979],"trp":["mis",8876],"tlw":["spin",81],"trw":["misi",410],"lp":["sim","ssim","simi","spin","smi","simp","smis","sism"],"rp":["mis","miss","mmis","ism","pins","misi","nism","imis","jim","mk"]},"179":{"input":[1,2,5,6,8],"tlw":["spina",102],"trw":["massima",364],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["empi",4592],"trp":["ime",13962],"tlw":["ehm",84],"trw":["miei",2459],"lp":["empi","emi"],"rp":["ime","imen","'in","mie","'h","iem","'im","pien","ieme","miei","'imp","impe","imme","h'","mine","ipen","inem","'imm"]},"181":{"input":[1,3,5,6,8],"tlw":["zampe",282],"trw":["piena",963],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["dimmi",325],"trw":["insieme",2565],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["assieme",502],"trw":["pensai",375],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",12886],"trp":["mbi",7548],"tlw":["tim",512],"trw":["miti",105],"lp":["tim","ttim","vim","timi","bim","bimb"],"rp":["mbi","mit","mbin","imit","ntim","imb","pint","mpit","miti","itm","mbit","miv","mith","mpiv"]},"185":{"input":[1,4,5,6,8],"tlw":["bambini",1251],"trw":["mattina",971],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",194],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["amici",1446],"trw":["macchina",1679],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["tempi",1297],"trw":["perrin",1178],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["veramente",1194],"trw":["prima",12710],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["sentimenti",600],"trw":["perche",14386],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["sembrava",3174],"trw":["presenza",1054],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",170696],"trw":["po",1713],"lp":[],"rp":["po","op","opo","ppo","opp","oppo","pop","popo","oop","ppop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",3603],"trp":["opa",1076],"lp":["appo","apo"],"rp":["opa","oppa","pao"]},"194":{"input":[2,7,8],"tlp":["spo",12332],"trp":["pos",30275],"tlw":["spo",162],"trw":["posso",2175],"lp":["spo","spos","sop","sosp","sopp"],"rp":["pos","poss","osp","opos","poso","ppos"]},"195":{"input":[1,2,7,8],"tlp":["sapo",395],"trp":["posa",1234],"tlw":["sposa",181],"trw":["passo",2265],"lp":["sapo","aspo","apos"],"rp":["posa"]},"196":{"input":[3,7,8],"tlp":["epo",996],"trp":["'o",10586],"trw":["po'",5326],"lp":["epo","eop","eppo"],"rp":["'o","ope","o'","poe","po'","'op","'ope","peo","'epo","oppe","oope","opeo","'opp","opee"]},"197":{"input":[1,3,7,8],"tlp":["eopa",82],"trp":["opea",192],"lp":["eopa"],"rp":["opea"]},"198":{"input":[2,3,7,8],"tlp":["dop",11237],"trp":["pose",2787],"tlw":["dopo",9632],"trw":["peso",740],"lp":["dop","dopo","d'o","espo","dopp","depo","epos"],"rp":["pose","poes","ospe","peso","os'","os'e","'od","'os","'odo","pod","opod","pode","'osp"]},"199":{"input":[1,2,3,7,8],"tlw":["appeso",230],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",650],"trp":["pot",22315],"tlw":["topo",171],"lp":["top","topo","ttop"],"rp":["pot","pog","ppog","pogg","pott","opot","ppot","opog"]},"201":{"input":[1,4,7,8],"trp":["pag",5925],"trw":["patto",180],"lp":[],"rp":["pag","paga","pato","opag","pago","ppag"]},"202":{"input":[2,4,7,8],"tlp":["cop",6022],"trp":["post",9448],"tlw":["scopo",742],"trw":["poco",4741],"lp":["cop","scop","copp","copo","coop","spog","cosp"],"rp":["post","poc","poco"]},"203":{"input":[1,2,4,7,8],"tlw":["capo",2162],"trw":["passato",1802],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",21378],"trp":["pro",42777],"tlw":["troppo",4434],"trw":["pero",4668],"lp":["rop","ropr","trop","ropp","rpo","ropo"],"rp":["pro","por","opr","port","pote","prop","oper","pero","'or","orp","potr","ppor","orpo","poet"]},"205":{"input":[1,3,4,7,8],"tlw":["rapporto",1150],"trw":["porta",4253],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corpo",2667],"trw":["presto",1698],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["sopra",3357],"trw":["peccato",398],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",124534],"trw":["puo",6756],"lp":[],"rp":["mo","om","pu","mpo","um","mon","omp","up","uom","mu","omo","puo","pun","uomo","omm","mom","nom","ppu","pon","mun"]},"209":{"input":[1,5,7,8],"tlp":["amo",18506],"trp":["oma",10024],"tlw":["amo",246],"trw":["mano",6828],"lp":["amo","ampo","appu","apu","aum","amon"],"rp":["oma","mano","oman","ompa","uma","uman","pau","upa","munq","omma","napo","mona","uam","nuam"]},"210":{"input":[2,5,7,8],"tlp":["sup",3910],"trp":["mos",4879],"tlw":["sommo",127],"trw":["possono",1433],"lp":["sup","spon","som","smo","somm","sum","spu","ssum","supp","spun"],"rp":["mos","mus","mpos","nsom","moss","pons","moso","nsum","mous","moos"]},"211":{"input":[1,2,5,7,8],"tlw":["somma",313],"trw":["pausa",424],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["empo",10444],"trp":["ome",58690],"trw":["meno",4910],"lp":["empo","emo","eppu"],"rp":["ome","'u","meno","omen","un'","ume","mome","'un","'uo","'uom","nome","upe","nume","umen","omme","n'o","un'o"]},"213":{"input":[1,3,5,7,8],"trw":["umane",290],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["d'un",897],"trw":["modo",7852],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["domanda",1306],"trw":["pensando",468],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",2271],"trp":["punt",7081],"tlw":["tom",318],"trw":["punto",4093],"lp":["tom","tup","gom"],"rp":["punt","mont","omb","potu","pub","pubb","mot","mog","mbo","put","mob","pug","mut","pugn","moto","puto","pont"]},"217":{"input":[1,4,5,7,8],"tlw":["appunto",879],"trw":["punta",775],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["com",539],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["campo",1259],"trw":["manco",711],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["tempo",9244],"trw":["momento",5714],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",2605],"trw":["paura",1888],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["come",44183],"trw":["persone",2066],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["comunque",2203],"trw":["persona",1755],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["poi",14737],"trw":["poi",13201],"lp":[],"rp":["poi","pl","pol","pio","pli","lp","poli","olp","ipo","opol","lpo","olpo","oppi","lpi","olpi","opi","polo","ipio","ppio","ipl"]},"225":{"input":[1,6,7,8],"tlp":["alp",617],"trp":["pal",8270],"trw":["paio",1036],"lp":["alp","apol","alap"],"rp":["pal","pall","pola","paio","pala","ipal","pla","lpa","olpa","poz","pozz","palp","pali","pila","opia","lap","paol"]},"226":{"input":[2,6,7,8],"tlp":["spl",884],"trp":["ispo",7900],"tlw":["spio",684],"trw":["polso",267],"lp":["spl","spio","splo","spli"],"rp":["ispo","posi","ospi","pols","ipos","piso","lpis","plos"]},"227":{"input":[1,2,6,7,8],"tlw":["spazio",928],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["ell'",11381],"trp":["l'",63315],"trw":["pelle",1317],"lp":["ell'","epl","epli"],"rp":["l'","ll'","l'i","l'o","l'e","pel","ll'i","pell","ple","ll'e","ll'o","lpe","'io","l'op","ppel","pelo","olpe"]},"229":{"input":[1,3,6,7,8],"tlw":["appello",93],"trw":["pezzo",996],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["doppio",286],"trw":["poesie",742],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["spalle",2219],"trw":["poesia",1881],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tipo",1710],"trp":["pito",3299],"tlw":["tipo",1710],"trw":["piglio",445],"lp":["tipo","topi","volp"],"rp":["pito","pov","pig","pigl","piog","ipot","polv","polt","lpit","poti","ipig","pogl","piov","lpiv"]},"233":{"input":[1,4,6,7,8],"tlw":["appoggio",268],"trw":["pioggia",738],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["colpo",1583],"trw":["piccolo",2047],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capito",1303],"trw":["piccola",1514],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["proprio",7247],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"trw":["poteva",4863],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["rispose",2477],"trw":["percio",1506],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["capelli",2276],"trw":["particolare",1528],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["piu",40881],"trw":["piu",38322],"lp":[],"rp":["piu","lm","imo","omi","mol","omin","mio","mpl","mil","uomi","impo","ilm","mpli","lim","ompl","ommi","mili","mpio","imil","umi"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["animali",640],"trw":["piano",2006],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simili",901],"trw":["luminoso",184],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["siamo",2506],"trw":["possiamo",953],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["l'uomo",2192],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["almeno",2906],"trw":["mezzo",2952],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["esempio",1778],"trw":["modi",645],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["domani",713],"trw":["posizione",1014],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"trw":["molto",8286],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["abbiamo",2561],"trw":["montalbano",3474],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["comincio",1412],"trw":["piuttosto",1744],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["amico",1691],"trw":["possibilita",1220],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"trw":["meglio",3762],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["finalmente",1303],"trw":["ormai",2373],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["semplice",1455],"trw":["possibile",2609],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["commissario",2277],"trw":["l'unica",795],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/nl-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/nl-keymap.json index 2869e8f77c..4ce0c11bf4 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/nl-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/nl-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",565178],"tlw":["a",1899],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",31510],"tlw":["s",593],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["wa",249084],"tlw":["was",91211],"lp":["wa","as","was","waa","sa","aas","ass","ssa","ws","wass","assa","sw","aw","saa","swa","swaa","ww","awa","awaa","waas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",595701],"tlw":["e",445],"lp":["ee","eee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",9134],"tlw":["x",171],"lp":["ea","ex","ax","ae","xe","xa","eaa","exa","axe","exe"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",835524],"tlw":["de",381576],"lp":["de","es","ed","se","ede","dd","dde","ds","eed","ees","sse","dee","eds","eeds","deed","ess","sd","ese","dse","eede"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",270505],"tlw":["we",27843],"lp":["da","we","ad","wee","daa","ew","ewe","ade","add","adde","eda","wees","ewee","wd","dw","aad","edaa","wde","asse","ada"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",33524],"tlw":["t",381],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",290899],"tlw":["af",9932],"lp":["at","ta","aat","af","ft","taa","fa","ff","taat","taf","att","tat","aaf","aatt","ata","aff","fat","tf","tta","aft"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",260352],"tlw":["c",381],"lp":["st","sc","ts","ct","tst","ssc","cc","stt","tsc","tc","sts","stst","sst","stsc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ac",73946],"tlw":["wat",36195],"lp":["ac","wat","sta","tw","ast","staa","ats","aats","fs","wac","ca","aast","atst","act","afs","tas","fst","twa","fac","tac"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",710975],"tlw":["te",105276],"lp":["er","et","te","re","eer","ter","ere","rt","tr","ete","tte","ert","ree","eet","rte","tre","tee","ett","rr","ette"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",396560],"tlw":["extra",700],"lp":["ar","aar","ra","ef","raa","eef","are","ate","eft","eeft","fe","art","tra","era","ater","fr","rat","ara","afe","ffe"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rd",138895],"tlw":["eerste",6507],"lp":["rd","der","ste","rs","erd","rde","ers","est","dr","ec","erde","dere","ets","rst","eder","erst","eest","eerd","ster","str"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["dat",155858],"tlw":["dat",136467],"lp":["dat","waar","wer","daar","war","fd","ard","weer","ware","werd","rw","erw","twe","twee","dac","aard","dra","fde","weet","ader"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",51105],"trw":["n",1346],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",559245],"trp":["na",127869],"tlw":["aan",55690],"trw":["na",10653],"lp":["an","aan","ann","ana","anna","aann","anaa","aq"],"rp":["na","naa","nna","nan","naan","nnaa"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",9856],"trp":["jn",169981],"trw":["j",357],"lp":["sn","sj"],"rp":["jn","ns","js","nj","jns"]},"19":{"input":[1,2,5],"tlp":["wan",14017],"trp":["ja",31023],"tlw":["san",173],"trw":["ja",6777],"lp":["wan","ans","wann","aans","anw","sna","san","aanw","anj","aj","asj"],"rp":["ja","jaa","jna","nw","naas","jan","jas","jw","nja"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",1522448],"trp":["ne",132761],"tlw":["en",225891],"trw":["nee",4568],"lp":["en","een","ene","enen","enn","enne","enee","ey","eene","eeen"],"rp":["ne","nen","nne","nnen","nee","nnee","neen","ny","nny","yn"]},"21":{"input":[1,3,5],"tlp":["anne",10606],"trp":["ya",413],"tlw":["anne",219],"lp":["anne","ena","ane","enaa","anen","ean","ay","anee","eaan","enan","xan","exan","anny","xy","exy","eq","eena"],"rp":["ya","yan","nane"]},"22":{"input":[2,3,5],"tlp":["den",130605],"trp":["nd",254142],"tlw":["eens",9370],"trw":["je",69369],"lp":["den","ens","end","sen","ende","eden","eens","dden","ssen","ense","sje"],"rp":["nd","nde","je","jd","nden","nse","nsen","jde","jes"]},"23":{"input":[1,2,3,5],"tlp":["and",86982],"trp":["nda",7813],"tlw":["dan",33270],"trw":["new",907],"lp":["and","dan","ande","wen","aand","anda","daan","anse","ands","aden","wens","anwe","wend"],"rp":["nda","nad","ndaa","nwe","nada","nade","ndan"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",17696],"trp":["nt",98660],"tlw":["b",387],"lp":["bb","bt","tb","tn"],"rp":["nt","nb","ntb","ntt"]},"25":{"input":[1,4,5],"tlp":["ant",32323],"trp":["nat",8926],"tlw":["baan",878],"trw":["nat",410],"lp":["ant","ba","taan","tan","baa","ban","ab","anta","aant","tba","anaf","tant","fan","baan","fant"],"rp":["nat","nta","naf","nf","nba"]},"26":{"input":[2,4,5],"tlp":["tj",16496],"trp":["nst",10582],"lp":["tj","bs","sb","stj","stb","tsn"],"rp":["nst","nc","jt","nts","nsc","ntj","jst","jnt","ntst","ntsn","nct","jntj","ntsc","jb"]},"27":{"input":[1,2,4,5],"tlp":["want",6670],"trp":["jf",10865],"tlw":["want",6458],"trw":["naast",3850],"lp":["want","antw","stan","baas","anc","atj","fj","abs","bas","aatj","anst"],"rp":["jf","ntw","nac","jft","jac","nsta","ntac","nanc","ntas"]},"28":{"input":[3,4,5],"tlp":["be",171694],"trp":["nte",12846],"tlw":["ben",10919],"trw":["net",7100],"lp":["be","ten","ren","eb","ben","br","eren","ent","eten","bbe","bben","ebb","ebbe","rb","bee","rn","tten","bet","ber"],"rp":["nte"]},"29":{"input":[1,3,4,5],"tlp":["aren",23808],"trp":["naar",55710],"tlw":["eraan",1152],"trw":["naar",52688],"lp":["aren","aten","ran","rna","bra","arn","aarn","arna","baar","ante","bar","rba","erba","fran","eran","arb","fen","raan","rant"],"rp":["naar"]},"30":{"input":[2,3,4,5],"tlp":["rden",25498],"trp":["nder",65247],"tlw":["beetje",4094],"lp":["rden","bes","tje","bed","sten","best","etj","etje","eetj","tend","cen","rend","besc","cent","enst","tjes"],"rp":["nder","nste","ntje","ndr"]},"31":{"input":[1,2,3,4,5],"tlw":["waren",17010],"trw":["jaar",7230],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",416],"trw":["i",704],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["zi",217546],"trp":["ia",10521],"tlw":["z",113],"lp":["zi","za","ai","zaa","aai","az","azi","zz","zia","azia","zaai","zzi"],"rp":["ia","iz","iaa","iza","izi","izaa","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",19356],"trp":["ik",185103],"trw":["ik",149098],"lp":["si","ssi","sk","sis","ssis"],"rp":["ik","is","kk","ki","iss","ks","ikk","kki","iks","isi","isk","issi","kis","ikki","isis"]},"35":{"input":[1,2,6],"tlp":["wi",80880],"trp":["ka",52225],"tlw":["zaak",1687],"trw":["kaas",199],"lp":["wi","ak","aak","zw","wis","zwa","akk","zak","zaak","wak","zwaa","wakk","zwi"],"rp":["ka","kw","kwa","kaa","ika","kas","kwaa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",112497],"trp":["ie",427576],"tlw":["ei",126],"trw":["ie",333],"lp":["ei","eie","eei"],"rp":["ie","iee"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",250139],"trp":["ize",3585],"tlw":["ze",116542],"lp":["ze","ez","zei","eze","zie","ezi","ezie","zee","aze","aie","eiz","aaie","eza","eize","xi","axi","eiza"],"rp":["ize","iez","ieze"]},"38":{"input":[2,3,6],"tlp":["di",156986],"trp":["ke",180090],"tlw":["die",84576],"trw":["keek",10339],"lp":["di","ek","die","eke","eek","eid","ekk","ekke"],"rp":["ke","id","kke","kee","ide","keek","ied","idd","iede","iek","ies","idde"]},"39":{"input":[1,2,3,6],"tlp":["ake",15537],"tlw":["deze",10880],"trw":["kwaad",950],"lp":["ake","dez","deze","wie","akke","zek","zeke","aid","wei","aaid","aide","wez","wek","ziek","week","zes","zwe","ewi","zake","adi"],"rp":[]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",92155],"trp":["it",127567],"tlw":["tv",365],"trw":["it",435],"lp":["ti","vi","tv","tti","tit","vit","titi","tiv","tivi","viv","tvi","vivi"],"rp":["it","itt","iti","iv","ivi","itv","ivit","itti"]},"41":{"input":[1,4,6],"tlp":["va",224506],"trp":["if",3864],"tlw":["zat",6137],"trw":["if",78],"lp":["va","zit","av","ati","zat","fi","zitt","vaa","tz","fti","ffi","via","tzi","avi","vat","tai"],"rp":["if","ita","itz","ift"]},"42":{"input":[2,4,6],"tlp":["sti",15829],"trp":["ic",74589],"tlw":["vis",333],"trw":["kist",358],"lp":["sti","ci","ck","cti","tis","sit","tisc","vis","tk","tik","sv"],"rp":["ic","kt","ist","issc","ikt","isc","its","ici","kst"]},"43":{"input":[1,2,4,6],"tlp":["zic",46006],"trp":["kat",1851],"tlw":["wist",7236],"trw":["kast",575],"lp":["zic","akt","aakt","wist","vas","vast","twi","wit","vaak","zac","tak","stak","witt","asti","acti","vak","cia","ack"],"rp":["kat","kast"]},"44":{"input":[3,4,6],"tlp":["ve",223463],"trp":["iet",126034],"tlw":["vier",2544],"lp":["ve","ver","ri","ev","vr","eve","tie","rie","eri","vee","rv","vert","erv","vri","rei","vie"],"rp":["iet","ier","ite","itte"]},"45":{"input":[1,3,4,6],"tlp":["ari",10534],"trp":["ief",8550],"tlw":["zette",2378],"lp":["ari","zet","rz","vra","eva","rva","atie","vraa","zett","erz","raai","vera","erva","arv","aarv","ave","verz","aari","var"],"rp":["ief"]},"46":{"input":[2,3,4,6],"tlp":["rk",33984],"trp":["iets",24709],"tlw":["dit",13642],"trw":["iets",14243],"lp":["rk","erk","dit","verd","rek","dri","vers","rke","erke","eker","ric","tek","drie"],"rp":["iets","kte","ker","kr","keer","iste","kri"]},"47":{"input":[1,2,3,4,6],"tlw":["vader",6824],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",343391],"trw":["in",146093],"lp":[],"rp":["in","hi","ni","inn","nin","nh","ini","nni","hin","hn","nnin","inni","inh","hni","hnn","ih","nhi","inin","inhi"]},"49":{"input":[1,5,6],"tlp":["zin",7282],"trp":["ha",212677],"tlw":["zin",2379],"trw":["hanna",165],"lp":["zin","ani","ah","anz","anni","zinn","anh","zan","aanz"],"rp":["ha","haa","han","nz","hz","ina","nzi","ian","inz","nza","nzin"]},"50":{"input":[2,5,6],"trp":["ij",550946],"trw":["hij",131508],"lp":[],"rp":["ij","ijn","hij","jk","ijk","nk","kin","kij","kijk","ji","kn","ink","jij","nis","ins","nik","ijs","kni","hijn","isj"]},"51":{"input":[1,2,5,6],"tlp":["zij",124236],"trp":["kan",22915],"tlw":["zijn",106271],"trw":["kan",12791],"lp":["zij","zijn","wij","ank","win","wijz","wijn","wijs","anks","aank","zwij","wink"],"rp":["kan","jz","ijz","ijna","kans","haas","kaan","kwij"]},"52":{"input":[3,5,6],"tlp":["ein",21712],"trp":["he",426236],"tlw":["eh",524],"trw":["hen",5498],"lp":["ein","eh","eni","eine","ehe","enin","eini","enh"],"rp":["he","nie","ien","hee","hie","inne","hei","ine","hen","heen","hien","nhe"]},"53":{"input":[1,3,5,6],"tlp":["zien",14842],"trp":["nze",8382],"tlw":["zien",8781],"trw":["inzien",116],"lp":["zien","zen","eha","ezen","anie","enz","azen","ezin","ehan","aien","anze","ehaa","enza","eenz","enzi"],"rp":["nze","hze","izen","nzen","hae"]},"54":{"input":[2,3,5,6],"tlp":["eken",22412],"trp":["ken",85243],"tlw":["denk",3418],"trw":["kijken",4068],"lp":["eken","enk","din","denk","enke"],"rp":["ken","ind","ijd","nke","jke","ijke","inde","kken","heid","kind","iend","ndi","nken","kend","ijde"]},"55":{"input":[1,2,3,5,6],"tlw":["weken",1635],"trw":["had",55453],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",59526],"trp":["ht",123626],"tlw":["bh",81],"lp":["bi","th","vin","bin","binn","tin","ttin"],"rp":["ht","hti","int","nti","nv","htt","htin","inti","htb","hit","ntv","ib","nth"]},"57":{"input":[1,4,5,6],"tlp":["van",189387],"trp":["hat",1531],"tlw":["van",171860],"trw":["haat",432],"lp":["van","vana","anti","tha","anv","aanv","anva","fin","ath","anav","abi","fh"],"rp":["hat","nva","nati","htba","inf","nav","hav","haat"]},"58":{"input":[2,4,5,6],"tlp":["ch",268567],"trp":["ich",66755],"tlw":["bij",29299],"trw":["kijkt",1607],"lp":["ch","cht","sch","bij","tij","chi","schi","chti","ssch","vij","bijn","chij"],"rp":["ich","icht","jv","ijv","isch","jkt","ijkt","hts"]},"59":{"input":[1,2,4,5,6],"tlw":["zich",32148],"trw":["kant",2963],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",53110],"trp":["het",230522],"tlw":["even",9723],"trw":["het",226716],"lp":["ven","even","rin","rh","erh","erin","rien","the","verb"],"rp":["het","niet","hte","heb","hter","hebb","her","hten","hier","hr","iten"]},"61":{"input":[1,3,4,5,6],"tlw":["zitten",5880],"trw":["haar",73072],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tijd",8288],"trw":["niets",8728],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["achter",7426],"trw":["hard",1821],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",285058],"trw":["o",2376],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",407],"trp":["oa",7486],"lp":["ao"],"rp":["oa","ooa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",27187],"trp":["os",19065],"tlw":["so",132],"lp":["so","soo","sso"],"rp":["os","oos","oss","oso","osoo"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",53022],"trp":["ow",2105],"lp":["wo","woo","aso","aos","sow","woa"],"rp":["ow","owa","osa","owaa","ossa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",2682],"trp":["oe",232725],"trw":["-",7439],"lp":["eo","e-","eoo","eoe"],"rp":["oe","o-","-o","-oo"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",189],"trp":["-a",938],"lp":["xo","exo","a-","x-","ex-"],"rp":["-a","o-a","ox","oea"]},"70":{"input":[2,3,7],"tlp":["do",77681],"trp":["oed",31676],"tlw":["dood",3509],"lp":["do","doo","doe","dood","edo","so-","edoe","dod","dode","se-"],"rp":["oed","od","oes","oede","ood","ode","-s","ods","ose","oods"]},"71":{"input":[1,2,3,7],"tlp":["ewo",10898],"trp":["oda",3201],"tlw":["woede",613],"lp":["ewo","ewoo","woe","woed","dwo","woes","edwo","ado","so-a","d-a","dow","ados","wod"],"rp":["oda","oew","oewe","owe","-w","-we","oad"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",114612],"trp":["og",71340],"tlw":["tot",16339],"trw":["oog",1205],"lp":["to","go","tot","gt","gg","tg","too","goo","tto","toot","got"],"rp":["og","ot","oot","oog","ott","oto","otto","ogt","oogt"]},"73":{"input":[1,4,7],"tlp":["ag",68842],"trp":["of",61079],"tlw":["gaat",6123],"trw":["of",29931],"lp":["ag","ga","gaa","fo","aag","gaat","gaf","fg","afg","foo","fot","foto","gat","tof","agt","aagt"],"rp":["of","oof","off","oga"]},"74":{"input":[2,4,7],"tlp":["sto",24832],"trp":["oc",27927],"tlw":["stoot",131],"trw":["oogst",77],"lp":["sto","co","toc","gs","gst","sg","stoo","gc","sgc","soc","cto"],"rp":["oc","ots","ost","oots","otst","oost","ogs","oogs","ogst"]},"75":{"input":[1,2,4,7],"tlp":["sof",6578],"trp":["oca",652],"tlw":["stof",570],"lp":["sof","two","twoo","gas","wag","gast","stof","woog","wsg","gw","aco","ags","wog","astg","sag","ssag","twag"],"rp":["oca","ocaa","osof"]},"76":{"input":[3,4,7],"tlp":["ge",441497],"trp":["or",220309],"tlw":["toe",7828],"trw":["oor",713],"lp":["ge","ro","eg","ege","gr","toe","rg","gee","roe","gro","ger","teg","tege","rge","erg"],"rp":["or","oor","oet","oge","oeg"]},"77":{"input":[1,3,4,7],"tlp":["age",21589],"trp":["-f",7172],"tlw":["graag",2369],"lp":["age","aro","aaro","raag","gra","rag","rage","t-f","t-fa","ega","fge","afge","for","graa","arg"],"rp":["-f","-fa","oef","ora","-fo"]},"78":{"input":[2,3,4,7],"tlp":["door",33484],"trp":["ord",50515],"tlw":["door",27762],"lp":["door","gd","ges","goed","ged","gde","egd","dro","gest","rdo","gesc","god","egde"],"rp":["ord","orde","oord","oest","ordt","ors","orst"]},"79":{"input":[1,2,3,4,7],"tlw":["weg",9038],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",217953],"trw":["nu",18377],"lp":[],"rp":["on","ou","no","un","nu","uu","oon","unn","noo","nou","onn","non","ono","nno","nuu","oun","onno","uno","nnu","oonn"]},"81":{"input":[1,5,7],"tlp":["au",17538],"trp":["nau",2224],"tlw":["qua",92],"trw":["oan",54],"lp":["au","ano","anu","qu","qua","anon","anua","aou"],"rp":["nau","ua","ona","onaa","oan","nua","uan","onna","oq","oqu","nao","noa"]},"82":{"input":[2,5,7],"tlp":["su",4221],"trp":["us",37357],"tlw":["suus",122],"trw":["ons",10726],"lp":["su","soon","son","sno"],"rp":["us","jo","ons","ju","jon","uss","jou","nos","ous","joo","uns","usj","jos","oj","osj","jus"]},"83":{"input":[1,2,5,7],"tlp":["woon",7683],"trp":["uw",53486],"tlw":["wou",586],"trw":["uw",2686],"lp":["woon","auw","won","wu","wus","anos","wou","aus","wonn"],"rp":["uw","ouw","nauw","uws","jouw","nwo","nwoo","onw","nuw","uwa","nuwa"]},"84":{"input":[3,5,7],"tlp":["eu",50132],"trp":["oen",39532],"trw":["you",472],"lp":["eu","eno","enoe","eeu","eun","enu","enoo"],"rp":["oen","unne","noe","one","onne","oene","neu","ue","n-","onen","yo","onee","you"]},"85":{"input":[1,3,5,7],"tlp":["eau",2046],"trp":["ux",203],"lp":["eau","que","e-na","equ","eque","enau","xon","an-","ean-","quen","ena-"],"rp":["ux","uxe","-na","oya","-an","o-an","na-","oyaa"]},"86":{"input":[2,3,5,7],"tlp":["du",25835],"trp":["ond",80377],"tlw":["doen",9594],"trw":["oude",3893],"lp":["du","doen","dus","deu","don","eus","edu"],"rp":["ond","onde","ud","oud","ude","oude","uden","usse","nod","udd","udde","oden","oond"]},"87":{"input":[1,2,3,5,7],"tlw":["wonen",867],"trw":["ouwe",411],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",35213],"trp":["ng",141175],"tlw":["boog",1018],"trw":["nog",33780],"lp":["bo","tu","ton","bu","tuu","gon","boo","gu","bou"],"rp":["ng","nog","ont","ong","ut","ug","ob","unt","uto","ub","out"]},"89":{"input":[1,4,5,7],"tlp":["ang",42251],"trp":["natu",6022],"tlw":["gaan",11291],"trw":["nota",126],"lp":["ang","gaan","fon","font","atu","atuu","gan","aut","auto","aang","gang","foon","bang","anto","tua"],"rp":["natu","uf","onta","uff","noga"]},"90":{"input":[2,4,5,7],"tlp":["ston",12659],"trp":["uc",9757],"tlw":["boos",682],"trw":["jong",894],"lp":["ston","stu","tus","tuss","con","cont","stuu","cu","bos","conc"],"rp":["uc","ust","jong","jg","ngs","ngst","onts","jgt","onc","noc"]},"91":{"input":[1,2,4,5,7],"tlw":["angst",1249],"trw":["jacob",378],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",143754],"trp":["ur",56772],"tlw":["toen",23218],"trw":["ogen",8241],"lp":["gen","ru","egen","toen","geen","eur","geb","rou","beg","ron","eru","rug","geno","ggen"],"rp":["ur","nge","ngen","uur","onge","ogen"]},"93":{"input":[1,3,4,5,7],"tlw":["gegaan",1465],"trw":["naartoe",554],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["stond",8649],"trw":["onder",8950],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["worden",11389],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["li",171979],"trw":["l",236],"lp":[],"rp":["li","ll","lo","il","ol","oi","ooi","loo","ill","lli","ili","oll","io","oli","ool","ilo","olo","illi","llo","oil"]},"97":{"input":[1,6,7],"tlp":["al",225980],"trp":["la",129950],"tlw":["zo",26684],"trw":["la",525],"lp":["al","zo","all","aal","zal","zoa","zoal","ali","zoo","zoi"],"rp":["la","laa","oal","oz","lla","olla","ola","ial","laz","lia"]},"98":{"input":[2,6,7],"tlp":["sl",31416],"trp":["ls",78404],"tlw":["slok",358],"trw":["ook",30107],"lp":["sl","slo","sli","sloo"],"rp":["ls","ko","ok","ook","kl","lk","lik","lso","klo","okk","los","lis","olk","loos","kli","koo"]},"99":{"input":[1,2,6,7],"tlp":["als",67283],"trp":["lka",8548],"tlw":["als",51537],"trw":["las",791],"lp":["als","wil","sla","also","will","slaa","wal","wol","alis","zow"],"rp":["lka","lkaa","kla","oals","las","lak","klaa","lw","kal","klas"]},"100":{"input":[3,6,7],"tlp":["el",334993],"trp":["le",209513],"tlw":["el",147],"trw":["leo",319],"lp":["el","eli","ele","eel","ell","elle","elo","eil","eloo"],"rp":["le","lle","lee","lie","oel","lei","iel","llee","ille","loe","oei"]},"101":{"input":[1,3,6,7],"tlp":["alle",39915],"trp":["lez",2818],"tlw":["alle",6909],"trw":["lizzie",74],"lp":["alle","zel","ale","ela","zoe","ezel","ezo","ezoe","zoie","elaa","eal","ziel","ael"],"rp":["lez","oze","leze","laze","iale","oez","lezi"]},"102":{"input":[2,3,6,7],"tlp":["eld",44452],"trp":["ld",72634],"tlw":["elke",2943],"trw":["leek",4071],"lp":["eld","del","elde","elk","deli","els","esl"],"rp":["ld","lde","kel","oek","kle","ild","ilde","les","lles","keli","klei","led","lke"]},"103":{"input":[1,2,3,6,7],"tlw":["wel",21511],"trw":["kale",288],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",141909],"trp":["ig",90099],"tlw":["vol",3408],"trw":["ooit",2846],"lp":["vo","voo","gi","vol","tig","volg","vl","gl","gli"],"rp":["ig","ov","lt","lg","oit","ooit","olg","lig","lti","lot","lit"]},"105":{"input":[1,4,6,7],"tlp":["alt",12700],"trp":["lf",27918],"tlw":["zag",8836],"trw":["laat",4912],"lp":["alt","val","zag","alti","tal","fl","avo","vall","zig","gla","alf","zov","vla","taal","gz"],"rp":["lf","laat","lat","lag","loof"]},"106":{"input":[2,4,6,7],"tlp":["stig",5578],"trp":["lic",9686],"tlw":["stil",1726],"trw":["kost",381],"lp":["stig","slot","stil","col","gis","cl","sig","volk","voc","gist","tok","stok"],"rp":["lic","kig","kkig","okt","lots","kost","koc","lst"]},"107":{"input":[1,2,4,6,7],"tlw":["alsof",6162],"trw":["last",650],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["voor",79011],"trp":["ove",54444],"tlw":["voor",54531],"trw":["over",27647],"lp":["voor","gel","rl","tel","gev","vro","voe","erl","veel","rli","voel","eig","vroe","evo","eige"],"rp":["ove","over","ige","lev","leve"]},"109":{"input":[1,3,4,6,7],"tlw":["zelf",5574],"trw":["later",4901],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["voelde",4707],"trw":["kreeg",3295],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["elkaar",7935],"trw":["laatste",4077],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",114860],"trw":["hun",16526],"lp":[],"rp":["ui","ho","hu","hoo","lu","ul","hui","hou","hun","lin","nl","nooi","lui","nli","ull","hon","lon","ulli","hul","uin"]},"113":{"input":[1,5,6,7],"tlp":["zou",30976],"trp":["lan",39246],"tlw":["zou",25914],"trw":["hal",496],"lp":["zou","zon","zu","zul","zull","zoon","anui"],"rp":["lan","hal","onz","haal","uz","lau","uiz","nal","uzi","nla","nlan","llan","laan"]},"114":{"input":[2,5,6,7],"trp":["lij",77650],"trw":["kon",15534],"lp":[],"rp":["lij","lijk","uis","uk","kon","ku","kun","huis","kunn","jl","ijl","nlij","onk","uik","luk","ukk","jul","luis","jull","link"]},"115":{"input":[1,2,5,6,7],"tlw":["zus",901],"trw":["hals",521],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elen",11125],"trp":["len",43428],"tlw":["ellen",353],"trw":["hoe",13915],"lp":["elen","eho","elu","enl","elin","enli"],"rp":["len","hoe","llen","hel","hele","leen","heel","ieu","nieu","nel","lein","leu","hiel","ly"]},"117":{"input":[1,3,5,6,7],"tlw":["alleen",11766],"trw":["onze",5956],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["snel",4364],"trw":["kunnen",11536],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["zouden",4749],"trw":["nieuwe",3839],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",35668],"trp":["ing",72541],"tlw":["ging",11015],"trw":["uit",32730],"lp":["bl","gin","ging","bli","von","bov","bui","buit","ting","blo","tui","ving","gh"],"rp":["ing","uit","ling","nig","ning","htig","hoog"]},"121":{"input":[1,4,5,6,7],"tlw":["vanuit",1383],"trw":["lang",5446],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["toch",11105],"trw":["kunt",2792],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["blijft",1361],"trw":["langs",3708],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["eigen",5173],"trw":["leven",7694],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["zeggen",6400],"trw":["laten",6557],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["vond",4220],"trw":["krijgen",3495],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["altijd",8787],"trw":["hoofd",7271],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",12540],"trw":["p",961],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",30480],"trp":["pa",44369],"tlw":["aap",260],"trw":["papa",882],"lp":["ap","app","aap","apa","appa"],"rp":["pa","paa","pap","ppa","papa","papp"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",30385],"trp":["ps",2263],"lp":["sp"],"rp":["ps","psp"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",3276],"trp":["pas",6100],"trw":["pas",3162],"lp":["spa","wap","asp","spaa","aps","wsp","wapp"],"rp":["pas","pass","pw","pasp","ppas"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",32631],"trp":["pe",64915],"trw":["'",114697],"lp":["ep","epe","eep","epp","eppe","e'","ee'"],"rp":["pe","ppe","pee","'e","'ee","''","pep","pepe","'p"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["appe",4414],"trp":["'a",772],"trw":["px",303],"lp":["appe","ape","epa","epaa","a'","xp","exp","xpe","expe","apa'"],"rp":["'a","px","pape","pa'"]},"134":{"input":[2,3,8],"tlp":["spe",7419],"trp":["'s",4942],"trw":["'s",2281],"lp":["spe","esp","spee","dp","espe","sep","d'","dep","eps","dpe","d's","epse"],"rp":["'s","'d","pd","'de","pes","pese","pse","ped"]},"135":{"input":[1,2,3,8],"tlp":["wape",918],"trp":["'w",3268],"tlw":["da's",142],"trw":["'we",656],"lp":["wape","a's","aspe","espa","dap","dapp","epas","dpa","da'","ewap"],"rp":["'w","'wa","'da","pad","'we","'waa","pda","padd","'daa","'wee"]},"136":{"input":[4,8],"tlp":["tp",294],"trp":["pt",17059],"trw":["pt",3175],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",4643],"trp":["pat",1164],"trw":["pat",62],"lp":["tap","apt","tapt","tapp","aapt","tpa","tpaa","fp","afp","aafp"],"rp":["pat","patt"]},"138":{"input":[2,4,8],"tlp":["tsp",813],"trp":["pst",986],"lp":["tsp"],"rp":["pst","psc"]},"139":{"input":[1,2,4,8],"tlp":["stap",4318],"trp":["past",1080],"tlw":["stap",923],"trw":["past",219],"lp":["stap","fsp","afsp","tspa","cap","capa","apst","spac","spat"],"rp":["past","psta","pac","pats"]},"140":{"input":[3,4,8],"tlp":["rp",6434],"trp":["pr",39150],"trw":["'t",3159],"lp":["rp","erp","reep","ept","rpe","erpe","rep","epr","epte","repe","eper"],"rp":["pr","per","pre","pte","'t","pet","pper","pete","pree"]},"141":{"input":[1,3,4,8],"tlp":["rap",4098],"trp":["pra",9631],"tlw":["trap",1366],"trw":["paar",6885],"lp":["rap","apte","trap","rapp","tape","rapt","apar","epar","epra"],"rp":["pra","paar","par","prat","praa","part","ppar","para","perf","pera","patr"]},"142":{"input":[2,3,4,8],"tlp":["spr",12727],"trp":["pers",3101],"tlw":["respect",322],"trw":["pers",244],"lp":["spr","spre","espr","spec","rsp","rspr","sper","ersp","cep","cept","tspr","sept"],"rp":["pers","prec","pec","pect","pres","pdr","perd","pste"]},"143":{"input":[1,2,3,4,8],"tlw":["stapte",1114],"trw":["'dat",1386],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",11785],"trw":["m",364],"lp":[],"rp":["mm","mp","nm","pn","pm","np","mn"]},"145":{"input":[1,5,8],"tlp":["am",70985],"trp":["ma",173379],"trw":["man",11151],"lp":["am","aam","amp","ama","amm"],"rp":["ma","maa","man","nam","pan","naam","mann","maan","nap","pann","nma","mam","nmaa","mma","mama"]},"146":{"input":[2,5,8],"tlp":["sm",4193],"trp":["ms",12782],"trw":["ms",164],"lp":["sm","sms"],"rp":["ms","jp","pj","nsp","mpj","nsm","jsm","jm","mps"]},"147":{"input":[1,2,5,8],"tlp":["wam",13717],"trp":["jam",1619],"tlw":["span",501],"trw":["massa",211],"lp":["wam","sam","span","sma","ams","snap","apj","smaa","aams","asm"],"rp":["jam","mas","jasp","jamm","mans","maj","mw","panj","jap","mass"]},"148":{"input":[3,5,8],"tlp":["em",102948],"trp":["me",272103],"tlw":["em",708],"trw":["me",29423],"lp":["em","eme","emen","eem","epen","enm","emm"],"rp":["me","men","mee","pen","'n","mme","ppen","nem","neme","mpe","mene","meen","neem"]},"149":{"input":[1,3,5,8],"tlp":["ema",26711],"trp":["name",3318],"tlw":["aannemen",185],"trw":["mannen",3680],"lp":["ema","ame","emaa","eman","amen","apen","enma","amme","ampe","eam","eema","emma","enam","eaam"],"rp":["name","'ma","'maa","max","pame","'na"]},"150":{"input":[2,3,5,8],"tlp":["emd",5986],"trp":["md",17766],"tlw":["sms'je",55],"trw":["mensen",8143],"lp":["emd","emde","dem","eemd","sme"],"rp":["md","mens","mde","mees","'j","pje","med","mes","pend","jpe","jpen","'je","mede","mend","mden"]},"151":{"input":[1,2,3,5,8],"tlw":["samen",3346],"trw":["maanden",1720],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",3132],"trp":["mt",9354],"trw":["mt",93],"lp":["tm","bm"],"rp":["mt","mb","ntm","mpt","pb","mbt","ntp"]},"153":{"input":[1,4,5,8],"tlp":["fam",4992],"trp":["mat",3403],"tlw":["tam",57],"trw":["maat",316],"lp":["fam","tam","amb","tma","fm","tmaa","amt","aamt","ambt","afm","amat"],"rp":["mat","maat","mant","napt","mba","mf","matt","mfa","mfan"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",234],"trp":["mst",4009],"tlw":["cm",234],"lp":["cm","stm"],"rp":["mst","jpt","ntsp","msc","nstm"]},"155":{"input":[1,2,4,5,8],"tlw":["stam",199],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",26544],"trp":["met",89793],"tlw":["ermee",749],"trw":["met",82919],"lp":["rm","rme","erm","tem","rmee","rmen","reem","bep","erme","temm","emt"],"rp":["met","mer","meer","ment","mete","mmer","mte","mbe","mber"]},"157":{"input":[1,3,4,5,8],"tlw":["armen",1959],"trw":["maar",65784],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["stem",3280],"trw":["meeste",1332],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["waarmee",1313],"trw":["jasper",582],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",15794],"lp":[],"rp":["pi","ip","ipp","ppi","pip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2645],"trp":["pz",1834],"trw":["pizza",62],"lp":["api","appi"],"rp":["pz","papi","pzi","pai","pia","pza","pzaa","piz","pizz"]},"162":{"input":[2,6,8],"tlp":["spi",2906],"trp":["pk",1286],"trw":["pik",322],"lp":["spi"],"rp":["pk","pis","pik","kip","isp","ips","kipp","pikk","kp","ksp","kspi","pki"]},"163":{"input":[1,2,6,8],"tlp":["apk",775],"trp":["pak",6092],"trw":["pak",881],"lp":["apk","aapk","apka","wip"],"rp":["pak","kap","pakk","kapi","pka","pwi","kaps","kapp","ppak","kaap","paki","pkw","pkwa"]},"164":{"input":[3,6,8],"tlp":["epi",821],"trp":["iep",14334],"lp":["epi","eppi"],"rp":["iep","pie","'i","iepe","ippe","ipe","iepi","ppie","pipe","pei","piep","i'"]},"165":{"input":[1,3,6,8],"tlp":["apie",1574],"trp":["'z",1130],"tlw":["appie",556],"trw":["'ze",578],"lp":["apie","z'","zeep","zi'","azi'"],"rp":["'z","'ze","pze","'zi"]},"166":{"input":[2,3,6,8],"tlp":["diep",3859],"trp":["'ik",3806],"tlw":["diep",1774],"trw":["'ik",3806],"lp":["diep","spie","disp","dpi","espi","epk"],"rp":["'ik","'k","'di","'die","'is","pike","ieps","'ki","i's","pke","pkee","peek","piek","iepk"]},"167":{"input":[1,2,3,6,8],"tlw":["zweep",76],"trw":["'wie",183],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",323],"trp":["pit",1634],"tlw":["tip",80],"trw":["pitt",114],"lp":["tip"],"rp":["pit","pv","ipt","pti","pitt","pvi","itp"]},"169":{"input":[1,4,6,8],"tlp":["apit",813],"trp":["pva",678],"lp":["apit","tapi"],"rp":["pva","pati","pvat","pita","itpa"]},"170":{"input":[2,4,6,8],"tlp":["cip",273],"trp":["pitc",623],"tlw":["spits",84],"lp":["cip","stip","spit","scip","tips"],"rp":["pitc","pist","itsp","pisc","ptis","pits","pikt","pic","pick","psti"]},"171":{"input":[1,2,4,6,8],"trw":["pakt",384],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["riep",2691],"trp":["pri",3982],"tlw":["riep",2470],"trw":["piper",395],"lp":["riep","verp","rip","epti","ript"],"rp":["pri","pier","ierp","peri","pite","piet","prei","iper","iept","prie","ipte","perv","ptie","'v","priv"]},"173":{"input":[1,3,4,6,8],"trw":["papier",791],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["spreekt",454],"trw":["precies",2555],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["sprak",1554],"trw":["pakte",1998],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",99056],"trw":["min",402],"lp":[],"rp":["mi","im","min","nmi","mmi","mh","ph","pni","imm","hip","nmin","pin","imp","inm","inmi","mmin","nip","mini","hm","phi"]},"177":{"input":[1,5,6,8],"tlp":["ami",5412],"trp":["hap",4798],"trw":["hap",187],"lp":["ami","zaam","zam","anmi"],"rp":["hap","mani","haam","ham","happ","ima","iam","pha","inam","mai","pani","mah","hamm","hamp","mha","mz"]},"178":{"input":[2,5,6,8],"tlp":["sim",1232],"trp":["mij",56462],"tlw":["spin",52],"trw":["mijn",42155],"lp":["sim","spij","simp","smi"],"rp":["mij","mijn","mis","miss","pij","ijp","pijn","mins","insp","knip","jim","mik","mmis","jimm","pijp","pijk"]},"179":{"input":[1,2,5,6,8],"tlw":["smaak",381],"trw":["kwam",9677],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",1479],"trp":["hem",38924],"tlw":["eph",104],"trw":["hem",36783],"lp":["emi","eim","enmi","emmi","epin"],"rp":["hem","iem","mei","niem","'h","ime","pnie","'he","imme","heim","heme","hep","mhe","impe","meni"]},"181":{"input":[1,3,5,6,8],"tlw":["z'n",1280],"trw":["maxima",176],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"trw":["meisje",3089],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["zwemmen",284],"trw":["maken",6874],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1065],"trp":["imt",1214],"tlw":["tim",122],"trw":["htm",71],"lp":["tim","tmi","timi"],"rp":["imt","mit","itm","ntim","htm","mbi","nipt","mv","mbin","imit","htp","miti","mith","mbit","mitt"]},"185":{"input":[1,4,5,6,8],"tlw":["fatima",79],"trw":["mattia",98],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["schip",1068],"trw":["minst",275],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["tapijt",196],"trw":["maakt",1930],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["evenmin",310],"trw":["'het",1331],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"trw":["manier",3158],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["spreken",1283],"trw":["misschien",7594],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["amerikaanse",726],"trw":["maakte",4198],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",166993],"trw":["op",103035],"lp":[],"rp":["op","po","oop","opp","poo","pop","ppo","popp","opo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",574],"trp":["opa",966],"trw":["opa",532],"lp":["apo","appo"],"rp":["opa","oppa"]},"194":{"input":[2,7,8],"tlp":["spo",2653],"trp":["pos",1438],"trw":["poos",89],"lp":["spo","spoo","sop"],"rp":["pos","ops","poos","oops","pso","opsp","pspo"]},"195":{"input":[1,2,7,8],"tlp":["aspo",191],"trp":["opw",535],"trw":["oppas",51],"lp":["aspo"],"rp":["opw","pow"]},"196":{"input":[3,7,8],"tlp":["eop",278],"trp":["ope",17147],"trw":["'o",439],"lp":["eop","eope","eopo"],"rp":["ope","o'","oep","oppe","oepe","opee","poe","'o","-p","'op","-'","oo'","o-p","pope"]},"197":{"input":[1,3,7,8],"trp":["oepa",84],"lp":[],"rp":["oepa","-pa","o-pa"]},"198":{"input":[2,3,7,8],"tlp":["spoe",469],"trp":["o's",1470],"tlw":["soep",218],"trw":["poes",128],"lp":["spoe","dop","soep","so-p","dope","doop"],"rp":["o's","opd","poed","pod","opes","osep","poes","'do","'doe","oesp","'so","-sp"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",4647],"trp":["pg",6426],"tlw":["top",406],"trw":["pot",229],"lp":["top","topt","topp","gp","gop"],"rp":["pg","opg","opt","oopt","pot","pog","pott","poot","poog","pto","ptop","ogop"]},"201":{"input":[1,4,7,8],"tlp":["apot",426],"trp":["pag",1681],"trw":["pag",94],"lp":["apot","apto","gpa","gaap"],"rp":["pag","pga","opga","pgaa"]},"202":{"input":[2,4,7,8],"tlp":["stop",2723],"trp":["opst",808],"tlw":["stop",253],"trw":["post",353],"lp":["stop","spot","coop","sopg","gops","gsp"],"rp":["opst","post","psto","opsc"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",6839],"trp":["pro",15569],"tlw":["erop",1554],"trw":["poort",291],"lp":["rop","roep","gep","erop","to'","gepr","grep","rope"],"rp":["pro","pge","opge","opte","por","port","orp","poor","oto'","oper","-top","opr"]},"205":{"input":[1,3,4,7,8],"tlw":["gepraat",288],"trw":["page",694],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["dorp",866],"trw":["proces",337],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["waarop",2183],"trw":["professor",384],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",134142],"trw":["om",51031],"lp":[],"rp":["om","mo","moo","mon","pu","mom","um","mu","omm","nom","oom","opn","omp","onm","pun","up","num","muu","umm","numm"]},"209":{"input":[1,5,7,8],"tlp":["amo",374],"trp":["oma",3325],"trw":["oma",579],"lp":["amo","amon","anmo","aup","amu","aom"],"rp":["oma","pano","oman","pau","omaa","omma","opna","mau","opma","moa","onma","napo","naom","mano"]},"210":{"input":[2,5,7,8],"tlp":["som",5660],"trp":["oms",6883],"tlw":["soms",3682],"trw":["joop",104],"lp":["som","soms","somm","spu","sup","smo","spon","spun","sum"],"rp":["oms","mso","opj","mons","mos","mus","joop","nspo","ooms","nopj","pus"]},"211":{"input":[1,2,5,7,8],"trw":["mouw",188],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",3098],"trp":["moe",46854],"trw":["open",4188],"lp":["enom","emo","emoe","epu"],"rp":["moe","ome","omen","open","oem","mome","o'n","noem","nome","omme","oeme","umme","ompe","ume","opme","umen"]},"213":{"input":[1,3,5,7,8],"trw":["opnamen",87],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",313],"trw":["mond",3010],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["samenwonen",65],"trw":["panose-",1128],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",2789],"trp":["mog",5827],"tlw":["boom",593],"trw":["punt",1157],"lp":["tom","tmo","bom","ttom","boom"],"rp":["mog","omt","punt","mot","mg","omg","ontm","ntmo","put","pub","nmog","moto","mob","omb","mput"]},"217":{"input":[1,4,5,7,8],"tlw":["tatum",76],"trw":["mag",2733],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["stom",368],"trw":["muts",127],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["spontaan",128],"trw":["opstaan",213],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["genomen",1400],"trw":["moet",11124],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["roman",605],"trw":["magere",261],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["sprong",808],"trw":["moest",9460],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["waarom",5384],"trw":["omdat",8221],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",22888],"trw":["loop",1091],"lp":[],"rp":["pl","lop","lp","pol","poli","plo","loop","lip","lipp","opl","opi","pli","oplo","pil","lopi","olp","lopp","ipo","pill","ilip"]},"225":{"input":[1,6,7,8],"tlp":["alp",160],"trp":["pla",12933],"trw":["paal",163],"lp":["alp","appl","apl","apol"],"rp":["pla","plaa","lap","laap","opz","paal","opzi","pal","lapp","pzo","opzo","pala","opla","lpla","lpz","lpza"]},"226":{"input":[2,6,7,8],"tlp":["spl",351],"trp":["kop",4373],"tlw":["sloop",153],"trw":["kop",1414],"lp":["spl","slip"],"rp":["kop","klop","koop","posi","plos","opk","pols","kopp","ispl","pko","opko","ikop","kopl","kpl","kopi","pkl","lsp","ilsp"]},"227":{"input":[1,2,6,7,8],"tlw":["slaap",1052],"trw":["klap",617],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",2649],"trp":["liep",7656],"trw":["liep",5744],"lp":["elp","elop","elpe","epl","epel"],"rp":["liep","pel","lope","ple","lpe","peel","pele","ppel","plee","peli","-pi","plei","ielp","ople","pell"]},"229":{"input":[1,3,6,7,8],"tlw":["appel",103],"trw":["'zo",172],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["speelde",689],"trw":["plek",1535],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["slappe",172],"trw":["'als",569],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["glip",148],"trp":["plot",2109],"tlw":["volop",111],"trw":["loopt",1197],"lp":["glip","glop","gpl"],"rp":["plot","pig","opv","lopt","pogi","opig","ppig","pvo","opvo","lpt","pvol","oopv","lipt","opti","potl","igp","ligp"]},"233":{"input":[1,4,6,7,8],"tlw":["afloop",252],"trw":["plat",242],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["pistool",468],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["slaapt",181],"trw":["plaats",3721],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["voorlopig",401],"trw":["politie",1676],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",288],"trw":["plezier",573],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["gesprek",1386],"trw":["periode",563],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["collega's",441],"trw":["opgewekt",248],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mil",7222],"trw":["mooi",1931],"lp":[],"rp":["mil","lim","ml","mooi","iml","liml","lm","hoop","mili","uim","minu","omh","opni","ommi","lom","mho","omho","mhoo","hop","ulp"],"special":"enter"},"241":{"input":[1,5,6,7,8],"trw":["plan",1394],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",579],"trw":["kom",2728],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["wanhoop",258],"trw":["opzij",767],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["lopen",2578],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["allemaal",4589],"trw":["helemaal",5218],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["spelen",1140],"trw":["komen",7764],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["slapen",1278],"trw":["opnieuw",2178],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glimp",157],"trw":["omhoog",1619],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",493],"trw":["langzaam",2034],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["schuim",127],"trw":["komt",4942],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["glimlach",1179],"trw":["lichaam",2366],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["ruimte",1214],"trw":["minuten",1824],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["familie",1891],"trw":["mezelf",1423],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gekomen",2342],"trw":["mogelijk",2546],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["gemaakt",2371],"trw":["mevrouw",2250],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",565178],"tlw":["a",1899],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",31510],"tlw":["s",593],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["wa",249084],"tlw":["was",91211],"lp":["wa","as","was","waa","sa","aas","ass","ssa","ws","wass","assa","sw","aw","saa","swa","swaa","ww","awa","awaa","waas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",595701],"tlw":["e",445],"lp":["ee","eee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",9134],"tlw":["x",171],"lp":["ea","ex","ax","ae","xe","xa","eaa","exa","axe","exe"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",835524],"tlw":["de",381576],"lp":["de","es","ed","se","ede","dd","dde","ds","eed","ees","sse","dee","eds","eeds","deed","ess","sd","ese","dse","eede"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",270505],"tlw":["we",27843],"lp":["da","we","ad","wee","daa","ew","ewe","ade","add","adde","eda","wees","ewee","wd","dw","aad","edaa","wde","asse","ada"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",33524],"tlw":["t",381],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",290899],"tlw":["af",9932],"lp":["at","ta","aat","af","ft","taa","fa","ff","taat","taf","att","tat","aaf","aatt","ata","aff","fat","tf","tta","aft"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",260352],"tlw":["c",381],"lp":["st","sc","ts","ct","tst","ssc","cc","stt","tsc","tc","sts","stst","sst","stsc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ac",73946],"tlw":["wat",36195],"lp":["ac","wat","sta","tw","ast","staa","ats","aats","fs","wac","ca","aast","atst","act","afs","tas","fst","twa","fac","tac"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",710975],"tlw":["te",105276],"lp":["er","et","te","re","eer","ter","ere","rt","tr","ete","tte","ert","ree","eet","rte","tre","tee","ett","rr","ette"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",396560],"tlw":["extra",700],"lp":["ar","aar","ra","ef","raa","eef","are","ate","eft","eeft","fe","art","tra","era","ater","fr","rat","ara","afe","ffe"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rd",138895],"tlw":["eerste",6507],"lp":["rd","der","ste","rs","erd","rde","ers","est","dr","ec","erde","dere","ets","rst","eder","erst","eest","eerd","ster","str"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["dat",155858],"tlw":["dat",136467],"lp":["dat","waar","wer","daar","war","fd","ard","weer","ware","werd","rw","erw","twe","twee","dac","aard","dra","fde","weet","ader"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",51105],"trw":["n",1346],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",559245],"trp":["na",127869],"tlw":["aan",55690],"trw":["na",10653],"lp":["an","aan","ann","ana","anna","aann","anaa","aq"],"rp":["na","naa","nna","nan","naan","nnaa"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",9856],"trp":["jn",169981],"trw":["j",357],"lp":["sn","sj"],"rp":["jn","ns","js","nj","jns"]},"19":{"input":[1,2,5],"tlp":["wan",14017],"trp":["ja",31023],"tlw":["san",173],"trw":["ja",6777],"lp":["wan","ans","wann","aans","anw","sna","san","aanw","anj","aj","asj"],"rp":["ja","jaa","jna","nw","naas","jan","jas","jw","nja"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",1522448],"trp":["ne",132761],"tlw":["en",225891],"trw":["nee",4568],"lp":["en","een","ene","enen","enn","enne","enee","ey","eene","eeen"],"rp":["ne","nen","nne","nnen","nee","nnee","neen","ny","nny","yn"]},"21":{"input":[1,3,5],"tlp":["anne",10606],"trp":["ya",413],"tlw":["anne",219],"lp":["anne","ena","ane","enaa","anen","ean","ay","anee","eaan","enan","xan","exan","anny","xy","exy","eq","eena"],"rp":["ya","yan","nane"]},"22":{"input":[2,3,5],"tlp":["den",130605],"trp":["nd",254142],"tlw":["eens",9370],"trw":["je",69369],"lp":["den","ens","end","sen","ende","eden","eens","dden","ssen","ense","sje"],"rp":["nd","nde","je","jd","nden","nse","nsen","jde","jes"]},"23":{"input":[1,2,3,5],"tlp":["and",86982],"trp":["nda",7813],"tlw":["dan",33270],"trw":["new",907],"lp":["and","dan","ande","wen","aand","anda","daan","anse","ands","aden","wens","anwe","wend"],"rp":["nda","nad","ndaa","nwe","nada","nade","ndan"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",17696],"trp":["nt",98660],"tlw":["b",387],"lp":["bb","bt","tb","tn"],"rp":["nt","nb","ntb","ntt"]},"25":{"input":[1,4,5],"tlp":["ant",32323],"trp":["nat",8926],"tlw":["baan",878],"trw":["nat",410],"lp":["ant","ba","taan","tan","baa","ban","ab","anta","aant","tba","anaf","tant","fan","baan","fant"],"rp":["nat","nta","naf","nf","nba"]},"26":{"input":[2,4,5],"tlp":["tj",16496],"trp":["nst",10582],"lp":["tj","bs","sb","stj","stb","tsn"],"rp":["nst","nc","jt","nts","nsc","ntj","jst","jnt","ntst","ntsn","nct","jntj","ntsc","jb"]},"27":{"input":[1,2,4,5],"tlp":["want",6670],"trp":["jf",10865],"tlw":["want",6458],"trw":["naast",3850],"lp":["want","antw","stan","baas","anc","atj","fj","abs","bas","aatj","anst"],"rp":["jf","ntw","nac","jft","jac","nsta","ntac","nanc","ntas"]},"28":{"input":[3,4,5],"tlp":["be",171694],"trp":["nte",12846],"tlw":["ben",10919],"trw":["net",7100],"lp":["be","ten","ren","eb","ben","br","eren","ent","eten","bbe","bben","ebb","ebbe","rb","bee","rn","tten","bet","ber"],"rp":["nte"]},"29":{"input":[1,3,4,5],"tlp":["aren",23808],"trp":["naar",55710],"tlw":["eraan",1152],"trw":["naar",52688],"lp":["aren","aten","ran","rna","bra","arn","aarn","arna","baar","ante","bar","rba","erba","fran","eran","arb","fen","raan","rant"],"rp":["naar"]},"30":{"input":[2,3,4,5],"tlp":["rden",25498],"trp":["nder",65247],"tlw":["beetje",4094],"lp":["rden","bes","tje","bed","sten","best","etj","etje","eetj","tend","cen","rend","besc","cent","enst","tjes"],"rp":["nder","nste","ntje","ndr"]},"31":{"input":[1,2,3,4,5],"tlw":["waren",17010],"trw":["jaar",7230],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",416],"trw":["i",704],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["zi",217546],"trp":["ia",10521],"tlw":["z",113],"lp":["zi","za","ai","zaa","aai","az","azi","zz","zia","azia","zaai","zzi"],"rp":["ia","iz","iaa","iza","izi","izaa","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",19356],"trp":["ik",185103],"trw":["ik",149098],"lp":["si","ssi","sk","sis","ssis"],"rp":["ik","is","kk","ki","iss","ks","ikk","kki","iks","isi","isk","issi","kis","ikki","isis"]},"35":{"input":[1,2,6],"tlp":["wi",80880],"trp":["ka",52225],"tlw":["zaak",1687],"trw":["kaas",199],"lp":["wi","ak","aak","zw","wis","zwa","akk","zak","zaak","wak","zwaa","wakk","zwi"],"rp":["ka","kw","kwa","kaa","ika","kas","kwaa"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",112497],"trp":["ie",427576],"tlw":["ei",126],"trw":["ie",333],"lp":["ei","eie","eei"],"rp":["ie","iee"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",250139],"trp":["ize",3585],"tlw":["ze",116542],"lp":["ze","ez","zei","eze","zie","ezi","ezie","zee","aze","aie","eiz","aaie","eza","eize","xi","axi","eiza"],"rp":["ize","iez","ieze"]},"38":{"input":[2,3,6],"tlp":["di",156986],"trp":["ke",180090],"tlw":["die",84576],"trw":["keek",10339],"lp":["di","ek","die","eke","eek","eid","ekk","ekke"],"rp":["ke","id","kke","kee","ide","keek","ied","idd","iede","iek","ies","idde"]},"39":{"input":[1,2,3,6],"tlp":["ake",15537],"tlw":["deze",10880],"trw":["kwaad",950],"lp":["ake","dez","deze","wie","akke","zek","zeke","aid","wei","aaid","aide","wez","wek","ziek","week","zes","zwe","ewi","zake","adi"],"rp":[]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",92155],"trp":["it",127567],"tlw":["tv",365],"trw":["it",435],"lp":["ti","vi","tv","tti","tit","vit","titi","tiv","tivi","viv","tvi","vivi"],"rp":["it","itt","iti","iv","ivi","itv","ivit","itti"]},"41":{"input":[1,4,6],"tlp":["va",224506],"trp":["if",3864],"tlw":["zat",6137],"trw":["if",78],"lp":["va","zit","av","ati","zat","fi","zitt","vaa","tz","fti","ffi","via","tzi","avi","vat","tai"],"rp":["if","ita","itz","ift"]},"42":{"input":[2,4,6],"tlp":["sti",15829],"trp":["ic",74589],"tlw":["vis",333],"trw":["kist",358],"lp":["sti","ci","ck","cti","tis","sit","tisc","vis","tk","tik","sv"],"rp":["ic","kt","ist","issc","ikt","isc","its","ici","kst"]},"43":{"input":[1,2,4,6],"tlp":["zic",46006],"trp":["kat",1851],"tlw":["wist",7236],"trw":["kast",575],"lp":["zic","akt","aakt","wist","vas","vast","twi","wit","vaak","zac","tak","stak","witt","asti","acti","vak","cia","ack"],"rp":["kat","kast"]},"44":{"input":[3,4,6],"tlp":["ve",223463],"trp":["iet",126034],"tlw":["vier",2544],"lp":["ve","ver","ri","ev","vr","eve","tie","rie","eri","vee","rv","vert","erv","vri","rei","vie"],"rp":["iet","ier","ite","itte"]},"45":{"input":[1,3,4,6],"tlp":["ari",10534],"trp":["ief",8550],"tlw":["zette",2378],"lp":["ari","zet","rz","vra","eva","rva","atie","vraa","zett","erz","raai","vera","erva","arv","aarv","ave","verz","aari","var"],"rp":["ief"]},"46":{"input":[2,3,4,6],"tlp":["rk",33984],"trp":["iets",24709],"tlw":["dit",13642],"trw":["iets",14243],"lp":["rk","erk","dit","verd","rek","dri","vers","rke","erke","eker","ric","tek","drie"],"rp":["iets","kte","ker","kr","keer","iste","kri"]},"47":{"input":[1,2,3,4,6],"tlw":["vader",6824],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",343391],"trw":["in",146093],"lp":[],"rp":["in","hi","ni","inn","nin","nh","ini","nni","hin","hn","nnin","inni","inh","hni","hnn","ih","nhi","inin","inhi"]},"49":{"input":[1,5,6],"tlp":["zin",7282],"trp":["ha",212677],"tlw":["zin",2379],"trw":["hanna",165],"lp":["zin","ani","ah","anz","anni","zinn","anh","zan","aanz"],"rp":["ha","haa","han","nz","hz","ina","nzi","ian","inz","nza","nzin"]},"50":{"input":[2,5,6],"trp":["ij",550946],"trw":["hij",131508],"lp":[],"rp":["ij","ijn","hij","jk","ijk","nk","kin","kij","kijk","ji","kn","ink","jij","nis","ins","nik","ijs","kni","hijn","isj"]},"51":{"input":[1,2,5,6],"tlp":["zij",124236],"trp":["kan",22915],"tlw":["zijn",106271],"trw":["kan",12791],"lp":["zij","zijn","wij","ank","win","wijz","wijn","wijs","anks","aank","zwij","wink"],"rp":["kan","jz","ijz","ijna","kans","haas","kaan","kwij"]},"52":{"input":[3,5,6],"tlp":["ein",21712],"trp":["he",426236],"tlw":["eh",524],"trw":["hen",5498],"lp":["ein","eh","eni","eine","ehe","enin","eini","enh"],"rp":["he","nie","ien","hee","hie","inne","hei","ine","hen","heen","hien","nhe"]},"53":{"input":[1,3,5,6],"tlp":["zien",14842],"trp":["nze",8382],"tlw":["zien",8781],"trw":["inzien",116],"lp":["zien","zen","eha","ezen","anie","enz","azen","ezin","ehan","aien","anze","ehaa","enza","eenz","enzi"],"rp":["nze","hze","izen","nzen","hae"]},"54":{"input":[2,3,5,6],"tlp":["eken",22412],"trp":["ken",85243],"tlw":["denk",3418],"trw":["kijken",4068],"lp":["eken","enk","din","denk","enke"],"rp":["ken","ind","ijd","nke","jke","ijke","inde","kken","heid","kind","iend","ndi","nken","kend","ijde"]},"55":{"input":[1,2,3,5,6],"tlw":["weken",1635],"trw":["had",55453],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",59526],"trp":["ht",123626],"tlw":["bh",81],"lp":["bi","th","vin","bin","binn","tin","ttin"],"rp":["ht","hti","int","nti","nv","htt","htin","inti","htb","hit","ntv","ib","nth"]},"57":{"input":[1,4,5,6],"tlp":["van",189387],"trp":["hat",1531],"tlw":["van",171860],"trw":["haat",432],"lp":["van","vana","anti","tha","anv","aanv","anva","fin","ath","anav","abi","fh"],"rp":["hat","nva","nati","htba","inf","nav","hav","haat"]},"58":{"input":[2,4,5,6],"tlp":["ch",268567],"trp":["ich",66755],"tlw":["bij",29299],"trw":["kijkt",1607],"lp":["ch","cht","sch","bij","tij","chi","schi","chti","ssch","vij","bijn","chij"],"rp":["ich","icht","jv","ijv","isch","jkt","ijkt","hts"]},"59":{"input":[1,2,4,5,6],"tlw":["zich",32148],"trw":["kant",2963],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",53110],"trp":["het",230522],"tlw":["even",9723],"trw":["het",226716],"lp":["ven","even","rin","rh","erh","erin","rien","the","verb"],"rp":["het","niet","hte","heb","hter","hebb","her","hten","hier","hr","iten"]},"61":{"input":[1,3,4,5,6],"tlw":["zitten",5880],"trw":["haar",73072],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tijd",8288],"trw":["niets",8728],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["achter",7426],"trw":["hard",1821],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",285058],"trw":["o",2376],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",407],"trp":["oa",7486],"lp":["ao"],"rp":["oa","ooa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",27187],"trp":["os",19065],"tlw":["so",132],"lp":["so","soo","sso"],"rp":["os","oos","oss","oso","osoo"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",53022],"trp":["ow",2105],"lp":["wo","woo","aso","aos","sow","woa"],"rp":["ow","owa","osa","owaa","ossa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",2682],"trp":["oe",232725],"trw":["-",7439],"lp":["eo","e-","eoo","eoe"],"rp":["oe","o-","-o","-oo"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",189],"trp":["-a",938],"lp":["xo","exo","a-","x-","ex-"],"rp":["-a","o-a","ox","oea"]},"70":{"input":[2,3,7],"tlp":["do",77681],"trp":["oed",31676],"tlw":["dood",3509],"lp":["do","doo","doe","dood","edo","so-","edoe","dod","dode","se-"],"rp":["oed","od","oes","oede","ood","ode","-s","ods","ose","oods"]},"71":{"input":[1,2,3,7],"tlp":["ewo",10898],"trp":["oda",3201],"tlw":["woede",613],"lp":["ewo","ewoo","woe","woed","dwo","woes","edwo","ado","so-a","d-a","dow","ados","wod"],"rp":["oda","oew","oewe","owe","-w","-we","oad"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",114612],"trp":["og",71340],"tlw":["tot",16339],"trw":["oog",1205],"lp":["to","go","tot","gt","gg","tg","too","goo","tto","toot","got"],"rp":["og","ot","oot","oog","ott","oto","otto","ogt","oogt"]},"73":{"input":[1,4,7],"tlp":["ag",68842],"trp":["of",61079],"tlw":["gaat",6123],"trw":["of",29931],"lp":["ag","ga","gaa","fo","aag","gaat","gaf","fg","afg","foo","fot","foto","gat","tof","agt","aagt"],"rp":["of","oof","off","oga"]},"74":{"input":[2,4,7],"tlp":["sto",24832],"trp":["oc",27927],"tlw":["stoot",131],"trw":["oogst",77],"lp":["sto","co","toc","gs","gst","sg","stoo","gc","sgc","soc","cto"],"rp":["oc","ots","ost","oots","otst","oost","ogs","oogs","ogst"]},"75":{"input":[1,2,4,7],"tlp":["sof",6578],"trp":["oca",652],"tlw":["stof",570],"lp":["sof","two","twoo","gas","wag","gast","stof","woog","wsg","gw","aco","ags","wog","astg","sag","ssag","twag"],"rp":["oca","ocaa","osof"]},"76":{"input":[3,4,7],"tlp":["ge",441497],"trp":["or",220309],"tlw":["toe",7828],"trw":["oor",713],"lp":["ge","ro","eg","ege","gr","toe","rg","gee","roe","gro","ger","teg","tege","rge","erg"],"rp":["or","oor","oet","oge","oeg"]},"77":{"input":[1,3,4,7],"tlp":["age",21589],"trp":["-f",7172],"tlw":["graag",2369],"lp":["age","aro","aaro","raag","gra","rag","rage","t-f","t-fa","ega","fge","afge","for","graa","arg"],"rp":["-f","-fa","oef","ora","-fo"]},"78":{"input":[2,3,4,7],"tlp":["door",33484],"trp":["ord",50515],"tlw":["door",27762],"lp":["door","gd","ges","goed","ged","gde","egd","dro","gest","rdo","gesc","god","egde"],"rp":["ord","orde","oord","oest","ordt","ors","orst"]},"79":{"input":[1,2,3,4,7],"tlw":["weg",9038],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",217953],"trw":["nu",18377],"lp":[],"rp":["on","ou","no","un","nu","uu","oon","unn","noo","nou","onn","non","ono","nno","nuu","oun","onno","uno","nnu","oonn"]},"81":{"input":[1,5,7],"tlp":["au",17538],"trp":["nau",2224],"tlw":["qua",92],"trw":["oan",54],"lp":["au","ano","anu","qu","qua","anon","anua","aou"],"rp":["nau","ua","ona","onaa","oan","nua","uan","onna","oq","oqu","nao","noa"]},"82":{"input":[2,5,7],"tlp":["su",4221],"trp":["us",37357],"tlw":["suus",122],"trw":["ons",10726],"lp":["su","soon","son","sno"],"rp":["us","jo","ons","ju","jon","uss","jou","nos","ous","joo","uns","usj","jos","oj","osj","jus"]},"83":{"input":[1,2,5,7],"tlp":["woon",7683],"trp":["uw",53486],"tlw":["wou",586],"trw":["uw",2686],"lp":["woon","auw","won","wu","wus","anos","wou","aus","wonn"],"rp":["uw","ouw","nauw","uws","jouw","nwo","nwoo","onw","nuw","uwa","nuwa"]},"84":{"input":[3,5,7],"tlp":["eu",50132],"trp":["oen",39532],"trw":["you",472],"lp":["eu","eno","enoe","eeu","eun","enu","enoo"],"rp":["oen","unne","noe","one","onne","oene","neu","ue","n-","onen","yo","onee","you"]},"85":{"input":[1,3,5,7],"tlp":["eau",2046],"trp":["ux",203],"lp":["eau","que","e-na","equ","eque","enau","xon","an-","ean-","quen","ena-"],"rp":["ux","uxe","-na","oya","-an","o-an","na-","oyaa"]},"86":{"input":[2,3,5,7],"tlp":["du",25835],"trp":["ond",80377],"tlw":["doen",9594],"trw":["oude",3893],"lp":["du","doen","dus","deu","don","eus","edu"],"rp":["ond","onde","ud","oud","ude","oude","uden","usse","nod","udd","udde","oden","oond"]},"87":{"input":[1,2,3,5,7],"tlw":["wonen",867],"trw":["ouwe",411],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",35213],"trp":["ng",141175],"tlw":["boog",1018],"trw":["nog",33780],"lp":["bo","tu","ton","bu","tuu","gon","boo","gu","bou"],"rp":["ng","nog","ont","ong","ut","ug","ob","unt","uto","ub","out"]},"89":{"input":[1,4,5,7],"tlp":["ang",42251],"trp":["natu",6022],"tlw":["gaan",11291],"trw":["nota",126],"lp":["ang","gaan","fon","font","atu","atuu","gan","aut","auto","aang","gang","foon","bang","anto","tua"],"rp":["natu","uf","onta","uff","noga"]},"90":{"input":[2,4,5,7],"tlp":["ston",12659],"trp":["uc",9757],"tlw":["boos",682],"trw":["jong",894],"lp":["ston","stu","tus","tuss","con","cont","stuu","cu","bos","conc"],"rp":["uc","ust","jong","jg","ngs","ngst","onts","jgt","onc","noc"]},"91":{"input":[1,2,4,5,7],"tlw":["angst",1249],"trw":["jacob",378],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",143754],"trp":["ur",56772],"tlw":["toen",23218],"trw":["ogen",8241],"lp":["gen","ru","egen","toen","geen","eur","geb","rou","beg","ron","eru","rug","geno","ggen"],"rp":["ur","nge","ngen","uur","onge","ogen"]},"93":{"input":[1,3,4,5,7],"tlw":["gegaan",1465],"trw":["naartoe",554],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["stond",8649],"trw":["onder",8950],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["worden",11389],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["li",171979],"trw":["l",236],"lp":[],"rp":["li","ll","lo","il","ol","oi","ooi","loo","ill","lli","ili","oll","io","oli","ool","ilo","olo","illi","llo","oil"]},"97":{"input":[1,6,7],"tlp":["al",225980],"trp":["la",129950],"tlw":["zo",26684],"trw":["la",525],"lp":["al","zo","all","aal","zal","zoa","zoal","ali","zoo","zoi"],"rp":["la","laa","oal","oz","lla","olla","ola","ial","laz","lia"]},"98":{"input":[2,6,7],"tlp":["sl",31416],"trp":["ls",78404],"tlw":["slok",358],"trw":["ook",30107],"lp":["sl","slo","sli","sloo"],"rp":["ls","ko","ok","ook","kl","lk","lik","lso","klo","okk","los","lis","olk","loos","kli","koo"]},"99":{"input":[1,2,6,7],"tlp":["als",67283],"trp":["lka",8548],"tlw":["als",51537],"trw":["las",791],"lp":["als","wil","sla","also","will","slaa","wal","wol","alis","zow"],"rp":["lka","lkaa","kla","oals","las","lak","klaa","lw","kal","klas"]},"100":{"input":[3,6,7],"tlp":["el",334993],"trp":["le",209513],"tlw":["el",147],"trw":["leo",319],"lp":["el","eli","ele","eel","ell","elle","elo","eil","eloo"],"rp":["le","lle","lee","lie","oel","lei","iel","llee","ille","loe","oei"]},"101":{"input":[1,3,6,7],"tlp":["alle",39915],"trp":["lez",2818],"tlw":["alle",6909],"trw":["lizzie",74],"lp":["alle","zel","ale","ela","zoe","ezel","ezo","ezoe","zoie","elaa","eal","ziel","ael"],"rp":["lez","oze","leze","laze","iale","oez","lezi"]},"102":{"input":[2,3,6,7],"tlp":["eld",44452],"trp":["ld",72634],"tlw":["elke",2943],"trw":["leek",4071],"lp":["eld","del","elde","elk","deli","els","esl"],"rp":["ld","lde","kel","oek","kle","ild","ilde","les","lles","keli","klei","led","lke"]},"103":{"input":[1,2,3,6,7],"tlw":["wel",21511],"trw":["kale",288],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",141909],"trp":["ig",90099],"tlw":["vol",3408],"trw":["ooit",2846],"lp":["vo","voo","gi","vol","tig","volg","vl","gl","gli"],"rp":["ig","ov","lt","lg","oit","ooit","olg","lig","lti","lot","lit"]},"105":{"input":[1,4,6,7],"tlp":["alt",12700],"trp":["lf",27918],"tlw":["zag",8836],"trw":["laat",4912],"lp":["alt","val","zag","alti","tal","fl","avo","vall","zig","gla","alf","zov","vla","taal","gz"],"rp":["lf","laat","lat","lag","loof"]},"106":{"input":[2,4,6,7],"tlp":["stig",5578],"trp":["lic",9686],"tlw":["stil",1726],"trw":["kost",381],"lp":["stig","slot","stil","col","gis","cl","sig","volk","voc","gist","tok","stok"],"rp":["lic","kig","kkig","okt","lots","kost","koc","lst"]},"107":{"input":[1,2,4,6,7],"tlw":["alsof",6162],"trw":["last",650],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["voor",79011],"trp":["ove",54444],"tlw":["voor",54531],"trw":["over",27647],"lp":["voor","gel","rl","tel","gev","vro","voe","erl","veel","rli","voel","eig","vroe","evo","eige"],"rp":["ove","over","ige","lev","leve"]},"109":{"input":[1,3,4,6,7],"tlw":["zelf",5574],"trw":["later",4901],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["voelde",4707],"trw":["kreeg",3295],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["elkaar",7935],"trw":["laatste",4077],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ui",114860],"trw":["hun",16526],"lp":[],"rp":["ui","ho","hu","hoo","lu","ul","hui","hou","hun","lin","nl","nooi","lui","nli","ull","hon","lon","ulli","hul","uin"]},"113":{"input":[1,5,6,7],"tlp":["zou",30976],"trp":["lan",39246],"tlw":["zou",25914],"trw":["hal",496],"lp":["zou","zon","zu","zul","zull","zoon","anui"],"rp":["lan","hal","onz","haal","uz","lau","uiz","nal","uzi","nla","nlan","llan","laan"]},"114":{"input":[2,5,6,7],"trp":["lij",77650],"trw":["kon",15534],"lp":[],"rp":["lij","lijk","uis","uk","kon","ku","kun","huis","kunn","jl","ijl","nlij","onk","uik","luk","ukk","jul","luis","jull","link"]},"115":{"input":[1,2,5,6,7],"tlw":["zus",901],"trw":["hals",521],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elen",11125],"trp":["len",43428],"tlw":["ellen",353],"trw":["hoe",13915],"lp":["elen","eho","elu","enl","elin","enli"],"rp":["len","hoe","llen","hel","hele","leen","heel","ieu","nieu","nel","lein","leu","hiel","ly"]},"117":{"input":[1,3,5,6,7],"tlw":["alleen",11766],"trw":["onze",5956],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["snel",4364],"trw":["kunnen",11536],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["zouden",4749],"trw":["nieuwe",3839],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",35668],"trp":["ing",72541],"tlw":["ging",11015],"trw":["uit",32730],"lp":["bl","gin","ging","bli","von","bov","bui","buit","ting","blo","tui","ving","gh"],"rp":["ing","uit","ling","nig","ning","htig","hoog"]},"121":{"input":[1,4,5,6,7],"tlw":["vanuit",1383],"trw":["lang",5446],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["toch",11105],"trw":["kunt",2792],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["blijft",1361],"trw":["langs",3708],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["eigen",5173],"trw":["leven",7694],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["zeggen",6400],"trw":["laten",6557],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["vond",4220],"trw":["krijgen",3495],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["altijd",8787],"trw":["hoofd",7271],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",12540],"trw":["p",961],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",30480],"trp":["pa",44369],"tlw":["aap",260],"trw":["papa",882],"lp":["ap","app","aap","apa","appa"],"rp":["pa","paa","pap","ppa","papa","papp"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",30385],"trp":["ps",2263],"lp":["sp"],"rp":["ps","psp"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",3276],"trp":["pas",6100],"trw":["pas",3162],"lp":["spa","wap","asp","spaa","aps","wsp","wapp"],"rp":["pas","pass","pw","pasp","ppas"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",32631],"trp":["pe",64915],"trw":["'",114697],"lp":["ep","epe","eep","epp","eppe","e'","ee'"],"rp":["pe","ppe","pee","'e","'ee","''","pep","pepe","'p"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["appe",4414],"trp":["'a",772],"trw":["px",303],"lp":["appe","ape","epa","epaa","a'","xp","exp","xpe","expe","apa'"],"rp":["'a","px","pape","pa'"]},"134":{"input":[2,3,8],"tlp":["spe",7419],"trp":["'s",4942],"trw":["'s",2281],"lp":["spe","esp","spee","dp","espe","sep","d'","dep","eps","dpe","d's","epse"],"rp":["'s","'d","pd","'de","pes","pese","pse","ped"]},"135":{"input":[1,2,3,8],"tlp":["wape",918],"trp":["'w",3268],"tlw":["da's",142],"trw":["'we",656],"lp":["wape","a's","aspe","espa","dap","dapp","epas","dpa","da'","ewap"],"rp":["'w","'wa","'da","pad","'we","'waa","pda","padd","'daa","'wee"]},"136":{"input":[4,8],"tlp":["tp",294],"trp":["pt",17059],"trw":["pt",3175],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",4643],"trp":["pat",1164],"trw":["pat",62],"lp":["tap","apt","tapt","tapp","aapt","tpa","tpaa","fp","afp","aafp"],"rp":["pat","patt"]},"138":{"input":[2,4,8],"tlp":["tsp",813],"trp":["pst",986],"lp":["tsp"],"rp":["pst","psc"]},"139":{"input":[1,2,4,8],"tlp":["stap",4318],"trp":["past",1080],"tlw":["stap",923],"trw":["past",219],"lp":["stap","fsp","afsp","tspa","cap","capa","apst","spac","spat"],"rp":["past","psta","pac","pats"]},"140":{"input":[3,4,8],"tlp":["rp",6434],"trp":["pr",39150],"trw":["'t",3159],"lp":["rp","erp","reep","ept","rpe","erpe","rep","epr","epte","repe","eper"],"rp":["pr","per","pre","pte","'t","pet","pper","pete","pree"]},"141":{"input":[1,3,4,8],"tlp":["rap",4098],"trp":["pra",9631],"tlw":["trap",1366],"trw":["paar",6885],"lp":["rap","apte","trap","rapp","tape","rapt","apar","epar","epra"],"rp":["pra","paar","par","prat","praa","part","ppar","para","perf","pera","patr"]},"142":{"input":[2,3,4,8],"tlp":["spr",12727],"trp":["pers",3101],"tlw":["respect",322],"trw":["pers",244],"lp":["spr","spre","espr","spec","rsp","rspr","sper","ersp","cep","cept","tspr","sept"],"rp":["pers","prec","pec","pect","pres","pdr","perd","pste"]},"143":{"input":[1,2,3,4,8],"tlw":["stapte",1114],"trw":["'dat",1386],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",11785],"trw":["m",364],"lp":[],"rp":["mm","mp","nm","pn","pm","np","mn"]},"145":{"input":[1,5,8],"tlp":["am",70985],"trp":["ma",173379],"trw":["man",11151],"lp":["am","aam","amp","ama","amm"],"rp":["ma","maa","man","nam","pan","naam","mann","maan","nap","pann","nma","mam","nmaa","mma","mama"]},"146":{"input":[2,5,8],"tlp":["sm",4193],"trp":["ms",12782],"trw":["ms",164],"lp":["sm","sms"],"rp":["ms","jp","pj","nsp","mpj","nsm","jsm","jm","mps"]},"147":{"input":[1,2,5,8],"tlp":["wam",13717],"trp":["jam",1619],"tlw":["span",501],"trw":["massa",211],"lp":["wam","sam","span","sma","ams","snap","apj","smaa","aams","asm"],"rp":["jam","mas","jasp","jamm","mans","maj","mw","panj","jap","mass"]},"148":{"input":[3,5,8],"tlp":["em",102948],"trp":["me",272103],"tlw":["em",708],"trw":["me",29423],"lp":["em","eme","emen","eem","epen","enm","emm"],"rp":["me","men","mee","pen","'n","mme","ppen","nem","neme","mpe","mene","meen","neem"]},"149":{"input":[1,3,5,8],"tlp":["ema",26711],"trp":["name",3318],"tlw":["aannemen",185],"trw":["mannen",3680],"lp":["ema","ame","emaa","eman","amen","apen","enma","amme","ampe","eam","eema","emma","enam","eaam"],"rp":["name","'ma","'maa","max","pame","'na"]},"150":{"input":[2,3,5,8],"tlp":["emd",5986],"trp":["md",17766],"tlw":["sms'je",55],"trw":["mensen",8143],"lp":["emd","emde","dem","eemd","sme"],"rp":["md","mens","mde","mees","'j","pje","med","mes","pend","jpe","jpen","'je","mede","mend","mden"]},"151":{"input":[1,2,3,5,8],"tlw":["samen",3346],"trw":["maanden",1720],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",3132],"trp":["mt",9354],"trw":["mt",93],"lp":["tm","bm"],"rp":["mt","mb","ntm","mpt","pb","mbt","ntp"]},"153":{"input":[1,4,5,8],"tlp":["fam",4992],"trp":["mat",3403],"tlw":["tam",57],"trw":["maat",316],"lp":["fam","tam","amb","tma","fm","tmaa","amt","aamt","ambt","afm","amat"],"rp":["mat","maat","mant","napt","mba","mf","matt","mfa","mfan"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",234],"trp":["mst",4009],"tlw":["cm",234],"lp":["cm","stm"],"rp":["mst","jpt","ntsp","msc","nstm"]},"155":{"input":[1,2,4,5,8],"tlw":["stam",199],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",26544],"trp":["met",89793],"tlw":["ermee",749],"trw":["met",82919],"lp":["rm","rme","erm","tem","rmee","rmen","reem","bep","erme","temm","emt"],"rp":["met","mer","meer","ment","mete","mmer","mte","mbe","mber"]},"157":{"input":[1,3,4,5,8],"tlw":["armen",1959],"trw":["maar",65784],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["stem",3280],"trw":["meeste",1332],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["waarmee",1313],"trw":["jasper",582],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",15794],"lp":[],"rp":["pi","ip","ipp","ppi","pip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2645],"trp":["pz",1834],"trw":["pizza",62],"lp":["api","appi"],"rp":["pz","papi","pzi","pai","pia","pza","pzaa","piz","pizz"]},"162":{"input":[2,6,8],"tlp":["spi",2906],"trp":["pk",1286],"trw":["pik",322],"lp":["spi"],"rp":["pk","pis","pik","kip","isp","ips","kipp","pikk","kp","ksp","kspi","pki"]},"163":{"input":[1,2,6,8],"tlp":["apk",775],"trp":["pak",6092],"trw":["pak",881],"lp":["apk","aapk","apka","wip"],"rp":["pak","kap","pakk","kapi","pka","pwi","kaps","kapp","ppak","kaap","paki","pkw","pkwa"]},"164":{"input":[3,6,8],"tlp":["epi",821],"trp":["iep",14334],"lp":["epi","eppi"],"rp":["iep","pie","'i","iepe","ippe","ipe","iepi","ppie","pipe","pei","piep","i'"]},"165":{"input":[1,3,6,8],"tlp":["apie",1574],"trp":["'z",1130],"tlw":["appie",556],"trw":["'ze",578],"lp":["apie","z'","zeep","zi'","azi'"],"rp":["'z","'ze","pze","'zi"]},"166":{"input":[2,3,6,8],"tlp":["diep",3859],"trp":["'ik",3806],"tlw":["diep",1774],"trw":["'ik",3806],"lp":["diep","spie","disp","dpi","espi","epk"],"rp":["'ik","'k","'di","'die","'is","pike","ieps","'ki","i's","pke","pkee","peek","piek","iepk"]},"167":{"input":[1,2,3,6,8],"tlw":["zweep",76],"trw":["'wie",183],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",323],"trp":["pit",1634],"tlw":["tip",80],"trw":["pitt",114],"lp":["tip"],"rp":["pit","pv","ipt","pti","pitt","pvi","itp"]},"169":{"input":[1,4,6,8],"tlp":["apit",813],"trp":["pva",678],"lp":["apit","tapi"],"rp":["pva","pati","pvat","pita","itpa"]},"170":{"input":[2,4,6,8],"tlp":["cip",273],"trp":["pitc",623],"tlw":["spits",84],"lp":["cip","stip","spit","scip","tips"],"rp":["pitc","pist","itsp","pisc","ptis","pits","pikt","pic","pick","psti"]},"171":{"input":[1,2,4,6,8],"trw":["pakt",384],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["riep",2691],"trp":["pri",3982],"tlw":["riep",2470],"trw":["piper",395],"lp":["riep","verp","rip","epti","ript"],"rp":["pri","pier","ierp","peri","pite","piet","prei","iper","iept","prie","ipte","perv","ptie","'v","priv"]},"173":{"input":[1,3,4,6,8],"trw":["papier",791],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["spreekt",454],"trw":["precies",2555],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["sprak",1554],"trw":["pakte",1998],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",99056],"trw":["min",402],"lp":[],"rp":["mi","im","min","nmi","mmi","mh","ph","pni","imm","hip","nmin","pin","imp","inm","inmi","mmin","nip","mini","hm","phi"]},"177":{"input":[1,5,6,8],"tlp":["ami",5412],"trp":["hap",4798],"trw":["hap",187],"lp":["ami","zaam","zam","anmi"],"rp":["hap","mani","haam","ham","happ","ima","iam","pha","inam","mai","pani","mah","hamm","hamp","mha","mz"]},"178":{"input":[2,5,6,8],"tlp":["sim",1232],"trp":["mij",56462],"tlw":["spin",52],"trw":["mijn",42155],"lp":["sim","spij","simp","smi"],"rp":["mij","mijn","mis","miss","pij","ijp","pijn","mins","insp","knip","jim","mik","mmis","jimm","pijp","pijk"]},"179":{"input":[1,2,5,6,8],"tlw":["smaak",381],"trw":["kwam",9677],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",1479],"trp":["hem",38924],"tlw":["eph",104],"trw":["hem",36783],"lp":["emi","eim","enmi","emmi","epin"],"rp":["hem","iem","mei","niem","'h","ime","pnie","'he","imme","heim","heme","hep","mhe","impe","meni"]},"181":{"input":[1,3,5,6,8],"tlw":["z'n",1280],"trw":["maxima",176],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"trw":["meisje",3089],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["zwemmen",284],"trw":["maken",6874],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1065],"trp":["imt",1214],"tlw":["tim",122],"trw":["htm",71],"lp":["tim","tmi","timi"],"rp":["imt","mit","itm","ntim","htm","mbi","nipt","mv","mbin","imit","htp","miti","mith","mbit","mitt"]},"185":{"input":[1,4,5,6,8],"tlw":["fatima",79],"trw":["mattia",98],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["schip",1068],"trw":["minst",275],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["tapijt",196],"trw":["maakt",1930],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["evenmin",310],"trw":["'het",1331],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"trw":["manier",3158],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["spreken",1283],"trw":["misschien",7594],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["amerikaanse",726],"trw":["maakte",4198],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",166993],"trw":["op",103035],"lp":[],"rp":["op","po","oop","opp","poo","pop","ppo","popp","opo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",574],"trp":["opa",966],"trw":["opa",532],"lp":["apo","appo"],"rp":["opa","oppa"]},"194":{"input":[2,7,8],"tlp":["spo",2653],"trp":["pos",1438],"trw":["poos",89],"lp":["spo","spoo","sop"],"rp":["pos","ops","poos","oops","pso","opsp","pspo"]},"195":{"input":[1,2,7,8],"tlp":["aspo",191],"trp":["opw",535],"trw":["oppas",51],"lp":["aspo"],"rp":["opw","pow"]},"196":{"input":[3,7,8],"tlp":["eop",278],"trp":["ope",17147],"trw":["'o",439],"lp":["eop","eope","eopo"],"rp":["ope","o'","oep","oppe","oepe","opee","poe","'o","-p","'op","-'","oo'","o-p","pope"]},"197":{"input":[1,3,7,8],"trp":["oepa",84],"lp":[],"rp":["oepa","-pa","o-pa"]},"198":{"input":[2,3,7,8],"tlp":["spoe",469],"trp":["o's",1470],"tlw":["soep",218],"trw":["poes",128],"lp":["spoe","dop","soep","so-p","dope","doop"],"rp":["o's","opd","poed","pod","opes","osep","poes","'do","'doe","oesp","'so","-sp"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",4647],"trp":["pg",6426],"tlw":["top",406],"trw":["pot",229],"lp":["top","topt","topp","gp","gop"],"rp":["pg","opg","opt","oopt","pot","pog","pott","poot","poog","pto","ptop","ogop"]},"201":{"input":[1,4,7,8],"tlp":["apot",426],"trp":["pag",1681],"trw":["pag",94],"lp":["apot","apto","gpa","gaap"],"rp":["pag","pga","opga","pgaa"]},"202":{"input":[2,4,7,8],"tlp":["stop",2723],"trp":["opst",808],"tlw":["stop",253],"trw":["post",353],"lp":["stop","spot","coop","sopg","gops","gsp"],"rp":["opst","post","psto","opsc"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",6839],"trp":["pro",15569],"tlw":["erop",1554],"trw":["poort",291],"lp":["rop","roep","gep","erop","to'","gepr","grep","rope"],"rp":["pro","pge","opge","opte","por","port","orp","poor","oto'","oper","-top","opr"]},"205":{"input":[1,3,4,7,8],"tlw":["gepraat",288],"trw":["page",694],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["dorp",866],"trw":["proces",337],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["waarop",2183],"trw":["professor",384],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",134142],"trw":["om",51031],"lp":[],"rp":["om","mo","moo","mon","pu","mom","um","mu","omm","nom","oom","opn","omp","onm","pun","up","num","muu","umm","numm"]},"209":{"input":[1,5,7,8],"tlp":["amo",374],"trp":["oma",3325],"trw":["oma",579],"lp":["amo","amon","anmo","aup","amu","aom"],"rp":["oma","pano","oman","pau","omaa","omma","opna","mau","opma","moa","onma","napo","naom","mano"]},"210":{"input":[2,5,7,8],"tlp":["som",5660],"trp":["oms",6883],"tlw":["soms",3682],"trw":["joop",104],"lp":["som","soms","somm","spu","sup","smo","spon","spun","sum"],"rp":["oms","mso","opj","mons","mos","mus","joop","nspo","ooms","nopj","pus"]},"211":{"input":[1,2,5,7,8],"trw":["mouw",188],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",3098],"trp":["moe",46854],"trw":["open",4188],"lp":["enom","emo","emoe","epu"],"rp":["moe","ome","omen","open","oem","mome","o'n","noem","nome","omme","oeme","umme","ompe","ume","opme","umen"]},"213":{"input":[1,3,5,7,8],"trw":["opnamen",87],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",313],"trw":["mond",3010],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["samenwonen",65],"trw":["panose-",1128],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",2789],"trp":["mog",5827],"tlw":["boom",593],"trw":["punt",1157],"lp":["tom","tmo","bom","ttom","boom"],"rp":["mog","omt","punt","mot","mg","omg","ontm","ntmo","put","pub","nmog","moto","mob","omb","mput"]},"217":{"input":[1,4,5,7,8],"tlw":["tatum",76],"trw":["mag",2733],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["stom",368],"trw":["muts",127],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["spontaan",128],"trw":["opstaan",213],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["genomen",1400],"trw":["moet",11124],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["roman",605],"trw":["magere",261],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["sprong",808],"trw":["moest",9460],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["waarom",5384],"trw":["omdat",8221],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",22888],"trw":["loop",1091],"lp":[],"rp":["pl","lop","lp","pol","poli","plo","loop","lip","lipp","opl","opi","pli","oplo","pil","lopi","olp","lopp","ipo","pill","ilip"]},"225":{"input":[1,6,7,8],"tlp":["alp",160],"trp":["pla",12933],"trw":["paal",163],"lp":["alp","appl","apl","apol"],"rp":["pla","plaa","lap","laap","opz","paal","opzi","pal","lapp","pzo","opzo","pala","opla","lpla","lpz","lpza"]},"226":{"input":[2,6,7,8],"tlp":["spl",351],"trp":["kop",4373],"tlw":["sloop",153],"trw":["kop",1414],"lp":["spl","slip"],"rp":["kop","klop","koop","posi","plos","opk","pols","kopp","ispl","pko","opko","ikop","kopl","kpl","kopi","pkl","lsp","ilsp"]},"227":{"input":[1,2,6,7,8],"tlw":["slaap",1052],"trw":["klap",617],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",2649],"trp":["liep",7656],"trw":["liep",5744],"lp":["elp","elop","elpe","epl","epel"],"rp":["liep","pel","lope","ple","lpe","peel","pele","ppel","plee","peli","-pi","plei","ielp","ople","pell"]},"229":{"input":[1,3,6,7,8],"tlw":["appel",103],"trw":["'zo",172],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["speelde",689],"trw":["plek",1535],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["slappe",172],"trw":["'als",569],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["glip",148],"trp":["plot",2109],"tlw":["volop",111],"trw":["loopt",1197],"lp":["glip","glop","gpl"],"rp":["plot","pig","opv","lopt","pogi","opig","ppig","pvo","opvo","lpt","pvol","oopv","lipt","opti","potl","igp","ligp"]},"233":{"input":[1,4,6,7,8],"tlw":["afloop",252],"trw":["plat",242],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["pistool",468],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["slaapt",181],"trw":["plaats",3721],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["voorlopig",401],"trw":["politie",1676],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",288],"trw":["plezier",573],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["gesprek",1386],"trw":["periode",563],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["collega's",441],"trw":["opgewekt",248],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mil",7222],"trw":["mooi",1931],"lp":[],"rp":["mil","lim","ml","mooi","iml","liml","lm","hoop","mili","uim","minu","omh","opni","ommi","lom","mho","omho","mhoo","hop","ulp"],"special":"enter"},"241":{"input":[1,5,6,7,8],"trw":["plan",1394],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simon",579],"trw":["kom",2728],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["wanhoop",258],"trw":["opzij",767],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["lopen",2578],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["allemaal",4589],"trw":["helemaal",5218],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["spelen",1140],"trw":["komen",7764],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["slapen",1278],"trw":["opnieuw",2178],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glimp",157],"trw":["omhoog",1619],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",493],"trw":["langzaam",2034],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["schuim",127],"trw":["komt",4942],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["glimlach",1179],"trw":["lichaam",2366],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["ruimte",1214],"trw":["minuten",1824],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["familie",1891],"trw":["mezelf",1423],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gekomen",2342],"trw":["mogelijk",2546],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["gemaakt",2371],"trw":["mevrouw",2250],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/num-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/num-keymap.json index 55ab69fca8..7425e7d790 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/num-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/num-keymap.json @@ -2827,4 +2827,4 @@ "base": "SPACE", "baseshift": "" } -} \ No newline at end of file +} diff --git a/keyboards/gboards/dicts/aset/_generator/src/nw-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/nw-keymap.json index a326e75806..a0b915911e 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/nw-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/nw-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",112911],"tlw":["a",7695],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",10806],"tlw":["s",577],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",77058],"tlw":["saa",19034],"lp":["sa","saa","as","aas","ass","ssa","wa","saas","asa","waa","ssaa","asaa","saaa","assa","aasa"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",6166],"tlw":["e",308],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ae",70925],"tlw":["ex",147],"lp":["ae","aae","ea","ax","ex","aee","xe","exe","xa","exa","axe"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",411497],"tlw":["de",31445],"lp":["de","ed","se","es","ede","dd","dde","ds","des","sse","edes","dse","eds","see","ess","ese","edd","esse","edde","sed"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",41689],"tlw":["da",17989],"lp":["da","ad","add","adde","ade","aad","aes","aed","sae","aade","aede","ada","daa","dda","sad","asse","aese","saad","aada","ads"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",41039],"tlw":["t",37],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",83084],"tlw":["at",55917],"lp":["at","ta","fa","af","ft","att","aat","faa","taa","aatt","ff","aft","fat","tat","tta","aff","fatt","tf","tatt","ata"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",98189],"tlw":["st",132],"lp":["st","ts","sst","sc","tst","ct","tc","cc","tts","tss"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",12336],"tlw":["sat",1574],"lp":["sta","ast","sat","staa","satt","tsa","ca","fas","fast","tsaa","fs","afs","ac","stat","fst","afst","ats","tats","tsat","asta"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",261904],"tlw":["er",33906],"lp":["er","et","te","re","rt","ere","tte","ter","tr","ett","ette","ret","rte","rr","ert","tter","tet","rre","err","tre"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",123529],"tlw":["fra",10890],"lp":["ar","ra","fr","aer","fra","aar","aere","fte","are","ef","atte","art","tra","eft","fter","efte","rae","fe","fre","tae"],"rp":[]},"14":{"input":[2,3,4],"tlp":["det",95805],"tlw":["det",77200],"lp":["det","der","ste","dt","rd","dr","rs","est","dre","rde","este","rst","res","red","dett","str","dte","ser","ers","erd"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",3773],"tlw":["satte",1224],"lp":["ard","aest","stra","aerd","dra","ader","saet","derf","aste","rda","tad","rad","raad","stae","aard","stad","raed","fred","rsta","ras"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",37980],"trw":["n",328],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",164272],"trp":["na",33880],"tlw":["anna",1134],"trw":["na",964],"lp":["an","ann","aan","anna","ana"],"rp":["na","naa","nna","nan","nnan","nann","nana"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",5809],"trp":["ns",30049],"trw":["j",102],"lp":["sn","sj","ssn"],"rp":["ns","nj","jn","js","nns","nss","nsn"]},"19":{"input":[1,2,5],"tlp":["ans",16881],"trp":["ja",19604],"tlw":["sja",654],"trw":["ja",6049],"lp":["ans","sna","san","sja","aj","ansa","sjaa","sann","asj","aja","ssan","asn"],"rp":["ja","jaa","nja","nsa","nas","jan","njaa","nasj"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",321311],"trp":["ne",82848],"tlw":["en",38749],"trw":["nye",777],"lp":["en","enn","enne","ene","een","enen","ey"],"rp":["ne","nne","yn","nen","ny","ye","yne","nnen","nene","yen","nye","nny","nee"]},"21":{"input":[1,3,5],"tlp":["aen",13038],"trp":["nae",5436],"tlw":["annen",219],"trw":["naae",45],"lp":["aen","anne","ane","aaen","enna","anny","anen","aane","aene","ena","any","aany","enan","xan","exan"],"rp":["nae","naae","yna","ya","naee"]},"22":{"input":[2,3,5],"tlp":["den",74661],"trp":["nd",121952],"tlw":["den",37787],"trw":["ned",3945],"lp":["den","end","ende","sen","ens","denn","sy","syn","dn"],"rp":["nd","je","nde","jen","nden","nes","ned","ys","yd","nnes","ndes"]},"23":{"input":[1,2,3,5],"tlp":["and",33662],"trp":["jae",5122],"tlw":["anden",2420],"trw":["naade",166],"lp":["and","ande","dan","aend","aand","adan","sand","anse","enda","ands","aden","dans","dann","anda","sjae"],"rp":["jae","nda","naes","nand","ndda"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["tn",2343],"trp":["nt",20514],"tlw":["b",230],"trw":["nb",169],"lp":["tn","bt","bn","bb","tb","ttn"],"rp":["nt","nb","nnt","ntn"]},"25":{"input":[1,4,5],"tlp":["ba",17182],"trp":["nat",3688],"tlw":["fann",272],"trw":["nat",367],"lp":["ba","tan","ab","ant","fan","aab","baa","ban","abt","fann","abn","aabn","tab","aabt","anta","fant"],"rp":["nat","nf","natt","nta"]},"26":{"input":[2,4,5],"tlp":["bj",1597],"trp":["nst",1389],"lp":["bj","tj","sb","stn","bs","sbn","stj","sbj","stb","tsb","tsj","bst"],"rp":["nst","jst","jt","nc","jtn","nsc","nnst","nstn"]},"27":{"input":[1,2,4,5],"tlp":["stan",2679],"trp":["nsta",211],"tlw":["sant",289],"trw":["jf",31],"lp":["stan","fj","tans","sant","tja","bas","abs","anst","anc","fja","asb","asbj","stba","bja","tanc"],"rp":["nsta","jac","nast","jtna","ntas"]},"28":{"input":[3,4,5],"tlp":["be",28242],"trp":["nte",10150],"tlw":["berre",1003],"trw":["nyt",327],"lp":["be","ten","ren","rn","br","ent","rne","ern","erne","ty","ry","ber","ente","eb","rb","eren"],"rp":["nte","ner","yr","net"]},"29":{"input":[1,3,4,5],"tlp":["bar",6004],"trp":["nar",6320],"tlw":["bare",3028],"trw":["naar",5355],"lp":["bar","ran","taen","bare","fy","bra","arn","fyr","aren","ften","abe","barn","raen","arb","bae"],"rp":["nar","naar","naer","nnar","nart"]},"30":{"input":[2,3,4,5],"tlp":["sten",6428],"trp":["nder",11117],"tlw":["syntes",1260],"lp":["sten","bes","endt","rden","bed","sty","best","rend","dern","synt"],"rp":["nder","ndt","ndr","ndre","jer","ndet","ndte","yst","nest","jern"]},"31":{"input":[1,2,3,4,5],"tlw":["andre",3868],"trw":["naesten",1049],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1106],"trw":["i",62852],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",969],"trp":["ia",2946],"tlw":["ai",51],"lp":["ai","aai","za"],"rp":["ia","iaa"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",57626],"trp":["kk",58266],"tlw":["si",1195],"trw":["k",1220],"lp":["si","sk","ski","sik","sikk","skik","sis"],"rp":["kk","ik","ikk","is","ki","ks","iss","isk","kik","iks","kki","ikki","kikk"]},"35":{"input":[1,2,6],"tlp":["ak",14837],"trp":["ka",36672],"tlw":["saki",383],"trw":["ka",36],"lp":["ak","ska","akk","ask","aks","sak","aka","aask","akka","aki","saki","sia","aak","skaa"],"rp":["ka","kas","kka","isa","kaa","ika"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",46211],"trp":["ie",12197],"tlw":["ei",2621],"lp":["ei","eie"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["xi",72],"trp":["iae",68],"tlw":["xi",27],"trw":["ix",27],"lp":["xi","aei","eia","xii","xiii"],"rp":["iae","ix"]},"38":{"input":[2,3,6],"tlp":["di",22778],"trp":["ke",75425],"tlw":["dei",9926],"trw":["ikke",27380],"lp":["di","ske","dei","ek","sid","ekk","side","esk","eis","eske","dis","eid"],"rp":["ke","kke","id","ikke","ide","ids","ise","isse"]},"39":{"input":[1,2,3,6],"tlp":["akke",3114],"trp":["ida",2239],"tlw":["skade",227],"trw":["kasse",30],"lp":["akke","aek","aekk","ake","aske","sida","adi","daek","ekka","skad","adsk","akse","eska","dska"],"rp":["ida","idda","isae","kad","kade","kae"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",75549],"trp":["it",21023],"tlw":["vi",9397],"trw":["iv",58],"lp":["ti","vi","tv","vit","vt","tti","tvi","viv","tviv","vii","tiv","vitt","tit"],"rp":["it","iv","itt","iti","ivi","itti","ivt"]},"41":{"input":[1,4,6],"tlp":["va",86367],"trp":["if",2566],"tlw":["av",10474],"lp":["va","av","fi","vaa","ava","avt","avi","fti","tia","atti","aav","vat","ati","vita","aavi"],"rp":["if","ift","ita","iva","iaf"]},"42":{"input":[2,4,6],"tlp":["vis",9768],"trp":["kt",8569],"tlw":["sit",3082],"trw":["kvit",106],"lp":["vis","sv","sti","sit","viss","vist","sitt","vs","ci","ck","vst"],"rp":["kt","ist","kv","kvi","isst","ic","ikt","isti","kst"]},"43":{"input":[1,2,4,6],"tlp":["sva",5726],"trp":["kva",3206],"tlw":["fik",2530],"trw":["kva",1095],"lp":["sva","tak","fik","takk","akt","vak","stak","stia","fis","fisk","taka","vakk","fikk"],"rp":["kva","kast","kaf","ica","kaff","ista","kat"]},"44":{"input":[3,4,6],"tlp":["ve",84601],"trp":["ir",9659],"tlw":["eit",2100],"lp":["ve","ri","ver","ev","eve","vet","rei","eit","vei","rti","rv","rev","eri","eir","eier"],"rp":["ir","ive","ier","ite","iver"]},"45":{"input":[1,3,4,6],"tlp":["var",53426],"trp":["ifte",820],"tlw":["var",42028],"lp":["var","vae","vaer","ave","vart","vera","vare","fri","eva","aev","vara","arv","ari","rav","aeve","arve","fie","evae","fir"],"rp":["ifte"]},"46":{"input":[2,3,4,6],"tlp":["ved",13498],"trp":["kr",10422],"tlw":["ved",10508],"trw":["idet",890],"lp":["ved","vd","rk","vde","tid","rke","dri","vid","erk","skr","rdi"],"rp":["kr","ker","ket","idt","kri","kte","kker","iste","idst"]},"47":{"input":[1,2,3,4,6],"tlw":["fekk",1380],"trw":["kvar",593],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",88711],"trw":["inn",1636],"lp":[],"rp":["in","ni","hi","nin","inn","nh","hin","nhi","ih","nni","iin","nnin","hn","inni","ini","inin","nnh","hii","hiin","nnhi"]},"49":{"input":[1,5,6],"tlp":["ani",619],"trp":["ha",134263],"tlw":["ah",106],"trw":["han",52972],"lp":["ani","ania","ah","ain","anni"],"rp":["ha","han","haa","haan","ina","ian","inan","hina","nia","hann","iani","inna","nha","iana","nz"]},"50":{"input":[2,5,6],"tlp":["sin",12978],"trp":["kj",25013],"tlw":["sin",8225],"trw":["nik",27],"lp":["sin","skj","skin","sni","sh"],"rp":["kj","nk","kkj","ikkj","hj","nsk","kn","nsi","kin","ink","ins","his","nkj","kni","inkj"]},"51":{"input":[1,2,5,6],"tlp":["ansk",3797],"trp":["kan",11435],"tlw":["sank",208],"trw":["hans",8898],"lp":["ansk","ank","ansi","snak","skja","sank","ash","akn"],"rp":["kan","hans","kja","nak","nakk","hja","kans","hak","kann","kna","nska","has"]},"52":{"input":[3,5,6],"tlp":["ein",9181],"trp":["he",52514],"tlw":["ein",5538],"trw":["henne",2515],"lp":["ein","eh","enh","eni","eine","eien","enin","enhe"],"rp":["he","hen","ine","henn","hei","nei","ien","inne","hy","inen","nhe","ihe"]},"53":{"input":[1,3,5,6],"tlp":["eha",758],"trp":["hae",2400],"tlw":["einannan",141],"trw":["hena",63],"lp":["eha","enha","eina","ehan","anie","enia","enz","aine","anei","ahy","ehaa","aein","einz"],"rp":["hae","haen","iane","nhae","hena","hea","hax"]},"54":{"input":[2,3,5,6],"tlp":["enk",5100],"trp":["ind",19969],"tlw":["sine",3555],"trw":["ikkje",7483],"lp":["enk","sine","din"],"rp":["ind","kje","hend","inde","kkje","yk","ken","hed","nke","iden","ykk","hje","nske","ykke","ky","kjen","nesk"]},"55":{"input":[1,2,3,5,6],"tlw":["sidan",654],"trw":["hadde",11705],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["vin",4628],"trp":["hv",25602],"tlw":["thi",1736],"trw":["hit",287],"lp":["vin","th","bi","tin","vn","thi","tni","tnin","vint","bin","vinn"],"rp":["hv","hvi","int","ib","nti","nhv","nv","ntin","hvit"]},"57":{"input":[1,4,5,6],"tlp":["van",4044],"trp":["hav",15474],"tlw":["fin",261],"trw":["navn",696],"lp":["van","fin","avn","finn","tian","vant","anv","fint","vann"],"rp":["hav","hva","nav","navn","hava","hat","havt","haab","hatt","havn","nhav"]},"58":{"input":[2,4,5,6],"tlp":["ch",2454],"trp":["nkt",2442],"tlw":["sint",142],"trw":["hvis",1991],"lp":["ch","stin","sch","svin","skib","bis","tkj","stni"],"rp":["nkt","hvis","kvin","nic","hist","istn","ich","kib","isb","isbn","kniv","inst"]},"59":{"input":[1,2,4,5,6],"tlw":["bak",310],"trw":["kant",169],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",10891],"trp":["her",10731],"tlw":["ven",661],"trw":["her",6657],"lp":["ven","rin","rh","vent","even","vne","beh","bei","bev","evn","erh","the"],"rp":["her","hve","hver","inte","hev","herr","hr","yv"]},"61":{"input":[1,3,4,5,6],"tlw":["fine",333],"trw":["har",14412],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["verden",958],"trw":["kjendte",636],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["vand",853],"trw":["havde",9987],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",42],"trw":["o",923],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","trp":["oa",34],"lp":[],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",62776],"trp":["os",14215],"tlw":["so",6443],"trw":["os",3796],"lp":["so","sos","sso","soso"],"rp":["os","oss","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",147],"trp":["ow",102],"trw":["ossaa",45],"lp":["wo","aso","aaso","asso"],"rp":["ow","ossa","owa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",687],"trp":["oe",3728],"trw":["-",3322],"lp":["eo","e-"],"rp":["oe","-o","o-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",49],"trp":["ox",122],"lp":["a-","e-a","e-aa"],"rp":["ox","oxe","-a","-aa"]},"70":{"input":[2,3,7],"tlp":["do",13375],"trp":["od",32172],"tlw":["dod",621],"trw":["odd",219],"lp":["do","dod","eso","dode","edo","sod","dso","esso","doe"],"rp":["od","ode","odd","ose","ods","odde","oed","oede","osse","odse","odes"]},"71":{"input":[1,2,3,7],"tlp":["adso",64],"trp":["odsa",186],"lp":["adso","de-a"],"rp":["odsa","oda","odda","-aas"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",34309],"trp":["og",149705],"tlw":["to",2884],"trw":["og",122759],"lp":["to","gt","go","gg","tog","tg","tot","tott","gto","tto","gtt","got","gtto","ttog"],"rp":["og","ot","ott","ogt","ogg","otto"]},"73":{"input":[1,4,7],"tlp":["fo",74135],"trp":["of",3896],"tlw":["gaa",1786],"lp":["fo","ag","ga","agt","gaa","tag","aag","gat","aga","tfo","tga","fot","gf","fag","gaat"],"rp":["of","oft","ofa","off","otta"]},"74":{"input":[2,4,7],"tlp":["sto",16012],"trp":["ogs",5245],"tlw":["stott",99],"trw":["oc",346],"lp":["sto","gs","sog","gst","sg","gso","sost","co","sogt","stot","toc","stoc","tso","sot"],"rp":["ogs","ost","oc","ogso","osto","oct"]},"75":{"input":[1,2,4,7],"tlp":["sag",7523],"trp":["ogsa",5006],"tlw":["sagt",1463],"trw":["ogsaa",3774],"lp":["sag","gsa","gsaa","sagt","ags","sof","saag","sga","asg","asto","sofa","sgaa","aco","fos","sfo","stof","soga","gsta"],"rp":["ogsa","ofas"]},"76":{"input":[3,4,7],"tlp":["ge",87205],"trp":["or",142919],"tlw":["eg",8868],"trw":["or",301],"lp":["ge","eg","ro","tor","get","ger","gr","ege","rg","gte","gge","tro","eget"],"rp":["or","ort","ore","oge","orte","org","oget"]},"77":{"input":[1,3,4,7],"tlp":["for",64883],"trp":["ora",3045],"tlw":["for",32016],"trw":["ofte",1064],"lp":["for","age","fort","aeg","tage","rag","gar","rfo","rfor","gra","fore","gaar","fora","agte","erfo","aegg"],"rp":["ora","ofte","orta","orf"]},"78":{"input":[2,3,4,7],"tlp":["stor",7850],"trp":["ord",13774],"tlw":["seg",6090],"trw":["ord",1982],"lp":["stor","god","seg","gd","tod","stod","gde","ges","dog","godt","rod","deg","dor","rso","sor"],"rp":["ord","ors","orst","orde","odt"]},"79":{"input":[1,2,3,4,7],"tlw":["sagde",3425],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",57145],"trw":["nu",8186],"lp":[],"rp":["un","no","on","nu","unn","ono","onn","nno","ou","uu","nun","uun","onno","non","nnu","uo","uno","oun"]},"81":{"input":[1,5,7],"tlp":["au",4958],"trp":["unna",1842],"tlw":["au",141],"trw":["unna",94],"lp":["au","ano","anu","anua","anno"],"rp":["unna","ona","ua","onna","nau","nua","una"]},"82":{"input":[2,5,7],"tlp":["su",3824],"trp":["jo",23891],"tlw":["son",930],"trw":["jo",3859],"lp":["su","son","sjo","snu","sun","sno","sson","sonn"],"rp":["jo","us","ju","jon","oj","ons","jonn","jus","ojn","uss","jos","uns"]},"83":{"input":[1,2,5,7],"tlp":["aus",1274],"trp":["jona",341],"tlw":["sau",28],"trw":["jau",154],"lp":["aus","ajo","asjo","sau","anus","wu","snau","sua"],"rp":["jona","jau","ussa","onas","janu","usa","onsa"]},"84":{"input":[3,5,7],"tlp":["eno",822],"trp":["ue",3657],"tlw":["enno",276],"trw":["noe",486],"lp":["eno","eu","enno","eon","eun","enu"],"rp":["ue","one","uen","unne","oy","onne","oen","noe","onen","une","noen","yo","oyo","oye"]},"85":{"input":[1,3,5,7],"tlp":["eona",156],"trp":["oxn",30],"lp":["eona","anoe","aue","auen"],"rp":["oxn","oxne","ux","oux","oxen","oya"]},"86":{"input":[2,3,5,7],"tlp":["du",19662],"trp":["und",23222],"tlw":["du",17772],"trw":["ud",4343],"lp":["du","dnu"],"rp":["und","ud","unde","ude","uden","ndnu","use","ond","uds","ndo","udd","udse","udde","oje","nod","ndu","onde","oden"]},"87":{"input":[1,2,3,5,7],"tlw":["daud",104],"trw":["unda",243],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",11738],"trp":["ng",56304],"tlw":["gong",545],"trw":["ut",3855],"lp":["bo","gu","tu","gn","bu","tun","gun","gunn","gut","gon"],"rp":["ng","ut","nog","ug","ung","ngt","ong","ob","utt","ont"]},"89":{"input":[1,4,5,7],"tlp":["ang",17346],"trp":["nga",2499],"tlw":["gang",1862],"trw":["utan",212],"lp":["ang","gan","gang","fu","bag","angt","atu","aug","agn","fun","aut","fang"],"rp":["nga","natu","ngan","uf","nfo","uft","uta","utga"]},"90":{"input":[2,4,5,7],"tlp":["gj",23821],"trp":["ngs",2173],"tlw":["song",96],"trw":["just",538],"lp":["gj","gjo","stu","bjo","stun","tus","ggj","gus","stno"],"rp":["ngs","ust","ngst","jont","just","uc","ngso","job","jot","unst","ugus"]},"91":{"input":[1,2,4,5,7],"tlw":["sang",405],"trw":["jacob",143],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",22078],"trp":["nge",25467],"tlw":["bort",1232],"trw":["noget",4415],"lp":["gen","ru","eng","bor","enge","beg","run","tur","egen","gy"],"rp":["nge","ur","ngen","noge","yg","nger","oren","orn","ogen","nor"]},"93":{"input":[1,3,4,5,7],"tlw":["gunnar",1603],"trw":["naturen",307],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gjorde",2339],"trw":["jeg",29616],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["dagen",1077],"trw":["udenfor",448],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",83974],"trw":["lo",890],"lp":[],"rp":["il","li","ll","ol","lo","ill","oi","lli","oli","io","illi","lil","ili","lill","oll","llo","illo","lio","loi","iil"]},"97":{"input":[1,6,7],"tlp":["al",58249],"trp":["la",46808],"tlw":["al",993],"trw":["la",2277],"lp":["al","all","aal","ala","alli","ali","alla","aala","alo"],"rp":["la","laa","lla","ola","illa","ial","lai","olai","lia","ila","oia"]},"98":{"input":[2,6,7],"tlp":["sl",12627],"trp":["ko",30079],"tlw":["slik",1363],"trw":["los",291],"lp":["sl","sli","slik","sol","slo"],"rp":["ko","ok","ls","lik","lk","kl","olk","lsk","ils","oko","kol","oks","ilk","okk","los"]},"99":{"input":[1,2,6,7],"tlp":["skal",8407],"trp":["kal",10316],"tlw":["skal",8110],"trw":["kalla",209],"lp":["skal","sla","saal","ako","als","sal","slaa","alsk","alk","asl"],"rp":["kal","kla","las","lska","lass","kall","lsa","lask","lak","isla"]},"100":{"input":[3,6,7],"tlp":["el",77241],"trp":["le",79550],"tlw":["elle",34],"trw":["lille",1039],"lp":["el","ell","elle","eli","ele","eil","elli","eel","eile"],"rp":["le","lle","ille","ole","oie","lei","ile","lie","iel","lel","olle"]},"101":{"input":[1,3,6,7],"tlp":["ale",7840],"trp":["lae",9587],"tlw":["alle",5666],"trw":["lea",237],"lp":["ale","alle","ael","aale","aell","ella","aele","ela","alae","alie","alei","eal","eale","aael","alex"],"rp":["lae","laae","lea","iael","lex"]},"102":{"input":[2,3,6,7],"tlp":["els",10495],"trp":["ld",45157],"tlw":["del",665],"trw":["lod",1164],"lp":["els","del","sel","eld","else","deli","elsk","dl","elde"],"rp":["ld","lde","ild","ilde","old","lse","kel","led","lid","lede","keli"]},"103":{"input":[1,2,3,6,7],"tlw":["saaledes",1295],"trw":["lad",661],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["til",52776],"trp":["ig",98658],"tlw":["til",41443],"trw":["liv",1338],"lp":["til","vil","vo","gi","gl","tig","till","tl","gti"],"rp":["ig","lig","ov","lt","lv","igt","liv","lg","lit","ligt","lov"]},"105":{"input":[1,4,6,7],"tlp":["alt",10974],"trp":["lag",4727],"tlw":["alt",4399],"trw":["olav",641],"lp":["alt","fol","tal","fl","gav","fal","gla","alv","talt","folg","alti","flo","fla","tilf","gif"],"rp":["lag","lf","lav","lat","ilf"]},"106":{"input":[2,4,6,7],"tlp":["sig",27397],"trp":["lst",1344],"tlw":["sig",21706],"lp":["sig","gik","tok","stil","sigt","tils","vilk","stol","slig","sov","gvis","slog","gikk","stig"],"rp":["lst","lts","kog","likt","okt","kto"]},"107":{"input":[1,2,4,6,7],"tlw":["folk",2816],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vor",14150],"trp":["ige",17385],"tlw":["eller",6110],"trw":["over",7437],"lp":["vor","elig","rl","vel","elv","rig","rli","rlig","elt","erl"],"rp":["ige","ove","ler","over","ller","lige","lev","lte","let","live"]},"109":{"input":[1,3,4,6,7],"tlw":["tale",1360],"trw":["laegge",464],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["vilde",7016],"trw":["lidt",2153],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["aldrig",2153],"trw":["idag",668],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",30354],"trw":["hun",21044],"lp":[],"rp":["ho","hu","hun","ul","lu","hol","lin","hon","hono","nl","hoi","uli","ull","oin","nli","hil","llin","oh","oni","nhil"]},"113":{"input":[1,5,6,7],"tlp":["anl",884],"trp":["lan",10243],"tlw":["alonzo",24],"trw":["hall",138],"lp":["anl","anli","ahl"],"rp":["lan","hal","lau","hall","nla","oha","ohan","nal","onal","nnla","nlau","llan","hau","onla","ula","nlan","ulia"]},"114":{"input":[2,5,6,7],"tlp":["sku",10170],"trp":["ku",23180],"tlw":["sjol",372],"trw":["nok",3367],"lp":["sku","skul","skjo","slu"],"rp":["ku","kun","kul","nok","kon","kjo","uk","hos","hus","ukk","noko","kjon","kunn","jol","lj","jul"]},"115":{"input":[1,2,5,6,7],"trw":["hakon",849],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eho",965],"trp":["hel",9131],"trw":["hele",2760],"lp":["eho","elen","enl","ehol"],"rp":["hel","len","ly","yl","hele","hell","oine","lene","olen","ule","ulle","hoie","hoy","heil","uly","nel"]},"117":{"input":[1,3,5,6,7],"tlw":["alene",964],"trw":["nella",82],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["skulde",7929],"trw":["kunde",7993],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["sjael",299],"trw":["land",975],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",22281],"trp":["ing",20917],"tlw":["bli",1395],"trw":["hoit",425],"lp":["bl","bli","ting","gh","bliv","tilb","blo"],"rp":["ing","hvo","ning","lb","igh","ilb","hov","ling","ligh","hvil","lut","ntl","ntli"]},"121":{"input":[1,4,5,6,7],"tlw":["gunnlaug",319],"trw":["langt",1662],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["blik",491],"trw":["och",329],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["ansigt",724],"trw":["langs",495],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["blev",6367],"trw":["hvor",4988],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["tilbage",1441],"trw":["laenge",1067],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["gjekk",2117],"trw":["igjen",3313],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["ganske",1701],"trw":["landet",659],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",6585],"trw":["p",102],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",4962],"trp":["pa",49694],"trw":["paa",26138],"lp":["ap","app","aap","apa","appa","aapa"],"rp":["pa","paa","pap","ppa","ppaa","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",8870],"trp":["ps",217],"trw":["ps",26],"lp":["sp"],"rp":["ps","psp"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",590],"trp":["pas",1229],"tlw":["saapas",42],"trw":["pas",58],"lp":["spa","saap","apas","asp"],"rp":["pas","pass","paas","psa","pspa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",1790],"trp":["pe",12061],"trw":["'",36],"lp":["ep","epp","eppe","epe","e'"],"rp":["pe","ppe","pee","'e","pep","pepp"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["appe",605],"trp":["pae",444],"trw":["'a",44],"lp":["appe","ape","a'","epa","aape","eppa"],"rp":["pae","paee","'a","pea"]},"134":{"input":[2,3,8],"tlp":["spe",488],"trp":["pd",356],"lp":["spe","dp","esp","espe","sep","dsp","edp","s'","d'","d'e","es'","des'","ed'","dep"],"rp":["pd","ped","pede","pped","pes","ppes"]},"135":{"input":[1,2,3,8],"tlp":["spae",291],"trp":["pda",290],"tlw":["sa'",71],"trw":["passe",167],"lp":["spae","dpa","dpaa","sa'","edpa","aspe","depa"],"rp":["pda","pad","paed"]},"136":{"input":[4,8],"tlp":["tp",173],"trp":["pt",1987],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",508],"trp":["pf",337],"tlw":["tapt",32],"lp":["apt","tpa","tap","tapt","tpaa"],"rp":["pf","pta","paaf","pfa","pfat","ptat","pat","ppat","patt"]},"138":{"input":[2,4,8],"trp":["pst",23],"lp":[],"rp":["pst"]},"139":{"input":[1,2,4,8],"tlp":["cap",53],"trp":["past",196],"trw":["paastaa",25],"lp":["cap","capp"],"rp":["past"]},"140":{"input":[3,4,8],"tlp":["rp",1719],"trp":["pr",6671],"tlw":["teppet",51],"trw":["per",998],"lp":["rp","erp","rep","repe","t'","et'","ept","tep"],"rp":["pr","per","pet","pre","pte","pper","ppet","petr","pete","ptr","pere","peer"]},"141":{"input":[1,3,4,8],"tlp":["rpa",1174],"trp":["pra",2577],"tlw":["rapp",178],"trw":["par",1236],"lp":["rpa","rpaa","erpa","rap","arp","rapp","trap","apte","apet","repa","arpe","apr","rape"],"rp":["pra","par","prae","part","prat","para","ptra"]},"142":{"input":[2,3,4,8],"tlp":["spr",1897],"trp":["pres",895],"tlw":["drepe",95],"trw":["prest",134],"lp":["spr","derp","drep","set'","sept","spre","sper","resp","step","rdsp","spec","d'er","dtp","rdp"],"rp":["pres","pers","pred","pdr","pec","pest"]},"143":{"input":[1,2,3,4,8],"tlw":["derpaa",639],"trw":["passer",132],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",21715],"trw":["m",266],"lp":[],"rp":["mm","mp","mn","pn","nm","np","pm","nnp"]},"145":{"input":[1,5,8],"tlp":["am",30376],"trp":["ma",44872],"trw":["man",6961],"lp":["am","amm","ama","amp","aam","apn","aman","amn","ampa"],"rp":["ma","man","maa","mann","pan","mma","nap","nma","maan","npa","mpa"]},"146":{"input":[2,5,8],"tlp":["sm",7709],"trp":["ms",1313],"lp":["sm","spj"],"rp":["ms","nsm","mj","pj","nsp","mps","mss","msp"]},"147":{"input":[1,2,5,8],"tlp":["sam",7924],"trp":["maj",624],"tlw":["smaa",580],"trw":["jaampa",181],"lp":["sam","samm","sma","smaa","sman","asm","aasm","sama","saam","ams"],"rp":["maj","maas","mas","jam","jaam","nsma","mja","mass","jamn","jamm"]},"148":{"input":[3,5,8],"tlp":["em",29102],"trp":["me",119265],"trw":["men",24935],"lp":["em","emm","emme","emn","eme"],"rp":["me","men","mme","mmen","menn","nem","pen","nnem","my","mpe","mene","ppen","mee","nep","'n"]},"149":{"input":[1,3,5,8],"tlp":["amme",6974],"trp":["mae",3374],"tlw":["apne",60],"trw":["mannen",490],"lp":["amme","ame","amen","ema","ampe","aem","apne","enpa","aame","emae","aemp","apen","emna","xem"],"rp":["mae","maen","maae","paen","mane","pmae"]},"150":{"input":[2,3,5,8],"tlp":["dem",8585],"trp":["med",39755],"tlw":["dem",8538],"trw":["med",36341],"lp":["dem","sme","dm","esm","sem","emnd","emd","emde"],"rp":["med","jem","mes","mede","mens","jemm","mmed","mend","mmes","md","mde","mnd"]},"151":{"input":[1,2,3,5,8],"tlw":["samme",2157],"trw":["mand",2119],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",528],"trp":["mt",5699],"lp":["tm","bm","ttm"],"rp":["mt","mb","mtm","mnt"]},"153":{"input":[1,4,5,8],"tlp":["amt",1276],"trp":["maat",2873],"tlw":["amt",30],"trw":["mat",345],"lp":["amt","amf","amta","fam","tma","tman","amtm","tam","tamm","amb"],"rp":["maat","mat","matt","mf","mta","mtma","napt","mant","manf","mata"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["stm",72],"trp":["mst",812],"lp":["stm"],"rp":["mst"]},"155":{"input":[1,2,4,5,8],"tlw":["samt",265],"trw":["jamt",42],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",7650],"trp":["mer",11185],"trw":["mere",2630],"lp":["rm","rme","rem","tem","erm","emt","erme","temm","rmen","remm","emte","temt","rmer"],"rp":["mer","mmer","mere","met","mte","mmet","ment"]},"157":{"input":[1,3,4,5,8],"tlw":["frem",2232],"trw":["maatte",2413],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["dermed",460],"trw":["mest",1195],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["fremmede",427],"trw":["praesten",521],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",3962],"lp":[],"rp":["pi","ip","ipp","ppi","pip","pii","ipi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",565],"trp":["papi",297],"trw":["pipa",30],"lp":["api","apii","aapi"],"rp":["papi","ipa","pia","pipa"]},"162":{"input":[2,6,8],"tlp":["spi",1562],"trp":["pis",688],"tlw":["skip",130],"lp":["spi","spis","skip"],"rp":["pis","kip","pik","isp","kipp","kp","pk","psk","pski","psi","kipi","ips","kips"]},"163":{"input":[1,2,6,8],"tlp":["skap",1414],"trp":["kap",2212],"tlw":["skipa",35],"trw":["kap",53],"lp":["skap","spak"],"rp":["kap","pak","kapi","kapp","pakk","kasp","kipa","kapa"]},"164":{"input":[3,6,8],"tlp":["epi",51],"trp":["ippe",579],"lp":["epi"],"rp":["ippe","ipe","pei","i'","pipe"]},"165":{"input":[1,3,6,8],"trp":["paei",34],"lp":[],"rp":["paei"]},"166":{"input":[2,3,6,8],"tlp":["spid",160],"trp":["pise",465],"tlw":["spise",213],"trw":["pike",73],"lp":["spid","spek","spei","espi","dpi","edpi"],"rp":["pise","kipe","pid","pike","pek","pids","ispe","'k","peis","idsp"]},"167":{"input":[1,2,3,6,8],"tlw":["skape",20],"trw":["pakke",59],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["vp",22],"trp":["pit",244],"lp":["vp"],"rp":["pit","ipt"]},"169":{"input":[1,4,6,8],"tlp":["apit",244],"trp":["pita",83],"lp":["apit","vap","vaap","vpa"],"rp":["pita","pav","paav"]},"170":{"input":[2,4,6,8],"tlp":["cip",35],"trp":["pist",223],"tlw":["spist",76],"lp":["cip"],"rp":["pist"]},"171":{"input":[1,2,4,6,8],"tlw":["skapt",72],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",118],"trp":["pri",1351],"lp":["rip","ript","ripe","tepi"],"rp":["pri","pir","pire","ipet","peri","ptei","pite","ptri","priv","piir","ipte","peti","prii","prei"]},"173":{"input":[1,3,4,6,8],"tlw":["appetit",31],"trw":["parti",114],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["skipet",189],"trw":["pris",147],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["skarpe",106],"trw":["paris",116],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",30489],"trw":["min",5651],"lp":[],"rp":["mi","min","im","imi","ph","him","imm","mh","himm","imp","hm","minn","pin","mni","mnin","inm","phi","phin","nim","pni"]},"177":{"input":[1,5,6,8],"tlp":["ami",591],"trp":["ham",10774],"trw":["ham",10248],"lp":["ami","aim","aima","apni","amin","aham"],"rp":["ham","hamm","mai","ima","iman","inma","hama","maim","hamp","hma","hman","mina","hap","pian"]},"178":{"input":[2,5,6,8],"tlp":["smi",1350],"trp":["mk",1125],"trw":["km",55],"lp":["smi","sim","simp","skim","simi"],"rp":["mk","mis","km","msi","kim","ism","mins","mkj","misk","mik","ksim","insp","mpsk","ims","imss"]},"179":{"input":[1,2,5,6,8],"tlw":["skam",220],"trw":["kamp",171],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["eim",1710],"trp":["ime",2104],"trw":["mine",1626],"lp":["eim","eime","emni","enim"],"rp":["ime","mine","mei","heim","imme","meni","mein","hem","mhe","phe","hemm","impe","menh","imen","pine","hemn"]},"181":{"input":[1,3,5,6,8],"trw":["ha'",122],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["deim",320],"trw":["hjem",1228],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["aminda",55],"trw":["maaske",483],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1156],"trp":["mit",1962],"trw":["mit",1634],"lp":["tim","timm","tmi","tmin","vm","vim"],"rp":["mit","mti","mv","ntim","mitt","imt","pib","mvi","mvit","mith","mint","pint","imit"]},"185":{"input":[1,4,5,6,8],"tlw":["vapni",74],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["bisp",71],"trw":["minst",66],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"trw":["knapt",173],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["time",369],"trw":["meir",910],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["varme",418],"trw":["marthe",201],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"trw":["mindre",926],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["skarphedin",261],"trw":["maerke",210],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",14625],"trw":["op",5953],"lp":[],"rp":["op","po","opp","opo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",23],"trp":["opa",359],"lp":["apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",1607],"trp":["pos",227],"lp":["spo"],"rp":["pos","ops","osp","poss","pso","opso","opsp"]},"195":{"input":[1,2,7,8],"trp":["ospa",68],"lp":[],"rp":["ospa","opas"]},"196":{"input":[3,7,8],"trp":["oppe",1803],"trw":["oppe",861],"lp":[],"rp":["oppe","ope","-p","-pe","poe","o'","'o"]},"197":{"input":[1,3,7,8],"trp":["opae",89],"lp":[],"rp":["opae"]},"198":{"input":[2,3,7,8],"tlp":["dop",25],"trp":["opd",356],"trw":["posse",49],"lp":["dop","dope"],"rp":["opd","poes","pose"]},"199":{"input":[1,2,3,7,8],"trw":["opad",95],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1476],"trp":["opt",955],"tlw":["top",86],"trw":["pot",131],"lp":["top","topp","ttop"],"rp":["opt","pot","pg","opg","pog","pott","pto","opto","ptog"]},"201":{"input":[1,4,7,8],"trp":["opf",337],"trw":["optat",55],"lp":[],"rp":["opf","opta","pfo","opfo","ptag","pga","opga","opfa","pag","pagt"]},"202":{"input":[2,4,7,8],"tlp":["stop",159],"trp":["post",133],"tlw":["spog",66],"trw":["post",83],"lp":["stop","spog","spot"],"rp":["post","psog","opst","psto"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",1406],"trp":["por",1635],"tlw":["ropte",390],"trw":["potter",86],"lp":["rop","etop","ropp","ropt","erop","grep","t-p","t-pe"],"rp":["por","pro","porg","opte","opr","orp","prog","port","optr","pote","opro","pror"]},"205":{"input":[1,3,4,7,8],"tlw":["ropa",47],"trw":["praeg",79],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["spor",486],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["pastor",149],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",89943],"trw":["om",15683],"lp":[],"rp":["om","mo","omm","um","mu","pu","nom","onom","up","mun","upp","pun","mon","umm","umu","mum","omn","opm","munn","mom"]},"209":{"input":[1,5,7,8],"tlp":["amu",199],"trp":["oma",845],"trw":["opnaa",33],"lp":["amu","amun","amum","aum","anmo","aup"],"rp":["oma","uma","omma","pau","opma","oman","opna","uppa","manu","umaa","mau","upa","napo"]},"210":{"input":[2,5,7,8],"tlp":["som",43671],"trp":["oms",911],"tlw":["som",39317],"trw":["mons",44],"lp":["som","spu","smu","somm","smo","smun","sum","sup","supp","spjo"],"rp":["oms","osm","jom","mus","jop","nsom","pus","mons","mos","pjo"]},"211":{"input":[1,2,5,7,8],"tlw":["saasom",54],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",392],"trp":["omme",9224],"trw":["munnen",129],"lp":["enom","emo","epu"],"rp":["omme","umme","uppe","ome","omne","omen","ume","moe","mue","opme","upe","ompe","mome","umen","muen","moen","omy"]},"213":{"input":[1,3,5,7,8],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",370],"trw":["mod",2528],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["aasmund",396],"trw":["pause",88],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",707],"trp":["mot",4043],"tlw":["tom",164],"trw":["mot",2107],"lp":["tom","tum","tomm","gm","gom","tomt","gmu","gmun","tup"],"rp":["mot","omt","mott","munt","mg","pub","omb","mbo","ombo","mob","omg"]},"217":{"input":[1,4,5,7,8],"tlw":["bagom",48],"trw":["magt",486],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["spjot",59],"trw":["pust",52],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["smag",190],"trw":["magnus",34],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"trw":["meget",2988],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["form",273],"trw":["mange",2669],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["gjennem",1415],"trw":["moder",464],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["sprang",713],"trw":["majoren",426],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",3409],"trw":["lop",55],"lp":[],"rp":["pl","lp","pil","pill","lip","lipp","opl","pol","poli","pli","plo","opi","lop","oppi","polo","lpi","oplo"]},"225":{"input":[1,6,7,8],"tlp":["alp",182],"trp":["pla",1343],"trw":["paal",37],"lp":["alp","apol"],"rp":["pla","lap","lapp","lpa","paal","pal","opla","pall"]},"226":{"input":[2,6,7,8],"tlp":["spil",667],"trp":["kop",224],"tlw":["spil",91],"trw":["kop",63],"lp":["spil","slip","skop","spl","spok"],"rp":["kop","klip","pok","pokk","okp","kopp","opk","pko","opko","opsi","plos"]},"227":{"input":[1,2,6,7,8],"tlw":["slap",263],"trw":["plass",85],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",1444],"trp":["pel",799],"trw":["pleie",43],"lp":["elp","elpe","elpi"],"rp":["pel","ple","lpe","plei","pell","lep","ople","lepp","peil","li'","ielp","ppel","pele","le'","peli","pile"]},"229":{"input":[1,3,6,7,8],"trw":["la'",34],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["slippe",195],"trw":["pleiede",91],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["selskap",63],"trw":["plads",500],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"trp":["pig",957],"trw":["pligt",151],"lp":[],"rp":["pig","pov","opov","plig","pilt","lpt","pgi","opgi","pgiv","pitl","opig","ppig","lvp","plog"]},"233":{"input":[1,4,6,7,8],"trw":["opgav",46],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["spilt",21],"trw":["opkog",50],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["slapt",29],"trw":["kapital",22],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["pige",436],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",106],"trw":["opgave",88],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["spiller",93],"trw":["krop",146],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["sprak-",207],"trw":["kapitel",109],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",5031],"trw":["honom",2975],"lp":[],"rp":["ml","imo","mil","lm","mul","lom","muli","plu","mli","mill","llom","lmi","lmin","hop","omh","umul","mili","uml","iml","oph"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alm",22],"trw":["maal",213],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["smil",397],"trw":["kom",8732],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["smal",74],"trw":["koma",530],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["emil",46],"trw":["mellem",1590],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["amalie",193],"trw":["lampen",95],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["smukke",238],"trw":["komme",2169],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["allesammen",166],"trw":["hjaelp",283],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glum",116],"trw":["mig",10638],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["gamal",73],"trw":["opfatning",67],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["smukt",152],"trw":["punkt",134],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["stockmann",328],"trw":["langsomt",378],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["temmelig",368],"trw":["nemlig",491],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["gamle",2534],"trw":["maelte",821],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["smilte",389],"trw":["kommer",2127],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["bokselskap",856],"trw":["litteraturselskap",207],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",112911],"tlw":["a",7695],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",10806],"tlw":["s",577],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",77058],"tlw":["saa",19034],"lp":["sa","saa","as","aas","ass","ssa","wa","saas","asa","waa","ssaa","asaa","saaa","assa","aasa"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",6166],"tlw":["e",308],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ae",70925],"tlw":["ex",147],"lp":["ae","aae","ea","ax","ex","aee","xe","exe","xa","exa","axe"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",411497],"tlw":["de",31445],"lp":["de","ed","se","es","ede","dd","dde","ds","des","sse","edes","dse","eds","see","ess","ese","edd","esse","edde","sed"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",41689],"tlw":["da",17989],"lp":["da","ad","add","adde","ade","aad","aes","aed","sae","aade","aede","ada","daa","dda","sad","asse","aese","saad","aada","ads"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",41039],"tlw":["t",37],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",83084],"tlw":["at",55917],"lp":["at","ta","fa","af","ft","att","aat","faa","taa","aatt","ff","aft","fat","tat","tta","aff","fatt","tf","tatt","ata"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",98189],"tlw":["st",132],"lp":["st","ts","sst","sc","tst","ct","tc","cc","tts","tss"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",12336],"tlw":["sat",1574],"lp":["sta","ast","sat","staa","satt","tsa","ca","fas","fast","tsaa","fs","afs","ac","stat","fst","afst","ats","tats","tsat","asta"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",261904],"tlw":["er",33906],"lp":["er","et","te","re","rt","ere","tte","ter","tr","ett","ette","ret","rte","rr","ert","tter","tet","rre","err","tre"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",123529],"tlw":["fra",10890],"lp":["ar","ra","fr","aer","fra","aar","aere","fte","are","ef","atte","art","tra","eft","fter","efte","rae","fe","fre","tae"],"rp":[]},"14":{"input":[2,3,4],"tlp":["det",95805],"tlw":["det",77200],"lp":["det","der","ste","dt","rd","dr","rs","est","dre","rde","este","rst","res","red","dett","str","dte","ser","ers","erd"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",3773],"tlw":["satte",1224],"lp":["ard","aest","stra","aerd","dra","ader","saet","derf","aste","rda","tad","rad","raad","stae","aard","stad","raed","fred","rsta","ras"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",37980],"trw":["n",328],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",164272],"trp":["na",33880],"tlw":["anna",1134],"trw":["na",964],"lp":["an","ann","aan","anna","ana"],"rp":["na","naa","nna","nan","nnan","nann","nana"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",5809],"trp":["ns",30049],"trw":["j",102],"lp":["sn","sj","ssn"],"rp":["ns","nj","jn","js","nns","nss","nsn"]},"19":{"input":[1,2,5],"tlp":["ans",16881],"trp":["ja",19604],"tlw":["sja",654],"trw":["ja",6049],"lp":["ans","sna","san","sja","aj","ansa","sjaa","sann","asj","aja","ssan","asn"],"rp":["ja","jaa","nja","nsa","nas","jan","njaa","nasj"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",321311],"trp":["ne",82848],"tlw":["en",38749],"trw":["nye",777],"lp":["en","enn","enne","ene","een","enen","ey"],"rp":["ne","nne","yn","nen","ny","ye","yne","nnen","nene","yen","nye","nny","nee"]},"21":{"input":[1,3,5],"tlp":["aen",13038],"trp":["nae",5436],"tlw":["annen",219],"trw":["naae",45],"lp":["aen","anne","ane","aaen","enna","anny","anen","aane","aene","ena","any","aany","enan","xan","exan"],"rp":["nae","naae","yna","ya","naee"]},"22":{"input":[2,3,5],"tlp":["den",74661],"trp":["nd",121952],"tlw":["den",37787],"trw":["ned",3945],"lp":["den","end","ende","sen","ens","denn","sy","syn","dn"],"rp":["nd","je","nde","jen","nden","nes","ned","ys","yd","nnes","ndes"]},"23":{"input":[1,2,3,5],"tlp":["and",33662],"trp":["jae",5122],"tlw":["anden",2420],"trw":["naade",166],"lp":["and","ande","dan","aend","aand","adan","sand","anse","enda","ands","aden","dans","dann","anda","sjae"],"rp":["jae","nda","naes","nand","ndda"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["tn",2343],"trp":["nt",20514],"tlw":["b",230],"trw":["nb",169],"lp":["tn","bt","bn","bb","tb","ttn"],"rp":["nt","nb","nnt","ntn"]},"25":{"input":[1,4,5],"tlp":["ba",17182],"trp":["nat",3688],"tlw":["fann",272],"trw":["nat",367],"lp":["ba","tan","ab","ant","fan","aab","baa","ban","abt","fann","abn","aabn","tab","aabt","anta","fant"],"rp":["nat","nf","natt","nta"]},"26":{"input":[2,4,5],"tlp":["bj",1597],"trp":["nst",1389],"lp":["bj","tj","sb","stn","bs","sbn","stj","sbj","stb","tsb","tsj","bst"],"rp":["nst","jst","jt","nc","jtn","nsc","nnst","nstn"]},"27":{"input":[1,2,4,5],"tlp":["stan",2679],"trp":["nsta",211],"tlw":["sant",289],"trw":["jf",31],"lp":["stan","fj","tans","sant","tja","bas","abs","anst","anc","fja","asb","asbj","stba","bja","tanc"],"rp":["nsta","jac","nast","jtna","ntas"]},"28":{"input":[3,4,5],"tlp":["be",28242],"trp":["nte",10150],"tlw":["berre",1003],"trw":["nyt",327],"lp":["be","ten","ren","rn","br","ent","rne","ern","erne","ty","ry","ber","ente","eb","rb","eren"],"rp":["nte","ner","yr","net"]},"29":{"input":[1,3,4,5],"tlp":["bar",6004],"trp":["nar",6320],"tlw":["bare",3028],"trw":["naar",5355],"lp":["bar","ran","taen","bare","fy","bra","arn","fyr","aren","ften","abe","barn","raen","arb","bae"],"rp":["nar","naar","naer","nnar","nart"]},"30":{"input":[2,3,4,5],"tlp":["sten",6428],"trp":["nder",11117],"tlw":["syntes",1260],"lp":["sten","bes","endt","rden","bed","sty","best","rend","dern","synt"],"rp":["nder","ndt","ndr","ndre","jer","ndet","ndte","yst","nest","jern"]},"31":{"input":[1,2,3,4,5],"tlw":["andre",3868],"trw":["naesten",1049],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1106],"trw":["i",62852],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",969],"trp":["ia",2946],"tlw":["ai",51],"lp":["ai","aai","za"],"rp":["ia","iaa"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",57626],"trp":["kk",58266],"tlw":["si",1195],"trw":["k",1220],"lp":["si","sk","ski","sik","sikk","skik","sis"],"rp":["kk","ik","ikk","is","ki","ks","iss","isk","kik","iks","kki","ikki","kikk"]},"35":{"input":[1,2,6],"tlp":["ak",14837],"trp":["ka",36672],"tlw":["saki",383],"trw":["ka",36],"lp":["ak","ska","akk","ask","aks","sak","aka","aask","akka","aki","saki","sia","aak","skaa"],"rp":["ka","kas","kka","isa","kaa","ika"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",46211],"trp":["ie",12197],"tlw":["ei",2621],"lp":["ei","eie"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["xi",72],"trp":["iae",68],"tlw":["xi",27],"trw":["ix",27],"lp":["xi","aei","eia","xii","xiii"],"rp":["iae","ix"]},"38":{"input":[2,3,6],"tlp":["di",22778],"trp":["ke",75425],"tlw":["dei",9926],"trw":["ikke",27380],"lp":["di","ske","dei","ek","sid","ekk","side","esk","eis","eske","dis","eid"],"rp":["ke","kke","id","ikke","ide","ids","ise","isse"]},"39":{"input":[1,2,3,6],"tlp":["akke",3114],"trp":["ida",2239],"tlw":["skade",227],"trw":["kasse",30],"lp":["akke","aek","aekk","ake","aske","sida","adi","daek","ekka","skad","adsk","akse","eska","dska"],"rp":["ida","idda","isae","kad","kade","kae"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",75549],"trp":["it",21023],"tlw":["vi",9397],"trw":["iv",58],"lp":["ti","vi","tv","vit","vt","tti","tvi","viv","tviv","vii","tiv","vitt","tit"],"rp":["it","iv","itt","iti","ivi","itti","ivt"]},"41":{"input":[1,4,6],"tlp":["va",86367],"trp":["if",2566],"tlw":["av",10474],"lp":["va","av","fi","vaa","ava","avt","avi","fti","tia","atti","aav","vat","ati","vita","aavi"],"rp":["if","ift","ita","iva","iaf"]},"42":{"input":[2,4,6],"tlp":["vis",9768],"trp":["kt",8569],"tlw":["sit",3082],"trw":["kvit",106],"lp":["vis","sv","sti","sit","viss","vist","sitt","vs","ci","ck","vst"],"rp":["kt","ist","kv","kvi","isst","ic","ikt","isti","kst"]},"43":{"input":[1,2,4,6],"tlp":["sva",5726],"trp":["kva",3206],"tlw":["fik",2530],"trw":["kva",1095],"lp":["sva","tak","fik","takk","akt","vak","stak","stia","fis","fisk","taka","vakk","fikk"],"rp":["kva","kast","kaf","ica","kaff","ista","kat"]},"44":{"input":[3,4,6],"tlp":["ve",84601],"trp":["ir",9659],"tlw":["eit",2100],"lp":["ve","ri","ver","ev","eve","vet","rei","eit","vei","rti","rv","rev","eri","eir","eier"],"rp":["ir","ive","ier","ite","iver"]},"45":{"input":[1,3,4,6],"tlp":["var",53426],"trp":["ifte",820],"tlw":["var",42028],"lp":["var","vae","vaer","ave","vart","vera","vare","fri","eva","aev","vara","arv","ari","rav","aeve","arve","fie","evae","fir"],"rp":["ifte"]},"46":{"input":[2,3,4,6],"tlp":["ved",13498],"trp":["kr",10422],"tlw":["ved",10508],"trw":["idet",890],"lp":["ved","vd","rk","vde","tid","rke","dri","vid","erk","skr","rdi"],"rp":["kr","ker","ket","idt","kri","kte","kker","iste","idst"]},"47":{"input":[1,2,3,4,6],"tlw":["fekk",1380],"trw":["kvar",593],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",88711],"trw":["inn",1636],"lp":[],"rp":["in","ni","hi","nin","inn","nh","hin","nhi","ih","nni","iin","nnin","hn","inni","ini","inin","nnh","hii","hiin","nnhi"]},"49":{"input":[1,5,6],"tlp":["ani",619],"trp":["ha",134263],"tlw":["ah",106],"trw":["han",52972],"lp":["ani","ania","ah","ain","anni"],"rp":["ha","han","haa","haan","ina","ian","inan","hina","nia","hann","iani","inna","nha","iana","nz"]},"50":{"input":[2,5,6],"tlp":["sin",12978],"trp":["kj",25013],"tlw":["sin",8225],"trw":["nik",27],"lp":["sin","skj","skin","sni","sh"],"rp":["kj","nk","kkj","ikkj","hj","nsk","kn","nsi","kin","ink","ins","his","nkj","kni","inkj"]},"51":{"input":[1,2,5,6],"tlp":["ansk",3797],"trp":["kan",11435],"tlw":["sank",208],"trw":["hans",8898],"lp":["ansk","ank","ansi","snak","skja","sank","ash","akn"],"rp":["kan","hans","kja","nak","nakk","hja","kans","hak","kann","kna","nska","has"]},"52":{"input":[3,5,6],"tlp":["ein",9181],"trp":["he",52514],"tlw":["ein",5538],"trw":["henne",2515],"lp":["ein","eh","enh","eni","eine","eien","enin","enhe"],"rp":["he","hen","ine","henn","hei","nei","ien","inne","hy","inen","nhe","ihe"]},"53":{"input":[1,3,5,6],"tlp":["eha",758],"trp":["hae",2400],"tlw":["einannan",141],"trw":["hena",63],"lp":["eha","enha","eina","ehan","anie","enia","enz","aine","anei","ahy","ehaa","aein","einz"],"rp":["hae","haen","iane","nhae","hena","hea","hax"]},"54":{"input":[2,3,5,6],"tlp":["enk",5100],"trp":["ind",19969],"tlw":["sine",3555],"trw":["ikkje",7483],"lp":["enk","sine","din"],"rp":["ind","kje","hend","inde","kkje","yk","ken","hed","nke","iden","ykk","hje","nske","ykke","ky","kjen","nesk"]},"55":{"input":[1,2,3,5,6],"tlw":["sidan",654],"trw":["hadde",11705],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["vin",4628],"trp":["hv",25602],"tlw":["thi",1736],"trw":["hit",287],"lp":["vin","th","bi","tin","vn","thi","tni","tnin","vint","bin","vinn"],"rp":["hv","hvi","int","ib","nti","nhv","nv","ntin","hvit"]},"57":{"input":[1,4,5,6],"tlp":["van",4044],"trp":["hav",15474],"tlw":["fin",261],"trw":["navn",696],"lp":["van","fin","avn","finn","tian","vant","anv","fint","vann"],"rp":["hav","hva","nav","navn","hava","hat","havt","haab","hatt","havn","nhav"]},"58":{"input":[2,4,5,6],"tlp":["ch",2454],"trp":["nkt",2442],"tlw":["sint",142],"trw":["hvis",1991],"lp":["ch","stin","sch","svin","skib","bis","tkj","stni"],"rp":["nkt","hvis","kvin","nic","hist","istn","ich","kib","isb","isbn","kniv","inst"]},"59":{"input":[1,2,4,5,6],"tlw":["bak",310],"trw":["kant",169],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["ven",10891],"trp":["her",10731],"tlw":["ven",661],"trw":["her",6657],"lp":["ven","rin","rh","vent","even","vne","beh","bei","bev","evn","erh","the"],"rp":["her","hve","hver","inte","hev","herr","hr","yv"]},"61":{"input":[1,3,4,5,6],"tlw":["fine",333],"trw":["har",14412],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["verden",958],"trw":["kjendte",636],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["vand",853],"trw":["havde",9987],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",42],"trw":["o",923],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","trp":["oa",34],"lp":[],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",62776],"trp":["os",14215],"tlw":["so",6443],"trw":["os",3796],"lp":["so","sos","sso","soso"],"rp":["os","oss","oso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",147],"trp":["ow",102],"trw":["ossaa",45],"lp":["wo","aso","aaso","asso"],"rp":["ow","ossa","owa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",687],"trp":["oe",3728],"trw":["-",3322],"lp":["eo","e-"],"rp":["oe","-o","o-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",49],"trp":["ox",122],"lp":["a-","e-a","e-aa"],"rp":["ox","oxe","-a","-aa"]},"70":{"input":[2,3,7],"tlp":["do",13375],"trp":["od",32172],"tlw":["dod",621],"trw":["odd",219],"lp":["do","dod","eso","dode","edo","sod","dso","esso","doe"],"rp":["od","ode","odd","ose","ods","odde","oed","oede","osse","odse","odes"]},"71":{"input":[1,2,3,7],"tlp":["adso",64],"trp":["odsa",186],"lp":["adso","de-a"],"rp":["odsa","oda","odda","-aas"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",34309],"trp":["og",149705],"tlw":["to",2884],"trw":["og",122759],"lp":["to","gt","go","gg","tog","tg","tot","tott","gto","tto","gtt","got","gtto","ttog"],"rp":["og","ot","ott","ogt","ogg","otto"]},"73":{"input":[1,4,7],"tlp":["fo",74135],"trp":["of",3896],"tlw":["gaa",1786],"lp":["fo","ag","ga","agt","gaa","tag","aag","gat","aga","tfo","tga","fot","gf","fag","gaat"],"rp":["of","oft","ofa","off","otta"]},"74":{"input":[2,4,7],"tlp":["sto",16012],"trp":["ogs",5245],"tlw":["stott",99],"trw":["oc",346],"lp":["sto","gs","sog","gst","sg","gso","sost","co","sogt","stot","toc","stoc","tso","sot"],"rp":["ogs","ost","oc","ogso","osto","oct"]},"75":{"input":[1,2,4,7],"tlp":["sag",7523],"trp":["ogsa",5006],"tlw":["sagt",1463],"trw":["ogsaa",3774],"lp":["sag","gsa","gsaa","sagt","ags","sof","saag","sga","asg","asto","sofa","sgaa","aco","fos","sfo","stof","soga","gsta"],"rp":["ogsa","ofas"]},"76":{"input":[3,4,7],"tlp":["ge",87205],"trp":["or",142919],"tlw":["eg",8868],"trw":["or",301],"lp":["ge","eg","ro","tor","get","ger","gr","ege","rg","gte","gge","tro","eget"],"rp":["or","ort","ore","oge","orte","org","oget"]},"77":{"input":[1,3,4,7],"tlp":["for",64883],"trp":["ora",3045],"tlw":["for",32016],"trw":["ofte",1064],"lp":["for","age","fort","aeg","tage","rag","gar","rfo","rfor","gra","fore","gaar","fora","agte","erfo","aegg"],"rp":["ora","ofte","orta","orf"]},"78":{"input":[2,3,4,7],"tlp":["stor",7850],"trp":["ord",13774],"tlw":["seg",6090],"trw":["ord",1982],"lp":["stor","god","seg","gd","tod","stod","gde","ges","dog","godt","rod","deg","dor","rso","sor"],"rp":["ord","ors","orst","orde","odt"]},"79":{"input":[1,2,3,4,7],"tlw":["sagde",3425],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",57145],"trw":["nu",8186],"lp":[],"rp":["un","no","on","nu","unn","ono","onn","nno","ou","uu","nun","uun","onno","non","nnu","uo","uno","oun"]},"81":{"input":[1,5,7],"tlp":["au",4958],"trp":["unna",1842],"tlw":["au",141],"trw":["unna",94],"lp":["au","ano","anu","anua","anno"],"rp":["unna","ona","ua","onna","nau","nua","una"]},"82":{"input":[2,5,7],"tlp":["su",3824],"trp":["jo",23891],"tlw":["son",930],"trw":["jo",3859],"lp":["su","son","sjo","snu","sun","sno","sson","sonn"],"rp":["jo","us","ju","jon","oj","ons","jonn","jus","ojn","uss","jos","uns"]},"83":{"input":[1,2,5,7],"tlp":["aus",1274],"trp":["jona",341],"tlw":["sau",28],"trw":["jau",154],"lp":["aus","ajo","asjo","sau","anus","wu","snau","sua"],"rp":["jona","jau","ussa","onas","janu","usa","onsa"]},"84":{"input":[3,5,7],"tlp":["eno",822],"trp":["ue",3657],"tlw":["enno",276],"trw":["noe",486],"lp":["eno","eu","enno","eon","eun","enu"],"rp":["ue","one","uen","unne","oy","onne","oen","noe","onen","une","noen","yo","oyo","oye"]},"85":{"input":[1,3,5,7],"tlp":["eona",156],"trp":["oxn",30],"lp":["eona","anoe","aue","auen"],"rp":["oxn","oxne","ux","oux","oxen","oya"]},"86":{"input":[2,3,5,7],"tlp":["du",19662],"trp":["und",23222],"tlw":["du",17772],"trw":["ud",4343],"lp":["du","dnu"],"rp":["und","ud","unde","ude","uden","ndnu","use","ond","uds","ndo","udd","udse","udde","oje","nod","ndu","onde","oden"]},"87":{"input":[1,2,3,5,7],"tlw":["daud",104],"trw":["unda",243],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",11738],"trp":["ng",56304],"tlw":["gong",545],"trw":["ut",3855],"lp":["bo","gu","tu","gn","bu","tun","gun","gunn","gut","gon"],"rp":["ng","ut","nog","ug","ung","ngt","ong","ob","utt","ont"]},"89":{"input":[1,4,5,7],"tlp":["ang",17346],"trp":["nga",2499],"tlw":["gang",1862],"trw":["utan",212],"lp":["ang","gan","gang","fu","bag","angt","atu","aug","agn","fun","aut","fang"],"rp":["nga","natu","ngan","uf","nfo","uft","uta","utga"]},"90":{"input":[2,4,5,7],"tlp":["gj",23821],"trp":["ngs",2173],"tlw":["song",96],"trw":["just",538],"lp":["gj","gjo","stu","bjo","stun","tus","ggj","gus","stno"],"rp":["ngs","ust","ngst","jont","just","uc","ngso","job","jot","unst","ugus"]},"91":{"input":[1,2,4,5,7],"tlw":["sang",405],"trw":["jacob",143],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",22078],"trp":["nge",25467],"tlw":["bort",1232],"trw":["noget",4415],"lp":["gen","ru","eng","bor","enge","beg","run","tur","egen","gy"],"rp":["nge","ur","ngen","noge","yg","nger","oren","orn","ogen","nor"]},"93":{"input":[1,3,4,5,7],"tlw":["gunnar",1603],"trw":["naturen",307],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gjorde",2339],"trw":["jeg",29616],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["dagen",1077],"trw":["udenfor",448],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",83974],"trw":["lo",890],"lp":[],"rp":["il","li","ll","ol","lo","ill","oi","lli","oli","io","illi","lil","ili","lill","oll","llo","illo","lio","loi","iil"]},"97":{"input":[1,6,7],"tlp":["al",58249],"trp":["la",46808],"tlw":["al",993],"trw":["la",2277],"lp":["al","all","aal","ala","alli","ali","alla","aala","alo"],"rp":["la","laa","lla","ola","illa","ial","lai","olai","lia","ila","oia"]},"98":{"input":[2,6,7],"tlp":["sl",12627],"trp":["ko",30079],"tlw":["slik",1363],"trw":["los",291],"lp":["sl","sli","slik","sol","slo"],"rp":["ko","ok","ls","lik","lk","kl","olk","lsk","ils","oko","kol","oks","ilk","okk","los"]},"99":{"input":[1,2,6,7],"tlp":["skal",8407],"trp":["kal",10316],"tlw":["skal",8110],"trw":["kalla",209],"lp":["skal","sla","saal","ako","als","sal","slaa","alsk","alk","asl"],"rp":["kal","kla","las","lska","lass","kall","lsa","lask","lak","isla"]},"100":{"input":[3,6,7],"tlp":["el",77241],"trp":["le",79550],"tlw":["elle",34],"trw":["lille",1039],"lp":["el","ell","elle","eli","ele","eil","elli","eel","eile"],"rp":["le","lle","ille","ole","oie","lei","ile","lie","iel","lel","olle"]},"101":{"input":[1,3,6,7],"tlp":["ale",7840],"trp":["lae",9587],"tlw":["alle",5666],"trw":["lea",237],"lp":["ale","alle","ael","aale","aell","ella","aele","ela","alae","alie","alei","eal","eale","aael","alex"],"rp":["lae","laae","lea","iael","lex"]},"102":{"input":[2,3,6,7],"tlp":["els",10495],"trp":["ld",45157],"tlw":["del",665],"trw":["lod",1164],"lp":["els","del","sel","eld","else","deli","elsk","dl","elde"],"rp":["ld","lde","ild","ilde","old","lse","kel","led","lid","lede","keli"]},"103":{"input":[1,2,3,6,7],"tlw":["saaledes",1295],"trw":["lad",661],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["til",52776],"trp":["ig",98658],"tlw":["til",41443],"trw":["liv",1338],"lp":["til","vil","vo","gi","gl","tig","till","tl","gti"],"rp":["ig","lig","ov","lt","lv","igt","liv","lg","lit","ligt","lov"]},"105":{"input":[1,4,6,7],"tlp":["alt",10974],"trp":["lag",4727],"tlw":["alt",4399],"trw":["olav",641],"lp":["alt","fol","tal","fl","gav","fal","gla","alv","talt","folg","alti","flo","fla","tilf","gif"],"rp":["lag","lf","lav","lat","ilf"]},"106":{"input":[2,4,6,7],"tlp":["sig",27397],"trp":["lst",1344],"tlw":["sig",21706],"lp":["sig","gik","tok","stil","sigt","tils","vilk","stol","slig","sov","gvis","slog","gikk","stig"],"rp":["lst","lts","kog","likt","okt","kto"]},"107":{"input":[1,2,4,6,7],"tlw":["folk",2816],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["vor",14150],"trp":["ige",17385],"tlw":["eller",6110],"trw":["over",7437],"lp":["vor","elig","rl","vel","elv","rig","rli","rlig","elt","erl"],"rp":["ige","ove","ler","over","ller","lige","lev","lte","let","live"]},"109":{"input":[1,3,4,6,7],"tlw":["tale",1360],"trw":["laegge",464],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["vilde",7016],"trw":["lidt",2153],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["aldrig",2153],"trw":["idag",668],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",30354],"trw":["hun",21044],"lp":[],"rp":["ho","hu","hun","ul","lu","hol","lin","hon","hono","nl","hoi","uli","ull","oin","nli","hil","llin","oh","oni","nhil"]},"113":{"input":[1,5,6,7],"tlp":["anl",884],"trp":["lan",10243],"tlw":["alonzo",24],"trw":["hall",138],"lp":["anl","anli","ahl"],"rp":["lan","hal","lau","hall","nla","oha","ohan","nal","onal","nnla","nlau","llan","hau","onla","ula","nlan","ulia"]},"114":{"input":[2,5,6,7],"tlp":["sku",10170],"trp":["ku",23180],"tlw":["sjol",372],"trw":["nok",3367],"lp":["sku","skul","skjo","slu"],"rp":["ku","kun","kul","nok","kon","kjo","uk","hos","hus","ukk","noko","kjon","kunn","jol","lj","jul"]},"115":{"input":[1,2,5,6,7],"trw":["hakon",849],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eho",965],"trp":["hel",9131],"trw":["hele",2760],"lp":["eho","elen","enl","ehol"],"rp":["hel","len","ly","yl","hele","hell","oine","lene","olen","ule","ulle","hoie","hoy","heil","uly","nel"]},"117":{"input":[1,3,5,6,7],"tlw":["alene",964],"trw":["nella",82],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["skulde",7929],"trw":["kunde",7993],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["sjael",299],"trw":["land",975],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",22281],"trp":["ing",20917],"tlw":["bli",1395],"trw":["hoit",425],"lp":["bl","bli","ting","gh","bliv","tilb","blo"],"rp":["ing","hvo","ning","lb","igh","ilb","hov","ling","ligh","hvil","lut","ntl","ntli"]},"121":{"input":[1,4,5,6,7],"tlw":["gunnlaug",319],"trw":["langt",1662],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["blik",491],"trw":["och",329],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["ansigt",724],"trw":["langs",495],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["blev",6367],"trw":["hvor",4988],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["tilbage",1441],"trw":["laenge",1067],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["gjekk",2117],"trw":["igjen",3313],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["ganske",1701],"trw":["landet",659],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",6585],"trw":["p",102],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",4962],"trp":["pa",49694],"trw":["paa",26138],"lp":["ap","app","aap","apa","appa","aapa"],"rp":["pa","paa","pap","ppa","ppaa","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",8870],"trp":["ps",217],"trw":["ps",26],"lp":["sp"],"rp":["ps","psp"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",590],"trp":["pas",1229],"tlw":["saapas",42],"trw":["pas",58],"lp":["spa","saap","apas","asp"],"rp":["pas","pass","paas","psa","pspa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",1790],"trp":["pe",12061],"trw":["'",36],"lp":["ep","epp","eppe","epe","e'"],"rp":["pe","ppe","pee","'e","pep","pepp"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["appe",605],"trp":["pae",444],"trw":["'a",44],"lp":["appe","ape","a'","epa","aape","eppa"],"rp":["pae","paee","'a","pea"]},"134":{"input":[2,3,8],"tlp":["spe",488],"trp":["pd",356],"lp":["spe","dp","esp","espe","sep","dsp","edp","s'","d'","d'e","es'","des'","ed'","dep"],"rp":["pd","ped","pede","pped","pes","ppes"]},"135":{"input":[1,2,3,8],"tlp":["spae",291],"trp":["pda",290],"tlw":["sa'",71],"trw":["passe",167],"lp":["spae","dpa","dpaa","sa'","edpa","aspe","depa"],"rp":["pda","pad","paed"]},"136":{"input":[4,8],"tlp":["tp",173],"trp":["pt",1987],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",508],"trp":["pf",337],"tlw":["tapt",32],"lp":["apt","tpa","tap","tapt","tpaa"],"rp":["pf","pta","paaf","pfa","pfat","ptat","pat","ppat","patt"]},"138":{"input":[2,4,8],"trp":["pst",23],"lp":[],"rp":["pst"]},"139":{"input":[1,2,4,8],"tlp":["cap",53],"trp":["past",196],"trw":["paastaa",25],"lp":["cap","capp"],"rp":["past"]},"140":{"input":[3,4,8],"tlp":["rp",1719],"trp":["pr",6671],"tlw":["teppet",51],"trw":["per",998],"lp":["rp","erp","rep","repe","t'","et'","ept","tep"],"rp":["pr","per","pet","pre","pte","pper","ppet","petr","pete","ptr","pere","peer"]},"141":{"input":[1,3,4,8],"tlp":["rpa",1174],"trp":["pra",2577],"tlw":["rapp",178],"trw":["par",1236],"lp":["rpa","rpaa","erpa","rap","arp","rapp","trap","apte","apet","repa","arpe","apr","rape"],"rp":["pra","par","prae","part","prat","para","ptra"]},"142":{"input":[2,3,4,8],"tlp":["spr",1897],"trp":["pres",895],"tlw":["drepe",95],"trw":["prest",134],"lp":["spr","derp","drep","set'","sept","spre","sper","resp","step","rdsp","spec","d'er","dtp","rdp"],"rp":["pres","pers","pred","pdr","pec","pest"]},"143":{"input":[1,2,3,4,8],"tlw":["derpaa",639],"trw":["passer",132],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",21715],"trw":["m",266],"lp":[],"rp":["mm","mp","mn","pn","nm","np","pm","nnp"]},"145":{"input":[1,5,8],"tlp":["am",30376],"trp":["ma",44872],"trw":["man",6961],"lp":["am","amm","ama","amp","aam","apn","aman","amn","ampa"],"rp":["ma","man","maa","mann","pan","mma","nap","nma","maan","npa","mpa"]},"146":{"input":[2,5,8],"tlp":["sm",7709],"trp":["ms",1313],"lp":["sm","spj"],"rp":["ms","nsm","mj","pj","nsp","mps","mss","msp"]},"147":{"input":[1,2,5,8],"tlp":["sam",7924],"trp":["maj",624],"tlw":["smaa",580],"trw":["jaampa",181],"lp":["sam","samm","sma","smaa","sman","asm","aasm","sama","saam","ams"],"rp":["maj","maas","mas","jam","jaam","nsma","mja","mass","jamn","jamm"]},"148":{"input":[3,5,8],"tlp":["em",29102],"trp":["me",119265],"trw":["men",24935],"lp":["em","emm","emme","emn","eme"],"rp":["me","men","mme","mmen","menn","nem","pen","nnem","my","mpe","mene","ppen","mee","nep","'n"]},"149":{"input":[1,3,5,8],"tlp":["amme",6974],"trp":["mae",3374],"tlw":["apne",60],"trw":["mannen",490],"lp":["amme","ame","amen","ema","ampe","aem","apne","enpa","aame","emae","aemp","apen","emna","xem"],"rp":["mae","maen","maae","paen","mane","pmae"]},"150":{"input":[2,3,5,8],"tlp":["dem",8585],"trp":["med",39755],"tlw":["dem",8538],"trw":["med",36341],"lp":["dem","sme","dm","esm","sem","emnd","emd","emde"],"rp":["med","jem","mes","mede","mens","jemm","mmed","mend","mmes","md","mde","mnd"]},"151":{"input":[1,2,3,5,8],"tlw":["samme",2157],"trw":["mand",2119],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",528],"trp":["mt",5699],"lp":["tm","bm","ttm"],"rp":["mt","mb","mtm","mnt"]},"153":{"input":[1,4,5,8],"tlp":["amt",1276],"trp":["maat",2873],"tlw":["amt",30],"trw":["mat",345],"lp":["amt","amf","amta","fam","tma","tman","amtm","tam","tamm","amb"],"rp":["maat","mat","matt","mf","mta","mtma","napt","mant","manf","mata"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["stm",72],"trp":["mst",812],"lp":["stm"],"rp":["mst"]},"155":{"input":[1,2,4,5,8],"tlw":["samt",265],"trw":["jamt",42],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",7650],"trp":["mer",11185],"trw":["mere",2630],"lp":["rm","rme","rem","tem","erm","emt","erme","temm","rmen","remm","emte","temt","rmer"],"rp":["mer","mmer","mere","met","mte","mmet","ment"]},"157":{"input":[1,3,4,5,8],"tlw":["frem",2232],"trw":["maatte",2413],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["dermed",460],"trw":["mest",1195],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["fremmede",427],"trw":["praesten",521],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",3962],"lp":[],"rp":["pi","ip","ipp","ppi","pip","pii","ipi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",565],"trp":["papi",297],"trw":["pipa",30],"lp":["api","apii","aapi"],"rp":["papi","ipa","pia","pipa"]},"162":{"input":[2,6,8],"tlp":["spi",1562],"trp":["pis",688],"tlw":["skip",130],"lp":["spi","spis","skip"],"rp":["pis","kip","pik","isp","kipp","kp","pk","psk","pski","psi","kipi","ips","kips"]},"163":{"input":[1,2,6,8],"tlp":["skap",1414],"trp":["kap",2212],"tlw":["skipa",35],"trw":["kap",53],"lp":["skap","spak"],"rp":["kap","pak","kapi","kapp","pakk","kasp","kipa","kapa"]},"164":{"input":[3,6,8],"tlp":["epi",51],"trp":["ippe",579],"lp":["epi"],"rp":["ippe","ipe","pei","i'","pipe"]},"165":{"input":[1,3,6,8],"trp":["paei",34],"lp":[],"rp":["paei"]},"166":{"input":[2,3,6,8],"tlp":["spid",160],"trp":["pise",465],"tlw":["spise",213],"trw":["pike",73],"lp":["spid","spek","spei","espi","dpi","edpi"],"rp":["pise","kipe","pid","pike","pek","pids","ispe","'k","peis","idsp"]},"167":{"input":[1,2,3,6,8],"tlw":["skape",20],"trw":["pakke",59],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["vp",22],"trp":["pit",244],"lp":["vp"],"rp":["pit","ipt"]},"169":{"input":[1,4,6,8],"tlp":["apit",244],"trp":["pita",83],"lp":["apit","vap","vaap","vpa"],"rp":["pita","pav","paav"]},"170":{"input":[2,4,6,8],"tlp":["cip",35],"trp":["pist",223],"tlw":["spist",76],"lp":["cip"],"rp":["pist"]},"171":{"input":[1,2,4,6,8],"tlw":["skapt",72],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",118],"trp":["pri",1351],"lp":["rip","ript","ripe","tepi"],"rp":["pri","pir","pire","ipet","peri","ptei","pite","ptri","priv","piir","ipte","peti","prii","prei"]},"173":{"input":[1,3,4,6,8],"tlw":["appetit",31],"trw":["parti",114],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["skipet",189],"trw":["pris",147],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["skarpe",106],"trw":["paris",116],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",30489],"trw":["min",5651],"lp":[],"rp":["mi","min","im","imi","ph","him","imm","mh","himm","imp","hm","minn","pin","mni","mnin","inm","phi","phin","nim","pni"]},"177":{"input":[1,5,6,8],"tlp":["ami",591],"trp":["ham",10774],"trw":["ham",10248],"lp":["ami","aim","aima","apni","amin","aham"],"rp":["ham","hamm","mai","ima","iman","inma","hama","maim","hamp","hma","hman","mina","hap","pian"]},"178":{"input":[2,5,6,8],"tlp":["smi",1350],"trp":["mk",1125],"trw":["km",55],"lp":["smi","sim","simp","skim","simi"],"rp":["mk","mis","km","msi","kim","ism","mins","mkj","misk","mik","ksim","insp","mpsk","ims","imss"]},"179":{"input":[1,2,5,6,8],"tlw":["skam",220],"trw":["kamp",171],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["eim",1710],"trp":["ime",2104],"trw":["mine",1626],"lp":["eim","eime","emni","enim"],"rp":["ime","mine","mei","heim","imme","meni","mein","hem","mhe","phe","hemm","impe","menh","imen","pine","hemn"]},"181":{"input":[1,3,5,6,8],"trw":["ha'",122],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["deim",320],"trw":["hjem",1228],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["aminda",55],"trw":["maaske",483],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",1156],"trp":["mit",1962],"trw":["mit",1634],"lp":["tim","timm","tmi","tmin","vm","vim"],"rp":["mit","mti","mv","ntim","mitt","imt","pib","mvi","mvit","mith","mint","pint","imit"]},"185":{"input":[1,4,5,6,8],"tlw":["vapni",74],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["bisp",71],"trw":["minst",66],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"trw":["knapt",173],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["time",369],"trw":["meir",910],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["varme",418],"trw":["marthe",201],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"trw":["mindre",926],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["skarphedin",261],"trw":["maerke",210],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",14625],"trw":["op",5953],"lp":[],"rp":["op","po","opp","opo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",23],"trp":["opa",359],"lp":["apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["spo",1607],"trp":["pos",227],"lp":["spo"],"rp":["pos","ops","osp","poss","pso","opso","opsp"]},"195":{"input":[1,2,7,8],"trp":["ospa",68],"lp":[],"rp":["ospa","opas"]},"196":{"input":[3,7,8],"trp":["oppe",1803],"trw":["oppe",861],"lp":[],"rp":["oppe","ope","-p","-pe","poe","o'","'o"]},"197":{"input":[1,3,7,8],"trp":["opae",89],"lp":[],"rp":["opae"]},"198":{"input":[2,3,7,8],"tlp":["dop",25],"trp":["opd",356],"trw":["posse",49],"lp":["dop","dope"],"rp":["opd","poes","pose"]},"199":{"input":[1,2,3,7,8],"trw":["opad",95],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1476],"trp":["opt",955],"tlw":["top",86],"trw":["pot",131],"lp":["top","topp","ttop"],"rp":["opt","pot","pg","opg","pog","pott","pto","opto","ptog"]},"201":{"input":[1,4,7,8],"trp":["opf",337],"trw":["optat",55],"lp":[],"rp":["opf","opta","pfo","opfo","ptag","pga","opga","opfa","pag","pagt"]},"202":{"input":[2,4,7,8],"tlp":["stop",159],"trp":["post",133],"tlw":["spog",66],"trw":["post",83],"lp":["stop","spog","spot"],"rp":["post","psog","opst","psto"]},"203":{"input":[1,2,4,7,8],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",1406],"trp":["por",1635],"tlw":["ropte",390],"trw":["potter",86],"lp":["rop","etop","ropp","ropt","erop","grep","t-p","t-pe"],"rp":["por","pro","porg","opte","opr","orp","prog","port","optr","pote","opro","pror"]},"205":{"input":[1,3,4,7,8],"tlw":["ropa",47],"trw":["praeg",79],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["spor",486],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["pastor",149],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",89943],"trw":["om",15683],"lp":[],"rp":["om","mo","omm","um","mu","pu","nom","onom","up","mun","upp","pun","mon","umm","umu","mum","omn","opm","munn","mom"]},"209":{"input":[1,5,7,8],"tlp":["amu",199],"trp":["oma",845],"trw":["opnaa",33],"lp":["amu","amun","amum","aum","anmo","aup"],"rp":["oma","uma","omma","pau","opma","oman","opna","uppa","manu","umaa","mau","upa","napo"]},"210":{"input":[2,5,7,8],"tlp":["som",43671],"trp":["oms",911],"tlw":["som",39317],"trw":["mons",44],"lp":["som","spu","smu","somm","smo","smun","sum","sup","supp","spjo"],"rp":["oms","osm","jom","mus","jop","nsom","pus","mons","mos","pjo"]},"211":{"input":[1,2,5,7,8],"tlw":["saasom",54],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",392],"trp":["omme",9224],"trw":["munnen",129],"lp":["enom","emo","epu"],"rp":["omme","umme","uppe","ome","omne","omen","ume","moe","mue","opme","upe","ompe","mome","umen","muen","moen","omy"]},"213":{"input":[1,3,5,7,8],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",370],"trw":["mod",2528],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["aasmund",396],"trw":["pause",88],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",707],"trp":["mot",4043],"tlw":["tom",164],"trw":["mot",2107],"lp":["tom","tum","tomm","gm","gom","tomt","gmu","gmun","tup"],"rp":["mot","omt","mott","munt","mg","pub","omb","mbo","ombo","mob","omg"]},"217":{"input":[1,4,5,7,8],"tlw":["bagom",48],"trw":["magt",486],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["spjot",59],"trw":["pust",52],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["smag",190],"trw":["magnus",34],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"trw":["meget",2988],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["form",273],"trw":["mange",2669],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["gjennem",1415],"trw":["moder",464],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["sprang",713],"trw":["majoren",426],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",3409],"trw":["lop",55],"lp":[],"rp":["pl","lp","pil","pill","lip","lipp","opl","pol","poli","pli","plo","opi","lop","oppi","polo","lpi","oplo"]},"225":{"input":[1,6,7,8],"tlp":["alp",182],"trp":["pla",1343],"trw":["paal",37],"lp":["alp","apol"],"rp":["pla","lap","lapp","lpa","paal","pal","opla","pall"]},"226":{"input":[2,6,7,8],"tlp":["spil",667],"trp":["kop",224],"tlw":["spil",91],"trw":["kop",63],"lp":["spil","slip","skop","spl","spok"],"rp":["kop","klip","pok","pokk","okp","kopp","opk","pko","opko","opsi","plos"]},"227":{"input":[1,2,6,7,8],"tlw":["slap",263],"trw":["plass",85],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elp",1444],"trp":["pel",799],"trw":["pleie",43],"lp":["elp","elpe","elpi"],"rp":["pel","ple","lpe","plei","pell","lep","ople","lepp","peil","li'","ielp","ppel","pele","le'","peli","pile"]},"229":{"input":[1,3,6,7,8],"trw":["la'",34],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["slippe",195],"trw":["pleiede",91],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["selskap",63],"trw":["plads",500],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"trp":["pig",957],"trw":["pligt",151],"lp":[],"rp":["pig","pov","opov","plig","pilt","lpt","pgi","opgi","pgiv","pitl","opig","ppig","lvp","plog"]},"233":{"input":[1,4,6,7,8],"trw":["opgav",46],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["spilt",21],"trw":["opkog",50],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["slapt",29],"trw":["kapital",22],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["pige",436],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",106],"trw":["opgave",88],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["spiller",93],"trw":["krop",146],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["sprak-",207],"trw":["kapitel",109],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",5031],"trw":["honom",2975],"lp":[],"rp":["ml","imo","mil","lm","mul","lom","muli","plu","mli","mill","llom","lmi","lmin","hop","omh","umul","mili","uml","iml","oph"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alm",22],"trw":["maal",213],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["smil",397],"trw":["kom",8732],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["smal",74],"trw":["koma",530],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["emil",46],"trw":["mellem",1590],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["amalie",193],"trw":["lampen",95],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["smukke",238],"trw":["komme",2169],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["allesammen",166],"trw":["hjaelp",283],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glum",116],"trw":["mig",10638],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["gamal",73],"trw":["opfatning",67],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["smukt",152],"trw":["punkt",134],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["stockmann",328],"trw":["langsomt",378],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["temmelig",368],"trw":["nemlig",491],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["gamle",2534],"trw":["maelte",821],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["smilte",389],"trw":["kommer",2127],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["bokselskap",856],"trw":["litteraturselskap",207],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/pl-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/pl-keymap.json index 63735a422d..b5c56571c0 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/pl-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/pl-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",468],"tlw":["a",8903],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",175],"tlw":["s",502],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",42610],"tlw":["w",22418],"lp":["as","wa","aw","ws","sw","sa","awa","aws","was","asa","wsw","swa","asw","waw","ww","sas","wsa","wawa","wwa","awas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",518],"tlw":["e",106],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ax",1780],"tlw":["x",92],"lp":["ax","ea","xa","axa","ex"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["es",52602],"tlw":["d",228],"lp":["es","ed","de","se","ede","dd","ds","des","sed","dde","eds","ese","ess","see","sede","eed","dese","ded","dede","dee"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",35569],"tlw":["dwa",1359],"lp":["ad","da","we","ew","dw","ada","wd","awe","daw","awd","ewa","swe","dwa","dawa","ase","ade","eda","sad","ews","wes"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",560],"tlw":["t",88],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",68848],"tlw":["ta",2431],"lp":["ta","at","ata","tat","fa","af","ft","aft","ff","tta","att","fat","tata","atta","fta","afta"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",75161],"tlw":["c",338],"lp":["st","sc","tc","ts","stc","ct","cs"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ac",50494],"tlw":["stas",540],"lp":["ac","sta","ca","tw","wc","wt","ast","twa","tac","stw","wac","stac","stat","aca","wst","tas","taw","staw","asta","asc"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["te",45936],"tlw":["te",3281],"lp":["te","er","tr","re","et","ter","etr","ret","rt","ere","ete","tre","rte","tere","tet","ert","ett","rete","rr","erte"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",55331],"tlw":["ar",328],"lp":["ra","ar","era","tar","atr","ara","tra","ate","tera","are","eta","art","rat","fe","tare","raf","tara","traf","fr","ef"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ec",48514],"tlw":["rece",1133],"lp":["ec","ce","est","dr","str","esc","rs","ste","rd","rc","erc","ece","res","este","sr","ser","rec","serc","dc","rce"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["raw",8030],"tlw":["serca",563],"lp":["raw","wr","rac","rw","war","ard","star","erw","wet","awet","dac","rawd","twar","wte","rad","stra","rws","erws","rwa","wra"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",7406],"trw":["n",208],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",48964],"trp":["na",112653],"tlw":["anna",723],"trw":["na",21439],"lp":["an","ana","ann","anna"],"rp":["na","nan","nna","nana","naa"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",7535],"trp":["js",5713],"trw":["j",184],"lp":["sn","sj"],"rp":["js","ns","jn","jj"]},"19":{"input":[1,2,5],"tlp":["aj",20342],"trp":["ja",55861],"tlw":["aja",432],"trw":["ja",8216],"lp":["aj","wn","aja","asn","wan","awn","wna","wj","sna","ans","ajw"],"rp":["ja","nas","naj","naw","jan","jas","jw","jasn","najw"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",30498],"trp":["ne",25369],"trw":["ne",747],"lp":["en","enn","ey","ene","enny","eye","enne","een","eny"],"rp":["ne","ny","yn","nny","nne","yny","ye","yne","ynn","yy","nee"]},"21":{"input":[1,3,5],"tlp":["any",2470],"trp":["yna",3436],"tlw":["aye",124],"lp":["any","ane","ena","ay","anny","aye","ean","anne","enna"],"rp":["yna","nany","nane","ynan","yea","nex","ya","yya"]},"22":{"input":[2,3,5],"tlp":["ej",45590],"trp":["je",68792],"tlw":["syn",389],"trw":["jej",5718],"lp":["ej","dy","dn","edn","edy","sy","ejs","dne","den"],"rp":["je","ys","jes","jed","jedn","jej","nd","yj","yd","jd","nej"]},"23":{"input":[1,2,3,5],"tlp":["wy",23292],"trp":["nad",7353],"tlw":["and",2280],"trw":["nad",3785],"lp":["wy","dna","edna","aje","and","ewn","wys","wne","daj","adn","dan","wyd","wej","wyda"],"rp":["nad","yw","nawe","ywa","yja","yda"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["tn",4086],"trp":["nt",3555],"tlw":["b",226],"lp":["tn","bn"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ba",16398],"trp":["nat",3728],"tlw":["ant",708],"lp":["ba","ab","tan","atn","tatn","ant","tana","aba","bab","tna","bna","ban","fn","baba","fab","bat"],"rp":["nat","nta","nf","nab"]},"26":{"input":[2,4,5],"tlp":["cj",4424],"trp":["nc",4520],"tlw":["tj",127],"lp":["cj","cn","bc","bs","stn","cb","bj","sb","tj"],"rp":["nc","jsc","jc","nst","jst","jb","jt","ncj","nts"]},"27":{"input":[1,2,4,5],"tlp":["stan",3867],"trp":["jac",5445],"tlw":["stan",180],"trw":["jac",97],"lp":["stan","ajac","taj","acj","bac","baw","anc","staj","cja","caj","wnat"],"rp":["jac","nac","nast","nca","nstw","jsca","jca","nasc","jat"]},"28":{"input":[3,4,5],"tlp":["by",46129],"trp":["yt",8428],"tlw":["ten",4023],"trw":["net",73],"lp":["by","ty","ry","be","eb","br","ten","rn","eby","ety","ent","ern","byt","tyn","ber"],"rp":["yt","yb","yby","yr","net"]},"29":{"input":[1,3,4,5],"tlp":["bra",4962],"trp":["yta",3398],"tlw":["aby",2523],"trw":["nate",242],"lp":["bra","bar","ary","aby","aty","eba","ran","arn","tary","rna","abr","aryn","ryna","brat"],"rp":["yta","nar","naty","yra","yba","ynar"]},"30":{"input":[2,3,4,5],"tlp":["cy",8269],"trp":["yc",28802],"tlw":["byc",2943],"trw":["jest",9582],"lp":["cy","bed","tyc","tej","ryc","byc","ejsc","dyt","edyt","dyb","dyby","rej","cej","ecej","sty"],"rp":["yc","jest","yst","nyc","jr"]},"31":{"input":[1,2,3,4,5],"tlw":["stary",943],"trw":["nawet",3158],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",2169],"trw":["i",28082],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["za",76007],"trp":["ia",68340],"tlw":["z",15934],"trw":["iz",305],"lp":["za","zi","az","zia","ai","aza","azi","zz","zaz","zza","zzi","zaza","zai"],"rp":["ia","iz","iaz","iza","iaza","izz","iazi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",90184],"trp":["ki",45823],"tlw":["si",39],"trw":["is",1279],"lp":["si","sk","ski","sis","sks"],"rp":["ki","is","ik","ks","isk","ksi","kis","iki","isi","kk","iski","kki","kik","iss"]},"35":{"input":[1,2,6],"tlp":["wi",87989],"trp":["ka",38575],"tlw":["zas",2170],"trw":["ka",698],"lp":["wi","sz","ak","wsz","zas","wia","aki","zw","sza","asz","zk","swi","sia","awi","wz","ska","zis"],"rp":["ka","iw","kaz"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",1323],"trp":["ie",368657],"lp":["ei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",125561],"trp":["iez",5190],"tlw":["ze",12240],"trw":["ize",38],"lp":["ze","zie","ez","zez","aze","eza","eze","azie","ezi","ziez","ezie","ziei","xi","zeze"],"rp":["iez","iaze","ize","ieza","iezi","ieze"]},"38":{"input":[2,3,6],"tlp":["sie",75832],"trp":["kie",18740],"tlw":["sie",65236],"trw":["ide",164],"lp":["sie","ek","dk","eki","esi","sied","eks","skie","esie","eke"],"rp":["kie","ied","ies","iek","id","kied","ke","iesi","ieks","ieki"]},"39":{"input":[1,2,3,6],"tlp":["dz",71993],"trp":["iedz",11935],"tlw":["dzis",2729],"trw":["kad",1125],"lp":["dz","dzi","wie","dzie","edz","sze","esz","edzi","zes","zd","dzia","zed","wied","zek","wid","wiek","adz","eka"],"rp":["iedz","iew"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",1632],"trp":["it",10113],"tlw":["v",123],"trw":["it",677],"lp":["ti","vi","vii","tv","tvi","tti","tiv","viii"],"rp":["it","iv","iti","itt","itiv"]},"41":{"input":[1,4,6],"tlp":["zt",5011],"trp":["iat",4655],"tlw":["tai",754],"trw":["if",169],"lp":["zt","fi","zat","zta","tai","av","fia","afi","va","tav","vaa","vaaa","tia","azat","ait","fit"],"rp":["iat","ita","iata","if"]},"42":{"input":[2,4,6],"tlp":["ci",62579],"trp":["ic",34576],"tlw":["ci",3112],"trw":["isc",445],"lp":["ci","sci","tk","stk","tki","stki","cic","ck","tkic","cis","vis","scic"],"rp":["ic","kt","kic","ist","isc","ikt","isci","ici"]},"43":{"input":[1,2,4,6],"tlp":["cz",84284],"trp":["iast",2879],"tlw":["tak",10183],"trw":["itak",560],"lp":["cz","tak","cza","zc","cia","szc","zcz","szcz","acz","zac","czas","wiat","taki","aci","wcz","scia","zacz","wic"],"rp":["iast","iac"]},"44":{"input":[3,4,6],"tlp":["ri",3494],"trp":["ier",13295],"tlw":["tie",65],"trw":["ir",2637],"lp":["ri","ve","rie","ev","vie","ver","rii","eve","ever","eri","tri","eir","rei"],"rp":["ier","iet","ir","ite","ietr","iete","iter"]},"45":{"input":[1,3,4,6],"tlp":["rz",90643],"trp":["ierz",2732],"tlw":["teraz",3005],"trw":["iteraz",110],"lp":["rz","rze","raz","trz","rzez","rza","arz","trze","zar","zr","eraz","erz","atrz","tez","zer","raze","trza","zara","zet"],"rp":["ierz"]},"46":{"input":[2,3,4,6],"tlp":["cie",23265],"trp":["iec",26434],"tlw":["cie",2111],"trw":["itd",184],"lp":["cie","eci","esci","scie","rek","ecie","rsk","rski","tkie","siec","rk"],"rp":["iec","kr","ieci","kre","iesc","kret","iece","ice","ierc"]},"47":{"input":[1,2,3,4,6],"tlw":["wiec",3828],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["ni",174405],"trw":["in",1322],"lp":[],"rp":["ni","in","inn","ini","hi","hn","nni","hin","inni","hni","nii","nin","iin","iinn","inii","nh"]},"49":{"input":[1,5,6],"tlp":["zn",27628],"trp":["nia",13186],"tlw":["ani",2778],"trw":["niz",2084],"lp":["zn","ani","zna","zni","ania","zan","zin","azn","zani","azni","znan"],"rp":["nia","ha","ina","niz","ian","naz","nani","han","hna"]},"50":{"input":[2,5,6],"tlp":["sni",3453],"trp":["nik",4194],"tlw":["sni",32],"trw":["his",454],"lp":["sni","sh"],"rp":["nik","kn","nk","ij","ji","nis","his","kni","jni","jsk","nisk","nsk","nki","nski","kin","ins","jis","isn"]},"51":{"input":[1,2,5,6],"tlp":["wni",5839],"trp":["jak",28350],"tlw":["wina",268],"trw":["jak",14792],"lp":["wni","win","zaj","wini","znaj","asni","szn","zj","wnia"],"rp":["jak","nak","jaki","hw","hwi","nasz","ija","kna","kan","jaka","iwn"]},"52":{"input":[3,5,6],"tlp":["eni",11343],"trp":["nie",115708],"trw":["nie",47473],"lp":["eni","enie"],"rp":["nie","he","ien","ieni","yni","inie","hy","inny","nien","inne","ynie","ine","iny","hen","nnie","hey","ienn","hnie"]},"53":{"input":[1,3,5,6],"tlp":["zy",86799],"trp":["yz",4726],"tlw":["zenie",780],"trw":["nanie",104],"lp":["zy","anie","zen","zeni","znie","zyn","enia","zyz","azy","zien","ezy","zne","zny","zyni","zyna","zyzn","ezn"],"rp":["yz","niez","yzn"]},"54":{"input":[2,3,5,6],"tlp":["dni",6393],"trp":["iej",15859],"tlw":["she",1219],"trw":["kiedy",2587],"lp":["dni","snie","dnie","she","esni","ekn"],"rp":["iej","niej","yk","iedy","iejs","kiej","nies","ysi","ieje","iekn","niek","nied","ije","ysie"]},"55":{"input":[1,2,3,5,6],"tlw":["dzien",1087],"trw":["jednak",3118],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",21105],"trp":["ib",902],"tlw":["bi",50],"lp":["bi","th","tni","thi","bni","thin","bit","bin","bh","tin"],"rp":["ib","ht","nib","ith","int","itn","hb","nit","niti","hit"]},"57":{"input":[1,4,5,6],"tlp":["zb",4172],"trp":["hat",1109],"tlw":["that",591],"trw":["izba",42],"lp":["zb","tani","bia","zab","atni","abi","tha","that","zabi","zbi","zba","tnia","ath","bani"],"rp":["hat","itan","izb","inf","hta","hav"]},"58":{"input":[2,4,5,6],"tlp":["ch",74579],"trp":["ich",14715],"tlw":["bci",274],"trw":["ich",4866],"lp":["ch","chc","chci","bic","cji","chn","cich","bk"],"rp":["ich","nic","hc","kich","kb","hci","nich","icj","inic","nicj","nikt","jci"]},"59":{"input":[1,2,4,5,6],"tlw":["znich",449],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bie",13336],"trp":["ieb",5068],"tlw":["the",3042],"trw":["her",1605],"lp":["bie","ebi","the","ebie","tnie","biet","rni","bnie"],"rp":["ieb","iebi","her","hr","nieb","nier","iety","hyb","iby","hry","iern","niby"]},"61":{"input":[1,3,4,5,6],"tlw":["bez",2806],"trw":["nieraz",449],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tych",1735],"trw":["niech",1470],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["czy",5191],"trw":["jeszcze",5354],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",763],"trw":["o",6106],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",782],"trp":["oa",209],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",12921],"trp":["os",50523],"tlw":["so",247],"lp":["so","sos","soo"],"rp":["os","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",32063],"trp":["ow",64725],"tlw":["wo",109],"trw":["ow",544],"lp":["wo","swo","awo","sow","wos","wow","aso","asow","wso","wswo","aswo","awos"],"rp":["ow","owa","owo","ows","osa","osw","osow","owos"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",700],"trp":["-o",242],"trw":["-",43777],"lp":["eo"],"rp":["-o","oe"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",67],"trp":["-a",577],"trw":["-a",43],"lp":["xo","axo","a-"],"rp":["-a","ox"]},"70":{"input":[2,3,7],"tlp":["do",46979],"trp":["od",49479],"tlw":["do",12671],"trw":["od",4136],"lp":["do","dos","dod","eso","dodo","doo","edo","doe","does"],"rp":["od","odo","ode","odd","ose","ods","-d","odde","odos","oes","-do"]},"71":{"input":[1,2,3,7],"tlp":["wod",4591],"trp":["owe",3290],"tlw":["woda",528],"trw":["owe",142],"lp":["wod","dow","ado","dwo","ewo","dowo","wdo","dowa","ados","woda","doda","wode","awdo","dosw"],"rp":["owe","oda","owod","odda","owad","odw"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",72862],"trp":["ot",22422],"tlw":["to",23311],"trw":["oto",1109],"lp":["to","go","got","goto","tot","too","goo"],"rp":["ot","og","oto","ogo","ott","oog"]},"73":{"input":[1,4,7],"tlp":["ag",8439],"trp":["oga",3404],"tlw":["ato",208],"trw":["of",1252],"lp":["ag","ga","fo","ato","aga","ago","gat","tota","fot","tof","gf","gata"],"rp":["oga","of","ota","off","ogat","otta","ofa"]},"74":{"input":[2,4,7],"tlp":["co",15974],"trp":["oc",26832],"tlw":["co",5162],"lp":["co","sto","cos","gos","tos","cot","gosc","stos","stot","tosc","coto","toc","cott","sco"],"rp":["oc","osc","ost","osto","otc","ogos"]},"75":{"input":[1,2,4,7],"tlp":["two",4901],"trp":["osta",7294],"tlw":["gotow",216],"trw":["owoc",43],"lp":["two","tow","stwo","towa","woc","cow","wag","gw","wosc","gow","wg","wowc"],"rp":["osta","otw","owc","owac","otow","oca","owt","ogow"]},"76":{"input":[3,4,7],"tlp":["ro",57299],"trp":["or",45488],"tlw":["tego",4358],"trw":["-to",452],"lp":["ro","eg","ego","tor","tore","teg","tego","tro","gr","ge","rog","gor","gro","reg","ero","rego"],"rp":["or","ore","ote","otr"]},"77":{"input":[1,3,4,7],"tlp":["tora",3418],"trp":["ora",7565],"tlw":["for",554],"trw":["-ato",55],"lp":["tora","for","aro","rag","ateg","ega","gra","roga","gar","age","gora","arg","arto","areg","fro","taro"],"rp":["ora","otra","-ta","ogar"]},"78":{"input":[2,3,4,7],"tlp":["gd",17099],"trp":["ors",3173],"tlw":["dosc",813],"trw":["odtego",117],"lp":["gd","rod","roc","ros","dro","stro","god","tors","sro","srod","drog","rost","dot","dosc","cor","dost"],"rp":["ors","odc","odr","ostr"]},"79":{"input":[1,2,3,4,7],"tlw":["wsrod",1050],"trw":["otwarte",152],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",34225],"trw":["on",3987],"lp":[],"rp":["on","no","un","nu","ou","ono","uo","onu","nuo","nno","uno","oun","oon","onn","unu","onno","non","unon","nou"]},"81":{"input":[1,5,7],"tlp":["au",3651],"trp":["ona",5686],"tlw":["aon",234],"trw":["ona",1285],"lp":["au","ano","anu","aon","aona","anno","aun","auna","qu"],"rp":["ona","nau","una","nao","ua","onan","nano","oan","oann","nona","uau"]},"82":{"input":[2,5,7],"tlp":["su",4815],"trp":["oj",23708],"tlw":["su",735],"trw":["jo",359],"lp":["su","sno","sun","sus","snu"],"rp":["oj","us","ju","nos","uj","jo","jus","ojn","oju","osn","ojs","osu","nso","ojo","osno"]},"83":{"input":[1,2,5,7],"tlp":["woj",7645],"trp":["now",8001],"tlw":["swoja",803],"trw":["jau",356],"lp":["woj","swoj","wu","anow","wno","asu","aju","woja","wojn","won","sown"],"rp":["now","own","oja","uw","uwa","owu","nowu","uja","onow"]},"84":{"input":[3,5,7],"tlp":["eu",1045],"trp":["ony",3245],"trw":["you",832],"lp":["eu","eon","eno","eun","enu"],"rp":["ony","one","-n","yo","you","neu","yno","une","ynu","-no","ynno","uny","ynuo","-nu","-on"]},"85":{"input":[1,3,5,7],"tlp":["aux",164],"trp":["ux",164],"lp":["aux","eona","eanu","eau"],"rp":["ux"]},"86":{"input":[2,3,5,7],"tlp":["du",7756],"trp":["ud",11878],"tlw":["synu",166],"trw":["jedno",549],"lp":["du","dno","dus","don","edno","ejo","dnos"],"rp":["ud","oje","odn","uje","ody","ojej","odu","udn","osy","ude","yso","udy","-j"]},"87":{"input":[1,2,3,5,7],"tlw":["swoje",1014],"trw":["nowe",458],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",17356],"trp":["ob",32371],"tlw":["tu",4701],"trw":["obu",290],"lp":["bo","tu","bu","gn","bog","gu","tob","tut","but","bot"],"rp":["ob","ug","ut","ub","obo","obn","nog","ugo","ogn","ng"]},"89":{"input":[1,4,5,7],"tlp":["gna",1454],"trp":["oba",4176],"tlw":["boga",442],"trw":["nato",715],"lp":["gna","agn","atu","tano","agna","boga","tuta","agu","toba","abo","gan"],"rp":["oba","nag","nato","uta","uga","noga","natu","nfo","obna"]},"90":{"input":[2,4,5,7],"tlp":["sob",8597],"trp":["uc",9675],"tlw":["boju",171],"trw":["noc",701],"lp":["sob","cu","stu","cju","cjus","boj","bos","scu","cno"],"rp":["uc","ust","nosc","onc","osob","noc","ojc","ncu","oncu","ocn","just"]},"91":{"input":[1,2,4,5,7],"tlw":["soba",912],"trw":["usta",582],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",10352],"trp":["ory",10533],"tlw":["gory",402],"trw":["nero",306],"lp":["ru","tory","ron","rob","tron","bro","rug","tru","rony"],"rp":["ory","ur","obr","neg","nego","yto","oty","ytor","yg","oby","obe"]},"93":{"input":[1,3,4,5,7],"tlw":["rano",301],"trw":["natury",131],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gdy",6483],"trw":["jego",6471],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["dobra",471],"trw":["justyna",463],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["lo",50381],"trw":["li",307],"lp":[],"rp":["lo","li","il","ol","io","oi","oli","olo","ilo","ili","ll","iol","lil","llo","ill","lli","lio","ilio","oil","loo"]},"97":{"input":[1,6,7],"tlp":["al",107956],"trp":["la",64546],"tlw":["zal",356],"trw":["la",391],"lp":["al","zo","ala","zl","zal","zial","alo","zlo","ali","zil","zla","zli","azal"],"rp":["la","oz","ial","ola","iala","ila","lal"]},"98":{"input":[2,6,7],"tlp":["sl",22280],"trp":["ko",47506],"tlw":["sil",387],"trw":["okolo",573],"lp":["sl","sli","slo","sil","sko"],"rp":["ko","ok","lk","kl","lko","los","oko","kol","lki","osi","ilk","kil","oki","kilk","okol"]},"99":{"input":[1,2,6,7],"tlp":["wal",9697],"trp":["owi",22633],"tlw":["slowa",956],"trw":["kilka",1527],"lp":["wal","wil","wol","wl","ako","szl","zos","wla","sla","wlas","slow"],"rp":["owi","low","las","lowi","kla","osz","lka","lowa","kow"]},"100":{"input":[3,6,7],"tlp":["el",23557],"trp":["le",60091],"trw":["ile",574],"lp":["el","eli","ele","elo","ell","ello","elli"],"rp":["le","iel","ole","ile","ieli","iele","iell","ielo","lie","lei","olei","lle","iole"]},"101":{"input":[1,3,6,7],"tlp":["ale",25698],"trp":["oze",6806],"tlw":["ale",11823],"trw":["lezal",224],"lp":["ale","zel","ela","alez","zle","ziel","zeli","zela","zale","ezal","ezel","ezl"],"rp":["oze","lez","iale","leza","iela","lale","ozle","loze"]},"102":{"input":[2,3,6,7],"tlp":["dl",18350],"trp":["lek",3460],"tlw":["sile",224],"trw":["like",346],"lp":["dl","ekl","elk","edl","esl","esli","dok","elki","eko","dol","dlo"],"rp":["lek","ielk","lod","ld","lkie","osie","led","ido","okie"]},"103":{"input":[1,2,3,6,7],"tlw":["dla",5302],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["gl",20525],"trp":["ogl",5611],"tlw":["gi",147],"trw":["ito",358],"lp":["gl","gi","glo","tol","tl","vo","gol"],"rp":["ogl","ig","ogi","lit","ito","lot","lig","igi","itol","ligi","lt","iot","oglo"]},"105":{"input":[1,4,6,7],"tlp":["tal",9006],"trp":["lat",3663],"tlw":["zato",341],"trw":["lat",1084],"lp":["tal","gla","zg","agl","tala","talo","zgo","agi","zlot","gal","atl","zgl","alt","toz"],"rp":["lat","iag","ogla","ofi","iatl","ofia"]},"106":{"input":[2,4,6,7],"tlp":["cil",3725],"trp":["kto",24526],"tlw":["glos",1013],"trw":["kto",1969],"lp":["cil","glos","tko","stko","stol"],"rp":["kto","osci","oci","lic","losc","lc","ocil","otk","oic","okt","okto","kosc","koc","isto","olic"]},"107":{"input":[1,2,4,6,7],"tlw":["glowa",1247],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["gle",3643],"trp":["ieg",7405],"tlw":["teorii",136],"trw":["ligie",262],"lp":["gle","gie","rol","rl","egl","rogi","tel","egi","role","giel"],"rp":["ieg","iego","leg","iero","lite","ori","lego","ior","ogie","legl"]},"109":{"input":[1,3,4,6,7],"tlw":["zeto",514],"trw":["oraz",543],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["drogi",663],"trw":["ktore",3303],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["gdzie",3077],"trw":["lecz",4127],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["lu",22354],"trw":["oni",779],"lp":[],"rp":["lu","ho","oni","ln","iu","lni","lon","ul","oln","niu","hl","nio","hlo","olni","hu","uni","ion","nil","lno","olu"]},"113":{"input":[1,5,6,7],"tlp":["zu",11610],"trp":["uz",13328],"tlw":["znalazl",366],"trw":["uz",245],"lp":["zu","zno","znal","zon","zul","azu","alan"],"rp":["uz","nal","ozn","ozna","lan","ozu","luz","hal","ozni","lna","nala","lani","nial"]},"114":{"input":[2,5,6,7],"tlp":["slu",3167],"trp":["ku",13470],"tlw":["skoku",179],"trw":["ku",734],"lp":["slu","slon","sku"],"rp":["ku","kon","uk","usi","koj","okoj","koni","oku","unk","nios","kun","lus","ius","nius","nku","nosi","niko"]},"115":{"input":[1,2,5,6,7],"tlw":["znowu",1380],"trw":["juz",8066],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eln",2354],"trp":["yl",37140],"trw":["-nie",970],"lp":["eln","elu","elni","eniu"],"rp":["yl","ly","ylo","onie","lnie","yli","yly","yle","nel","ily","-ni","-nie","lny","lne","len","ielu"]},"117":{"input":[1,3,5,6,7],"tlw":["zony",234],"trw":["lzy",407],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["sily",637],"trw":["jesli",2399],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["dalej",1297],"trw":["ludzi",1877],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",4510],"trp":["obi",10397],"tlw":["buvo",526],"trw":["lub",2322],"lp":["bl","gni","bli","bil","tlu","bol","tobi"],"rp":["obi","lb","ugi","lug","lub","lbo","nig","lugo","ogni","lugi","obil","obl","uv"]},"121":{"input":[1,4,5,6,7],"tlw":["albo",1927],"trw":["ognia",422],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["choc",1394],"trw":["obok",680],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["chwili",1257],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["bylo",6619],"trw":["niego",1339],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["byla",3016],"trw":["nagle",1105],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["tylko",7436],"trw":["ktory",4337],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["wszystko",2576],"trw":["oczy",2137],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",172],"trw":["p",135],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",9918],"trp":["pa",27218],"trw":["pa",145],"lp":["ap","apa","app"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",14576],"trp":["ps",984],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["wp",3537],"trp":["pas",1206],"trw":["pas",221],"lp":["wp","spa","wsp","wpa","wspa","apas","asp","aspa","wap","awp","wpas","spas"],"rp":["pas","paw","psa","pasa","pw"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",5528],"trp":["pe",8856],"trw":["pe",37],"lp":["ep","e'","epe","eep"],"rp":["pe","ppe","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",1033],"trp":["pea",94],"lp":["ape","epa","a'","appe"],"rp":["pea","ppea"]},"134":{"input":[2,3,8],"tlp":["dp",2912],"trp":["'s",698],"lp":["dp","eps","esp","spe","e's","sped","spee","e'd","desp","dep","sep"],"rp":["'s","ped","'d","pede"]},"135":{"input":[1,2,3,8],"tlp":["dpa",640],"trp":["pew",3258],"tlw":["wpada",59],"trw":["pada",80],"lp":["dpa","apew","wpad","aped","spad","a's","apad","wpe","wpew","epas","epew"],"rp":["pew","pad","pada","pade","pawe","pase","pwe"]},"136":{"input":[4,8],"tlp":["tp",340],"trp":["pt",863],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",450],"trp":["pat",2675],"lp":["tap","atp"],"rp":["pat","pta","pf"]},"138":{"input":[2,4,8],"tlp":["cp",40],"trp":["pc",913],"lp":["cp"],"rp":["pc","pst"]},"139":{"input":[1,2,4,8],"tlp":["stap",450],"trp":["pac",1055],"tlw":["spac",240],"trw":["pats",97],"lp":["stap","apac","watp","spac","wpat","acp","cpa","wacp","acpa"],"rp":["pac","pca","pasc","past","pats","pstw","ptac"]},"140":{"input":[3,4,8],"tlp":["tep",1202],"trp":["pr",57473],"trw":["per",245],"lp":["tep","epr","rp","erp","ept","t'","epte","re'","ere'","tepe"],"rp":["pr","pre","pet","petr","per","'t","pret","'r","'re","pte"]},"141":{"input":[1,3,4,8],"tlp":["apr",1964],"trp":["pra",9765],"tlw":["tarp",77],"trw":["pare",337],"lp":["apr","apra","epra","epta","arp","tarp","at'","apar","apre"],"rp":["pra","patr","par","pare","pfe","para","pera","part","papr"]},"142":{"input":[2,3,4,8],"tlp":["spr",2056],"trp":["pred",1040],"trw":["press",30],"lp":["spr","step","t's","epc","tepc","cep","rcep","cepc","spec","re's","epce","cept","depc"],"rp":["pred","prec","perc","pres","pce","peec","pec"]},"143":{"input":[1,2,3,4,8],"tlw":["sprawe",290],"trw":["prawda",673],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mn",14832],"trw":["m",312],"lp":[],"rp":["mn","pn","mp","nm","np","mm"]},"145":{"input":[1,5,8],"tlp":["am",33618],"trp":["ma",28562],"tlw":["apan",98],"trw":["pan",4034],"lp":["am","ama","amn","amp","apan","anam"],"rp":["ma","pan","nam","nap","mam","mna","pana","man","pam","pann","namn","napa","pna","mama"]},"146":{"input":[2,5,8],"tlp":["sm",6824],"trp":["jm",1565],"lp":["sm"],"rp":["jm","ms","jmn","jp"]},"147":{"input":[1,2,5,8],"tlp":["sam",6796],"trp":["maj",1759],"tlw":["sam",2445],"trw":["maja",826],"lp":["sam","wam","ajm","sama","ajmn","wm","asam","sma","ajp","span","asm"],"rp":["maj","maja","mas","najm","jam","pans","maw","najp","nasm"]},"148":{"input":[3,5,8],"tlp":["em",47785],"trp":["ym",25806],"tlw":["eme",32],"trw":["my",1084],"lp":["em","emn","emy","epn","eme","emne"],"rp":["ym","my","me","yp","py","nym","nem","men","mne","mny","nnym","mym","n'","mem"]},"149":{"input":[1,3,5,8],"tlp":["amy",2050],"trp":["yma",2522],"tlw":["amy",88],"trw":["max",1479],"lp":["amy","ame","apy","ema","emna","amym","anem","epna","an'","amem"],"rp":["yma","max","ypa","mamy","nape","mane","pane","namy","maxa","na'"]},"150":{"input":[2,3,5,8],"tlp":["sem",2689],"trp":["mys",5369],"tlw":["dym",154],"trw":["jednym",518],"lp":["sem","dym","smy","dem","spy","dm","dnym","esm","edem","esmy","edm","ems"],"rp":["mys","jem","jemn","ysp","mej","ysm","ysmy","yms"]},"151":{"input":[1,2,3,5,8],"tlw":["samym",432],"trw":["pewna",264],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",173],"trp":["mt",555],"lp":["tm"],"rp":["mt","mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",5042],"trp":["mat",1787],"tlw":["tam",3597],"trw":["mat",31],"lp":["tam","amt","tamt","amta","fam","atam","bam","amf","atm","fm"],"rp":["mat","mta","mf","pant","mnat"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",184],"trp":["mc",1077],"tlw":["tms",55],"lp":["cm","tms"],"rp":["mc","mst","pcj","msc"]},"155":{"input":[1,2,4,5,8],"tlw":["wacpan",40],"trw":["majac",369],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["tem",8044],"trp":["pyt",2717],"tlw":["tym",4037],"lp":["tem","tym","rym","bym","rm","rem","tepn","bem"],"rp":["pyt","mr","met","n't","mbe","mber","metr","ment","ybym","mer","ypr","mte"]},"157":{"input":[1,3,4,5,8],"tlw":["temat",228],"trw":["natym",299],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["system",322],"trw":["jestem",1324],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["wtym",987],"trw":["naprawde",460],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",22224],"trw":["pi",56],"lp":[],"rp":["pi","ip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["zap",2987],"trp":["pia",562],"lp":["zap","api","zp","aip","zapa","zpi","zpa","apia"],"rp":["pia","papi","ipa","paz","izap"]},"162":{"input":[2,6,8],"tlp":["spi",1310],"trp":["pis",4398],"tlw":["spi",122],"lp":["spi","skip"],"rp":["pis","kip","pk","isp","pki","psi"]},"163":{"input":[1,2,6,8],"tlp":["wpi",267],"trp":["kap",1184],"tlw":["zapas",72],"trw":["kaip",681],"lp":["wpi","apis","apk","zapk","szp","zkap","szpi"],"rp":["kap","kapi","kaip","psz","pisa","pak","pias","pisz","piw","kasp","pask","psza","piwa"]},"164":{"input":[3,6,8],"tlp":["epi",972],"trp":["pie",13522],"trw":["pie",48],"lp":["epi","epie"],"rp":["pie","iep","i'","ipe","iepe","pei","ppei"]},"165":{"input":[1,3,6,8],"tlp":["zep",1368],"trp":["piez",95],"tlw":["apie",272],"trw":["papieza",54],"lp":["zep","apie","ezp","zpie","ezpi","zape","zepa","zpe"],"rp":["piez"]},"166":{"input":[2,3,6,8],"tlp":["spie",1047],"trp":["pies",1441],"trw":["pies",178],"lp":["spie","epek","spek"],"rp":["pies","piek","iesp","kipe","pke","pek","kep"]},"167":{"input":[1,2,3,6,8],"tlw":["spiew",96],"trw":["pisze",141],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tpi",70],"trp":["pit",866],"trw":["itp",74],"lp":["tpi"],"rp":["pit","itp","pti"]},"169":{"input":[1,4,6,8],"tlp":["apit",763],"trp":["pita",834],"tlw":["taip",402],"trw":["pati",50],"lp":["apit","tapi","taip","zpit","atpi"],"rp":["pita","piat","pati","ipat"]},"170":{"input":[2,4,6,8],"tlp":["cip",42],"trp":["pic",402],"trw":["pic",106],"lp":["cip","spit"],"rp":["pic","ipc","pist"]},"171":{"input":[1,2,4,6,8],"tlw":["czapka",41],"trw":["ptak",106],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rpi",335],"trp":["pier",5070],"trw":["prie",378],"lp":["rpi","erpi","rpie","tpie","epti"],"rp":["pier","ierp","pri","prie","iepr","piet","ipr","it'","iper","pir"]},"173":{"input":[1,3,4,6,8],"tlw":["rzepa",61],"trw":["przez",6795],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["skiper",201],"trw":["piec",482],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["wprawdzie",446],"trw":["przed",3656],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",59941],"trw":["mi",6561],"lp":[],"rp":["mi","im","mni","nim","imi","min","pni","hm","mim","nimi","hmi","imn","him","hip","mini","pin","imni","nmi","pini","imim"]},"177":{"input":[1,5,6,8],"tlp":["ami",9688],"trp":["mia",11078],"tlw":["zanim",753],"trw":["pani",1381],"lp":["ami","zm","zam","zmi","zami","anim","amia","zim","zma","znim","zmia","znam"],"rp":["mia","pani","nami","pami","hmia","mian","mina","maz"]},"178":{"input":[2,5,6,8],"tlp":["smi",4361],"trp":["kim",3177],"tlw":["spij",31],"trw":["kim",153],"lp":["smi","sim","skim"],"rp":["kim","mis","mk","jmni","ism","mkn","ims","kims","pij","kimi","mkni","jmi","jpi","misj","msk","mski","pism"]},"179":{"input":[1,2,5,6,8],"tlw":["wnim",424],"trw":["masz",794],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",3623],"trp":["mie",22534],"trw":["mnie",6049],"lp":["emi","emie","emni","epni"],"rp":["mie","iem","mnie","niem","iemi","mien","ypi","ymi","iemn","hem","pien","imie","pnie","niep","iemy","imy"]},"181":{"input":[1,3,5,6,8],"tlw":["ziemi",986],"trw":["panie",1750],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["siedem",200],"trw":["mniej",628],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["wiem",1473],"trw":["miedzy",1744],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",148],"trp":["mit",146],"trw":["mit",116],"lp":["tim","bim","tnim","vim"],"rp":["mit","imit"]},"185":{"input":[1,4,5,6,8],"trw":["itam",129],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"trw":["mscic",37],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["zamiast",457],"trw":["matka",605],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["tymi",175],"trw":["itym",97],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["razem",1159],"trw":["przy",3948],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["smierc",577],"trw":["miec",761],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["tymczasem",730],"trw":["przypis",2677],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",79029],"trw":["po",5485],"lp":[],"rp":["po","op","pop","opo","opp","popp","popo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",1764],"trp":["opa",1101],"lp":["apo"],"rp":["opa","popa"]},"194":{"input":[2,7,8],"tlp":["spo",8518],"trp":["pos",6704],"tlw":["spo",52],"lp":["spo","spos"],"rp":["pos","poso","osp","ospo","posp","pso"]},"195":{"input":[1,2,7,8],"tlp":["wpo",932],"trp":["pow",12141],"trw":["psow",77],"lp":["wpo","wspo","apos","wpow","apow","wpos","awpo","wpop"],"rp":["pow","powo","opow","pows","powa","posa","posw","psow","paso"]},"196":{"input":[3,7,8],"tlp":["epo",395],"trp":["-p",478],"lp":["epo","eop"],"rp":["-p","ope","oppe","poe","peo","peop","-po"]},"197":{"input":[1,3,7,8],"trp":["-pa",318],"trw":["poppea",94],"lp":[],"rp":["-pa"]},"198":{"input":[2,3,7,8],"tlp":["dpo",2241],"trp":["pod",11766],"tlw":["spod",439],"trw":["pod",4050],"lp":["dpo","dop","spod","dopo","espo","epod","dope"],"rp":["pod","odp","odpo","podo","opod","pods","pode","podd","pose","pedo","podp","odep","osep"]},"199":{"input":[1,2,3,7,8],"trw":["powod",76],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1200],"trp":["pot",6309],"trw":["pot",71],"lp":["top"],"rp":["pot","pog","pogo","opot","poto"]},"201":{"input":[1,4,7,8],"tlp":["apot",497],"trp":["poga",110],"lp":["apot","topa"],"rp":["poga","opat","pota"]},"202":{"input":[2,4,7,8],"tlp":["stop",1200],"trp":["poc",5454],"tlw":["stop",300],"lp":["stop","spot","gosp","spog","spoc","cop"],"rp":["poc","post","opc","posc","pco","opco"]},"203":{"input":[1,2,4,7,8],"tlw":["stopa",56],"trw":["postac",287],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",301],"trp":["pro",7398],"trw":["popr",1453],"lp":["rop","epro","tepo"],"rp":["pro","pote","opr","por","popr","potr","opro","prog","poro","pror","opor","-pr","oper","-pro","poet","opre","opet"]},"205":{"input":[1,3,4,7,8],"trw":["pora",123],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["sporo",108],"trw":["prosto",232],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["wprost",448],"trw":["prawo",368],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",36877],"trw":["mu",7197],"lp":[],"rp":["mo","mu","om","um","pom","up","omu","pu","omo","omn","pon","pomo","mno","pomn","opn","pun","mom","omp","umn","opu"]},"209":{"input":[1,5,7,8],"tlp":["amo",1213],"trp":["oma",1236],"trw":["panu",545],"lp":["amo","apom","anom","apon","anum"],"rp":["oma","pano","uma","panu","upa","pona","napo","onam","mano","oman","omna","opan","namo","poma","mamo"]},"210":{"input":[2,5,7,8],"tlp":["spoj",1485],"trp":["moj",4972],"tlw":["spoj",47],"trw":["moj",1601],"lp":["spoj","smu","spom","sum"],"rp":["moj","mus","poj","pus","usm","mos","mnos","omos","opus","muj","osm","jmo","jom","jmu","jmuj","pojs"]},"211":{"input":[1,2,5,7,8],"tlw":["samo",635],"trw":["moja",1288],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emu",3362],"trp":["ome",1246],"trw":["open",44],"lp":["emu","emo","emno"],"rp":["ome","omy","upe","pomy","umy","ypo","omen","mome","ymu","ypom","upy","ume","onem","omny","omne","ypu","-m"]},"213":{"input":[1,3,5,7,8],"trw":["-pan",98],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["domu",1023],"trw":["moje",1112],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["wdomu",466],"trw":["mowy",435],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",725],"trp":["mog",6878],"tlw":["tom",165],"trw":["potu",49],"lp":["tom","topn","gm","gom","bom","gmu","gmun"],"rp":["mog","mot","mut","pob","mutn","moto","umb","mg","ptu","put","mput","motn","ogom"]},"217":{"input":[1,4,5,7,8],"tlw":["toma",53],"trw":["moga",569],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["sposob",1064],"trw":["moc",367],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["smutna",117],"trw":["mnostwo",266],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["temu",761],"trw":["potem",2023],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",589],"trw":["megan",179],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["gdybym",317],"trw":["prostu",339],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["samego",331],"trw":["pewnego",233],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pol",5926],"trw":["pol",506],"lp":[],"rp":["pol","pl","opi","lop","polo","pil","plo","ipo","pio","poli","pli","lopi","lp","lopo","opl","lip","ipol","opol","pili","pilo"]},"225":{"input":[1,6,7,8],"tlp":["zpo",957],"trp":["poz",4658],"tlw":["zlapal",59],"trw":["poza",483],"lp":["zpo","zapo","apl","apla","apal","apil","alp"],"rp":["poz","pla","pal","pozo","pola","poza","ozp","pali","lopa","ozpa","pala","ozpo","pozi"]},"226":{"input":[2,6,7,8],"tlp":["spok",1225],"trp":["pok",4474],"trw":["polski",326],"lp":["spok","spol"],"rp":["pok","poko","pols","piso","poki","posi","posl","pokl","opok","ospi","klop","opis","ipos","kop","pios","ispo","polk"]},"227":{"input":[1,2,6,7,8],"tlw":["wpol",123],"trw":["powoli",384],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epl",290],"trp":["pel",2439],"trw":["pole",188],"lp":["epl","eplo","eple","eopl","elp"],"rp":["pel","opie","lep","lepi","pole","ple","iepl","iepo","pele","ople","'l","i'l","'ll","i'll","piel"]},"229":{"input":[1,3,6,7,8],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["dopoki",198],"trw":["polskie",78],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["wpadl",182],"trw":["powiedzial",1337],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tpl",196],"trp":["piot",350],"trw":["plot",40],"lp":["tpl","tpli","topi"],"rp":["piot","pogl","plot","polg","polt","ptio","pito","ipog","pogi"]},"233":{"input":[1,4,6,7,8],"tlw":["filip",38],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["pociski",37],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["spotkac",156],"trw":["poczal",800],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["piotr",231],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"trw":["przeto",243],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["dopiero",1010],"trw":["predko",303],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"trw":["prosze",860],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mil",4286],"trw":["mimo",629],"lp":[],"rp":["mil","umi","omi","ml","mlo","hlop","oim","pomi","omni","milo","mio","poni","moi","lum","imo","mimo","mion","iom","moim","minu"],"special":"enter"},"241":{"input":[1,5,6,7,8],"trw":["mial",2579],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["spokoj",193],"trw":["musi",771],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["swoim",499],"trw":["mowil",1284],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mieli",613],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["zupelnie",861],"trw":["moze",4134],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["spokojnie",378],"trw":["lepiej",825],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["widzialem",345],"trw":["pozniej",689],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["tlum",312],"trw":["mogl",1899],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["galima",72],"trw":["mogla",591],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["chlop",216],"trw":["milosc",470],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["chlopak",251],"trw":["mowic",686],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["bylem",489],"trw":["moglem",321],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["zapytal",512],"trw":["potrzeba",320],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["glosem",676],"trw":["ktorym",841],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["bowiem",669],"trw":["petroniusz",731],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",468],"tlw":["a",8903],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",175],"tlw":["s",502],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",42610],"tlw":["w",22418],"lp":["as","wa","aw","ws","sw","sa","awa","aws","was","asa","wsw","swa","asw","waw","ww","sas","wsa","wawa","wwa","awas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",518],"tlw":["e",106],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ax",1780],"tlw":["x",92],"lp":["ax","ea","xa","axa","ex"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["es",52602],"tlw":["d",228],"lp":["es","ed","de","se","ede","dd","ds","des","sed","dde","eds","ese","ess","see","sede","eed","dese","ded","dede","dee"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",35569],"tlw":["dwa",1359],"lp":["ad","da","we","ew","dw","ada","wd","awe","daw","awd","ewa","swe","dwa","dawa","ase","ade","eda","sad","ews","wes"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",560],"tlw":["t",88],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",68848],"tlw":["ta",2431],"lp":["ta","at","ata","tat","fa","af","ft","aft","ff","tta","att","fat","tata","atta","fta","afta"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",75161],"tlw":["c",338],"lp":["st","sc","tc","ts","stc","ct","cs"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ac",50494],"tlw":["stas",540],"lp":["ac","sta","ca","tw","wc","wt","ast","twa","tac","stw","wac","stac","stat","aca","wst","tas","taw","staw","asta","asc"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["te",45936],"tlw":["te",3281],"lp":["te","er","tr","re","et","ter","etr","ret","rt","ere","ete","tre","rte","tere","tet","ert","ett","rete","rr","erte"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",55331],"tlw":["ar",328],"lp":["ra","ar","era","tar","atr","ara","tra","ate","tera","are","eta","art","rat","fe","tare","raf","tara","traf","fr","ef"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ec",48514],"tlw":["rece",1133],"lp":["ec","ce","est","dr","str","esc","rs","ste","rd","rc","erc","ece","res","este","sr","ser","rec","serc","dc","rce"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["raw",8030],"tlw":["serca",563],"lp":["raw","wr","rac","rw","war","ard","star","erw","wet","awet","dac","rawd","twar","wte","rad","stra","rws","erws","rwa","wra"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",7406],"trw":["n",208],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",48964],"trp":["na",112653],"tlw":["anna",723],"trw":["na",21439],"lp":["an","ana","ann","anna"],"rp":["na","nan","nna","nana","naa"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",7535],"trp":["js",5713],"trw":["j",184],"lp":["sn","sj"],"rp":["js","ns","jn","jj"]},"19":{"input":[1,2,5],"tlp":["aj",20342],"trp":["ja",55861],"tlw":["aja",432],"trw":["ja",8216],"lp":["aj","wn","aja","asn","wan","awn","wna","wj","sna","ans","ajw"],"rp":["ja","nas","naj","naw","jan","jas","jw","jasn","najw"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",30498],"trp":["ne",25369],"trw":["ne",747],"lp":["en","enn","ey","ene","enny","eye","enne","een","eny"],"rp":["ne","ny","yn","nny","nne","yny","ye","yne","ynn","yy","nee"]},"21":{"input":[1,3,5],"tlp":["any",2470],"trp":["yna",3436],"tlw":["aye",124],"lp":["any","ane","ena","ay","anny","aye","ean","anne","enna"],"rp":["yna","nany","nane","ynan","yea","nex","ya","yya"]},"22":{"input":[2,3,5],"tlp":["ej",45590],"trp":["je",68792],"tlw":["syn",389],"trw":["jej",5718],"lp":["ej","dy","dn","edn","edy","sy","ejs","dne","den"],"rp":["je","ys","jes","jed","jedn","jej","nd","yj","yd","jd","nej"]},"23":{"input":[1,2,3,5],"tlp":["wy",23292],"trp":["nad",7353],"tlw":["and",2280],"trw":["nad",3785],"lp":["wy","dna","edna","aje","and","ewn","wys","wne","daj","adn","dan","wyd","wej","wyda"],"rp":["nad","yw","nawe","ywa","yja","yda"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["tn",4086],"trp":["nt",3555],"tlw":["b",226],"lp":["tn","bn"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ba",16398],"trp":["nat",3728],"tlw":["ant",708],"lp":["ba","ab","tan","atn","tatn","ant","tana","aba","bab","tna","bna","ban","fn","baba","fab","bat"],"rp":["nat","nta","nf","nab"]},"26":{"input":[2,4,5],"tlp":["cj",4424],"trp":["nc",4520],"tlw":["tj",127],"lp":["cj","cn","bc","bs","stn","cb","bj","sb","tj"],"rp":["nc","jsc","jc","nst","jst","jb","jt","ncj","nts"]},"27":{"input":[1,2,4,5],"tlp":["stan",3867],"trp":["jac",5445],"tlw":["stan",180],"trw":["jac",97],"lp":["stan","ajac","taj","acj","bac","baw","anc","staj","cja","caj","wnat"],"rp":["jac","nac","nast","nca","nstw","jsca","jca","nasc","jat"]},"28":{"input":[3,4,5],"tlp":["by",46129],"trp":["yt",8428],"tlw":["ten",4023],"trw":["net",73],"lp":["by","ty","ry","be","eb","br","ten","rn","eby","ety","ent","ern","byt","tyn","ber"],"rp":["yt","yb","yby","yr","net"]},"29":{"input":[1,3,4,5],"tlp":["bra",4962],"trp":["yta",3398],"tlw":["aby",2523],"trw":["nate",242],"lp":["bra","bar","ary","aby","aty","eba","ran","arn","tary","rna","abr","aryn","ryna","brat"],"rp":["yta","nar","naty","yra","yba","ynar"]},"30":{"input":[2,3,4,5],"tlp":["cy",8269],"trp":["yc",28802],"tlw":["byc",2943],"trw":["jest",9582],"lp":["cy","bed","tyc","tej","ryc","byc","ejsc","dyt","edyt","dyb","dyby","rej","cej","ecej","sty"],"rp":["yc","jest","yst","nyc","jr"]},"31":{"input":[1,2,3,4,5],"tlw":["stary",943],"trw":["nawet",3158],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",2169],"trw":["i",28082],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["za",76007],"trp":["ia",68340],"tlw":["z",15934],"trw":["iz",305],"lp":["za","zi","az","zia","ai","aza","azi","zz","zaz","zza","zzi","zaza","zai"],"rp":["ia","iz","iaz","iza","iaza","izz","iazi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",90184],"trp":["ki",45823],"tlw":["si",39],"trw":["is",1279],"lp":["si","sk","ski","sis","sks"],"rp":["ki","is","ik","ks","isk","ksi","kis","iki","isi","kk","iski","kki","kik","iss"]},"35":{"input":[1,2,6],"tlp":["wi",87989],"trp":["ka",38575],"tlw":["zas",2170],"trw":["ka",698],"lp":["wi","sz","ak","wsz","zas","wia","aki","zw","sza","asz","zk","swi","sia","awi","wz","ska","zis"],"rp":["ka","iw","kaz"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",1323],"trp":["ie",368657],"lp":["ei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",125561],"trp":["iez",5190],"tlw":["ze",12240],"trw":["ize",38],"lp":["ze","zie","ez","zez","aze","eza","eze","azie","ezi","ziez","ezie","ziei","xi","zeze"],"rp":["iez","iaze","ize","ieza","iezi","ieze"]},"38":{"input":[2,3,6],"tlp":["sie",75832],"trp":["kie",18740],"tlw":["sie",65236],"trw":["ide",164],"lp":["sie","ek","dk","eki","esi","sied","eks","skie","esie","eke"],"rp":["kie","ied","ies","iek","id","kied","ke","iesi","ieks","ieki"]},"39":{"input":[1,2,3,6],"tlp":["dz",71993],"trp":["iedz",11935],"tlw":["dzis",2729],"trw":["kad",1125],"lp":["dz","dzi","wie","dzie","edz","sze","esz","edzi","zes","zd","dzia","zed","wied","zek","wid","wiek","adz","eka"],"rp":["iedz","iew"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",1632],"trp":["it",10113],"tlw":["v",123],"trw":["it",677],"lp":["ti","vi","vii","tv","tvi","tti","tiv","viii"],"rp":["it","iv","iti","itt","itiv"]},"41":{"input":[1,4,6],"tlp":["zt",5011],"trp":["iat",4655],"tlw":["tai",754],"trw":["if",169],"lp":["zt","fi","zat","zta","tai","av","fia","afi","va","tav","vaa","vaaa","tia","azat","ait","fit"],"rp":["iat","ita","iata","if"]},"42":{"input":[2,4,6],"tlp":["ci",62579],"trp":["ic",34576],"tlw":["ci",3112],"trw":["isc",445],"lp":["ci","sci","tk","stk","tki","stki","cic","ck","tkic","cis","vis","scic"],"rp":["ic","kt","kic","ist","isc","ikt","isci","ici"]},"43":{"input":[1,2,4,6],"tlp":["cz",84284],"trp":["iast",2879],"tlw":["tak",10183],"trw":["itak",560],"lp":["cz","tak","cza","zc","cia","szc","zcz","szcz","acz","zac","czas","wiat","taki","aci","wcz","scia","zacz","wic"],"rp":["iast","iac"]},"44":{"input":[3,4,6],"tlp":["ri",3494],"trp":["ier",13295],"tlw":["tie",65],"trw":["ir",2637],"lp":["ri","ve","rie","ev","vie","ver","rii","eve","ever","eri","tri","eir","rei"],"rp":["ier","iet","ir","ite","ietr","iete","iter"]},"45":{"input":[1,3,4,6],"tlp":["rz",90643],"trp":["ierz",2732],"tlw":["teraz",3005],"trw":["iteraz",110],"lp":["rz","rze","raz","trz","rzez","rza","arz","trze","zar","zr","eraz","erz","atrz","tez","zer","raze","trza","zara","zet"],"rp":["ierz"]},"46":{"input":[2,3,4,6],"tlp":["cie",23265],"trp":["iec",26434],"tlw":["cie",2111],"trw":["itd",184],"lp":["cie","eci","esci","scie","rek","ecie","rsk","rski","tkie","siec","rk"],"rp":["iec","kr","ieci","kre","iesc","kret","iece","ice","ierc"]},"47":{"input":[1,2,3,4,6],"tlw":["wiec",3828],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["ni",174405],"trw":["in",1322],"lp":[],"rp":["ni","in","inn","ini","hi","hn","nni","hin","inni","hni","nii","nin","iin","iinn","inii","nh"]},"49":{"input":[1,5,6],"tlp":["zn",27628],"trp":["nia",13186],"tlw":["ani",2778],"trw":["niz",2084],"lp":["zn","ani","zna","zni","ania","zan","zin","azn","zani","azni","znan"],"rp":["nia","ha","ina","niz","ian","naz","nani","han","hna"]},"50":{"input":[2,5,6],"tlp":["sni",3453],"trp":["nik",4194],"tlw":["sni",32],"trw":["his",454],"lp":["sni","sh"],"rp":["nik","kn","nk","ij","ji","nis","his","kni","jni","jsk","nisk","nsk","nki","nski","kin","ins","jis","isn"]},"51":{"input":[1,2,5,6],"tlp":["wni",5839],"trp":["jak",28350],"tlw":["wina",268],"trw":["jak",14792],"lp":["wni","win","zaj","wini","znaj","asni","szn","zj","wnia"],"rp":["jak","nak","jaki","hw","hwi","nasz","ija","kna","kan","jaka","iwn"]},"52":{"input":[3,5,6],"tlp":["eni",11343],"trp":["nie",115708],"trw":["nie",47473],"lp":["eni","enie"],"rp":["nie","he","ien","ieni","yni","inie","hy","inny","nien","inne","ynie","ine","iny","hen","nnie","hey","ienn","hnie"]},"53":{"input":[1,3,5,6],"tlp":["zy",86799],"trp":["yz",4726],"tlw":["zenie",780],"trw":["nanie",104],"lp":["zy","anie","zen","zeni","znie","zyn","enia","zyz","azy","zien","ezy","zne","zny","zyni","zyna","zyzn","ezn"],"rp":["yz","niez","yzn"]},"54":{"input":[2,3,5,6],"tlp":["dni",6393],"trp":["iej",15859],"tlw":["she",1219],"trw":["kiedy",2587],"lp":["dni","snie","dnie","she","esni","ekn"],"rp":["iej","niej","yk","iedy","iejs","kiej","nies","ysi","ieje","iekn","niek","nied","ije","ysie"]},"55":{"input":[1,2,3,5,6],"tlw":["dzien",1087],"trw":["jednak",3118],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",21105],"trp":["ib",902],"tlw":["bi",50],"lp":["bi","th","tni","thi","bni","thin","bit","bin","bh","tin"],"rp":["ib","ht","nib","ith","int","itn","hb","nit","niti","hit"]},"57":{"input":[1,4,5,6],"tlp":["zb",4172],"trp":["hat",1109],"tlw":["that",591],"trw":["izba",42],"lp":["zb","tani","bia","zab","atni","abi","tha","that","zabi","zbi","zba","tnia","ath","bani"],"rp":["hat","itan","izb","inf","hta","hav"]},"58":{"input":[2,4,5,6],"tlp":["ch",74579],"trp":["ich",14715],"tlw":["bci",274],"trw":["ich",4866],"lp":["ch","chc","chci","bic","cji","chn","cich","bk"],"rp":["ich","nic","hc","kich","kb","hci","nich","icj","inic","nicj","nikt","jci"]},"59":{"input":[1,2,4,5,6],"tlw":["znich",449],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bie",13336],"trp":["ieb",5068],"tlw":["the",3042],"trw":["her",1605],"lp":["bie","ebi","the","ebie","tnie","biet","rni","bnie"],"rp":["ieb","iebi","her","hr","nieb","nier","iety","hyb","iby","hry","iern","niby"]},"61":{"input":[1,3,4,5,6],"tlw":["bez",2806],"trw":["nieraz",449],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tych",1735],"trw":["niech",1470],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["czy",5191],"trw":["jeszcze",5354],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",763],"trw":["o",6106],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",782],"trp":["oa",209],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",12921],"trp":["os",50523],"tlw":["so",247],"lp":["so","sos","soo"],"rp":["os","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",32063],"trp":["ow",64725],"tlw":["wo",109],"trw":["ow",544],"lp":["wo","swo","awo","sow","wos","wow","aso","asow","wso","wswo","aswo","awos"],"rp":["ow","owa","owo","ows","osa","osw","osow","owos"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",700],"trp":["-o",242],"trw":["-",43777],"lp":["eo"],"rp":["-o","oe"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",67],"trp":["-a",577],"trw":["-a",43],"lp":["xo","axo","a-"],"rp":["-a","ox"]},"70":{"input":[2,3,7],"tlp":["do",46979],"trp":["od",49479],"tlw":["do",12671],"trw":["od",4136],"lp":["do","dos","dod","eso","dodo","doo","edo","doe","does"],"rp":["od","odo","ode","odd","ose","ods","-d","odde","odos","oes","-do"]},"71":{"input":[1,2,3,7],"tlp":["wod",4591],"trp":["owe",3290],"tlw":["woda",528],"trw":["owe",142],"lp":["wod","dow","ado","dwo","ewo","dowo","wdo","dowa","ados","woda","doda","wode","awdo","dosw"],"rp":["owe","oda","owod","odda","owad","odw"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",72862],"trp":["ot",22422],"tlw":["to",23311],"trw":["oto",1109],"lp":["to","go","got","goto","tot","too","goo"],"rp":["ot","og","oto","ogo","ott","oog"]},"73":{"input":[1,4,7],"tlp":["ag",8439],"trp":["oga",3404],"tlw":["ato",208],"trw":["of",1252],"lp":["ag","ga","fo","ato","aga","ago","gat","tota","fot","tof","gf","gata"],"rp":["oga","of","ota","off","ogat","otta","ofa"]},"74":{"input":[2,4,7],"tlp":["co",15974],"trp":["oc",26832],"tlw":["co",5162],"lp":["co","sto","cos","gos","tos","cot","gosc","stos","stot","tosc","coto","toc","cott","sco"],"rp":["oc","osc","ost","osto","otc","ogos"]},"75":{"input":[1,2,4,7],"tlp":["two",4901],"trp":["osta",7294],"tlw":["gotow",216],"trw":["owoc",43],"lp":["two","tow","stwo","towa","woc","cow","wag","gw","wosc","gow","wg","wowc"],"rp":["osta","otw","owc","owac","otow","oca","owt","ogow"]},"76":{"input":[3,4,7],"tlp":["ro",57299],"trp":["or",45488],"tlw":["tego",4358],"trw":["-to",452],"lp":["ro","eg","ego","tor","tore","teg","tego","tro","gr","ge","rog","gor","gro","reg","ero","rego"],"rp":["or","ore","ote","otr"]},"77":{"input":[1,3,4,7],"tlp":["tora",3418],"trp":["ora",7565],"tlw":["for",554],"trw":["-ato",55],"lp":["tora","for","aro","rag","ateg","ega","gra","roga","gar","age","gora","arg","arto","areg","fro","taro"],"rp":["ora","otra","-ta","ogar"]},"78":{"input":[2,3,4,7],"tlp":["gd",17099],"trp":["ors",3173],"tlw":["dosc",813],"trw":["odtego",117],"lp":["gd","rod","roc","ros","dro","stro","god","tors","sro","srod","drog","rost","dot","dosc","cor","dost"],"rp":["ors","odc","odr","ostr"]},"79":{"input":[1,2,3,4,7],"tlw":["wsrod",1050],"trw":["otwarte",152],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",34225],"trw":["on",3987],"lp":[],"rp":["on","no","un","nu","ou","ono","uo","onu","nuo","nno","uno","oun","oon","onn","unu","onno","non","unon","nou"]},"81":{"input":[1,5,7],"tlp":["au",3651],"trp":["ona",5686],"tlw":["aon",234],"trw":["ona",1285],"lp":["au","ano","anu","aon","aona","anno","aun","auna","qu"],"rp":["ona","nau","una","nao","ua","onan","nano","oan","oann","nona","uau"]},"82":{"input":[2,5,7],"tlp":["su",4815],"trp":["oj",23708],"tlw":["su",735],"trw":["jo",359],"lp":["su","sno","sun","sus","snu"],"rp":["oj","us","ju","nos","uj","jo","jus","ojn","oju","osn","ojs","osu","nso","ojo","osno"]},"83":{"input":[1,2,5,7],"tlp":["woj",7645],"trp":["now",8001],"tlw":["swoja",803],"trw":["jau",356],"lp":["woj","swoj","wu","anow","wno","asu","aju","woja","wojn","won","sown"],"rp":["now","own","oja","uw","uwa","owu","nowu","uja","onow"]},"84":{"input":[3,5,7],"tlp":["eu",1045],"trp":["ony",3245],"trw":["you",832],"lp":["eu","eon","eno","eun","enu"],"rp":["ony","one","-n","yo","you","neu","yno","une","ynu","-no","ynno","uny","ynuo","-nu","-on"]},"85":{"input":[1,3,5,7],"tlp":["aux",164],"trp":["ux",164],"lp":["aux","eona","eanu","eau"],"rp":["ux"]},"86":{"input":[2,3,5,7],"tlp":["du",7756],"trp":["ud",11878],"tlw":["synu",166],"trw":["jedno",549],"lp":["du","dno","dus","don","edno","ejo","dnos"],"rp":["ud","oje","odn","uje","ody","ojej","odu","udn","osy","ude","yso","udy","-j"]},"87":{"input":[1,2,3,5,7],"tlw":["swoje",1014],"trw":["nowe",458],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",17356],"trp":["ob",32371],"tlw":["tu",4701],"trw":["obu",290],"lp":["bo","tu","bu","gn","bog","gu","tob","tut","but","bot"],"rp":["ob","ug","ut","ub","obo","obn","nog","ugo","ogn","ng"]},"89":{"input":[1,4,5,7],"tlp":["gna",1454],"trp":["oba",4176],"tlw":["boga",442],"trw":["nato",715],"lp":["gna","agn","atu","tano","agna","boga","tuta","agu","toba","abo","gan"],"rp":["oba","nag","nato","uta","uga","noga","natu","nfo","obna"]},"90":{"input":[2,4,5,7],"tlp":["sob",8597],"trp":["uc",9675],"tlw":["boju",171],"trw":["noc",701],"lp":["sob","cu","stu","cju","cjus","boj","bos","scu","cno"],"rp":["uc","ust","nosc","onc","osob","noc","ojc","ncu","oncu","ocn","just"]},"91":{"input":[1,2,4,5,7],"tlw":["soba",912],"trw":["usta",582],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",10352],"trp":["ory",10533],"tlw":["gory",402],"trw":["nero",306],"lp":["ru","tory","ron","rob","tron","bro","rug","tru","rony"],"rp":["ory","ur","obr","neg","nego","yto","oty","ytor","yg","oby","obe"]},"93":{"input":[1,3,4,5,7],"tlw":["rano",301],"trw":["natury",131],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gdy",6483],"trw":["jego",6471],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["dobra",471],"trw":["justyna",463],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["lo",50381],"trw":["li",307],"lp":[],"rp":["lo","li","il","ol","io","oi","oli","olo","ilo","ili","ll","iol","lil","llo","ill","lli","lio","ilio","oil","loo"]},"97":{"input":[1,6,7],"tlp":["al",107956],"trp":["la",64546],"tlw":["zal",356],"trw":["la",391],"lp":["al","zo","ala","zl","zal","zial","alo","zlo","ali","zil","zla","zli","azal"],"rp":["la","oz","ial","ola","iala","ila","lal"]},"98":{"input":[2,6,7],"tlp":["sl",22280],"trp":["ko",47506],"tlw":["sil",387],"trw":["okolo",573],"lp":["sl","sli","slo","sil","sko"],"rp":["ko","ok","lk","kl","lko","los","oko","kol","lki","osi","ilk","kil","oki","kilk","okol"]},"99":{"input":[1,2,6,7],"tlp":["wal",9697],"trp":["owi",22633],"tlw":["slowa",956],"trw":["kilka",1527],"lp":["wal","wil","wol","wl","ako","szl","zos","wla","sla","wlas","slow"],"rp":["owi","low","las","lowi","kla","osz","lka","lowa","kow"]},"100":{"input":[3,6,7],"tlp":["el",23557],"trp":["le",60091],"trw":["ile",574],"lp":["el","eli","ele","elo","ell","ello","elli"],"rp":["le","iel","ole","ile","ieli","iele","iell","ielo","lie","lei","olei","lle","iole"]},"101":{"input":[1,3,6,7],"tlp":["ale",25698],"trp":["oze",6806],"tlw":["ale",11823],"trw":["lezal",224],"lp":["ale","zel","ela","alez","zle","ziel","zeli","zela","zale","ezal","ezel","ezl"],"rp":["oze","lez","iale","leza","iela","lale","ozle","loze"]},"102":{"input":[2,3,6,7],"tlp":["dl",18350],"trp":["lek",3460],"tlw":["sile",224],"trw":["like",346],"lp":["dl","ekl","elk","edl","esl","esli","dok","elki","eko","dol","dlo"],"rp":["lek","ielk","lod","ld","lkie","osie","led","ido","okie"]},"103":{"input":[1,2,3,6,7],"tlw":["dla",5302],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["gl",20525],"trp":["ogl",5611],"tlw":["gi",147],"trw":["ito",358],"lp":["gl","gi","glo","tol","tl","vo","gol"],"rp":["ogl","ig","ogi","lit","ito","lot","lig","igi","itol","ligi","lt","iot","oglo"]},"105":{"input":[1,4,6,7],"tlp":["tal",9006],"trp":["lat",3663],"tlw":["zato",341],"trw":["lat",1084],"lp":["tal","gla","zg","agl","tala","talo","zgo","agi","zlot","gal","atl","zgl","alt","toz"],"rp":["lat","iag","ogla","ofi","iatl","ofia"]},"106":{"input":[2,4,6,7],"tlp":["cil",3725],"trp":["kto",24526],"tlw":["glos",1013],"trw":["kto",1969],"lp":["cil","glos","tko","stko","stol"],"rp":["kto","osci","oci","lic","losc","lc","ocil","otk","oic","okt","okto","kosc","koc","isto","olic"]},"107":{"input":[1,2,4,6,7],"tlw":["glowa",1247],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["gle",3643],"trp":["ieg",7405],"tlw":["teorii",136],"trw":["ligie",262],"lp":["gle","gie","rol","rl","egl","rogi","tel","egi","role","giel"],"rp":["ieg","iego","leg","iero","lite","ori","lego","ior","ogie","legl"]},"109":{"input":[1,3,4,6,7],"tlw":["zeto",514],"trw":["oraz",543],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["drogi",663],"trw":["ktore",3303],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["gdzie",3077],"trw":["lecz",4127],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["lu",22354],"trw":["oni",779],"lp":[],"rp":["lu","ho","oni","ln","iu","lni","lon","ul","oln","niu","hl","nio","hlo","olni","hu","uni","ion","nil","lno","olu"]},"113":{"input":[1,5,6,7],"tlp":["zu",11610],"trp":["uz",13328],"tlw":["znalazl",366],"trw":["uz",245],"lp":["zu","zno","znal","zon","zul","azu","alan"],"rp":["uz","nal","ozn","ozna","lan","ozu","luz","hal","ozni","lna","nala","lani","nial"]},"114":{"input":[2,5,6,7],"tlp":["slu",3167],"trp":["ku",13470],"tlw":["skoku",179],"trw":["ku",734],"lp":["slu","slon","sku"],"rp":["ku","kon","uk","usi","koj","okoj","koni","oku","unk","nios","kun","lus","ius","nius","nku","nosi","niko"]},"115":{"input":[1,2,5,6,7],"tlw":["znowu",1380],"trw":["juz",8066],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eln",2354],"trp":["yl",37140],"trw":["-nie",970],"lp":["eln","elu","elni","eniu"],"rp":["yl","ly","ylo","onie","lnie","yli","yly","yle","nel","ily","-ni","-nie","lny","lne","len","ielu"]},"117":{"input":[1,3,5,6,7],"tlw":["zony",234],"trw":["lzy",407],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["sily",637],"trw":["jesli",2399],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["dalej",1297],"trw":["ludzi",1877],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",4510],"trp":["obi",10397],"tlw":["buvo",526],"trw":["lub",2322],"lp":["bl","gni","bli","bil","tlu","bol","tobi"],"rp":["obi","lb","ugi","lug","lub","lbo","nig","lugo","ogni","lugi","obil","obl","uv"]},"121":{"input":[1,4,5,6,7],"tlw":["albo",1927],"trw":["ognia",422],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["choc",1394],"trw":["obok",680],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["chwili",1257],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["bylo",6619],"trw":["niego",1339],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["byla",3016],"trw":["nagle",1105],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["tylko",7436],"trw":["ktory",4337],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["wszystko",2576],"trw":["oczy",2137],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",172],"trw":["p",135],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",9918],"trp":["pa",27218],"trw":["pa",145],"lp":["ap","apa","app"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",14576],"trp":["ps",984],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["wp",3537],"trp":["pas",1206],"trw":["pas",221],"lp":["wp","spa","wsp","wpa","wspa","apas","asp","aspa","wap","awp","wpas","spas"],"rp":["pas","paw","psa","pasa","pw"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",5528],"trp":["pe",8856],"trw":["pe",37],"lp":["ep","e'","epe","eep"],"rp":["pe","ppe","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",1033],"trp":["pea",94],"lp":["ape","epa","a'","appe"],"rp":["pea","ppea"]},"134":{"input":[2,3,8],"tlp":["dp",2912],"trp":["'s",698],"lp":["dp","eps","esp","spe","e's","sped","spee","e'd","desp","dep","sep"],"rp":["'s","ped","'d","pede"]},"135":{"input":[1,2,3,8],"tlp":["dpa",640],"trp":["pew",3258],"tlw":["wpada",59],"trw":["pada",80],"lp":["dpa","apew","wpad","aped","spad","a's","apad","wpe","wpew","epas","epew"],"rp":["pew","pad","pada","pade","pawe","pase","pwe"]},"136":{"input":[4,8],"tlp":["tp",340],"trp":["pt",863],"lp":["tp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["tap",450],"trp":["pat",2675],"lp":["tap","atp"],"rp":["pat","pta","pf"]},"138":{"input":[2,4,8],"tlp":["cp",40],"trp":["pc",913],"lp":["cp"],"rp":["pc","pst"]},"139":{"input":[1,2,4,8],"tlp":["stap",450],"trp":["pac",1055],"tlw":["spac",240],"trw":["pats",97],"lp":["stap","apac","watp","spac","wpat","acp","cpa","wacp","acpa"],"rp":["pac","pca","pasc","past","pats","pstw","ptac"]},"140":{"input":[3,4,8],"tlp":["tep",1202],"trp":["pr",57473],"trw":["per",245],"lp":["tep","epr","rp","erp","ept","t'","epte","re'","ere'","tepe"],"rp":["pr","pre","pet","petr","per","'t","pret","'r","'re","pte"]},"141":{"input":[1,3,4,8],"tlp":["apr",1964],"trp":["pra",9765],"tlw":["tarp",77],"trw":["pare",337],"lp":["apr","apra","epra","epta","arp","tarp","at'","apar","apre"],"rp":["pra","patr","par","pare","pfe","para","pera","part","papr"]},"142":{"input":[2,3,4,8],"tlp":["spr",2056],"trp":["pred",1040],"trw":["press",30],"lp":["spr","step","t's","epc","tepc","cep","rcep","cepc","spec","re's","epce","cept","depc"],"rp":["pred","prec","perc","pres","pce","peec","pec"]},"143":{"input":[1,2,3,4,8],"tlw":["sprawe",290],"trw":["prawda",673],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mn",14832],"trw":["m",312],"lp":[],"rp":["mn","pn","mp","nm","np","mm"]},"145":{"input":[1,5,8],"tlp":["am",33618],"trp":["ma",28562],"tlw":["apan",98],"trw":["pan",4034],"lp":["am","ama","amn","amp","apan","anam"],"rp":["ma","pan","nam","nap","mam","mna","pana","man","pam","pann","namn","napa","pna","mama"]},"146":{"input":[2,5,8],"tlp":["sm",6824],"trp":["jm",1565],"lp":["sm"],"rp":["jm","ms","jmn","jp"]},"147":{"input":[1,2,5,8],"tlp":["sam",6796],"trp":["maj",1759],"tlw":["sam",2445],"trw":["maja",826],"lp":["sam","wam","ajm","sama","ajmn","wm","asam","sma","ajp","span","asm"],"rp":["maj","maja","mas","najm","jam","pans","maw","najp","nasm"]},"148":{"input":[3,5,8],"tlp":["em",47785],"trp":["ym",25806],"tlw":["eme",32],"trw":["my",1084],"lp":["em","emn","emy","epn","eme","emne"],"rp":["ym","my","me","yp","py","nym","nem","men","mne","mny","nnym","mym","n'","mem"]},"149":{"input":[1,3,5,8],"tlp":["amy",2050],"trp":["yma",2522],"tlw":["amy",88],"trw":["max",1479],"lp":["amy","ame","apy","ema","emna","amym","anem","epna","an'","amem"],"rp":["yma","max","ypa","mamy","nape","mane","pane","namy","maxa","na'"]},"150":{"input":[2,3,5,8],"tlp":["sem",2689],"trp":["mys",5369],"tlw":["dym",154],"trw":["jednym",518],"lp":["sem","dym","smy","dem","spy","dm","dnym","esm","edem","esmy","edm","ems"],"rp":["mys","jem","jemn","ysp","mej","ysm","ysmy","yms"]},"151":{"input":[1,2,3,5,8],"tlw":["samym",432],"trw":["pewna",264],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",173],"trp":["mt",555],"lp":["tm"],"rp":["mt","mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",5042],"trp":["mat",1787],"tlw":["tam",3597],"trw":["mat",31],"lp":["tam","amt","tamt","amta","fam","atam","bam","amf","atm","fm"],"rp":["mat","mta","mf","pant","mnat"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",184],"trp":["mc",1077],"tlw":["tms",55],"lp":["cm","tms"],"rp":["mc","mst","pcj","msc"]},"155":{"input":[1,2,4,5,8],"tlw":["wacpan",40],"trw":["majac",369],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["tem",8044],"trp":["pyt",2717],"tlw":["tym",4037],"lp":["tem","tym","rym","bym","rm","rem","tepn","bem"],"rp":["pyt","mr","met","n't","mbe","mber","metr","ment","ybym","mer","ypr","mte"]},"157":{"input":[1,3,4,5,8],"tlw":["temat",228],"trw":["natym",299],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["system",322],"trw":["jestem",1324],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["wtym",987],"trw":["naprawde",460],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",22224],"trw":["pi",56],"lp":[],"rp":["pi","ip"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["zap",2987],"trp":["pia",562],"lp":["zap","api","zp","aip","zapa","zpi","zpa","apia"],"rp":["pia","papi","ipa","paz","izap"]},"162":{"input":[2,6,8],"tlp":["spi",1310],"trp":["pis",4398],"tlw":["spi",122],"lp":["spi","skip"],"rp":["pis","kip","pk","isp","pki","psi"]},"163":{"input":[1,2,6,8],"tlp":["wpi",267],"trp":["kap",1184],"tlw":["zapas",72],"trw":["kaip",681],"lp":["wpi","apis","apk","zapk","szp","zkap","szpi"],"rp":["kap","kapi","kaip","psz","pisa","pak","pias","pisz","piw","kasp","pask","psza","piwa"]},"164":{"input":[3,6,8],"tlp":["epi",972],"trp":["pie",13522],"trw":["pie",48],"lp":["epi","epie"],"rp":["pie","iep","i'","ipe","iepe","pei","ppei"]},"165":{"input":[1,3,6,8],"tlp":["zep",1368],"trp":["piez",95],"tlw":["apie",272],"trw":["papieza",54],"lp":["zep","apie","ezp","zpie","ezpi","zape","zepa","zpe"],"rp":["piez"]},"166":{"input":[2,3,6,8],"tlp":["spie",1047],"trp":["pies",1441],"trw":["pies",178],"lp":["spie","epek","spek"],"rp":["pies","piek","iesp","kipe","pke","pek","kep"]},"167":{"input":[1,2,3,6,8],"tlw":["spiew",96],"trw":["pisze",141],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tpi",70],"trp":["pit",866],"trw":["itp",74],"lp":["tpi"],"rp":["pit","itp","pti"]},"169":{"input":[1,4,6,8],"tlp":["apit",763],"trp":["pita",834],"tlw":["taip",402],"trw":["pati",50],"lp":["apit","tapi","taip","zpit","atpi"],"rp":["pita","piat","pati","ipat"]},"170":{"input":[2,4,6,8],"tlp":["cip",42],"trp":["pic",402],"trw":["pic",106],"lp":["cip","spit"],"rp":["pic","ipc","pist"]},"171":{"input":[1,2,4,6,8],"tlw":["czapka",41],"trw":["ptak",106],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rpi",335],"trp":["pier",5070],"trw":["prie",378],"lp":["rpi","erpi","rpie","tpie","epti"],"rp":["pier","ierp","pri","prie","iepr","piet","ipr","it'","iper","pir"]},"173":{"input":[1,3,4,6,8],"tlw":["rzepa",61],"trw":["przez",6795],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["skiper",201],"trw":["piec",482],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["wprawdzie",446],"trw":["przed",3656],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",59941],"trw":["mi",6561],"lp":[],"rp":["mi","im","mni","nim","imi","min","pni","hm","mim","nimi","hmi","imn","him","hip","mini","pin","imni","nmi","pini","imim"]},"177":{"input":[1,5,6,8],"tlp":["ami",9688],"trp":["mia",11078],"tlw":["zanim",753],"trw":["pani",1381],"lp":["ami","zm","zam","zmi","zami","anim","amia","zim","zma","znim","zmia","znam"],"rp":["mia","pani","nami","pami","hmia","mian","mina","maz"]},"178":{"input":[2,5,6,8],"tlp":["smi",4361],"trp":["kim",3177],"tlw":["spij",31],"trw":["kim",153],"lp":["smi","sim","skim"],"rp":["kim","mis","mk","jmni","ism","mkn","ims","kims","pij","kimi","mkni","jmi","jpi","misj","msk","mski","pism"]},"179":{"input":[1,2,5,6,8],"tlw":["wnim",424],"trw":["masz",794],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",3623],"trp":["mie",22534],"trw":["mnie",6049],"lp":["emi","emie","emni","epni"],"rp":["mie","iem","mnie","niem","iemi","mien","ypi","ymi","iemn","hem","pien","imie","pnie","niep","iemy","imy"]},"181":{"input":[1,3,5,6,8],"tlw":["ziemi",986],"trw":["panie",1750],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["siedem",200],"trw":["mniej",628],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["wiem",1473],"trw":["miedzy",1744],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",148],"trp":["mit",146],"trw":["mit",116],"lp":["tim","bim","tnim","vim"],"rp":["mit","imit"]},"185":{"input":[1,4,5,6,8],"trw":["itam",129],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"trw":["mscic",37],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["zamiast",457],"trw":["matka",605],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["tymi",175],"trw":["itym",97],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["razem",1159],"trw":["przy",3948],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["smierc",577],"trw":["miec",761],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["tymczasem",730],"trw":["przypis",2677],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",79029],"trw":["po",5485],"lp":[],"rp":["po","op","pop","opo","opp","popp","popo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",1764],"trp":["opa",1101],"lp":["apo"],"rp":["opa","popa"]},"194":{"input":[2,7,8],"tlp":["spo",8518],"trp":["pos",6704],"tlw":["spo",52],"lp":["spo","spos"],"rp":["pos","poso","osp","ospo","posp","pso"]},"195":{"input":[1,2,7,8],"tlp":["wpo",932],"trp":["pow",12141],"trw":["psow",77],"lp":["wpo","wspo","apos","wpow","apow","wpos","awpo","wpop"],"rp":["pow","powo","opow","pows","powa","posa","posw","psow","paso"]},"196":{"input":[3,7,8],"tlp":["epo",395],"trp":["-p",478],"lp":["epo","eop"],"rp":["-p","ope","oppe","poe","peo","peop","-po"]},"197":{"input":[1,3,7,8],"trp":["-pa",318],"trw":["poppea",94],"lp":[],"rp":["-pa"]},"198":{"input":[2,3,7,8],"tlp":["dpo",2241],"trp":["pod",11766],"tlw":["spod",439],"trw":["pod",4050],"lp":["dpo","dop","spod","dopo","espo","epod","dope"],"rp":["pod","odp","odpo","podo","opod","pods","pode","podd","pose","pedo","podp","odep","osep"]},"199":{"input":[1,2,3,7,8],"trw":["powod",76],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1200],"trp":["pot",6309],"trw":["pot",71],"lp":["top"],"rp":["pot","pog","pogo","opot","poto"]},"201":{"input":[1,4,7,8],"tlp":["apot",497],"trp":["poga",110],"lp":["apot","topa"],"rp":["poga","opat","pota"]},"202":{"input":[2,4,7,8],"tlp":["stop",1200],"trp":["poc",5454],"tlw":["stop",300],"lp":["stop","spot","gosp","spog","spoc","cop"],"rp":["poc","post","opc","posc","pco","opco"]},"203":{"input":[1,2,4,7,8],"tlw":["stopa",56],"trw":["postac",287],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",301],"trp":["pro",7398],"trw":["popr",1453],"lp":["rop","epro","tepo"],"rp":["pro","pote","opr","por","popr","potr","opro","prog","poro","pror","opor","-pr","oper","-pro","poet","opre","opet"]},"205":{"input":[1,3,4,7,8],"trw":["pora",123],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["sporo",108],"trw":["prosto",232],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["wprost",448],"trw":["prawo",368],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["mo",36877],"trw":["mu",7197],"lp":[],"rp":["mo","mu","om","um","pom","up","omu","pu","omo","omn","pon","pomo","mno","pomn","opn","pun","mom","omp","umn","opu"]},"209":{"input":[1,5,7,8],"tlp":["amo",1213],"trp":["oma",1236],"trw":["panu",545],"lp":["amo","apom","anom","apon","anum"],"rp":["oma","pano","uma","panu","upa","pona","napo","onam","mano","oman","omna","opan","namo","poma","mamo"]},"210":{"input":[2,5,7,8],"tlp":["spoj",1485],"trp":["moj",4972],"tlw":["spoj",47],"trw":["moj",1601],"lp":["spoj","smu","spom","sum"],"rp":["moj","mus","poj","pus","usm","mos","mnos","omos","opus","muj","osm","jmo","jom","jmu","jmuj","pojs"]},"211":{"input":[1,2,5,7,8],"tlw":["samo",635],"trw":["moja",1288],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emu",3362],"trp":["ome",1246],"trw":["open",44],"lp":["emu","emo","emno"],"rp":["ome","omy","upe","pomy","umy","ypo","omen","mome","ymu","ypom","upy","ume","onem","omny","omne","ypu","-m"]},"213":{"input":[1,3,5,7,8],"trw":["-pan",98],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["domu",1023],"trw":["moje",1112],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["wdomu",466],"trw":["mowy",435],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",725],"trp":["mog",6878],"tlw":["tom",165],"trw":["potu",49],"lp":["tom","topn","gm","gom","bom","gmu","gmun"],"rp":["mog","mot","mut","pob","mutn","moto","umb","mg","ptu","put","mput","motn","ogom"]},"217":{"input":[1,4,5,7,8],"tlw":["toma",53],"trw":["moga",569],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["sposob",1064],"trw":["moc",367],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["smutna",117],"trw":["mnostwo",266],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["temu",761],"trw":["potem",2023],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",589],"trw":["megan",179],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["gdybym",317],"trw":["prostu",339],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["samego",331],"trw":["pewnego",233],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pol",5926],"trw":["pol",506],"lp":[],"rp":["pol","pl","opi","lop","polo","pil","plo","ipo","pio","poli","pli","lopi","lp","lopo","opl","lip","ipol","opol","pili","pilo"]},"225":{"input":[1,6,7,8],"tlp":["zpo",957],"trp":["poz",4658],"tlw":["zlapal",59],"trw":["poza",483],"lp":["zpo","zapo","apl","apla","apal","apil","alp"],"rp":["poz","pla","pal","pozo","pola","poza","ozp","pali","lopa","ozpa","pala","ozpo","pozi"]},"226":{"input":[2,6,7,8],"tlp":["spok",1225],"trp":["pok",4474],"trw":["polski",326],"lp":["spok","spol"],"rp":["pok","poko","pols","piso","poki","posi","posl","pokl","opok","ospi","klop","opis","ipos","kop","pios","ispo","polk"]},"227":{"input":[1,2,6,7,8],"tlw":["wpol",123],"trw":["powoli",384],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epl",290],"trp":["pel",2439],"trw":["pole",188],"lp":["epl","eplo","eple","eopl","elp"],"rp":["pel","opie","lep","lepi","pole","ple","iepl","iepo","pele","ople","'l","i'l","'ll","i'll","piel"]},"229":{"input":[1,3,6,7,8],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["dopoki",198],"trw":["polskie",78],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["wpadl",182],"trw":["powiedzial",1337],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tpl",196],"trp":["piot",350],"trw":["plot",40],"lp":["tpl","tpli","topi"],"rp":["piot","pogl","plot","polg","polt","ptio","pito","ipog","pogi"]},"233":{"input":[1,4,6,7,8],"tlw":["filip",38],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["pociski",37],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["spotkac",156],"trw":["poczal",800],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["piotr",231],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"trw":["przeto",243],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["dopiero",1010],"trw":["predko",303],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"trw":["prosze",860],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mil",4286],"trw":["mimo",629],"lp":[],"rp":["mil","umi","omi","ml","mlo","hlop","oim","pomi","omni","milo","mio","poni","moi","lum","imo","mimo","mion","iom","moim","minu"],"special":"enter"},"241":{"input":[1,5,6,7,8],"trw":["mial",2579],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["spokoj",193],"trw":["musi",771],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["swoim",499],"trw":["mowil",1284],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mieli",613],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["zupelnie",861],"trw":["moze",4134],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["spokojnie",378],"trw":["lepiej",825],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["widzialem",345],"trw":["pozniej",689],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["tlum",312],"trw":["mogl",1899],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["galima",72],"trw":["mogla",591],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["chlop",216],"trw":["milosc",470],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["chlopak",251],"trw":["mowic",686],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["bylem",489],"trw":["moglem",321],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["zapytal",512],"trw":["potrzeba",320],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["glosem",676],"trw":["ktorym",841],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["bowiem",669],"trw":["petroniusz",731],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/pt-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/pt-keymap.json index afa22643f9..dd77e085bf 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/pt-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/pt-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",311],"tlw":["a",279974],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",199930],"tlw":["s",1267],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",403955],"tlw":["as",56128],"lp":["as","sa","ssa","ass","sas","asa","assa","ssas","wa","was","ww","sass","asas","www","aw","awa","sw","swa","ws"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",4232],"tlw":["e",282983],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ex",35539],"tlw":["x",299],"lp":["ex","xa","ea","ae","xe","exe","exa","ax","axa","xx"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",603738],"tlw":["de",316379],"lp":["de","es","se","ess","sse","des","ed","esse","ese","ses","dess","dese","ede","eses","sses","sd","esd","sde","desd","esde"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",290653],"tlw":["da",79087],"lp":["da","ad","ade","ada","dad","dade","das","essa","esa","ase","sad","asse","eda","ades","adas","ssad","desa","edad","sada","sex"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",2738],"tlw":["t",692],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",336586],"tlw":["ta",503],"lp":["ta","at","fa","ata","af","fat","tat","afa","ff","ft","att","tata","taf","atat","ataf","tf","fata","aft","tfa","tta"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",220589],"tlw":["c",936],"lp":["st","sc","ct","tc","cc","ts","cs"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",291876],"tlw":["casa",8888],"lp":["ca","sta","ac","aca","cas","tas","casa","ast","fac","stas","sca","tac","asta","sf","cac","sac","taca","caca","asc","fas"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",412432],"tlw":["ter",11405],"lp":["er","te","re","tr","rt","ter","rr","et","tre","ere","ert","rte","err","rre","ret","terr","ete","etr","rer","tere"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",489515],"tlw":["era",37427],"lp":["ra","ar","ara","era","tra","fe","tar","are","rta","ate","art","rar","fr","eta","ef","rra","atr","fer","arr","rat"],"rp":[]},"14":{"input":[2,3,4],"tlp":["est",130667],"tlw":["ser",18726],"lp":["est","ce","ec","res","ser","rec","rd","cr","esc","tes","ece","ste","rc","der","cer","str","erd","este","rece","ces"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["esta",82829],"tlw":["esta",19307],"lp":["esta","car","ras","eca","cad","tad","rac","rad","sar","arec","rda","dar","tras","raca","cada","erda","ard","star","stra","rca"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",5010],"trw":["n",1260],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",281535],"trp":["na",264338],"tlw":["q",346],"trw":["na",47469],"lp":["an","aq","ana","ann","anq","anna","anan","aan"],"rp":["na","nq","naq","nan","nna"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",220],"trp":["ns",77600],"trw":["j",385],"lp":["sn","sj"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["san",8808],"trp":["ja",39162],"tlw":["san",234],"trw":["ja",13037],"lp":["san","ans","aj","sq","ssan","ansa","anas","anj","aja","anja","ajan","wn"],"rp":["ja","nas","nsa","jan","nsan","jas","nja","nsas"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",399933],"trp":["ne",63763],"tlw":["en",763],"trw":["y",1207],"lp":["en","ene","een","ey","enn","enny","eyn","eyne","enen","enne"],"rp":["ne","nen","ny","nny","yn","yne","ney","nne","ye","ynn"]},"21":{"input":[1,3,5],"tlp":["ena",18156],"trp":["ya",615],"tlw":["any",171],"lp":["ena","ane","eq","enq","xan","ay","ean","anny","anea","enx","aen","any","enxe","anen"],"rp":["ya","nea","nx","nxe","nex","nexa"]},"22":{"input":[2,3,5],"tlp":["sen",38594],"trp":["nd",184626],"tlw":["eyes",75],"trw":["nesse",1917],"lp":["sen","end","ens","den","ej","ende","sej","esen","esej","send","eend","sens"],"rp":["nd","nde","je","nse","nes","ness","nden","ndes"]},"23":{"input":[1,2,3,5],"tlp":["and",82846],"trp":["nda",26353],"tlw":["seja",3811],"trw":["nada",9040],"lp":["and","ensa","ande","eja","enas","dan","anda","seja","esq","daq","sand","enda","dand","seq"],"rp":["nda","nad","nada","jane","nand","ndan"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",711],"trp":["nt",380933],"tlw":["b",631],"lp":["bt","bb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ant",80565],"trp":["nta",60116],"tlw":["tanta",767],"lp":["ant","ab","ba","tan","tant","aba","anta","ban","bat","fan","aban","fant","taq","bata","tab"],"rp":["nta","nf","ntan","nat","ntat"]},"26":{"input":[2,4,5],"tlp":["bs",6193],"trp":["nc",98606],"lp":["bs","bj","cn","bst","sb","bsc","bc"],"rp":["nc","nst","nsc","nts"]},"27":{"input":[1,2,4,5],"tlp":["anc",29762],"trp":["nca",33491],"tlw":["tantas",546],"lp":["anc","sab","cab","anca","can","stan","bas","acab","caba","tanc","bast","cant","sant"],"rp":["nca","ntas","ncas","nsta","nac","nsac","nsf"]},"28":{"input":[3,4,5],"tlp":["ent",207420],"trp":["nte",165647],"tlw":["entre",8275],"trw":["net",250],"lp":["ent","ente","be","br","ten","entr","ren","rn","bre","ber","eb","rent","ern","tent","eren"],"rp":["nte","ntr","ntre","nter","nten"]},"29":{"input":[1,3,4,5],"tlp":["ran",42850],"trp":["ntra",17480],"tlw":["frente",4513],"trw":["nate",648],"lp":["ran","ante","enta","abe","bra","rq","rna","rab","tran","trab","raba","bar","rant","aber","abr","rtan","fren"],"rp":["ntra","ntar","nar"]},"30":{"input":[2,3,4,5],"tlp":["enc",39246],"trp":["ntes",21043],"tlw":["entender",1104],"trw":["neste",1524],"lp":["enc","sent","cen","dent","tend","bec","cent","ceb","tenc","rend","cebe","renc","rceb"],"rp":["ntes","nce","nder","ntec","nec","nece","nstr"]},"31":{"input":[1,2,3,4,5],"tlw":["antes",8436],"trw":["jantar",1170],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1421],"trw":["i",2965],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",127585],"trp":["ia",229190],"tlw":["ai",2545],"trw":["ia",3166],"lp":["ai","az","za","zi","zia","azi","azia","aia","aza","zz","aiz","zzi"],"rp":["ia","iz","iza","izi","iai","izia","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",84867],"trp":["is",248469],"tlw":["si",3658],"trw":["is",409],"lp":["si","ssi","sis","ssis","sk","ski"],"rp":["is","iss","isi","ik","ki","issi","iki","ks"]},"35":{"input":[1,2,6],"tlp":["ais",63939],"trp":["isa",27355],"tlw":["saia",685],"lp":["ais","assi","sai","asi","wi","sia","asia","ak","saia","sias","zas","ssia","aisa"],"rp":["isa","ias","isas","issa","ka","iais","ika"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",135404],"trp":["ie",27112],"tlw":["ei",385],"trw":["ie",93],"lp":["ei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",41552],"trp":["ix",21958],"tlw":["xia",158],"trw":["ix",103],"lp":["ze","ez","aze","xi","eix","aix","eia","eza","eze","eixa","exi","aixa","eixe","axi","ezi","eai"],"rp":["ix","ize","ixa","ixe"]},"38":{"input":[2,3,6],"tlp":["di",149151],"trp":["id",117035],"tlw":["disse",22191],"lp":["di","dis","diss","dei","edi","sid","sei","eis","did","side","esi","essi"],"rp":["id","isse","ide","ise","idi","idei","ke","ied"]},"39":{"input":[1,2,3,6],"tlp":["dia",31205],"trp":["ida",58061],"tlw":["dia",8588],"trw":["ideia",3049],"lp":["dia","diz","deix","zes","dize","ezes","adei","deia","xis","exis","dez","dias","adi","edia","sida","dida"],"rp":["ida","idad","iad","ieda"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",136577],"trp":["it",117311],"tlw":["vi",1966],"trw":["it",901],"lp":["ti","vi","tiv","viv","vit","tit","vivi","tivi","viti","tv","vii","viii","vitt"],"rp":["it","iv","iti","ivi","itiv","itt"]},"41":{"input":[1,4,6],"tlp":["va",136327],"trp":["ita",29811],"tlw":["vai",6210],"lp":["va","av","ava","fi","tav","tava","via","faz","avi","avia","ati","vai","tia","ativ","tiva","afi"],"rp":["ita","if","ifi","iva"]},"42":{"input":[2,4,6],"tlp":["ci",126068],"trp":["ic",96581],"tlw":["civis",136],"lp":["ci","sti","tic","vis","cis","sit","siv","sic","vist","stiv","ssiv","sist","sci","ck","visi"],"rp":["ic","ist","ici","isc","isti"]},"43":{"input":[1,2,4,6],"tlp":["cia",40513],"trp":["ica",47187],"tlw":["vista",1644],"lp":["cia","stav","fic","fica","aci","cav","fici","cava","tica","sav","cisa","cai","sava","sica","vas"],"rp":["ica","ista","ific","icia","itas"]},"44":{"input":[3,4,6],"tlp":["ri",197607],"trp":["ir",123977],"tlw":["ver",6812],"trw":["ir",3642],"lp":["ri","ve","eri","ver","ev","eir","eit","eve","rei","tir","rv","rit","tive","teri","vr","rri"],"rp":["ir","ive","ite","ire"]},"45":{"input":[1,3,4,6],"tlp":["ria",65506],"trp":["ira",34560],"tlw":["vez",10904],"trw":["iria",1476],"lp":["ria","ari","eria","vez","eira","zer","ave","faze","rav","azer","aria","eva","fei","feit","var","arti","rava","eita"],"rp":["ira","izer"]},"46":{"input":[2,3,4,6],"tlp":["eci",33622],"trp":["iste",8299],"tlw":["tivesse",3417],"lp":["eci","vid","ves","reci","cid","cri","dir","dev","cie","ris","esti","tid","vess","ecis","rid","verd","dire","seri","deve"],"rp":["iste"]},"47":{"input":[1,2,3,4,6],"tlw":["estava",26264],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",225142],"trw":["in",1383],"lp":[],"rp":["in","nh","inh","ni","hi","ini","nin","nni","hin","nhi","hn","inin","ninh","hnn"]},"49":{"input":[1,5,6],"tlp":["anh",17458],"trp":["ha",149599],"tlw":["ah",1851],"trw":["ha",7686],"lp":["anh","ain","anha","ani","zin","zinh","ah"],"rp":["ha","nha","inha","ina","ian","han","iq","nia","nz","nina","nai","inz","hia"]},"50":{"input":[2,5,6],"tlp":["sin",6776],"trp":["nsi",8141],"tlw":["sin",78],"trw":["his",425],"lp":["sin","sh","ssin","shi","shin"],"rp":["nsi","ins","his","nis","ij","ji","inis","nsis","insi","nsin","niss","nk","kh","inj","kin"]},"51":{"input":[1,2,5,6],"tlp":["sina",3120],"trp":["has",9127],"tlw":["sinais",487],"trw":["haja",264],"lp":["sina","ansi","wh","ash","ashi","win","sain","anis","wash","siq","ank","wins"],"rp":["has","nhas","inas","nais","iaj","iaja","isq","ija"]},"52":{"input":[3,5,6],"tlp":["enh",22040],"trp":["he",69162],"trw":["he",710],"lp":["enh","eni","enin","ein","enie"],"rp":["he","nhe","ien","hei","nei","nenh","nhei","ine","inhe","nie","hen","nnie","hy","hine","hie"]},"53":{"input":[1,3,5,6],"tlp":["zen",6089],"trp":["izen",1523],"tlw":["annie",302],"lp":["zen","anei","enha","azen","anhe","eina","anie","ezen","xin","xinh"],"rp":["izen","nze","heia","inze","ixan","hae","nzen","hay","ixin","hea"]},"54":{"input":[2,3,5,6],"tlp":["senh",8286],"trp":["ind",27747],"tlw":["she",187],"trw":["keynes",525],"lp":["senh","din","endi","dinh","ensi","eij"],"rp":["ind","ndi","iden","nid","indi","jei","hes","nsid","ndid","nsei","inde","hesi","ines","hid"]},"55":{"input":[1,2,3,5,6],"tlw":["ainda",11235],"trw":["had",467],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["tin",38604],"trp":["nti",28083],"tlw":["bit",131],"lp":["tin","tinh","bi","th","vin","bit","vinh","bin"],"rp":["nti","int","nv","ntin","ib","niv","inv","nit","nvi","ith","ibi","ht"]},"57":{"input":[1,4,5,6],"tlp":["abi",11269],"trp":["hav",21186],"tlw":["tinha",19974],"trw":["havia",12654],"lp":["abi","fin","bai","van","bia","fina","abia","anti","vant"],"rp":["hav","havi","inf","iant","nfi","hava","nif","nav","ntia","inta","nifi"]},"58":{"input":[2,4,5,6],"tlp":["ch",51196],"trp":["nci",30934],"tlw":["this",245],"trw":["nick",345],"lp":["ch","cin","stin","cinc","chi","sint","sib"],"rp":["nci","inc","nic","hist","inci","inst","inic","nici","nist","nsci","nch","nsti","ich"]},"59":{"input":[1,2,4,5,6],"tlw":["sabia",4759],"trw":["jack",1117],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["enti",15708],"trp":["inte",16818],"tlw":["the",5095],"trw":["neve",796],"lp":["enti","bri","rin","ven","the","tenh","vent","vern","env"],"rp":["inte","her","ient","nve","heir","ntei","neir","nver","here","nive","ntir"]},"61":{"input":[1,3,4,5,6],"tlw":["tenha",2165],"trw":["haver",852],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["sentir",1575],"trw":["interesse",884],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["diante",2499],"trw":["instante",1219],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",2403],"trw":["o",225240],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",290064],"trp":["oa",20855],"tlw":["ao",31621],"lp":["ao","aao"],"rp":["oa","oao"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",163724],"trp":["os",421052],"tlw":["so",11721],"trw":["os",73145],"lp":["so","sso","sos","ssos","soo"],"rp":["os","oss","osso","oso","osos","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["sao",23278],"trp":["oas",8168],"tlw":["sao",10362],"lp":["sao","soa","aos","ssoa","soas","aso","ssao","asso","wo","asos","woo","asao"],"rp":["oas","ossa","osa","ow","osas","osao","owa","osw"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",6725],"trp":["oe",22866],"trw":["-",58877],"lp":["eo","e-","e-o"],"rp":["oe","o-","-e","-o","o-e"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",11510],"trp":["ox",5327],"trw":["-a",77],"lp":["xo","a-","exo","xao","eao","xoe","exao","xa-","xe-","e-a","axo","axoe","exoe","ao-","a-a"],"rp":["ox","-a","oxa","oxo","-a-"]},"70":{"input":[2,3,7],"tlp":["do",416137],"trp":["od",73365],"tlw":["do",90461],"trw":["-se",74],"lp":["do","dos","esso","edo","eso","dedo","edos","soe","soes","doe","do-"],"rp":["od","ode","odo","oes","-s","-se","odos","osse","ose"]},"71":{"input":[1,2,3,7],"tlp":["ado",79015],"trp":["oda",11723],"tlw":["dado",976],"lp":["ado","ados","dado","sado","dao","a-s","a-se","xado","sexo","eado","xos","da-","dosa","adao","xoes","exos"],"rp":["oda","odas","oeda","owe"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",290254],"trp":["ot",25787],"tlw":["to",1894],"lp":["to","go","tot","tto","got","tog","gt","gto","too","gg","goo"],"rp":["ot","og","ogo","oto","ott","otto","otog","ogg"]},"73":{"input":[1,4,7],"tlp":["fo",73193],"trp":["of",13544],"tlw":["tao",9962],"trw":["of",1931],"lp":["fo","ga","ag","tao","ago","ato","aga","fato","fog","tota","gat","fogo","fot","foto","gao","tag","tato"],"rp":["of","ota","oga"]},"74":{"input":[2,4,7],"tlp":["co",405580],"trp":["oc",76923],"tlw":["gosto",1191],"lp":["co","sto","tos","cos","sco","gos","gost","cost","soc","toc","stos","cto","goc","coc","scoc","coco"],"rp":["oc","ost","osto","oco"]},"75":{"input":[1,2,4,7],"tlp":["cao",52031],"trp":["oca",15079],"tlw":["caso",3450],"lp":["cao","acao","aco","fos","foss","stao","caso","gas","sag","acos","sof","atos","sfo","saco","toca","asto"],"rp":["oca","osta","ocas","otas"]},"76":{"input":[3,4,7],"tlp":["ro",189615],"trp":["or",300995],"tlw":["george",652],"trw":["or",278],"lp":["ro","eg","ge","tro","gr","rg","tor","rto","erg","gor","ero","rro","eto","erto"],"rp":["or","ort","orr","ore","orre","orte"]},"77":{"input":[1,3,4,7],"tlp":["for",35880],"trp":["ora",47672],"tlw":["agora",9502],"trw":["ora",1045],"lp":["for","gar","gra","ega","age","aro","fora","agor","gora","arg","egar","rof","arro","rox","rao","rga","fort","agr"],"rp":["ora","orta"]},"78":{"input":[2,3,4,7],"tlp":["ros",31755],"trp":["oce",38021],"tlw":["todos",10399],"lp":["ros","cor","tod","seg","todo","dor","esco","eco","coe","coes","corr","esto","tros","sor","roc"],"rp":["oce","ord","oder","ores","orc"]},"79":{"input":[1,2,3,4,7],"tlw":["fosse",5405],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["ou",187963],"trw":["no",51404],"lp":[],"rp":["ou","no","on","un","nu","nun","nou","ono","uo","nuo","uou","nuou","onn","uno","onou","oou","oun","non","oon","unn"]},"81":{"input":[1,5,7],"tlp":["qu",415783],"trp":["ua",141069],"tlw":["ano",2467],"trw":["nao",106447],"lp":["qu","qua","quan","aqu","ano","au","anu","anqu"],"rp":["ua","nao","uan","nqu","ona","nqua","naqu","nua","una","oq","oqu","uq"]},"82":{"input":[2,5,7],"tlp":["su",74848],"trp":["us",60120],"tlw":["sou",2630],"trw":["nos",20778],"lp":["su","sou","son","ssu","sus","ssou","sun"],"rp":["us","nos","ons","jo","ju","noss","uns","oj","jun","nso","uj","uso","nsou"]},"83":{"input":[1,2,5,7],"tlp":["sua",42963],"trp":["uas",22607],"tlw":["sua",31618],"trw":["nossa",3352],"lp":["sua","anos","suas","quas","squ","aus","ausa","aju","assu","sau"],"rp":["uas","usa","nsao","joa","uja","usan","oja","joao","usao","onsa"]},"84":{"input":[3,5,7],"tlp":["eu",147300],"trp":["ue",347032],"tlw":["eu",43591],"trw":["you",709],"lp":["eu","eno","eun","eon","eu-","enou"],"rp":["ue","uen","u-","one","ou-","ueno","n-","yo","oen","you","ueu","nou-","nue","-n"]},"85":{"input":[1,3,5,7],"tlp":["que",325065],"trp":["ux",2970],"tlw":["que",242225],"trw":["-nao",146],"lp":["que","aque","equ","quen","eque","enqu","xou","xu","exu","xua","exua"],"rp":["ux","uena","nque","uxa","oque","uxo","oux","uxe","ouxe"]},"86":{"input":[2,3,5,7],"tlp":["seu",45915],"trp":["ndo",102634],"tlw":["seu",30091],"trw":["onde",9124],"lp":["seu","eus","du","endo","deu","seus","enos","deus"],"rp":["ndo","ud","ond","und","onde","udo","undo","onse","ude","u-s","u-se","ndeu"]},"87":{"input":[1,2,3,5,7],"tlw":["quando",23534],"trw":["usando",884],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["gu",87969],"trp":["nto",82230],"tlw":["tu",788],"trw":["notou",383],"lp":["gu","tu","bo","tou","gun","gunt"],"rp":["nto","ont","ut","ob","ng","out","unt","ntou","ug","ub","unto","ngu","uto","ong"]},"89":{"input":[1,4,5,7],"tlp":["anto",26539],"trp":["uant",14606],"tlw":["quanto",4990],"trw":["nota",549],"lp":["anto","fu","gua","gan","fun","atu","tua","ang","agu","agua","fon","abo"],"rp":["uant","onta","ntao","uga","uta","onf","unta","nfo"]},"90":{"input":[2,4,5,7],"tlp":["con",88877],"trp":["uc",20930],"tlw":["sob",2880],"trw":["junto",1728],"lp":["con","cu","cont","cons","sob","cou","scu","stou","cob","guns"],"rp":["uc","nco","ntos","ouc","uco","unc","ouco","ncon","ocu","nunc"]},"91":{"input":[1,2,4,5,7],"tlw":["boca",2277],"trw":["nunca",7198],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ento",36495],"trp":["ur",58598],"tlw":["gente",3137],"trw":["outro",7994],"lp":["ento","egu","ru","gue","rou","tur","rgu","gen","ergu"],"rp":["ur","uer","obr","utr","outr","obre","ontr","utro","onte","ntro","uro"]},"93":{"input":[1,3,4,5,7],"tlw":["entao",11118],"trw":["outra",6635],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["sobre",14110],"trw":["outros",5996],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["grande",7378],"trw":["outras",3514],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["io",92146],"trw":["l",496],"lp":[],"rp":["io","lo","ol","li","oi","il","ili","olo","oli","ll","ilo","ill","lio","iol","oll","oio","lli","ilio","loo","illi"]},"97":{"input":[1,6,7],"tlp":["al",200651],"trp":["la",162745],"tlw":["ali",4130],"trw":["la",8495],"lp":["al","ala","ali","aio","alo","zo","alia","zao","azao"],"rp":["la","oz","lia","ial","ola","liz","iao","ilia","ozi","ila","liza"]},"98":{"input":[2,6,7],"tlp":["sol",10331],"trp":["ois",42788],"tlw":["sol",2060],"trw":["isso",18569],"lp":["sol","sil","sio","sl","ssio","soli","solo"],"rp":["ois","isso","ios","los","iso","ossi","osi","ls","lis","lso","ioso","ols","ok"]},"99":{"input":[1,2,6,7],"tlp":["sal",8453],"trp":["oisa",15190],"tlw":["sala",3032],"trw":["las",303],"lp":["sal","sala","asil","wil","will","soz","sozi","soal","alis","alos","alas","als"],"rp":["oisa","las","isao","iosa","lass","lias","lsa","olsa"]},"100":{"input":[3,6,7],"tlp":["el",253859],"trp":["le",167939],"tlw":["ele",53580],"trw":["lei",1081],"lp":["el","ele","elo","eio","eli","e-l","e-lo","ell"],"rp":["le","lei","ole","-l","ile","-lo","leo","lie","ioe","ilei","oel","iole"]},"101":{"input":[1,3,6,7],"tlp":["ela",75025],"trp":["ixo",8660],"tlw":["ela",31605],"trw":["lixo",278],"lp":["ela","ale","eal","aixo","eliz","eixo","eali","a-l","alei","ael","a-lo"],"rp":["ixo","oxi","lex","oze","-la","lez","leza","ia-","lea"]},"102":{"input":[2,3,6,7],"tlp":["del",18683],"trp":["ido",37514],"tlw":["eles",10957],"trw":["ido",578],"lp":["del","eles","dele","doi","dois","elos","sido","dio","dido","sile","sel","dol"],"rp":["ido","les","odi","lid","ld","idos","ilid","old"]},"103":{"input":[1,2,3,6,7],"tlw":["dela",4626],"trw":["lado",7350],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",89842],"trp":["ito",55627],"tlw":["tio",740],"trw":["logo",3653],"lp":["vo","gi","vol","volt"],"rp":["ito","ig","lt","ov","lg","igo","olt","lv","oit","ovo","lto","liv","log","ivo","lig","lti"]},"105":{"input":[1,4,6,7],"tlp":["alg",28147],"trp":["lta",14607],"tlw":["foi",19254],"lp":["alg","tal","foi","fal","alt","fil","fala","alv","val","agi","alav","talv","fl","voz","gia"],"rp":["lta","iga","ova","olta","lav"]},"106":{"input":[2,4,6,7],"tlp":["voc",35885],"trp":["ico",23673],"tlw":["visto",1856],"trw":["isto",3322],"lp":["voc","coi","cio","cois","cl","col","vos","cil","colo","sig","scol"],"rp":["ico","lic","isto","itos","oci","loc","igos","icio","lc"]},"107":{"input":[1,2,4,6,7],"tlw":["coisa",9623],"trw":["local",1110],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rio",30701],"trp":["iro",27990],"tlw":["rio",2083],"trw":["livro",2336],"lp":["rio","vel","eiro","eito","tori","rel","rig","erio","tel","rito","rov"],"rp":["iro","ori","ior","lev","ove","lve","ivel","oite","orri"]},"109":{"input":[1,3,4,6,7],"tlw":["talvez",5564],"trw":["levar",1384],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["voce",31586],"trw":["livros",1191],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["claro",3392],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",111008],"trw":["olhou",3514],"lp":[],"rp":["ho","lh","ui","ul","lho","nho","olh","iu","lu","ilh","olho","onh","hu","uni","ulh","inu","ulo","lin","hou","ino"]},"113":{"input":[1,5,6,7],"tlp":["qui",23334],"trp":["lha",27941],"tlw":["aqui",6587],"trw":["luz",3303],"lp":["qui","qual","alh","aqui","alq","alqu","alha"],"rp":["lha","ual","lan","nal","olha","uz","lq","lqu","ualq","ilha","inal","iona","ula"]},"114":{"input":[2,5,6,7],"tlp":["sul",3044],"trp":["hos",17929],"tlw":["sonhos",1378],"trw":["olhos",8588],"lp":["sul","sonh","sion","solu","sui","sino"],"rp":["hos","lhos","uis","onsi","nhos","hoj","usi","ulos","lus","jul","inos","ijo","ku","loj"]},"115":{"input":[1,2,5,6,7],"tlw":["quais",1786],"trw":["loja",754],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elh",18680],"trp":["lhe",25233],"trw":["lhe",9996],"lp":["elh","elho","enho","enhu","elen"],"rp":["lhe","uel","len","uele","onhe","ulhe","nel","uei","olhe","in-","ilen","ly","-lh","-lhe","nele"]},"117":{"input":[1,3,5,6,7],"tlw":["aquele",3696],"trw":["naquele",1801],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["disse-lhe",457],"trw":["hoje",2804],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["aqueles",1766],"trw":["olhando",2030],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["gui",16504],"trp":["uit",26642],"tlw":["vou",3725],"trw":["novo",4638],"lp":["gui","bl","gin"],"rp":["uit","lgu","uito","uv","nov","ing","ouv","ult","uvi","itu","ouvi","noit","lug","ingu","onti","long","onv"]},"121":{"input":[1,4,5,6,7],"tlw":["filho",2705],"trw":["nova",2638],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cinco",2400],"trw":["unico",1538],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["alguns",5675],"trw":["unica",1846],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["tenho",3664],"trw":["noite",6059],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["qualquer",7063],"trw":["lugar",5157],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["senhor",5213],"trw":["jeito",1631],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["fazendo",2599],"trw":["historia",3341],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",1293],"trw":["p",1742],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",54655],"trp":["pa",230757],"trw":["papa",278],"lp":["ap","apa","app"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",45986],"trp":["ps",1182],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",5532],"trp":["pas",19597],"trw":["passa",679],"lp":["spa","sap","sapa","asp","apas","aps","ssap"],"rp":["pas","pass"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",29704],"trp":["pe",179445],"trw":["pe",2387],"lp":["ep","epe","e'"],"rp":["pe","pee","''"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",14035],"trp":["pape",2221],"lp":["ape","xp","exp","epa","xpe","expe","xpa","expa","a'"],"rp":["pape","'a","pea","px"]},"134":{"input":[2,3,8],"tlp":["esp",37689],"trp":["pes",22163],"trw":["pes",1833],"lp":["esp","spe","espe","dep","depe","sep","desp","sesp","sped","spes","d'","eps","ssep"],"rp":["pes","pess","ped","pede","pd","'s","'d"]},"135":{"input":[1,2,3,8],"tlp":["espa",4992],"trp":["pad",5872],"tlw":["espada",1207],"trw":["pesada",361],"lp":["espa","apes","esap","spad","aspe","sepa","depa","d'a","xped","epas","spea","spx","aspx"],"rp":["pad","pesa","pada","peda","pade"]},"136":{"input":[4,8],"tlp":["tp",287],"trp":["pt",3485],"trw":["pt",2780],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apat",596],"trp":["pat",2789],"tlw":["tapa",93],"lp":["apat","tap","apt","tapa","apta"],"rp":["pat","pata","pta"]},"138":{"input":[2,4,8],"trp":["pc",1162],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",9324],"trp":["pac",6453],"tlw":["capa",572],"trw":["pasta",248],"lp":["cap","capa","spac","apac","scap","capt"],"rp":["pac","pca","paca","past","pact","patc"]},"140":{"input":[3,4,8],"tlp":["rep",8013],"trp":["pr",132035],"trw":["peter",441],"lp":["rep","rp","repe","rpr","rpre","epr","epre","epet","repr","erp"],"rp":["pr","per","pre","pert","pet","pret","pree","prep","pete","pere"]},"141":{"input":[1,3,4,8],"tlp":["apar",7369],"trp":["par",142915],"tlw":["tapete",247],"trw":["para",95245],"lp":["apar","apr","rap","apre","epar","rapa","xper","repa","xpr","expr","xpre","aper"],"rp":["par","para","pare","part","pra","pera","prat","perf"]},"142":{"input":[2,3,4,8],"tlp":["resp",11738],"trp":["pres",18252],"tlw":["espere",312],"trw":["perder",886],"lp":["resp","sper","spec","depr","cep","epc","cepc","spet","rsp"],"rp":["pres","prec","pec","perd","perc","pedr","pect","pers","pesc","pred","pest"]},"143":{"input":[1,2,3,4,8],"tlw":["apesar",1985],"trw":["parece",2731],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",67484],"trw":["m",1887],"lp":[],"rp":["mp","mm","pn","mn","nm"]},"145":{"input":[1,5,8],"tlp":["am",185140],"trp":["ma",359934],"tlw":["ama",422],"trw":["ma",502],"lp":["am","ama","amp","aman","ampa","apan"],"rp":["ma","man","mpa","pan","mana","mpan","nam","mam","maq","pam","mama","map","mapa","nama"]},"146":{"input":[2,5,8],"tlp":["sm",24615],"trp":["nsp",908],"lp":["sm"],"rp":["nsp","nsm","ms"]},"147":{"input":[1,2,5,8],"tlp":["sam",7995],"trp":["mas",58930],"tlw":["sam",195],"trw":["mas",44387],"lp":["sam","sma","span","asam","asm","ssam","amas","smas","asma","ansp","ansm"],"rp":["mas","jam","nsam","jama","mass","jap","maj","mans","mpas"]},"148":{"input":[3,5,8],"tlp":["em",283802],"trp":["me",270378],"tlw":["em",82946],"trw":["me",23412],"lp":["em","emp","eme","emen","epen","empe","emm","eem"],"rp":["me","men","pen","mem","nem","mpe","my","mpen","n'","mmy","pene","ym"]},"149":{"input":[1,3,5,8],"tlp":["ame",42844],"trp":["pena",8675],"tlw":["emma",305],"trw":["mae",5046],"lp":["ame","amen","ema","apen","eman","xem","exem","xemp","xam","exam"],"rp":["pena","mae","peq","mane","name","mea","mame","max","pame","nema"]},"150":{"input":[2,3,5,8],"tlp":["sem",29109],"trp":["mes",30950],"tlw":["sem",13046],"trw":["meses",1641],"lp":["sem","esm","dem","semp","ssem","dm","sme","esme","smen","seme"],"rp":["mes","mesm","pens","med","mens","pend","mese","mend","ndep","mped"]},"151":{"input":[1,2,3,5,8],"tlw":["apenas",7324],"trw":["mesma",4037],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",964],"trp":["mb",32610],"lp":["tm","bm"],"rp":["mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",28816],"trp":["mat",4959],"tlw":["fama",211],"trw":["matt",334],"lp":["tam","amb","tamb","fam","atam","tama","amba","tamp","bam","abam","atm"],"rp":["mat","mant","mba","ntam","mata","pant","mbat","mpat","matt"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",156],"trp":["mc",119],"tlw":["cm",85],"lp":["cm","cmm"],"rp":["mc","mcc"]},"155":{"input":[1,2,4,5,8],"tlw":["cama",2189],"trw":["maca",202],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",41396],"trp":["ment",85913],"tlw":["bem",13447],"trw":["mente",2130],"lp":["rm","tem","bem","temp","emb","rem","empr","erm","rme","embr","term"],"rp":["ment","mpr","mpre","mer","mbr","mbe","mbem","met","ntem"]},"157":{"input":[1,3,4,5,8],"tlw":["tambem",10764],"trw":["mar",1598],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["sempre",8109],"trw":["presente",1043],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["certamente",1039],"trw":["pensar",2492],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",24405],"lp":[],"rp":["pi","ip","ipi","pip","ppi","ipp","pipp","ippi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",7700],"trp":["pai",11844],"trw":["pai",5571],"lp":["api","apaz","apai","zap","apia","zip"],"rp":["pai","paz","ipa","pia","ipai","piz","pizz","pazz"]},"162":{"input":[2,6,8],"tlp":["spi",5606],"trp":["isp",2854],"lp":["spi","sip","ssip"],"rp":["isp","pis","psi"]},"163":{"input":[1,2,6,8],"tlp":["apis",171],"trp":["pais",4098],"trw":["pais",2931],"lp":["apis","spia"],"rp":["pais","ispa","pisa","pias"]},"164":{"input":[3,6,8],"tlp":["epi",511],"trp":["pei",5264],"lp":["epi"],"rp":["pei","ipe","i'","pie","pipe"]},"165":{"input":[1,3,6,8],"tlp":["apei",323],"trp":["paix",1055],"trw":["peixe",323],"lp":["apei","a'z","a'za","zipe"],"rp":["paix","paze","peix","pez","peza","'z","'za","peia"]},"166":{"input":[2,3,6,8],"tlp":["espi",3719],"trp":["pedi",4130],"trw":["pedi",235],"lp":["espi","spei","disp","epis"],"rp":["pedi","pid","pide","peis","pied","ipes","i'd","ispe","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["despedida",129],"trw":["paises",490],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",3741],"trp":["pit",4493],"lp":["tip","tipi"],"rp":["pit"]},"169":{"input":[1,4,6,8],"tlp":["apit",3841],"trp":["pita",2323],"lp":["apit","vap","apav"],"rp":["pita","pati","pav","pava","pavi"]},"170":{"input":[2,4,6,8],"tlp":["cip",5141],"trp":["pist",660],"lp":["cip","cipi","spit","scip"],"rp":["pist","pisc","psic","icip","pic","ipic","ipc","pci","ipci"]},"171":{"input":[1,2,4,6,8],"tlw":["capaz",1624],"trw":["passava",922],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",238],"trp":["pri",25730],"tlw":["repetir",222],"trw":["piper",124],"lp":["rip","trip","repi","tepi","epit"],"rp":["pri","peri","pir","peit","piri","peti","prie","priv","prev","pire","prir","iper","it'","prei","ptei"]},"173":{"input":[1,3,4,6,8],"tlw":["rapaz",1561],"trw":["partir",1512],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["especie",1783],"trw":["pedir",815],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["esperava",1003],"trw":["parecia",5095],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["im",105296],"trw":["mim",6113],"lp":[],"rp":["im","mi","min","minh","imp","mim","nim","imi","mini","pin","ph","inim","nimi","pini","imin","mpi","hip","phi","imm","him"]},"177":{"input":[1,5,6,8],"tlp":["ami",18005],"trp":["mai",54885],"tlw":["amanha",798],"trw":["minha",12630],"lp":["ami","amin","anim","amai","ziam","aph"],"rp":["mai","ima","iam","ham","nham","mina","manh","hama","panh","nima","mia","impa","inam","imai"]},"178":{"input":[2,5,6,8],"tlp":["sim",20054],"trp":["mis",5228],"tlw":["sim",4845],"trw":["jim",693],"lp":["sim","ssim","simp","smi","spin","smis","sism","simi"],"rp":["mis","miss","jim","ism","mik","nism","insp","jimm","nspi","nsmi","mins","mk"]},"179":{"input":[1,2,5,6,8],"tlw":["assim",9572],"trw":["mais",42140],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",2072],"trp":["ime",24625],"trw":["i'm",90],"lp":["emi","eph","emin","eim"],"rp":["ime","mei","imen","imei","meni","impe","inem","penh","immy","hem","mine","ymi","mie","peni","phie","pime"]},"181":{"input":[1,3,5,6,8],"trw":["menina",1204],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["seph",283],"trw":["pensei",1244],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["demais",2703],"trw":["medida",966],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",10629],"trp":["mit",5096],"tlw":["vim",252],"trw":["http",287],"lp":["tim","vim","timi","thm","bmi"],"rp":["mit","ntim","miti","imit","mbi","itim","imb","pint","itm","mbin","htm","http","mith","mint","himb"]},"185":{"input":[1,4,5,6,8],"tlw":["tinham",4868],"trw":["haviam",2041],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",280],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["cima",3152],"trw":["incapaz",367],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["vem",1339],"trw":["permitir",306],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["fazem",993],"trw":["primeira",3896],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["devem",852],"trw":["presidente",1153],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["estavam",5892],"trw":["imediatamente",1406],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",224923],"trw":["po",410],"lp":[],"rp":["po","op","opo","pop","opp","oop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",6185],"trp":["opa",1837],"trw":["pao",557],"lp":["apo","apao"],"rp":["opa","pao","papo","popa"]},"194":{"input":[2,7,8],"tlp":["spo",12061],"trp":["pos",28599],"trw":["posso",2774],"lp":["spo","spos","sop"],"rp":["pos","poss","opos","osp","pso","poso"]},"195":{"input":[1,2,7,8],"tlp":["apos",2721],"trp":["posa",1096],"tlw":["apos",1872],"trw":["passo",1318],"lp":["apos","sapo","sopa","apso"],"rp":["posa","opas","pow"]},"196":{"input":[3,7,8],"tlp":["epo",16405],"trp":["ope",1755],"trw":["poe",134],"lp":["epo","eop","eopo","e-p"],"rp":["ope","poe","o'","peo","peop","-p","oope"]},"197":{"input":[1,3,7,8],"tlp":["xpo",537],"trp":["peao",87],"lp":["xpo","expo"],"rp":["peao"]},"198":{"input":[2,3,7,8],"tlp":["depo",14313],"trp":["pod",31617],"tlw":["espesso",79],"trw":["pode",9510],"lp":["depo","espo","epos","spoe"],"rp":["pod","pode","peso","pose","ospe","pos-","poes","osep","opes"]},"199":{"input":[1,2,3,7,8],"tlw":["esposa",847],"trw":["pessoas",7432],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1854],"trp":["pot",800],"tlw":["topo",438],"lp":["top","topo"],"rp":["pot","opt","pg","pto","ptop"]},"201":{"input":[1,4,7,8],"tlp":["apag",291],"trp":["pag",4975],"trw":["pag",402],"lp":["apag","apg","apto"],"rp":["pag","paga","pato","pago","opag","opat"]},"202":{"input":[2,4,7,8],"tlp":["cop",1332],"trp":["post",6329],"tlw":["copo",522],"trw":["posto",634],"lp":["cop","copo","copt","coop"],"rp":["post","poc","poco","opc","pco","opco","pgc","pgcs"]},"203":{"input":[1,2,4,7,8],"tlw":["sapatos",482],"trw":["opcao",191],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",10909],"trp":["por",83084],"tlw":["reporter",133],"trw":["por",51332],"lp":["rop","ropr","rpo","ropo"],"rp":["por","pro","port","perg","prop","opr","orp","orpo","peg","pore","preo","preg","pero","opor","pego","prot"]},"205":{"input":[1,3,4,7,8],"tlw":["aeroporto",244],"trw":["porta",4885],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corpo",3692],"trw":["poder",3010],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["resposta",1706],"trw":["professor",1075],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["um",243291],"trw":["um",108193],"lp":[],"rp":["um","om","mo","mu","omo","mpo","omp","pu","num","pon","up","pou","mun","mon","nom","mom","upo","mou","omu","oup"]},"209":{"input":[1,5,7,8],"tlp":["amo",18697],"trp":["uma",107111],"tlw":["amo",321],"trw":["uma",83293],"lp":["amo","ampo","apon","amou","aum"],"rp":["uma","mao","oma","upa","numa","ompa","uman","oman","pau","mano","oupa","onam","maqu","mau","namo"]},"210":{"input":[2,5,7,8],"tlp":["smo",16965],"trp":["mos",29583],"tlw":["som",1252],"trw":["pousou",166],"lp":["smo","spon","som","sup","susp","sum","supo","somo","smos","ssum","spu"],"rp":["mos","mpos","mus","usp","omos","mons","pons","upos","pous"]},"211":{"input":[1,2,5,7,8],"tlw":["soma",177],"trw":["maos",4073],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emo",14088],"trp":["ome",42557],"trw":["meu",13196],"lp":["emo","empo","emon"],"rp":["ome","meu","uem","omen","meno","omem","ume","mome","nome","nume","upe","umen","-m","-me","ompe","peu","memo"]},"213":{"input":[1,3,5,7,8],"tlw":["quem",7441],"trw":["pequeno",2129],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"trw":["mesmo",14794],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["damon",277],"trw":["pensando",1275],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["gum",14061],"trp":["mbo",6406],"tlw":["bom",4344],"trw":["ponto",2616],"lp":["gum","tom","bom","tum","ttom","tomo","tmo","gm"],"rp":["mbo","pont","omb","mot","mont","pub","put","pob","mput","moto","umb","utom"]},"217":{"input":[1,4,5,7,8],"tlw":["apontou",487],"trw":["ponta",807],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["com",79743],"trw":["pouco",7236],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["campo",1321],"trw":["moca",1091],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["tempo",10746],"trw":["momento",4691],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",4643],"trw":["porque",9040],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["comecou",3483],"trw":["ombros",1499],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["estamos",1849],"trw":["pensamentos",1108],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",22248],"trw":["polo",95],"lp":[],"rp":["pl","poi","pol","pli","ipo","plo","poli","lp","pio","opi","ipio","pil","olp","ppl","poio","lop","pilo","ipl","lip","ipli"]},"225":{"input":[1,6,7,8],"tlp":["apoi",894],"trp":["pal",9950],"tlw":["apoio",472],"trw":["paola",89],"lp":["apoi","alp","appl","apl","apli","apol","apla","alpa"],"rp":["pal","pla","pala","ipal","lpa","pali","lap","poia","opia","pila","lapi","palp"]},"226":{"input":[2,6,7,8],"tlp":["spio",144],"trp":["pois",18374],"trw":["pois",4416],"lp":["spio","spl"],"rp":["pois","posi","ispo","plos","ospi","piso","ipos","pios","psl"]},"227":{"input":[1,2,6,7,8],"trw":["lapis",171],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epoi",14052],"trp":["pel",32898],"trw":["pelo",11997],"lp":["epoi","epl","epli","elop","elip","eple"],"rp":["pel","pelo","ple","pele","lpe","olpe","pple","pole","lope","poei","lipe","leop","l'","peli"]},"229":{"input":[1,3,6,7,8],"tlw":["apple",759],"trw":["pela",10602],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["depois",13958],"trw":["pelos",3503],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["explosao",225],"trw":["podia",5600],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tipo",3460],"trp":["pov",1630],"tlw":["tipo",3053],"trw":["povo",1274],"lp":["tipo","golp","gip","tipl"],"rp":["pov","povo","ipot","polt","pito","polv","pig","ltip"]},"233":{"input":[1,4,6,7,8],"tlw":["galpao",98],"trw":["patio",409],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["tipos",407],"trw":["politico",317],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capitao",887],"trw":["policia",1169],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["golpe",619],"trw":["proprio",2614],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"trw":["propria",2409],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["respeito",2148],"trw":["possivel",2464],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["rapido",1145],"trw":["poderia",4184],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mui",26105],"trw":["mil",1923],"lp":[],"rp":["mui","lm","hom","mpl","mil","hum","mul","imo","mulh","omi","impo","nhum","mili","impl","lim","minu","ompl","pul","mplo","umi"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alma",1095],"trw":["mal",2849],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["suponho",319],"trw":["possui",298],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["almas",218],"trw":["humanos",876],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["elmo",138],"trw":["homem",8542],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["alem",3586],"trw":["nenhuma",2224],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["simples",1787],"trw":["homens",5348],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["zaphod",507],"trw":["podiam",1009],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["tumulo",138],"trw":["muito",18767],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["alguma",5734],"trw":["ultima",1690],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["comigo",1864],"trw":["muitos",2820],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["algumas",3503],"trw":["muitas",2792],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["vermelho",829],"trw":["melhor",5197],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["alguem",4202],"trw":["maior",3758],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["simplesmente",1695],"trw":["mulheres",2796],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["completamente",1313],"trw":["marido",1424],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",311],"tlw":["a",279974],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",199930],"tlw":["s",1267],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",403955],"tlw":["as",56128],"lp":["as","sa","ssa","ass","sas","asa","assa","ssas","wa","was","ww","sass","asas","www","aw","awa","sw","swa","ws"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",4232],"tlw":["e",282983],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ex",35539],"tlw":["x",299],"lp":["ex","xa","ea","ae","xe","exe","exa","ax","axa","xx"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",603738],"tlw":["de",316379],"lp":["de","es","se","ess","sse","des","ed","esse","ese","ses","dess","dese","ede","eses","sses","sd","esd","sde","desd","esde"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",290653],"tlw":["da",79087],"lp":["da","ad","ade","ada","dad","dade","das","essa","esa","ase","sad","asse","eda","ades","adas","ssad","desa","edad","sada","sex"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",2738],"tlw":["t",692],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",336586],"tlw":["ta",503],"lp":["ta","at","fa","ata","af","fat","tat","afa","ff","ft","att","tata","taf","atat","ataf","tf","fata","aft","tfa","tta"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",220589],"tlw":["c",936],"lp":["st","sc","ct","tc","cc","ts","cs"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",291876],"tlw":["casa",8888],"lp":["ca","sta","ac","aca","cas","tas","casa","ast","fac","stas","sca","tac","asta","sf","cac","sac","taca","caca","asc","fas"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",412432],"tlw":["ter",11405],"lp":["er","te","re","tr","rt","ter","rr","et","tre","ere","ert","rte","err","rre","ret","terr","ete","etr","rer","tere"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ra",489515],"tlw":["era",37427],"lp":["ra","ar","ara","era","tra","fe","tar","are","rta","ate","art","rar","fr","eta","ef","rra","atr","fer","arr","rat"],"rp":[]},"14":{"input":[2,3,4],"tlp":["est",130667],"tlw":["ser",18726],"lp":["est","ce","ec","res","ser","rec","rd","cr","esc","tes","ece","ste","rc","der","cer","str","erd","este","rece","ces"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["esta",82829],"tlw":["esta",19307],"lp":["esta","car","ras","eca","cad","tad","rac","rad","sar","arec","rda","dar","tras","raca","cada","erda","ard","star","stra","rca"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",5010],"trw":["n",1260],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",281535],"trp":["na",264338],"tlw":["q",346],"trw":["na",47469],"lp":["an","aq","ana","ann","anq","anna","anan","aan"],"rp":["na","nq","naq","nan","nna"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",220],"trp":["ns",77600],"trw":["j",385],"lp":["sn","sj"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["san",8808],"trp":["ja",39162],"tlw":["san",234],"trw":["ja",13037],"lp":["san","ans","aj","sq","ssan","ansa","anas","anj","aja","anja","ajan","wn"],"rp":["ja","nas","nsa","jan","nsan","jas","nja","nsas"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",399933],"trp":["ne",63763],"tlw":["en",763],"trw":["y",1207],"lp":["en","ene","een","ey","enn","enny","eyn","eyne","enen","enne"],"rp":["ne","nen","ny","nny","yn","yne","ney","nne","ye","ynn"]},"21":{"input":[1,3,5],"tlp":["ena",18156],"trp":["ya",615],"tlw":["any",171],"lp":["ena","ane","eq","enq","xan","ay","ean","anny","anea","enx","aen","any","enxe","anen"],"rp":["ya","nea","nx","nxe","nex","nexa"]},"22":{"input":[2,3,5],"tlp":["sen",38594],"trp":["nd",184626],"tlw":["eyes",75],"trw":["nesse",1917],"lp":["sen","end","ens","den","ej","ende","sej","esen","esej","send","eend","sens"],"rp":["nd","nde","je","nse","nes","ness","nden","ndes"]},"23":{"input":[1,2,3,5],"tlp":["and",82846],"trp":["nda",26353],"tlw":["seja",3811],"trw":["nada",9040],"lp":["and","ensa","ande","eja","enas","dan","anda","seja","esq","daq","sand","enda","dand","seq"],"rp":["nda","nad","nada","jane","nand","ndan"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",711],"trp":["nt",380933],"tlw":["b",631],"lp":["bt","bb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ant",80565],"trp":["nta",60116],"tlw":["tanta",767],"lp":["ant","ab","ba","tan","tant","aba","anta","ban","bat","fan","aban","fant","taq","bata","tab"],"rp":["nta","nf","ntan","nat","ntat"]},"26":{"input":[2,4,5],"tlp":["bs",6193],"trp":["nc",98606],"lp":["bs","bj","cn","bst","sb","bsc","bc"],"rp":["nc","nst","nsc","nts"]},"27":{"input":[1,2,4,5],"tlp":["anc",29762],"trp":["nca",33491],"tlw":["tantas",546],"lp":["anc","sab","cab","anca","can","stan","bas","acab","caba","tanc","bast","cant","sant"],"rp":["nca","ntas","ncas","nsta","nac","nsac","nsf"]},"28":{"input":[3,4,5],"tlp":["ent",207420],"trp":["nte",165647],"tlw":["entre",8275],"trw":["net",250],"lp":["ent","ente","be","br","ten","entr","ren","rn","bre","ber","eb","rent","ern","tent","eren"],"rp":["nte","ntr","ntre","nter","nten"]},"29":{"input":[1,3,4,5],"tlp":["ran",42850],"trp":["ntra",17480],"tlw":["frente",4513],"trw":["nate",648],"lp":["ran","ante","enta","abe","bra","rq","rna","rab","tran","trab","raba","bar","rant","aber","abr","rtan","fren"],"rp":["ntra","ntar","nar"]},"30":{"input":[2,3,4,5],"tlp":["enc",39246],"trp":["ntes",21043],"tlw":["entender",1104],"trw":["neste",1524],"lp":["enc","sent","cen","dent","tend","bec","cent","ceb","tenc","rend","cebe","renc","rceb"],"rp":["ntes","nce","nder","ntec","nec","nece","nstr"]},"31":{"input":[1,2,3,4,5],"tlw":["antes",8436],"trw":["jantar",1170],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1421],"trw":["i",2965],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",127585],"trp":["ia",229190],"tlw":["ai",2545],"trw":["ia",3166],"lp":["ai","az","za","zi","zia","azi","azia","aia","aza","zz","aiz","zzi"],"rp":["ia","iz","iza","izi","iai","izia","izz","izzi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",84867],"trp":["is",248469],"tlw":["si",3658],"trw":["is",409],"lp":["si","ssi","sis","ssis","sk","ski"],"rp":["is","iss","isi","ik","ki","issi","iki","ks"]},"35":{"input":[1,2,6],"tlp":["ais",63939],"trp":["isa",27355],"tlw":["saia",685],"lp":["ais","assi","sai","asi","wi","sia","asia","ak","saia","sias","zas","ssia","aisa"],"rp":["isa","ias","isas","issa","ka","iais","ika"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",135404],"trp":["ie",27112],"tlw":["ei",385],"trw":["ie",93],"lp":["ei"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",41552],"trp":["ix",21958],"tlw":["xia",158],"trw":["ix",103],"lp":["ze","ez","aze","xi","eix","aix","eia","eza","eze","eixa","exi","aixa","eixe","axi","ezi","eai"],"rp":["ix","ize","ixa","ixe"]},"38":{"input":[2,3,6],"tlp":["di",149151],"trp":["id",117035],"tlw":["disse",22191],"lp":["di","dis","diss","dei","edi","sid","sei","eis","did","side","esi","essi"],"rp":["id","isse","ide","ise","idi","idei","ke","ied"]},"39":{"input":[1,2,3,6],"tlp":["dia",31205],"trp":["ida",58061],"tlw":["dia",8588],"trw":["ideia",3049],"lp":["dia","diz","deix","zes","dize","ezes","adei","deia","xis","exis","dez","dias","adi","edia","sida","dida"],"rp":["ida","idad","iad","ieda"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",136577],"trp":["it",117311],"tlw":["vi",1966],"trw":["it",901],"lp":["ti","vi","tiv","viv","vit","tit","vivi","tivi","viti","tv","vii","viii","vitt"],"rp":["it","iv","iti","ivi","itiv","itt"]},"41":{"input":[1,4,6],"tlp":["va",136327],"trp":["ita",29811],"tlw":["vai",6210],"lp":["va","av","ava","fi","tav","tava","via","faz","avi","avia","ati","vai","tia","ativ","tiva","afi"],"rp":["ita","if","ifi","iva"]},"42":{"input":[2,4,6],"tlp":["ci",126068],"trp":["ic",96581],"tlw":["civis",136],"lp":["ci","sti","tic","vis","cis","sit","siv","sic","vist","stiv","ssiv","sist","sci","ck","visi"],"rp":["ic","ist","ici","isc","isti"]},"43":{"input":[1,2,4,6],"tlp":["cia",40513],"trp":["ica",47187],"tlw":["vista",1644],"lp":["cia","stav","fic","fica","aci","cav","fici","cava","tica","sav","cisa","cai","sava","sica","vas"],"rp":["ica","ista","ific","icia","itas"]},"44":{"input":[3,4,6],"tlp":["ri",197607],"trp":["ir",123977],"tlw":["ver",6812],"trw":["ir",3642],"lp":["ri","ve","eri","ver","ev","eir","eit","eve","rei","tir","rv","rit","tive","teri","vr","rri"],"rp":["ir","ive","ite","ire"]},"45":{"input":[1,3,4,6],"tlp":["ria",65506],"trp":["ira",34560],"tlw":["vez",10904],"trw":["iria",1476],"lp":["ria","ari","eria","vez","eira","zer","ave","faze","rav","azer","aria","eva","fei","feit","var","arti","rava","eita"],"rp":["ira","izer"]},"46":{"input":[2,3,4,6],"tlp":["eci",33622],"trp":["iste",8299],"tlw":["tivesse",3417],"lp":["eci","vid","ves","reci","cid","cri","dir","dev","cie","ris","esti","tid","vess","ecis","rid","verd","dire","seri","deve"],"rp":["iste"]},"47":{"input":[1,2,3,4,6],"tlw":["estava",26264],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",225142],"trw":["in",1383],"lp":[],"rp":["in","nh","inh","ni","hi","ini","nin","nni","hin","nhi","hn","inin","ninh","hnn"]},"49":{"input":[1,5,6],"tlp":["anh",17458],"trp":["ha",149599],"tlw":["ah",1851],"trw":["ha",7686],"lp":["anh","ain","anha","ani","zin","zinh","ah"],"rp":["ha","nha","inha","ina","ian","han","iq","nia","nz","nina","nai","inz","hia"]},"50":{"input":[2,5,6],"tlp":["sin",6776],"trp":["nsi",8141],"tlw":["sin",78],"trw":["his",425],"lp":["sin","sh","ssin","shi","shin"],"rp":["nsi","ins","his","nis","ij","ji","inis","nsis","insi","nsin","niss","nk","kh","inj","kin"]},"51":{"input":[1,2,5,6],"tlp":["sina",3120],"trp":["has",9127],"tlw":["sinais",487],"trw":["haja",264],"lp":["sina","ansi","wh","ash","ashi","win","sain","anis","wash","siq","ank","wins"],"rp":["has","nhas","inas","nais","iaj","iaja","isq","ija"]},"52":{"input":[3,5,6],"tlp":["enh",22040],"trp":["he",69162],"trw":["he",710],"lp":["enh","eni","enin","ein","enie"],"rp":["he","nhe","ien","hei","nei","nenh","nhei","ine","inhe","nie","hen","nnie","hy","hine","hie"]},"53":{"input":[1,3,5,6],"tlp":["zen",6089],"trp":["izen",1523],"tlw":["annie",302],"lp":["zen","anei","enha","azen","anhe","eina","anie","ezen","xin","xinh"],"rp":["izen","nze","heia","inze","ixan","hae","nzen","hay","ixin","hea"]},"54":{"input":[2,3,5,6],"tlp":["senh",8286],"trp":["ind",27747],"tlw":["she",187],"trw":["keynes",525],"lp":["senh","din","endi","dinh","ensi","eij"],"rp":["ind","ndi","iden","nid","indi","jei","hes","nsid","ndid","nsei","inde","hesi","ines","hid"]},"55":{"input":[1,2,3,5,6],"tlw":["ainda",11235],"trw":["had",467],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["tin",38604],"trp":["nti",28083],"tlw":["bit",131],"lp":["tin","tinh","bi","th","vin","bit","vinh","bin"],"rp":["nti","int","nv","ntin","ib","niv","inv","nit","nvi","ith","ibi","ht"]},"57":{"input":[1,4,5,6],"tlp":["abi",11269],"trp":["hav",21186],"tlw":["tinha",19974],"trw":["havia",12654],"lp":["abi","fin","bai","van","bia","fina","abia","anti","vant"],"rp":["hav","havi","inf","iant","nfi","hava","nif","nav","ntia","inta","nifi"]},"58":{"input":[2,4,5,6],"tlp":["ch",51196],"trp":["nci",30934],"tlw":["this",245],"trw":["nick",345],"lp":["ch","cin","stin","cinc","chi","sint","sib"],"rp":["nci","inc","nic","hist","inci","inst","inic","nici","nist","nsci","nch","nsti","ich"]},"59":{"input":[1,2,4,5,6],"tlw":["sabia",4759],"trw":["jack",1117],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["enti",15708],"trp":["inte",16818],"tlw":["the",5095],"trw":["neve",796],"lp":["enti","bri","rin","ven","the","tenh","vent","vern","env"],"rp":["inte","her","ient","nve","heir","ntei","neir","nver","here","nive","ntir"]},"61":{"input":[1,3,4,5,6],"tlw":["tenha",2165],"trw":["haver",852],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["sentir",1575],"trw":["interesse",884],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["diante",2499],"trw":["instante",1219],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",2403],"trw":["o",225240],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",290064],"trp":["oa",20855],"tlw":["ao",31621],"lp":["ao","aao"],"rp":["oa","oao"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",163724],"trp":["os",421052],"tlw":["so",11721],"trw":["os",73145],"lp":["so","sso","sos","ssos","soo"],"rp":["os","oss","osso","oso","osos","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["sao",23278],"trp":["oas",8168],"tlw":["sao",10362],"lp":["sao","soa","aos","ssoa","soas","aso","ssao","asso","wo","asos","woo","asao"],"rp":["oas","ossa","osa","ow","osas","osao","owa","osw"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",6725],"trp":["oe",22866],"trw":["-",58877],"lp":["eo","e-","e-o"],"rp":["oe","o-","-e","-o","o-e"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",11510],"trp":["ox",5327],"trw":["-a",77],"lp":["xo","a-","exo","xao","eao","xoe","exao","xa-","xe-","e-a","axo","axoe","exoe","ao-","a-a"],"rp":["ox","-a","oxa","oxo","-a-"]},"70":{"input":[2,3,7],"tlp":["do",416137],"trp":["od",73365],"tlw":["do",90461],"trw":["-se",74],"lp":["do","dos","esso","edo","eso","dedo","edos","soe","soes","doe","do-"],"rp":["od","ode","odo","oes","-s","-se","odos","osse","ose"]},"71":{"input":[1,2,3,7],"tlp":["ado",79015],"trp":["oda",11723],"tlw":["dado",976],"lp":["ado","ados","dado","sado","dao","a-s","a-se","xado","sexo","eado","xos","da-","dosa","adao","xoes","exos"],"rp":["oda","odas","oeda","owe"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",290254],"trp":["ot",25787],"tlw":["to",1894],"lp":["to","go","tot","tto","got","tog","gt","gto","too","gg","goo"],"rp":["ot","og","ogo","oto","ott","otto","otog","ogg"]},"73":{"input":[1,4,7],"tlp":["fo",73193],"trp":["of",13544],"tlw":["tao",9962],"trw":["of",1931],"lp":["fo","ga","ag","tao","ago","ato","aga","fato","fog","tota","gat","fogo","fot","foto","gao","tag","tato"],"rp":["of","ota","oga"]},"74":{"input":[2,4,7],"tlp":["co",405580],"trp":["oc",76923],"tlw":["gosto",1191],"lp":["co","sto","tos","cos","sco","gos","gost","cost","soc","toc","stos","cto","goc","coc","scoc","coco"],"rp":["oc","ost","osto","oco"]},"75":{"input":[1,2,4,7],"tlp":["cao",52031],"trp":["oca",15079],"tlw":["caso",3450],"lp":["cao","acao","aco","fos","foss","stao","caso","gas","sag","acos","sof","atos","sfo","saco","toca","asto"],"rp":["oca","osta","ocas","otas"]},"76":{"input":[3,4,7],"tlp":["ro",189615],"trp":["or",300995],"tlw":["george",652],"trw":["or",278],"lp":["ro","eg","ge","tro","gr","rg","tor","rto","erg","gor","ero","rro","eto","erto"],"rp":["or","ort","orr","ore","orre","orte"]},"77":{"input":[1,3,4,7],"tlp":["for",35880],"trp":["ora",47672],"tlw":["agora",9502],"trw":["ora",1045],"lp":["for","gar","gra","ega","age","aro","fora","agor","gora","arg","egar","rof","arro","rox","rao","rga","fort","agr"],"rp":["ora","orta"]},"78":{"input":[2,3,4,7],"tlp":["ros",31755],"trp":["oce",38021],"tlw":["todos",10399],"lp":["ros","cor","tod","seg","todo","dor","esco","eco","coe","coes","corr","esto","tros","sor","roc"],"rp":["oce","ord","oder","ores","orc"]},"79":{"input":[1,2,3,4,7],"tlw":["fosse",5405],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["ou",187963],"trw":["no",51404],"lp":[],"rp":["ou","no","on","un","nu","nun","nou","ono","uo","nuo","uou","nuou","onn","uno","onou","oou","oun","non","oon","unn"]},"81":{"input":[1,5,7],"tlp":["qu",415783],"trp":["ua",141069],"tlw":["ano",2467],"trw":["nao",106447],"lp":["qu","qua","quan","aqu","ano","au","anu","anqu"],"rp":["ua","nao","uan","nqu","ona","nqua","naqu","nua","una","oq","oqu","uq"]},"82":{"input":[2,5,7],"tlp":["su",74848],"trp":["us",60120],"tlw":["sou",2630],"trw":["nos",20778],"lp":["su","sou","son","ssu","sus","ssou","sun"],"rp":["us","nos","ons","jo","ju","noss","uns","oj","jun","nso","uj","uso","nsou"]},"83":{"input":[1,2,5,7],"tlp":["sua",42963],"trp":["uas",22607],"tlw":["sua",31618],"trw":["nossa",3352],"lp":["sua","anos","suas","quas","squ","aus","ausa","aju","assu","sau"],"rp":["uas","usa","nsao","joa","uja","usan","oja","joao","usao","onsa"]},"84":{"input":[3,5,7],"tlp":["eu",147300],"trp":["ue",347032],"tlw":["eu",43591],"trw":["you",709],"lp":["eu","eno","eun","eon","eu-","enou"],"rp":["ue","uen","u-","one","ou-","ueno","n-","yo","oen","you","ueu","nou-","nue","-n"]},"85":{"input":[1,3,5,7],"tlp":["que",325065],"trp":["ux",2970],"tlw":["que",242225],"trw":["-nao",146],"lp":["que","aque","equ","quen","eque","enqu","xou","xu","exu","xua","exua"],"rp":["ux","uena","nque","uxa","oque","uxo","oux","uxe","ouxe"]},"86":{"input":[2,3,5,7],"tlp":["seu",45915],"trp":["ndo",102634],"tlw":["seu",30091],"trw":["onde",9124],"lp":["seu","eus","du","endo","deu","seus","enos","deus"],"rp":["ndo","ud","ond","und","onde","udo","undo","onse","ude","u-s","u-se","ndeu"]},"87":{"input":[1,2,3,5,7],"tlw":["quando",23534],"trw":["usando",884],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["gu",87969],"trp":["nto",82230],"tlw":["tu",788],"trw":["notou",383],"lp":["gu","tu","bo","tou","gun","gunt"],"rp":["nto","ont","ut","ob","ng","out","unt","ntou","ug","ub","unto","ngu","uto","ong"]},"89":{"input":[1,4,5,7],"tlp":["anto",26539],"trp":["uant",14606],"tlw":["quanto",4990],"trw":["nota",549],"lp":["anto","fu","gua","gan","fun","atu","tua","ang","agu","agua","fon","abo"],"rp":["uant","onta","ntao","uga","uta","onf","unta","nfo"]},"90":{"input":[2,4,5,7],"tlp":["con",88877],"trp":["uc",20930],"tlw":["sob",2880],"trw":["junto",1728],"lp":["con","cu","cont","cons","sob","cou","scu","stou","cob","guns"],"rp":["uc","nco","ntos","ouc","uco","unc","ouco","ncon","ocu","nunc"]},"91":{"input":[1,2,4,5,7],"tlw":["boca",2277],"trw":["nunca",7198],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ento",36495],"trp":["ur",58598],"tlw":["gente",3137],"trw":["outro",7994],"lp":["ento","egu","ru","gue","rou","tur","rgu","gen","ergu"],"rp":["ur","uer","obr","utr","outr","obre","ontr","utro","onte","ntro","uro"]},"93":{"input":[1,3,4,5,7],"tlw":["entao",11118],"trw":["outra",6635],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["sobre",14110],"trw":["outros",5996],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["grande",7378],"trw":["outras",3514],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["io",92146],"trw":["l",496],"lp":[],"rp":["io","lo","ol","li","oi","il","ili","olo","oli","ll","ilo","ill","lio","iol","oll","oio","lli","ilio","loo","illi"]},"97":{"input":[1,6,7],"tlp":["al",200651],"trp":["la",162745],"tlw":["ali",4130],"trw":["la",8495],"lp":["al","ala","ali","aio","alo","zo","alia","zao","azao"],"rp":["la","oz","lia","ial","ola","liz","iao","ilia","ozi","ila","liza"]},"98":{"input":[2,6,7],"tlp":["sol",10331],"trp":["ois",42788],"tlw":["sol",2060],"trw":["isso",18569],"lp":["sol","sil","sio","sl","ssio","soli","solo"],"rp":["ois","isso","ios","los","iso","ossi","osi","ls","lis","lso","ioso","ols","ok"]},"99":{"input":[1,2,6,7],"tlp":["sal",8453],"trp":["oisa",15190],"tlw":["sala",3032],"trw":["las",303],"lp":["sal","sala","asil","wil","will","soz","sozi","soal","alis","alos","alas","als"],"rp":["oisa","las","isao","iosa","lass","lias","lsa","olsa"]},"100":{"input":[3,6,7],"tlp":["el",253859],"trp":["le",167939],"tlw":["ele",53580],"trw":["lei",1081],"lp":["el","ele","elo","eio","eli","e-l","e-lo","ell"],"rp":["le","lei","ole","-l","ile","-lo","leo","lie","ioe","ilei","oel","iole"]},"101":{"input":[1,3,6,7],"tlp":["ela",75025],"trp":["ixo",8660],"tlw":["ela",31605],"trw":["lixo",278],"lp":["ela","ale","eal","aixo","eliz","eixo","eali","a-l","alei","ael","a-lo"],"rp":["ixo","oxi","lex","oze","-la","lez","leza","ia-","lea"]},"102":{"input":[2,3,6,7],"tlp":["del",18683],"trp":["ido",37514],"tlw":["eles",10957],"trw":["ido",578],"lp":["del","eles","dele","doi","dois","elos","sido","dio","dido","sile","sel","dol"],"rp":["ido","les","odi","lid","ld","idos","ilid","old"]},"103":{"input":[1,2,3,6,7],"tlw":["dela",4626],"trw":["lado",7350],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",89842],"trp":["ito",55627],"tlw":["tio",740],"trw":["logo",3653],"lp":["vo","gi","vol","volt"],"rp":["ito","ig","lt","ov","lg","igo","olt","lv","oit","ovo","lto","liv","log","ivo","lig","lti"]},"105":{"input":[1,4,6,7],"tlp":["alg",28147],"trp":["lta",14607],"tlw":["foi",19254],"lp":["alg","tal","foi","fal","alt","fil","fala","alv","val","agi","alav","talv","fl","voz","gia"],"rp":["lta","iga","ova","olta","lav"]},"106":{"input":[2,4,6,7],"tlp":["voc",35885],"trp":["ico",23673],"tlw":["visto",1856],"trw":["isto",3322],"lp":["voc","coi","cio","cois","cl","col","vos","cil","colo","sig","scol"],"rp":["ico","lic","isto","itos","oci","loc","igos","icio","lc"]},"107":{"input":[1,2,4,6,7],"tlw":["coisa",9623],"trw":["local",1110],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rio",30701],"trp":["iro",27990],"tlw":["rio",2083],"trw":["livro",2336],"lp":["rio","vel","eiro","eito","tori","rel","rig","erio","tel","rito","rov"],"rp":["iro","ori","ior","lev","ove","lve","ivel","oite","orri"]},"109":{"input":[1,3,4,6,7],"tlw":["talvez",5564],"trw":["levar",1384],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["voce",31586],"trw":["livros",1191],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["claro",3392],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",111008],"trw":["olhou",3514],"lp":[],"rp":["ho","lh","ui","ul","lho","nho","olh","iu","lu","ilh","olho","onh","hu","uni","ulh","inu","ulo","lin","hou","ino"]},"113":{"input":[1,5,6,7],"tlp":["qui",23334],"trp":["lha",27941],"tlw":["aqui",6587],"trw":["luz",3303],"lp":["qui","qual","alh","aqui","alq","alqu","alha"],"rp":["lha","ual","lan","nal","olha","uz","lq","lqu","ualq","ilha","inal","iona","ula"]},"114":{"input":[2,5,6,7],"tlp":["sul",3044],"trp":["hos",17929],"tlw":["sonhos",1378],"trw":["olhos",8588],"lp":["sul","sonh","sion","solu","sui","sino"],"rp":["hos","lhos","uis","onsi","nhos","hoj","usi","ulos","lus","jul","inos","ijo","ku","loj"]},"115":{"input":[1,2,5,6,7],"tlw":["quais",1786],"trw":["loja",754],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elh",18680],"trp":["lhe",25233],"trw":["lhe",9996],"lp":["elh","elho","enho","enhu","elen"],"rp":["lhe","uel","len","uele","onhe","ulhe","nel","uei","olhe","in-","ilen","ly","-lh","-lhe","nele"]},"117":{"input":[1,3,5,6,7],"tlw":["aquele",3696],"trw":["naquele",1801],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["disse-lhe",457],"trw":["hoje",2804],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["aqueles",1766],"trw":["olhando",2030],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["gui",16504],"trp":["uit",26642],"tlw":["vou",3725],"trw":["novo",4638],"lp":["gui","bl","gin"],"rp":["uit","lgu","uito","uv","nov","ing","ouv","ult","uvi","itu","ouvi","noit","lug","ingu","onti","long","onv"]},"121":{"input":[1,4,5,6,7],"tlw":["filho",2705],"trw":["nova",2638],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cinco",2400],"trw":["unico",1538],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["alguns",5675],"trw":["unica",1846],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["tenho",3664],"trw":["noite",6059],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["qualquer",7063],"trw":["lugar",5157],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["senhor",5213],"trw":["jeito",1631],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["fazendo",2599],"trw":["historia",3341],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",1293],"trw":["p",1742],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",54655],"trp":["pa",230757],"trw":["papa",278],"lp":["ap","apa","app"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",45986],"trp":["ps",1182],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",5532],"trp":["pas",19597],"trw":["passa",679],"lp":["spa","sap","sapa","asp","apas","aps","ssap"],"rp":["pas","pass"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",29704],"trp":["pe",179445],"trw":["pe",2387],"lp":["ep","epe","e'"],"rp":["pe","pee","''"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",14035],"trp":["pape",2221],"lp":["ape","xp","exp","epa","xpe","expe","xpa","expa","a'"],"rp":["pape","'a","pea","px"]},"134":{"input":[2,3,8],"tlp":["esp",37689],"trp":["pes",22163],"trw":["pes",1833],"lp":["esp","spe","espe","dep","depe","sep","desp","sesp","sped","spes","d'","eps","ssep"],"rp":["pes","pess","ped","pede","pd","'s","'d"]},"135":{"input":[1,2,3,8],"tlp":["espa",4992],"trp":["pad",5872],"tlw":["espada",1207],"trw":["pesada",361],"lp":["espa","apes","esap","spad","aspe","sepa","depa","d'a","xped","epas","spea","spx","aspx"],"rp":["pad","pesa","pada","peda","pade"]},"136":{"input":[4,8],"tlp":["tp",287],"trp":["pt",3485],"trw":["pt",2780],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apat",596],"trp":["pat",2789],"tlw":["tapa",93],"lp":["apat","tap","apt","tapa","apta"],"rp":["pat","pata","pta"]},"138":{"input":[2,4,8],"trp":["pc",1162],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["cap",9324],"trp":["pac",6453],"tlw":["capa",572],"trw":["pasta",248],"lp":["cap","capa","spac","apac","scap","capt"],"rp":["pac","pca","paca","past","pact","patc"]},"140":{"input":[3,4,8],"tlp":["rep",8013],"trp":["pr",132035],"trw":["peter",441],"lp":["rep","rp","repe","rpr","rpre","epr","epre","epet","repr","erp"],"rp":["pr","per","pre","pert","pet","pret","pree","prep","pete","pere"]},"141":{"input":[1,3,4,8],"tlp":["apar",7369],"trp":["par",142915],"tlw":["tapete",247],"trw":["para",95245],"lp":["apar","apr","rap","apre","epar","rapa","xper","repa","xpr","expr","xpre","aper"],"rp":["par","para","pare","part","pra","pera","prat","perf"]},"142":{"input":[2,3,4,8],"tlp":["resp",11738],"trp":["pres",18252],"tlw":["espere",312],"trw":["perder",886],"lp":["resp","sper","spec","depr","cep","epc","cepc","spet","rsp"],"rp":["pres","prec","pec","perd","perc","pedr","pect","pers","pesc","pred","pest"]},"143":{"input":[1,2,3,4,8],"tlw":["apesar",1985],"trw":["parece",2731],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",67484],"trw":["m",1887],"lp":[],"rp":["mp","mm","pn","mn","nm"]},"145":{"input":[1,5,8],"tlp":["am",185140],"trp":["ma",359934],"tlw":["ama",422],"trw":["ma",502],"lp":["am","ama","amp","aman","ampa","apan"],"rp":["ma","man","mpa","pan","mana","mpan","nam","mam","maq","pam","mama","map","mapa","nama"]},"146":{"input":[2,5,8],"tlp":["sm",24615],"trp":["nsp",908],"lp":["sm"],"rp":["nsp","nsm","ms"]},"147":{"input":[1,2,5,8],"tlp":["sam",7995],"trp":["mas",58930],"tlw":["sam",195],"trw":["mas",44387],"lp":["sam","sma","span","asam","asm","ssam","amas","smas","asma","ansp","ansm"],"rp":["mas","jam","nsam","jama","mass","jap","maj","mans","mpas"]},"148":{"input":[3,5,8],"tlp":["em",283802],"trp":["me",270378],"tlw":["em",82946],"trw":["me",23412],"lp":["em","emp","eme","emen","epen","empe","emm","eem"],"rp":["me","men","pen","mem","nem","mpe","my","mpen","n'","mmy","pene","ym"]},"149":{"input":[1,3,5,8],"tlp":["ame",42844],"trp":["pena",8675],"tlw":["emma",305],"trw":["mae",5046],"lp":["ame","amen","ema","apen","eman","xem","exem","xemp","xam","exam"],"rp":["pena","mae","peq","mane","name","mea","mame","max","pame","nema"]},"150":{"input":[2,3,5,8],"tlp":["sem",29109],"trp":["mes",30950],"tlw":["sem",13046],"trw":["meses",1641],"lp":["sem","esm","dem","semp","ssem","dm","sme","esme","smen","seme"],"rp":["mes","mesm","pens","med","mens","pend","mese","mend","ndep","mped"]},"151":{"input":[1,2,3,5,8],"tlw":["apenas",7324],"trw":["mesma",4037],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",964],"trp":["mb",32610],"lp":["tm","bm"],"rp":["mb"]},"153":{"input":[1,4,5,8],"tlp":["tam",28816],"trp":["mat",4959],"tlw":["fama",211],"trw":["matt",334],"lp":["tam","amb","tamb","fam","atam","tama","amba","tamp","bam","abam","atm"],"rp":["mat","mant","mba","ntam","mata","pant","mbat","mpat","matt"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",156],"trp":["mc",119],"tlw":["cm",85],"lp":["cm","cmm"],"rp":["mc","mcc"]},"155":{"input":[1,2,4,5,8],"tlw":["cama",2189],"trw":["maca",202],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",41396],"trp":["ment",85913],"tlw":["bem",13447],"trw":["mente",2130],"lp":["rm","tem","bem","temp","emb","rem","empr","erm","rme","embr","term"],"rp":["ment","mpr","mpre","mer","mbr","mbe","mbem","met","ntem"]},"157":{"input":[1,3,4,5,8],"tlw":["tambem",10764],"trw":["mar",1598],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["sempre",8109],"trw":["presente",1043],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["certamente",1039],"trw":["pensar",2492],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",24405],"lp":[],"rp":["pi","ip","ipi","pip","ppi","ipp","pipp","ippi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",7700],"trp":["pai",11844],"trw":["pai",5571],"lp":["api","apaz","apai","zap","apia","zip"],"rp":["pai","paz","ipa","pia","ipai","piz","pizz","pazz"]},"162":{"input":[2,6,8],"tlp":["spi",5606],"trp":["isp",2854],"lp":["spi","sip","ssip"],"rp":["isp","pis","psi"]},"163":{"input":[1,2,6,8],"tlp":["apis",171],"trp":["pais",4098],"trw":["pais",2931],"lp":["apis","spia"],"rp":["pais","ispa","pisa","pias"]},"164":{"input":[3,6,8],"tlp":["epi",511],"trp":["pei",5264],"lp":["epi"],"rp":["pei","ipe","i'","pie","pipe"]},"165":{"input":[1,3,6,8],"tlp":["apei",323],"trp":["paix",1055],"trw":["peixe",323],"lp":["apei","a'z","a'za","zipe"],"rp":["paix","paze","peix","pez","peza","'z","'za","peia"]},"166":{"input":[2,3,6,8],"tlp":["espi",3719],"trp":["pedi",4130],"trw":["pedi",235],"lp":["espi","spei","disp","epis"],"rp":["pedi","pid","pide","peis","pied","ipes","i'd","ispe","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["despedida",129],"trw":["paises",490],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",3741],"trp":["pit",4493],"lp":["tip","tipi"],"rp":["pit"]},"169":{"input":[1,4,6,8],"tlp":["apit",3841],"trp":["pita",2323],"lp":["apit","vap","apav"],"rp":["pita","pati","pav","pava","pavi"]},"170":{"input":[2,4,6,8],"tlp":["cip",5141],"trp":["pist",660],"lp":["cip","cipi","spit","scip"],"rp":["pist","pisc","psic","icip","pic","ipic","ipc","pci","ipci"]},"171":{"input":[1,2,4,6,8],"tlw":["capaz",1624],"trw":["passava",922],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",238],"trp":["pri",25730],"tlw":["repetir",222],"trw":["piper",124],"lp":["rip","trip","repi","tepi","epit"],"rp":["pri","peri","pir","peit","piri","peti","prie","priv","prev","pire","prir","iper","it'","prei","ptei"]},"173":{"input":[1,3,4,6,8],"tlw":["rapaz",1561],"trw":["partir",1512],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["especie",1783],"trw":["pedir",815],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["esperava",1003],"trw":["parecia",5095],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["im",105296],"trw":["mim",6113],"lp":[],"rp":["im","mi","min","minh","imp","mim","nim","imi","mini","pin","ph","inim","nimi","pini","imin","mpi","hip","phi","imm","him"]},"177":{"input":[1,5,6,8],"tlp":["ami",18005],"trp":["mai",54885],"tlw":["amanha",798],"trw":["minha",12630],"lp":["ami","amin","anim","amai","ziam","aph"],"rp":["mai","ima","iam","ham","nham","mina","manh","hama","panh","nima","mia","impa","inam","imai"]},"178":{"input":[2,5,6,8],"tlp":["sim",20054],"trp":["mis",5228],"tlw":["sim",4845],"trw":["jim",693],"lp":["sim","ssim","simp","smi","spin","smis","sism","simi"],"rp":["mis","miss","jim","ism","mik","nism","insp","jimm","nspi","nsmi","mins","mk"]},"179":{"input":[1,2,5,6,8],"tlw":["assim",9572],"trw":["mais",42140],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",2072],"trp":["ime",24625],"trw":["i'm",90],"lp":["emi","eph","emin","eim"],"rp":["ime","mei","imen","imei","meni","impe","inem","penh","immy","hem","mine","ymi","mie","peni","phie","pime"]},"181":{"input":[1,3,5,6,8],"trw":["menina",1204],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["seph",283],"trw":["pensei",1244],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["demais",2703],"trw":["medida",966],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",10629],"trp":["mit",5096],"tlw":["vim",252],"trw":["http",287],"lp":["tim","vim","timi","thm","bmi"],"rp":["mit","ntim","miti","imit","mbi","itim","imb","pint","itm","mbin","htm","http","mith","mint","himb"]},"185":{"input":[1,4,5,6,8],"tlw":["tinham",4868],"trw":["haviam",2041],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",280],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["cima",3152],"trw":["incapaz",367],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["vem",1339],"trw":["permitir",306],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["fazem",993],"trw":["primeira",3896],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["devem",852],"trw":["presidente",1153],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["estavam",5892],"trw":["imediatamente",1406],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",224923],"trw":["po",410],"lp":[],"rp":["po","op","opo","pop","opp","oop"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",6185],"trp":["opa",1837],"trw":["pao",557],"lp":["apo","apao"],"rp":["opa","pao","papo","popa"]},"194":{"input":[2,7,8],"tlp":["spo",12061],"trp":["pos",28599],"trw":["posso",2774],"lp":["spo","spos","sop"],"rp":["pos","poss","opos","osp","pso","poso"]},"195":{"input":[1,2,7,8],"tlp":["apos",2721],"trp":["posa",1096],"tlw":["apos",1872],"trw":["passo",1318],"lp":["apos","sapo","sopa","apso"],"rp":["posa","opas","pow"]},"196":{"input":[3,7,8],"tlp":["epo",16405],"trp":["ope",1755],"trw":["poe",134],"lp":["epo","eop","eopo","e-p"],"rp":["ope","poe","o'","peo","peop","-p","oope"]},"197":{"input":[1,3,7,8],"tlp":["xpo",537],"trp":["peao",87],"lp":["xpo","expo"],"rp":["peao"]},"198":{"input":[2,3,7,8],"tlp":["depo",14313],"trp":["pod",31617],"tlw":["espesso",79],"trw":["pode",9510],"lp":["depo","espo","epos","spoe"],"rp":["pod","pode","peso","pose","ospe","pos-","poes","osep","opes"]},"199":{"input":[1,2,3,7,8],"tlw":["esposa",847],"trw":["pessoas",7432],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",1854],"trp":["pot",800],"tlw":["topo",438],"lp":["top","topo"],"rp":["pot","opt","pg","pto","ptop"]},"201":{"input":[1,4,7,8],"tlp":["apag",291],"trp":["pag",4975],"trw":["pag",402],"lp":["apag","apg","apto"],"rp":["pag","paga","pato","pago","opag","opat"]},"202":{"input":[2,4,7,8],"tlp":["cop",1332],"trp":["post",6329],"tlw":["copo",522],"trw":["posto",634],"lp":["cop","copo","copt","coop"],"rp":["post","poc","poco","opc","pco","opco","pgc","pgcs"]},"203":{"input":[1,2,4,7,8],"tlw":["sapatos",482],"trw":["opcao",191],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",10909],"trp":["por",83084],"tlw":["reporter",133],"trw":["por",51332],"lp":["rop","ropr","rpo","ropo"],"rp":["por","pro","port","perg","prop","opr","orp","orpo","peg","pore","preo","preg","pero","opor","pego","prot"]},"205":{"input":[1,3,4,7,8],"tlw":["aeroporto",244],"trw":["porta",4885],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corpo",3692],"trw":["poder",3010],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["resposta",1706],"trw":["professor",1075],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["um",243291],"trw":["um",108193],"lp":[],"rp":["um","om","mo","mu","omo","mpo","omp","pu","num","pon","up","pou","mun","mon","nom","mom","upo","mou","omu","oup"]},"209":{"input":[1,5,7,8],"tlp":["amo",18697],"trp":["uma",107111],"tlw":["amo",321],"trw":["uma",83293],"lp":["amo","ampo","apon","amou","aum"],"rp":["uma","mao","oma","upa","numa","ompa","uman","oman","pau","mano","oupa","onam","maqu","mau","namo"]},"210":{"input":[2,5,7,8],"tlp":["smo",16965],"trp":["mos",29583],"tlw":["som",1252],"trw":["pousou",166],"lp":["smo","spon","som","sup","susp","sum","supo","somo","smos","ssum","spu"],"rp":["mos","mpos","mus","usp","omos","mons","pons","upos","pous"]},"211":{"input":[1,2,5,7,8],"tlw":["soma",177],"trw":["maos",4073],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emo",14088],"trp":["ome",42557],"trw":["meu",13196],"lp":["emo","empo","emon"],"rp":["ome","meu","uem","omen","meno","omem","ume","mome","nome","nume","upe","umen","-m","-me","ompe","peu","memo"]},"213":{"input":[1,3,5,7,8],"tlw":["quem",7441],"trw":["pequeno",2129],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"trw":["mesmo",14794],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["damon",277],"trw":["pensando",1275],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["gum",14061],"trp":["mbo",6406],"tlw":["bom",4344],"trw":["ponto",2616],"lp":["gum","tom","bom","tum","ttom","tomo","tmo","gm"],"rp":["mbo","pont","omb","mot","mont","pub","put","pob","mput","moto","umb","utom"]},"217":{"input":[1,4,5,7,8],"tlw":["apontou",487],"trw":["ponta",807],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["com",79743],"trw":["pouco",7236],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["campo",1321],"trw":["moca",1091],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["tempo",10746],"trw":["momento",4691],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",4643],"trw":["porque",9040],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["comecou",3483],"trw":["ombros",1499],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["estamos",1849],"trw":["pensamentos",1108],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",22248],"trw":["polo",95],"lp":[],"rp":["pl","poi","pol","pli","ipo","plo","poli","lp","pio","opi","ipio","pil","olp","ppl","poio","lop","pilo","ipl","lip","ipli"]},"225":{"input":[1,6,7,8],"tlp":["apoi",894],"trp":["pal",9950],"tlw":["apoio",472],"trw":["paola",89],"lp":["apoi","alp","appl","apl","apli","apol","apla","alpa"],"rp":["pal","pla","pala","ipal","lpa","pali","lap","poia","opia","pila","lapi","palp"]},"226":{"input":[2,6,7,8],"tlp":["spio",144],"trp":["pois",18374],"trw":["pois",4416],"lp":["spio","spl"],"rp":["pois","posi","ispo","plos","ospi","piso","ipos","pios","psl"]},"227":{"input":[1,2,6,7,8],"trw":["lapis",171],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epoi",14052],"trp":["pel",32898],"trw":["pelo",11997],"lp":["epoi","epl","epli","elop","elip","eple"],"rp":["pel","pelo","ple","pele","lpe","olpe","pple","pole","lope","poei","lipe","leop","l'","peli"]},"229":{"input":[1,3,6,7,8],"tlw":["apple",759],"trw":["pela",10602],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["depois",13958],"trw":["pelos",3503],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["explosao",225],"trw":["podia",5600],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["tipo",3460],"trp":["pov",1630],"tlw":["tipo",3053],"trw":["povo",1274],"lp":["tipo","golp","gip","tipl"],"rp":["pov","povo","ipot","polt","pito","polv","pig","ltip"]},"233":{"input":[1,4,6,7,8],"tlw":["galpao",98],"trw":["patio",409],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["tipos",407],"trw":["politico",317],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["capitao",887],"trw":["policia",1169],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["golpe",619],"trw":["proprio",2614],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"trw":["propria",2409],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["respeito",2148],"trw":["possivel",2464],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["rapido",1145],"trw":["poderia",4184],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mui",26105],"trw":["mil",1923],"lp":[],"rp":["mui","lm","hom","mpl","mil","hum","mul","imo","mulh","omi","impo","nhum","mili","impl","lim","minu","ompl","pul","mplo","umi"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["alma",1095],"trw":["mal",2849],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["suponho",319],"trw":["possui",298],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["almas",218],"trw":["humanos",876],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["elmo",138],"trw":["homem",8542],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["alem",3586],"trw":["nenhuma",2224],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["simples",1787],"trw":["homens",5348],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["zaphod",507],"trw":["podiam",1009],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["tumulo",138],"trw":["muito",18767],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["alguma",5734],"trw":["ultima",1690],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["comigo",1864],"trw":["muitos",2820],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["algumas",3503],"trw":["muitas",2792],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["vermelho",829],"trw":["melhor",5197],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["alguem",4202],"trw":["maior",3758],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["simplesmente",1695],"trw":["mulheres",2796],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["completamente",1313],"trw":["marido",1424],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/ro-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/ro-keymap.json index 0bed185ec5..72627d4a2c 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/ro-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/ro-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",511],"tlw":["a",83146],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",3507],"tlw":["s",933],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",334071],"tlw":["sa",168486],"lp":["sa","as","asa","sas","ssa","asas","wa","aw","sw","ass","ws","was"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",21380],"tlw":["e",25573],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",331408],"tlw":["ea",17717],"lp":["ea","ex","eea","ae","xa","exa","xe","exe","ax"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",474727],"tlw":["de",299045],"lp":["de","se","es","ed","des","ese","ede","ses","sese","dee","sed","dese","sse","ess","edes","esed","sede","dd","eed","eses"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",156223],"tlw":["da",10448],"lp":["da","ad","ase","eas","dea","sea","ada","ade","dad","esa","edea","deas","ases","adea","asea","esea","sase","eeas","dade","ew"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",3013],"tlw":["t",835],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",414820],"tlw":["fata",15507],"lp":["at","ta","ata","fa","tat","af","fat","atat","fata","tf","afa","tata","ft","afat","fta","ff","att","tta","ftat","atf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",311126],"tlw":["c",706],"lp":["st","sc","ct","cc","tc","ts"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",523509],"tlw":["ca",133317],"lp":["ca","ac","sta","ast","cat","aca","fac","asta","sca","asc","cas","asca","act","sf","stat","sat","casa","sfa","tac","faca"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["re",521801],"tlw":["te",15374],"lp":["re","te","er","tr","tre","et","rt","ere","rte","ter","ete","ret","tere","etr","ert","rer","tet","etre","rere","eret"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",509043],"tlw":["era",39299],"lp":["ar","ra","are","ate","era","rea","ara","tea","fe","tra","art","rat","arte","tar","tate","far","rta","area","fara","fr"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",303452],"tlw":["ce",59249],"lp":["ce","ec","est","ste","este","cr","str","ces","dr","rec","cest","rc","rs","cre","res","cer","dec","esc","rd","cee"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["car",108000],"tlw":["care",72655],"lp":["car","care","ace","dar","cea","dat","eca","ras","aces","dac","daca","stra","data","acea","ecat","ceea","face","rca","east","astr"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",3834],"trw":["n",1145],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",216706],"trp":["na",142605],"tlw":["an",1202],"trw":["na",594],"lp":["an","ana","ann","anan","anna","aq","anaq"],"rp":["na","nan","nna","naq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",3093],"trp":["ns",69609],"trw":["j",435],"lp":["sn"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["aj",20324],"trp":["nsa",12265],"tlw":["sansa",539],"trw":["nas",518],"lp":["aj","ans","san","ansa","anj","sana","aja","saj","sans","anja","asan","wn","anas","awn"],"rp":["nsa","ja","nas","nja","nsas","jan"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",157322],"trp":["ne",182563],"tlw":["en",86],"trw":["ne",11044],"lp":["en","ene","ey","eyn","enn","eye","een","enen","eyne","enny","enne"],"rp":["ne","yn","nen","nne","ny","nee","ye","nny","yne"]},"21":{"input":[1,3,5],"tlp":["ane",10158],"trp":["nea",30604],"tlw":["anne",526],"trw":["nea",342],"lp":["ane","enea","ena","ean","anee","ay","anne","anea","anen","xan","exan","eann","aye","eane","anx"],"rp":["nea","ya","nay","yx","nx"]},"22":{"input":[2,3,5],"tlp":["ej",6230],"trp":["nd",131965],"tlw":["sens",684],"trw":["je",103],"lp":["ej","sen","den","ens","dej","end","dy","sens","sey","ssey","seyn"],"rp":["nd","nde","nse","je","nes","ndes","nses","jd","ys"]},"23":{"input":[1,2,3,5],"tlp":["and",65203],"trp":["nda",9766],"tlw":["deja",3062],"trw":["new",498],"lp":["and","dan","anda","ande","eja","deja","adan","anse","dane","dans","esan","esaj","eaj"],"rp":["nda","ndea","nsea","neas","nand","new","jea"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",2355],"trp":["nt",306047],"tlw":["b",322],"lp":["bt","bb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ba",71864],"trp":["nta",47119],"tlw":["ba",2052],"trw":["nat",115],"lp":["ba","ant","ab","tan","bat","anta","aba","ban","tant","bab","tana","bata","anat","fan","tab"],"rp":["nta","nat","nf","ntat","nata"]},"26":{"input":[2,4,5],"tlp":["bs",4364],"trp":["nc",92637],"lp":["bs","cn","bc","bst","sb","tj"],"rp":["nc","nst","nct","jb"]},"27":{"input":[1,2,4,5],"tlp":["can",32837],"trp":["nca",22051],"tlw":["banca",519],"trw":["nasca",92],"lp":["can","anc","stan","anca","cant","bas","abs","bast","cab","taj","tanc","acan","banc","sab"],"rp":["nca","ncat","nsta","nast","nanc","nsf"]},"28":{"input":[3,4,5],"tlp":["ent",84157],"trp":["ntr",104253],"tlw":["brett",483],"trw":["nr",169],"lp":["ent","entr","eb","reb","treb","be","rb","br","rn","ten","ren","ern","rbe","tent"],"rp":["ntr","nte","ntre","ner","nter","net"]},"29":{"input":[1,3,4,5],"tlp":["ran",24100],"trp":["ntra",6602],"tlw":["barbat",1660],"lp":["ran","enta","bar","eba","reba","rba","bra","tran","arb","rab","arba","bea","barb","rbat","rant","ante"],"rp":["ntra","nar","ntea","neat"]},"30":{"input":[2,3,4,5],"tlp":["cen",5052],"trp":["nce",27047],"tlw":["recent",181],"trw":["jerry",121],"lp":["cen","dent","bes","cent","rbes","bse","sten","sent","bser","best"],"rp":["nce","ncer","ndr","nec","ndre","ncet","ncr","ndc","ncre","nstr"]},"31":{"input":[1,2,3,4,5],"tlw":["cand",24121],"trw":["jeff",677],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",110946],"trw":["ii",23134],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",175637],"trp":["ia",127873],"tlw":["ai",14411],"trw":["ia",3588],"lp":["ai","zi","az","za","aza","aia","azi","zia","zii","azia","aii","aiz","azii"],"rp":["ia","iz","iza","izi","iaz","iaza","izii"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",392768],"trp":["is",116257],"tlw":["si",229731],"trw":["isi",19173],"lp":["si","sis","sii","sk","ski","ssi","sisi","siss"],"rp":["is","isi","ki","ik","ks","iis","isk","iss","iki","kik","kiki","isis"]},"35":{"input":[1,2,6],"tlp":["asi",21012],"trp":["isa",3757],"tlw":["zis",2561],"trw":["iasa",754],"lp":["asi","zis","sai","sia","ak","wi","asis","sasi","wis","ais","aias","saiz","asii","zas","zias"],"rp":["isa","ias","ka","iasa","iasi"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",94946],"trp":["ie",135041],"tlw":["ei",24160],"trw":["iei",524],"lp":["ei","eie","eii"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",32829],"trp":["ize",3487],"tlw":["zeii",292],"trw":["izea",421],"lp":["ez","ze","eze","ezi","xi","exi","aie","eza","eia","eaz","eaza","aze","zea","zie","zei","eai","eiz","eize"],"rp":["ize","ix"]},"38":{"input":[2,3,6],"tlp":["di",145395],"trp":["id",28001],"tlw":["desi",3541],"trw":["iesi",1561],"lp":["di","esi","edi","dis","desi","sie","sid","side","die","sise","sei","sedi"],"rp":["id","ise","ide","ies","idi","iesi","ke","idee"]},"39":{"input":[1,2,3,6],"tlp":["zise",7538],"trp":["ida",1906],"tlw":["zise",6592],"trw":["ideea",1322],"lp":["zise","xis","exis","adi","dia","sez","asez","edia","seza","easi","dai","zid","esia","aies","dez","aid","ezis","aide","ake"],"rp":["ida"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",295163],"trp":["it",151806],"tlw":["ti",1335],"trw":["iti",3989],"lp":["ti","vi","tii","tit","tiv","vit","vii","titi","viit","tivi","tv"],"rp":["it","iv","iti","ivi","ivit","iit","itii","itiv","itit"]},"41":{"input":[1,4,6],"tlp":["va",110914],"trp":["ita",36266],"tlw":["fi",38843],"trw":["iata",1833],"lp":["va","fi","ati","av","tia","fii","vaz","zit","via","viat","ava","tai","tati","atii"],"rp":["ita","iat","itat","iata","iva","if"]},"42":{"input":[2,4,6],"tlp":["ci",156406],"trp":["ic",148028],"tlw":["ci",3836],"trw":["ici",186],"lp":["ci","sti","sit","cit","cti","tic","stii","stit","tis","vic","ctiv","vis","cii","sist"],"rp":["ic","ici","ist","isc","isti","itic"]},"43":{"input":[1,2,4,6],"tlp":["aci",11683],"trp":["ica",34598],"tlw":["aici",9541],"lp":["aci","aic","aici","caz","stia","acti","zic","fic","cati","caci","cia","asti","tica","faci","cai"],"rp":["ica","ista","icat","isca","ific"]},"44":{"input":[3,4,6],"tlp":["ri",261934],"trp":["ir",38667],"tlw":["trei",5142],"trw":["ieri",560],"lp":["ri","ve","ev","eri","vr","vre","tie","riv","tri","eti","rie","rei","rit","rivi","rti"],"rp":["ir","ire","ite","ier","iet"]},"45":{"input":[1,3,4,6],"tlp":["eva",33520],"trp":["iar",32094],"tlw":["avea",12237],"trw":["iar",16087],"lp":["eva","ari","ave","vea","fie","avea","rez","var","ria","evar","arti","reze","feri","vrea","vara","teva","rai","raz"],"rp":["iar","irea"]},"46":{"input":[2,3,4,6],"tlp":["ric",22696],"trp":["ice",14452],"tlw":["cei",7477],"trw":["iesit",918],"lp":["ric","eci","esti","dev","dic","cev","cei","ris","cri","ved","vede","rid","ves","ridi","eric","scri"],"rp":["ice","iste","iec","idic"]},"47":{"input":[1,2,3,4,6],"tlw":["ceva",11423],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",750933],"trw":["in",184145],"lp":[],"rp":["in","ni","hi","ini","nii","iin","hii","nin","ih","hn","inii","nni","ihn","iini","hin","inn","ihi","nh","hni","inin"]},"49":{"input":[1,5,6],"tlp":["ani",21231],"trp":["ina",49485],"tlw":["ani",6375],"trw":["hai",1393],"lp":["ani","ain","aini","ah","aha","anii","zin","zan"],"rp":["ina","ha","hia","nai","inai","nain","nz","hai","nia","han","ian","nza"]},"50":{"input":[2,5,6],"tlp":["sin",18411],"trp":["ins",33866],"tlw":["sin",190],"trw":["jh",411],"lp":["sin","sh","sih","sini","sni"],"rp":["ins","nis","ij","his","nsi","inis","ji","isn","iji","insi","jin","ijin","nsis","nk","nik"]},"51":{"input":[1,2,5,6],"tlp":["asin",3239],"trp":["insa",9893],"tlw":["ash",252],"trw":["insa",7993],"lp":["asin","sina","aji","ank","siha","sha","ash","ansi","ajii","anis","asni"],"rp":["insa","ija","hisa","hans","jak","kan","jah","ijah","hka"]},"52":{"input":[3,5,6],"tlp":["eni",33619],"trp":["ine",65502],"tlw":["eh",87],"trw":["hei",371],"lp":["eni","enii","ein","enin","eh","enie"],"rp":["ine","he","nei","ien","nie","hei","nein","inei","hen","heie","nnie","niei","hne","hie"]},"53":{"input":[1,3,5,6],"tlp":["aine",3733],"trp":["inea",7586],"trw":["haine",380],"lp":["aine","zen","ezen","enz","anie","ezin","enza","zne","azne","ezn","ezna","enzi"],"rp":["inea","nez","neze","hea","iena","nze","heia","neaz"]},"54":{"input":[2,3,5,6],"tlp":["din",90282],"trp":["ind",36487],"tlw":["din",67566],"trw":["iesind",261],"lp":["din","sine","dine","edin","enis","ensi"],"rp":["ind","ndi","inse","inde","iind","indi","hise","iden","nsid","hid","nise","hes","hide","nind"]},"55":{"input":[1,2,3,5,6],"tlw":["sinea",401],"trw":["jake",478],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",58255],"trp":["int",156160],"tlw":["vin",1566],"trw":["intii",232],"lp":["bi","tin","bin","vin","th","bit","vint","tint"],"rp":["int","nti","ib","nit","inti","ntin","nv","ibi","iint","inv","nvi","ntii"]},"57":{"input":[1,4,5,6],"tlp":["abi",11731],"trp":["inta",22656],"tlw":["abia",2225],"trw":["nava",1620],"lp":["abi","aint","van","fiin","zb","tina","vant","bia","atin","bai","abia","babi","vina","bati","aib"],"rp":["inta","inf","nav","iba","inat"]},"58":{"input":[2,4,5,6],"tlp":["ch",61576],"trp":["inc",60349],"tlw":["cinci",2724],"trw":["nici",22847],"lp":["ch","chi","cin","sch","schi","chii","chis","stin","cinc","bis"],"rp":["inc","nic","nici","nci","nist","inci","nch","nchi","inch","nsti"]},"59":{"input":[1,2,4,5,6],"tlw":["stiinta",654],"trw":["inca",8005],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["rin",33243],"trp":["intr",61098],"tlw":["bine",14803],"trw":["intre",5472],"lp":["rin","bine","ven","veni","tine","rint","enti","rni","enit","rbi","even","bir","bie"],"rp":["intr","inte","nev","ient","inev","ibe","iber"]},"61":{"input":[1,3,4,5,6],"tlw":["tinea",1218],"trw":["inainte",6948],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["dintre",7665],"trw":["niste",5419],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["chiar",12228],"trw":["incerca",1941],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",1200],"trw":["o",113236],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",642],"trp":["oa",151490],"trw":["oa",179],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",36626],"trp":["os",73956],"tlw":["so",137],"trw":["os",129],"lp":["so","sos","sso"],"rp":["os","oss","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["soa",8768],"trp":["oas",22126],"lp":["soa","aso","wo","swo","sow","woo","asoa","sowa","asso","ssow","aos"],"rp":["oas","oasa","ow","osa","ossa","owa","oass","ows"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["e-",29604],"trp":["-o",27659],"trw":["-",97955],"lp":["e-","eo","e-o"],"rp":["-o","oe","-e","o-","-o-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",46041],"trp":["-a",104204],"tlw":["a-",97],"trw":["-a",320],"lp":["a-","e-a","eoa","a-a","a-o"],"rp":["-a","ox","-a-"]},"70":{"input":[2,3,7],"tlp":["do",69536],"trp":["od",23024],"tlw":["s-o",6502],"lp":["do","s-","s-o","de-","deo","eod","deod","eso","eos","deos","eose","e-s"],"rp":["od","-s","ose","-se","ode","odo","oses","osse"]},"71":{"input":[1,2,3,7],"tlp":["sa-",34714],"trp":["oda",11577],"tlw":["s-a",12787],"trw":["oase",184],"lp":["sa-","s-a","doa","a-s","sa-s","de-a","eoda","deoa","ado","asa-","da-"],"rp":["oda","oase","-as","-ad","-ade","osea","oad","oada","odea"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",107166],"trp":["ot",74165],"tlw":["tot",13553],"trw":["otto",232],"lp":["to","tot","go","tog","tto","toto","gg","got","gt","gto","togo","tg"],"rp":["ot","og","oto","ott","otog","ogo","otto","oog"]},"73":{"input":[1,4,7],"tlp":["ga",71011],"trp":["oat",31855],"tlw":["toata",5023],"trw":["ofta",463],"lp":["ga","fo","toa","ag","toat","gat","ato","foa","aga","atoa","gata","ago","goa"],"rp":["oat","of","oata","ota","oga","oft","ogat"]},"74":{"input":[2,4,7],"tlp":["co",95698],"trp":["oc",55455],"tlw":["scos",703],"lp":["co","sco","sto","cto","cot","sot","soc","toc","gos","cos","gost","scot","goss"],"rp":["oc","ost","osc","oct","octo","oco","ocot"]},"75":{"input":[1,2,4,7],"tlp":["fos",18330],"trp":["oast",12711],"tlw":["fost",18063],"trw":["ostas",97],"lp":["fos","fost","aco","gas","coa","scoa","foc","coas","agos","coat","asto","sato","cato","sfo"],"rp":["oast","oca","oac","osta","ocat","oasc"]},"76":{"input":[3,4,7],"tlp":["ro",71384],"trp":["or",188766],"tlw":["rog",1945],"trw":["ore",1272],"lp":["ro","ge","eg","tor","gr","r-","tr-","rg","reg","ege","r-o","tr-o","gre","erg","reo"],"rp":["or","ort","-t","ore","ote"]},"77":{"input":[1,3,4,7],"tlp":["foar",10466],"trp":["oar",59190],"tlw":["toate",11462],"trw":["oare",2672],"lp":["foar","toar","for","roa","rag","ega","ator","gra","egat","a-t","arg","gea"],"rp":["oar","oare","oate","oart","ora","-ar","orta","oara"]},"78":{"input":[2,3,4,7],"tlp":["dor",9727],"trp":["ord",7233],"tlw":["rost",832],"lp":["dor","ros","cor","ce-","sor","rost","rso","ctor","deg","erso","stor","dege","roc","totd","doc"],"rp":["ord","oce","ostr","otd","otde"]},"79":{"input":[1,2,3,4,7],"tlw":["doar",7637],"trw":["oras",1618],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",291116],"trw":["nu",113453],"lp":[],"rp":["un","nu","on","no","ou","unu","uno","nou","nun","onu","ono","onn","non","oon","oun","uu","nuu","nno","onun","onon"]},"81":{"input":[1,5,7],"tlp":["au",127814],"trp":["ua",38098],"tlw":["au",14003],"trw":["una",3763],"lp":["au","anu","aun","auna","qu","anun","ano"],"rp":["ua","una","oua","noa","ona","nua","oan","noua","unoa","oana","nau","naun","nuna"]},"82":{"input":[2,5,7],"tlp":["su",87996],"trp":["us",98070],"tlw":["sus",2880],"trw":["jos",3880],"lp":["su","sun","sus","son","snu"],"rp":["us","ju","uns","jo","jun","nos","ons","unos","jos","juns","nsu","uso","nus","osu","nsus"]},"83":{"input":[1,2,5,7],"tlp":["sau",22053],"trp":["noas",7379],"tlw":["sau",21799],"trw":["usa",4343],"lp":["sau","asu","aju","ajun","soan","suna","sona","aus","ajo","anus","asun","ason","saju"],"rp":["noas","usa","joa","uas","usoa","nasu","ouas"]},"84":{"input":[3,5,7],"tlp":["eu",42582],"trp":["une",33961],"tlw":["eu",16688],"trw":["n-o",3069],"lp":["eu","enu","eun","enun","eno"],"rp":["une","n-","u-","nu-","-u","-un","ne-","ue","n-o","neo","one","uneo","-n","ony","une-"]},"85":{"input":[1,3,5,7],"tlp":["eau",24032],"trp":["n-a",17307],"trw":["n-a",2864],"lp":["eau","eaun","euna","que","xu","exu","e-au","eaua","xua","exua"],"rp":["n-a","-au","unea","ne-a","oane","neau","n-au","uque","ux","onea"]},"86":{"input":[2,3,5,7],"tlp":["du",82602],"trp":["use",37853],"tlw":["dus",2022],"trw":["unde",9415],"lp":["du","dou","dus","duse","eus","du-","esu","du-s"],"rp":["use","und","unde","ud","ndu","uses","unse","ond","u-s","ndo","ndu-","ude"]},"87":{"input":[1,2,3,5,7],"tlw":["doua",9678],"trw":["n-as",944],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",124429],"trp":["ut",118950],"tlw":["tu",6631],"trw":["unt",87],"lp":["tu","bu","gu","bo","tun","bun","totu"],"rp":["ut","ng","unt","ob","ub","ntu","otu","nto","ont","ung","ngu","utu","ug"]},"89":{"input":[1,4,5,7],"tlp":["atu",33704],"trp":["uta",13540],"tlw":["buna",3510],"trw":["nota",476],"lp":["atu","fu","gan","atun","ang","aut","anga","tau","buna","antu","fun","gatu","tua"],"rp":["uta","nga","uf","uat","ntoa","uga","oba"]},"90":{"input":[2,4,5,7],"tlp":["cu",251869],"trp":["uc",41800],"tlw":["cu",107724],"trw":["joc",840],"lp":["cu","con","cut","sunt","scu","cun","tunc","stu","cont","cuno","sub","cons","scut","tus"],"rp":["uc","unc","ocu","onst","ust","nost"]},"91":{"input":[1,2,4,5,7],"tlw":["facut",6146],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",139075],"trp":["ur",142738],"tlw":["greu",2486],"trw":["unor",2218],"lp":["ru","tru","ebu","tur","gur","rebu","reu","rob","run","r-u","tr-u","r-un","eru"],"rp":["ur","ntru","ute","ntr-","orb","oru","ngur"]},"93":{"input":[1,3,4,5,7],"tlw":["erau",9639],"trw":["n-ar",2738],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["trecut",2015],"trw":["usor",3025],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["fusese",5088],"trw":["noastra",2596],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",100912],"trw":["il",17933],"lp":[],"rp":["il","lo","li","oi","ol","io","olo","ilo","ili","oli","ll","iil","ill","lio","lii","oil","ilio","iol","lli","iilo"]},"97":{"input":[1,6,7],"tlp":["al",157962],"trp":["la",223904],"tlw":["al",17061],"trw":["la",103939],"lp":["al","ala","ali","zil","zo","alal"],"rp":["la","ioa","lal","ial","ila","oz","oia","loa","ozi","oal","ola","lia","iala","ilal"]},"98":{"input":[2,6,7],"tlp":["sol",5524],"trp":["osi",9398],"tlw":["sol",477],"trw":["ok",68],"lp":["sol","sl","sil","sosi","sio","sili"],"rp":["osi","los","olos","iso","ios","losi","ko","ls","lis","osii","ois","kil","kilo","iko"]},"99":{"input":[1,2,6,7],"tlp":["sal",9118],"trp":["las",16180],"tlw":["sala",1335],"trw":["lasa",3143],"lp":["sal","sla","sala","sola","alis","salo","wil","sall","als","sali","will"],"rp":["las","lasa","lasi","isoa","ioas","olas","llas","law","low"]},"100":{"input":[3,6,7],"tlp":["el",182428],"trp":["le",217374],"tlw":["el",30829],"trw":["le",16173],"lp":["el","ele","elo","eli","e-i","eil"],"rp":["le","ile","i-","-i","-l","l-","oie","lie","iile","lel","le-","ole","i-l","i-o"]},"101":{"input":[1,3,6,7],"tlp":["ale",32820],"trp":["i-a",24465],"tlw":["ale",8429],"trw":["i-a",2798],"lp":["ale","a-i","ela","a-l","eal","zile","eala","e-ai","elea","elal","eila","alea","zel","eali"],"rp":["i-a","-ai","lea","l-a","le-a","i-ai"]},"102":{"input":[2,3,6,7],"tlp":["si-",10078],"trp":["-si",12424],"tlw":["doi",4637],"trw":["ideile",361],"lp":["si-","doi","sel","eles","del","sele","delo","si-l","dio","si-i","esel"],"rp":["-si","les","iod","ld","lose","odi","old","lid","i-s"]},"103":{"input":[1,2,3,6,7],"tlw":["sa-i",9425],"trw":["lase",794],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",55302],"trp":["lt",70688],"tlw":["voi",6798],"trw":["lovi",446],"lp":["vo","gi","voi","toti","til","gl","tio"],"rp":["lt","ig","oti","ov","lti","lit","ito","ovi","olit","liti","lov","lig","lv"]},"105":{"input":[1,4,6,7],"tlp":["alt",31331],"trp":["lta",15965],"tlw":["afla",4776],"lp":["alt","fl","tal","fla","afl","afla","alta","voa","alti","val","avo","fol","folo","alat"],"rp":["lta","lat","lalt","iga","lita","lati"]},"106":{"input":[2,4,6,7],"tlp":["col",18912],"trp":["loc",16849],"tlw":["colt",621],"trw":["loc",5973],"lp":["col","cl","sig","cio","colo","cli","voc","cil","soci","soti"],"rp":["loc","icio","lic","osti","oci","ico","ltc","lc","osit","isto"]},"107":{"input":[1,2,4,6,7],"tlw":["acolo",7879],"trw":["lasat",1202],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["tel",33441],"trp":["ori",36339],"tlw":["vor",6208],"trw":["lor",11526],"lp":["tel","tele","vor","ril","rile","rel","tori","rio","elor","rele","evo","egi","erio","evoi"],"rp":["ori","lor","leg","lte","ilor","-ti"]},"109":{"input":[1,3,4,6,7],"tlw":["fel",7250],"trw":["i-ar",1059],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["cel",9164],"trw":["orice",4726],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["astfel",4825],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ul",257995],"trw":["lui",42818],"lp":[],"rp":["ul","lu","ui","lui","iu","nul","ulu","ului","lin","lul","inu","nui","uni","noi","iul","lun","iun","ho","unul","unui"]},"113":{"input":[1,5,6,7],"tlp":["zu",17502],"trp":["uz",18000],"tlw":["ziua",2202],"trw":["lua",3594],"lp":["zu","azu","auz","alu","anul","auzi","ziu","zul","alul"],"rp":["uz","lan","lua","nal","uzi","uia","inua","uza","inal","ula","onal"]},"114":{"input":[2,5,6,7],"tlp":["sul",13027],"trp":["usi",13886],"tlw":["solul",203],"trw":["insusi",1408],"lp":["sul","solu","snui","siu","siun","sulu"],"rp":["usi","insu","jul","onsi","jl","ijl","jlo","ijlo","nsul","isnu","lus","ius","isu","niso"]},"115":{"input":[1,2,5,6,7],"tlw":["salon",359],"trw":["nasul",473],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elu",10235],"trp":["uie",12750],"trw":["nu-i",6710],"lp":["elu","elul","elui","enul"],"rp":["uie","u-i","nu-i","nel","unei","ule","iune","nele","nile","nule","ley","u-l","len","nu-l","inel","unel"]},"117":{"input":[1,3,5,6,7],"tlw":["auzea",594],"trw":["n-ai",1802],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["seldon",899],"trw":["nu-si",1718],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["daneel",945],"trw":["indoiala",1534],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["tul",54201],"trp":["ult",36980],"tlw":["totul",5658],"trw":["lungul",1158],"lp":["tul","bui","bil","tiu","bl","gin","tinu"],"rp":["ult","ing","uti","uit","into","ntul","utin","igu","ingu","uv","otul","itu","ulti"]},"121":{"input":[1,4,5,6,7],"tlw":["vazut",3775],"trw":["langa",4102],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["stiu",5950],"trw":["ochii",6711],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["atunci",10484],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["trebuie",10427],"trw":["intr-o",7901],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["vorba",4095],"trw":["legatura",2214],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["sigur",2888],"trw":["lucru",5287],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["singura",2707],"trw":["niciodata",5038],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",639],"trw":["p",1061],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",93968],"trp":["pa",161658],"tlw":["apa",3245],"trw":["pa",666],"lp":["ap","apa"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",103043],"trp":["ps",4877],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["asp",12078],"trp":["pas",8637],"tlw":["apasa",575],"trw":["pas",1350],"lp":["asp","spa","sap","apas","aspa","aps","apsa","sapa"],"rp":["pas","pasa","psa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",52344],"trp":["pe",216440],"trw":["pe",110407],"lp":["ep","epe"],"rp":["pe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",10151],"trp":["pea",1505],"tlw":["ape",142],"lp":["ape","epa","xp","exp","eap","xpe","expe","eapa","epea","a'","apea"],"rp":["pea","'a","pape"]},"134":{"input":[2,3,8],"tlp":["esp",14229],"trp":["pes",7355],"tlw":["spe",120],"trw":["pese",104],"lp":["esp","desp","spe","dep","eped","espe","d'","sep","depe","eps","edep","deps"],"rp":["pes","ped","pede","pse","pese","pses","'d"]},"135":{"input":[1,2,3,8],"tlp":["depa",6164],"trp":["pad",2363],"tlw":["da'",470],"trw":["pedeapsa",277],"lp":["depa","aspe","epas","d'a","dap","apad","adap","da'","espa","deap","spad","sepa","xped","eaps","dape","apes"],"rp":["pad","pada","pase","psea"]},"136":{"input":[4,8],"trp":["pt",44775],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",16520],"trp":["pat",19529],"tlw":["fapt",2580],"trw":["pat",1592],"lp":["apt","fap","fapt","apta","tap","apat","tapa"],"rp":["pat","pta","ptat","pata"]},"138":{"input":[2,4,8],"tlp":["tsp",179],"trp":["pc",487],"lp":["tsp"],"rp":["pc","pts","ptsp"]},"139":{"input":[1,2,4,8],"tlp":["cap",19242],"trp":["pac",5660],"tlw":["cap",4694],"trw":["pacat",460],"lp":["cap","spat","capa","stap","sapt","scap","apac","apc","capc","apca"],"rp":["pac","past","paca","ptas","pca"]},"140":{"input":[3,4,8],"tlp":["ept",20779],"trp":["pr",175984],"tlw":["trepte",244],"trw":["perete",698],"lp":["ept","rep","rept","tep","tept","repe","rp","epte","rpr","epet","epr"],"rp":["pr","pre","per","pte","pet","pere","petr","pret","pete"]},"141":{"input":[1,3,4,8],"tlp":["apr",12184],"trp":["par",57159],"tlw":["repeta",897],"trw":["prea",8562],"lp":["apr","epta","apar","epar","apte","eapt","rap","reap","xper","xpr"],"rp":["par","part","pra","pare","prea","para","patr","pate","pera","ptea"]},"142":{"input":[2,3,4,8],"tlp":["spr",29330],"trp":["pest",6829],"tlw":["spre",12456],"trw":["peste",6431],"lp":["spr","spre","cep","espr","drep","step","spec","sper","resp","cept","cepe","ccep","spet","ecep"],"rp":["pest","pres","pec","pers","pect","prec"]},"143":{"input":[1,2,3,4,8],"tlw":["departe",3651],"trw":["parca",3176],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",55904],"trw":["m",611],"lp":[],"rp":["mp","mn","mm","pn","nm"]},"145":{"input":[1,5,8],"tlp":["am",164027],"trp":["ma",278091],"tlw":["am",32990],"trw":["ma",23028],"lp":["am","ama","aman","amn","amp","amna","apan"],"rp":["ma","man","pan","mana","pana","mna","pam","pama","mpa","mam","nap","mama","mpan"]},"146":{"input":[2,5,8],"tlp":["sm",3780],"trp":["nsp",2667],"lp":["sm"],"rp":["nsp","ms","nsm","jm"]},"147":{"input":[1,2,5,8],"tlp":["amas",5157],"trp":["mas",15541],"tlw":["sam",974],"trw":["masa",3415],"lp":["amas","sam","sma","sman","wm","wma","wman","ansp","ansm","ajm","ajma","asm","asam"],"rp":["mas","masa","maj","nspa","jma","paj","msw"]},"148":{"input":[3,5,8],"tlp":["em",62631],"trp":["me",133398],"tlw":["emmy",120],"trw":["pen",562],"lp":["em","eme","emn","emen","emp","emne","epen"],"rp":["me","pen","men","mne","mene","mpe","mem","nem","nep","my","mey","meye","meme"]},"149":{"input":[1,3,5,8],"tlp":["ame",19413],"trp":["mea",17220],"tlw":["amy",498],"trw":["mea",8040],"lp":["ame","eam","amen","eama","ema","emna","eamn","emea","eman","amne","xem","exem","xemp"],"rp":["mea","mnea","mane","max","pane","neam","mame"]},"150":{"input":[2,3,5,8],"tlp":["sem",11901],"trp":["med",6644],"tlw":["semn",1590],"trw":["mese",274],"lp":["sem","semn","seme","dem","dm","edem","demn","esem"],"rp":["med","mes","ndep","nsem","mese","mens","md","mped","mej","mejd","ndem","pend"]},"151":{"input":[1,2,3,5,8],"tlw":["seama",5586],"trw":["newman",723],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",1176],"trp":["mb",18560],"lp":["tm"],"rp":["mb","mt","mpt","ntm"]},"153":{"input":[1,4,5,8],"tlp":["tam",11107],"trp":["mat",12972],"tlw":["tam",65],"trw":["pamant",2358],"lp":["tam","tamp","amb","fam","tama","apab","atm","amba"],"rp":["mat","ntam","mba","mant","mata","ptam","pant","mnat","pab","mbat","mta","ptan"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",3183],"trp":["mc",201],"lp":["cm"],"rp":["mc","mcn"]},"155":{"input":[1,2,4,5,8],"tlw":["cam",2462],"trw":["manca",317],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",42362],"trp":["pent",38307],"tlw":["tem",615],"trw":["merry",352],"lp":["rm","rem","tem","erm","reme","rme","term","trem"],"rp":["pent","mer","ment","mbr","mpr","mpre","met","mte","mbe","mere","ntem","perm"]},"157":{"input":[1,3,4,5,8],"tlw":["eram",2315],"trw":["mare",9405],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["cemp",522],"trw":["mers",716],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["camera",2871],"trw":["macar",2850],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",47365],"trw":["pi",147],"lp":[],"rp":["pi","ip","pii","ipi","pip","piii","ipp","ppi","pipp","ippi","ipii"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2966],"trp":["ipa",7902],"trw":["pai",991],"lp":["api","zap","zapa","aip"],"rp":["ipa","pia","pai","paz","paza","pipa","paia","ipai"]},"162":{"input":[2,6,8],"tlp":["spi",4099],"trp":["isp",6275],"lp":["spi","sip","sipi"],"rp":["isp","ips","psi","ipsi","pis","isip","pisi"]},"163":{"input":[1,2,6,8],"tlp":["spai",782],"trp":["ispa",2264],"trw":["pasi",1282],"lp":["spai","wisp","aisp"],"rp":["ispa","pasi","ipsa","pais","pias"]},"164":{"input":[3,6,8],"tlp":["epi",929],"trp":["pie",11267],"lp":["epi"],"rp":["pie","ipe","iep","piep","pipe","pei","ipei"]},"165":{"input":[1,3,6,8],"tlp":["epez",640],"trp":["pez",756],"tlw":["apei",412],"trw":["paie",113],"lp":["epez","apei"],"rp":["pez","pezi","paie","piez"]},"166":{"input":[2,3,6,8],"tlp":["disp",4472],"trp":["pid",1040],"trw":["piese",120],"lp":["disp","espi","depi","epis","eisp","dip","edip","epsi"],"rp":["pid","pied","ipse","ispe","pedi","pies","peis","pide","psei"]},"167":{"input":[1,2,3,6,8],"tlw":["zapada",443],"trw":["piesa",219],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2064],"trp":["pit",3627],"tlw":["tip",589],"lp":["tip","tipi"],"rp":["pit","pti","ptii","ipit","piti","ipt","piv","ptit"]},"169":{"input":[1,4,6,8],"tlp":["apit",1785],"trp":["piat",2890],"tlw":["tipa",384],"trw":["piata",623],"lp":["apit","tipa","fip","fipt","tapi"],"rp":["piat","pita","pati","pav","ptia","ipat","pavi","ptz"]},"170":{"input":[2,4,6,8],"tlp":["cip",1891],"trp":["pic",7270],"tlw":["tipic",72],"trw":["pic",662],"lp":["cip","spit","cipi","cisp","scip","spic"],"rp":["pic","pici","psit","pist","pci","pisc","icip","pict","ipic"]},"171":{"input":[1,2,4,6,8],"tlw":["twisp",358],"trw":["pisica",266],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",1804],"trp":["pri",68428],"trw":["privi",2867],"lp":["rip","rpri","epti","ripi","tipe"],"rp":["pri","priv","peri","pier","prie","pir","iept","piri","iper","prii","prit","piet","ptie","prir","peti"]},"173":{"input":[1,3,4,6,8],"tlw":["aparitia",471],"trw":["privirea",2009],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["spirit",395],"trw":["priveste",1176],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["expresie",605],"trw":["paris",654],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",133805],"trw":["imi",6836],"lp":[],"rp":["mi","im","min","imp","imi","nim","nimi","pin","him","hip","mii","mni","inim","mpi","imin","mini","impi","mpin","imii","hm"]},"177":{"input":[1,5,6,8],"tlp":["ami",12341],"trp":["mai",98477],"tlw":["amiaza",160],"trw":["mai",80029],"lp":["ami","amin","zam","anim","aim","aima"],"rp":["mai","ima","mina","main","nima","pina","mani","inap","pani","iam","impa","mia","miaz","hipa"]},"178":{"input":[2,5,6,8],"tlp":["sim",14730],"trp":["mis",9725],"tlw":["sim",169],"trw":["nisip",353],"lp":["sim","simp","smi","spin","smin","smis"],"rp":["mis","mij","imis","insp","mnis","psih","misi","pins","ism","nsmi","jim","nism","nspi","mik"]},"179":{"input":[1,2,5,6,8],"tlw":["spaima",491],"trw":["masina",2136],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emei",6102],"trp":["ime",17305],"trw":["mine",8864],"lp":["emei","emi","enim","emni","epin"],"rp":["ime","meni","mine","mei","imen","nime","mie","meie","impe","hem","mpie","hme","nemi","mnei","hmey"]},"181":{"input":[1,3,5,6,8],"tlw":["examina",267],"trw":["maine",960],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["depinde",317],"trw":["mesei",432],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["asemeni",170],"trw":["inseamna",2064],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",26063],"trp":["mit",11574],"tlw":["timp",11216],"trw":["mintii",377],"lp":["tim","timp","timi","bim"],"rp":["mit","mint","imt","imb","mti","imti","himb","imit","ntim","mbi","mv","mtit","imbi","miti","mbin","mnit"]},"185":{"input":[1,4,5,6,8],"tlw":["zambi",959],"trw":["pamint",327],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["simti",2661],"trw":["nimic",9112],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["stiam",937],"trw":["mica",2010],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["vreme",4271],"trw":["prin",13288],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["femeie",2003],"trw":["prima",3179],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["trimis",946],"trw":["incepe",1001],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["dimineata",2070],"trw":["imediat",2866],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",78466],"trw":["po",250],"lp":[],"rp":["po","op","opo","pop","popo","ppo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",15763],"trp":["poa",16012],"lp":["apo","apoa"],"rp":["poa","oap","opa","oapa","opoa"]},"194":{"input":[2,7,8],"tlp":["spo",1393],"trp":["pos",4845],"lp":["spo","sop"],"rp":["pos","osp","ppos","poso"]},"195":{"input":[1,2,7,8],"tlp":["apos",506],"trp":["oasp",820],"lp":["apos","soap"],"rp":["oasp","pow"]},"196":{"input":[3,7,8],"tlp":["eop",544],"trp":["ope",5829],"trw":["pe-o",124],"lp":["eop","epo","eopo"],"rp":["ope","pe-","poe","o'","pe-o","oep","-p","-po"]},"197":{"input":[1,3,7,8],"tlp":["eopa",329],"trp":["oape",5724],"lp":["eopa","eoap"],"rp":["oape","pa-","pa-a","pe-a","-ap","-apo"]},"198":{"input":[2,3,7,8],"tlp":["deop",448],"trp":["pod",1174],"trw":["pod",151],"lp":["deop","espo","depo"],"rp":["pod","pode","oped","o'd","'do","o'do","pose","podo","ospe"]},"199":{"input":[1,2,3,7,8],"trw":["podea",484],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",280],"trp":["pot",14753],"trw":["pot",6200],"lp":["top","topo"],"rp":["pot","opt","pto","poto","opot"]},"201":{"input":[1,4,7,8],"trp":["poat",13885],"trw":["poata",1395],"lp":[],"rp":["poat","oapt","pof","pag","poft","opat","opag","paga"]},"202":{"input":[2,4,7,8],"tlp":["cop",12351],"trp":["post",1578],"tlw":["scop",481],"trw":["post",334],"lp":["cop","scop","sopt","stop"],"rp":["post","poc","opts"]},"203":{"input":[1,2,4,7,8],"tlw":["soapta",372],"trw":["ostap",497],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",9845],"trp":["pro",33227],"trw":["pro",584],"lp":["rop","ropr","torp","ropo"],"rp":["pro","por","prop","port","opr","oper","potr","orp","preg","opor","prot","preo","opre","pote","prog","poet"]},"205":{"input":[1,3,4,7,8],"tlw":["aproape",5419],"trw":["poate",12490],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corp",515],"trw":["prost",652],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["castorp",852],"trw":["profesor",467],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["pu",141518],"trw":["om",4434],"lp":[],"rp":["pu","um","mu","om","up","mo","pun","num","omn","mun","mnu","umn","omnu","mpo","mpu","mom","omu","upu","omp","umu"]},"209":{"input":[1,5,7,8],"tlp":["apu",6837],"trp":["upa",22884],"trw":["puna",1094],"lp":["apu","anum","amu"],"rp":["upa","uma","oam","numa","moa","oma","oamn","noap","puna","oman","manu","napo","uman","umoa","ompa","mau","umpa"]},"210":{"input":[2,5,7,8],"tlp":["spu",46684],"trp":["pus",30635],"tlw":["spus",7687],"trw":["pus",1846],"lp":["spu","spun","spus","sup","supu","smu","sum","som","somn"],"rp":["pus","puns","mos","jum","mus","umos","mons","usm","opus","mpos","upus"]},"211":{"input":[1,2,5,7,8],"tlw":["spuna",1588],"trw":["pusa",270],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["epu",10511],"trp":["ume",17000],"trw":["meu",6128],"lp":["epu","emu","emo","e-m"],"rp":["ume","pune","-m","m-","ome","omen","umne","nume","meu","mome","u-m","nu-m","upe","umen","unem","pome"]},"213":{"input":[1,3,5,7,8],"tlw":["anume",1489],"trw":["m-am",5385],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["spuse",11543],"trw":["mod",2741],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["dupa",19290],"trw":["m-as",588],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["gm",4573],"trp":["put",44011],"tlw":["tom",831],"trw":["putut",3710],"lp":["gm","gmu","gmun","tum","tom","gom","gomo"],"rp":["put","ptu","putu","mot","upt","mpot","umb","pub","munt","omot","nopt","mut","omb"]},"217":{"input":[1,4,5,7,8],"tlw":["fum",415],"trw":["muta",298],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["cum",21263],"trw":["punct",1203],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["acum",14119],"trw":["munca",1233],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["grup",794],"trw":["pentru",38307],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",2036],"trw":["putea",12961],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["drum",2045],"trw":["precum",1277],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["asupra",4961],"trw":["jumatate",2548],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",51269],"trw":["lipi",125],"lp":[],"rp":["pl","poi","pli","opi","lip","pil","pol","poli","opii","opil","plo","ipl","lipi","lop","piil","ilip","ipo","lp","opol","ipil"]},"225":{"input":[1,6,7,8],"tlp":["apoi",14490],"trp":["pla",21202],"tlw":["apoi",11964],"trw":["ploaia",308],"lp":["apoi","apl","alp","apli","alpi","aipo"],"rp":["pla","lipa","pal","poz","pozi","opia","pala","ipal","pali","ploa","pila","lap","poal","ploz"]},"226":{"input":[2,6,7,8],"tlp":["spl",128],"trp":["posi",2885],"trw":["lipsi",96],"lp":["spl","spio"],"rp":["posi","lips","ispo","oisp","ipos"]},"227":{"input":[1,2,6,7,8],"tlw":["spala",165],"trw":["lipsa",702],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epl",2223],"trp":["ple",12048],"trw":["piele",586],"lp":["epl","epli","elep"],"rp":["ple","opie","pel","piel","iple","lep","lipe","pele","lope","pile","pelo","ipel","pleo","ople","lpe","opei","i-p"]},"229":{"input":[1,3,6,7,8],"tlw":["apele",237],"trw":["pielea",663],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spele",82],"trw":["leopold",96],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["deplasa",142],"trw":["pilda",452],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topi",144],"trp":["poti",3337],"tlw":["topi",76],"trw":["poti",3337],"lp":["topi","gip","gipt"],"rp":["poti","pov","opti","plit","pito","ptil","ipot","opit","poit"]},"233":{"input":[1,4,6,7,8],"tlw":["filip",379],"trw":["pozitia",504],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["copii",1305],"trw":["lipsit",548],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["clipa",4697],"trw":["politica",737],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["opri",1970],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["apropie",1375],"trw":["propria",852],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["clipe",748],"trw":["plece",755],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["spatele",2337],"trw":["picioare",2645],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mul",40796],"trw":["omul",2345],"lp":[],"rp":["mul","pul","mpl","lum","umi","mnul","lumi","impo","mil","umin","plu","impu","impl","plin","mpul","lim","mili","imu","mplu","imul"],"special":"enter"},"241":{"input":[1,5,6,7,8],"trw":["numai",8412],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simplu",2223],"trw":["plus",1041],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["simpla",704],"trw":["psihanaliza",445],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mele",3338],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["exemplu",767],"trw":["oameni",4178],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["domnule",3620],"trw":["limpede",719],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["sa-mi",4566],"trw":["mesajul",279],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["timpul",4000],"trw":["mult",13114],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["faptul",2300],"trw":["multa",2401],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["chipul",1320],"trw":["mijlocul",1212],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["capul",3813],"trw":["placut",782],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["trupul",1201],"trw":["multe",4923],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["ti-am",981],"trw":["probabil",2719],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["sigmund",4378],"trw":["inceput",3590],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["dumneavoastra",3116],"trw":["pardaillan",1106],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",511],"tlw":["a",83146],"lp":["aa","aaa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",3507],"tlw":["s",933],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",334071],"tlw":["sa",168486],"lp":["sa","as","asa","sas","ssa","asas","wa","aw","sw","ass","ws","was"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",21380],"tlw":["e",25573],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",331408],"tlw":["ea",17717],"lp":["ea","ex","eea","ae","xa","exa","xe","exe","ax"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",474727],"tlw":["de",299045],"lp":["de","se","es","ed","des","ese","ede","ses","sese","dee","sed","dese","sse","ess","edes","esed","sede","dd","eed","eses"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",156223],"tlw":["da",10448],"lp":["da","ad","ase","eas","dea","sea","ada","ade","dad","esa","edea","deas","ases","adea","asea","esea","sase","eeas","dade","ew"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",3013],"tlw":["t",835],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",414820],"tlw":["fata",15507],"lp":["at","ta","ata","fa","tat","af","fat","atat","fata","tf","afa","tata","ft","afat","fta","ff","att","tta","ftat","atf"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",311126],"tlw":["c",706],"lp":["st","sc","ct","cc","tc","ts"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",523509],"tlw":["ca",133317],"lp":["ca","ac","sta","ast","cat","aca","fac","asta","sca","asc","cas","asca","act","sf","stat","sat","casa","sfa","tac","faca"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["re",521801],"tlw":["te",15374],"lp":["re","te","er","tr","tre","et","rt","ere","rte","ter","ete","ret","tere","etr","ert","rer","tet","etre","rere","eret"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",509043],"tlw":["era",39299],"lp":["ar","ra","are","ate","era","rea","ara","tea","fe","tra","art","rat","arte","tar","tate","far","rta","area","fara","fr"],"rp":[]},"14":{"input":[2,3,4],"tlp":["ce",303452],"tlw":["ce",59249],"lp":["ce","ec","est","ste","este","cr","str","ces","dr","rec","cest","rc","rs","cre","res","cer","dec","esc","rd","cee"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["car",108000],"tlw":["care",72655],"lp":["car","care","ace","dar","cea","dat","eca","ras","aces","dac","daca","stra","data","acea","ecat","ceea","face","rca","east","astr"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",3834],"trw":["n",1145],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",216706],"trp":["na",142605],"tlw":["an",1202],"trw":["na",594],"lp":["an","ana","ann","anan","anna","aq","anaq"],"rp":["na","nan","nna","naq"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",3093],"trp":["ns",69609],"trw":["j",435],"lp":["sn"],"rp":["ns","nj"]},"19":{"input":[1,2,5],"tlp":["aj",20324],"trp":["nsa",12265],"tlw":["sansa",539],"trw":["nas",518],"lp":["aj","ans","san","ansa","anj","sana","aja","saj","sans","anja","asan","wn","anas","awn"],"rp":["nsa","ja","nas","nja","nsas","jan"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",157322],"trp":["ne",182563],"tlw":["en",86],"trw":["ne",11044],"lp":["en","ene","ey","eyn","enn","eye","een","enen","eyne","enny","enne"],"rp":["ne","yn","nen","nne","ny","nee","ye","nny","yne"]},"21":{"input":[1,3,5],"tlp":["ane",10158],"trp":["nea",30604],"tlw":["anne",526],"trw":["nea",342],"lp":["ane","enea","ena","ean","anee","ay","anne","anea","anen","xan","exan","eann","aye","eane","anx"],"rp":["nea","ya","nay","yx","nx"]},"22":{"input":[2,3,5],"tlp":["ej",6230],"trp":["nd",131965],"tlw":["sens",684],"trw":["je",103],"lp":["ej","sen","den","ens","dej","end","dy","sens","sey","ssey","seyn"],"rp":["nd","nde","nse","je","nes","ndes","nses","jd","ys"]},"23":{"input":[1,2,3,5],"tlp":["and",65203],"trp":["nda",9766],"tlw":["deja",3062],"trw":["new",498],"lp":["and","dan","anda","ande","eja","deja","adan","anse","dane","dans","esan","esaj","eaj"],"rp":["nda","ndea","nsea","neas","nand","new","jea"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bt",2355],"trp":["nt",306047],"tlw":["b",322],"lp":["bt","bb"],"rp":["nt","nb"]},"25":{"input":[1,4,5],"tlp":["ba",71864],"trp":["nta",47119],"tlw":["ba",2052],"trw":["nat",115],"lp":["ba","ant","ab","tan","bat","anta","aba","ban","tant","bab","tana","bata","anat","fan","tab"],"rp":["nta","nat","nf","ntat","nata"]},"26":{"input":[2,4,5],"tlp":["bs",4364],"trp":["nc",92637],"lp":["bs","cn","bc","bst","sb","tj"],"rp":["nc","nst","nct","jb"]},"27":{"input":[1,2,4,5],"tlp":["can",32837],"trp":["nca",22051],"tlw":["banca",519],"trw":["nasca",92],"lp":["can","anc","stan","anca","cant","bas","abs","bast","cab","taj","tanc","acan","banc","sab"],"rp":["nca","ncat","nsta","nast","nanc","nsf"]},"28":{"input":[3,4,5],"tlp":["ent",84157],"trp":["ntr",104253],"tlw":["brett",483],"trw":["nr",169],"lp":["ent","entr","eb","reb","treb","be","rb","br","rn","ten","ren","ern","rbe","tent"],"rp":["ntr","nte","ntre","ner","nter","net"]},"29":{"input":[1,3,4,5],"tlp":["ran",24100],"trp":["ntra",6602],"tlw":["barbat",1660],"lp":["ran","enta","bar","eba","reba","rba","bra","tran","arb","rab","arba","bea","barb","rbat","rant","ante"],"rp":["ntra","nar","ntea","neat"]},"30":{"input":[2,3,4,5],"tlp":["cen",5052],"trp":["nce",27047],"tlw":["recent",181],"trw":["jerry",121],"lp":["cen","dent","bes","cent","rbes","bse","sten","sent","bser","best"],"rp":["nce","ncer","ndr","nec","ndre","ncet","ncr","ndc","ncre","nstr"]},"31":{"input":[1,2,3,4,5],"tlw":["cand",24121],"trw":["jeff",677],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",110946],"trw":["ii",23134],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",175637],"trp":["ia",127873],"tlw":["ai",14411],"trw":["ia",3588],"lp":["ai","zi","az","za","aza","aia","azi","zia","zii","azia","aii","aiz","azii"],"rp":["ia","iz","iza","izi","iaz","iaza","izii"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",392768],"trp":["is",116257],"tlw":["si",229731],"trw":["isi",19173],"lp":["si","sis","sii","sk","ski","ssi","sisi","siss"],"rp":["is","isi","ki","ik","ks","iis","isk","iss","iki","kik","kiki","isis"]},"35":{"input":[1,2,6],"tlp":["asi",21012],"trp":["isa",3757],"tlw":["zis",2561],"trw":["iasa",754],"lp":["asi","zis","sai","sia","ak","wi","asis","sasi","wis","ais","aias","saiz","asii","zas","zias"],"rp":["isa","ias","ka","iasa","iasi"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",94946],"trp":["ie",135041],"tlw":["ei",24160],"trw":["iei",524],"lp":["ei","eie","eii"],"rp":["ie","iei"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ez",32829],"trp":["ize",3487],"tlw":["zeii",292],"trw":["izea",421],"lp":["ez","ze","eze","ezi","xi","exi","aie","eza","eia","eaz","eaza","aze","zea","zie","zei","eai","eiz","eize"],"rp":["ize","ix"]},"38":{"input":[2,3,6],"tlp":["di",145395],"trp":["id",28001],"tlw":["desi",3541],"trw":["iesi",1561],"lp":["di","esi","edi","dis","desi","sie","sid","side","die","sise","sei","sedi"],"rp":["id","ise","ide","ies","idi","iesi","ke","idee"]},"39":{"input":[1,2,3,6],"tlp":["zise",7538],"trp":["ida",1906],"tlw":["zise",6592],"trw":["ideea",1322],"lp":["zise","xis","exis","adi","dia","sez","asez","edia","seza","easi","dai","zid","esia","aies","dez","aid","ezis","aide","ake"],"rp":["ida"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",295163],"trp":["it",151806],"tlw":["ti",1335],"trw":["iti",3989],"lp":["ti","vi","tii","tit","tiv","vit","vii","titi","viit","tivi","tv"],"rp":["it","iv","iti","ivi","ivit","iit","itii","itiv","itit"]},"41":{"input":[1,4,6],"tlp":["va",110914],"trp":["ita",36266],"tlw":["fi",38843],"trw":["iata",1833],"lp":["va","fi","ati","av","tia","fii","vaz","zit","via","viat","ava","tai","tati","atii"],"rp":["ita","iat","itat","iata","iva","if"]},"42":{"input":[2,4,6],"tlp":["ci",156406],"trp":["ic",148028],"tlw":["ci",3836],"trw":["ici",186],"lp":["ci","sti","sit","cit","cti","tic","stii","stit","tis","vic","ctiv","vis","cii","sist"],"rp":["ic","ici","ist","isc","isti","itic"]},"43":{"input":[1,2,4,6],"tlp":["aci",11683],"trp":["ica",34598],"tlw":["aici",9541],"lp":["aci","aic","aici","caz","stia","acti","zic","fic","cati","caci","cia","asti","tica","faci","cai"],"rp":["ica","ista","icat","isca","ific"]},"44":{"input":[3,4,6],"tlp":["ri",261934],"trp":["ir",38667],"tlw":["trei",5142],"trw":["ieri",560],"lp":["ri","ve","ev","eri","vr","vre","tie","riv","tri","eti","rie","rei","rit","rivi","rti"],"rp":["ir","ire","ite","ier","iet"]},"45":{"input":[1,3,4,6],"tlp":["eva",33520],"trp":["iar",32094],"tlw":["avea",12237],"trw":["iar",16087],"lp":["eva","ari","ave","vea","fie","avea","rez","var","ria","evar","arti","reze","feri","vrea","vara","teva","rai","raz"],"rp":["iar","irea"]},"46":{"input":[2,3,4,6],"tlp":["ric",22696],"trp":["ice",14452],"tlw":["cei",7477],"trw":["iesit",918],"lp":["ric","eci","esti","dev","dic","cev","cei","ris","cri","ved","vede","rid","ves","ridi","eric","scri"],"rp":["ice","iste","iec","idic"]},"47":{"input":[1,2,3,4,6],"tlw":["ceva",11423],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",750933],"trw":["in",184145],"lp":[],"rp":["in","ni","hi","ini","nii","iin","hii","nin","ih","hn","inii","nni","ihn","iini","hin","inn","ihi","nh","hni","inin"]},"49":{"input":[1,5,6],"tlp":["ani",21231],"trp":["ina",49485],"tlw":["ani",6375],"trw":["hai",1393],"lp":["ani","ain","aini","ah","aha","anii","zin","zan"],"rp":["ina","ha","hia","nai","inai","nain","nz","hai","nia","han","ian","nza"]},"50":{"input":[2,5,6],"tlp":["sin",18411],"trp":["ins",33866],"tlw":["sin",190],"trw":["jh",411],"lp":["sin","sh","sih","sini","sni"],"rp":["ins","nis","ij","his","nsi","inis","ji","isn","iji","insi","jin","ijin","nsis","nk","nik"]},"51":{"input":[1,2,5,6],"tlp":["asin",3239],"trp":["insa",9893],"tlw":["ash",252],"trw":["insa",7993],"lp":["asin","sina","aji","ank","siha","sha","ash","ansi","ajii","anis","asni"],"rp":["insa","ija","hisa","hans","jak","kan","jah","ijah","hka"]},"52":{"input":[3,5,6],"tlp":["eni",33619],"trp":["ine",65502],"tlw":["eh",87],"trw":["hei",371],"lp":["eni","enii","ein","enin","eh","enie"],"rp":["ine","he","nei","ien","nie","hei","nein","inei","hen","heie","nnie","niei","hne","hie"]},"53":{"input":[1,3,5,6],"tlp":["aine",3733],"trp":["inea",7586],"trw":["haine",380],"lp":["aine","zen","ezen","enz","anie","ezin","enza","zne","azne","ezn","ezna","enzi"],"rp":["inea","nez","neze","hea","iena","nze","heia","neaz"]},"54":{"input":[2,3,5,6],"tlp":["din",90282],"trp":["ind",36487],"tlw":["din",67566],"trw":["iesind",261],"lp":["din","sine","dine","edin","enis","ensi"],"rp":["ind","ndi","inse","inde","iind","indi","hise","iden","nsid","hid","nise","hes","hide","nind"]},"55":{"input":[1,2,3,5,6],"tlw":["sinea",401],"trw":["jake",478],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",58255],"trp":["int",156160],"tlw":["vin",1566],"trw":["intii",232],"lp":["bi","tin","bin","vin","th","bit","vint","tint"],"rp":["int","nti","ib","nit","inti","ntin","nv","ibi","iint","inv","nvi","ntii"]},"57":{"input":[1,4,5,6],"tlp":["abi",11731],"trp":["inta",22656],"tlw":["abia",2225],"trw":["nava",1620],"lp":["abi","aint","van","fiin","zb","tina","vant","bia","atin","bai","abia","babi","vina","bati","aib"],"rp":["inta","inf","nav","iba","inat"]},"58":{"input":[2,4,5,6],"tlp":["ch",61576],"trp":["inc",60349],"tlw":["cinci",2724],"trw":["nici",22847],"lp":["ch","chi","cin","sch","schi","chii","chis","stin","cinc","bis"],"rp":["inc","nic","nici","nci","nist","inci","nch","nchi","inch","nsti"]},"59":{"input":[1,2,4,5,6],"tlw":["stiinta",654],"trw":["inca",8005],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["rin",33243],"trp":["intr",61098],"tlw":["bine",14803],"trw":["intre",5472],"lp":["rin","bine","ven","veni","tine","rint","enti","rni","enit","rbi","even","bir","bie"],"rp":["intr","inte","nev","ient","inev","ibe","iber"]},"61":{"input":[1,3,4,5,6],"tlw":["tinea",1218],"trw":["inainte",6948],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["dintre",7665],"trw":["niste",5419],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["chiar",12228],"trw":["incerca",1941],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",1200],"trw":["o",113236],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",642],"trp":["oa",151490],"trw":["oa",179],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",36626],"trp":["os",73956],"tlw":["so",137],"trw":["os",129],"lp":["so","sos","sso"],"rp":["os","oss","oso","oos"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["soa",8768],"trp":["oas",22126],"lp":["soa","aso","wo","swo","sow","woo","asoa","sowa","asso","ssow","aos"],"rp":["oas","oasa","ow","osa","ossa","owa","oass","ows"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["e-",29604],"trp":["-o",27659],"trw":["-",97955],"lp":["e-","eo","e-o"],"rp":["-o","oe","-e","o-","-o-"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["a-",46041],"trp":["-a",104204],"tlw":["a-",97],"trw":["-a",320],"lp":["a-","e-a","eoa","a-a","a-o"],"rp":["-a","ox","-a-"]},"70":{"input":[2,3,7],"tlp":["do",69536],"trp":["od",23024],"tlw":["s-o",6502],"lp":["do","s-","s-o","de-","deo","eod","deod","eso","eos","deos","eose","e-s"],"rp":["od","-s","ose","-se","ode","odo","oses","osse"]},"71":{"input":[1,2,3,7],"tlp":["sa-",34714],"trp":["oda",11577],"tlw":["s-a",12787],"trw":["oase",184],"lp":["sa-","s-a","doa","a-s","sa-s","de-a","eoda","deoa","ado","asa-","da-"],"rp":["oda","oase","-as","-ad","-ade","osea","oad","oada","odea"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",107166],"trp":["ot",74165],"tlw":["tot",13553],"trw":["otto",232],"lp":["to","tot","go","tog","tto","toto","gg","got","gt","gto","togo","tg"],"rp":["ot","og","oto","ott","otog","ogo","otto","oog"]},"73":{"input":[1,4,7],"tlp":["ga",71011],"trp":["oat",31855],"tlw":["toata",5023],"trw":["ofta",463],"lp":["ga","fo","toa","ag","toat","gat","ato","foa","aga","atoa","gata","ago","goa"],"rp":["oat","of","oata","ota","oga","oft","ogat"]},"74":{"input":[2,4,7],"tlp":["co",95698],"trp":["oc",55455],"tlw":["scos",703],"lp":["co","sco","sto","cto","cot","sot","soc","toc","gos","cos","gost","scot","goss"],"rp":["oc","ost","osc","oct","octo","oco","ocot"]},"75":{"input":[1,2,4,7],"tlp":["fos",18330],"trp":["oast",12711],"tlw":["fost",18063],"trw":["ostas",97],"lp":["fos","fost","aco","gas","coa","scoa","foc","coas","agos","coat","asto","sato","cato","sfo"],"rp":["oast","oca","oac","osta","ocat","oasc"]},"76":{"input":[3,4,7],"tlp":["ro",71384],"trp":["or",188766],"tlw":["rog",1945],"trw":["ore",1272],"lp":["ro","ge","eg","tor","gr","r-","tr-","rg","reg","ege","r-o","tr-o","gre","erg","reo"],"rp":["or","ort","-t","ore","ote"]},"77":{"input":[1,3,4,7],"tlp":["foar",10466],"trp":["oar",59190],"tlw":["toate",11462],"trw":["oare",2672],"lp":["foar","toar","for","roa","rag","ega","ator","gra","egat","a-t","arg","gea"],"rp":["oar","oare","oate","oart","ora","-ar","orta","oara"]},"78":{"input":[2,3,4,7],"tlp":["dor",9727],"trp":["ord",7233],"tlw":["rost",832],"lp":["dor","ros","cor","ce-","sor","rost","rso","ctor","deg","erso","stor","dege","roc","totd","doc"],"rp":["ord","oce","ostr","otd","otde"]},"79":{"input":[1,2,3,4,7],"tlw":["doar",7637],"trw":["oras",1618],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",291116],"trw":["nu",113453],"lp":[],"rp":["un","nu","on","no","ou","unu","uno","nou","nun","onu","ono","onn","non","oon","oun","uu","nuu","nno","onun","onon"]},"81":{"input":[1,5,7],"tlp":["au",127814],"trp":["ua",38098],"tlw":["au",14003],"trw":["una",3763],"lp":["au","anu","aun","auna","qu","anun","ano"],"rp":["ua","una","oua","noa","ona","nua","oan","noua","unoa","oana","nau","naun","nuna"]},"82":{"input":[2,5,7],"tlp":["su",87996],"trp":["us",98070],"tlw":["sus",2880],"trw":["jos",3880],"lp":["su","sun","sus","son","snu"],"rp":["us","ju","uns","jo","jun","nos","ons","unos","jos","juns","nsu","uso","nus","osu","nsus"]},"83":{"input":[1,2,5,7],"tlp":["sau",22053],"trp":["noas",7379],"tlw":["sau",21799],"trw":["usa",4343],"lp":["sau","asu","aju","ajun","soan","suna","sona","aus","ajo","anus","asun","ason","saju"],"rp":["noas","usa","joa","uas","usoa","nasu","ouas"]},"84":{"input":[3,5,7],"tlp":["eu",42582],"trp":["une",33961],"tlw":["eu",16688],"trw":["n-o",3069],"lp":["eu","enu","eun","enun","eno"],"rp":["une","n-","u-","nu-","-u","-un","ne-","ue","n-o","neo","one","uneo","-n","ony","une-"]},"85":{"input":[1,3,5,7],"tlp":["eau",24032],"trp":["n-a",17307],"trw":["n-a",2864],"lp":["eau","eaun","euna","que","xu","exu","e-au","eaua","xua","exua"],"rp":["n-a","-au","unea","ne-a","oane","neau","n-au","uque","ux","onea"]},"86":{"input":[2,3,5,7],"tlp":["du",82602],"trp":["use",37853],"tlw":["dus",2022],"trw":["unde",9415],"lp":["du","dou","dus","duse","eus","du-","esu","du-s"],"rp":["use","und","unde","ud","ndu","uses","unse","ond","u-s","ndo","ndu-","ude"]},"87":{"input":[1,2,3,5,7],"tlw":["doua",9678],"trw":["n-as",944],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["tu",124429],"trp":["ut",118950],"tlw":["tu",6631],"trw":["unt",87],"lp":["tu","bu","gu","bo","tun","bun","totu"],"rp":["ut","ng","unt","ob","ub","ntu","otu","nto","ont","ung","ngu","utu","ug"]},"89":{"input":[1,4,5,7],"tlp":["atu",33704],"trp":["uta",13540],"tlw":["buna",3510],"trw":["nota",476],"lp":["atu","fu","gan","atun","ang","aut","anga","tau","buna","antu","fun","gatu","tua"],"rp":["uta","nga","uf","uat","ntoa","uga","oba"]},"90":{"input":[2,4,5,7],"tlp":["cu",251869],"trp":["uc",41800],"tlw":["cu",107724],"trw":["joc",840],"lp":["cu","con","cut","sunt","scu","cun","tunc","stu","cont","cuno","sub","cons","scut","tus"],"rp":["uc","unc","ocu","onst","ust","nost"]},"91":{"input":[1,2,4,5,7],"tlw":["facut",6146],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",139075],"trp":["ur",142738],"tlw":["greu",2486],"trw":["unor",2218],"lp":["ru","tru","ebu","tur","gur","rebu","reu","rob","run","r-u","tr-u","r-un","eru"],"rp":["ur","ntru","ute","ntr-","orb","oru","ngur"]},"93":{"input":[1,3,4,5,7],"tlw":["erau",9639],"trw":["n-ar",2738],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["trecut",2015],"trw":["usor",3025],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["fusese",5088],"trw":["noastra",2596],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["il",100912],"trw":["il",17933],"lp":[],"rp":["il","lo","li","oi","ol","io","olo","ilo","ili","oli","ll","iil","ill","lio","lii","oil","ilio","iol","lli","iilo"]},"97":{"input":[1,6,7],"tlp":["al",157962],"trp":["la",223904],"tlw":["al",17061],"trw":["la",103939],"lp":["al","ala","ali","zil","zo","alal"],"rp":["la","ioa","lal","ial","ila","oz","oia","loa","ozi","oal","ola","lia","iala","ilal"]},"98":{"input":[2,6,7],"tlp":["sol",5524],"trp":["osi",9398],"tlw":["sol",477],"trw":["ok",68],"lp":["sol","sl","sil","sosi","sio","sili"],"rp":["osi","los","olos","iso","ios","losi","ko","ls","lis","osii","ois","kil","kilo","iko"]},"99":{"input":[1,2,6,7],"tlp":["sal",9118],"trp":["las",16180],"tlw":["sala",1335],"trw":["lasa",3143],"lp":["sal","sla","sala","sola","alis","salo","wil","sall","als","sali","will"],"rp":["las","lasa","lasi","isoa","ioas","olas","llas","law","low"]},"100":{"input":[3,6,7],"tlp":["el",182428],"trp":["le",217374],"tlw":["el",30829],"trw":["le",16173],"lp":["el","ele","elo","eli","e-i","eil"],"rp":["le","ile","i-","-i","-l","l-","oie","lie","iile","lel","le-","ole","i-l","i-o"]},"101":{"input":[1,3,6,7],"tlp":["ale",32820],"trp":["i-a",24465],"tlw":["ale",8429],"trw":["i-a",2798],"lp":["ale","a-i","ela","a-l","eal","zile","eala","e-ai","elea","elal","eila","alea","zel","eali"],"rp":["i-a","-ai","lea","l-a","le-a","i-ai"]},"102":{"input":[2,3,6,7],"tlp":["si-",10078],"trp":["-si",12424],"tlw":["doi",4637],"trw":["ideile",361],"lp":["si-","doi","sel","eles","del","sele","delo","si-l","dio","si-i","esel"],"rp":["-si","les","iod","ld","lose","odi","old","lid","i-s"]},"103":{"input":[1,2,3,6,7],"tlw":["sa-i",9425],"trw":["lase",794],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["vo",55302],"trp":["lt",70688],"tlw":["voi",6798],"trw":["lovi",446],"lp":["vo","gi","voi","toti","til","gl","tio"],"rp":["lt","ig","oti","ov","lti","lit","ito","ovi","olit","liti","lov","lig","lv"]},"105":{"input":[1,4,6,7],"tlp":["alt",31331],"trp":["lta",15965],"tlw":["afla",4776],"lp":["alt","fl","tal","fla","afl","afla","alta","voa","alti","val","avo","fol","folo","alat"],"rp":["lta","lat","lalt","iga","lita","lati"]},"106":{"input":[2,4,6,7],"tlp":["col",18912],"trp":["loc",16849],"tlw":["colt",621],"trw":["loc",5973],"lp":["col","cl","sig","cio","colo","cli","voc","cil","soci","soti"],"rp":["loc","icio","lic","osti","oci","ico","ltc","lc","osit","isto"]},"107":{"input":[1,2,4,6,7],"tlw":["acolo",7879],"trw":["lasat",1202],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["tel",33441],"trp":["ori",36339],"tlw":["vor",6208],"trw":["lor",11526],"lp":["tel","tele","vor","ril","rile","rel","tori","rio","elor","rele","evo","egi","erio","evoi"],"rp":["ori","lor","leg","lte","ilor","-ti"]},"109":{"input":[1,3,4,6,7],"tlw":["fel",7250],"trw":["i-ar",1059],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["cel",9164],"trw":["orice",4726],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["astfel",4825],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ul",257995],"trw":["lui",42818],"lp":[],"rp":["ul","lu","ui","lui","iu","nul","ulu","ului","lin","lul","inu","nui","uni","noi","iul","lun","iun","ho","unul","unui"]},"113":{"input":[1,5,6,7],"tlp":["zu",17502],"trp":["uz",18000],"tlw":["ziua",2202],"trw":["lua",3594],"lp":["zu","azu","auz","alu","anul","auzi","ziu","zul","alul"],"rp":["uz","lan","lua","nal","uzi","uia","inua","uza","inal","ula","onal"]},"114":{"input":[2,5,6,7],"tlp":["sul",13027],"trp":["usi",13886],"tlw":["solul",203],"trw":["insusi",1408],"lp":["sul","solu","snui","siu","siun","sulu"],"rp":["usi","insu","jul","onsi","jl","ijl","jlo","ijlo","nsul","isnu","lus","ius","isu","niso"]},"115":{"input":[1,2,5,6,7],"tlw":["salon",359],"trw":["nasul",473],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["elu",10235],"trp":["uie",12750],"trw":["nu-i",6710],"lp":["elu","elul","elui","enul"],"rp":["uie","u-i","nu-i","nel","unei","ule","iune","nele","nile","nule","ley","u-l","len","nu-l","inel","unel"]},"117":{"input":[1,3,5,6,7],"tlw":["auzea",594],"trw":["n-ai",1802],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["seldon",899],"trw":["nu-si",1718],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["daneel",945],"trw":["indoiala",1534],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["tul",54201],"trp":["ult",36980],"tlw":["totul",5658],"trw":["lungul",1158],"lp":["tul","bui","bil","tiu","bl","gin","tinu"],"rp":["ult","ing","uti","uit","into","ntul","utin","igu","ingu","uv","otul","itu","ulti"]},"121":{"input":[1,4,5,6,7],"tlw":["vazut",3775],"trw":["langa",4102],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["stiu",5950],"trw":["ochii",6711],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["atunci",10484],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["trebuie",10427],"trw":["intr-o",7901],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["vorba",4095],"trw":["legatura",2214],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["sigur",2888],"trw":["lucru",5287],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["singura",2707],"trw":["niciodata",5038],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",639],"trw":["p",1061],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",93968],"trp":["pa",161658],"tlw":["apa",3245],"trw":["pa",666],"lp":["ap","apa"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",103043],"trp":["ps",4877],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["asp",12078],"trp":["pas",8637],"tlw":["apasa",575],"trw":["pas",1350],"lp":["asp","spa","sap","apas","aspa","aps","apsa","sapa"],"rp":["pas","pasa","psa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",52344],"trp":["pe",216440],"trw":["pe",110407],"lp":["ep","epe"],"rp":["pe"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",10151],"trp":["pea",1505],"tlw":["ape",142],"lp":["ape","epa","xp","exp","eap","xpe","expe","eapa","epea","a'","apea"],"rp":["pea","'a","pape"]},"134":{"input":[2,3,8],"tlp":["esp",14229],"trp":["pes",7355],"tlw":["spe",120],"trw":["pese",104],"lp":["esp","desp","spe","dep","eped","espe","d'","sep","depe","eps","edep","deps"],"rp":["pes","ped","pede","pse","pese","pses","'d"]},"135":{"input":[1,2,3,8],"tlp":["depa",6164],"trp":["pad",2363],"tlw":["da'",470],"trw":["pedeapsa",277],"lp":["depa","aspe","epas","d'a","dap","apad","adap","da'","espa","deap","spad","sepa","xped","eaps","dape","apes"],"rp":["pad","pada","pase","psea"]},"136":{"input":[4,8],"trp":["pt",44775],"lp":[],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",16520],"trp":["pat",19529],"tlw":["fapt",2580],"trw":["pat",1592],"lp":["apt","fap","fapt","apta","tap","apat","tapa"],"rp":["pat","pta","ptat","pata"]},"138":{"input":[2,4,8],"tlp":["tsp",179],"trp":["pc",487],"lp":["tsp"],"rp":["pc","pts","ptsp"]},"139":{"input":[1,2,4,8],"tlp":["cap",19242],"trp":["pac",5660],"tlw":["cap",4694],"trw":["pacat",460],"lp":["cap","spat","capa","stap","sapt","scap","apac","apc","capc","apca"],"rp":["pac","past","paca","ptas","pca"]},"140":{"input":[3,4,8],"tlp":["ept",20779],"trp":["pr",175984],"tlw":["trepte",244],"trw":["perete",698],"lp":["ept","rep","rept","tep","tept","repe","rp","epte","rpr","epet","epr"],"rp":["pr","pre","per","pte","pet","pere","petr","pret","pete"]},"141":{"input":[1,3,4,8],"tlp":["apr",12184],"trp":["par",57159],"tlw":["repeta",897],"trw":["prea",8562],"lp":["apr","epta","apar","epar","apte","eapt","rap","reap","xper","xpr"],"rp":["par","part","pra","pare","prea","para","patr","pate","pera","ptea"]},"142":{"input":[2,3,4,8],"tlp":["spr",29330],"trp":["pest",6829],"tlw":["spre",12456],"trw":["peste",6431],"lp":["spr","spre","cep","espr","drep","step","spec","sper","resp","cept","cepe","ccep","spet","ecep"],"rp":["pest","pres","pec","pers","pect","prec"]},"143":{"input":[1,2,3,4,8],"tlw":["departe",3651],"trw":["parca",3176],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mp",55904],"trw":["m",611],"lp":[],"rp":["mp","mn","mm","pn","nm"]},"145":{"input":[1,5,8],"tlp":["am",164027],"trp":["ma",278091],"tlw":["am",32990],"trw":["ma",23028],"lp":["am","ama","aman","amn","amp","amna","apan"],"rp":["ma","man","pan","mana","pana","mna","pam","pama","mpa","mam","nap","mama","mpan"]},"146":{"input":[2,5,8],"tlp":["sm",3780],"trp":["nsp",2667],"lp":["sm"],"rp":["nsp","ms","nsm","jm"]},"147":{"input":[1,2,5,8],"tlp":["amas",5157],"trp":["mas",15541],"tlw":["sam",974],"trw":["masa",3415],"lp":["amas","sam","sma","sman","wm","wma","wman","ansp","ansm","ajm","ajma","asm","asam"],"rp":["mas","masa","maj","nspa","jma","paj","msw"]},"148":{"input":[3,5,8],"tlp":["em",62631],"trp":["me",133398],"tlw":["emmy",120],"trw":["pen",562],"lp":["em","eme","emn","emen","emp","emne","epen"],"rp":["me","pen","men","mne","mene","mpe","mem","nem","nep","my","mey","meye","meme"]},"149":{"input":[1,3,5,8],"tlp":["ame",19413],"trp":["mea",17220],"tlw":["amy",498],"trw":["mea",8040],"lp":["ame","eam","amen","eama","ema","emna","eamn","emea","eman","amne","xem","exem","xemp"],"rp":["mea","mnea","mane","max","pane","neam","mame"]},"150":{"input":[2,3,5,8],"tlp":["sem",11901],"trp":["med",6644],"tlw":["semn",1590],"trw":["mese",274],"lp":["sem","semn","seme","dem","dm","edem","demn","esem"],"rp":["med","mes","ndep","nsem","mese","mens","md","mped","mej","mejd","ndem","pend"]},"151":{"input":[1,2,3,5,8],"tlw":["seama",5586],"trw":["newman",723],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",1176],"trp":["mb",18560],"lp":["tm"],"rp":["mb","mt","mpt","ntm"]},"153":{"input":[1,4,5,8],"tlp":["tam",11107],"trp":["mat",12972],"tlw":["tam",65],"trw":["pamant",2358],"lp":["tam","tamp","amb","fam","tama","apab","atm","amba"],"rp":["mat","ntam","mba","mant","mata","ptam","pant","mnat","pab","mbat","mta","ptan"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",3183],"trp":["mc",201],"lp":["cm"],"rp":["mc","mcn"]},"155":{"input":[1,2,4,5,8],"tlw":["cam",2462],"trw":["manca",317],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",42362],"trp":["pent",38307],"tlw":["tem",615],"trw":["merry",352],"lp":["rm","rem","tem","erm","reme","rme","term","trem"],"rp":["pent","mer","ment","mbr","mpr","mpre","met","mte","mbe","mere","ntem","perm"]},"157":{"input":[1,3,4,5,8],"tlw":["eram",2315],"trw":["mare",9405],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["cemp",522],"trw":["mers",716],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["camera",2871],"trw":["macar",2850],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"|","trp":["pi",47365],"trw":["pi",147],"lp":[],"rp":["pi","ip","pii","ipi","pip","piii","ipp","ppi","pipp","ippi","ipii"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",2966],"trp":["ipa",7902],"trw":["pai",991],"lp":["api","zap","zapa","aip"],"rp":["ipa","pia","pai","paz","paza","pipa","paia","ipai"]},"162":{"input":[2,6,8],"tlp":["spi",4099],"trp":["isp",6275],"lp":["spi","sip","sipi"],"rp":["isp","ips","psi","ipsi","pis","isip","pisi"]},"163":{"input":[1,2,6,8],"tlp":["spai",782],"trp":["ispa",2264],"trw":["pasi",1282],"lp":["spai","wisp","aisp"],"rp":["ispa","pasi","ipsa","pais","pias"]},"164":{"input":[3,6,8],"tlp":["epi",929],"trp":["pie",11267],"lp":["epi"],"rp":["pie","ipe","iep","piep","pipe","pei","ipei"]},"165":{"input":[1,3,6,8],"tlp":["epez",640],"trp":["pez",756],"tlw":["apei",412],"trw":["paie",113],"lp":["epez","apei"],"rp":["pez","pezi","paie","piez"]},"166":{"input":[2,3,6,8],"tlp":["disp",4472],"trp":["pid",1040],"trw":["piese",120],"lp":["disp","espi","depi","epis","eisp","dip","edip","epsi"],"rp":["pid","pied","ipse","ispe","pedi","pies","peis","pide","psei"]},"167":{"input":[1,2,3,6,8],"tlw":["zapada",443],"trw":["piesa",219],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2064],"trp":["pit",3627],"tlw":["tip",589],"lp":["tip","tipi"],"rp":["pit","pti","ptii","ipit","piti","ipt","piv","ptit"]},"169":{"input":[1,4,6,8],"tlp":["apit",1785],"trp":["piat",2890],"tlw":["tipa",384],"trw":["piata",623],"lp":["apit","tipa","fip","fipt","tapi"],"rp":["piat","pita","pati","pav","ptia","ipat","pavi","ptz"]},"170":{"input":[2,4,6,8],"tlp":["cip",1891],"trp":["pic",7270],"tlw":["tipic",72],"trw":["pic",662],"lp":["cip","spit","cipi","cisp","scip","spic"],"rp":["pic","pici","psit","pist","pci","pisc","icip","pict","ipic"]},"171":{"input":[1,2,4,6,8],"tlw":["twisp",358],"trw":["pisica",266],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",1804],"trp":["pri",68428],"trw":["privi",2867],"lp":["rip","rpri","epti","ripi","tipe"],"rp":["pri","priv","peri","pier","prie","pir","iept","piri","iper","prii","prit","piet","ptie","prir","peti"]},"173":{"input":[1,3,4,6,8],"tlw":["aparitia",471],"trw":["privirea",2009],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["spirit",395],"trw":["priveste",1176],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["expresie",605],"trw":["paris",654],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",133805],"trw":["imi",6836],"lp":[],"rp":["mi","im","min","imp","imi","nim","nimi","pin","him","hip","mii","mni","inim","mpi","imin","mini","impi","mpin","imii","hm"]},"177":{"input":[1,5,6,8],"tlp":["ami",12341],"trp":["mai",98477],"tlw":["amiaza",160],"trw":["mai",80029],"lp":["ami","amin","zam","anim","aim","aima"],"rp":["mai","ima","mina","main","nima","pina","mani","inap","pani","iam","impa","mia","miaz","hipa"]},"178":{"input":[2,5,6,8],"tlp":["sim",14730],"trp":["mis",9725],"tlw":["sim",169],"trw":["nisip",353],"lp":["sim","simp","smi","spin","smin","smis"],"rp":["mis","mij","imis","insp","mnis","psih","misi","pins","ism","nsmi","jim","nism","nspi","mik"]},"179":{"input":[1,2,5,6,8],"tlw":["spaima",491],"trw":["masina",2136],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emei",6102],"trp":["ime",17305],"trw":["mine",8864],"lp":["emei","emi","enim","emni","epin"],"rp":["ime","meni","mine","mei","imen","nime","mie","meie","impe","hem","mpie","hme","nemi","mnei","hmey"]},"181":{"input":[1,3,5,6,8],"tlw":["examina",267],"trw":["maine",960],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["depinde",317],"trw":["mesei",432],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["asemeni",170],"trw":["inseamna",2064],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",26063],"trp":["mit",11574],"tlw":["timp",11216],"trw":["mintii",377],"lp":["tim","timp","timi","bim"],"rp":["mit","mint","imt","imb","mti","imti","himb","imit","ntim","mbi","mv","mtit","imbi","miti","mbin","mnit"]},"185":{"input":[1,4,5,6,8],"tlw":["zambi",959],"trw":["pamint",327],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["simti",2661],"trw":["nimic",9112],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["stiam",937],"trw":["mica",2010],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["vreme",4271],"trw":["prin",13288],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["femeie",2003],"trw":["prima",3179],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["trimis",946],"trw":["incepe",1001],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["dimineata",2070],"trw":["imediat",2866],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["po",78466],"trw":["po",250],"lp":[],"rp":["po","op","opo","pop","popo","ppo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",15763],"trp":["poa",16012],"lp":["apo","apoa"],"rp":["poa","oap","opa","oapa","opoa"]},"194":{"input":[2,7,8],"tlp":["spo",1393],"trp":["pos",4845],"lp":["spo","sop"],"rp":["pos","osp","ppos","poso"]},"195":{"input":[1,2,7,8],"tlp":["apos",506],"trp":["oasp",820],"lp":["apos","soap"],"rp":["oasp","pow"]},"196":{"input":[3,7,8],"tlp":["eop",544],"trp":["ope",5829],"trw":["pe-o",124],"lp":["eop","epo","eopo"],"rp":["ope","pe-","poe","o'","pe-o","oep","-p","-po"]},"197":{"input":[1,3,7,8],"tlp":["eopa",329],"trp":["oape",5724],"lp":["eopa","eoap"],"rp":["oape","pa-","pa-a","pe-a","-ap","-apo"]},"198":{"input":[2,3,7,8],"tlp":["deop",448],"trp":["pod",1174],"trw":["pod",151],"lp":["deop","espo","depo"],"rp":["pod","pode","oped","o'd","'do","o'do","pose","podo","ospe"]},"199":{"input":[1,2,3,7,8],"trw":["podea",484],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",280],"trp":["pot",14753],"trw":["pot",6200],"lp":["top","topo"],"rp":["pot","opt","pto","poto","opot"]},"201":{"input":[1,4,7,8],"trp":["poat",13885],"trw":["poata",1395],"lp":[],"rp":["poat","oapt","pof","pag","poft","opat","opag","paga"]},"202":{"input":[2,4,7,8],"tlp":["cop",12351],"trp":["post",1578],"tlw":["scop",481],"trw":["post",334],"lp":["cop","scop","sopt","stop"],"rp":["post","poc","opts"]},"203":{"input":[1,2,4,7,8],"tlw":["soapta",372],"trw":["ostap",497],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",9845],"trp":["pro",33227],"trw":["pro",584],"lp":["rop","ropr","torp","ropo"],"rp":["pro","por","prop","port","opr","oper","potr","orp","preg","opor","prot","preo","opre","pote","prog","poet"]},"205":{"input":[1,3,4,7,8],"tlw":["aproape",5419],"trw":["poate",12490],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["corp",515],"trw":["prost",652],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["castorp",852],"trw":["profesor",467],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["pu",141518],"trw":["om",4434],"lp":[],"rp":["pu","um","mu","om","up","mo","pun","num","omn","mun","mnu","umn","omnu","mpo","mpu","mom","omu","upu","omp","umu"]},"209":{"input":[1,5,7,8],"tlp":["apu",6837],"trp":["upa",22884],"trw":["puna",1094],"lp":["apu","anum","amu"],"rp":["upa","uma","oam","numa","moa","oma","oamn","noap","puna","oman","manu","napo","uman","umoa","ompa","mau","umpa"]},"210":{"input":[2,5,7,8],"tlp":["spu",46684],"trp":["pus",30635],"tlw":["spus",7687],"trw":["pus",1846],"lp":["spu","spun","spus","sup","supu","smu","sum","som","somn"],"rp":["pus","puns","mos","jum","mus","umos","mons","usm","opus","mpos","upus"]},"211":{"input":[1,2,5,7,8],"tlw":["spuna",1588],"trw":["pusa",270],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["epu",10511],"trp":["ume",17000],"trw":["meu",6128],"lp":["epu","emu","emo","e-m"],"rp":["ume","pune","-m","m-","ome","omen","umne","nume","meu","mome","u-m","nu-m","upe","umen","unem","pome"]},"213":{"input":[1,3,5,7,8],"tlw":["anume",1489],"trw":["m-am",5385],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["spuse",11543],"trw":["mod",2741],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["dupa",19290],"trw":["m-as",588],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["gm",4573],"trp":["put",44011],"tlw":["tom",831],"trw":["putut",3710],"lp":["gm","gmu","gmun","tum","tom","gom","gomo"],"rp":["put","ptu","putu","mot","upt","mpot","umb","pub","munt","omot","nopt","mut","omb"]},"217":{"input":[1,4,5,7,8],"tlw":["fum",415],"trw":["muta",298],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["cum",21263],"trw":["punct",1203],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["acum",14119],"trw":["munca",1233],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["grup",794],"trw":["pentru",38307],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["forma",2036],"trw":["putea",12961],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["drum",2045],"trw":["precum",1277],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["asupra",4961],"trw":["jumatate",2548],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",51269],"trw":["lipi",125],"lp":[],"rp":["pl","poi","pli","opi","lip","pil","pol","poli","opii","opil","plo","ipl","lipi","lop","piil","ilip","ipo","lp","opol","ipil"]},"225":{"input":[1,6,7,8],"tlp":["apoi",14490],"trp":["pla",21202],"tlw":["apoi",11964],"trw":["ploaia",308],"lp":["apoi","apl","alp","apli","alpi","aipo"],"rp":["pla","lipa","pal","poz","pozi","opia","pala","ipal","pali","ploa","pila","lap","poal","ploz"]},"226":{"input":[2,6,7,8],"tlp":["spl",128],"trp":["posi",2885],"trw":["lipsi",96],"lp":["spl","spio"],"rp":["posi","lips","ispo","oisp","ipos"]},"227":{"input":[1,2,6,7,8],"tlw":["spala",165],"trw":["lipsa",702],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["epl",2223],"trp":["ple",12048],"trw":["piele",586],"lp":["epl","epli","elep"],"rp":["ple","opie","pel","piel","iple","lep","lipe","pele","lope","pile","pelo","ipel","pleo","ople","lpe","opei","i-p"]},"229":{"input":[1,3,6,7,8],"tlw":["apele",237],"trw":["pielea",663],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spele",82],"trw":["leopold",96],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["deplasa",142],"trw":["pilda",452],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topi",144],"trp":["poti",3337],"tlw":["topi",76],"trw":["poti",3337],"lp":["topi","gip","gipt"],"rp":["poti","pov","opti","plit","pito","ptil","ipot","opit","poit"]},"233":{"input":[1,4,6,7,8],"tlw":["filip",379],"trw":["pozitia",504],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"tlw":["copii",1305],"trw":["lipsit",548],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["clipa",4697],"trw":["politica",737],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"trw":["opri",1970],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["apropie",1375],"trw":["propria",852],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["clipe",748],"trw":["plece",755],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["spatele",2337],"trw":["picioare",2645],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["mul",40796],"trw":["omul",2345],"lp":[],"rp":["mul","pul","mpl","lum","umi","mnul","lumi","impo","mil","umin","plu","impu","impl","plin","mpul","lim","mili","imu","mplu","imul"],"special":"enter"},"241":{"input":[1,5,6,7,8],"trw":["numai",8412],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["simplu",2223],"trw":["plus",1041],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["simpla",704],"trw":["psihanaliza",445],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mele",3338],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["exemplu",767],"trw":["oameni",4178],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["domnule",3620],"trw":["limpede",719],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["sa-mi",4566],"trw":["mesajul",279],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["timpul",4000],"trw":["mult",13114],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["faptul",2300],"trw":["multa",2401],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["chipul",1320],"trw":["mijlocul",1212],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["capul",3813],"trw":["placut",782],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["trupul",1201],"trw":["multe",4923],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["ti-am",981],"trw":["probabil",2719],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["sigmund",4378],"trw":["inceput",3590],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["dumneavoastra",3116],"trw":["pardaillan",1106],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/sv-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/sv-keymap.json index 7f37672f41..0e62a33d0f 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/sv-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/sv-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",697],"tlw":["a",9529],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",67011],"tlw":["s",3622],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",278948],"tlw":["sa",80180],"lp":["sa","as","ssa","ass","wa","assa","asa","was","sas","aw","ww","awa","sw","www","ws","swa","swas","wass","sass","saa"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",6371],"tlw":["e",4153],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ex",11230],"tlw":["ae",267],"lp":["ex","ea","ax","ae","xe","xa","exe","exa","axe","axa"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",849873],"tlw":["de",70970],"lp":["de","ed","se","es","des","dd","ess","sed","dde","ds","sse","dess","ede","edd","esse","edde","ese","see","eds","ses"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",298347],"tlw":["da",17349],"lp":["ad","ade","da","eda","sad","ada","seda","sade","ades","add","sada","dda","dad","we","essa","dade","ase","sex","ew","esa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",430036],"tlw":["t",873],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",420129],"tlw":["att",208516],"lp":["at","ta","att","fa","ft","tta","atta","af","ff","ata","tat","fat","fatt","aff","ffa","affa","aft","tf","fta","tfa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",283811],"tlw":["c",718],"lp":["st","ts","sst","sc","ct","cc","tst","tc","tts","cts","cs","sts","tss","css","stst","stt"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",95542],"tlw":["satt",11381],"lp":["sta","ast","sat","ac","satt","tsa","asta","ats","ca","tsat","tac","fas","fast","stat","tas","ssta","stas","tast","sats","stac"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["et",462362],"tlw":["ett",56585],"lp":["et","er","te","re","ter","rt","tr","ett","tte","rr","tre","ete","ret","tet","rre","tter","ert","eter","ere","ttr"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",760793],"tlw":["ar",85841],"lp":["ar","ra","fr","ara","fra","are","era","ef","rat","fte","art","fter","tar","eft","efte","far","tra","ratt","fe","atte"],"rp":[]},"14":{"input":[2,3,4],"tlp":["det",223222],"tlw":["det",200915],"lp":["det","rs","dr","rd","der","ste","rde","rst","ers","est","res","red","str","ser","ec","ce","set","ster","rts","ters"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["dar",44203],"tlw":["dar",26310],"lp":["dar","rad","dra","tad","tade","rade","aste","rsta","ars","ttad","ras","erad","ard","star","sar","esta","reda","dare","stra","dera"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",152794],"trw":["n",1184],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",778026],"trp":["na",315512],"tlw":["an",15455],"trw":["nan",1595],"lp":["an","ann","anna","ana","anan","aan","aana","aq"],"rp":["na","nna","nan","nnan","nq","nana"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sj",21534],"trp":["ns",134271],"trw":["j",959],"lp":["sj","sn","ssn","sjn"],"rp":["ns","nns","nss","nj","jn","js"]},"19":{"input":[1,2,5],"tlp":["ans",66128],"trp":["ja",200724],"tlw":["san",954],"trw":["ja",6931],"lp":["ans","san","sja","sna","anns","sann","ssna","ansa","anss","aj","ssan"],"rp":["ja","nas","nsa","jan","nnas","jans","jana","nja","nans"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",686772],"trp":["ne",122568],"tlw":["en",141247],"trw":["ny",2216],"lp":["en","enn","enne","ene","een","ey","enen","enny"],"rp":["ne","nne","nen","ny","yn","nnen","ye","yne","nny","ynn","ynen","ynne"]},"21":{"input":[1,3,5],"tlp":["ena",17736],"trp":["ya",3990],"tlw":["ena",2504],"trw":["nya",3694],"lp":["ena","anne","ane","enna","ay","aen","any","anen","xan","exan","ean","xen","xn","xna","enq"],"rp":["ya","nya","yx","yea","nea"]},"22":{"input":[2,3,5],"tlp":["den",113774],"trp":["nd",217577],"tlw":["den",78914],"trw":["nej",5908],"lp":["den","sen","ens","ej","end","sy","dn","ende","dj"],"rp":["nd","nde","je","ys","nes","nnes","yd","nden","nej","jd","nse"]},"23":{"input":[1,2,3,5],"tlp":["and",132309],"trp":["nda",24974],"tlw":["sedan",13315],"trw":["new",1697],"lp":["and","ande","dan","edan","anda","sena","adan","enda","aden","anad","ensa","enas","aend","anse"],"rp":["nda","nad","nade","jad","jade","ndan"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",13062],"trp":["nt",180386],"tlw":["b",734],"lp":["bb","tn","ttn","bt","bbt","tb"],"rp":["nt","nb","ntn","ntb"]},"25":{"input":[1,4,5],"tlp":["ba",80692],"trp":["nat",22606],"tlw":["annat",5472],"trw":["nat",1860],"lp":["ba","tan","ant","fan","anta","fann","ab","ban","abb","anf","bat","bba","tna"],"rp":["nat","nta","nf","nnat","nab","nabb","natt"]},"26":{"input":[2,4,5],"tlp":["tj",8505],"trp":["nst",17861],"tlw":["bbc",225],"lp":["tj","bj","bs","stn","sb","sjt","stj","sjtj","tsn","ttj","bc","bbc","stb"],"rp":["nst","nc","jt","nts","jtj","nsc","nstn"]},"27":{"input":[1,2,4,5],"tlp":["stan",20169],"trp":["nast",10284],"tlw":["fanns",8575],"trw":["nastan",4851],"lp":["stan","bas","snab","anst","sant","bast","tja","tans","stna","tjan","bac","can","abs","snac"],"rp":["nast","nsta","jat","nac","jac","ntas"]},"28":{"input":[3,4,5],"tlp":["be",75593],"trp":["nte",109829],"tlw":["be",2398],"trw":["ner",9674],"lp":["be","rn","ten","br","ty","ent","ren","ry","ern","ber","bet","rb"],"rp":["nte","ner","yt","ytt","yr","nner","ntr","net"]},"29":{"input":[1,3,4,5],"tlp":["ran",60950],"trp":["nar",65863],"tlw":["fran",27093],"trw":["nar",38189],"lp":["ran","rna","bar","fran","arn","bara","arna","erna","bra","aran","aren","enar","barn","bera","arb","fy","arbe","beta"],"rp":["nar","nare"]},"30":{"input":[2,3,4,5],"tlp":["rj",17958],"trp":["yc",35067],"tlw":["tyst",1977],"lp":["rj","bes","tyc","sten","tys","tyd","dern","ryc","tryc","best","tyst","rden","rje","cen"],"rp":["yc","nder","ndr","yst","ndet","jer"]},"31":{"input":[1,2,3,4,5],"tlw":["andra",13622],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1872],"trw":["i",182908],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",2800],"trp":["ia",13569],"tlw":["ai",142],"trw":["ia",109],"lp":["ai","za","zi","az","zia","azi","zz","zzi","zza"],"rp":["ia","iz","iza","izz","izza","izi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["sk",180550],"trp":["is",102522],"trw":["is",3657],"lp":["sk","si","ski","sik","sis","ssi","sisk","ssis"],"rp":["is","ik","isk","ks","ki","iss","iks","kis","isi","iki","kisk","kss"]},"35":{"input":[1,2,6],"tlp":["ak",74294],"trp":["ka",235111],"tlw":["ska",12542],"trw":["kaka",73],"lp":["ak","ska","sak","aka","wi","ask","skak","asi","aska","aks","aki"],"rp":["ka","ika","ksa","iska","isa","kas","issa","kak","kaka"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",3018],"trp":["ie",21160],"tlw":["ei",236],"trw":["ie",545],"lp":["ei","eii","eiie"],"rp":["ie","iie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["xi",1347],"trp":["ix",677],"tlw":["xii",198],"trw":["iae",103],"lp":["xi","ez","axi","exi","ezi","ezia","eiz","ze","xii","eza","aie","zie","zzie","eizi"],"rp":["ix","ixa","iae"]},"38":{"input":[2,3,6],"tlp":["di",49953],"trp":["ke",99121],"tlw":["skedde",390],"trw":["ide",614],"lp":["di","ek","ske","sid","dis","disk","sek","edi","esk","dsk","die"],"rp":["ke","id","ide","idi","ike","ise","idd","isse","iske"]},"39":{"input":[1,2,3,6],"tlp":["ake",15029],"trp":["kad",24793],"tlw":["sida",1628],"trw":["kikade",168],"lp":["ake","sake","sida","eka","skad","adi","akad","ekad","dska","xak","exak"],"rp":["kad","kade","ida","isad","idda","kada","kae","ikae","ikad"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",221703],"trp":["it",120245],"tlw":["vi",40006],"trw":["it",2563],"lp":["ti","vi","tv","vit","tit","titt","tvi","vt","tiv","tti","vitt","tivt","viv"],"rp":["it","itt","iv","ivi","iti","ivit","ivt"]},"41":{"input":[1,4,6],"tlp":["va",353292],"trp":["itta",13428],"tlw":["av",76117],"trw":["if",757],"lp":["va","av","fi","ati","tva","vat","vatt","ava","avi","tav","ativ","vita","via","tia","tati"],"rp":["itta","if","iva","ita","ift"]},"42":{"input":[2,4,6],"tlp":["ck",135164],"trp":["kt",95132],"tlw":["sitt",8546],"trw":["its",666],"lp":["ck","sv","vis","sit","cks","ci","sti","sitt","viss","tis","ckt","tisk"],"rp":["kt","ic","ick","kv","ikt","kti","ist","isst"]},"43":{"input":[1,2,4,6],"tlp":["cka",27505],"trp":["kva",11609],"tlw":["fick",13643],"lp":["cka","sva","akt","ack","fic","fick","cksa","akti","tack","visa","acka","avs","tak","akta","fak"],"rp":["kva","icka","kta","kat","ista"]},"44":{"input":[3,4,6],"tlp":["ri",112888],"trp":["ite",18519],"tlw":["vet",9572],"trw":["iver",119],"lp":["ri","ve","ver","ev","vet","rit","eri","rv","riv","rti","rev","eve","erv","vr","rie","tri"],"rp":["ite","ir","ive","ivet"]},"45":{"input":[1,3,4,6],"tlp":["var",212597],"trp":["ifr",5093],"tlw":["var",117709],"lp":["var","vara","ari","vari","ave","arit","vart","rva","varf","vare","arti","rav","ria","veta","fri","eva","rati","riva"],"rp":["ifr","ifra"]},"46":{"input":[2,3,4,6],"tlp":["rk",39613],"trp":["kr",38960],"tlw":["vid",15758],"lp":["rk","tid","cke","vid","rik","cket","skr","erk","dri","verk","sve","ckte","tidi","ris","ekt"],"rp":["kr","kte","ker","ket","kri"]},"47":{"input":[1,2,3,4,6],"tlw":["vad",23975],"trw":["kvar",4233],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",374950],"trw":["in",24928],"lp":[],"rp":["in","ni","inn","nin","hi","nni","ih","nh","hin","ini","nnin","hn","hinn","hnn","inni","ninn","inh","nih","ihi","nihi"]},"49":{"input":[1,5,6],"tlp":["anni",10319],"trp":["ha",405073],"tlw":["ah",652],"trw":["han",135757],"lp":["anni","ani","anin","ah","anh","ain","aha","anha"],"rp":["ha","han","ina","inna","hann","ian","nha","iha","nhan","nina","naz","nazi"]},"50":{"input":[2,5,6],"tlp":["sin",33457],"trp":["nk",33920],"tlw":["sin",19809],"trw":["his",717],"lp":["sin","sh"],"rp":["nk","nsk","kn","ins","nis","nsi","inns","hj","nisk","nnis","his","nsik","nik","kni","kh","kin","nnik","kj"]},"51":{"input":[1,2,5,6],"tlp":["ank",24052],"trp":["kan",66516],"tlw":["sina",10070],"trw":["hans",21333],"lp":["ank","ansk","sina","anka","ansi","zj","akn","akna","wh","skan"],"rp":["kan","hans","kans","nska","kna","kann","nka","hja","has","nika"]},"52":{"input":[3,5,6],"tlp":["eh",10650],"trp":["he",119485],"tlw":["eh",118],"trw":["henne",15609],"lp":["eh","enh","enhe","eni","enin","enni"],"rp":["he","hen","henn","inne","ien","nhe","ine","hy","nie","hey","neh","nneh","hei","nnie"]},"53":{"input":[1,3,5,6],"tlp":["eha",2865],"trp":["neha",654],"tlw":["annie",246],"lp":["eha","anie","ehan","anhe","enha","xin","axin","eani"],"rp":["neha","hea","hay","iane","hae","ynha","hane"]},"54":{"input":[2,3,5,6],"tlp":["dni",7195],"trp":["ken",21208],"tlw":["din",3500],"trw":["hennes",10942],"lp":["dni","dnin","ensk","din","sky","enk","edni","enke"],"rp":["ken","nske","nke","ind","iden","ky","ysk","ndi","isen","yk","iken","inde"]},"55":{"input":[1,2,3,5,6],"tlw":["sidan",3037],"trw":["hade",75973],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",42119],"trp":["int",110738],"tlw":["bit",873],"trw":["hit",1552],"lp":["th","bi","vin","tin","vinn","tni","tnin","thi","vb","ttni"],"rp":["int","nti","hit","ntin","nv","hitt","ib","nit","ith","nnit"]},"57":{"input":[1,4,5,6],"tlp":["van",36400],"trp":["hat",6563],"tlw":["that",4254],"trw":["haft",3590],"lp":["van","fin","finn","vant","tha","that","vann","anv","anva","vana","vani"],"rp":["hat","nva","haf","haft","inf","nvan","hav","hant","nati"]},"58":{"input":[2,4,5,6],"tlp":["ch",278681],"trp":["nkt",10498],"tlw":["this",1111],"trw":["nick",290],"lp":["ch","vj","ckh","sch","stin","ckn","this","svin","tch"],"rp":["nkt","kvin","inst","nic","nick","hist","nsv","nist","nsti","ich","nsiv"]},"59":{"input":[1,2,4,5,6],"tlw":["finns",6035],"trw":["kvinna",2323],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["the",26354],"trp":["inte",103570],"tlw":["the",18662],"trw":["inte",98723],"lp":["the","rin","ven","beh","rh","enti","bri","ther","erh","rhe","rhet","erin"],"rp":["inte","het","hete","her","intr","iten","nhet","hr"]},"61":{"input":[1,3,4,5,6],"tlw":["aven",6437],"trw":["har",67488],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tiden",4874],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["tankte",6155],"trw":["kanner",3200],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",2318],"trw":["o",784],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",454],"trp":["oa",4643],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",206463],"trp":["os",36642],"tlw":["so",864],"trw":["oss",8697],"lp":["so","sso","soo"],"rp":["os","oss","oso","osso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",2187],"trp":["ow",2946],"tlw":["wow",58],"lp":["wo","aso","asso","saso","aos","woo","wow","sao"],"rp":["ow","osa","ossa","ows","owa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",2376],"trp":["oe",2841],"trw":["-",1201],"lp":["eo"],"rp":["oe","-o","-e"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",397],"trp":["ox",399],"lp":["xo","a-"],"rp":["ox","-a","oxe"]},"70":{"input":[2,3,7],"tlp":["do",35235],"trp":["od",40189],"tlw":["dod",2129],"trw":["ode",316],"lp":["do","dod","eso","edo","sod","sode","esso","dode","doe","does","dsso","dods"],"rp":["od","ode","odd","odde","ose","ods","ood","oes"]},"71":{"input":[1,2,3,7],"tlp":["doda",2068],"trp":["oda",5346],"tlw":["doda",1277],"lp":["doda","ado","sado","dow","easo","dosa","wood"],"rp":["oda","oad","odad","owe","oade","odda"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",90775],"trp":["ot",87066],"tlw":["tog",9006],"trw":["otto",257],"lp":["to","go","gt","got","gg","tog","gott","tto","tot","tg","tott"],"rp":["ot","og","ott","ogo","oto","ogt","otto","otog","ogg"]},"73":{"input":[1,4,7],"tlp":["ag",317285],"trp":["of",22543],"tlw":["ga",7744],"trw":["of",10904],"lp":["ag","fo","ga","ago","aga","agot","tag","gat","agg","agt","gga","gatt","fot","agga"],"rp":["of","oft","off","ota","ofta","oga"]},"74":{"input":[2,4,7],"tlp":["sto",40954],"trp":["oc",289376],"tlw":["sot",305],"trw":["ost",163],"lp":["sto","gs","co","gst","toc","stoc","soc","stot","sog","sot","sogo","togs","gts"],"rp":["oc","ost","ots","ogs","ogst","otst","osc"]},"75":{"input":[1,2,4,7],"tlp":["sag",35425],"trp":["osta",1492],"tlw":["sag",13608],"trw":["oftast",553],"lp":["sag","saga","ags","sagt","gas","gast","gsa","sof","aco","soff","asto","sags","gsta","stag","ggas","agas","two"],"rp":["osta","otsa","osca"]},"76":{"input":[3,4,7],"tlp":["ge",165737],"trp":["or",421801],"tlw":["gor",5705],"trw":["or",1673],"lp":["ge","ro","gr","ger","tor","eg","tro","gor","rg","get","ror","ege","gre","rot"],"rp":["or","ort","ore","orr","org","orre"]},"77":{"input":[1,3,4,7],"tlp":["for",206825],"trp":["ora",29125],"tlw":["for",86020],"lp":["for","gar","age","gra","rag","fort","frag","agr","raga","agra","gora","ager","rfo","rfor","fore","arfo","gare","agar","tora"],"rp":["ora"]},"78":{"input":[2,3,4,7],"tlp":["rso",20201],"trp":["ors",42598],"tlw":["stod",7497],"trw":["ord",2401],"lp":["rso","stor","erso","tod","stod","gd","dor","rod","gde","ros","dro","dorr","rost","sor"],"rp":["ors","ord","orde","orst","orso","orts"]},"79":{"input":[1,2,3,4,7],"tlw":["sager",8656],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",215270],"trw":["nu",20433],"lp":[],"rp":["on","un","no","nu","ono","unn","ou","nno","nnu","onn","non","oun","oon","onnu","nou"]},"81":{"input":[1,5,7],"tlp":["au",4722],"trp":["unna",7691],"tlw":["annu",3706],"lp":["au","annu","anno","ano","qu","anu","anua","anon","aou"],"rp":["unna","ua","ona","oan","nua","onna","una","oona","nqu","oann","uan"]},"82":{"input":[2,5,7],"tlp":["son",18325],"trp":["ju",46060],"tlw":["son",1353],"trw":["ju",10993],"lp":["son","su","sson","sju","ssu","sjo","sjon","sjun"],"rp":["ju","jo","us","oj","ons","jus","jon","nsso","uss","jun","jou","noj"]},"83":{"input":[1,2,5,7],"tlp":["aus",996],"trp":["usa",2823],"tlw":["sonja",276],"trw":["usa",1340],"lp":["aus","sona","wou","susa","ajo","ason"],"rp":["usa","oja","now","joa","own","janu","usan","onsa","onja","jua","jusa","ojan","nown","joan"]},"84":{"input":[3,5,7],"tlp":["eno",11644],"trp":["one",21213],"tlw":["eu",207],"trw":["you",1411],"lp":["eno","eu","eun","enou","enu"],"rp":["one","onen","yo","ue","you","unne","oen","une","n-","ony","oy","neu","y-","yon","nony"]},"85":{"input":[1,3,5,7],"tlp":["xu",643],"trp":["ux",939],"tlw":["anyone",56],"lp":["xu","exu","xue","exue","enqu","que","xua","exua","ann-","anyo"],"rp":["ux","uxn","uxna","yxo","uxe","uxen","na-","nna-","oxen","oya"]},"86":{"input":[2,3,5,7],"tlp":["du",45128],"trp":["und",57348],"tlw":["du",40597],"trw":["nojd",538],"lp":["du","essu","sone","dju","esu","don"],"rp":["und","unde","ud","use","ude","jud","ond","ojd","ojde","ndo","jude","nod","usen","oend"]},"87":{"input":[1,2,3,5,7],"tlw":["down",202],"trw":["undan",1747],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",46434],"trp":["ng",167442],"tlw":["but",1259],"trw":["ut",23705],"lp":["bo","gon","tu","gn","ton","tun","gu","bu"],"rp":["ng","ut","ob","ung","ont","ug","ogon","ngt","unt","obb","uto","nog"]},"89":{"input":[1,4,5,7],"tlp":["ang",59439],"trp":["nag",48054],"tlw":["gang",6284],"trw":["nagot",17486],"lp":["ang","gan","agon","gang","anga","fu","gna","fon","angt","anfo","fun","atu"],"rp":["nag","nago","nga","uta","utan","nfo","natu","uf"]},"90":{"input":[2,4,5,7],"tlp":["gj",14385],"trp":["ust",11850],"tlw":["tjugo",984],"trw":["just",6345],"lp":["gj","gjo","stu","sut","stun","ssut","suto","gons","ston","bjo"],"rp":["ust","job","onst","just","ngs","jobb","uc","uts","jut","jug"]},"91":{"input":[1,2,4,5,7],"tlw":["sang",726],"trw":["jag",133333],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",96318],"trp":["nge",54194],"tlw":["bort",5520],"trw":["ur",6494],"lp":["gen","ru","bor","geno","run","bort","bro","egen","gent","tur"],"rp":["nge","ur","ngen","yg","ngr","ute","nor","orn","nger","unge"]},"93":{"input":[1,3,4,5,7],"tlw":["gangen",3207],"trw":["nagra",10760],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gjorde",8777],"trw":["under",14292],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["borjade",6021],"trw":["undrade",1668],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",353262],"trw":["ol",691],"lp":[],"rp":["ll","li","il","ill","ol","lo","io","oli","oll","lli","ili","lil","lill","olo","illi","ilo","llo","oi","lio","ool"]},"97":{"input":[1,6,7],"tlp":["al",238639],"trp":["la",255368],"tlw":["alla",16475],"trw":["lilla",2283],"lp":["al","all","alla","ala","ali","alli","zl","zla","zo"],"rp":["la","lla","illa","ola","ial","lia","ila","olla","ilia","oal","oz"]},"98":{"input":[2,6,7],"tlp":["sl",40951],"trp":["ko",98099],"tlw":["sol",152],"trw":["loss",451],"lp":["sl","sok","sko","slo","skil","sli"],"rp":["ko","kl","ls","ok","lk","lik","kli","lls","lis","kil","ilk","olis","ills","kol"]},"99":{"input":[1,2,6,7],"tlp":["sla",15876],"trp":["kla",20340],"tlw":["alls",1882],"trw":["lika",4448],"lp":["sla","als","sal","ako","skal","alls","soka","alsk","wal"],"rp":["kla","las","kal","kall","lika","oka","lsa","lska","llsa","lak","lka"]},"100":{"input":[3,6,7],"tlp":["el",123518],"trp":["le",182809],"tlw":["el",140],"trw":["le",410],"lp":["el","ell","elle","ele","eli","elo","elie"],"rp":["le","lle","ille","ile","olle","ole","lie","iel","lee","iell","lei","ilie","leo"]},"101":{"input":[1,3,6,7],"tlp":["ela",19365],"trp":["lex",1360],"tlw":["alex",558],"trw":["ozzie",67],"lp":["ela","alle","ale","ella","alex","ael","xl","axl","xla","axla","alie","xel","axel","eal","zoe","elal"],"rp":["lex","lexa","lea","oale"]},"102":{"input":[2,3,6,7],"tlp":["del",18169],"trp":["ld",45006],"tlw":["del",4570],"trw":["ledde",906],"lp":["del","els","dl","else","dli","dele"],"rp":["ld","lde","lld","led","lse","llde","lke","oke","ild","ilke","les","kel","lise","lek"]},"103":{"input":[1,2,3,6,7],"tlw":["alldeles",2595],"trw":["lade",1957],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["til",104652],"trp":["ig",244414],"tlw":["till",78901],"trw":["liv",4044],"lp":["til","till","gi","vil","vill","tio","tig","gl","tl"],"rp":["ig","lig","lt","ov","igt","llt","ligt","lv","lit","liv","log"]},"105":{"input":[1,4,6,7],"tlp":["tal",36626],"trp":["lat",26260],"tlw":["allt",11228],"trw":["lag",5318],"lp":["tal","allt","val","fl","alv","vag","tall","fal","fol","fall","atio","tala","alt","gla"],"rp":["lat","lag","iga","liga","ova","lva"]},"106":{"input":[2,4,6,7],"tlp":["sig",64325],"trp":["ock",24775],"tlw":["sig",62876],"trw":["likt",416],"lp":["sig","gic","gick","vilk","sokt","sov","ckl"],"rp":["ock","ocks","lic","ktig","lick","klig","okt","loc","lock","lst","kov","lts","llts"]},"107":{"input":[1,2,4,6,7],"tlw":["alltsa",3917],"trw":["ocksa",11852],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rl",28320],"trp":["ler",39552],"tlw":["eller",21635],"trw":["over",17755],"lp":["rl","rig","rli","elt","rlig","tel","rol","erl","rige"],"rp":["ler","ige","ller","ove","over","lev","lige","let","lite","llet","lir"]},"109":{"input":[1,3,4,6,7],"tlw":["varfor",5432],"trw":["later",1516],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["dig",9388],"trw":["kort",3076],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["aldrig",8974],"trw":["klart",1941],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",156427],"trw":["hon",71785],"lp":[],"rp":["ho","hon","ul","ull","hu","lu","hono","ion","nl","lin","nli","hol","ln","holl","oh","iho","uni","hun","lun","ino"]},"113":{"input":[1,5,6,7],"tlp":["anl",7509],"trp":["lan",56925],"tlw":["quinn",114],"trw":["halla",3206],"lp":["anl","anli","alin","alln","alan"],"rp":["lan","hal","hall","llan","nal","oha","ohan","ula","nali","olan","lina","ulla","lna","nla","inal"]},"114":{"input":[2,5,6,7],"tlp":["sku",43264],"trp":["ku",78375],"tlw":["skull",1127],"trw":["hos",4276],"lp":["sku","skul","slu"],"rp":["ku","kul","kull","kun","lj","uk","kon","hus","ilj","juk","kunn","olj","jl","ojl","jli","ojli","hos"]},"115":{"input":[1,2,5,6,7],"tlw":["skolan",1295],"trw":["kunna",5127],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eho",7167],"trp":["ulle",40111],"tlw":["elin",222],"trw":["hel",1084],"lp":["eho","eln","enl","enli"],"rp":["ulle","hel","len","ly","ione","llen","yl","hell","ilen","yll","olen","nle","uel","uell","leen","nel"]},"117":{"input":[1,3,5,6,7],"tlw":["elina",933],"trw":["hela",8378],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["skulle",39287],"trw":["kunde",19109],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["skillnad",573],"trw":["handlade",1198],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",59992],"trp":["ing",86010],"tlw":["bli",9179],"trw":["hogt",1449],"lp":["bl","bli","tion","bil","vu","ting","gh"],"rp":["ing","ning","lut","lb","nlig","llb","illb","hog","uv","hov","huv","uvu","huvu"]},"121":{"input":[1,4,5,6,7],"tlw":["vanligt",1746],"trw":["inga",3339],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["slut",3258],"trw":["och",261930],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["sjalv",9343],"trw":["klockan",2663],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["blev",11880],"trw":["hur",18534],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["vagen",2479],"trw":["langre",3962],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["verkligen",3128],"trw":["huvudet",3819],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["bland",3152],"trw":["ibland",2952],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",78667],"trw":["p",2050],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",29927],"trp":["pa",207370],"trw":["pa",144323],"lp":["ap","app","appa","apa"],"rp":["pa","ppa","pap","papp"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",19698],"trp":["ps",3998],"lp":["sp"],"rp":["ps","pps","psp","ppsp"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",4537],"trp":["pas",7949],"tlw":["asp",86],"trw":["pass",549],"lp":["spa","sap","asp","aps","spas","aspa"],"rp":["pas","pass","ppas","psa","ppsa","pspa","pasa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",6152],"trp":["pe",48173],"trw":["'",472],"lp":["ep","epp","e'","eppe","e'e","eep"],"rp":["pe","ppe","'e","pee","pep","pepp"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",3130],"trp":["pape",411],"lp":["ape","appe","xp","exp","epa","xpe","expe","eap","eape","eppa"],"rp":["pape","'a"]},"134":{"input":[2,3,8],"tlp":["spe",8127],"trp":["pd",798],"tlw":["esp",72],"trw":["'de",96],"lp":["spe","esp","espe","sep","desp","dp","dsp","eps","dspe","dep","e's","d'","d'e"],"rp":["pd","ppd","'s","'d","'de","pse","'es"]},"135":{"input":[1,2,3,8],"tlp":["apad",573],"trp":["pad",4572],"trw":["passade",486],"lp":["apad","epad","dap","adap","spad","aspe","we'"],"rp":["pad","pade","ppad","pase","pesa"]},"136":{"input":[4,8],"tlp":["tp",509],"trp":["pt",11645],"trw":["pt",359],"lp":["tp","ttp"],"rp":["pt","ppt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["appt",2622],"trp":["pat",2945],"tlw":["tappa",242],"trw":["pat",56],"lp":["appt","tap","tapp","apt","apat","tpa","apta"],"rp":["pat","pf","ppf","pta","ppta","pfa","ppfa","pfat","ppat","ptat","pata","paf","patt"]},"138":{"input":[2,4,8],"tlp":["tsp",635],"trp":["pst",539],"lp":["tsp","stp","ttsp"],"rp":["pst","ppst"]},"139":{"input":[1,2,4,8],"tlp":["stpa",148],"trp":["past",2465],"trw":["pasta",175],"lp":["stpa","cap","astp","tpas","spac"],"rp":["past","ptac","pac","psta","psat","pats"]},"140":{"input":[3,4,8],"tlp":["rep",3339],"trp":["pr",31793],"tlw":["rep",90],"trw":["per",1755],"lp":["rep","ept","rp","epte","repp"],"rp":["pr","per","pre","pet","pte","pper","ppr","pete","ppte","'t","ppet","pter","petr","ppre","prep"]},"141":{"input":[1,3,4,8],"tlp":["rap",2854],"trp":["par",13633],"tlw":["trappa",178],"trw":["par",3758],"lp":["rap","rapp","trap","arp","rpa","arpa","apet","xper","repa","apr"],"rp":["par","pra","prat","part","pera","ppar","patr","pare","perf","para"]},"142":{"input":[2,3,4,8],"tlp":["spr",4496],"trp":["pers",6327],"tlw":["spred",228],"trw":["press",442],"lp":["spr","spec","cep","cept","resp","ccep","sept","t's","rsp","spre","etsp","sper","rspr","ecep"],"rp":["pers","prec","pres","pec","pdr","ppdr"]},"143":{"input":[1,2,3,4,8],"tlw":["spar",785],"trw":["pratade",1339],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",66159],"trw":["m",1599],"lp":[],"rp":["mm","mn","mp","pn","ppn","pm","ppm","nm","np"]},"145":{"input":[1,5,8],"tlp":["am",108972],"trp":["ma",166775],"tlw":["am",93],"trw":["man",29921],"lp":["am","amm","amma","amn","amna"],"rp":["ma","man","mma","mann","mna","mman","pan","nam","mam","mamm","pna","namn","ppna","nap","napp"]},"146":{"input":[2,5,8],"tlp":["sm",12954],"trp":["ms",5095],"tlw":["sms",163],"trw":["jp",57],"lp":["sm","sms","spj","ssm"],"rp":["ms","mj","nsp","nsm","pj","jp"]},"147":{"input":[1,2,5,8],"tlp":["sam",33659],"trp":["mas",17101],"tlw":["samma",6340],"trw":["massa",827],"lp":["sam","samm","sma","span","ams","sman","asm","smas","sama"],"rp":["mas","mans","nsam","jam","mass","maj","mmas","jap","japa","pans","jamn"]},"148":{"input":[3,5,8],"tlp":["em",51088],"trp":["me",242113],"tlw":["e'en",102],"trw":["men",54243],"lp":["em","eme","emm","emp","empe","emen"],"rp":["me","men","mme","my","pen","ppen","ym","mpe","mne","yp","mmen","n'","mnen","ymm"]},"149":{"input":[1,3,5,8],"tlp":["ame",4829],"trp":["mena",3740],"tlw":["amy",218],"trw":["mannen",4191],"lp":["ame","emma","amne","xem","exem","xemp","amme","ema","apen","eman","amen","an'","apne"],"rp":["mena","mea","yma","yman","many","may","pany"]},"150":{"input":[2,3,5,8],"tlp":["dem",15113],"trp":["med",110013],"tlw":["dem",13812],"trw":["med",97131],"lp":["dem","ems","sme","smy","sem","seme","emes"],"rp":["med","mes","md","mde","mede","psy","mej","mens","medd","mnd","pens","mnde","mynd"]},"151":{"input":[1,2,3,5,8],"tlw":["ensam",1863],"trw":["medan",4549],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",3262],"trp":["mt",19904],"lp":["tm","bm"],"rp":["mt","mb","mnt","pb"]},"153":{"input":[1,4,5,8],"tlp":["amt",15300],"trp":["mat",7731],"tlw":["famn",168],"trw":["mat",1157],"lp":["amt","tam","amf","amta","fam","amb","atm","tamm","amba","amat","tamt","tma"],"rp":["mat","mf","mta","mba","matt","mnat","mban","mfa"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["tsm",656],"trp":["mst",2612],"lp":["tsm","ttsm"],"rp":["mst","mts"]},"155":{"input":[1,2,4,5,8],"tlw":["samt",1065],"trw":["mats",293],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",23979],"trp":["mer",31601],"tlw":["typ",630],"trw":["mer",11323],"lp":["rm","rme","rmen","tem","rem","emb","embe","erm","typ","emt"],"rp":["mer","mmer","met","mmet","mr","ment","mbe","mber","mete","penb"]},"157":{"input":[1,3,4,5,8],"tlw":["fram",10772],"trw":["menar",2322],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["september",636],"trw":["mest",3296],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["bestamde",1009],"trw":["maste",10840],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",5476],"lp":[],"rp":["pi","ip","ipp","pip","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",1326],"trp":["ippa",1060],"trw":["pia",366],"lp":["api"],"rp":["ippa","ipa","pia","pipa","piz","pizz"]},"162":{"input":[2,6,8],"tlp":["spi",447],"trp":["pis",1842],"tlw":["skip",66],"lp":["spi","spis","spik","skip"],"rp":["pis","ips","psk","ppsk","pisk","isp","ksp","pik","psi","ppsi","psik","pk","ppk","kip"]},"163":{"input":[1,2,6,8],"tlp":["skap",4614],"trp":["kap",6395],"tlw":["skapa",567],"trw":["kapp",67],"lp":["skap"],"rp":["kap","kapi","kapa","pska","pisa","pak","kapp","ispa","ipas","ikap"]},"164":{"input":[3,6,8],"trp":["ipe",417],"lp":[],"rp":["ipe","pie","pei","ippe","i'"]},"165":{"input":[1,3,6,8],"lp":[],"rp":[]},"166":{"input":[2,3,6,8],"tlp":["spek",1307],"trp":["pek",3334],"tlw":["skepp",67],"trw":["keep",74],"lp":["spek","skep","disp","dip","espi"],"rp":["pek","idp","kep","pise","peis","kspe","pike","keep","ipse","kepp","keps","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["skapade",297],"trw":["pekade",973],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",162],"trp":["pit",1381],"lp":["tip"],"rp":["pit","pti","ippt","pv","ppv"]},"169":{"input":[1,4,6,8],"tlp":["vap",1525],"trp":["pav",1648],"lp":["vap","apit"],"rp":["pav","pati","pita","pva","ppva","pif","ppif"]},"170":{"input":[2,4,6,8],"tlp":["cip",532],"trp":["pist",342],"tlw":["tips",162],"lp":["cip","tips","cksp","visp","scip","spit"],"rp":["pist","ptis","istp","pic"]},"171":{"input":[1,2,4,6,8],"tlw":["skapat",225],"trw":["packa",130],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",1494],"trp":["pri",4672],"trw":["pierre",295],"lp":["rip","epti","vep","ripe","vept","epri"],"rp":["pri","peri","pite","priv","it'","prit","pier","iper","ppri","'ti"]},"173":{"input":[1,3,4,6,8],"tlw":["varpa",108],"trw":["partiet",469],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["respekt",485],"trw":["precis",3817],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["sprak",390],"trw":["patrik",492],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",102861],"trw":["min",13506],"lp":[],"rp":["mi","min","im","mmi","imm","minn","mh","ph","him","mpi","mini","pph","imi","imp","hm","imin","mni","mnin","pni","ppni"]},"177":{"input":[1,5,6,8],"tlp":["ami",5806],"trp":["mina",5578],"trw":["mina",5090],"lp":["ami","amh","amin","amha","amni","ahm"],"rp":["mina","ham","imma","hamn","manh","mha","pami","pani","ima","hap","hami","mani","mia","iam"]},"178":{"input":[2,5,6,8],"tlp":["smi",1160],"trp":["mis",5636],"tlw":["smink",63],"trw":["minns",1738],"lp":["smi","smin","sim","simp","simm"],"rp":["mis","miss","mins","mk","mik","ism","mpis","mmis","misk","msk","kim","msi","insp","jim","km"]},"179":{"input":[1,2,5,6,8],"tlw":["smak",323],"trw":["manniska",1359],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",765],"trp":["hem",10392],"trw":["hem",4760],"lp":["emi","ehm"],"rp":["hem","hemm","ime","mhe","imme","meni","mine","phy","ypi","imen","iem","phe","hemi","iemi","hym","meh","hme","mehm"]},"181":{"input":[1,3,5,6,8],"trw":["hemma",2590],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["spisen",158],"trw":["mindes",642],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["spanien",197],"trw":["make",607],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",4993],"trp":["mit",12022],"tlw":["bmi",74],"trw":["mitt",7427],"lp":["tim","timm","tmi","tmin","vtim","vm"],"rp":["mit","mitt","mti","mmit","mv","ntim","http","mbi","mith","pbi","mbin","imb","imt","htm"]},"185":{"input":[1,4,5,6,8],"tlw":["fatima",168],"trw":["hamta",775],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",142],"trw":["minst",1383],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["skamt",390],"trw":["knappt",1332],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["vem",3834],"trw":["mitten",567],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["timmar",1675],"trw":["paven",682],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["centimeter",252],"trw":["mycket",13594],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["amerikanska",1014],"trw":["marken",865],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",29076],"lp":[],"rp":["op","po","opp","ppo","pop","poo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",1452],"trp":["oppa",4532],"lp":["appo","apo"],"rp":["oppa","opa","poa"]},"194":{"input":[2,7,8],"tlp":["spo",1053],"trp":["pos",1604],"tlw":["sop",69],"lp":["spo","sop","sopp"],"rp":["pos","poss","osp","osop","opps"]},"195":{"input":[1,2,7,8],"tlp":["sapo",311],"trp":["pow",123],"tlw":["sapo",311],"lp":["sapo","apos"],"rp":["pow","opas"]},"196":{"input":[3,7,8],"tlp":["epo",584],"trp":["oppe",3306],"trw":["o'",107],"lp":["epo","eop"],"rp":["oppe","ope","peo","peop","o'","poe","o'e"]},"197":{"input":[1,3,7,8],"tlp":["xpo",151],"tlw":["expo",95],"lp":["xpo","expo"],"rp":[]},"198":{"input":[2,3,7,8],"tlp":["dop",66],"trp":["pose",156],"lp":["dop","espo"],"rp":["pose","ospe","osep","pod"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",2236],"trp":["pg",2205],"tlw":["topp",124],"lp":["top","topp","gp"],"rp":["pg","ppg","opt","pot","pott","pto"]},"201":{"input":[1,4,7,8],"tlp":["gap",69],"trp":["pag",1136],"trw":["pagatt",71],"lp":["gap","gapa"],"rp":["pag","pfo","ppfo","paga","ptag","pota","pga","ppga","opag"]},"202":{"input":[2,4,7,8],"tlp":["stop",1589],"trp":["post",535],"tlw":["stopp",156],"trw":["post",266],"lp":["stop","gsp","tspo","spot"],"rp":["post","psto"]},"203":{"input":[1,2,4,7,8],"tlw":["stoppa",368],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",6174],"trp":["pro",9288],"tlw":["grepp",356],"trw":["oppet",450],"lp":["rop","ropp","grep","repo","epor","rope","rpo","rrop"],"rp":["pro","por","port","oper","ppor","opte","prog","ppro","pror","prot","peg","pege"]},"205":{"input":[1,3,4,7,8],"tlw":["rapport",324],"trw":["page",231],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["greps",172],"trw":["process",250],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["ropade",806],"trw":["pastod",364],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",354658],"trw":["om",75959],"lp":[],"rp":["om","mo","up","upp","nom","omm","onom","um","mu","umm","oppn","pu","mun","num","omp","mon","pon","omn","munn","pun"]},"209":{"input":[1,5,7,8],"tlp":["amo",397],"trp":["omma",9507],"trw":["oppna",1197],"lp":["amo","amu","ampo","amon","ammo"],"rp":["omma","oma","pau","omna","upa","umma","uma","uman","ompa","uppa","moa","oman","poan","mona","ooma"]},"210":{"input":[2,5,7,8],"tlp":["som",155381],"trp":["moj",5297],"tlw":["som",144609],"trw":["puss",75],"lp":["som","somm","somn","smu","smo","sum","summ"],"rp":["moj","jup","mos","upps","poj","mus","oms","omoj","mju","mons","mjo","mso","omso"]},"211":{"input":[1,2,5,7,8],"tlw":["somna",238],"trw":["paus",417],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",10795],"trp":["omme",12449],"trw":["uppe",1318],"lp":["enom","emo","emon"],"rp":["omme","umme","ome","uppe","ume","omen","nume","umen","pone","memo","meu","open","-m","on'","upe","onem","mue"]},"213":{"input":[1,3,5,7,8],"tlw":["anonym",71],"trw":["umea",222],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",4177],"trw":["mod",240],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["djupa",306],"trw":["oppnade",1540],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",8905],"trp":["mot",29248],"tlw":["tom",739],"trw":["mot",18572],"lp":["tom","gom","tum","tomm"],"rp":["mot","utom","mg","uppg","uppt","omt","mob","upt","pub","mott","utm","omg","omb","mog","mut","moto"]},"217":{"input":[1,4,5,7,8],"tlw":["tomma",544],"trw":["manga",6574],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["com",216],"trw":["most",517],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["tomas",242],"trw":["magnus",263],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["genom",7651],"trw":["mor",2097],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["framfor",3779],"trw":["pengar",2420],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["dessutom",3021],"trw":["person",1635],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["eftersom",5237],"trw":["omradet",633],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",19160],"trw":["lopp",92],"lp":[],"rp":["pl","pol","poli","plo","lp","ppl","lip","lipp","pli","lop","ilip","opl","oppl","opi","lopp","ipl","llop","ipli","pio","ppli"]},"225":{"input":[1,6,7,8],"tlp":["alp",4565],"trp":["pla",9629],"trw":["lapp",124],"lp":["alp","alpa","appl","apl","apli","apol"],"rp":["pla","lap","lapp","lpa","pal","ppla","lapa","pala","pola","lopa","opia","plai","pall"]},"226":{"input":[2,6,7,8],"tlp":["slip",785],"trp":["kop",4334],"tlw":["slips",162],"trw":["polis",999],"lp":["slip","spl","spol","skop","spok","spio"],"rp":["kop","kopp","posi","klip","kopi","lips","plik","lsp","llsp","pok","ispl","pols","psl","ppsl"]},"227":{"input":[1,2,6,7,8],"tlw":["sallskap",673],"trw":["kopa",928],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["eopl",483],"trp":["pel",7276],"trw":["people",483],"lp":["eopl","elop","elp","e'l","e'll"],"rp":["pel","ple","pple","ople","lpe","pole","pell","lope","opei","pele","ppel","'l","'ll","opie"]},"229":{"input":[1,3,6,7,8],"tlw":["apple",405],"trw":["pela",641],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spel",332],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["spelade",1035],"trw":["klappade",170],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["gpl",562],"trp":["plot",3391],"trw":["pigg",86],"lp":["gpl","gip","tiop"],"rp":["plot","pgi","ppgi","lpt","plig","ptio","pig","lopt","pgiv","pitl","pigg","pigt"]},"233":{"input":[1,4,6,7,8],"tlw":["filippa",520],"trw":["pavliga",154],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["plotsligt",3109],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["slappt",216],"trw":["plats",2333],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["grip",561],"trw":["prov",161],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",550],"trw":["lappar",380],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["speciellt",540],"trw":["kropp",1211],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["slappte",734],"trw":["kapitel",1031],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",11059],"trw":["honom",25475],"lp":[],"rp":["ml","mil","hop","lm","ommi","mli","ihop","hopp","inom","minu","lom","olm","holm","mill","uppl","mili","iml","ilm","omi","oml"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["allihop",335],"trw":["lamna",1453],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["slump",168],"trw":["kom",13274],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["smala",395],"trw":["komma",5926],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mille",982],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["exempel",1422],"trw":["mellan",5596],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["ekonomi",202],"trw":["polisen",2473],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["samlade",437],"trw":["lamnade",1603],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glomt",566],"trw":["mig",33025],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["gamla",2772],"trw":["lamnat",936],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["stockholm",1670],"trw":["kommit",3251],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["bakom",3858],"trw":["langsamt",1192],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"trw":["igenom",2222],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["tvartom",521],"trw":["information",924],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["emellertid",640],"trw":["kommer",10071],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["samtidigt",3340],"trw":["manniskor",3295],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",697],"tlw":["a",9529],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",67011],"tlw":["s",3622],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["sa",278948],"tlw":["sa",80180],"lp":["sa","as","ssa","ass","wa","assa","asa","was","sas","aw","ww","awa","sw","www","ws","swa","swas","wass","sass","saa"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",6371],"tlw":["e",4153],"lp":["ee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ex",11230],"tlw":["ae",267],"lp":["ex","ea","ax","ae","xe","xa","exe","exa","axe","axa"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",849873],"tlw":["de",70970],"lp":["de","ed","se","es","des","dd","ess","sed","dde","ds","sse","dess","ede","edd","esse","edde","ese","see","eds","ses"],"rp":[]},"7":{"input":[1,2,3],"tlp":["ad",298347],"tlw":["da",17349],"lp":["ad","ade","da","eda","sad","ada","seda","sade","ades","add","sada","dda","dad","we","essa","dade","ase","sex","ew","esa"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",430036],"tlw":["t",873],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["at",420129],"tlw":["att",208516],"lp":["at","ta","att","fa","ft","tta","atta","af","ff","ata","tat","fat","fatt","aff","ffa","affa","aft","tf","fta","tfa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",283811],"tlw":["c",718],"lp":["st","ts","sst","sc","ct","cc","tst","tc","tts","cts","cs","sts","tss","css","stst","stt"],"rp":[]},"11":{"input":[1,2,4],"tlp":["sta",95542],"tlw":["satt",11381],"lp":["sta","ast","sat","ac","satt","tsa","asta","ats","ca","tsat","tac","fas","fast","stat","tas","ssta","stas","tast","sats","stac"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["et",462362],"tlw":["ett",56585],"lp":["et","er","te","re","ter","rt","tr","ett","tte","rr","tre","ete","ret","tet","rre","tter","ert","eter","ere","ttr"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",760793],"tlw":["ar",85841],"lp":["ar","ra","fr","ara","fra","are","era","ef","rat","fte","art","fter","tar","eft","efte","far","tra","ratt","fe","atte"],"rp":[]},"14":{"input":[2,3,4],"tlp":["det",223222],"tlw":["det",200915],"lp":["det","rs","dr","rd","der","ste","rde","rst","ers","est","res","red","str","ser","ec","ce","set","ster","rts","ters"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["dar",44203],"tlw":["dar",26310],"lp":["dar","rad","dra","tad","tade","rade","aste","rsta","ars","ttad","ras","erad","ard","star","sar","esta","reda","dare","stra","dera"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",152794],"trw":["n",1184],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",778026],"trp":["na",315512],"tlw":["an",15455],"trw":["nan",1595],"lp":["an","ann","anna","ana","anan","aan","aana","aq"],"rp":["na","nna","nan","nnan","nq","nana"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sj",21534],"trp":["ns",134271],"trw":["j",959],"lp":["sj","sn","ssn","sjn"],"rp":["ns","nns","nss","nj","jn","js"]},"19":{"input":[1,2,5],"tlp":["ans",66128],"trp":["ja",200724],"tlw":["san",954],"trw":["ja",6931],"lp":["ans","san","sja","sna","anns","sann","ssna","ansa","anss","aj","ssan"],"rp":["ja","nas","nsa","jan","nnas","jans","jana","nja","nans"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",686772],"trp":["ne",122568],"tlw":["en",141247],"trw":["ny",2216],"lp":["en","enn","enne","ene","een","ey","enen","enny"],"rp":["ne","nne","nen","ny","yn","nnen","ye","yne","nny","ynn","ynen","ynne"]},"21":{"input":[1,3,5],"tlp":["ena",17736],"trp":["ya",3990],"tlw":["ena",2504],"trw":["nya",3694],"lp":["ena","anne","ane","enna","ay","aen","any","anen","xan","exan","ean","xen","xn","xna","enq"],"rp":["ya","nya","yx","yea","nea"]},"22":{"input":[2,3,5],"tlp":["den",113774],"trp":["nd",217577],"tlw":["den",78914],"trw":["nej",5908],"lp":["den","sen","ens","ej","end","sy","dn","ende","dj"],"rp":["nd","nde","je","ys","nes","nnes","yd","nden","nej","jd","nse"]},"23":{"input":[1,2,3,5],"tlp":["and",132309],"trp":["nda",24974],"tlw":["sedan",13315],"trw":["new",1697],"lp":["and","ande","dan","edan","anda","sena","adan","enda","aden","anad","ensa","enas","aend","anse"],"rp":["nda","nad","nade","jad","jade","ndan"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",13062],"trp":["nt",180386],"tlw":["b",734],"lp":["bb","tn","ttn","bt","bbt","tb"],"rp":["nt","nb","ntn","ntb"]},"25":{"input":[1,4,5],"tlp":["ba",80692],"trp":["nat",22606],"tlw":["annat",5472],"trw":["nat",1860],"lp":["ba","tan","ant","fan","anta","fann","ab","ban","abb","anf","bat","bba","tna"],"rp":["nat","nta","nf","nnat","nab","nabb","natt"]},"26":{"input":[2,4,5],"tlp":["tj",8505],"trp":["nst",17861],"tlw":["bbc",225],"lp":["tj","bj","bs","stn","sb","sjt","stj","sjtj","tsn","ttj","bc","bbc","stb"],"rp":["nst","nc","jt","nts","jtj","nsc","nstn"]},"27":{"input":[1,2,4,5],"tlp":["stan",20169],"trp":["nast",10284],"tlw":["fanns",8575],"trw":["nastan",4851],"lp":["stan","bas","snab","anst","sant","bast","tja","tans","stna","tjan","bac","can","abs","snac"],"rp":["nast","nsta","jat","nac","jac","ntas"]},"28":{"input":[3,4,5],"tlp":["be",75593],"trp":["nte",109829],"tlw":["be",2398],"trw":["ner",9674],"lp":["be","rn","ten","br","ty","ent","ren","ry","ern","ber","bet","rb"],"rp":["nte","ner","yt","ytt","yr","nner","ntr","net"]},"29":{"input":[1,3,4,5],"tlp":["ran",60950],"trp":["nar",65863],"tlw":["fran",27093],"trw":["nar",38189],"lp":["ran","rna","bar","fran","arn","bara","arna","erna","bra","aran","aren","enar","barn","bera","arb","fy","arbe","beta"],"rp":["nar","nare"]},"30":{"input":[2,3,4,5],"tlp":["rj",17958],"trp":["yc",35067],"tlw":["tyst",1977],"lp":["rj","bes","tyc","sten","tys","tyd","dern","ryc","tryc","best","tyst","rden","rje","cen"],"rp":["yc","nder","ndr","yst","ndet","jer"]},"31":{"input":[1,2,3,4,5],"tlw":["andra",13622],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",1872],"trw":["i",182908],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["ai",2800],"trp":["ia",13569],"tlw":["ai",142],"trw":["ia",109],"lp":["ai","za","zi","az","zia","azi","zz","zzi","zza"],"rp":["ia","iz","iza","izz","izza","izi"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["sk",180550],"trp":["is",102522],"trw":["is",3657],"lp":["sk","si","ski","sik","sis","ssi","sisk","ssis"],"rp":["is","ik","isk","ks","ki","iss","iks","kis","isi","iki","kisk","kss"]},"35":{"input":[1,2,6],"tlp":["ak",74294],"trp":["ka",235111],"tlw":["ska",12542],"trw":["kaka",73],"lp":["ak","ska","sak","aka","wi","ask","skak","asi","aska","aks","aki"],"rp":["ka","ika","ksa","iska","isa","kas","issa","kak","kaka"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",3018],"trp":["ie",21160],"tlw":["ei",236],"trw":["ie",545],"lp":["ei","eii","eiie"],"rp":["ie","iie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["xi",1347],"trp":["ix",677],"tlw":["xii",198],"trw":["iae",103],"lp":["xi","ez","axi","exi","ezi","ezia","eiz","ze","xii","eza","aie","zie","zzie","eizi"],"rp":["ix","ixa","iae"]},"38":{"input":[2,3,6],"tlp":["di",49953],"trp":["ke",99121],"tlw":["skedde",390],"trw":["ide",614],"lp":["di","ek","ske","sid","dis","disk","sek","edi","esk","dsk","die"],"rp":["ke","id","ide","idi","ike","ise","idd","isse","iske"]},"39":{"input":[1,2,3,6],"tlp":["ake",15029],"trp":["kad",24793],"tlw":["sida",1628],"trw":["kikade",168],"lp":["ake","sake","sida","eka","skad","adi","akad","ekad","dska","xak","exak"],"rp":["kad","kade","ida","isad","idda","kada","kae","ikae","ikad"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",221703],"trp":["it",120245],"tlw":["vi",40006],"trw":["it",2563],"lp":["ti","vi","tv","vit","tit","titt","tvi","vt","tiv","tti","vitt","tivt","viv"],"rp":["it","itt","iv","ivi","iti","ivit","ivt"]},"41":{"input":[1,4,6],"tlp":["va",353292],"trp":["itta",13428],"tlw":["av",76117],"trw":["if",757],"lp":["va","av","fi","ati","tva","vat","vatt","ava","avi","tav","ativ","vita","via","tia","tati"],"rp":["itta","if","iva","ita","ift"]},"42":{"input":[2,4,6],"tlp":["ck",135164],"trp":["kt",95132],"tlw":["sitt",8546],"trw":["its",666],"lp":["ck","sv","vis","sit","cks","ci","sti","sitt","viss","tis","ckt","tisk"],"rp":["kt","ic","ick","kv","ikt","kti","ist","isst"]},"43":{"input":[1,2,4,6],"tlp":["cka",27505],"trp":["kva",11609],"tlw":["fick",13643],"lp":["cka","sva","akt","ack","fic","fick","cksa","akti","tack","visa","acka","avs","tak","akta","fak"],"rp":["kva","icka","kta","kat","ista"]},"44":{"input":[3,4,6],"tlp":["ri",112888],"trp":["ite",18519],"tlw":["vet",9572],"trw":["iver",119],"lp":["ri","ve","ver","ev","vet","rit","eri","rv","riv","rti","rev","eve","erv","vr","rie","tri"],"rp":["ite","ir","ive","ivet"]},"45":{"input":[1,3,4,6],"tlp":["var",212597],"trp":["ifr",5093],"tlw":["var",117709],"lp":["var","vara","ari","vari","ave","arit","vart","rva","varf","vare","arti","rav","ria","veta","fri","eva","rati","riva"],"rp":["ifr","ifra"]},"46":{"input":[2,3,4,6],"tlp":["rk",39613],"trp":["kr",38960],"tlw":["vid",15758],"lp":["rk","tid","cke","vid","rik","cket","skr","erk","dri","verk","sve","ckte","tidi","ris","ekt"],"rp":["kr","kte","ker","ket","kri"]},"47":{"input":[1,2,3,4,6],"tlw":["vad",23975],"trw":["kvar",4233],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",374950],"trw":["in",24928],"lp":[],"rp":["in","ni","inn","nin","hi","nni","ih","nh","hin","ini","nnin","hn","hinn","hnn","inni","ninn","inh","nih","ihi","nihi"]},"49":{"input":[1,5,6],"tlp":["anni",10319],"trp":["ha",405073],"tlw":["ah",652],"trw":["han",135757],"lp":["anni","ani","anin","ah","anh","ain","aha","anha"],"rp":["ha","han","ina","inna","hann","ian","nha","iha","nhan","nina","naz","nazi"]},"50":{"input":[2,5,6],"tlp":["sin",33457],"trp":["nk",33920],"tlw":["sin",19809],"trw":["his",717],"lp":["sin","sh"],"rp":["nk","nsk","kn","ins","nis","nsi","inns","hj","nisk","nnis","his","nsik","nik","kni","kh","kin","nnik","kj"]},"51":{"input":[1,2,5,6],"tlp":["ank",24052],"trp":["kan",66516],"tlw":["sina",10070],"trw":["hans",21333],"lp":["ank","ansk","sina","anka","ansi","zj","akn","akna","wh","skan"],"rp":["kan","hans","kans","nska","kna","kann","nka","hja","has","nika"]},"52":{"input":[3,5,6],"tlp":["eh",10650],"trp":["he",119485],"tlw":["eh",118],"trw":["henne",15609],"lp":["eh","enh","enhe","eni","enin","enni"],"rp":["he","hen","henn","inne","ien","nhe","ine","hy","nie","hey","neh","nneh","hei","nnie"]},"53":{"input":[1,3,5,6],"tlp":["eha",2865],"trp":["neha",654],"tlw":["annie",246],"lp":["eha","anie","ehan","anhe","enha","xin","axin","eani"],"rp":["neha","hea","hay","iane","hae","ynha","hane"]},"54":{"input":[2,3,5,6],"tlp":["dni",7195],"trp":["ken",21208],"tlw":["din",3500],"trw":["hennes",10942],"lp":["dni","dnin","ensk","din","sky","enk","edni","enke"],"rp":["ken","nske","nke","ind","iden","ky","ysk","ndi","isen","yk","iken","inde"]},"55":{"input":[1,2,3,5,6],"tlw":["sidan",3037],"trw":["hade",75973],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["th",42119],"trp":["int",110738],"tlw":["bit",873],"trw":["hit",1552],"lp":["th","bi","vin","tin","vinn","tni","tnin","thi","vb","ttni"],"rp":["int","nti","hit","ntin","nv","hitt","ib","nit","ith","nnit"]},"57":{"input":[1,4,5,6],"tlp":["van",36400],"trp":["hat",6563],"tlw":["that",4254],"trw":["haft",3590],"lp":["van","fin","finn","vant","tha","that","vann","anv","anva","vana","vani"],"rp":["hat","nva","haf","haft","inf","nvan","hav","hant","nati"]},"58":{"input":[2,4,5,6],"tlp":["ch",278681],"trp":["nkt",10498],"tlw":["this",1111],"trw":["nick",290],"lp":["ch","vj","ckh","sch","stin","ckn","this","svin","tch"],"rp":["nkt","kvin","inst","nic","nick","hist","nsv","nist","nsti","ich","nsiv"]},"59":{"input":[1,2,4,5,6],"tlw":["finns",6035],"trw":["kvinna",2323],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["the",26354],"trp":["inte",103570],"tlw":["the",18662],"trw":["inte",98723],"lp":["the","rin","ven","beh","rh","enti","bri","ther","erh","rhe","rhet","erin"],"rp":["inte","het","hete","her","intr","iten","nhet","hr"]},"61":{"input":[1,3,4,5,6],"tlw":["aven",6437],"trw":["har",67488],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["tiden",4874],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["tankte",6155],"trw":["kanner",3200],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",2318],"trw":["o",784],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","tlp":["ao",454],"trp":["oa",4643],"lp":["ao"],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",206463],"trp":["os",36642],"tlw":["so",864],"trw":["oss",8697],"lp":["so","sso","soo"],"rp":["os","oss","oso","osso"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",2187],"trp":["ow",2946],"tlw":["wow",58],"lp":["wo","aso","asso","saso","aos","woo","wow","sao"],"rp":["ow","osa","ossa","ows","owa"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",2376],"trp":["oe",2841],"trw":["-",1201],"lp":["eo"],"rp":["oe","-o","-e"],"special":"punc"},"69":{"input":[1,3,7],"tlp":["xo",397],"trp":["ox",399],"lp":["xo","a-"],"rp":["ox","-a","oxe"]},"70":{"input":[2,3,7],"tlp":["do",35235],"trp":["od",40189],"tlw":["dod",2129],"trw":["ode",316],"lp":["do","dod","eso","edo","sod","sode","esso","dode","doe","does","dsso","dods"],"rp":["od","ode","odd","odde","ose","ods","ood","oes"]},"71":{"input":[1,2,3,7],"tlp":["doda",2068],"trp":["oda",5346],"tlw":["doda",1277],"lp":["doda","ado","sado","dow","easo","dosa","wood"],"rp":["oda","oad","odad","owe","oade","odda"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["to",90775],"trp":["ot",87066],"tlw":["tog",9006],"trw":["otto",257],"lp":["to","go","gt","got","gg","tog","gott","tto","tot","tg","tott"],"rp":["ot","og","ott","ogo","oto","ogt","otto","otog","ogg"]},"73":{"input":[1,4,7],"tlp":["ag",317285],"trp":["of",22543],"tlw":["ga",7744],"trw":["of",10904],"lp":["ag","fo","ga","ago","aga","agot","tag","gat","agg","agt","gga","gatt","fot","agga"],"rp":["of","oft","off","ota","ofta","oga"]},"74":{"input":[2,4,7],"tlp":["sto",40954],"trp":["oc",289376],"tlw":["sot",305],"trw":["ost",163],"lp":["sto","gs","co","gst","toc","stoc","soc","stot","sog","sot","sogo","togs","gts"],"rp":["oc","ost","ots","ogs","ogst","otst","osc"]},"75":{"input":[1,2,4,7],"tlp":["sag",35425],"trp":["osta",1492],"tlw":["sag",13608],"trw":["oftast",553],"lp":["sag","saga","ags","sagt","gas","gast","gsa","sof","aco","soff","asto","sags","gsta","stag","ggas","agas","two"],"rp":["osta","otsa","osca"]},"76":{"input":[3,4,7],"tlp":["ge",165737],"trp":["or",421801],"tlw":["gor",5705],"trw":["or",1673],"lp":["ge","ro","gr","ger","tor","eg","tro","gor","rg","get","ror","ege","gre","rot"],"rp":["or","ort","ore","orr","org","orre"]},"77":{"input":[1,3,4,7],"tlp":["for",206825],"trp":["ora",29125],"tlw":["for",86020],"lp":["for","gar","age","gra","rag","fort","frag","agr","raga","agra","gora","ager","rfo","rfor","fore","arfo","gare","agar","tora"],"rp":["ora"]},"78":{"input":[2,3,4,7],"tlp":["rso",20201],"trp":["ors",42598],"tlw":["stod",7497],"trw":["ord",2401],"lp":["rso","stor","erso","tod","stod","gd","dor","rod","gde","ros","dro","dorr","rost","sor"],"rp":["ors","ord","orde","orst","orso","orts"]},"79":{"input":[1,2,3,4,7],"tlw":["sager",8656],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["on",215270],"trw":["nu",20433],"lp":[],"rp":["on","un","no","nu","ono","unn","ou","nno","nnu","onn","non","oun","oon","onnu","nou"]},"81":{"input":[1,5,7],"tlp":["au",4722],"trp":["unna",7691],"tlw":["annu",3706],"lp":["au","annu","anno","ano","qu","anu","anua","anon","aou"],"rp":["unna","ua","ona","oan","nua","onna","una","oona","nqu","oann","uan"]},"82":{"input":[2,5,7],"tlp":["son",18325],"trp":["ju",46060],"tlw":["son",1353],"trw":["ju",10993],"lp":["son","su","sson","sju","ssu","sjo","sjon","sjun"],"rp":["ju","jo","us","oj","ons","jus","jon","nsso","uss","jun","jou","noj"]},"83":{"input":[1,2,5,7],"tlp":["aus",996],"trp":["usa",2823],"tlw":["sonja",276],"trw":["usa",1340],"lp":["aus","sona","wou","susa","ajo","ason"],"rp":["usa","oja","now","joa","own","janu","usan","onsa","onja","jua","jusa","ojan","nown","joan"]},"84":{"input":[3,5,7],"tlp":["eno",11644],"trp":["one",21213],"tlw":["eu",207],"trw":["you",1411],"lp":["eno","eu","eun","enou","enu"],"rp":["one","onen","yo","ue","you","unne","oen","une","n-","ony","oy","neu","y-","yon","nony"]},"85":{"input":[1,3,5,7],"tlp":["xu",643],"trp":["ux",939],"tlw":["anyone",56],"lp":["xu","exu","xue","exue","enqu","que","xua","exua","ann-","anyo"],"rp":["ux","uxn","uxna","yxo","uxe","uxen","na-","nna-","oxen","oya"]},"86":{"input":[2,3,5,7],"tlp":["du",45128],"trp":["und",57348],"tlw":["du",40597],"trw":["nojd",538],"lp":["du","essu","sone","dju","esu","don"],"rp":["und","unde","ud","use","ude","jud","ond","ojd","ojde","ndo","jude","nod","usen","oend"]},"87":{"input":[1,2,3,5,7],"tlw":["down",202],"trw":["undan",1747],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bo",46434],"trp":["ng",167442],"tlw":["but",1259],"trw":["ut",23705],"lp":["bo","gon","tu","gn","ton","tun","gu","bu"],"rp":["ng","ut","ob","ung","ont","ug","ogon","ngt","unt","obb","uto","nog"]},"89":{"input":[1,4,5,7],"tlp":["ang",59439],"trp":["nag",48054],"tlw":["gang",6284],"trw":["nagot",17486],"lp":["ang","gan","agon","gang","anga","fu","gna","fon","angt","anfo","fun","atu"],"rp":["nag","nago","nga","uta","utan","nfo","natu","uf"]},"90":{"input":[2,4,5,7],"tlp":["gj",14385],"trp":["ust",11850],"tlw":["tjugo",984],"trw":["just",6345],"lp":["gj","gjo","stu","sut","stun","ssut","suto","gons","ston","bjo"],"rp":["ust","job","onst","just","ngs","jobb","uc","uts","jut","jug"]},"91":{"input":[1,2,4,5,7],"tlw":["sang",726],"trw":["jag",133333],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["gen",96318],"trp":["nge",54194],"tlw":["bort",5520],"trw":["ur",6494],"lp":["gen","ru","bor","geno","run","bort","bro","egen","gent","tur"],"rp":["nge","ur","ngen","yg","ngr","ute","nor","orn","nger","unge"]},"93":{"input":[1,3,4,5,7],"tlw":["gangen",3207],"trw":["nagra",10760],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["gjorde",8777],"trw":["under",14292],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["borjade",6021],"trw":["undrade",1668],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["ll",353262],"trw":["ol",691],"lp":[],"rp":["ll","li","il","ill","ol","lo","io","oli","oll","lli","ili","lil","lill","olo","illi","ilo","llo","oi","lio","ool"]},"97":{"input":[1,6,7],"tlp":["al",238639],"trp":["la",255368],"tlw":["alla",16475],"trw":["lilla",2283],"lp":["al","all","alla","ala","ali","alli","zl","zla","zo"],"rp":["la","lla","illa","ola","ial","lia","ila","olla","ilia","oal","oz"]},"98":{"input":[2,6,7],"tlp":["sl",40951],"trp":["ko",98099],"tlw":["sol",152],"trw":["loss",451],"lp":["sl","sok","sko","slo","skil","sli"],"rp":["ko","kl","ls","ok","lk","lik","kli","lls","lis","kil","ilk","olis","ills","kol"]},"99":{"input":[1,2,6,7],"tlp":["sla",15876],"trp":["kla",20340],"tlw":["alls",1882],"trw":["lika",4448],"lp":["sla","als","sal","ako","skal","alls","soka","alsk","wal"],"rp":["kla","las","kal","kall","lika","oka","lsa","lska","llsa","lak","lka"]},"100":{"input":[3,6,7],"tlp":["el",123518],"trp":["le",182809],"tlw":["el",140],"trw":["le",410],"lp":["el","ell","elle","ele","eli","elo","elie"],"rp":["le","lle","ille","ile","olle","ole","lie","iel","lee","iell","lei","ilie","leo"]},"101":{"input":[1,3,6,7],"tlp":["ela",19365],"trp":["lex",1360],"tlw":["alex",558],"trw":["ozzie",67],"lp":["ela","alle","ale","ella","alex","ael","xl","axl","xla","axla","alie","xel","axel","eal","zoe","elal"],"rp":["lex","lexa","lea","oale"]},"102":{"input":[2,3,6,7],"tlp":["del",18169],"trp":["ld",45006],"tlw":["del",4570],"trw":["ledde",906],"lp":["del","els","dl","else","dli","dele"],"rp":["ld","lde","lld","led","lse","llde","lke","oke","ild","ilke","les","kel","lise","lek"]},"103":{"input":[1,2,3,6,7],"tlw":["alldeles",2595],"trw":["lade",1957],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["til",104652],"trp":["ig",244414],"tlw":["till",78901],"trw":["liv",4044],"lp":["til","till","gi","vil","vill","tio","tig","gl","tl"],"rp":["ig","lig","lt","ov","igt","llt","ligt","lv","lit","liv","log"]},"105":{"input":[1,4,6,7],"tlp":["tal",36626],"trp":["lat",26260],"tlw":["allt",11228],"trw":["lag",5318],"lp":["tal","allt","val","fl","alv","vag","tall","fal","fol","fall","atio","tala","alt","gla"],"rp":["lat","lag","iga","liga","ova","lva"]},"106":{"input":[2,4,6,7],"tlp":["sig",64325],"trp":["ock",24775],"tlw":["sig",62876],"trw":["likt",416],"lp":["sig","gic","gick","vilk","sokt","sov","ckl"],"rp":["ock","ocks","lic","ktig","lick","klig","okt","loc","lock","lst","kov","lts","llts"]},"107":{"input":[1,2,4,6,7],"tlw":["alltsa",3917],"trw":["ocksa",11852],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rl",28320],"trp":["ler",39552],"tlw":["eller",21635],"trw":["over",17755],"lp":["rl","rig","rli","elt","rlig","tel","rol","erl","rige"],"rp":["ler","ige","ller","ove","over","lev","lige","let","lite","llet","lir"]},"109":{"input":[1,3,4,6,7],"tlw":["varfor",5432],"trw":["later",1516],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["dig",9388],"trw":["kort",3076],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["aldrig",8974],"trw":["klart",1941],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["ho",156427],"trw":["hon",71785],"lp":[],"rp":["ho","hon","ul","ull","hu","lu","hono","ion","nl","lin","nli","hol","ln","holl","oh","iho","uni","hun","lun","ino"]},"113":{"input":[1,5,6,7],"tlp":["anl",7509],"trp":["lan",56925],"tlw":["quinn",114],"trw":["halla",3206],"lp":["anl","anli","alin","alln","alan"],"rp":["lan","hal","hall","llan","nal","oha","ohan","ula","nali","olan","lina","ulla","lna","nla","inal"]},"114":{"input":[2,5,6,7],"tlp":["sku",43264],"trp":["ku",78375],"tlw":["skull",1127],"trw":["hos",4276],"lp":["sku","skul","slu"],"rp":["ku","kul","kull","kun","lj","uk","kon","hus","ilj","juk","kunn","olj","jl","ojl","jli","ojli","hos"]},"115":{"input":[1,2,5,6,7],"tlw":["skolan",1295],"trw":["kunna",5127],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eho",7167],"trp":["ulle",40111],"tlw":["elin",222],"trw":["hel",1084],"lp":["eho","eln","enl","enli"],"rp":["ulle","hel","len","ly","ione","llen","yl","hell","ilen","yll","olen","nle","uel","uell","leen","nel"]},"117":{"input":[1,3,5,6,7],"tlw":["elina",933],"trw":["hela",8378],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["skulle",39287],"trw":["kunde",19109],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["skillnad",573],"trw":["handlade",1198],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bl",59992],"trp":["ing",86010],"tlw":["bli",9179],"trw":["hogt",1449],"lp":["bl","bli","tion","bil","vu","ting","gh"],"rp":["ing","ning","lut","lb","nlig","llb","illb","hog","uv","hov","huv","uvu","huvu"]},"121":{"input":[1,4,5,6,7],"tlw":["vanligt",1746],"trw":["inga",3339],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["slut",3258],"trw":["och",261930],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["sjalv",9343],"trw":["klockan",2663],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["blev",11880],"trw":["hur",18534],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["vagen",2479],"trw":["langre",3962],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["verkligen",3128],"trw":["huvudet",3819],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["bland",3152],"trw":["ibland",2952],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trp":["pp",78667],"trw":["p",2050],"lp":[],"rp":["pp"]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",29927],"trp":["pa",207370],"trw":["pa",144323],"lp":["ap","app","appa","apa"],"rp":["pa","ppa","pap","papp"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",19698],"trp":["ps",3998],"lp":["sp"],"rp":["ps","pps","psp","ppsp"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["spa",4537],"trp":["pas",7949],"tlw":["asp",86],"trw":["pass",549],"lp":["spa","sap","asp","aps","spas","aspa"],"rp":["pas","pass","ppas","psa","ppsa","pspa","pasa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",6152],"trp":["pe",48173],"trw":["'",472],"lp":["ep","epp","e'","eppe","e'e","eep"],"rp":["pe","ppe","'e","pee","pep","pepp"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["ape",3130],"trp":["pape",411],"lp":["ape","appe","xp","exp","epa","xpe","expe","eap","eape","eppa"],"rp":["pape","'a"]},"134":{"input":[2,3,8],"tlp":["spe",8127],"trp":["pd",798],"tlw":["esp",72],"trw":["'de",96],"lp":["spe","esp","espe","sep","desp","dp","dsp","eps","dspe","dep","e's","d'","d'e"],"rp":["pd","ppd","'s","'d","'de","pse","'es"]},"135":{"input":[1,2,3,8],"tlp":["apad",573],"trp":["pad",4572],"trw":["passade",486],"lp":["apad","epad","dap","adap","spad","aspe","we'"],"rp":["pad","pade","ppad","pase","pesa"]},"136":{"input":[4,8],"tlp":["tp",509],"trp":["pt",11645],"trw":["pt",359],"lp":["tp","ttp"],"rp":["pt","ppt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["appt",2622],"trp":["pat",2945],"tlw":["tappa",242],"trw":["pat",56],"lp":["appt","tap","tapp","apt","apat","tpa","apta"],"rp":["pat","pf","ppf","pta","ppta","pfa","ppfa","pfat","ppat","ptat","pata","paf","patt"]},"138":{"input":[2,4,8],"tlp":["tsp",635],"trp":["pst",539],"lp":["tsp","stp","ttsp"],"rp":["pst","ppst"]},"139":{"input":[1,2,4,8],"tlp":["stpa",148],"trp":["past",2465],"trw":["pasta",175],"lp":["stpa","cap","astp","tpas","spac"],"rp":["past","ptac","pac","psta","psat","pats"]},"140":{"input":[3,4,8],"tlp":["rep",3339],"trp":["pr",31793],"tlw":["rep",90],"trw":["per",1755],"lp":["rep","ept","rp","epte","repp"],"rp":["pr","per","pre","pet","pte","pper","ppr","pete","ppte","'t","ppet","pter","petr","ppre","prep"]},"141":{"input":[1,3,4,8],"tlp":["rap",2854],"trp":["par",13633],"tlw":["trappa",178],"trw":["par",3758],"lp":["rap","rapp","trap","arp","rpa","arpa","apet","xper","repa","apr"],"rp":["par","pra","prat","part","pera","ppar","patr","pare","perf","para"]},"142":{"input":[2,3,4,8],"tlp":["spr",4496],"trp":["pers",6327],"tlw":["spred",228],"trw":["press",442],"lp":["spr","spec","cep","cept","resp","ccep","sept","t's","rsp","spre","etsp","sper","rspr","ecep"],"rp":["pers","prec","pres","pec","pdr","ppdr"]},"143":{"input":[1,2,3,4,8],"tlw":["spar",785],"trw":["pratade",1339],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["mm",66159],"trw":["m",1599],"lp":[],"rp":["mm","mn","mp","pn","ppn","pm","ppm","nm","np"]},"145":{"input":[1,5,8],"tlp":["am",108972],"trp":["ma",166775],"tlw":["am",93],"trw":["man",29921],"lp":["am","amm","amma","amn","amna"],"rp":["ma","man","mma","mann","mna","mman","pan","nam","mam","mamm","pna","namn","ppna","nap","napp"]},"146":{"input":[2,5,8],"tlp":["sm",12954],"trp":["ms",5095],"tlw":["sms",163],"trw":["jp",57],"lp":["sm","sms","spj","ssm"],"rp":["ms","mj","nsp","nsm","pj","jp"]},"147":{"input":[1,2,5,8],"tlp":["sam",33659],"trp":["mas",17101],"tlw":["samma",6340],"trw":["massa",827],"lp":["sam","samm","sma","span","ams","sman","asm","smas","sama"],"rp":["mas","mans","nsam","jam","mass","maj","mmas","jap","japa","pans","jamn"]},"148":{"input":[3,5,8],"tlp":["em",51088],"trp":["me",242113],"tlw":["e'en",102],"trw":["men",54243],"lp":["em","eme","emm","emp","empe","emen"],"rp":["me","men","mme","my","pen","ppen","ym","mpe","mne","yp","mmen","n'","mnen","ymm"]},"149":{"input":[1,3,5,8],"tlp":["ame",4829],"trp":["mena",3740],"tlw":["amy",218],"trw":["mannen",4191],"lp":["ame","emma","amne","xem","exem","xemp","amme","ema","apen","eman","amen","an'","apne"],"rp":["mena","mea","yma","yman","many","may","pany"]},"150":{"input":[2,3,5,8],"tlp":["dem",15113],"trp":["med",110013],"tlw":["dem",13812],"trw":["med",97131],"lp":["dem","ems","sme","smy","sem","seme","emes"],"rp":["med","mes","md","mde","mede","psy","mej","mens","medd","mnd","pens","mnde","mynd"]},"151":{"input":[1,2,3,5,8],"tlw":["ensam",1863],"trw":["medan",4549],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",3262],"trp":["mt",19904],"lp":["tm","bm"],"rp":["mt","mb","mnt","pb"]},"153":{"input":[1,4,5,8],"tlp":["amt",15300],"trp":["mat",7731],"tlw":["famn",168],"trw":["mat",1157],"lp":["amt","tam","amf","amta","fam","amb","atm","tamm","amba","amat","tamt","tma"],"rp":["mat","mf","mta","mba","matt","mnat","mban","mfa"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["tsm",656],"trp":["mst",2612],"lp":["tsm","ttsm"],"rp":["mst","mts"]},"155":{"input":[1,2,4,5,8],"tlw":["samt",1065],"trw":["mats",293],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",23979],"trp":["mer",31601],"tlw":["typ",630],"trw":["mer",11323],"lp":["rm","rme","rmen","tem","rem","emb","embe","erm","typ","emt"],"rp":["mer","mmer","met","mmet","mr","ment","mbe","mber","mete","penb"]},"157":{"input":[1,3,4,5,8],"tlw":["fram",10772],"trw":["menar",2322],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["september",636],"trw":["mest",3296],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["bestamde",1009],"trw":["maste",10840],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["pi",5476],"lp":[],"rp":["pi","ip","ipp","pip","ppi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",1326],"trp":["ippa",1060],"trw":["pia",366],"lp":["api"],"rp":["ippa","ipa","pia","pipa","piz","pizz"]},"162":{"input":[2,6,8],"tlp":["spi",447],"trp":["pis",1842],"tlw":["skip",66],"lp":["spi","spis","spik","skip"],"rp":["pis","ips","psk","ppsk","pisk","isp","ksp","pik","psi","ppsi","psik","pk","ppk","kip"]},"163":{"input":[1,2,6,8],"tlp":["skap",4614],"trp":["kap",6395],"tlw":["skapa",567],"trw":["kapp",67],"lp":["skap"],"rp":["kap","kapi","kapa","pska","pisa","pak","kapp","ispa","ipas","ikap"]},"164":{"input":[3,6,8],"trp":["ipe",417],"lp":[],"rp":["ipe","pie","pei","ippe","i'"]},"165":{"input":[1,3,6,8],"lp":[],"rp":[]},"166":{"input":[2,3,6,8],"tlp":["spek",1307],"trp":["pek",3334],"tlw":["skepp",67],"trw":["keep",74],"lp":["spek","skep","disp","dip","espi"],"rp":["pek","idp","kep","pise","peis","kspe","pike","keep","ipse","kepp","keps","kesp"]},"167":{"input":[1,2,3,6,8],"tlw":["skapade",297],"trw":["pekade",973],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",162],"trp":["pit",1381],"lp":["tip"],"rp":["pit","pti","ippt","pv","ppv"]},"169":{"input":[1,4,6,8],"tlp":["vap",1525],"trp":["pav",1648],"lp":["vap","apit"],"rp":["pav","pati","pita","pva","ppva","pif","ppif"]},"170":{"input":[2,4,6,8],"tlp":["cip",532],"trp":["pist",342],"tlw":["tips",162],"lp":["cip","tips","cksp","visp","scip","spit"],"rp":["pist","ptis","istp","pic"]},"171":{"input":[1,2,4,6,8],"tlw":["skapat",225],"trw":["packa",130],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",1494],"trp":["pri",4672],"trw":["pierre",295],"lp":["rip","epti","vep","ripe","vept","epri"],"rp":["pri","peri","pite","priv","it'","prit","pier","iper","ppri","'ti"]},"173":{"input":[1,3,4,6,8],"tlw":["varpa",108],"trw":["partiet",469],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["respekt",485],"trw":["precis",3817],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["sprak",390],"trw":["patrik",492],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["mi",102861],"trw":["min",13506],"lp":[],"rp":["mi","min","im","mmi","imm","minn","mh","ph","him","mpi","mini","pph","imi","imp","hm","imin","mni","mnin","pni","ppni"]},"177":{"input":[1,5,6,8],"tlp":["ami",5806],"trp":["mina",5578],"trw":["mina",5090],"lp":["ami","amh","amin","amha","amni","ahm"],"rp":["mina","ham","imma","hamn","manh","mha","pami","pani","ima","hap","hami","mani","mia","iam"]},"178":{"input":[2,5,6,8],"tlp":["smi",1160],"trp":["mis",5636],"tlw":["smink",63],"trw":["minns",1738],"lp":["smi","smin","sim","simp","simm"],"rp":["mis","miss","mins","mk","mik","ism","mpis","mmis","misk","msk","kim","msi","insp","jim","km"]},"179":{"input":[1,2,5,6,8],"tlw":["smak",323],"trw":["manniska",1359],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",765],"trp":["hem",10392],"trw":["hem",4760],"lp":["emi","ehm"],"rp":["hem","hemm","ime","mhe","imme","meni","mine","phy","ypi","imen","iem","phe","hemi","iemi","hym","meh","hme","mehm"]},"181":{"input":[1,3,5,6,8],"trw":["hemma",2590],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["spisen",158],"trw":["mindes",642],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["spanien",197],"trw":["make",607],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",4993],"trp":["mit",12022],"tlw":["bmi",74],"trw":["mitt",7427],"lp":["tim","timm","tmi","tmin","vtim","vm"],"rp":["mit","mitt","mti","mmit","mv","ntim","http","mbi","mith","pbi","mbin","imb","imt","htm"]},"185":{"input":[1,4,5,6,8],"tlw":["fatima",168],"trw":["hamta",775],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["smith",142],"trw":["minst",1383],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["skamt",390],"trw":["knappt",1332],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["vem",3834],"trw":["mitten",567],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["timmar",1675],"trw":["paven",682],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["centimeter",252],"trw":["mycket",13594],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["amerikanska",1014],"trw":["marken",865],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",29076],"lp":[],"rp":["op","po","opp","ppo","pop","poo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["appo",1452],"trp":["oppa",4532],"lp":["appo","apo"],"rp":["oppa","opa","poa"]},"194":{"input":[2,7,8],"tlp":["spo",1053],"trp":["pos",1604],"tlw":["sop",69],"lp":["spo","sop","sopp"],"rp":["pos","poss","osp","osop","opps"]},"195":{"input":[1,2,7,8],"tlp":["sapo",311],"trp":["pow",123],"tlw":["sapo",311],"lp":["sapo","apos"],"rp":["pow","opas"]},"196":{"input":[3,7,8],"tlp":["epo",584],"trp":["oppe",3306],"trw":["o'",107],"lp":["epo","eop"],"rp":["oppe","ope","peo","peop","o'","poe","o'e"]},"197":{"input":[1,3,7,8],"tlp":["xpo",151],"tlw":["expo",95],"lp":["xpo","expo"],"rp":[]},"198":{"input":[2,3,7,8],"tlp":["dop",66],"trp":["pose",156],"lp":["dop","espo"],"rp":["pose","ospe","osep","pod"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",2236],"trp":["pg",2205],"tlw":["topp",124],"lp":["top","topp","gp"],"rp":["pg","ppg","opt","pot","pott","pto"]},"201":{"input":[1,4,7,8],"tlp":["gap",69],"trp":["pag",1136],"trw":["pagatt",71],"lp":["gap","gapa"],"rp":["pag","pfo","ppfo","paga","ptag","pota","pga","ppga","opag"]},"202":{"input":[2,4,7,8],"tlp":["stop",1589],"trp":["post",535],"tlw":["stopp",156],"trw":["post",266],"lp":["stop","gsp","tspo","spot"],"rp":["post","psto"]},"203":{"input":[1,2,4,7,8],"tlw":["stoppa",368],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["rop",6174],"trp":["pro",9288],"tlw":["grepp",356],"trw":["oppet",450],"lp":["rop","ropp","grep","repo","epor","rope","rpo","rrop"],"rp":["pro","por","port","oper","ppor","opte","prog","ppro","pror","prot","peg","pege"]},"205":{"input":[1,3,4,7,8],"tlw":["rapport",324],"trw":["page",231],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["greps",172],"trw":["process",250],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"tlw":["ropade",806],"trw":["pastod",364],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["om",354658],"trw":["om",75959],"lp":[],"rp":["om","mo","up","upp","nom","omm","onom","um","mu","umm","oppn","pu","mun","num","omp","mon","pon","omn","munn","pun"]},"209":{"input":[1,5,7,8],"tlp":["amo",397],"trp":["omma",9507],"trw":["oppna",1197],"lp":["amo","amu","ampo","amon","ammo"],"rp":["omma","oma","pau","omna","upa","umma","uma","uman","ompa","uppa","moa","oman","poan","mona","ooma"]},"210":{"input":[2,5,7,8],"tlp":["som",155381],"trp":["moj",5297],"tlw":["som",144609],"trw":["puss",75],"lp":["som","somm","somn","smu","smo","sum","summ"],"rp":["moj","jup","mos","upps","poj","mus","oms","omoj","mju","mons","mjo","mso","omso"]},"211":{"input":[1,2,5,7,8],"tlw":["somna",238],"trw":["paus",417],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["enom",10795],"trp":["omme",12449],"trw":["uppe",1318],"lp":["enom","emo","emon"],"rp":["omme","umme","ome","uppe","ume","omen","nume","umen","pone","memo","meu","open","-m","on'","upe","onem","mue"]},"213":{"input":[1,3,5,7,8],"tlw":["anonym",71],"trw":["umea",222],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["dom",4177],"trw":["mod",240],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["djupa",306],"trw":["oppnade",1540],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tom",8905],"trp":["mot",29248],"tlw":["tom",739],"trw":["mot",18572],"lp":["tom","gom","tum","tomm"],"rp":["mot","utom","mg","uppg","uppt","omt","mob","upt","pub","mott","utm","omg","omb","mog","mut","moto"]},"217":{"input":[1,4,5,7,8],"tlw":["tomma",544],"trw":["manga",6574],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["com",216],"trw":["most",517],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["tomas",242],"trw":["magnus",263],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["genom",7651],"trw":["mor",2097],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["framfor",3779],"trw":["pengar",2420],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["dessutom",3021],"trw":["person",1635],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["eftersom",5237],"trw":["omradet",633],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",19160],"trw":["lopp",92],"lp":[],"rp":["pl","pol","poli","plo","lp","ppl","lip","lipp","pli","lop","ilip","opl","oppl","opi","lopp","ipl","llop","ipli","pio","ppli"]},"225":{"input":[1,6,7,8],"tlp":["alp",4565],"trp":["pla",9629],"trw":["lapp",124],"lp":["alp","alpa","appl","apl","apli","apol"],"rp":["pla","lap","lapp","lpa","pal","ppla","lapa","pala","pola","lopa","opia","plai","pall"]},"226":{"input":[2,6,7,8],"tlp":["slip",785],"trp":["kop",4334],"tlw":["slips",162],"trw":["polis",999],"lp":["slip","spl","spol","skop","spok","spio"],"rp":["kop","kopp","posi","klip","kopi","lips","plik","lsp","llsp","pok","ispl","pols","psl","ppsl"]},"227":{"input":[1,2,6,7,8],"tlw":["sallskap",673],"trw":["kopa",928],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["eopl",483],"trp":["pel",7276],"trw":["people",483],"lp":["eopl","elop","elp","e'l","e'll"],"rp":["pel","ple","pple","ople","lpe","pole","pell","lope","opei","pele","ppel","'l","'ll","opie"]},"229":{"input":[1,3,6,7,8],"tlw":["apple",405],"trw":["pela",641],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"tlw":["spel",332],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["spelade",1035],"trw":["klappade",170],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["gpl",562],"trp":["plot",3391],"trw":["pigg",86],"lp":["gpl","gip","tiop"],"rp":["plot","pgi","ppgi","lpt","plig","ptio","pig","lopt","pgiv","pitl","pigg","pigt"]},"233":{"input":[1,4,6,7,8],"tlw":["filippa",520],"trw":["pavliga",154],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["plotsligt",3109],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["slappt",216],"trw":["plats",2333],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["grip",561],"trw":["prov",161],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["april",550],"trw":["lappar",380],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["speciellt",540],"trw":["kropp",1211],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["slappte",734],"trw":["kapitel",1031],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["ml",11059],"trw":["honom",25475],"lp":[],"rp":["ml","mil","hop","lm","ommi","mli","ihop","hopp","inom","minu","lom","olm","holm","mill","uppl","mili","iml","ilm","omi","oml"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["allihop",335],"trw":["lamna",1453],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["slump",168],"trw":["kom",13274],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["smala",395],"trw":["komma",5926],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"trw":["mille",982],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["exempel",1422],"trw":["mellan",5596],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["ekonomi",202],"trw":["polisen",2473],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["samlade",437],"trw":["lamnade",1603],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["glomt",566],"trw":["mig",33025],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["gamla",2772],"trw":["lamnat",936],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["stockholm",1670],"trw":["kommit",3251],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["bakom",3858],"trw":["langsamt",1192],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"trw":["igenom",2222],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["tvartom",521],"trw":["information",924],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["emellertid",640],"trw":["kommer",10071],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["samtidigt",3340],"trw":["manniskor",3295],"lp":[],"rp":[]}} diff --git a/keyboards/gboards/dicts/aset/_generator/src/tr-keymap.json b/keyboards/gboards/dicts/aset/_generator/src/tr-keymap.json index 338d9a62a5..567cde878b 100644 --- a/keyboards/gboards/dicts/aset/_generator/src/tr-keymap.json +++ b/keyboards/gboards/dicts/aset/_generator/src/tr-keymap.json @@ -1 +1 @@ -{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",4698],"tlw":["a",3554],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",4821],"tlw":["s",2414],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",119382],"tlw":["www",328],"lp":["as","sa","asa","saa","sas","asas","ww","ssa","ass","www","assa","aw","ssas","wa","was","aas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",787],"tlw":["e",2415],"lp":["ee","eee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",1611],"tlw":["x",136],"lp":["ea","ax","ex","ae"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",225606],"tlw":["de",36223],"lp":["de","se","ed","es","ede","ded","ses","ese","dd","des","ess","dde","sed","sse","sess","ds","ssed","sede","dede","ddes"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",206254],"tlw":["da",34321],"lp":["da","ad","ada","ade","sad","das","sade","adas","esa","dad","add","we","asad","adde","dea","dada","eda","ew","esas","ades"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",24695],"tlw":["t",1015],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",77585],"tlw":["ta",701],"lp":["ta","at","fa","af","att","ata","aat","afa","tta","atta","ft","tat","fta","aft","afta","tf","taf","tafa","fat","tfa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",68030],"tlw":["c",1161],"lp":["st","ct","ts","tc","sc","cs","cc","stc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",58921],"tlw":["saat",1953],"lp":["ca","ac","aca","sta","ast","tas","saat","asta","sac","cas","sat","fas","afas","act","ats","saf","tsa","fac","cat","staf"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",226224],"tlw":["r",1919],"lp":["er","re","te","et","ere","rt","ter","ett","ret","tr","rr","ete","rer","ert","etr","tte","eter","tre","tere","ette"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",265101],"tlw":["ara",805],"lp":["ar","ra","ara","tar","ef","fe","art","rar","are","rta","raf","tara","efe","ate","far","araf","arar","era","aret","rat"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rd",94145],"tlw":["eder",1592],"lp":["rd","ce","ec","rs","ece","ste","der","erd","rc","rde","erc","rce","erce","tes","ster","erde","eder","cer","dec","dece"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",24858],"tlw":["sadece",3474],"lp":["ard","dar","adar","rad","rada","sar","ars","ras","aras","rda","arda","rsa","adec","car","arc","rca","arca","sara","arad","ates"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",4449],"trw":["n",2786],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",238539],"trp":["na",72648],"tlw":["an",2138],"trw":["na",265],"lp":["an","ana","ann","anan","anna","anaa"],"rp":["na","nan","nana","nna","naa"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",731],"trp":["ns",19851],"trw":["j",258],"lp":["sn","sj"],"rp":["ns"]},"19":{"input":[1,2,5],"tlp":["san",27441],"trp":["nsa",12550],"tlw":["sana",3065],"trw":["jan",70],"lp":["san","sana","ans","asan","aj","sans","anas","sna","ansa","saj","wn","snas","aja","ajan"],"rp":["nsa","nsan","nas","ja","jan","jas"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",210551],"trp":["ne",100917],"tlw":["en",11061],"trw":["ne",21701],"lp":["en","ey","eye","ene","eyen","enn","enen","enne","eyn","eney"],"rp":["ne","ye","yen","yn","ny","nne","ney","nen","neye","yey"]},"21":{"input":[1,3,5],"tlp":["ay",82752],"trp":["ya",146697],"tlw":["ay",1315],"trw":["ya",9294],"lp":["ay","aya","ayn","ayan","eya","aye","anne","ane","ena","ean","ayna"],"rp":["ya","yan","nya","yana","yay","yna","nyan","nyay","nay"]},"22":{"input":[2,3,5],"tlp":["den",42341],"trp":["nd",145890],"tlw":["sey",11559],"trw":["neden",3186],"lp":["den","end","sey","sen","eden","eyd","sy","ende","eys","eyse","dey"],"rp":["nd","nde","yd","nden","ned","nede","nes","ys","yse"]},"23":{"input":[1,2,3,5],"tlp":["dan",31876],"trp":["nda",59116],"tlw":["anda",2147],"trw":["yandan",1000],"lp":["dan","and","anda","adan","say","ayd","day","sya","daya","saya"],"rp":["nda","ndan","yas","yasa","yda","yad","yand","yada","ydan","nyad"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",403],"trp":["nt",8039],"tlw":["b",1063],"lp":["bb","bn","tn"],"rp":["nt","nb","ntt"]},"25":{"input":[1,4,5],"tlp":["ba",93513],"trp":["nat",1344],"tlw":["bana",7207],"lp":["ba","ab","tan","aba","ban","bana","bab","baba","tab","aban","ant","bat","anb","tanb","atan","anat","anta","taba"],"rp":["nat","nta"]},"26":{"input":[2,4,5],"tlp":["cb",5912],"trp":["nc",43318],"lp":["cb","sb","bs"],"rp":["nc","nst","nts","nct","ncs"]},"27":{"input":[1,2,4,5],"tlp":["bas",33680],"trp":["nca",9555],"tlw":["bas",1003],"lp":["bas","anc","anca","can","sab","stan","saba","cab","abas","basa","banc","caba","bast","acab","bac","baca","acan"],"rp":["nca","jac","nanc"]},"28":{"input":[3,4,5],"tlp":["be",64335],"trp":["nr",22775],"tlw":["ben",11408],"trw":["yere",2638],"lp":["be","ben","ren","ten","ber","rb","bey","eb","ry","rn","rey","rry","bet"],"rp":["nr","yer","yet","ner","yr","yere","nere"]},"29":{"input":[1,3,4,5],"tlp":["ran",8536],"trp":["nra",19010],"tlw":["bay",1366],"trw":["nefret",613],"lp":["ran","ray","ayr","bay","ayat","rab","fen","anr","tanr","raya","abe","aber","bar","tay","aran","efen"],"rp":["nra","yar","yat","yara"]},"30":{"input":[2,3,4,5],"tlp":["enc",7430],"trp":["nce",17802],"tlw":["bes",2395],"trw":["yerde",2084],"lp":["enc","rden","bes","cen","ence","ecen","bend","bed","eyec","seb","sebe","cey","bede","denb","renc"],"rp":["nce","yerd","yec","ncer","yece"]},"31":{"input":[1,2,3,4,5],"tlw":["cay",353],"trw":["nefes",591],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",3027],"trw":["i",6002],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["az",37543],"trp":["iz",67417],"tlw":["az",2781],"trw":["iz",185],"lp":["az","zi","za","azi","ai","aza","zz","zza","ziz","aziz","azz","azza","aiz","zizi"],"rp":["iz","izi","ia","iza","izz","izza"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",195648],"trp":["is",144843],"tlw":["sik",1643],"trw":["ki",13823],"lp":["si","sk","sik","ski","sis"],"rp":["is","ki","ik","isi","iki","kis","ks","kisi","kk","kki","ksi","isik","isk","iss","ikk"]},"35":{"input":[1,2,6],"tlp":["ak",120301],"trp":["ka",146870],"tlw":["siz",2295],"trw":["kiz",2838],"lp":["ak","asi","aki","siz","ask","aka","ska","aska","aks","sizi","akk","sak"],"rp":["ka","ika","isa","kiz","ksa","kas","kasi","kka"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",1119],"trp":["ie",1447],"lp":["ei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",32460],"trp":["ize",5154],"lp":["ze","ez","aze","eza","ezi","eze","xi","axi","zize","ezz","zze","ezze"],"rp":["ize","ix"]},"38":{"input":[2,3,6],"tlp":["di",240613],"trp":["ke",66794],"tlw":["dedi",14715],"trw":["ise",4856],"lp":["di","ek","edi","esi","dedi","eki","dis","disi","dik","sek","eke","esk","dek","eski"],"rp":["ke","id","ide","ise","kes","idi"]},"39":{"input":[1,2,3,6],"tlp":["adi",32039],"trp":["kad",29760],"tlw":["size",2133],"trw":["kez",2647],"lp":["adi","dak","zd","daki","zde","dasi","disa","size","dai","zdi","diz","aske","azd"],"rp":["kad","kada","kadi","ida","kez","izd","izde"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",111166],"trp":["it",25283],"tlw":["v",314],"trw":["iv",158],"lp":["ti","tti","vi","vv","tit","vit","tv","vitt","vvi","titi"],"rp":["it","itt","itti","iti","iv","ivi"]},"41":{"input":[1,4,6],"tlp":["va",43131],"trp":["if",8297],"tlw":["atti",862],"trw":["itaat",146],"lp":["va","av","ati","fi","ava","afi","faz","atti","zat","avi","fif","afif","tav","ait","zav","zava"],"rp":["if","ita","ifa","ift"]},"42":{"input":[2,4,6],"tlp":["ci",93762],"trp":["ic",75936],"tlw":["cikti",1490],"trw":["ic",1182],"lp":["ci","sti","cik","tik","cti","sit","cikt","tk","tki","cis"],"rp":["ic","ici","kt","ist","isti","kti","ikt","kit","ikti","kc"]},"43":{"input":[1,2,4,6],"tlp":["cak",14208],"trp":["kat",11273],"tlw":["fakat",5422],"trw":["kac",836],"lp":["cak","aci","akt","fak","akti","acak","cika","akat","faka","vas","tak","avas","acik","zc"],"rp":["kat","kta","kac","ica","izc","kita"]},"44":{"input":[3,4,6],"tlp":["ri",163641],"trp":["ir",286103],"tlw":["ve",81408],"trw":["iri",579],"lp":["ri","ve","eri","ev","ver","tir","etti","eti","rti","evi","eve","vet","vr","veri","evet","etir","evr"],"rp":["ir","iri","ire"]},"45":{"input":[1,3,4,6],"tlp":["ari",56898],"trp":["ira",15785],"tlw":["var",7891],"trw":["itiraf",311],"lp":["ari","var","zer","zeri","arti","raz","eva","rafi","zar","tari","avr","zate","zir","zere","air","fir","azir","atir"],"rp":["ira","iraz"]},"46":{"input":[2,3,4,6],"tlp":["rk",38427],"trp":["iste",14557],"tlw":["tek",4748],"trw":["iste",3907],"lp":["rk","rdi","rek","cek","dir","erek","rke","rsi","ekt","tek","erk","sir","erke","erdi","ris"],"rp":["iste","ird","irdi","kte","kir"]},"47":{"input":[1,2,3,4,6],"tlw":["vardi",6467],"trw":["kadar",16753],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",370626],"trw":["in",526],"lp":[],"rp":["in","ni","ini","nin","hi","inin","ih","hin","ihi","nini","nih","hn","ihin","ihn","hni","ihni","hini","hnin","nni","hnn"]},"49":{"input":[1,5,6],"tlp":["ah",50091],"trp":["ha",92564],"tlw":["ah",1397],"trw":["izin",1006],"lp":["ah","ani","aha","anin","zin","ahi","zan"],"rp":["ha","ina","niz","han","izin","iniz","hiz","nz","haz","inan","hani","nina","hazi"]},"50":{"input":[2,5,6],"tlp":["sin",65670],"trp":["isin",17912],"tlw":["sinsi",110],"trw":["isin",932],"lp":["sin","sini","skin","sh"],"rp":["isin","kin","ins","nk","nki","ikin","his","kkin","nis","nsi","hs","nik","hiss","ji","hk","hik"]},"51":{"input":[1,2,5,6],"tlp":["asin",26353],"trp":["insa",12256],"tlw":["sanki",2615],"trw":["insan",3805],"lp":["asin","sina","akin","sah","sani","ank","sahi","anki","sank","ansi","akan"],"rp":["insa","kan","nasi","hak","hakk","has","kah","ikan","nsiz"]},"52":{"input":[3,5,6],"tlp":["eni",37090],"trp":["iy",103444],"tlw":["eh",335],"trw":["iyi",7728],"lp":["eni","eyi","enin","eh","eyin","ehi"],"rp":["iy","yi","he","ine","iye","iyi","yin","yeni","yni","niy","yine","niye","hen","hey"]},"53":{"input":[1,3,5,6],"tlp":["ayi",16661],"trp":["hay",12548],"tlw":["ayni",4770],"trw":["yani",4094],"lp":["ayi","ayni","zen","enz","aniy","ziy","ayin","enze","eniz","eyaz"],"rp":["hay","yani","iya","yaz","haya","hayi","yazi","yah","nze","iyan"]},"54":{"input":[2,3,5,6],"tlp":["endi",29457],"trp":["ind",72325],"tlw":["diye",15017],"trw":["kendi",7334],"lp":["endi","diy","din","sind","diye","esin","dini","siy","seni","sine","ediy"],"rp":["ind","ken","ndi","inde","kend","ydi","ndis","ndin","kiy"]},"55":{"input":[1,2,3,5,6],"tlw":["daha",20490],"trw":["kadin",3728],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",275568],"trp":["ib",28649],"tlw":["bin",1281],"trw":["hint",87],"lp":["bi","tin","bin","vin","th","tini","bit","bii"],"rp":["ib","ibi","ht","iht","hti","ihti","nti","nit","int","hib","hibi","inti"]},"57":{"input":[1,4,5,6],"tlp":["biz",10055],"trp":["hat",6156],"tlw":["biz",2560],"trw":["hatta",2528],"lp":["biz","abi","bizi","baz","fin","afin","bah","atin","tabi","bazi","tani","van","ahat","abah"],"rp":["hat","haf","hav","hava","hatt","hab"]},"58":{"input":[2,4,5,6],"tlp":["cin",41998],"trp":["icin",39248],"tlw":["cin",367],"trw":["icin",25984],"lp":["cin","cbi","bic","ch","bici","cini","vinc"],"rp":["icin","hic","inc","nci","icb","hicb","icbi","inci","kinc","nic","hc","nici","ich"]},"59":{"input":[1,2,4,5,6],"tlw":["baska",6795],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bir",195972],"trp":["her",22311],"tlw":["bir",148963],"trw":["her",15822],"lp":["bir","rin","erin","rini","beni","biri","rine","tiy","riy","evin","rh","rbi","birb"],"rp":["her","irin","yeri","yir","nri","yri","irb"]},"61":{"input":[1,3,4,5,6],"tlw":["biraz",4474],"trw":["hayir",2604],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["birden",2181],"trw":["icinde",7275],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["arasinda",3496],"trw":["yavas",1614],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",542],"trw":["o",25996],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","trp":["oa",60],"lp":[],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",67268],"trp":["os",16832],"tlw":["so",92],"lp":["so","sos"],"rp":["os","oso","oss"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",188],"trp":["osa",584],"lp":["wo","woo"],"rp":["osa","ow"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",1196],"trp":["oe",285],"trw":["-",13834],"lp":["eo","e-"],"rp":["oe","-e","-o"],"special":"punc"},"69":{"input":[1,3,7],"trp":["-a",61],"lp":[],"rp":["-a"]},"70":{"input":[2,3,7],"tlp":["do",35030],"trp":["od",5854],"tlw":["do",161],"lp":["do","dos","eso","edo","s-","s-s","s-se","sdo","dosd","deo"],"rp":["od","ose","-s","ode","oses","ood","osed","-se","osd","osdo"]},"71":{"input":[1,2,3,7],"tlp":["ado",548],"trp":["oda",4372],"trw":["odada",430],"lp":["ado","wood","eoda"],"rp":["oda","odas","odad","-w","-we","owe","oad"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["go",43595],"trp":["og",22300],"tlw":["g",946],"trw":["ot",144],"lp":["go","to","got","tto","gog","tog","tg","gg","gt","gto"],"rp":["og","ot","oto","ott","otto","otog","ogg","ogo"]},"73":{"input":[1,4,7],"tlp":["ag",32516],"trp":["of",2290],"tlw":["aga",174],"trw":["of",191],"lp":["ag","ga","aga","fo","tag","atag","ato","fot","foto","taga","fag","tfag","faga","ago","fog","fogg"],"rp":["of","oga","ofo","ota"]},"74":{"input":[2,4,7],"tlp":["co",29333],"trp":["oc",10369],"tlw":["goc",81],"trw":["oc",52],"lp":["co","coc","gos","gost","cog","sog","sto","sg","gs","gogs","tos","cos","gc","sgc","stos"],"rp":["oc","ost","osto","ogs","osc"]},"75":{"input":[1,2,4,7],"tlp":["sag",5201],"trp":["oca",3682],"tlw":["sag",869],"lp":["sag","cag","acag","asag","gac","agac","sof","saga","gas","sga","gaca","sofo","gasa","astg","asg"],"rp":["oca","ocas","osta","osca","ocag"]},"76":{"input":[3,4,7],"tlp":["ge",85092],"trp":["or",124494],"tlw":["gore",3389],"trw":["ote",515],"lp":["ge","eg","ger","gor","gr","gere","gore","ege","ro","rg","eger","gre","get","tor"],"rp":["or","ogr","ort","ore","ote","ogre"]},"77":{"input":[1,3,4,7],"tlp":["gar",3353],"trp":["orta",6084],"tlw":["fotograf",161],"trw":["orta",641],"lp":["gar","arg","rag","gra","efo","age","t-f","t-fa","gara","rato","ator","for","rof","graf","agr"],"rp":["orta","ora","-f","-fa","ogra"]},"78":{"input":[2,3,4,7],"tlp":["deg",18415],"trp":["ord",34113],"tlw":["gece",2933],"trw":["otede",232],"lp":["deg","gec","dog","dogr","sor","gece","gerc","gord","sord","ceg","dor","eceg","dort","gect","dost","dege","gd"],"rp":["ord","oste","ors"]},"79":{"input":[1,2,3,4,7],"tlw":["dag",243],"trw":["orada",2520],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",176917],"trw":["onu",9693],"lp":[],"rp":["un","on","nu","onu","unu","nun","onun","unun","no","nunu","ou","non","ono","nou","unn"]},"81":{"input":[1,5,7],"tlp":["ano",845],"trp":["una",8817],"trw":["ona",7053],"lp":["ano","anu","au","qu","anun","anon","aun"],"rp":["una","ona","unan","ua","nuna","uan","nano","onan"]},"82":{"input":[2,5,7],"tlp":["su",56434],"trp":["us",59637],"tlw":["su",6093],"trw":["us",133],"lp":["su","son","sun","sunu","sonu","sus","sons"],"rp":["us","usu","usun","nus","onus","nusu","osu","jo","ons","nsu","onsu","osun","ju"]},"83":{"input":[1,2,5,7],"tlp":["suna",877],"trp":["usa",2657],"tlw":["sona",460],"lp":["suna","sona","asu","anus","susa","ajo","sano","sau","saun","asus","anso"],"rp":["usa","usan","nusa","own","usaa","now","nown","osan","unas"]},"84":{"input":[3,5,7],"tlp":["enu",1411],"trp":["yo",85768],"trw":["onune",1033],"lp":["enu"],"rp":["yo","uy","yu","oy","uyo","uyu","une","one","uny","oyu","yun","nuy","oyun","nuyo","yon","unuy","n-","oyn","yone"]},"85":{"input":[1,3,5,7],"tlp":["anyo",338],"trp":["unya",5800],"trw":["yunan",253],"lp":["anyo","eona","eux","an-","que"],"rp":["unya","uya","uyan","oya","yuna","oyna","ux","nuya","yuya","onay","yoya","-ya","yano","oyan","yona"]},"86":{"input":[2,3,5,7],"tlp":["du",128153],"trp":["und",24604],"tlw":["dondu",1341],"trw":["onunde",1790],"lp":["du","soy","dus","dusu","don","dun","duny","duy","sund"],"rp":["und","unde","ud","ndu","ond","nund","undu","udu","ydu","uyd","uydu"]},"87":{"input":[1,2,3,5,7],"tlw":["sonunda",2463],"trw":["ondan",1762],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bu",129214],"trp":["ug",30997],"tlw":["bu",59152],"trw":["not",308],"lp":["bu","gu","tu","gun","bun","bo","tun","gunu","bunu","but","butu"],"rp":["ug","ugu","ut","ugun","utu","utun","otu","ng","ogu"]},"89":{"input":[1,4,5,7],"tlp":["bag",4649],"trp":["uf",2044],"tlw":["buna",2248],"lp":["bag","ang","abu","fon","buna","font","anbu","gan","guna","fu","tuta","agan"],"rp":["uf","uta","utf","ufa","utan","uga","uba","nag"]},"90":{"input":[2,4,5,7],"tlp":["cu",29850],"trp":["uc",23984],"tlw":["bos",1277],"trw":["uc",3579],"lp":["cu","stu","cun","cocu","guc","stun","sunc","bos","cug","cogu"],"rp":["uc","ust","ucu","ustu","unc","onc","ocu","ucun","nuc","onuc"]},"91":{"input":[1,2,4,5,7],"tlw":["fonts",354],"trw":["usta",320],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",61296],"trp":["ur",80226],"tlw":["gene",1320],"trw":["uygun",1047],"lp":["ru","tur","boy","buy","buyu","gru","run","gen","bur","goru"],"rp":["ur","yor","oru","onr","uru","uyor","yoru","ogru","orun","ure"]},"93":{"input":[1,3,4,5,7],"tlw":["buraya",1264],"trw":["ortaya",2163],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["dogru",6276],"trw":["once",6114],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["sonra",17553],"trw":["oradan",704],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["li",153361],"trw":["l",1692],"lp":[],"rp":["li","il","ol","ili","ll","lli","ill","lo","oll","oli","illi","lil","olo","io","ilo","lili","ool","llo"]},"97":{"input":[1,6,7],"tlp":["al",111125],"trp":["la",193014],"tlw":["al",750],"trw":["la",412],"lp":["al","ali","zl","ala","zla","all","zo","alla","azl","zli","azla"],"rp":["la","ola","oz","ila","lla","ozl","izl","izli","izla"]},"98":{"input":[2,6,7],"tlp":["sl",30642],"trp":["ok",45144],"tlw":["sol",615],"trw":["ilk",4866],"lp":["sl","sil","sli","sili"],"rp":["ok","ko","kl","lik","lk","lis","kli","kil","ikl","ls","isl","lki","ols","ilk","kol","likl"]},"99":{"input":[1,2,6,7],"tlp":["asl",17339],"trp":["kal",18830],"tlw":["soz",2999],"trw":["olsa",1993],"lp":["asl","sla","asla","akl","asil","soz","sal","alis","akla","asli","alk","akli"],"rp":["kal","kla","las","lak","kala","lasi","kali","lsa"]},"100":{"input":[3,6,7],"tlp":["el",88486],"trp":["le",161881],"tlw":["el",1633],"trw":["ile",9283],"lp":["el","eli","ele","ell","elli","elle","elel","elil"],"rp":["le","ile","lle","ille","ole","lel","leo","-i","lee","leli","lele","i-"]},"101":{"input":[1,3,6,7],"tlp":["zle",10682],"trp":["ozle",8085],"tlw":["aile",576],"trw":["ozel",1294],"lp":["zle","zel","ale","ela","zell","aile","alle","zeli","elal","ael","elia","eal","ezil","ezel","azel","aale"],"rp":["ozle","oze","ozel","izle"]},"102":{"input":[2,3,6,7],"tlp":["dil",10774],"trp":["ld",66610],"tlw":["sekilde",2905],"trw":["kisisel",342],"lp":["dil","ekl","eld","sle","sel","eldi","dol","dile","esl","ekli"],"rp":["ld","old","ldi","ild","ildi","kle","lde","led","ledi","ikle"]},"103":{"input":[1,2,3,6,7],"tlw":["aldi",1426],"trw":["kaldi",1084],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["gi",137313],"trp":["ig",40159],"tlw":["gitti",1369],"trw":["ilgili",1508],"lp":["gi","gil","tl","gl","tig","tigi","git","gili","tli","vl"],"rp":["ig","igi","lt","lg","lti","ilg","lgi","ilgi","lig","ligi"]},"105":{"input":[1,4,6,7],"tlp":["agi",15275],"trp":["lat",3470],"tlw":["fazla",3194],"trw":["laf",255],"lp":["agi","goz","alt","alti","gozl","agl","atl","fazl","tal","gla","tla","zg","agla","giz","val","atli","agli","gal","gz"],"rp":["lat"]},"106":{"input":[2,4,6,7],"tlp":["cok",19740],"trp":["okt",7640],"tlw":["cok",17627],"trw":["isigi",416],"lp":["cok","cl","cil","gis","sig","gisi","cli","sigi"],"rp":["okt","likt","kot","koc","lc","ktig","lic","olc","list","isig","kto","okto"]},"107":{"input":[1,2,4,6,7],"tlw":["asagi",1220],"trw":["olacak",1662],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rl",31288],"trp":["ler",57971],"tlw":["geri",3197],"trw":["ileri",1117],"lp":["rl","egi","gel","egil","rli","gir","rle","erl","geli","rler","erle","gele","eler"],"rp":["ler","leri","lir","iler","irl","ilir","irli"]},"109":{"input":[1,3,4,6,7],"tlw":["agir",1726],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["degil",8435],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["farkli",1113],"trw":["olarak",9384],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["nl",58209],"trw":["unlu",539],"lp":[],"rp":["nl","lu","ul","olu","lin","ulu","unl","nli","onl","lun","inl","hu","ln","lni","uh","ulun","ho","olun","lini","ilin"]},"113":{"input":[1,5,6,7],"tlp":["anl",26128],"trp":["uz",53334],"tlw":["allah",1522],"trw":["olan",10895],"lp":["anl","zu","anla","zun","anli","aln","alni"],"rp":["uz","nla","lan","hal","uzu","olan","uzun","onla","unla","ula","lniz","ozu","uza"]},"114":{"input":[2,5,6,7],"tlp":["sul",3102],"trp":["ku",42732],"tlw":["soluk",557],"trw":["olsun",2457],"lp":["sul"],"rp":["ku","uk","kon","konu","oku","unk","kul","nku","unku","ukl","luk","nlik","kus","kun","uks","lsu","olsu","lsun","lus"]},"115":{"input":[1,2,5,6,7],"tlw":["sozunu",629],"trw":["nasil",6031],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eyl",6217],"trp":["yl",48761],"tlw":["elini",1491],"trw":["oyle",5326],"lp":["eyl","elin","eyle","elen"],"rp":["yl","iyo","yle","oyl","oyle","liy","liyo","yil","len","yol","iyl","nle","ley","luy","iliy","luyo"]},"117":{"input":[1,3,5,6,7],"trw":["yalniz",2707],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["soyle",2267],"trw":["yok",5734],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["aslinda",1786],"trw":["halde",2581],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bil",29017],"trp":["igin",12379],"tlw":["gibi",22656],"trw":["oglu",704],"lp":["bil","gib","gibi","gin","bul","bili","gini","bunl","bulu","gul","vu","bol","glu"],"rp":["igin","ngi","uv","ltin","lb","utl","ult"]},"121":{"input":[1,4,5,6,7],"tlw":["bulunan",1116],"trw":["hangi",1195],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cunku",5282],"trw":["kucuk",4807],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["sultan",928],"trw":["kabul",2501],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["bile",8084],"trw":["olur",3157],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["guzel",3729],"trw":["uzerine",3191],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["buyuk",8285],"trw":["oldugunu",7814],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["basladi",3009],"trw":["uzerinde",2861],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trw":["p",380],"lp":[],"rp":[]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",33487],"trp":["pa",24487],"trw":["papa",112],"lp":["ap","apa"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",921],"trp":["ps",3704],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["sap",796],"trp":["pas",1542],"trw":["pasa",973],"lp":["sap","spa","aps","asp","sapa","aspa","saps","apsa"],"rp":["pas","pasa","pasp","psa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",9410],"trp":["pe",13191],"trw":["'",2126],"lp":["ep","e'","epe"],"rp":["pe","'e","''","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["a'",2478],"trp":["'a",813],"lp":["a'","epa","ape","x'","ax'","a'e"],"rp":["'a","pa'"]},"134":{"input":[2,3,8],"tlp":["eps",2946],"trp":["'d",2842],"trw":["'de",625],"lp":["eps","s'","e'd","e'de","epes","d'","esp","eped","spe","s'e","es'","spee"],"rp":["'d","'de","pes","ped","pede","pse","pd","pds"]},"135":{"input":[1,2,3,8],"tlp":["sa'",753],"trp":["'da",1650],"trw":["'da",254],"lp":["sa'","a'd","a'da","asa'","esap","apad","sa'd","da'","aspe","apse","apd","apds","d'a"],"rp":["'da","pad","pa'd"]},"136":{"input":[4,8],"tlp":["tp",76],"trp":["pt",7654],"trw":["pt",1404],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",5195],"trp":["pta",1168],"trw":["pat",52],"lp":["apt","tap","apta","apat","tapt"],"rp":["pta","pat","patt","pata"]},"138":{"input":[2,4,8],"trp":["pc",141],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["apac",1249],"trp":["pac",1249],"lp":["apac","apc","apca","spat","cap"],"rp":["pac","paca","pca"]},"140":{"input":[3,4,8],"tlp":["rp",1331],"trp":["pr",3486],"tlw":["tepe",103],"trw":["'te",217],"lp":["rp","tep","tepe","r'","re'","ere'","er'","rpt","ept","epte","rpe","rper"],"rp":["pr","per","'t","pre","pet","'te","petr","pte"]},"141":{"input":[1,3,4,8],"tlp":["apar",1698],"trp":["par",11587],"tlw":["arap",301],"trw":["para",1673],"lp":["apar","rap","arp","arap","ra'","tepa","f'","rpa","arpa","ara'","arpt","apr","apra"],"rp":["par","para","pra","part","patr","'ta","pera"]},"142":{"input":[2,3,4,8],"tlp":["cep",294],"trp":["perd",423],"tlw":["cep",124],"trw":["perde",178],"lp":["cep","step","s't","s'te","tesp","r'd","er'd","sper","re'd","ecep","ste'"],"rp":["perd","perc","pers"]},"143":{"input":[1,2,3,4,8],"tlw":["sarap",440],"trw":["parca",649],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["nm",9106],"trw":["m",1569],"lp":[],"rp":["nm","pm","mm","mp","mn"]},"145":{"input":[1,5,8],"tlp":["am",92732],"trp":["ma",129330],"tlw":["ama",21666],"trw":["mana",161],"lp":["am","ama","aman","apm","apma","anm","amam","anma","apan","amm"],"rp":["ma","man","mam","pma","nma","pan","mana","mpa","nam","mama"]},"146":{"input":[2,5,8],"tlp":["sm",13256],"trp":["ms",8305],"lp":["sm"],"rp":["ms","mps"]},"147":{"input":[1,2,5,8],"tlp":["sma",8191],"trp":["mas",9911],"tlw":["sam",348],"trw":["masa",380],"lp":["sma","sam","sman","asam","sama","asm","asma","amas","ams","smas","sanm","span","ssam"],"rp":["mas","masa","msa","pmas","nmas","maj","mans"]},"148":{"input":[3,5,8],"tlp":["em",49576],"trp":["me",74751],"tlw":["epey",418],"trw":["yemeye",95],"lp":["em","eme","emen","enm","emey"],"rp":["me","men","mey","meye","nem","'n","mem","nme","yem","ym","yeme","'y","pen","pey","y'"]},"149":{"input":[1,3,5,8],"tlp":["ame",2729],"trp":["yap",17207],"tlw":["annem",417],"trw":["yapan",657],"lp":["ame","amay","ema","a'n","amen","an'","a'y","eyma","a'ya"],"rp":["yap","may","maya","yapa","yapm","yma","'ya","mame","pmay","yman","pay"]},"150":{"input":[2,3,5,8],"tlp":["dem",6920],"trp":["md",15044],"tlw":["demeye",98],"trw":["'den",147],"lp":["dem","deme","sme","esm","emed","sem","ems","edem"],"rp":["md","mse","mes","med","mde","mede","mese","msey","meyd","mden","msen","msed"]},"151":{"input":[1,2,3,5,8],"tlw":["adam",4638],"trw":["meydana",782],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",17169],"trp":["mb",2359],"lp":["tm"],"rp":["mb","mt"]},"153":{"input":[1,4,5,8],"tlp":["tam",6202],"trp":["mat",647],"tlw":["tam",3821],"lp":["tam","tma","atm","tama","atma","bam","abam","amb","fam","amba","afam","apab","tatm","tman"],"rp":["mat","mba","mant","pab","ptan","pant"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",3662],"trp":["mc",1577],"lp":["cm"],"rp":["mc"]},"155":{"input":[1,2,4,5,8],"tlw":["cam",364],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",25050],"trp":["mer",5044],"tlw":["etmeye",820],"trw":["mr",413],"lp":["rm","etm","tme","rme","etme","tem","erm","erme","teme","tmey","rmey","rem","renm","term","ry'","rry'"],"rp":["mer","met","mr","mbe"]},"157":{"input":[1,3,4,5,8],"tlw":["tamamen",907],"trw":["yapar",447],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["sebep",489],"trw":["pencereden",421],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["stepan",214],"trw":["jandarma",125],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["ip",23109],"trw":["ip",98],"lp":[],"rp":["ip","pi","pip","ipi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",10616],"trp":["paz",682],"trw":["papaz",183],"lp":["api","apip","apaz","zip","azip","zap","azap"],"rp":["paz","paza"]},"162":{"input":[2,6,8],"tlp":["sip",883],"trp":["kip",3619],"tlw":["sikisip",77],"trw":["pis",531],"lp":["sip","spi"],"rp":["kip","psi","pis","pk","pisi","pki","ipk","ipki","ikip","psik","isip","pik","pkk","kipk","isp","pisk","ipik","kipi"]},"163":{"input":[1,2,6,8],"tlp":["apis",1831],"trp":["kap",8447],"tlw":["sapka",135],"trw":["kapi",974],"lp":["apis","akip","asip","apk","apka","sapk","apsi"],"rp":["kap","kapi","kapa","pka","ispa","pkas","pak","kapk","paki"]},"164":{"input":[3,6,8],"tlp":["epi",576],"trp":["'i",3340],"trw":["'i",87],"lp":["epi","e'i"],"rp":["'i","i'","ipe","ie'","pie"]},"165":{"input":[1,3,6,8],"tlp":["x'i",65],"trp":["pez",51],"lp":["x'i","ax'i"],"rp":["pez","peze"]},"166":{"input":[2,3,6,8],"tlp":["epsi",2946],"trp":["pek",6932],"tlw":["edip",667],"trw":["pek",4304],"lp":["epsi","dip","edip","ekip","ski'","epk","epki","espi","esip","s'i"],"rp":["pek","peki","idip","pesi","pid","k'","is'","ipek","ki'","k'i"]},"167":{"input":[1,2,3,6,8],"trw":["kapida",236],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2155],"trp":["pti",4694],"tlw":["tip",299],"trw":["itip",81],"lp":["tip","tipi"],"rp":["pti","ipt","ipti","pit","itip"]},"169":{"input":[1,4,6,8],"tlp":["apti",4186],"trp":["itap",1997],"tlw":["atip",257],"lp":["apti","vap","atip","apit"],"rp":["itap","pav","pati","ipta","pita"]},"170":{"input":[2,4,6,8],"tlp":["cip",1668],"trp":["ptik",601],"tlw":["tipki",865],"trw":["icip",79],"lp":["cip","tipk","spit"],"rp":["ptik","pic","pici","icip","pist"]},"171":{"input":[1,2,4,6,8],"tlw":["takip",521],"trw":["kitap",795],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",3191],"trp":["irip",1440],"tlw":["verip",240],"trw":["pir",218],"lp":["rip","ri'","rpi","erip","ti'","rpti","r'i","re'i","ver'","er'i","rpip","rpri"],"rp":["irip","pir","piri","ptir","iti'","peri","irp","pri"]},"173":{"input":[1,3,4,6,8],"trw":["parti",379],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["cekip",471],"trw":["kirip",55],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["cevap",1689],"trw":["parcasi",437],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["im",97151],"trw":["mi",12284],"lp":[],"rp":["im","mi","min","nim","imi","nmi","mini","hip","hm","imin","inm","ph","pin","nip","pini","pmi","inmi","him","imp","nimi"]},"177":{"input":[1,5,6,8],"tlp":["zam",15802],"trp":["miz",5126],"tlw":["zaman",9588],"trw":["hanim",555],"lp":["zam","zama","ami","zim","amin","anim","ahip","zm","ahm","anmi"],"rp":["miz","maz","ima","izim","imiz","mani","mizi","mah","ham","mami"]},"178":{"input":[2,5,6,8],"tlp":["sim",12135],"trp":["mis",35215],"tlw":["simsiki",221],"trw":["kim",1847],"lp":["sim","smi"],"rp":["mis","kim","km","ism","ims","kims","ikm","misi","mk","kmi","nmis","kmis","kimi","ismi","isim","msi","ikmi","psin"]},"179":{"input":[1,2,5,6,8],"tlw":["aksam",1411],"trw":["misiniz",745],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",12554],"trp":["hem",8923],"tlw":["emin",834],"trw":["hemen",4788],"lp":["emi","enim","emin","emiy"],"rp":["hem","miy","hep","heme","'ni","'nin","piy","'in","ime","yim","yip","i'n","i'ni","hme","nemi","piyi"]},"181":{"input":[1,3,5,6,8],"tlw":["annemin",178],"trw":["hepimiz",316],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["simdi",5781],"trw":["kimse",1852],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["adamin",1501],"trw":["kapiyi",1057],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",7187],"trp":["itm",2987],"tlw":["tim",161],"trw":["mit",80],"lp":["tim","tmi","ttim","vim","timi","bitm","tmin","thm"],"rp":["itm","itmi","itim","ptim","mit","hipt","mbi","htim","ptin","imb","imbi","ntim"]},"185":{"input":[1,4,5,6,8],"tlw":["bizim",2636],"trw":["mavi",631],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["cikmis",550],"trw":["mistik",111],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["canim",596],"trw":["kaptan",268],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["benim",6122],"trw":["yirmi",1140],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["tanrim",479],"trw":["yapti",759],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["etmek",2074],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["devam",2432],"trw":["yardim",1282],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",8798],"lp":[],"rp":["op","po","opo","pop","popo","poo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",362],"trp":["opa",623],"tlw":["apo",61],"lp":["apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["sop",218],"trp":["pos",264],"lp":["sop","spo"],"rp":["pos","opos","osp","pso"]},"195":{"input":[1,2,7,8],"tlp":["sopa",88],"trp":["pow",86],"tlw":["sopa",88],"lp":["sopa"],"rp":["pow"]},"196":{"input":[3,7,8],"tlp":["eop",251],"trp":["ope",871],"lp":["eop"],"rp":["ope","o'"]},"197":{"input":[1,3,7,8],"tlp":["eopa",251],"lp":["eopa"],"rp":[]},"198":{"input":[2,3,7,8],"tlp":["do'",50],"trp":["od'",59],"lp":["do'"],"rp":["od'","ood'"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",5867],"trp":["opt",260],"tlw":["top",230],"lp":["top"],"rp":["opt","pot","pott"]},"201":{"input":[1,4,7,8],"tlp":["apag",165],"trp":["pag",1236],"lp":["apag"],"rp":["pag","opat","opag","paga","pota"]},"202":{"input":[2,4,7,8],"tlp":["cop",181],"trp":["post",126],"tlw":["cop",181],"trw":["otostop",67],"lp":["cop","stop"],"rp":["post"]},"203":{"input":[1,2,4,7,8],"trw":["posta",126],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["topr",1446],"trp":["opr",1640],"trw":["potter",167],"lp":["topr","rop"],"rp":["opr","pro","-top","por","prog","peg","opeg","prop","oper","port","prot"]},"205":{"input":[1,3,4,7,8],"tlw":["topraga",181],"trw":["page",832],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["spor",119],"trw":["protesto",51],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["profesor",263],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["um",48695],"trw":["mu",2378],"lp":[],"rp":["um","mu","up","umu","om","mo","unm","mun","omu","umun","mum","nmu","onm","nup","num","onup","unmu","pu","onmu","mnu"]},"209":{"input":[1,5,7,8],"tlp":["amu",724],"trp":["uma",3601],"lp":["amu","ammu","amo","apon"],"rp":["uma","oma","upa","unma","uman","oman","mua","numa","pau","pamu","muna","namu","uam","muam"]},"210":{"input":[2,5,7,8],"tlp":["sunm",1248],"trp":["mus",15207],"trw":["musun",1010],"lp":["sunm","sup","smu","smus","sum","som"],"rp":["mus","usm","nusm","ums","osm","musu","umus","nmus","msu","usmu","umsu","usup","mos","osum"]},"211":{"input":[1,2,5,7,8],"trw":["osman",247],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emnu",603],"trp":["onem",4198],"trw":["memnun",488],"lp":["emnu","emu"],"rp":["onem","ume","yum","muy","unme","yumu","ome","uym","ymu","muyo","'u","memu","uyum","oym","onme","o'n","umuy","'un"]},"213":{"input":[1,3,5,7,8],"trw":["maymun",120],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["donup",819],"trw":["muydu",265],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["dusman",463],"trw":["musaade",167],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tum",4398],"trp":["mut",4536],"tlw":["tum",2174],"trw":["umut",237],"lp":["tum","gum","gm","gumu","tom","tup","gmu","ttom","tutm","tumu","tmu","gom"],"rp":["mut","ugum","utm","omut","nutm","umut","utmu","utup"]},"217":{"input":[1,4,5,7,8],"tlw":["bomba",100],"trw":["mutfaga",167],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["gumus",409],"trw":["unutmus",110],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["cuma",169],"trw":["mustafa",624],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["grup",385],"trw":["oturup",540],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["ragmen",1330],"trw":["yagmur",493],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["durum",881],"trw":["oturmus",358],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["durumda",912],"trw":["propaganda",168],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",6579],"trw":["pol",144],"lp":[],"rp":["pl","lip","opl","pil","pol","poli","ilip","ipl","lp","pli","pili","ilp","pilo","ipli","pool"]},"225":{"input":[1,6,7,8],"tlp":["apil",2908],"trp":["pla",4024],"tlw":["alip",1109],"lp":["apil","alip","apl","apla","apal","alp","apli"],"rp":["pla","opla","pila","pal","pali","ipla","lap","olap"]},"226":{"input":[2,6,7,8],"tlp":["skop",138],"trp":["kop",1470],"tlw":["silip",98],"trw":["polis",725],"lp":["skop","sipl"],"rp":["kop","lkip","kopo","pisl"]},"227":{"input":[1,2,6,7,8],"trw":["kapali",519],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elip",1112],"trp":["l'",1267],"trw":["poole",60],"lp":["elip","el'","el'i","epl","eple"],"rp":["l'","'l","ple","l'i","leop","li'","lep","'le","le'","lle'","le'i","iple","'li","ll'","ll'i"]},"229":{"input":[1,3,6,7,8],"trw":["la'e",56],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"trw":["kopek",433],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["dolasip",126],"trw":["pekala",402],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topl",3261],"trp":["ptig",2000],"trw":["popov",105],"lp":["topl","gip"],"rp":["ptig","ptil","pov","opov"]},"233":{"input":[1,4,6,7,8],"tlw":["aptal",428],"trw":["iptal",64],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["politik",151],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["ciplak",453],"trw":["politika",153],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["gelip",1112],"trw":["piril",272],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["garip",992],"trw":["pavel",210],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["gidip",1162],"trw":["polisler",126],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["toprak",602],"trw":["parlak",776],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["lm",46943],"trw":["olup",1530],"lp":[],"rp":["lm","olm","lmi","ilm","ml","lim","lum","ilmi","lmu","mli","olmu","olum","mil","iml","ulm","ilim","lup","plu","oplu","olup"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["anlamina",563],"trw":["olmaz",1004],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["sokup",136],"trw":["olmus",1359],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["almak",825],"trw":["olmak",1877],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["elimi",221],"trw":["onemli",2111],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["almaya",456],"trw":["olmayan",1555],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["soylemek",674],"trw":["oldum",429],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["aldim",504],"trw":["olmadi",572],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["bolum",547],"trw":["mutlu",849],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",181],"trw":["hamilton",186],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["gitmis",374],"trw":["olmustu",1519],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["baslamisti",1046],"trw":["kocaman",640],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["biliyorum",953],"trw":["muhtemelen",286],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["zamanlar",874],"trw":["yaptigi",1060],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gormek",1084],"trw":["istiyorum",996],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["basladim",495],"trw":["olmadigini",1197],"lp":[],"rp":[]}} \ No newline at end of file +{"0":{"value":0,"notes":["Developer : Zack Dennis (zack@asetniop.com)","Date : 12/12/2014","All code (c) 2014 Pointesa, LLC all rights reserved","Abbreviations : ","tlp = top left partial","lp = left partials","trp = top right partial","rp = right partials","tlw = top left word","lw = left words","trw = top right word","rw = right words"]},"1":{"input":[1],"base":"a","baseshift":"A","tlp":["aa",4698],"tlw":["a",3554],"lp":["aa"],"rp":[]},"2":{"input":[2],"base":"s","baseshift":"S","tlp":["ss",4821],"tlw":["s",2414],"lp":["ss"],"rp":[]},"3":{"input":[1,2],"base":"w","baseshift":"W","tlp":["as",119382],"tlw":["www",328],"lp":["as","sa","asa","saa","sas","asas","ww","ssa","ass","www","assa","aw","ssas","wa","was","aas"],"rp":[]},"4":{"input":[3],"base":"e","baseshift":"E","tlp":["ee",787],"tlw":["e",2415],"lp":["ee","eee"],"rp":[]},"5":{"input":[1,3],"base":"x","baseshift":"X","tlp":["ea",1611],"tlw":["x",136],"lp":["ea","ax","ex","ae"],"rp":[]},"6":{"input":[2,3],"base":"d","baseshift":"D","tlp":["de",225606],"tlw":["de",36223],"lp":["de","se","ed","es","ede","ded","ses","ese","dd","des","ess","dde","sed","sse","sess","ds","ssed","sede","dede","ddes"],"rp":[]},"7":{"input":[1,2,3],"tlp":["da",206254],"tlw":["da",34321],"lp":["da","ad","ada","ade","sad","das","sade","adas","esa","dad","add","we","asad","adde","dea","dada","eda","ew","esas","ades"],"rp":[]},"8":{"input":[4],"base":"t","baseshift":"T","tlp":["tt",24695],"tlw":["t",1015],"lp":["tt"],"rp":[]},"9":{"input":[1,4],"base":"f","baseshift":"F","tlp":["ta",77585],"tlw":["ta",701],"lp":["ta","at","fa","af","att","ata","aat","afa","tta","atta","ft","tat","fta","aft","afta","tf","taf","tafa","fat","tfa"],"rp":[]},"10":{"input":[2,4],"base":"c","baseshift":"C","tlp":["st",68030],"tlw":["c",1161],"lp":["st","ct","ts","tc","sc","cs","cc","stc"],"rp":[]},"11":{"input":[1,2,4],"tlp":["ca",58921],"tlw":["saat",1953],"lp":["ca","ac","aca","sta","ast","tas","saat","asta","sac","cas","sat","fas","afas","act","ats","saf","tsa","fac","cat","staf"],"rp":[]},"12":{"input":[3,4],"base":"r","baseshift":"R","tlp":["er",226224],"tlw":["r",1919],"lp":["er","re","te","et","ere","rt","ter","ett","ret","tr","rr","ete","rer","ert","etr","tte","eter","tre","tere","ette"],"rp":[]},"13":{"input":[1,3,4],"tlp":["ar",265101],"tlw":["ara",805],"lp":["ar","ra","ara","tar","ef","fe","art","rar","are","rta","raf","tara","efe","ate","far","araf","arar","era","aret","rat"],"rp":[]},"14":{"input":[2,3,4],"tlp":["rd",94145],"tlw":["eder",1592],"lp":["rd","ce","ec","rs","ece","ste","der","erd","rc","rde","erc","rce","erce","tes","ster","erde","eder","cer","dec","dece"],"rp":[]},"15":{"input":[1,2,3,4],"tlp":["ard",24858],"tlw":["sadece",3474],"lp":["ard","dar","adar","rad","rada","sar","ars","ras","aras","rda","arda","rsa","adec","car","arc","rca","arca","sara","arad","ates"],"rp":[]},"16":{"input":[5],"base":"n","baseshift":"N","trp":["nn",4449],"trw":["n",2786],"lp":[],"rp":["nn"]},"17":{"input":[1,5],"base":"q","baseshift":"Q","tlp":["an",238539],"trp":["na",72648],"tlw":["an",2138],"trw":["na",265],"lp":["an","ana","ann","anan","anna","anaa"],"rp":["na","nan","nana","nna","naa"]},"18":{"input":[2,5],"base":"j","baseshift":"J","tlp":["sn",731],"trp":["ns",19851],"trw":["j",258],"lp":["sn","sj"],"rp":["ns"]},"19":{"input":[1,2,5],"tlp":["san",27441],"trp":["nsa",12550],"tlw":["sana",3065],"trw":["jan",70],"lp":["san","sana","ans","asan","aj","sans","anas","sna","ansa","saj","wn","snas","aja","ajan"],"rp":["nsa","nsan","nas","ja","jan","jas"]},"20":{"input":[3,5],"base":"y","baseshift":"Y","tlp":["en",210551],"trp":["ne",100917],"tlw":["en",11061],"trw":["ne",21701],"lp":["en","ey","eye","ene","eyen","enn","enen","enne","eyn","eney"],"rp":["ne","ye","yen","yn","ny","nne","ney","nen","neye","yey"]},"21":{"input":[1,3,5],"tlp":["ay",82752],"trp":["ya",146697],"tlw":["ay",1315],"trw":["ya",9294],"lp":["ay","aya","ayn","ayan","eya","aye","anne","ane","ena","ean","ayna"],"rp":["ya","yan","nya","yana","yay","yna","nyan","nyay","nay"]},"22":{"input":[2,3,5],"tlp":["den",42341],"trp":["nd",145890],"tlw":["sey",11559],"trw":["neden",3186],"lp":["den","end","sey","sen","eden","eyd","sy","ende","eys","eyse","dey"],"rp":["nd","nde","yd","nden","ned","nede","nes","ys","yse"]},"23":{"input":[1,2,3,5],"tlp":["dan",31876],"trp":["nda",59116],"tlw":["anda",2147],"trw":["yandan",1000],"lp":["dan","and","anda","adan","say","ayd","day","sya","daya","saya"],"rp":["nda","ndan","yas","yasa","yda","yad","yand","yada","ydan","nyad"]},"24":{"input":[4,5],"base":"b","baseshift":"B","tlp":["bb",403],"trp":["nt",8039],"tlw":["b",1063],"lp":["bb","bn","tn"],"rp":["nt","nb","ntt"]},"25":{"input":[1,4,5],"tlp":["ba",93513],"trp":["nat",1344],"tlw":["bana",7207],"lp":["ba","ab","tan","aba","ban","bana","bab","baba","tab","aban","ant","bat","anb","tanb","atan","anat","anta","taba"],"rp":["nat","nta"]},"26":{"input":[2,4,5],"tlp":["cb",5912],"trp":["nc",43318],"lp":["cb","sb","bs"],"rp":["nc","nst","nts","nct","ncs"]},"27":{"input":[1,2,4,5],"tlp":["bas",33680],"trp":["nca",9555],"tlw":["bas",1003],"lp":["bas","anc","anca","can","sab","stan","saba","cab","abas","basa","banc","caba","bast","acab","bac","baca","acan"],"rp":["nca","jac","nanc"]},"28":{"input":[3,4,5],"tlp":["be",64335],"trp":["nr",22775],"tlw":["ben",11408],"trw":["yere",2638],"lp":["be","ben","ren","ten","ber","rb","bey","eb","ry","rn","rey","rry","bet"],"rp":["nr","yer","yet","ner","yr","yere","nere"]},"29":{"input":[1,3,4,5],"tlp":["ran",8536],"trp":["nra",19010],"tlw":["bay",1366],"trw":["nefret",613],"lp":["ran","ray","ayr","bay","ayat","rab","fen","anr","tanr","raya","abe","aber","bar","tay","aran","efen"],"rp":["nra","yar","yat","yara"]},"30":{"input":[2,3,4,5],"tlp":["enc",7430],"trp":["nce",17802],"tlw":["bes",2395],"trw":["yerde",2084],"lp":["enc","rden","bes","cen","ence","ecen","bend","bed","eyec","seb","sebe","cey","bede","denb","renc"],"rp":["nce","yerd","yec","ncer","yece"]},"31":{"input":[1,2,3,4,5],"tlw":["cay",353],"trw":["nefes",591],"lp":[],"rp":[]},"32":{"input":[6],"base":"i","baseshift":"I","trp":["ii",3027],"trw":["i",6002],"lp":[],"rp":["ii","iii"]},"33":{"input":[1,6],"base":"z","baseshift":"Z","tlp":["az",37543],"trp":["iz",67417],"tlw":["az",2781],"trw":["iz",185],"lp":["az","zi","za","azi","ai","aza","zz","zza","ziz","aziz","azz","azza","aiz","zizi"],"rp":["iz","izi","ia","iza","izz","izza"]},"34":{"input":[2,6],"base":"k","baseshift":"K","tlp":["si",195648],"trp":["is",144843],"tlw":["sik",1643],"trw":["ki",13823],"lp":["si","sk","sik","ski","sis"],"rp":["is","ki","ik","isi","iki","kis","ks","kisi","kk","kki","ksi","isik","isk","iss","ikk"]},"35":{"input":[1,2,6],"tlp":["ak",120301],"trp":["ka",146870],"tlw":["siz",2295],"trw":["kiz",2838],"lp":["ak","asi","aki","siz","ask","aka","ska","aska","aks","sizi","akk","sak"],"rp":["ka","ika","isa","kiz","ksa","kas","kasi","kka"]},"36":{"input":[3,6],"base":",","baseshift":"<","tlp":["ei",1119],"trp":["ie",1447],"lp":["ei"],"rp":["ie"],"special":"punc"},"37":{"input":[1,3,6],"tlp":["ze",32460],"trp":["ize",5154],"lp":["ze","ez","aze","eza","ezi","eze","xi","axi","zize","ezz","zze","ezze"],"rp":["ize","ix"]},"38":{"input":[2,3,6],"tlp":["di",240613],"trp":["ke",66794],"tlw":["dedi",14715],"trw":["ise",4856],"lp":["di","ek","edi","esi","dedi","eki","dis","disi","dik","sek","eke","esk","dek","eski"],"rp":["ke","id","ide","ise","kes","idi"]},"39":{"input":[1,2,3,6],"tlp":["adi",32039],"trp":["kad",29760],"tlw":["size",2133],"trw":["kez",2647],"lp":["adi","dak","zd","daki","zde","dasi","disa","size","dai","zdi","diz","aske","azd"],"rp":["kad","kada","kadi","ida","kez","izd","izde"]},"40":{"input":[4,6],"base":"v","baseshift":"V","tlp":["ti",111166],"trp":["it",25283],"tlw":["v",314],"trw":["iv",158],"lp":["ti","tti","vi","vv","tit","vit","tv","vitt","vvi","titi"],"rp":["it","itt","itti","iti","iv","ivi"]},"41":{"input":[1,4,6],"tlp":["va",43131],"trp":["if",8297],"tlw":["atti",862],"trw":["itaat",146],"lp":["va","av","ati","fi","ava","afi","faz","atti","zat","avi","fif","afif","tav","ait","zav","zava"],"rp":["if","ita","ifa","ift"]},"42":{"input":[2,4,6],"tlp":["ci",93762],"trp":["ic",75936],"tlw":["cikti",1490],"trw":["ic",1182],"lp":["ci","sti","cik","tik","cti","sit","cikt","tk","tki","cis"],"rp":["ic","ici","kt","ist","isti","kti","ikt","kit","ikti","kc"]},"43":{"input":[1,2,4,6],"tlp":["cak",14208],"trp":["kat",11273],"tlw":["fakat",5422],"trw":["kac",836],"lp":["cak","aci","akt","fak","akti","acak","cika","akat","faka","vas","tak","avas","acik","zc"],"rp":["kat","kta","kac","ica","izc","kita"]},"44":{"input":[3,4,6],"tlp":["ri",163641],"trp":["ir",286103],"tlw":["ve",81408],"trw":["iri",579],"lp":["ri","ve","eri","ev","ver","tir","etti","eti","rti","evi","eve","vet","vr","veri","evet","etir","evr"],"rp":["ir","iri","ire"]},"45":{"input":[1,3,4,6],"tlp":["ari",56898],"trp":["ira",15785],"tlw":["var",7891],"trw":["itiraf",311],"lp":["ari","var","zer","zeri","arti","raz","eva","rafi","zar","tari","avr","zate","zir","zere","air","fir","azir","atir"],"rp":["ira","iraz"]},"46":{"input":[2,3,4,6],"tlp":["rk",38427],"trp":["iste",14557],"tlw":["tek",4748],"trw":["iste",3907],"lp":["rk","rdi","rek","cek","dir","erek","rke","rsi","ekt","tek","erk","sir","erke","erdi","ris"],"rp":["iste","ird","irdi","kte","kir"]},"47":{"input":[1,2,3,4,6],"tlw":["vardi",6467],"trw":["kadar",16753],"lp":[],"rp":[]},"48":{"input":[5,6],"base":"h","baseshift":"H","trp":["in",370626],"trw":["in",526],"lp":[],"rp":["in","ni","ini","nin","hi","inin","ih","hin","ihi","nini","nih","hn","ihin","ihn","hni","ihni","hini","hnin","nni","hnn"]},"49":{"input":[1,5,6],"tlp":["ah",50091],"trp":["ha",92564],"tlw":["ah",1397],"trw":["izin",1006],"lp":["ah","ani","aha","anin","zin","ahi","zan"],"rp":["ha","ina","niz","han","izin","iniz","hiz","nz","haz","inan","hani","nina","hazi"]},"50":{"input":[2,5,6],"tlp":["sin",65670],"trp":["isin",17912],"tlw":["sinsi",110],"trw":["isin",932],"lp":["sin","sini","skin","sh"],"rp":["isin","kin","ins","nk","nki","ikin","his","kkin","nis","nsi","hs","nik","hiss","ji","hk","hik"]},"51":{"input":[1,2,5,6],"tlp":["asin",26353],"trp":["insa",12256],"tlw":["sanki",2615],"trw":["insan",3805],"lp":["asin","sina","akin","sah","sani","ank","sahi","anki","sank","ansi","akan"],"rp":["insa","kan","nasi","hak","hakk","has","kah","ikan","nsiz"]},"52":{"input":[3,5,6],"tlp":["eni",37090],"trp":["iy",103444],"tlw":["eh",335],"trw":["iyi",7728],"lp":["eni","eyi","enin","eh","eyin","ehi"],"rp":["iy","yi","he","ine","iye","iyi","yin","yeni","yni","niy","yine","niye","hen","hey"]},"53":{"input":[1,3,5,6],"tlp":["ayi",16661],"trp":["hay",12548],"tlw":["ayni",4770],"trw":["yani",4094],"lp":["ayi","ayni","zen","enz","aniy","ziy","ayin","enze","eniz","eyaz"],"rp":["hay","yani","iya","yaz","haya","hayi","yazi","yah","nze","iyan"]},"54":{"input":[2,3,5,6],"tlp":["endi",29457],"trp":["ind",72325],"tlw":["diye",15017],"trw":["kendi",7334],"lp":["endi","diy","din","sind","diye","esin","dini","siy","seni","sine","ediy"],"rp":["ind","ken","ndi","inde","kend","ydi","ndis","ndin","kiy"]},"55":{"input":[1,2,3,5,6],"tlw":["daha",20490],"trw":["kadin",3728],"lp":[],"rp":[]},"56":{"input":[4,5,6],"tlp":["bi",275568],"trp":["ib",28649],"tlw":["bin",1281],"trw":["hint",87],"lp":["bi","tin","bin","vin","th","tini","bit","bii"],"rp":["ib","ibi","ht","iht","hti","ihti","nti","nit","int","hib","hibi","inti"]},"57":{"input":[1,4,5,6],"tlp":["biz",10055],"trp":["hat",6156],"tlw":["biz",2560],"trw":["hatta",2528],"lp":["biz","abi","bizi","baz","fin","afin","bah","atin","tabi","bazi","tani","van","ahat","abah"],"rp":["hat","haf","hav","hava","hatt","hab"]},"58":{"input":[2,4,5,6],"tlp":["cin",41998],"trp":["icin",39248],"tlw":["cin",367],"trw":["icin",25984],"lp":["cin","cbi","bic","ch","bici","cini","vinc"],"rp":["icin","hic","inc","nci","icb","hicb","icbi","inci","kinc","nic","hc","nici","ich"]},"59":{"input":[1,2,4,5,6],"tlw":["baska",6795],"lp":[],"rp":[]},"60":{"input":[3,4,5,6],"tlp":["bir",195972],"trp":["her",22311],"tlw":["bir",148963],"trw":["her",15822],"lp":["bir","rin","erin","rini","beni","biri","rine","tiy","riy","evin","rh","rbi","birb"],"rp":["her","irin","yeri","yir","nri","yri","irb"]},"61":{"input":[1,3,4,5,6],"tlw":["biraz",4474],"trw":["hayir",2604],"lp":[],"rp":[]},"62":{"input":[2,3,4,5,6],"tlw":["birden",2181],"trw":["icinde",7275],"lp":[],"rp":[]},"63":{"input":[1,2,3,4,5,6],"tlw":["arasinda",3496],"trw":["yavas",1614],"lp":[],"rp":[]},"64":{"input":[7],"base":"o","baseshift":"O","trp":["oo",542],"trw":["o",25996],"lp":[],"rp":["oo"]},"65":{"input":[1,7],"base":"(","baseshift":"[","trp":["oa",60],"lp":[],"rp":["oa"],"special":"punc"},"66":{"input":[2,7],"base":".","baseshift":">","tlp":["so",67268],"trp":["os",16832],"tlw":["so",92],"lp":["so","sos"],"rp":["os","oso","oss"],"special":"punc"},"67":{"input":[1,2,7],"tlp":["wo",188],"trp":["osa",584],"lp":["wo","woo"],"rp":["osa","ow"]},"68":{"input":[3,7],"base":"-","baseshift":"_","tlp":["eo",1196],"trp":["oe",285],"trw":["-",13834],"lp":["eo","e-"],"rp":["oe","-e","-o"],"special":"punc"},"69":{"input":[1,3,7],"trp":["-a",61],"lp":[],"rp":["-a"]},"70":{"input":[2,3,7],"tlp":["do",35030],"trp":["od",5854],"tlw":["do",161],"lp":["do","dos","eso","edo","s-","s-s","s-se","sdo","dosd","deo"],"rp":["od","ose","-s","ode","oses","ood","osed","-se","osd","osdo"]},"71":{"input":[1,2,3,7],"tlp":["ado",548],"trp":["oda",4372],"trw":["odada",430],"lp":["ado","wood","eoda"],"rp":["oda","odas","odad","-w","-we","owe","oad"]},"72":{"input":[4,7],"base":"g","baseshift":"G","tlp":["go",43595],"trp":["og",22300],"tlw":["g",946],"trw":["ot",144],"lp":["go","to","got","tto","gog","tog","tg","gg","gt","gto"],"rp":["og","ot","oto","ott","otto","otog","ogg","ogo"]},"73":{"input":[1,4,7],"tlp":["ag",32516],"trp":["of",2290],"tlw":["aga",174],"trw":["of",191],"lp":["ag","ga","aga","fo","tag","atag","ato","fot","foto","taga","fag","tfag","faga","ago","fog","fogg"],"rp":["of","oga","ofo","ota"]},"74":{"input":[2,4,7],"tlp":["co",29333],"trp":["oc",10369],"tlw":["goc",81],"trw":["oc",52],"lp":["co","coc","gos","gost","cog","sog","sto","sg","gs","gogs","tos","cos","gc","sgc","stos"],"rp":["oc","ost","osto","ogs","osc"]},"75":{"input":[1,2,4,7],"tlp":["sag",5201],"trp":["oca",3682],"tlw":["sag",869],"lp":["sag","cag","acag","asag","gac","agac","sof","saga","gas","sga","gaca","sofo","gasa","astg","asg"],"rp":["oca","ocas","osta","osca","ocag"]},"76":{"input":[3,4,7],"tlp":["ge",85092],"trp":["or",124494],"tlw":["gore",3389],"trw":["ote",515],"lp":["ge","eg","ger","gor","gr","gere","gore","ege","ro","rg","eger","gre","get","tor"],"rp":["or","ogr","ort","ore","ote","ogre"]},"77":{"input":[1,3,4,7],"tlp":["gar",3353],"trp":["orta",6084],"tlw":["fotograf",161],"trw":["orta",641],"lp":["gar","arg","rag","gra","efo","age","t-f","t-fa","gara","rato","ator","for","rof","graf","agr"],"rp":["orta","ora","-f","-fa","ogra"]},"78":{"input":[2,3,4,7],"tlp":["deg",18415],"trp":["ord",34113],"tlw":["gece",2933],"trw":["otede",232],"lp":["deg","gec","dog","dogr","sor","gece","gerc","gord","sord","ceg","dor","eceg","dort","gect","dost","dege","gd"],"rp":["ord","oste","ors"]},"79":{"input":[1,2,3,4,7],"tlw":["dag",243],"trw":["orada",2520],"lp":[],"rp":[]},"80":{"input":[5,7],"base":"u","baseshift":"U","trp":["un",176917],"trw":["onu",9693],"lp":[],"rp":["un","on","nu","onu","unu","nun","onun","unun","no","nunu","ou","non","ono","nou","unn"]},"81":{"input":[1,5,7],"tlp":["ano",845],"trp":["una",8817],"trw":["ona",7053],"lp":["ano","anu","au","qu","anun","anon","aun"],"rp":["una","ona","unan","ua","nuna","uan","nano","onan"]},"82":{"input":[2,5,7],"tlp":["su",56434],"trp":["us",59637],"tlw":["su",6093],"trw":["us",133],"lp":["su","son","sun","sunu","sonu","sus","sons"],"rp":["us","usu","usun","nus","onus","nusu","osu","jo","ons","nsu","onsu","osun","ju"]},"83":{"input":[1,2,5,7],"tlp":["suna",877],"trp":["usa",2657],"tlw":["sona",460],"lp":["suna","sona","asu","anus","susa","ajo","sano","sau","saun","asus","anso"],"rp":["usa","usan","nusa","own","usaa","now","nown","osan","unas"]},"84":{"input":[3,5,7],"tlp":["enu",1411],"trp":["yo",85768],"trw":["onune",1033],"lp":["enu"],"rp":["yo","uy","yu","oy","uyo","uyu","une","one","uny","oyu","yun","nuy","oyun","nuyo","yon","unuy","n-","oyn","yone"]},"85":{"input":[1,3,5,7],"tlp":["anyo",338],"trp":["unya",5800],"trw":["yunan",253],"lp":["anyo","eona","eux","an-","que"],"rp":["unya","uya","uyan","oya","yuna","oyna","ux","nuya","yuya","onay","yoya","-ya","yano","oyan","yona"]},"86":{"input":[2,3,5,7],"tlp":["du",128153],"trp":["und",24604],"tlw":["dondu",1341],"trw":["onunde",1790],"lp":["du","soy","dus","dusu","don","dun","duny","duy","sund"],"rp":["und","unde","ud","ndu","ond","nund","undu","udu","ydu","uyd","uydu"]},"87":{"input":[1,2,3,5,7],"tlw":["sonunda",2463],"trw":["ondan",1762],"lp":[],"rp":[]},"88":{"input":[4,5,7],"tlp":["bu",129214],"trp":["ug",30997],"tlw":["bu",59152],"trw":["not",308],"lp":["bu","gu","tu","gun","bun","bo","tun","gunu","bunu","but","butu"],"rp":["ug","ugu","ut","ugun","utu","utun","otu","ng","ogu"]},"89":{"input":[1,4,5,7],"tlp":["bag",4649],"trp":["uf",2044],"tlw":["buna",2248],"lp":["bag","ang","abu","fon","buna","font","anbu","gan","guna","fu","tuta","agan"],"rp":["uf","uta","utf","ufa","utan","uga","uba","nag"]},"90":{"input":[2,4,5,7],"tlp":["cu",29850],"trp":["uc",23984],"tlw":["bos",1277],"trw":["uc",3579],"lp":["cu","stu","cun","cocu","guc","stun","sunc","bos","cug","cogu"],"rp":["uc","ust","ucu","ustu","unc","onc","ocu","ucun","nuc","onuc"]},"91":{"input":[1,2,4,5,7],"tlw":["fonts",354],"trw":["usta",320],"lp":[],"rp":[]},"92":{"input":[3,4,5,7],"tlp":["ru",61296],"trp":["ur",80226],"tlw":["gene",1320],"trw":["uygun",1047],"lp":["ru","tur","boy","buy","buyu","gru","run","gen","bur","goru"],"rp":["ur","yor","oru","onr","uru","uyor","yoru","ogru","orun","ure"]},"93":{"input":[1,3,4,5,7],"tlw":["buraya",1264],"trw":["ortaya",2163],"lp":[],"rp":[]},"94":{"input":[2,3,4,5,7],"tlw":["dogru",6276],"trw":["once",6114],"lp":[],"rp":[]},"95":{"input":[1,2,3,4,5,7],"tlw":["sonra",17553],"trw":["oradan",704],"lp":[],"rp":[]},"96":{"input":[6,7],"base":"l","baseshift":"L","trp":["li",153361],"trw":["l",1692],"lp":[],"rp":["li","il","ol","ili","ll","lli","ill","lo","oll","oli","illi","lil","olo","io","ilo","lili","ool","llo"]},"97":{"input":[1,6,7],"tlp":["al",111125],"trp":["la",193014],"tlw":["al",750],"trw":["la",412],"lp":["al","ali","zl","ala","zla","all","zo","alla","azl","zli","azla"],"rp":["la","ola","oz","ila","lla","ozl","izl","izli","izla"]},"98":{"input":[2,6,7],"tlp":["sl",30642],"trp":["ok",45144],"tlw":["sol",615],"trw":["ilk",4866],"lp":["sl","sil","sli","sili"],"rp":["ok","ko","kl","lik","lk","lis","kli","kil","ikl","ls","isl","lki","ols","ilk","kol","likl"]},"99":{"input":[1,2,6,7],"tlp":["asl",17339],"trp":["kal",18830],"tlw":["soz",2999],"trw":["olsa",1993],"lp":["asl","sla","asla","akl","asil","soz","sal","alis","akla","asli","alk","akli"],"rp":["kal","kla","las","lak","kala","lasi","kali","lsa"]},"100":{"input":[3,6,7],"tlp":["el",88486],"trp":["le",161881],"tlw":["el",1633],"trw":["ile",9283],"lp":["el","eli","ele","ell","elli","elle","elel","elil"],"rp":["le","ile","lle","ille","ole","lel","leo","-i","lee","leli","lele","i-"]},"101":{"input":[1,3,6,7],"tlp":["zle",10682],"trp":["ozle",8085],"tlw":["aile",576],"trw":["ozel",1294],"lp":["zle","zel","ale","ela","zell","aile","alle","zeli","elal","ael","elia","eal","ezil","ezel","azel","aale"],"rp":["ozle","oze","ozel","izle"]},"102":{"input":[2,3,6,7],"tlp":["dil",10774],"trp":["ld",66610],"tlw":["sekilde",2905],"trw":["kisisel",342],"lp":["dil","ekl","eld","sle","sel","eldi","dol","dile","esl","ekli"],"rp":["ld","old","ldi","ild","ildi","kle","lde","led","ledi","ikle"]},"103":{"input":[1,2,3,6,7],"tlw":["aldi",1426],"trw":["kaldi",1084],"lp":[],"rp":[]},"104":{"input":[4,6,7],"tlp":["gi",137313],"trp":["ig",40159],"tlw":["gitti",1369],"trw":["ilgili",1508],"lp":["gi","gil","tl","gl","tig","tigi","git","gili","tli","vl"],"rp":["ig","igi","lt","lg","lti","ilg","lgi","ilgi","lig","ligi"]},"105":{"input":[1,4,6,7],"tlp":["agi",15275],"trp":["lat",3470],"tlw":["fazla",3194],"trw":["laf",255],"lp":["agi","goz","alt","alti","gozl","agl","atl","fazl","tal","gla","tla","zg","agla","giz","val","atli","agli","gal","gz"],"rp":["lat"]},"106":{"input":[2,4,6,7],"tlp":["cok",19740],"trp":["okt",7640],"tlw":["cok",17627],"trw":["isigi",416],"lp":["cok","cl","cil","gis","sig","gisi","cli","sigi"],"rp":["okt","likt","kot","koc","lc","ktig","lic","olc","list","isig","kto","okto"]},"107":{"input":[1,2,4,6,7],"tlw":["asagi",1220],"trw":["olacak",1662],"lp":[],"rp":[]},"108":{"input":[3,4,6,7],"tlp":["rl",31288],"trp":["ler",57971],"tlw":["geri",3197],"trw":["ileri",1117],"lp":["rl","egi","gel","egil","rli","gir","rle","erl","geli","rler","erle","gele","eler"],"rp":["ler","leri","lir","iler","irl","ilir","irli"]},"109":{"input":[1,3,4,6,7],"tlw":["agir",1726],"lp":[],"rp":[]},"110":{"input":[2,3,4,6,7],"tlw":["degil",8435],"lp":[],"rp":[]},"111":{"input":[1,2,3,4,6,7],"tlw":["farkli",1113],"trw":["olarak",9384],"lp":[],"rp":[]},"112":{"input":[5,6,7],"trp":["nl",58209],"trw":["unlu",539],"lp":[],"rp":["nl","lu","ul","olu","lin","ulu","unl","nli","onl","lun","inl","hu","ln","lni","uh","ulun","ho","olun","lini","ilin"]},"113":{"input":[1,5,6,7],"tlp":["anl",26128],"trp":["uz",53334],"tlw":["allah",1522],"trw":["olan",10895],"lp":["anl","zu","anla","zun","anli","aln","alni"],"rp":["uz","nla","lan","hal","uzu","olan","uzun","onla","unla","ula","lniz","ozu","uza"]},"114":{"input":[2,5,6,7],"tlp":["sul",3102],"trp":["ku",42732],"tlw":["soluk",557],"trw":["olsun",2457],"lp":["sul"],"rp":["ku","uk","kon","konu","oku","unk","kul","nku","unku","ukl","luk","nlik","kus","kun","uks","lsu","olsu","lsun","lus"]},"115":{"input":[1,2,5,6,7],"tlw":["sozunu",629],"trw":["nasil",6031],"lp":[],"rp":[]},"116":{"input":[3,5,6,7],"tlp":["eyl",6217],"trp":["yl",48761],"tlw":["elini",1491],"trw":["oyle",5326],"lp":["eyl","elin","eyle","elen"],"rp":["yl","iyo","yle","oyl","oyle","liy","liyo","yil","len","yol","iyl","nle","ley","luy","iliy","luyo"]},"117":{"input":[1,3,5,6,7],"trw":["yalniz",2707],"lp":[],"rp":[]},"118":{"input":[2,3,5,6,7],"tlw":["soyle",2267],"trw":["yok",5734],"lp":[],"rp":[]},"119":{"input":[1,2,3,5,6,7],"tlw":["aslinda",1786],"trw":["halde",2581],"lp":[],"rp":[]},"120":{"input":[4,5,6,7],"tlp":["bil",29017],"trp":["igin",12379],"tlw":["gibi",22656],"trw":["oglu",704],"lp":["bil","gib","gibi","gin","bul","bili","gini","bunl","bulu","gul","vu","bol","glu"],"rp":["igin","ngi","uv","ltin","lb","utl","ult"]},"121":{"input":[1,4,5,6,7],"tlw":["bulunan",1116],"trw":["hangi",1195],"lp":[],"rp":[]},"122":{"input":[2,4,5,6,7],"tlw":["cunku",5282],"trw":["kucuk",4807],"lp":[],"rp":[]},"123":{"input":[1,2,4,5,6,7],"tlw":["sultan",928],"trw":["kabul",2501],"lp":[],"rp":[]},"124":{"input":[3,4,5,6,7],"tlw":["bile",8084],"trw":["olur",3157],"lp":[],"rp":[]},"125":{"input":[1,3,4,5,6,7],"tlw":["guzel",3729],"trw":["uzerine",3191],"lp":[],"rp":[]},"126":{"input":[2,3,4,5,6,7],"tlw":["buyuk",8285],"trw":["oldugunu",7814],"lp":[],"rp":[]},"127":{"input":[1,2,3,4,5,6,7],"tlw":["basladi",3009],"trw":["uzerinde",2861],"lp":[],"rp":[]},"128":{"input":[8],"base":"p","baseshift":"P","trw":["p",380],"lp":[],"rp":[]},"129":{"input":[1,8],"base":"?","baseshift":"/","tlp":["ap",33487],"trp":["pa",24487],"trw":["papa",112],"lp":["ap","apa"],"rp":["pa","pap","papa"],"special":"punc"},"130":{"input":[2,8],"base":")","baseshift":"]","tlp":["sp",921],"trp":["ps",3704],"lp":["sp"],"rp":["ps"],"special":"punc"},"131":{"input":[1,2,8],"tlp":["sap",796],"trp":["pas",1542],"trw":["pasa",973],"lp":["sap","spa","aps","asp","sapa","aspa","saps","apsa"],"rp":["pas","pasa","pasp","psa"]},"132":{"input":[3,8],"base":"'","baseshift":"\"","tlp":["ep",9410],"trp":["pe",13191],"trw":["'",2126],"lp":["ep","e'","epe"],"rp":["pe","'e","''","pee"],"special":"punc"},"133":{"input":[1,3,8],"tlp":["a'",2478],"trp":["'a",813],"lp":["a'","epa","ape","x'","ax'","a'e"],"rp":["'a","pa'"]},"134":{"input":[2,3,8],"tlp":["eps",2946],"trp":["'d",2842],"trw":["'de",625],"lp":["eps","s'","e'd","e'de","epes","d'","esp","eped","spe","s'e","es'","spee"],"rp":["'d","'de","pes","ped","pede","pse","pd","pds"]},"135":{"input":[1,2,3,8],"tlp":["sa'",753],"trp":["'da",1650],"trw":["'da",254],"lp":["sa'","a'd","a'da","asa'","esap","apad","sa'd","da'","aspe","apse","apd","apds","d'a"],"rp":["'da","pad","pa'd"]},"136":{"input":[4,8],"tlp":["tp",76],"trp":["pt",7654],"trw":["pt",1404],"lp":["tp","ttp"],"rp":["pt"],"special":"bksp","base":"tp"},"137":{"input":[1,4,8],"tlp":["apt",5195],"trp":["pta",1168],"trw":["pat",52],"lp":["apt","tap","apta","apat","tapt"],"rp":["pta","pat","patt","pata"]},"138":{"input":[2,4,8],"trp":["pc",141],"lp":[],"rp":["pc"]},"139":{"input":[1,2,4,8],"tlp":["apac",1249],"trp":["pac",1249],"lp":["apac","apc","apca","spat","cap"],"rp":["pac","paca","pca"]},"140":{"input":[3,4,8],"tlp":["rp",1331],"trp":["pr",3486],"tlw":["tepe",103],"trw":["'te",217],"lp":["rp","tep","tepe","r'","re'","ere'","er'","rpt","ept","epte","rpe","rper"],"rp":["pr","per","'t","pre","pet","'te","petr","pte"]},"141":{"input":[1,3,4,8],"tlp":["apar",1698],"trp":["par",11587],"tlw":["arap",301],"trw":["para",1673],"lp":["apar","rap","arp","arap","ra'","tepa","f'","rpa","arpa","ara'","arpt","apr","apra"],"rp":["par","para","pra","part","patr","'ta","pera"]},"142":{"input":[2,3,4,8],"tlp":["cep",294],"trp":["perd",423],"tlw":["cep",124],"trw":["perde",178],"lp":["cep","step","s't","s'te","tesp","r'd","er'd","sper","re'd","ecep","ste'"],"rp":["perd","perc","pers"]},"143":{"input":[1,2,3,4,8],"tlw":["sarap",440],"trw":["parca",649],"lp":[],"rp":[]},"144":{"input":[5,8],"base":"m","baseshift":"M","trp":["nm",9106],"trw":["m",1569],"lp":[],"rp":["nm","pm","mm","mp","mn"]},"145":{"input":[1,5,8],"tlp":["am",92732],"trp":["ma",129330],"tlw":["ama",21666],"trw":["mana",161],"lp":["am","ama","aman","apm","apma","anm","amam","anma","apan","amm"],"rp":["ma","man","mam","pma","nma","pan","mana","mpa","nam","mama"]},"146":{"input":[2,5,8],"tlp":["sm",13256],"trp":["ms",8305],"lp":["sm"],"rp":["ms","mps"]},"147":{"input":[1,2,5,8],"tlp":["sma",8191],"trp":["mas",9911],"tlw":["sam",348],"trw":["masa",380],"lp":["sma","sam","sman","asam","sama","asm","asma","amas","ams","smas","sanm","span","ssam"],"rp":["mas","masa","msa","pmas","nmas","maj","mans"]},"148":{"input":[3,5,8],"tlp":["em",49576],"trp":["me",74751],"tlw":["epey",418],"trw":["yemeye",95],"lp":["em","eme","emen","enm","emey"],"rp":["me","men","mey","meye","nem","'n","mem","nme","yem","ym","yeme","'y","pen","pey","y'"]},"149":{"input":[1,3,5,8],"tlp":["ame",2729],"trp":["yap",17207],"tlw":["annem",417],"trw":["yapan",657],"lp":["ame","amay","ema","a'n","amen","an'","a'y","eyma","a'ya"],"rp":["yap","may","maya","yapa","yapm","yma","'ya","mame","pmay","yman","pay"]},"150":{"input":[2,3,5,8],"tlp":["dem",6920],"trp":["md",15044],"tlw":["demeye",98],"trw":["'den",147],"lp":["dem","deme","sme","esm","emed","sem","ems","edem"],"rp":["md","mse","mes","med","mde","mede","mese","msey","meyd","mden","msen","msed"]},"151":{"input":[1,2,3,5,8],"tlw":["adam",4638],"trw":["meydana",782],"lp":[],"rp":[]},"152":{"input":[4,5,8],"tlp":["tm",17169],"trp":["mb",2359],"lp":["tm"],"rp":["mb","mt"]},"153":{"input":[1,4,5,8],"tlp":["tam",6202],"trp":["mat",647],"tlw":["tam",3821],"lp":["tam","tma","atm","tama","atma","bam","abam","amb","fam","amba","afam","apab","tatm","tman"],"rp":["mat","mba","mant","pab","ptan","pant"],"special":"numsym"},"154":{"input":[2,4,5,8],"tlp":["cm",3662],"trp":["mc",1577],"lp":["cm"],"rp":["mc"]},"155":{"input":[1,2,4,5,8],"tlw":["cam",364],"lp":[],"rp":[]},"156":{"input":[3,4,5,8],"tlp":["rm",25050],"trp":["mer",5044],"tlw":["etmeye",820],"trw":["mr",413],"lp":["rm","etm","tme","rme","etme","tem","erm","erme","teme","tmey","rmey","rem","renm","term","ry'","rry'"],"rp":["mer","met","mr","mbe"]},"157":{"input":[1,3,4,5,8],"tlw":["tamamen",907],"trw":["yapar",447],"lp":[],"rp":[]},"158":{"input":[2,3,4,5,8],"tlw":["sebep",489],"trw":["pencereden",421],"lp":[],"rp":[]},"159":{"input":[1,2,3,4,5,8],"tlw":["stepan",214],"trw":["jandarma",125],"lp":[],"rp":[]},"160":{"input":[6,8],"base":"!","baseshift":"!","trp":["ip",23109],"trw":["ip",98],"lp":[],"rp":["ip","pi","pip","ipi"],"special":"punc"},"161":{"input":[1,6,8],"tlp":["api",10616],"trp":["paz",682],"trw":["papaz",183],"lp":["api","apip","apaz","zip","azip","zap","azap"],"rp":["paz","paza"]},"162":{"input":[2,6,8],"tlp":["sip",883],"trp":["kip",3619],"tlw":["sikisip",77],"trw":["pis",531],"lp":["sip","spi"],"rp":["kip","psi","pis","pk","pisi","pki","ipk","ipki","ikip","psik","isip","pik","pkk","kipk","isp","pisk","ipik","kipi"]},"163":{"input":[1,2,6,8],"tlp":["apis",1831],"trp":["kap",8447],"tlw":["sapka",135],"trw":["kapi",974],"lp":["apis","akip","asip","apk","apka","sapk","apsi"],"rp":["kap","kapi","kapa","pka","ispa","pkas","pak","kapk","paki"]},"164":{"input":[3,6,8],"tlp":["epi",576],"trp":["'i",3340],"trw":["'i",87],"lp":["epi","e'i"],"rp":["'i","i'","ipe","ie'","pie"]},"165":{"input":[1,3,6,8],"tlp":["x'i",65],"trp":["pez",51],"lp":["x'i","ax'i"],"rp":["pez","peze"]},"166":{"input":[2,3,6,8],"tlp":["epsi",2946],"trp":["pek",6932],"tlw":["edip",667],"trw":["pek",4304],"lp":["epsi","dip","edip","ekip","ski'","epk","epki","espi","esip","s'i"],"rp":["pek","peki","idip","pesi","pid","k'","is'","ipek","ki'","k'i"]},"167":{"input":[1,2,3,6,8],"trw":["kapida",236],"lp":[],"rp":[]},"168":{"input":[4,6,8],"tlp":["tip",2155],"trp":["pti",4694],"tlw":["tip",299],"trw":["itip",81],"lp":["tip","tipi"],"rp":["pti","ipt","ipti","pit","itip"]},"169":{"input":[1,4,6,8],"tlp":["apti",4186],"trp":["itap",1997],"tlw":["atip",257],"lp":["apti","vap","atip","apit"],"rp":["itap","pav","pati","ipta","pita"]},"170":{"input":[2,4,6,8],"tlp":["cip",1668],"trp":["ptik",601],"tlw":["tipki",865],"trw":["icip",79],"lp":["cip","tipk","spit"],"rp":["ptik","pic","pici","icip","pist"]},"171":{"input":[1,2,4,6,8],"tlw":["takip",521],"trw":["kitap",795],"lp":[],"rp":[]},"172":{"input":[3,4,6,8],"tlp":["rip",3191],"trp":["irip",1440],"tlw":["verip",240],"trw":["pir",218],"lp":["rip","ri'","rpi","erip","ti'","rpti","r'i","re'i","ver'","er'i","rpip","rpri"],"rp":["irip","pir","piri","ptir","iti'","peri","irp","pri"]},"173":{"input":[1,3,4,6,8],"trw":["parti",379],"lp":[],"rp":[]},"174":{"input":[2,3,4,6,8],"tlw":["cekip",471],"trw":["kirip",55],"lp":[],"rp":[]},"175":{"input":[1,2,3,4,6,8],"tlw":["cevap",1689],"trw":["parcasi",437],"lp":[],"rp":[]},"176":{"input":[5,6,8],"trp":["im",97151],"trw":["mi",12284],"lp":[],"rp":["im","mi","min","nim","imi","nmi","mini","hip","hm","imin","inm","ph","pin","nip","pini","pmi","inmi","him","imp","nimi"]},"177":{"input":[1,5,6,8],"tlp":["zam",15802],"trp":["miz",5126],"tlw":["zaman",9588],"trw":["hanim",555],"lp":["zam","zama","ami","zim","amin","anim","ahip","zm","ahm","anmi"],"rp":["miz","maz","ima","izim","imiz","mani","mizi","mah","ham","mami"]},"178":{"input":[2,5,6,8],"tlp":["sim",12135],"trp":["mis",35215],"tlw":["simsiki",221],"trw":["kim",1847],"lp":["sim","smi"],"rp":["mis","kim","km","ism","ims","kims","ikm","misi","mk","kmi","nmis","kmis","kimi","ismi","isim","msi","ikmi","psin"]},"179":{"input":[1,2,5,6,8],"tlw":["aksam",1411],"trw":["misiniz",745],"lp":[],"rp":[]},"180":{"input":[3,5,6,8],"tlp":["emi",12554],"trp":["hem",8923],"tlw":["emin",834],"trw":["hemen",4788],"lp":["emi","enim","emin","emiy"],"rp":["hem","miy","hep","heme","'ni","'nin","piy","'in","ime","yim","yip","i'n","i'ni","hme","nemi","piyi"]},"181":{"input":[1,3,5,6,8],"tlw":["annemin",178],"trw":["hepimiz",316],"lp":[],"rp":[]},"182":{"input":[2,3,5,6,8],"tlw":["simdi",5781],"trw":["kimse",1852],"lp":[],"rp":[]},"183":{"input":[1,2,3,5,6,8],"tlw":["adamin",1501],"trw":["kapiyi",1057],"lp":[],"rp":[]},"184":{"input":[4,5,6,8],"tlp":["tim",7187],"trp":["itm",2987],"tlw":["tim",161],"trw":["mit",80],"lp":["tim","tmi","ttim","vim","timi","bitm","tmin","thm"],"rp":["itm","itmi","itim","ptim","mit","hipt","mbi","htim","ptin","imb","imbi","ntim"]},"185":{"input":[1,4,5,6,8],"tlw":["bizim",2636],"trw":["mavi",631],"lp":[],"rp":[]},"186":{"input":[2,4,5,6,8],"tlw":["cikmis",550],"trw":["mistik",111],"lp":[],"rp":[]},"187":{"input":[1,2,4,5,6,8],"tlw":["canim",596],"trw":["kaptan",268],"lp":[],"rp":[]},"188":{"input":[3,4,5,6,8],"tlw":["benim",6122],"trw":["yirmi",1140],"lp":[],"rp":[]},"189":{"input":[1,3,4,5,6,8],"tlw":["tanrim",479],"trw":["yapti",759],"lp":[],"rp":[]},"190":{"input":[2,3,4,5,6,8],"tlw":["etmek",2074],"lp":[],"rp":[]},"191":{"input":[1,2,3,4,5,6,8],"tlw":["devam",2432],"trw":["yardim",1282],"lp":[],"rp":[]},"192":{"input":[7,8],"base":";","baseshift":":","trp":["op",8798],"lp":[],"rp":["op","po","opo","pop","popo","poo"],"special":"punc"},"193":{"input":[1,7,8],"tlp":["apo",362],"trp":["opa",623],"tlw":["apo",61],"lp":["apo"],"rp":["opa"]},"194":{"input":[2,7,8],"tlp":["sop",218],"trp":["pos",264],"lp":["sop","spo"],"rp":["pos","opos","osp","pso"]},"195":{"input":[1,2,7,8],"tlp":["sopa",88],"trp":["pow",86],"tlw":["sopa",88],"lp":["sopa"],"rp":["pow"]},"196":{"input":[3,7,8],"tlp":["eop",251],"trp":["ope",871],"lp":["eop"],"rp":["ope","o'"]},"197":{"input":[1,3,7,8],"tlp":["eopa",251],"lp":["eopa"],"rp":[]},"198":{"input":[2,3,7,8],"tlp":["do'",50],"trp":["od'",59],"lp":["do'"],"rp":["od'","ood'"]},"199":{"input":[1,2,3,7,8],"lp":[],"rp":[]},"200":{"input":[4,7,8],"tlp":["top",5867],"trp":["opt",260],"tlw":["top",230],"lp":["top"],"rp":["opt","pot","pott"]},"201":{"input":[1,4,7,8],"tlp":["apag",165],"trp":["pag",1236],"lp":["apag"],"rp":["pag","opat","opag","paga","pota"]},"202":{"input":[2,4,7,8],"tlp":["cop",181],"trp":["post",126],"tlw":["cop",181],"trw":["otostop",67],"lp":["cop","stop"],"rp":["post"]},"203":{"input":[1,2,4,7,8],"trw":["posta",126],"lp":[],"rp":[]},"204":{"input":[3,4,7,8],"tlp":["topr",1446],"trp":["opr",1640],"trw":["potter",167],"lp":["topr","rop"],"rp":["opr","pro","-top","por","prog","peg","opeg","prop","oper","port","prot"]},"205":{"input":[1,3,4,7,8],"tlw":["topraga",181],"trw":["page",832],"lp":[],"rp":[]},"206":{"input":[2,3,4,7,8],"tlw":["spor",119],"trw":["protesto",51],"lp":[],"rp":[]},"207":{"input":[1,2,3,4,7,8],"trw":["profesor",263],"lp":[],"rp":[]},"208":{"input":[5,7,8],"trp":["um",48695],"trw":["mu",2378],"lp":[],"rp":["um","mu","up","umu","om","mo","unm","mun","omu","umun","mum","nmu","onm","nup","num","onup","unmu","pu","onmu","mnu"]},"209":{"input":[1,5,7,8],"tlp":["amu",724],"trp":["uma",3601],"lp":["amu","ammu","amo","apon"],"rp":["uma","oma","upa","unma","uman","oman","mua","numa","pau","pamu","muna","namu","uam","muam"]},"210":{"input":[2,5,7,8],"tlp":["sunm",1248],"trp":["mus",15207],"trw":["musun",1010],"lp":["sunm","sup","smu","smus","sum","som"],"rp":["mus","usm","nusm","ums","osm","musu","umus","nmus","msu","usmu","umsu","usup","mos","osum"]},"211":{"input":[1,2,5,7,8],"trw":["osman",247],"lp":[],"rp":[]},"212":{"input":[3,5,7,8],"tlp":["emnu",603],"trp":["onem",4198],"trw":["memnun",488],"lp":["emnu","emu"],"rp":["onem","ume","yum","muy","unme","yumu","ome","uym","ymu","muyo","'u","memu","uyum","oym","onme","o'n","umuy","'un"]},"213":{"input":[1,3,5,7,8],"trw":["maymun",120],"lp":[],"rp":[]},"214":{"input":[2,3,5,7,8],"tlw":["donup",819],"trw":["muydu",265],"lp":[],"rp":[]},"215":{"input":[1,2,3,5,7,8],"tlw":["dusman",463],"trw":["musaade",167],"lp":[],"rp":[]},"216":{"input":[4,5,7,8],"tlp":["tum",4398],"trp":["mut",4536],"tlw":["tum",2174],"trw":["umut",237],"lp":["tum","gum","gm","gumu","tom","tup","gmu","ttom","tutm","tumu","tmu","gom"],"rp":["mut","ugum","utm","omut","nutm","umut","utmu","utup"]},"217":{"input":[1,4,5,7,8],"tlw":["bomba",100],"trw":["mutfaga",167],"lp":[],"rp":[]},"218":{"input":[2,4,5,7,8],"tlw":["gumus",409],"trw":["unutmus",110],"lp":[],"rp":[]},"219":{"input":[1,2,4,5,7,8],"tlw":["cuma",169],"trw":["mustafa",624],"lp":[],"rp":[]},"220":{"input":[3,4,5,7,8],"tlw":["grup",385],"trw":["oturup",540],"lp":[],"rp":[]},"221":{"input":[1,3,4,5,7,8],"tlw":["ragmen",1330],"trw":["yagmur",493],"lp":[],"rp":[]},"222":{"input":[2,3,4,5,7,8],"tlw":["durum",881],"trw":["oturmus",358],"lp":[],"rp":[]},"223":{"input":[1,2,3,4,5,7,8],"tlw":["durumda",912],"trw":["propaganda",168],"lp":[],"rp":[]},"224":{"input":[6,7,8],"trp":["pl",6579],"trw":["pol",144],"lp":[],"rp":["pl","lip","opl","pil","pol","poli","ilip","ipl","lp","pli","pili","ilp","pilo","ipli","pool"]},"225":{"input":[1,6,7,8],"tlp":["apil",2908],"trp":["pla",4024],"tlw":["alip",1109],"lp":["apil","alip","apl","apla","apal","alp","apli"],"rp":["pla","opla","pila","pal","pali","ipla","lap","olap"]},"226":{"input":[2,6,7,8],"tlp":["skop",138],"trp":["kop",1470],"tlw":["silip",98],"trw":["polis",725],"lp":["skop","sipl"],"rp":["kop","lkip","kopo","pisl"]},"227":{"input":[1,2,6,7,8],"trw":["kapali",519],"lp":[],"rp":[]},"228":{"input":[3,6,7,8],"tlp":["elip",1112],"trp":["l'",1267],"trw":["poole",60],"lp":["elip","el'","el'i","epl","eple"],"rp":["l'","'l","ple","l'i","leop","li'","lep","'le","le'","lle'","le'i","iple","'li","ll'","ll'i"]},"229":{"input":[1,3,6,7,8],"trw":["la'e",56],"lp":[],"rp":[]},"230":{"input":[2,3,6,7,8],"trw":["kopek",433],"lp":[],"rp":[]},"231":{"input":[1,2,3,6,7,8],"tlw":["dolasip",126],"trw":["pekala",402],"lp":[],"rp":[]},"232":{"input":[4,6,7,8],"tlp":["topl",3261],"trp":["ptig",2000],"trw":["popov",105],"lp":["topl","gip"],"rp":["ptig","ptil","pov","opov"]},"233":{"input":[1,4,6,7,8],"tlw":["aptal",428],"trw":["iptal",64],"lp":[],"rp":[]},"234":{"input":[2,4,6,7,8],"trw":["politik",151],"lp":[],"rp":[]},"235":{"input":[1,2,4,6,7,8],"tlw":["ciplak",453],"trw":["politika",153],"lp":[],"rp":[]},"236":{"input":[3,4,6,7,8],"tlw":["gelip",1112],"trw":["piril",272],"lp":[],"rp":[]},"237":{"input":[1,3,4,6,7,8],"tlw":["garip",992],"trw":["pavel",210],"lp":[],"rp":[]},"238":{"input":[2,3,4,6,7,8],"tlw":["gidip",1162],"trw":["polisler",126],"lp":[],"rp":[]},"239":{"input":[1,2,3,4,6,7,8],"tlw":["toprak",602],"trw":["parlak",776],"lp":[],"rp":[]},"240":{"input":[5,6,7,8],"trp":["lm",46943],"trw":["olup",1530],"lp":[],"rp":["lm","olm","lmi","ilm","ml","lim","lum","ilmi","lmu","mli","olmu","olum","mil","iml","ulm","ilim","lup","plu","oplu","olup"],"special":"enter"},"241":{"input":[1,5,6,7,8],"tlw":["anlamina",563],"trw":["olmaz",1004],"lp":[],"rp":[]},"242":{"input":[2,5,6,7,8],"tlw":["sokup",136],"trw":["olmus",1359],"lp":[],"rp":[]},"243":{"input":[1,2,5,6,7,8],"tlw":["almak",825],"trw":["olmak",1877],"lp":[],"rp":[]},"244":{"input":[3,5,6,7,8],"tlw":["elimi",221],"trw":["onemli",2111],"lp":[],"rp":[]},"245":{"input":[1,3,5,6,7,8],"tlw":["almaya",456],"trw":["olmayan",1555],"lp":[],"rp":[]},"246":{"input":[2,3,5,6,7,8],"tlw":["soylemek",674],"trw":["oldum",429],"lp":[],"rp":[]},"247":{"input":[1,2,3,5,6,7,8],"tlw":["aldim",504],"trw":["olmadi",572],"lp":[],"rp":[]},"248":{"input":[4,5,6,7,8],"tlw":["bolum",547],"trw":["mutlu",849],"lp":[],"rp":[]},"249":{"input":[1,4,5,6,7,8],"tlw":["film",181],"trw":["hamilton",186],"lp":[],"rp":[]},"250":{"input":[2,4,5,6,7,8],"tlw":["gitmis",374],"trw":["olmustu",1519],"lp":[],"rp":[]},"251":{"input":[1,2,4,5,6,7,8],"tlw":["baslamisti",1046],"trw":["kocaman",640],"lp":[],"rp":[]},"252":{"input":[3,4,5,6,7,8],"tlw":["biliyorum",953],"trw":["muhtemelen",286],"lp":[],"rp":[]},"253":{"input":[1,3,4,5,6,7,8],"tlw":["zamanlar",874],"trw":["yaptigi",1060],"lp":[],"rp":[]},"254":{"input":[2,3,4,5,6,7,8],"tlw":["gormek",1084],"trw":["istiyorum",996],"lp":[],"rp":[]},"255":{"input":[1,2,3,4,5,6,7,8],"tlw":["basladim",495],"trw":["olmadigini",1197],"lp":[],"rp":[]}} diff --git a/keyboards/geistmaschine/geist/keymaps/ansi/keymap.c b/keyboards/geistmaschine/geist/keymaps/ansi/keymap.c index cebb8fb073..4bdcc3d0bf 100644 --- a/keyboards/geistmaschine/geist/keymaps/ansi/keymap.c +++ b/keyboards/geistmaschine/geist/keymaps/ansi/keymap.c @@ -59,4 +59,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) }, [2] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) } }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/geistmaschine/geist/keymaps/default/keymap.c b/keyboards/geistmaschine/geist/keymaps/default/keymap.c index 19b4ba2210..6414271d3c 100644 --- a/keyboards/geistmaschine/geist/keymaps/default/keymap.c +++ b/keyboards/geistmaschine/geist/keymaps/default/keymap.c @@ -47,4 +47,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) }, [2] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) } }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/geistmaschine/geist/keymaps/iso/keymap.c b/keyboards/geistmaschine/geist/keymaps/iso/keymap.c index 658e4ec984..cc659c20d5 100644 --- a/keyboards/geistmaschine/geist/keymaps/iso/keymap.c +++ b/keyboards/geistmaschine/geist/keymaps/iso/keymap.c @@ -59,4 +59,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [1] = { ENCODER_CCW_CW(KC_BRID, KC_BRIU) }, [2] = { ENCODER_CCW_CW(KC_MPRV, KC_MNXT) } }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/geistmaschine/macropod/config.h b/keyboards/geistmaschine/macropod/config.h index e12d3b94fa..52bc1e9eff 100644 --- a/keyboards/geistmaschine/macropod/config.h +++ b/keyboards/geistmaschine/macropod/config.h @@ -21,4 +21,4 @@ #define MATRIX_COLS 17 /* Fix for Apple Silicon Macs struggling to detect board after suspend/sleep */ -#define USB_SUSPEND_WAKEUP_DELAY 200 \ No newline at end of file +#define USB_SUSPEND_WAKEUP_DELAY 200 diff --git a/keyboards/geistmaschine/macropod/keymaps/default/keymap.c b/keyboards/geistmaschine/macropod/keymaps/default/keymap.c index 8c2c69db36..b28837d947 100644 --- a/keyboards/geistmaschine/macropod/keymaps/default/keymap.c +++ b/keyboards/geistmaschine/macropod/keymaps/default/keymap.c @@ -32,4 +32,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [1] = { ENCODER_CCW_CW(KC_MRWD, KC_MFFD) }, }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/geistmaschine/macropod/matrix.c b/keyboards/geistmaschine/macropod/matrix.c index 5cd35b47d4..5ead7f5546 100644 --- a/keyboards/geistmaschine/macropod/matrix.c +++ b/keyboards/geistmaschine/macropod/matrix.c @@ -85,4 +85,4 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { current_matrix[0] = data; return changed; -} \ No newline at end of file +} diff --git a/keyboards/geistmaschine/macropod/rules.mk b/keyboards/geistmaschine/macropod/rules.mk index 53d35b5bc6..1b997fbaad 100644 --- a/keyboards/geistmaschine/macropod/rules.mk +++ b/keyboards/geistmaschine/macropod/rules.mk @@ -2,4 +2,4 @@ CUSTOM_MATRIX = lite VPATH += drivers/gpio SRC += pca9555.c matrix.c -I2C_DRIVER_REQUIRED = yes \ No newline at end of file +I2C_DRIVER_REQUIRED = yes diff --git a/keyboards/geonworks/ee_at/keyboard.json b/keyboards/geonworks/ee_at/keyboard.json index c901901ab0..55b821216d 100644 --- a/keyboards/geonworks/ee_at/keyboard.json +++ b/keyboards/geonworks/ee_at/keyboard.json @@ -494,4 +494,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/geonworks/w1_at/keyboard.json b/keyboards/geonworks/w1_at/keyboard.json index 240463b9c4..0d68f3854e 100644 --- a/keyboards/geonworks/w1_at/keyboard.json +++ b/keyboards/geonworks/w1_at/keyboard.json @@ -502,4 +502,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/gh60/revc/pinout.txt b/keyboards/gh60/revc/pinout.txt index e9bf1983a5..7299b933e7 100644 --- a/keyboards/gh60/revc/pinout.txt +++ b/keyboards/gh60/revc/pinout.txt @@ -15,4 +15,4 @@ 3 F4 POKER Arrow LEDs B2 Capslock LED - B0 not connected \ No newline at end of file + B0 not connected diff --git a/keyboards/gh80_3000/readme.md b/keyboards/gh80_3000/readme.md index ca26947046..73bf2594b6 100644 --- a/keyboards/gh80_3000/readme.md +++ b/keyboards/gh80_3000/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make gh80_3000:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/gkeyboard/greatpad/keyboard.json b/keyboards/gkeyboard/greatpad/keyboard.json index d578111703..35ea738cae 100644 --- a/keyboards/gkeyboard/greatpad/keyboard.json +++ b/keyboards/gkeyboard/greatpad/keyboard.json @@ -145,4 +145,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/gmmk/numpad/keymaps/default/keymap.c b/keyboards/gmmk/numpad/keymaps/default/keymap.c index b7f9ff46b3..380fc373c0 100644 --- a/keyboards/gmmk/numpad/keymaps/default/keymap.c +++ b/keyboards/gmmk/numpad/keymaps/default/keymap.c @@ -57,4 +57,4 @@ void slider(void) { void housekeeping_task_user(void) { slider(); -} \ No newline at end of file +} diff --git a/keyboards/gmmk/numpad/mcuconf.h b/keyboards/gmmk/numpad/mcuconf.h index a07efdbffb..cf2de01e8a 100644 --- a/keyboards/gmmk/numpad/mcuconf.h +++ b/keyboards/gmmk/numpad/mcuconf.h @@ -23,4 +23,4 @@ #define WB32_SPI_USE_QSPI TRUE // #undef WB32_ADC_USE_ADC1 -#define WB32_ADC_USE_ADC1 TRUE \ No newline at end of file +#define WB32_ADC_USE_ADC1 TRUE diff --git a/keyboards/gmmk/numpad/post_config.h b/keyboards/gmmk/numpad/post_config.h index 6ee57f4439..b66c32f50b 100644 --- a/keyboards/gmmk/numpad/post_config.h +++ b/keyboards/gmmk/numpad/post_config.h @@ -18,4 +18,4 @@ #ifndef TAP_CODE_DELAY # define TAP_CODE_DELAY 10 -#endif \ No newline at end of file +#endif diff --git a/keyboards/gmmk/numpad/readme.md b/keyboards/gmmk/numpad/readme.md index d40b2b8c58..6246e63076 100644 --- a/keyboards/gmmk/numpad/readme.md +++ b/keyboards/gmmk/numpad/readme.md @@ -37,4 +37,4 @@ The Button is set to KC_CALC by default and is located at 2,3 on the matrix ## Broken -* Bluetooth functionality \ No newline at end of file +* Bluetooth functionality diff --git a/keyboards/gmmk/pro/rev1/ansi/keymaps/default/rules.mk b/keyboards/gmmk/pro/rev1/ansi/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/gmmk/pro/rev1/ansi/keymaps/default/rules.mk +++ b/keyboards/gmmk/pro/rev1/ansi/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/gmmk/pro/rev1/iso/keymaps/default/rules.mk b/keyboards/gmmk/pro/rev1/iso/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/gmmk/pro/rev1/iso/keymaps/default/rules.mk +++ b/keyboards/gmmk/pro/rev1/iso/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c b/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c index 2863121e7f..fc80da5cfc 100644 --- a/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c +++ b/keyboards/gmmk/pro/rev2/ansi/keymaps/default/keymap.c @@ -65,4 +65,4 @@ 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 \ No newline at end of file +#endif diff --git a/keyboards/gmmk/pro/rev2/ansi/keymaps/default/rules.mk b/keyboards/gmmk/pro/rev2/ansi/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/gmmk/pro/rev2/ansi/keymaps/default/rules.mk +++ b/keyboards/gmmk/pro/rev2/ansi/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/gmmk/pro/rev2/iso/keymaps/default/rules.mk b/keyboards/gmmk/pro/rev2/iso/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/gmmk/pro/rev2/iso/keymaps/default/rules.mk +++ b/keyboards/gmmk/pro/rev2/iso/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/gopolar/gg86/lib/glcdfont.c b/keyboards/gopolar/gg86/lib/glcdfont.c index 6b2294ea58..400aed8e53 100644 --- a/keyboards/gopolar/gg86/lib/glcdfont.c +++ b/keyboards/gopolar/gg86/lib/glcdfont.c @@ -246,4 +246,4 @@ const unsigned char font[] PROGMEM = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; \ No newline at end of file +}; diff --git a/keyboards/gray_studio/space65r3/readme.md b/keyboards/gray_studio/space65r3/readme.md index 2de127bd7a..d13846ebe3 100644 --- a/keyboards/gray_studio/space65r3/readme.md +++ b/keyboards/gray_studio/space65r3/readme.md @@ -17,4 +17,4 @@ Flashing example for this keyboard: ## Bootloader * **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -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 +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/gray_studio/think65v3/readme.md b/keyboards/gray_studio/think65v3/readme.md index dc09a00d1d..8b8b42a03c 100644 --- a/keyboards/gray_studio/think65v3/readme.md +++ b/keyboards/gray_studio/think65v3/readme.md @@ -18,4 +18,4 @@ * **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead -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 infromation. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). \ No newline at end of file +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 infromation. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). diff --git a/keyboards/grid600/readme.md b/keyboards/grid600/readme.md index f7fa6a085b..73ca0f9eb9 100644 --- a/keyboards/grid600/readme.md +++ b/keyboards/grid600/readme.md @@ -4,4 +4,4 @@ The Grid 600 is a tray mount 60% case supporting most standard 60% PCBs. A unique feature of the Grid 600 is that it has five different cover modules that not only include USB C pass through, but also have functions such as RGB or additional macro keys. -This is a collection of some of the programmable modules available for this enclosure. \ No newline at end of file +This is a collection of some of the programmable modules available for this enclosure. diff --git a/keyboards/gummykey/readme.md b/keyboards/gummykey/readme.md index 80558ee330..3207add859 100644 --- a/keyboards/gummykey/readme.md +++ b/keyboards/gummykey/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/h0oni/deskpad/deskpad.c b/keyboards/h0oni/deskpad/deskpad.c index 8f9c97c97d..54fc42309d 100644 --- a/keyboards/h0oni/deskpad/deskpad.c +++ b/keyboards/h0oni/deskpad/deskpad.c @@ -50,4 +50,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/h0oni/deskpad/keymaps/default/keymap.c b/keyboards/h0oni/deskpad/keymaps/default/keymap.c index 4ab51b657e..c2ed7b7c43 100644 --- a/keyboards/h0oni/deskpad/keymaps/default/keymap.c +++ b/keyboards/h0oni/deskpad/keymaps/default/keymap.c @@ -186,4 +186,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [3] = LAYOUT( C(KC_SLSH), VALORANT, VSCODE, DISCORD, LSA(KC_A), TD(QUAD_LAYER_SWITCH) ), -}; \ No newline at end of file +}; diff --git a/keyboards/h0oni/deskpad/readme.md b/keyboards/h0oni/deskpad/readme.md index a79983fff7..bb6e710e77 100644 --- a/keyboards/h0oni/deskpad/readme.md +++ b/keyboards/h0oni/deskpad/readme.md @@ -16,4 +16,4 @@ Enter the bootloader in 2 ways: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the left most key) and plug in the keyboard. * **Physical reset button**: Press the button at the back of the PCB twice to enter into the bootloader mode. -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 +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/h0oni/hotduck/readme.md b/keyboards/h0oni/hotduck/readme.md index e4c06c46da..5f4f9f4931 100644 --- a/keyboards/h0oni/hotduck/readme.md +++ b/keyboards/h0oni/hotduck/readme.md @@ -9,4 +9,4 @@ Make example for this keyboard (after setting up your build environment): make h0oni/hotduck: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). \ No newline at end of file +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/handwired/3dfoxc/keymaps/default/keymap.c b/keyboards/handwired/3dfoxc/keymaps/default/keymap.c index fb12640474..14ac32cf21 100644 --- a/keyboards/handwired/3dfoxc/keymaps/default/keymap.c +++ b/keyboards/handwired/3dfoxc/keymaps/default/keymap.c @@ -66,4 +66,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGDN, KC_END ) }; - \ No newline at end of file + diff --git a/keyboards/handwired/3dp660_oled/keyboard.json b/keyboards/handwired/3dp660_oled/keyboard.json index cb19d2ab80..9ab254e163 100644 --- a/keyboards/handwired/3dp660_oled/keyboard.json +++ b/keyboards/handwired/3dp660_oled/keyboard.json @@ -246,4 +246,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/412_64/keymaps/default/rules.mk b/keyboards/handwired/412_64/keymaps/default/rules.mk index 08fdcc0a56..83a7ba356b 100644 --- a/keyboards/handwired/412_64/keymaps/default/rules.mk +++ b/keyboards/handwired/412_64/keymaps/default/rules.mk @@ -1 +1 @@ -KEY_LOCK_ENABLE = yes # Enable the universal locking key, which lets you do any locking you require. \ No newline at end of file +KEY_LOCK_ENABLE = yes # Enable the universal locking key, which lets you do any locking you require. diff --git a/keyboards/handwired/412_64/readme.md b/keyboards/handwired/412_64/readme.md index 042bacfaf1..8356c0c743 100644 --- a/keyboards/handwired/412_64/readme.md +++ b/keyboards/handwired/412_64/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make handwired/412_64: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). \ No newline at end of file +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/handwired/6macro/keymaps/default/readme.md b/keyboards/handwired/6macro/keymaps/default/readme.md index dd42a8fc62..b1727655e1 100644 --- a/keyboards/handwired/6macro/keymaps/default/readme.md +++ b/keyboards/handwired/6macro/keymaps/default/readme.md @@ -12,4 +12,4 @@ Layer 2: # Default 6macro Layout -This is the default layout. Layer 0 is mappped to function keys 13-18. Top right key switches to layer above when held. Upper layers are for RGB control. \ No newline at end of file +This is the default layout. Layer 0 is mappped to function keys 13-18. Top right key switches to layer above when held. Upper layers are for RGB control. diff --git a/keyboards/handwired/6macro/keymaps/osu/readme.md b/keyboards/handwired/6macro/keymaps/osu/readme.md index 0de5d6bf2e..b6103fa240 100644 --- a/keyboards/handwired/6macro/keymaps/osu/readme.md +++ b/keyboards/handwired/6macro/keymaps/osu/readme.md @@ -12,4 +12,4 @@ Layer 2: # OSU 6macro Layout -This layout is for the game OSU. Layer 0 is mappped as shown above. Top right key switches to layer above when held. Upper layers are for RGB control. \ No newline at end of file +This layout is for the game OSU. Layer 0 is mappped as shown above. Top right key switches to layer above when held. Upper layers are for RGB control. diff --git a/keyboards/handwired/angel/keymaps/default/readme.md b/keyboards/handwired/angel/keymaps/default/readme.md index 6425306b0e..ec1d67b276 100644 --- a/keyboards/handwired/angel/keymaps/default/readme.md +++ b/keyboards/handwired/angel/keymaps/default/readme.md @@ -4,4 +4,4 @@ The default layout for hand-wire Angel is Colemak-DHM with modifiers on the home row. I'd love to see how we can improve it. -The most enjoyable part besides soldering is poking the QMK configurations and test it on keybr.com. It's so much fun. \ No newline at end of file +The most enjoyable part besides soldering is poking the QMK configurations and test it on keybr.com. It's so much fun. diff --git a/keyboards/handwired/baredev/rev1/keymaps/default/keymap.c b/keyboards/handwired/baredev/rev1/keymaps/default/keymap.c index 74b92cf97e..892c186d1b 100644 --- a/keyboards/handwired/baredev/rev1/keymaps/default/keymap.c +++ b/keyboards/handwired/baredev/rev1/keymaps/default/keymap.c @@ -53,4 +53,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, KC_INS, KC_HOME, KC_PGDN, KC_END /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/baredev/rev1/keymaps/default/readme.md b/keyboards/handwired/baredev/rev1/keymaps/default/readme.md index 6e8c07ad83..fed020505f 100644 --- a/keyboards/handwired/baredev/rev1/keymaps/default/readme.md +++ b/keyboards/handwired/baredev/rev1/keymaps/default/readme.md @@ -4,4 +4,4 @@ Has all the functions of a ABNT TKL keyboard, sans right shift. -Basic media functions also included. \ No newline at end of file +Basic media functions also included. diff --git a/keyboards/handwired/baredev/rev1/readme.md b/keyboards/handwired/baredev/rev1/readme.md index 1dac2fb6ad..949b46da61 100644 --- a/keyboards/handwired/baredev/rev1/readme.md +++ b/keyboards/handwired/baredev/rev1/readme.md @@ -26,4 +26,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/boss566y/redragon_vara/keymaps/default/readme.md b/keyboards/handwired/boss566y/redragon_vara/keymaps/default/readme.md index 8836223788..d8adf3e13c 100644 --- a/keyboards/handwired/boss566y/redragon_vara/keymaps/default/readme.md +++ b/keyboards/handwired/boss566y/redragon_vara/keymaps/default/readme.md @@ -8,4 +8,4 @@ Keymap is basic 104 qwerty layout with: * FN is M(2). Arrow keys on HJKL, media keys on F6 to F12, and RCtrl+Home on Home. * Both M(1) and M(2) have Reset on Escape - \ No newline at end of file + diff --git a/keyboards/handwired/cans12erv2/readme.md b/keyboards/handwired/cans12erv2/readme.md index fa08efacc7..25533145d8 100644 --- a/keyboards/handwired/cans12erv2/readme.md +++ b/keyboards/handwired/cans12erv2/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/croxsplit44/keymaps/default/keymap.c b/keyboards/handwired/croxsplit44/keymaps/default/keymap.c index 1811e6baf9..b9432f6429 100644 --- a/keyboards/handwired/croxsplit44/keymaps/default/keymap.c +++ b/keyboards/handwired/croxsplit44/keymaps/default/keymap.c @@ -28,4 +28,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, UG_NEXT, UG_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_UP, KC_RGHT, KC_ENT, KC_LSFT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_DOWN, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SPC, KC_SPC, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/dactyl_manuform/5x6_6/readme.md b/keyboards/handwired/dactyl_manuform/5x6_6/readme.md index 78107a183d..e1c251193b 100644 --- a/keyboards/handwired/dactyl_manuform/5x6_6/readme.md +++ b/keyboards/handwired/dactyl_manuform/5x6_6/readme.md @@ -19,4 +19,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader in 2 ways: **Physical reset button**: Briefly press the reset button on the bottom of the case, or bridge the reset and ground pins momentarily on the pro micro -**Keycode in layout**: Press the key mapped to `QK_BOOT` (by default hold down `MO(1)` and press the left most key in row 5 on the left hand half of the keyboard) \ No newline at end of file +**Keycode in layout**: Press the key mapped to `QK_BOOT` (by default hold down `MO(1)` and press the left most key in row 5 on the left hand half of the keyboard) diff --git a/keyboards/handwired/dqz11n1g/keymaps/default/readme.md b/keyboards/handwired/dqz11n1g/keymaps/default/readme.md index d61546eb37..cfb0cbea91 100644 --- a/keyboards/handwired/dqz11n1g/keymaps/default/readme.md +++ b/keyboards/handwired/dqz11n1g/keymaps/default/readme.md @@ -14,4 +14,4 @@ features that are documented for the one-handed Maltron keyboards. Most keys don't send any keycodes at all when function lock is enabed. We instead map some of the Quantum keycodes (mouse keys and audio control) -in the middle (keypad) section of the keypad, when Function Lock is enabled. \ No newline at end of file +in the middle (keypad) section of the keypad, when Function Lock is enabled. diff --git a/keyboards/handwired/evk/readme.md b/keyboards/handwired/evk/readme.md index ccfed391d4..1be2e73cd7 100644 --- a/keyboards/handwired/evk/readme.md +++ b/keyboards/handwired/evk/readme.md @@ -3,4 +3,4 @@ The Ergonomic Vertical Keyboard (EVK) deletes our humpback. * Maintainer: [YangPiCui](https://github.com/YangPiCui) -* Hardware Availability: Upon Custom Ordering \ No newline at end of file +* Hardware Availability: Upon Custom Ordering diff --git a/keyboards/handwired/fc200rt_qmk/keymaps/default/keymap.c b/keyboards/handwired/fc200rt_qmk/keymaps/default/keymap.c index bcdd1818de..6d0a2baf0b 100644 --- a/keyboards/handwired/fc200rt_qmk/keymaps/default/keymap.c +++ b/keyboards/handwired/fc200rt_qmk/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/footy/readme.md b/keyboards/handwired/footy/readme.md index 6d02fad95c..7c2f2b3b10 100644 --- a/keyboards/handwired/footy/readme.md +++ b/keyboards/handwired/footy/readme.md @@ -39,4 +39,4 @@ You can build either of these firmware images by running the following commands: ``` make handwired/footy:handy make handwired/footy:superwhisper -``` \ No newline at end of file +``` diff --git a/keyboards/handwired/freoduo/readme.md b/keyboards/handwired/freoduo/readme.md index 7fa8af68cd..72fa687454 100644 --- a/keyboards/handwired/freoduo/readme.md +++ b/keyboards/handwired/freoduo/readme.md @@ -9,4 +9,4 @@ Make example for this keyboard (after setting up your build environment): make handwired/freoduo: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). \ No newline at end of file +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/handwired/hacked_motospeed/keymaps/german/layers.json b/keyboards/handwired/hacked_motospeed/keymaps/german/layers.json index 7bbd3cd438..b3f65ef735 100644 --- a/keyboards/handwired/hacked_motospeed/keymaps/german/layers.json +++ b/keyboards/handwired/hacked_motospeed/keymaps/german/layers.json @@ -1 +1 @@ -[["KC_ESC", "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", "LSFT(KC_8)", "LSFT(KC_9)", "KC_PEQL", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "LSFT(KC_MINS)", "MO(2)", "MO(6)", "KC_TAB", "KC_BSPC", "KC_SPC", "MO(1)", "KC_LCTL", "KC_LALT", "MO(4)", "KC_LGUI", "MO(2)"], ["LALT(KC_F4)", "LSFT(KC_Q)", "LSFT(KC_W)", "LSFT(KC_E)", "LSFT(KC_R)", "LSFT(KC_T)", "LSFT(KC_Y)", "LSFT(KC_U)", "LSFT(KC_I)", "LSFT(KC_O)", "LSFT(KC_P)", "LSFT(KC_A)", "LSFT(KC_S)", "LSFT(KC_D)", "LSFT(KC_F)", "LSFT(KC_G)", "LSFT(KC_H)", "LSFT(KC_J)", "LSFT(KC_K)", "LSFT(KC_L)", "RALT(KC_7)", "RALT(KC_0)", "KC_NUHS", "LSFT(KC_Z)", "LSFT(KC_X)", "LSFT(KC_C)", "LSFT(KC_V)", "LSFT(KC_B)", "LSFT(KC_N)", "LSFT(KC_M)", "LSFT(KC_COMM)", "LSFT(KC_DOT)", "LSFT(KC_1)", "MO(3)", "TG(6)", "LSFT(KC_TAB)", "KC_DEL", "KC_ENT", "KC_TRNS", "LSFT(KC_LCTL)", "LSFT(KC_LALT)", "LSFT(KC_RALT)", "LSFT(KC_LGUI)", "MO(3)"], ["LSFT(KC_GRV)", "RALT(KC_Q)", "KC_INT3", "RALT(KC_E)", "LSFT(KC_4)", "LSFT(KC_5)", "LSFT(KC_6)", "KC_LBRC", "KC_UP", "KC_SCLN", "KC_PSCR", "KC_QUOT", "KC_MINS", "LSFT(KC_7)", "LSFT(KC_2)", "LSFT(KC_NUHS)", "LSFT(KC_3)", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_NUBS", "LSFT(KC_NUBS)", "RALT(KC_RBRC)", "KC_GRV", "LSFT(KC_RBRC)", "KC_SLSH", "KC_RBRC", "RALT(KC_NUBS)", "KC_HOME", "KC_PGDN", "KC_PGUP", "KC_END", "RALT(KC_6)", "KC_TRNS", "KC_CAPS", "KC_TAB", "KC_DEL", "KC_ENT", "MO(3)", "OU_BT", "OU_USB", "OU_AUTO", "BL_STEP", "KC_TRNS"], ["LSFT(KC_GRV)", "RALT(KC_Q)", "KC_INT3", "RALT(KC_E)", "LSFT(KC_4)", "LSFT(KC_5)", "LSFT(KC_6)", "LSFT(KC_LBRC)", "KC_UP", "LSFT(KC_SCLN)", "KC_PSCR", "LSFT(KC_QUOT)", "KC_MINS", "RALT(KC_MINS)", "LSFT(KC_EQL)", "KC_EQL", "LSFT(KC_3)", "KC_LEFT", "KC_DOWN", "KC_RGHT", "RALT(KC_8)", "RALT(KC_9)", "RALT(KC_RBRC)", "KC_GRV", "LSFT(KC_RBRC)", "LSFT(KC_SLSH)", "KC_RBRC", "RALT(KC_NUBS)", "KC_HOME", "KC_PGDN", "KC_PGUP", "KC_END", "RALT(KC_6)", "KC_TRNS", "KC_CAPS", "LSFT(KC_TAB)", "LSFT(KC_DEL)", "LSFT(KC_ENT)", "KC_TRNS", "RSFT(KC_RCTL)", "RSFT(KC_LALT)", "RSFT(KC_RALT)", "RSFT(KC_RGUI)", "KC_TRNS"], ["RALT(KC_ESC)", "RALT(KC_Q)", "RALT(KC_W)", "RALT(KC_E)", "RALT(KC_R)", "RALT(KC_T)", "RALT(KC_Y)", "RALT(KC_U)", "RALT(KC_I)", "RALT(KC_O)", "RALT(KC_P)", "RALT(KC_A)", "RALT(KC_S)", "RALT(KC_D)", "RALT(KC_F)", "RALT(KC_G)", "RALT(KC_H)", "RALT(KC_J)", "RALT(KC_K)", "RALT(KC_L)", "RALT(KC_8)", "RALT(KC_9)", "LSFT(KC_0)", "RALT(KC_Z)", "RALT(KC_X)", "RALT(KC_C)", "RALT(KC_V)", "RALT(KC_B)", "RALT(KC_N)", "RALT(KC_M)", "RALT(KC_COMM)", "RALT(KC_DOT)", "RALT(KC_6)", "KC_NO", "RALT(KC_ENT)", "RALT(KC_TAB)", "RALT(KC_DEL)", "RALT(KC_SPC)", "RALT(KC_LSFT)", "RALT(KC_LCTL)", "RALT(KC_LALT)", "KC_TRNS", "RALT(KC_LGUI)", "KC_NO"], ["KC_0", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_F11", "KC_F12", "KC_F13", "KC_F14", "KC_F15", "KC_F16", "KC_F17", "KC_F18", "KC_F19", "KC_F20", "KC_F21", "KC_F22", "KC_F23", "KC_NO", "KC_TRNS", "KC_TAB", "KC_BSPC", "KC_SPC", "KC_LSFT", "KC_LCTL", "KC_LALT", "KC_RALT", "KC_LGUI", "KC_NO"]] \ No newline at end of file +[["KC_ESC", "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", "LSFT(KC_8)", "LSFT(KC_9)", "KC_PEQL", "KC_Z", "KC_X", "KC_C", "KC_V", "KC_B", "KC_N", "KC_M", "KC_COMM", "KC_DOT", "LSFT(KC_MINS)", "MO(2)", "MO(6)", "KC_TAB", "KC_BSPC", "KC_SPC", "MO(1)", "KC_LCTL", "KC_LALT", "MO(4)", "KC_LGUI", "MO(2)"], ["LALT(KC_F4)", "LSFT(KC_Q)", "LSFT(KC_W)", "LSFT(KC_E)", "LSFT(KC_R)", "LSFT(KC_T)", "LSFT(KC_Y)", "LSFT(KC_U)", "LSFT(KC_I)", "LSFT(KC_O)", "LSFT(KC_P)", "LSFT(KC_A)", "LSFT(KC_S)", "LSFT(KC_D)", "LSFT(KC_F)", "LSFT(KC_G)", "LSFT(KC_H)", "LSFT(KC_J)", "LSFT(KC_K)", "LSFT(KC_L)", "RALT(KC_7)", "RALT(KC_0)", "KC_NUHS", "LSFT(KC_Z)", "LSFT(KC_X)", "LSFT(KC_C)", "LSFT(KC_V)", "LSFT(KC_B)", "LSFT(KC_N)", "LSFT(KC_M)", "LSFT(KC_COMM)", "LSFT(KC_DOT)", "LSFT(KC_1)", "MO(3)", "TG(6)", "LSFT(KC_TAB)", "KC_DEL", "KC_ENT", "KC_TRNS", "LSFT(KC_LCTL)", "LSFT(KC_LALT)", "LSFT(KC_RALT)", "LSFT(KC_LGUI)", "MO(3)"], ["LSFT(KC_GRV)", "RALT(KC_Q)", "KC_INT3", "RALT(KC_E)", "LSFT(KC_4)", "LSFT(KC_5)", "LSFT(KC_6)", "KC_LBRC", "KC_UP", "KC_SCLN", "KC_PSCR", "KC_QUOT", "KC_MINS", "LSFT(KC_7)", "LSFT(KC_2)", "LSFT(KC_NUHS)", "LSFT(KC_3)", "KC_LEFT", "KC_DOWN", "KC_RGHT", "KC_NUBS", "LSFT(KC_NUBS)", "RALT(KC_RBRC)", "KC_GRV", "LSFT(KC_RBRC)", "KC_SLSH", "KC_RBRC", "RALT(KC_NUBS)", "KC_HOME", "KC_PGDN", "KC_PGUP", "KC_END", "RALT(KC_6)", "KC_TRNS", "KC_CAPS", "KC_TAB", "KC_DEL", "KC_ENT", "MO(3)", "OU_BT", "OU_USB", "OU_AUTO", "BL_STEP", "KC_TRNS"], ["LSFT(KC_GRV)", "RALT(KC_Q)", "KC_INT3", "RALT(KC_E)", "LSFT(KC_4)", "LSFT(KC_5)", "LSFT(KC_6)", "LSFT(KC_LBRC)", "KC_UP", "LSFT(KC_SCLN)", "KC_PSCR", "LSFT(KC_QUOT)", "KC_MINS", "RALT(KC_MINS)", "LSFT(KC_EQL)", "KC_EQL", "LSFT(KC_3)", "KC_LEFT", "KC_DOWN", "KC_RGHT", "RALT(KC_8)", "RALT(KC_9)", "RALT(KC_RBRC)", "KC_GRV", "LSFT(KC_RBRC)", "LSFT(KC_SLSH)", "KC_RBRC", "RALT(KC_NUBS)", "KC_HOME", "KC_PGDN", "KC_PGUP", "KC_END", "RALT(KC_6)", "KC_TRNS", "KC_CAPS", "LSFT(KC_TAB)", "LSFT(KC_DEL)", "LSFT(KC_ENT)", "KC_TRNS", "RSFT(KC_RCTL)", "RSFT(KC_LALT)", "RSFT(KC_RALT)", "RSFT(KC_RGUI)", "KC_TRNS"], ["RALT(KC_ESC)", "RALT(KC_Q)", "RALT(KC_W)", "RALT(KC_E)", "RALT(KC_R)", "RALT(KC_T)", "RALT(KC_Y)", "RALT(KC_U)", "RALT(KC_I)", "RALT(KC_O)", "RALT(KC_P)", "RALT(KC_A)", "RALT(KC_S)", "RALT(KC_D)", "RALT(KC_F)", "RALT(KC_G)", "RALT(KC_H)", "RALT(KC_J)", "RALT(KC_K)", "RALT(KC_L)", "RALT(KC_8)", "RALT(KC_9)", "LSFT(KC_0)", "RALT(KC_Z)", "RALT(KC_X)", "RALT(KC_C)", "RALT(KC_V)", "RALT(KC_B)", "RALT(KC_N)", "RALT(KC_M)", "RALT(KC_COMM)", "RALT(KC_DOT)", "RALT(KC_6)", "KC_NO", "RALT(KC_ENT)", "RALT(KC_TAB)", "RALT(KC_DEL)", "RALT(KC_SPC)", "RALT(KC_LSFT)", "RALT(KC_LCTL)", "RALT(KC_LALT)", "KC_TRNS", "RALT(KC_LGUI)", "KC_NO"], ["KC_0", "KC_F1", "KC_F2", "KC_F3", "KC_F4", "KC_F5", "KC_F6", "KC_F7", "KC_F8", "KC_F9", "KC_F10", "KC_1", "KC_2", "KC_3", "KC_4", "KC_5", "KC_6", "KC_7", "KC_8", "KC_9", "KC_F11", "KC_F12", "KC_F13", "KC_F14", "KC_F15", "KC_F16", "KC_F17", "KC_F18", "KC_F19", "KC_F20", "KC_F21", "KC_F22", "KC_F23", "KC_NO", "KC_TRNS", "KC_TAB", "KC_BSPC", "KC_SPC", "KC_LSFT", "KC_LCTL", "KC_LALT", "KC_RALT", "KC_LGUI", "KC_NO"]] diff --git a/keyboards/handwired/hacked_motospeed/keymaps/german/readme.md b/keyboards/handwired/hacked_motospeed/keymaps/german/readme.md index fd07b155fb..41a2f2d9a4 100755 --- a/keyboards/handwired/hacked_motospeed/keymaps/german/readme.md +++ b/keyboards/handwired/hacked_motospeed/keymaps/german/readme.md @@ -10,4 +10,4 @@ To make use of this file you will need follow the following steps: * Copy this folder into %s * You are now ready to compile or use your keymap with the source -More information can be found in the QMK docs: \ No newline at end of file +More information can be found in the QMK docs: diff --git a/keyboards/handwired/hacked_motospeed/readme.md b/keyboards/handwired/hacked_motospeed/readme.md index ac2d4afc28..3e1e058033 100644 --- a/keyboards/handwired/hacked_motospeed/readme.md +++ b/keyboards/handwired/hacked_motospeed/readme.md @@ -20,4 +20,4 @@ Make example for this keyboard (after setting up your build environment): make handwired/hacked_motospeed: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). \ No newline at end of file +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/handwired/heisenberg/keymaps/default/keymap.c b/keyboards/handwired/heisenberg/keymaps/default/keymap.c index 044cb42773..9b6986262a 100644 --- a/keyboards/handwired/heisenberg/keymaps/default/keymap.c +++ b/keyboards/handwired/heisenberg/keymaps/default/keymap.c @@ -165,4 +165,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Enable the adjust layer when both lower and layer_state_t layer_state_set_user(layer_state_t state) { return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); -} \ No newline at end of file +} diff --git a/keyboards/handwired/heisenberg/keymaps/turkishish/keymap.c b/keyboards/handwired/heisenberg/keymaps/turkishish/keymap.c index 73457a597e..7125fb71a5 100644 --- a/keyboards/handwired/heisenberg/keymaps/turkishish/keymap.c +++ b/keyboards/handwired/heisenberg/keymaps/turkishish/keymap.c @@ -229,4 +229,4 @@ void keyboard_post_init_user(void) { rgblight_sethsv_noeeprom(100, 255, 255); // sets the color to greenish without saving //rgblight_sethsv_noeeprom(HSV_TURQUOISE); -} \ No newline at end of file +} diff --git a/keyboards/handwired/heisenberg/keymaps/turkishish/readme.md b/keyboards/handwired/heisenberg/keymaps/turkishish/readme.md index d994401bbd..1bdc327c5c 100644 --- a/keyboards/handwired/heisenberg/keymaps/turkishish/readme.md +++ b/keyboards/handwired/heisenberg/keymaps/turkishish/readme.md @@ -2,4 +2,4 @@ You can flash the "turkishish" layout (which I'm currently using) like: - make handwired/heisenberg:turkishish \ No newline at end of file + make handwired/heisenberg:turkishish diff --git a/keyboards/handwired/hen_des/epssp75/readme.md b/keyboards/handwired/hen_des/epssp75/readme.md index 5c353d215b..6ab66d52be 100644 --- a/keyboards/handwired/hen_des/epssp75/readme.md +++ b/keyboards/handwired/hen_des/epssp75/readme.md @@ -15,4 +15,4 @@ Detailed [description](https://hen-des.github.io/epssp75/index.html) and expirie Enter the bootloader in 2 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 \ No newline at end of file +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead diff --git a/keyboards/handwired/itstleo9/info.json b/keyboards/handwired/itstleo9/info.json index 340b8a9e33..6b0d2d85a1 100644 --- a/keyboards/handwired/itstleo9/info.json +++ b/keyboards/handwired/itstleo9/info.json @@ -30,4 +30,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/itstleo9/promicro/keyboard.json b/keyboards/handwired/itstleo9/promicro/keyboard.json index 4cbc1050c0..2d297142d6 100644 --- a/keyboards/handwired/itstleo9/promicro/keyboard.json +++ b/keyboards/handwired/itstleo9/promicro/keyboard.json @@ -4,4 +4,4 @@ "cols": ["D1", "D0", "D4"], "rows": ["F4", "F5", "F6"] } -} \ No newline at end of file +} diff --git a/keyboards/handwired/itstleo9/readme.md b/keyboards/handwired/itstleo9/readme.md index 233407b393..0b4d61b0c4 100644 --- a/keyboards/handwired/itstleo9/readme.md +++ b/keyboards/handwired/itstleo9/readme.md @@ -34,4 +34,4 @@ 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**: Double-press reset button -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/itstleo9/rp2040/keyboard.json b/keyboards/handwired/itstleo9/rp2040/keyboard.json index 0272150df1..749af38688 100644 --- a/keyboards/handwired/itstleo9/rp2040/keyboard.json +++ b/keyboards/handwired/itstleo9/rp2040/keyboard.json @@ -6,4 +6,4 @@ "cols": ["GP10", "GP11", "GP12"], "rows": ["GP21", "GP20", "GP19"] } -} \ No newline at end of file +} diff --git a/keyboards/handwired/jankrp2040dactyl/config.h b/keyboards/handwired/jankrp2040dactyl/config.h index 0cabd35336..a5f277120e 100644 --- a/keyboards/handwired/jankrp2040dactyl/config.h +++ b/keyboards/handwired/jankrp2040dactyl/config.h @@ -2,4 +2,4 @@ // SPDX-License-Identifier: GPL-2.0-or-later #pragma once -#define GRAVE_ESC_SHIFT_OVERRIDE \ No newline at end of file +#define GRAVE_ESC_SHIFT_OVERRIDE diff --git a/keyboards/handwired/jopr/jopr.c b/keyboards/handwired/jopr/jopr.c index cb155ecb4b..0ecb9d4d9f 100644 --- a/keyboards/handwired/jopr/jopr.c +++ b/keyboards/handwired/jopr/jopr.c @@ -4,4 +4,4 @@ void led_init_ports(void) { gpio_set_pin_output(F0); gpio_set_pin_output(F1); gpio_set_pin_output(F4); -} \ No newline at end of file +} diff --git a/keyboards/handwired/jopr/keymaps/modded_white/keymap.c b/keyboards/handwired/jopr/keymaps/modded_white/keymap.c index f062953b3f..20da1fb6f6 100644 --- a/keyboards/handwired/jopr/keymaps/modded_white/keymap.c +++ b/keyboards/handwired/jopr/keymaps/modded_white/keymap.c @@ -57,4 +57,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { } } return true; -} \ No newline at end of file +} diff --git a/keyboards/handwired/k_numpad17/readme.md b/keyboards/handwired/k_numpad17/readme.md index 76bbaf4391..35f42f18a8 100644 --- a/keyboards/handwired/k_numpad17/readme.md +++ b/keyboards/handwired/k_numpad17/readme.md @@ -22,4 +22,4 @@ Bootmagic is enabled. Press the key at (0,0) while plugging the keyboard in to * Keyboard Maintainer: [Karlssn](https://github.com/Karlssn) * Hardware Availability: [Casefile](https://www.thingiverse.com/thing:4062409) -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 +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/handwired/mechboards_micropad/keymaps/default/readme.md b/keyboards/handwired/mechboards_micropad/keymaps/default/readme.md index 92d37ad8b9..03e46d4b4a 100644 --- a/keyboards/handwired/mechboards_micropad/keymaps/default/readme.md +++ b/keyboards/handwired/mechboards_micropad/keymaps/default/readme.md @@ -1,4 +1,4 @@ # The default keymap for mechboards_micropad This is a 4 key micropad freebie from Mechboards and Yiancar-Designs. -Press the keys to find out the secrets:) \ No newline at end of file +Press the keys to find out the secrets:) diff --git a/keyboards/handwired/minorca/keymaps/default/readme.md b/keyboards/handwired/minorca/keymaps/default/readme.md index 6ed31f82b3..8f0c28966c 100644 --- a/keyboards/handwired/minorca/keymaps/default/readme.md +++ b/keyboards/handwired/minorca/keymaps/default/readme.md @@ -2,4 +2,4 @@ Copied from https://github.com/pancinteractive/qmk_firmware/blob/master/keyboard/minorca_mkV/keymaps/default/keymap.c -It looks incomplete. \ No newline at end of file +It looks incomplete. diff --git a/keyboards/handwired/numpad20/readme.md b/keyboards/handwired/numpad20/readme.md index 4e14fbb005..bcdc0b7ad9 100644 --- a/keyboards/handwired/numpad20/readme.md +++ b/keyboards/handwired/numpad20/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make handwired/numpad20:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/handwired/oem_iso_fullsize/readme.md b/keyboards/handwired/oem_iso_fullsize/readme.md index 47aba78653..5e2ebe9eff 100644 --- a/keyboards/handwired/oem_iso_fullsize/readme.md +++ b/keyboards/handwired/oem_iso_fullsize/readme.md @@ -27,4 +27,4 @@ These line are specifically to my pinout so it's probably not essencial for you #define LED_SCROLL_LOCK_PIN A3 #define LED_NUM_LOCK_PIN C6 #define BACKLIGHT_PINS { B5, E5, E4, A7, A1, A2 } -#define BACKLIGHT_LEVELS 1 \ No newline at end of file +#define BACKLIGHT_LEVELS 1 diff --git a/keyboards/handwired/onekey/bluepill_uf2boot/readme.md b/keyboards/handwired/onekey/bluepill_uf2boot/readme.md index 7886ed1888..108d6f3167 100644 --- a/keyboards/handwired/onekey/bluepill_uf2boot/readme.md +++ b/keyboards/handwired/onekey/bluepill_uf2boot/readme.md @@ -4,4 +4,4 @@ To trigger keypress, short together pins *B0* and *A7*. This variant requires the uf2-stm32f103 bootloader to be installed. This can be downloaded from the [uf2-stm32f103 releases page](https://github.com/mmoskal/uf2-stm32f103/releases). -Double-tap reset to enter bootloader mode. Copy the built uf2 file to the device by dragging the file to the new USB disk. \ No newline at end of file +Double-tap reset to enter bootloader mode. Copy the built uf2 file to the device by dragging the file to the new USB disk. diff --git a/keyboards/handwired/onekey/keymaps/digitizer/rules.mk b/keyboards/handwired/onekey/keymaps/digitizer/rules.mk index ea9f9bd9ac..9b17f2fa2c 100644 --- a/keyboards/handwired/onekey/keymaps/digitizer/rules.mk +++ b/keyboards/handwired/onekey/keymaps/digitizer/rules.mk @@ -1 +1 @@ -DIGITIZER_ENABLE = yes \ No newline at end of file +DIGITIZER_ENABLE = yes diff --git a/keyboards/handwired/onekey/sipeed_longan_nano/readme.md b/keyboards/handwired/onekey/sipeed_longan_nano/readme.md index 0a3a291576..ee0590fa3e 100644 --- a/keyboards/handwired/onekey/sipeed_longan_nano/readme.md +++ b/keyboards/handwired/onekey/sipeed_longan_nano/readme.md @@ -2,4 +2,4 @@ Supported Hardware: *GD32VF103CB Sipeed Longan Nano*. -To trigger keypress, short together pins *B0* and *A7*. \ No newline at end of file +To trigger keypress, short together pins *B0* and *A7*. diff --git a/keyboards/handwired/onekey/stm32f405_feather/readme.md b/keyboards/handwired/onekey/stm32f405_feather/readme.md index 49a05725d5..beac723f6d 100644 --- a/keyboards/handwired/onekey/stm32f405_feather/readme.md +++ b/keyboards/handwired/onekey/stm32f405_feather/readme.md @@ -4,4 +4,4 @@ To trigger keypress, short together pins *GPIO 12 / PC2* and *GPIO 11 / PC3*. -https://learn.adafruit.com/adafruit-stm32f405-feather-express/dfu-bootloader-details#enabling-dfu-bootloader-mode-3045622-2 \ No newline at end of file +https://learn.adafruit.com/adafruit-stm32f405-feather-express/dfu-bootloader-details#enabling-dfu-bootloader-mode-3045622-2 diff --git a/keyboards/handwired/onekey/teensy_lc/readme.md b/keyboards/handwired/onekey/teensy_lc/readme.md index 20e9be5bed..49a3b97693 100644 --- a/keyboards/handwired/onekey/teensy_lc/readme.md +++ b/keyboards/handwired/onekey/teensy_lc/readme.md @@ -35,4 +35,4 @@ When setting matrix pins, you need to use the MCU definitions instead of what is | 23/A9 | C2 | | | 24/A10 | E20 | | | 25/A11 | E21 | | -| 26/A12 | E30 | | \ No newline at end of file +| 26/A12 | E30 | | diff --git a/keyboards/handwired/petruziamini/keyboard.json b/keyboards/handwired/petruziamini/keyboard.json index 1d0686aaa1..84eb7772c6 100644 --- a/keyboards/handwired/petruziamini/keyboard.json +++ b/keyboards/handwired/petruziamini/keyboard.json @@ -80,4 +80,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/petruziamini/keymaps/default/keymap.c b/keyboards/handwired/petruziamini/keymaps/default/keymap.c index 5a49827379..177226309c 100644 --- a/keyboards/handwired/petruziamini/keymaps/default/keymap.c +++ b/keyboards/handwired/petruziamini/keymaps/default/keymap.c @@ -63,4 +63,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB_M_X, RGB_M_G, RGB_M_T, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, UG_PREV, TG(7), KC_NO, KC_NO, KC_NO, KC_NO, KC_NO ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/petruziamini/readme.md b/keyboards/handwired/petruziamini/readme.md index cf5526d0df..041e1ebb47 100644 --- a/keyboards/handwired/petruziamini/readme.md +++ b/keyboards/handwired/petruziamini/readme.md @@ -24,4 +24,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader with: -* **Keycode in layout**: Press the key mapped to `QK_BOOT` (3,5) + (0,1) in the matrix \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` (3,5) + (0,1) in the matrix diff --git a/keyboards/handwired/phantagom/baragon/keymaps/default/keymap.c b/keyboards/handwired/phantagom/baragon/keymaps/default/keymap.c index ff6172ecbd..c507420113 100644 --- a/keyboards/handwired/phantagom/baragon/keymaps/default/keymap.c +++ b/keyboards/handwired/phantagom/baragon/keymaps/default/keymap.c @@ -22,4 +22,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLU, KC_VOLD) }, [1] = { ENCODER_CCW_CW(KC_MRWD, KC_MFFD) }, }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/handwired/pill60/keymaps/default/readme.md b/keyboards/handwired/pill60/keymaps/default/readme.md index b1c3f1d79f..deec4d7be0 100644 --- a/keyboards/handwired/pill60/keymaps/default/readme.md +++ b/keyboards/handwired/pill60/keymaps/default/readme.md @@ -3,4 +3,4 @@ # Default Pill 60 Layout This is the default layout that comes flashed on every 60% board. For the most -part it's a straightforward and easy to follow layout. Except the backspace is split, and right shift is split. \ No newline at end of file +part it's a straightforward and easy to follow layout. Except the backspace is split, and right shift is split. diff --git a/keyboards/handwired/polly40/readme.md b/keyboards/handwired/polly40/readme.md index 58e74febaf..0db92d3948 100644 --- a/keyboards/handwired/polly40/readme.md +++ b/keyboards/handwired/polly40/readme.md @@ -23,4 +23,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader in 3 ways: * **Physical reset button**: Short Ground and RST pin -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/promethium/color.h b/keyboards/handwired/promethium/color.h index 2bbfcb83a7..4ae84b7fca 100644 --- a/keyboards/handwired/promethium/color.h +++ b/keyboards/handwired/promethium/color.h @@ -14,4 +14,4 @@ #define COLOR_MAGENTA 15, 0,15 #define COLOR_CYAN 0,15,15 -#define COLOR_ORANGE 15, 5, 0 \ No newline at end of file +#define COLOR_ORANGE 15, 5, 0 diff --git a/keyboards/handwired/promethium/keymaps/default/README.md b/keyboards/handwired/promethium/keymaps/default/README.md index 48824b9f73..843c631078 100644 --- a/keyboards/handwired/promethium/keymaps/default/README.md +++ b/keyboards/handwired/promethium/keymaps/default/README.md @@ -41,4 +41,4 @@ SYS-A (mnemonic: audio) toggles faux clicky: use buzzer to emit clicks on key pr On Promethium there are 16 indicator LEDs, and under switch LEDs on each switches, including Trackpoint buttons. Totaling 67 LEDs. Output is limited to 0xF for each LEDs to conserve power. SYS-G (mnemonic: glow) toggles various backlighting modes. -On Promethium, there's a LED to indicate battery level. Hue indicates level: green is full, red is empty. \ No newline at end of file +On Promethium, there's a LED to indicate battery level. Hue indicates level: green is full, red is empty. diff --git a/keyboards/handwired/promethium/keymaps/default/rgbtheme_carbon.h b/keyboards/handwired/promethium/keymaps/default/rgbtheme_carbon.h index 8e0a98b092..206441d993 100644 --- a/keyboards/handwired/promethium/keymaps/default/rgbtheme_carbon.h +++ b/keyboards/handwired/promethium/keymaps/default/rgbtheme_carbon.h @@ -33,4 +33,4 @@ #define THEME_COLOR_TP1 COLOR_ORANGE #define THEME_COLOR_TP2 COLOR_RED -#define THEME_COLOR_TP3 COLOR_ORANGE \ No newline at end of file +#define THEME_COLOR_TP3 COLOR_ORANGE diff --git a/keyboards/handwired/promethium/keymaps/default/rgbtheme_default.h b/keyboards/handwired/promethium/keymaps/default/rgbtheme_default.h index 4c3fb13693..a8d2f13db5 100644 --- a/keyboards/handwired/promethium/keymaps/default/rgbtheme_default.h +++ b/keyboards/handwired/promethium/keymaps/default/rgbtheme_default.h @@ -33,4 +33,4 @@ #define THEME_COLOR_TP1 COLOR_RED #define THEME_COLOR_TP2 COLOR_BLUE -#define THEME_COLOR_TP3 COLOR_RED \ No newline at end of file +#define THEME_COLOR_TP3 COLOR_RED diff --git a/keyboards/handwired/promethium/readme.md b/keyboards/handwired/promethium/readme.md index e63d2f1add..8194214535 100644 --- a/keyboards/handwired/promethium/readme.md +++ b/keyboards/handwired/promethium/readme.md @@ -10,4 +10,4 @@ Features: * Bluetooth LE *TBD* * Battery * Per switch RGB LED -* Proximity sensor for energy conservation *TBD* \ No newline at end of file +* Proximity sensor for energy conservation *TBD* diff --git a/keyboards/handwired/promethium/rgbsps.h b/keyboards/handwired/promethium/rgbsps.h index 77689344fc..2e3c9fa0b3 100644 --- a/keyboards/handwired/promethium/rgbsps.h +++ b/keyboards/handwired/promethium/rgbsps.h @@ -4,4 +4,4 @@ void rgbsps_set(uint8_t index, uint8_t r, uint8_t g, uint8_t b); void rgbsps_setall(uint8_t r, uint8_t g, uint8_t b); void rgbsps_turnoff(void); void rgbsps_send(void); -void rgbsps_sethsv(uint8_t index, uint16_t hue, uint8_t sat, uint8_t val); \ No newline at end of file +void rgbsps_sethsv(uint8_t index, uint16_t hue, uint8_t sat, uint8_t val); diff --git a/keyboards/handwired/pteron/readme.md b/keyboards/handwired/pteron/readme.md index a66d41edbb..a8e9073191 100644 --- a/keyboards/handwired/pteron/readme.md +++ b/keyboards/handwired/pteron/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make handwired/pteron: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). \ No newline at end of file +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/handwired/riblee_f401/readme.md b/keyboards/handwired/riblee_f401/readme.md index 6287ac40c1..d51ba88502 100644 --- a/keyboards/handwired/riblee_f401/readme.md +++ b/keyboards/handwired/riblee_f401/readme.md @@ -13,4 +13,4 @@ Flashing example for this keyboard: make handwired/riblee_f401: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). \ No newline at end of file +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/handwired/riblee_f411/readme.md b/keyboards/handwired/riblee_f411/readme.md index e59a307fe7..8efc1e6218 100644 --- a/keyboards/handwired/riblee_f411/readme.md +++ b/keyboards/handwired/riblee_f411/readme.md @@ -13,4 +13,4 @@ Flashing example for this keyboard: make handwired/riblee_f411: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). \ No newline at end of file +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/handwired/scottokeebs/scotto108/keyboard.json b/keyboards/handwired/scottokeebs/scotto108/keyboard.json index 0781bb4cae..7a7e660d79 100644 --- a/keyboards/handwired/scottokeebs/scotto108/keyboard.json +++ b/keyboards/handwired/scottokeebs/scotto108/keyboard.json @@ -135,4 +135,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/scottokeebs/scotto108/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scotto108/keymaps/default/keymap.c index 472318e1f5..1b90006a79 100644 --- a/keyboards/handwired/scottokeebs/scotto108/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scotto108/keymaps/default/keymap.c @@ -26,4 +26,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, KC_P1, KC_P2, KC_P3, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT, KC_P0, KC_PDOT, KC_PENT ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scotto34/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scotto34/keymaps/default/keymap.c index 8231ad94fc..2fbc9a8c81 100644 --- a/keyboards/handwired/scottokeebs/scotto34/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scotto34/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scotto34/readme.md b/keyboards/handwired/scottokeebs/scotto34/readme.md index 88e9185ec2..c377a8affa 100644 --- a/keyboards/handwired/scottokeebs/scotto34/readme.md +++ b/keyboards/handwired/scottokeebs/scotto34/readme.md @@ -26,4 +26,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scotto36/readme.md b/keyboards/handwired/scottokeebs/scotto36/readme.md index a8cbe3cf41..0650e0f218 100644 --- a/keyboards/handwired/scottokeebs/scotto36/readme.md +++ b/keyboards/handwired/scottokeebs/scotto36/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scotto37/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scotto37/keymaps/default/keymap.c index a5d489f004..e53d2853c7 100644 --- a/keyboards/handwired/scottokeebs/scotto37/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scotto37/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scotto40/readme.md b/keyboards/handwired/scottokeebs/scotto40/readme.md index f81e639847..12ef7a23ed 100644 --- a/keyboards/handwired/scottokeebs/scotto40/readme.md +++ b/keyboards/handwired/scottokeebs/scotto40/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scotto61/keyboard.json b/keyboards/handwired/scottokeebs/scotto61/keyboard.json index 31510f5b86..362d8279fc 100644 --- a/keyboards/handwired/scottokeebs/scotto61/keyboard.json +++ b/keyboards/handwired/scottokeebs/scotto61/keyboard.json @@ -88,4 +88,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/scottokeebs/scotto61/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scotto61/keymaps/default/keymap.c index e12bf9b644..44d163a33a 100644 --- a/keyboards/handwired/scottokeebs/scotto61/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scotto61/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMMA, KC_DOT, KC_SLSH, KC_RSFT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scotto9/readme.md b/keyboards/handwired/scottokeebs/scotto9/readme.md index ab87671138..afe5a98096 100644 --- a/keyboards/handwired/scottokeebs/scotto9/readme.md +++ b/keyboards/handwired/scottokeebs/scotto9/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottoalp/keyboard.json b/keyboards/handwired/scottokeebs/scottoalp/keyboard.json index d3473c7b22..21879d9b05 100644 --- a/keyboards/handwired/scottokeebs/scottoalp/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottoalp/keyboard.json @@ -75,4 +75,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/scottokeebs/scottoalp/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottoalp/keymaps/default/keymap.c index cc334629f6..f1dcd782d9 100644 --- a/keyboards/handwired/scottokeebs/scottoalp/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottoalp/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, 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/handwired/scottokeebs/scottoalp/readme.md b/keyboards/handwired/scottokeebs/scottoalp/readme.md index 3f49d61199..4210a8d0d6 100644 --- a/keyboards/handwired/scottokeebs/scottoalp/readme.md +++ b/keyboards/handwired/scottokeebs/scottoalp/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,1) 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottocmd/config.h b/keyboards/handwired/scottokeebs/scottocmd/config.h index a168f0ef21..37714b3574 100644 --- a/keyboards/handwired/scottokeebs/scottocmd/config.h +++ b/keyboards/handwired/scottokeebs/scottocmd/config.h @@ -18,4 +18,4 @@ along with this program. If not, see . #pragma once // OLED -#define OLED_DISPLAY_128X64 \ No newline at end of file +#define OLED_DISPLAY_128X64 diff --git a/keyboards/handwired/scottokeebs/scottocmd/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottocmd/keymaps/default/keymap.c index dbb5cbc4a9..b7552a8a72 100644 --- a/keyboards/handwired/scottokeebs/scottocmd/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottocmd/keymaps/default/keymap.c @@ -46,4 +46,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scottocmd/scottocmd.c b/keyboards/handwired/scottokeebs/scottocmd/scottocmd.c index 9027b50028..d2bcd3a07e 100644 --- a/keyboards/handwired/scottokeebs/scottocmd/scottocmd.c +++ b/keyboards/handwired/scottokeebs/scottocmd/scottocmd.c @@ -36,4 +36,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/handwired/scottokeebs/scottodeck/keyboard.json b/keyboards/handwired/scottokeebs/scottodeck/keyboard.json index e8f4f60c21..089d72ad67 100644 --- a/keyboards/handwired/scottokeebs/scottodeck/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottodeck/keyboard.json @@ -47,4 +47,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/scottokeebs/scottodeck/readme.md b/keyboards/handwired/scottokeebs/scottodeck/readme.md index 86224acb3c..b24b47d851 100644 --- a/keyboards/handwired/scottokeebs/scottodeck/readme.md +++ b/keyboards/handwired/scottokeebs/scottodeck/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottoergo/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottoergo/keymaps/default/keymap.c index 451f48a968..f13389954f 100644 --- a/keyboards/handwired/scottokeebs/scottoergo/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottoergo/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scottoergo/readme.md b/keyboards/handwired/scottokeebs/scottoergo/readme.md index 8bbf388304..3ddb7c5a4d 100644 --- a/keyboards/handwired/scottokeebs/scottoergo/readme.md +++ b/keyboards/handwired/scottokeebs/scottoergo/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottofly/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottofly/keymaps/default/keymap.c index 2633845d50..4e4a995269 100644 --- a/keyboards/handwired/scottokeebs/scottofly/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottofly/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scottofly/readme.md b/keyboards/handwired/scottokeebs/scottofly/readme.md index ae51e0ef75..742191f647 100644 --- a/keyboards/handwired/scottokeebs/scottofly/readme.md +++ b/keyboards/handwired/scottokeebs/scottofly/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottogame/config.h b/keyboards/handwired/scottokeebs/scottogame/config.h index a168f0ef21..37714b3574 100644 --- a/keyboards/handwired/scottokeebs/scottogame/config.h +++ b/keyboards/handwired/scottokeebs/scottogame/config.h @@ -18,4 +18,4 @@ along with this program. If not, see . #pragma once // OLED -#define OLED_DISPLAY_128X64 \ No newline at end of file +#define OLED_DISPLAY_128X64 diff --git a/keyboards/handwired/scottokeebs/scottogame/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottogame/keymaps/default/keymap.c index 786587e543..2643590e98 100644 --- a/keyboards/handwired/scottokeebs/scottogame/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottogame/keymaps/default/keymap.c @@ -46,4 +46,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scottogame/readme.md b/keyboards/handwired/scottokeebs/scottogame/readme.md index c622df1b4e..3ad481092e 100644 --- a/keyboards/handwired/scottokeebs/scottogame/readme.md +++ b/keyboards/handwired/scottokeebs/scottogame/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottogame/scottogame.c b/keyboards/handwired/scottokeebs/scottogame/scottogame.c index bea5a57a3b..1de49ed27f 100644 --- a/keyboards/handwired/scottokeebs/scottogame/scottogame.c +++ b/keyboards/handwired/scottokeebs/scottogame/scottogame.c @@ -31,4 +31,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/handwired/scottokeebs/scottohazard/config.h b/keyboards/handwired/scottokeebs/scottohazard/config.h index 2036aaed34..64010b226c 100644 --- a/keyboards/handwired/scottokeebs/scottohazard/config.h +++ b/keyboards/handwired/scottokeebs/scottohazard/config.h @@ -17,4 +17,4 @@ along with this program. If not, see . #pragma once -#define EE_HANDS \ No newline at end of file +#define EE_HANDS diff --git a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/default/keymap.c index 2633845d50..4e4a995269 100644 --- a/keyboards/handwired/scottokeebs/scottoinvader/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottoinvader/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scottoinvader/readme.md b/keyboards/handwired/scottokeebs/scottoinvader/readme.md index c04920498a..3b65f069e4 100644 --- a/keyboards/handwired/scottokeebs/scottoinvader/readme.md +++ b/keyboards/handwired/scottokeebs/scottoinvader/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottokatana/keyboard.json b/keyboards/handwired/scottokeebs/scottokatana/keyboard.json index 6cf65818b6..f15ec3ed9e 100644 --- a/keyboards/handwired/scottokeebs/scottokatana/keyboard.json +++ b/keyboards/handwired/scottokeebs/scottokatana/keyboard.json @@ -60,4 +60,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/scottokeebs/scottokatana/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottokatana/keymaps/default/keymap.c index b3ef7e9758..a620e88277 100644 --- a/keyboards/handwired/scottokeebs/scottokatana/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottokatana/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scottokatana/readme.md b/keyboards/handwired/scottokeebs/scottokatana/readme.md index 915062f653..9605a4e6ea 100644 --- a/keyboards/handwired/scottokeebs/scottokatana/readme.md +++ b/keyboards/handwired/scottokeebs/scottokatana/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottolong/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottolong/keymaps/default/keymap.c index e63da854f0..006ce3ec84 100644 --- a/keyboards/handwired/scottokeebs/scottolong/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottolong/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scottolong/readme.md b/keyboards/handwired/scottokeebs/scottolong/readme.md index bdea4ee350..88303e5aad 100644 --- a/keyboards/handwired/scottokeebs/scottolong/readme.md +++ b/keyboards/handwired/scottokeebs/scottolong/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottomacrodeck/readme.md b/keyboards/handwired/scottokeebs/scottomacrodeck/readme.md index 4fc82f42c8..0f49f5b780 100644 --- a/keyboards/handwired/scottokeebs/scottomacrodeck/readme.md +++ b/keyboards/handwired/scottokeebs/scottomacrodeck/readme.md @@ -26,4 +26,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottomouse/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottomouse/keymaps/default/keymap.c index 967526afa6..fe2e5738ac 100644 --- a/keyboards/handwired/scottokeebs/scottomouse/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottomouse/keymaps/default/keymap.c @@ -21,4 +21,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT( MS_BTN1, MS_BTN2, MS_LEFT, MS_UP, MS_DOWN, MS_RGHT ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scottomouse/readme.md b/keyboards/handwired/scottokeebs/scottomouse/readme.md index 4102f63310..d4c5f41bcd 100644 --- a/keyboards/handwired/scottokeebs/scottomouse/readme.md +++ b/keyboards/handwired/scottokeebs/scottomouse/readme.md @@ -26,4 +26,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottoslant/readme.md b/keyboards/handwired/scottokeebs/scottoslant/readme.md index 6bb237b6bf..f3d37ee189 100644 --- a/keyboards/handwired/scottokeebs/scottoslant/readme.md +++ b/keyboards/handwired/scottokeebs/scottoslant/readme.md @@ -25,4 +25,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/keymap.c b/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/keymap.c index 2633845d50..4e4a995269 100644 --- a/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/keymap.c +++ b/keyboards/handwired/scottokeebs/scottosplit/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/scottokeebs/scottosplit/readme.md b/keyboards/handwired/scottokeebs/scottosplit/readme.md index 94e73afd13..c364699ee7 100644 --- a/keyboards/handwired/scottokeebs/scottosplit/readme.md +++ b/keyboards/handwired/scottokeebs/scottosplit/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/scottokeebs/scottostarter/readme.md b/keyboards/handwired/scottokeebs/scottostarter/readme.md index 346db2f5fd..b2641685e5 100644 --- a/keyboards/handwired/scottokeebs/scottostarter/readme.md +++ b/keyboards/handwired/scottokeebs/scottostarter/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/skakunm_dactyl/keymaps/default/keymap.c b/keyboards/handwired/skakunm_dactyl/keymaps/default/keymap.c index 0109b18c6c..9f1b95c7c3 100644 --- a/keyboards/handwired/skakunm_dactyl/keymaps/default/keymap.c +++ b/keyboards/handwired/skakunm_dactyl/keymaps/default/keymap.c @@ -38,4 +38,4 @@ enum custom_keycodes { 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/handwired/skakunm_dactyl/readme.md b/keyboards/handwired/skakunm_dactyl/readme.md index 73174fbd1b..ae78156824 100644 --- a/keyboards/handwired/skakunm_dactyl/readme.md +++ b/keyboards/handwired/skakunm_dactyl/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make handwired/skakunm_dactyl: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). \ No newline at end of file +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/handwired/splittest/keymaps/bitbang/keymap.c b/keyboards/handwired/splittest/keymaps/bitbang/keymap.c index 8a83e19850..7535715da1 100644 --- a/keyboards/handwired/splittest/keymaps/bitbang/keymap.c +++ b/keyboards/handwired/splittest/keymaps/bitbang/keymap.c @@ -11,4 +11,4 @@ void keyboard_post_init_user(void) { debug_matrix = true; debug_keyboard = true; // debug_mouse=true; -} \ No newline at end of file +} diff --git a/keyboards/handwired/stef9998/split_5x7/keymaps/default/readme.md b/keyboards/handwired/stef9998/split_5x7/keymaps/default/readme.md index 9d3e057bc6..9e18a74c4a 100644 --- a/keyboards/handwired/stef9998/split_5x7/keymaps/default/readme.md +++ b/keyboards/handwired/stef9998/split_5x7/keymaps/default/readme.md @@ -4,4 +4,4 @@ This is the default layout. For the most part it's a straightforward and easy to follow layout. -The only thing to note is the apostrophe key which is on the second layer under return. \ No newline at end of file +The only thing to note is the apostrophe key which is on the second layer under return. diff --git a/keyboards/handwired/stef9998/split_5x7/keymaps/stef9998/rules.mk b/keyboards/handwired/stef9998/split_5x7/keymaps/stef9998/rules.mk index f18f03c2c7..aff8946111 100644 --- a/keyboards/handwired/stef9998/split_5x7/keymaps/stef9998/rules.mk +++ b/keyboards/handwired/stef9998/split_5x7/keymaps/stef9998/rules.mk @@ -1,2 +1,2 @@ CAPS_WORD_ENABLE = yes -SWAP_HANDS_ENABLE = yes \ No newline at end of file +SWAP_HANDS_ENABLE = yes diff --git a/keyboards/handwired/stef9998/split_5x7/readme.md b/keyboards/handwired/stef9998/split_5x7/readme.md index bf6c9ef719..26a06749f8 100644 --- a/keyboards/handwired/stef9998/split_5x7/readme.md +++ b/keyboards/handwired/stef9998/split_5x7/readme.md @@ -23,4 +23,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to How to enter the bootloader: * **Keycode in layout**: Press the key mapped to `QK_BOOT`.\ -In the default keymap it's accessible by pressing either of the buttons bringing you to layer `_SYM` and then pressing one of the outer Ctrl's. \ No newline at end of file +In the default keymap it's accessible by pressing either of the buttons bringing you to layer `_SYM` and then pressing one of the outer Ctrl's. diff --git a/keyboards/handwired/stef9998/split_5x7/rev1/rev1.c b/keyboards/handwired/stef9998/split_5x7/rev1/rev1.c index 18543078c7..94c1780d08 100644 --- a/keyboards/handwired/stef9998/split_5x7/rev1/rev1.c +++ b/keyboards/handwired/stef9998/split_5x7/rev1/rev1.c @@ -30,4 +30,4 @@ const keypos_t PROGMEM hand_swap_config[MATRIX_ROWS][MATRIX_COLS] = { {{0, 3}, {1, 3}, {2, 3}, {3, 3}, {4, 3}, {5, 3}, {6, 3}}, {{0, 4}, {1, 4}, {2, 4}, {3, 4}, {4, 4}, {5, 4}, {6, 4}}, }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/handwired/stef9998/split_5x7/rev1/rules.mk b/keyboards/handwired/stef9998/split_5x7/rev1/rules.mk index 3cd6d040b8..1056aa2c41 100644 --- a/keyboards/handwired/stef9998/split_5x7/rev1/rules.mk +++ b/keyboards/handwired/stef9998/split_5x7/rev1/rules.mk @@ -1,4 +1,4 @@ # Disable unsupported hardware AUDIO_SUPPORTED = no BACKLIGHT_SUPPORTED = no -RGBLIGHT_SUPPORTED = no \ No newline at end of file +RGBLIGHT_SUPPORTED = no diff --git a/keyboards/handwired/swiftrax/the_galleon/keymaps/default/rules.mk b/keyboards/handwired/swiftrax/the_galleon/keymaps/default/rules.mk index 90fc9b184b..979fc59cc7 100644 --- a/keyboards/handwired/swiftrax/the_galleon/keymaps/default/rules.mk +++ b/keyboards/handwired/swiftrax/the_galleon/keymaps/default/rules.mk @@ -1 +1 @@ -WPM_ENABLE = yes \ No newline at end of file +WPM_ENABLE = yes diff --git a/keyboards/handwired/t111/keymaps/oleg/config.h b/keyboards/handwired/t111/keymaps/oleg/config.h index b4f15ae896..3e5f8251c3 100644 --- a/keyboards/handwired/t111/keymaps/oleg/config.h +++ b/keyboards/handwired/t111/keymaps/oleg/config.h @@ -17,4 +17,4 @@ along with this program. If not, see . #pragma once -#define UNICODE_SELECTED_MODES UNICODE_MODE_WINDOWS, UNICODE_MODE_WINCOMPOSE \ No newline at end of file +#define UNICODE_SELECTED_MODES UNICODE_MODE_WINDOWS, UNICODE_MODE_WINCOMPOSE diff --git a/keyboards/handwired/t111/keymaps/oleg/rules.mk b/keyboards/handwired/t111/keymaps/oleg/rules.mk index 0517619ed1..502b2def76 100644 --- a/keyboards/handwired/t111/keymaps/oleg/rules.mk +++ b/keyboards/handwired/t111/keymaps/oleg/rules.mk @@ -1 +1 @@ -UNICODEMAP_ENABLE = yes \ No newline at end of file +UNICODEMAP_ENABLE = yes diff --git a/keyboards/handwired/twadlee/tp69/twadlee-tp69-kle.json b/keyboards/handwired/twadlee/tp69/twadlee-tp69-kle.json index b54508bf4f..f2fb14db93 100644 --- a/keyboards/handwired/twadlee/tp69/twadlee-tp69-kle.json +++ b/keyboards/handwired/twadlee/tp69/twadlee-tp69-kle.json @@ -136,4 +136,4 @@ }, "" ] -] \ No newline at end of file +] diff --git a/keyboards/handwired/wwa/helios/keyboard.json b/keyboards/handwired/wwa/helios/keyboard.json index 8a77808e67..beb821643f 100644 --- a/keyboards/handwired/wwa/helios/keyboard.json +++ b/keyboards/handwired/wwa/helios/keyboard.json @@ -38,4 +38,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/wwa/kepler/keyboard.json b/keyboards/handwired/wwa/kepler/keyboard.json index 843403bf89..ab0689b8c8 100644 --- a/keyboards/handwired/wwa/kepler/keyboard.json +++ b/keyboards/handwired/wwa/kepler/keyboard.json @@ -50,4 +50,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/wwa/mercury/keyboard.json b/keyboards/handwired/wwa/mercury/keyboard.json index 8ed067f84d..47ad7c7c2a 100644 --- a/keyboards/handwired/wwa/mercury/keyboard.json +++ b/keyboards/handwired/wwa/mercury/keyboard.json @@ -34,4 +34,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/wwa/mercury/readme.md b/keyboards/handwired/wwa/mercury/readme.md index 32d346dbe9..1523d95d30 100644 --- a/keyboards/handwired/wwa/mercury/readme.md +++ b/keyboards/handwired/wwa/mercury/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/wwa/soyuz/keyboard.json b/keyboards/handwired/wwa/soyuz/keyboard.json index b922af10a2..d8d09e74c2 100644 --- a/keyboards/handwired/wwa/soyuz/keyboard.json +++ b/keyboards/handwired/wwa/soyuz/keyboard.json @@ -57,4 +57,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/wwa/soyuzxl/keyboard.json b/keyboards/handwired/wwa/soyuzxl/keyboard.json index d666e798f4..fd32c25a4d 100644 --- a/keyboards/handwired/wwa/soyuzxl/keyboard.json +++ b/keyboards/handwired/wwa/soyuzxl/keyboard.json @@ -49,4 +49,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/handwired/wwa/soyuzxl/keymaps/default/keymap.c b/keyboards/handwired/wwa/soyuzxl/keymaps/default/keymap.c index af0eb592dc..6004d8caf2 100644 --- a/keyboards/handwired/wwa/soyuzxl/keymaps/default/keymap.c +++ b/keyboards/handwired/wwa/soyuzxl/keymaps/default/keymap.c @@ -10,4 +10,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_F12, KC_F13, KC_F14, KC_F15, KC_F16, KC_F17, KC_F18, KC_F19, KC_F20, KC_F21, KC_F22, KC_F23, KC_F24 ) -}; \ No newline at end of file +}; diff --git a/keyboards/handwired/yodadistro/macro/readme.md b/keyboards/handwired/yodadistro/macro/readme.md index ceda19acba..4183280b99 100644 --- a/keyboards/handwired/yodadistro/macro/readme.md +++ b/keyboards/handwired/yodadistro/macro/readme.md @@ -22,4 +22,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to * **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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/handwired/z150/keymaps/default/keymap.c b/keyboards/handwired/z150/keymaps/default/keymap.c index 8ebc68f37a..f7fb3a0987 100644 --- a/keyboards/handwired/z150/keymaps/default/keymap.c +++ b/keyboards/handwired/z150/keymaps/default/keymap.c @@ -36,4 +36,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F7, KC_F8, 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_P1, KC_P2, KC_P3, KC_PPLS, KC_F9, KC_F10,KC_LALT, KC_GRV, KC_SPC, KC_CAPS, KC_P0, KC_PDOT ) -}; \ No newline at end of file +}; diff --git a/keyboards/hazel/bad_wings/config.h b/keyboards/hazel/bad_wings/config.h index b69628e7fc..4a498a1ae3 100644 --- a/keyboards/hazel/bad_wings/config.h +++ b/keyboards/hazel/bad_wings/config.h @@ -19,4 +19,4 @@ #define POINTING_DEVICE_CS_PIN GP1 #define CIRQUE_PINNACLE_DIAMETER_MM 35 -#define POINTING_DEVICE_ROTATION_90 \ No newline at end of file +#define POINTING_DEVICE_ROTATION_90 diff --git a/keyboards/hazel/bad_wings/keymaps/default/keymap.json b/keyboards/hazel/bad_wings/keymaps/default/keymap.json index 670506eaf6..13233c1cf8 100644 --- a/keyboards/hazel/bad_wings/keymaps/default/keymap.json +++ b/keyboards/hazel/bad_wings/keymaps/default/keymap.json @@ -160,4 +160,4 @@ ] ], "author": "Jason Hazel" -} \ No newline at end of file +} diff --git a/keyboards/hazel/bad_wings/keymaps/default/rules.mk b/keyboards/hazel/bad_wings/keymaps/default/rules.mk index cb8ebf227e..7a7b6c40c2 100644 --- a/keyboards/hazel/bad_wings/keymaps/default/rules.mk +++ b/keyboards/hazel/bad_wings/keymaps/default/rules.mk @@ -1,2 +1,2 @@ MOUSEKEY_ENABLE = yes -EXTRAKEY_ENABLE = yes \ No newline at end of file +EXTRAKEY_ENABLE = yes diff --git a/keyboards/hazel/bad_wings/mcuconf.c b/keyboards/hazel/bad_wings/mcuconf.c index 9ed5ae7efb..add1bd2887 100644 --- a/keyboards/hazel/bad_wings/mcuconf.c +++ b/keyboards/hazel/bad_wings/mcuconf.c @@ -8,4 +8,4 @@ #undef RP_SPI_USE_SPI0 #define RP_SPI_USE_SPI0 TRUE #undef RP_I2C_USE_I2C1 -#define RP_I2C_USE_I2C1 TRUE \ No newline at end of file +#define RP_I2C_USE_I2C1 TRUE diff --git a/keyboards/hazel/bad_wings/readme.md b/keyboards/hazel/bad_wings/readme.md index 0b0f643745..3323d2c2f7 100644 --- a/keyboards/hazel/bad_wings/readme.md +++ b/keyboards/hazel/bad_wings/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the top-left key and plug in the keyboard * **Physical reset button**: Hold Xiao B button, press Xiao R button, release B -* **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 \ No newline at end of file +* **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 diff --git a/keyboards/heliar/wm1_hotswap/keymaps/default/readme.md b/keyboards/heliar/wm1_hotswap/keymaps/default/readme.md index d35a2c1e4d..bed6b22e02 100644 --- a/keyboards/heliar/wm1_hotswap/keymaps/default/readme.md +++ b/keyboards/heliar/wm1_hotswap/keymaps/default/readme.md @@ -4,4 +4,4 @@ ## layer 1 keymap ![Wm1 Layout Image Layer1](https://i.imgur.com/cHOefMH.png) ## The keycap size of layout -![Wm1 Layout Image Layout size](https://i.imgur.com/jL1EDod.png) \ No newline at end of file +![Wm1 Layout Image Layout size](https://i.imgur.com/jL1EDod.png) diff --git a/keyboards/hineybush/h87_g2/config.h b/keyboards/hineybush/h87_g2/config.h index f37f589f0a..ccde4ac624 100644 --- a/keyboards/hineybush/h87_g2/config.h +++ b/keyboards/hineybush/h87_g2/config.h @@ -16,4 +16,4 @@ #define BACKLIGHT_PWM_DRIVER PWMD3 #define BACKLIGHT_PWM_CHANNEL 1 -#define BACKLIGHT_PAL_MODE 1 \ No newline at end of file +#define BACKLIGHT_PAL_MODE 1 diff --git a/keyboards/holyswitch/lightweight65/keymaps/default/keymap.c b/keyboards/holyswitch/lightweight65/keymaps/default/keymap.c index a5e4a91ea8..3969ccceef 100644 --- a/keyboards/holyswitch/lightweight65/keymaps/default/keymap.c +++ b/keyboards/holyswitch/lightweight65/keymaps/default/keymap.c @@ -31,4 +31,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/horizon/keymaps/default/keymap.c b/keyboards/horizon/keymaps/default/keymap.c index bdb03bd081..5b20cf4814 100644 --- a/keyboards/horizon/keymaps/default/keymap.c +++ b/keyboards/horizon/keymaps/default/keymap.c @@ -44,4 +44,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/horrortroll/handwired_k552/keymaps/default/led/cool_diagonal.c b/keyboards/horrortroll/handwired_k552/keymaps/default/led/cool_diagonal.c index d1cb624570..abebdd6296 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/default/led/cool_diagonal.c +++ b/keyboards/horrortroll/handwired_k552/keymaps/default/led/cool_diagonal.c @@ -19,4 +19,4 @@ static hsv_t COOL_DIAGONAL_math(hsv_t hsv, uint8_t i, uint8_t time) { return hsv; } -bool COOL_DIAGONAL(effect_params_t* params) { return effect_runner_i(params, &COOL_DIAGONAL_math); } \ No newline at end of file +bool COOL_DIAGONAL(effect_params_t* params) { return effect_runner_i(params, &COOL_DIAGONAL_math); } diff --git a/keyboards/horrortroll/handwired_k552/keymaps/default/rgb_matrix_user.inc b/keyboards/horrortroll/handwired_k552/keymaps/default/rgb_matrix_user.inc index 1817465030..1e09e3f0c1 100644 --- a/keyboards/horrortroll/handwired_k552/keymaps/default/rgb_matrix_user.inc +++ b/keyboards/horrortroll/handwired_k552/keymaps/default/rgb_matrix_user.inc @@ -12,4 +12,4 @@ RGB_MATRIX_EFFECT(RANDOM_BREATH_RAINBOW) #include "led/kitt.c" #include "led/random_breath_rainbow.c" -#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS \ No newline at end of file +#endif // RGB_MATRIX_CUSTOM_EFFECT_IMPLS diff --git a/keyboards/horrortroll/handwired_k552/lib/galaxy.c b/keyboards/horrortroll/handwired_k552/lib/galaxy.c index 6578295c6f..511c5ae775 100644 --- a/keyboards/horrortroll/handwired_k552/lib/galaxy.c +++ b/keyboards/horrortroll/handwired_k552/lib/galaxy.c @@ -59,4 +59,4 @@ void render_galaxy(void) { }; oled_write_raw_P(galaxy[0], ANIM_SIZE); -} \ No newline at end of file +} diff --git a/keyboards/horrortroll/handwired_k552/mcuconf.h b/keyboards/horrortroll/handwired_k552/mcuconf.h index 88bd6f4846..4469bc3398 100644 --- a/keyboards/horrortroll/handwired_k552/mcuconf.h +++ b/keyboards/horrortroll/handwired_k552/mcuconf.h @@ -30,4 +30,4 @@ #define STM32_SPI_USE_SPI1 TRUE #undef STM32_SPI_USE_SPI2 -#define STM32_SPI_USE_SPI2 FALSE \ No newline at end of file +#define STM32_SPI_USE_SPI2 FALSE diff --git a/keyboards/horrortroll/readme.md b/keyboards/horrortroll/readme.md index 64bcdf0c65..d862cab63e 100644 --- a/keyboards/horrortroll/readme.md +++ b/keyboards/horrortroll/readme.md @@ -32,4 +32,4 @@ **Discord:** HorrorTroll#0975 **Facebook:** https://www.facebook.com/PhamChonChe.Duc -**Email:** sonicvipduc@gmail.com \ No newline at end of file +**Email:** sonicvipduc@gmail.com diff --git a/keyboards/hp69/keymaps/default/rules.mk b/keyboards/hp69/keymaps/default/rules.mk index 628167ff66..ef72559a0c 100644 --- a/keyboards/hp69/keymaps/default/rules.mk +++ b/keyboards/hp69/keymaps/default/rules.mk @@ -1 +1 @@ -AUDIO_ENABLE = yes \ No newline at end of file +AUDIO_ENABLE = yes diff --git a/keyboards/hs60/v1/ansi/keymaps/default/readme.md b/keyboards/hs60/v1/ansi/keymaps/default/readme.md index fa811319d3..0c10315c81 100644 --- a/keyboards/hs60/v1/ansi/keymaps/default/readme.md +++ b/keyboards/hs60/v1/ansi/keymaps/default/readme.md @@ -3,4 +3,4 @@ The default keymap for ANSI HS60 ![Layout image](https://imgur.com/CSyPw0J.png) -Default layer is normal ANSI and Fn layer is used for RGB functions, Volume control and arrow cluster \ No newline at end of file +Default layer is normal ANSI and Fn layer is used for RGB functions, Volume control and arrow cluster diff --git a/keyboards/hs60/v1/iso/keymaps/default/readme.md b/keyboards/hs60/v1/iso/keymaps/default/readme.md index 9125cb349e..a0d36ee927 100644 --- a/keyboards/hs60/v1/iso/keymaps/default/readme.md +++ b/keyboards/hs60/v1/iso/keymaps/default/readme.md @@ -3,4 +3,4 @@ The default keymap for ISO HS60 ![Layout image](https://imgur.com/HXj4tYL.png) -Default layer is normal ISO and Fn layer is used for RGB functions, Volume control and arrow cluster \ No newline at end of file +Default layer is normal ISO and Fn layer is used for RGB functions, Volume control and arrow cluster diff --git a/keyboards/hs60/v2/ansi/keymaps/default/readme.md b/keyboards/hs60/v2/ansi/keymaps/default/readme.md index 3afd8afb33..da48fc9297 100644 --- a/keyboards/hs60/v2/ansi/keymaps/default/readme.md +++ b/keyboards/hs60/v2/ansi/keymaps/default/readme.md @@ -3,4 +3,4 @@ The default keymap for ANSI HS60 V2. VIA support disabled. ![Layout image](https://i.imgur.com/m8t5CfE.png) -Default layer is normal ANSI and Fn layer is used for RGB functions, Volume control and arrow cluster. \ No newline at end of file +Default layer is normal ANSI and Fn layer is used for RGB functions, Volume control and arrow cluster. diff --git a/keyboards/hs60/v2/hhkb/keymaps/default/readme.md b/keyboards/hs60/v2/hhkb/keymaps/default/readme.md index 5259a584d2..2d7ad0d103 100644 --- a/keyboards/hs60/v2/hhkb/keymaps/default/readme.md +++ b/keyboards/hs60/v2/hhkb/keymaps/default/readme.md @@ -3,4 +3,4 @@ The default keymap for HHKB HS60 V2. VIA support disabled. ![Layout image](https://imgur.com/usbrQWL.png) -Default layer is normal HHKB with 7U space. Fn layer is used for RGB functions, Volume control and arrow cluster \ No newline at end of file +Default layer is normal HHKB with 7U space. Fn layer is used for RGB functions, Volume control and arrow cluster diff --git a/keyboards/hs60/v2/iso/keymaps/default/readme.md b/keyboards/hs60/v2/iso/keymaps/default/readme.md index 9aa0a3a2b5..7f41ad185f 100644 --- a/keyboards/hs60/v2/iso/keymaps/default/readme.md +++ b/keyboards/hs60/v2/iso/keymaps/default/readme.md @@ -3,4 +3,4 @@ The default keymap for ISO HS60 V2. VIA support disabled. ![Layout image](https://imgur.com/6go4vQV.png) -Default layer is normal ISO and Fn layer is used for RGB functions, Volume control and arrow cluster \ No newline at end of file +Default layer is normal ISO and Fn layer is used for RGB functions, Volume control and arrow cluster diff --git a/keyboards/ianklug/grooveboard/keymaps/default/keymap.c b/keyboards/ianklug/grooveboard/keymaps/default/keymap.c index 643d9f1d1b..caac536104 100644 --- a/keyboards/ianklug/grooveboard/keymaps/default/keymap.c +++ b/keyboards/ianklug/grooveboard/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BASE] = LAYOUT( KC_LEFT, KC_DOWN, KC_UP, KC_RGHT ) -}; \ No newline at end of file +}; diff --git a/keyboards/icebreaker/readme.md b/keyboards/icebreaker/readme.md index 439756f1b3..dac4163669 100644 --- a/keyboards/icebreaker/readme.md +++ b/keyboards/icebreaker/readme.md @@ -23,4 +23,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/idyllic/tinny50_rgb/readme.md b/keyboards/idyllic/tinny50_rgb/readme.md index 8529433a1a..fbe144583f 100644 --- a/keyboards/idyllic/tinny50_rgb/readme.md +++ b/keyboards/idyllic/tinny50_rgb/readme.md @@ -24,4 +24,4 @@ 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 both the `BOOT` and `RESET` buttons at the same time -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/illusion/rosa/keymaps/default/keymap.c b/keyboards/illusion/rosa/keymaps/default/keymap.c index 7b6e13fb69..16b2a53849 100644 --- a/keyboards/illusion/rosa/keymaps/default/keymap.c +++ b/keyboards/illusion/rosa/keymaps/default/keymap.c @@ -30,4 +30,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_RCTL ) -}; \ No newline at end of file +}; diff --git a/keyboards/illusion/rosa/keymaps/split_bs_rshift/keymap.c b/keyboards/illusion/rosa/keymaps/split_bs_rshift/keymap.c index 14b9ef10e6..04a5a99187 100644 --- a/keyboards/illusion/rosa/keymaps/split_bs_rshift/keymap.c +++ b/keyboards/illusion/rosa/keymaps/split_bs_rshift/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/illusion/rosa/keymaps/split_rshift/keymap.c b/keyboards/illusion/rosa/keymaps/split_rshift/keymap.c index 072739c306..2b66ecdd3e 100644 --- a/keyboards/illusion/rosa/keymaps/split_rshift/keymap.c +++ b/keyboards/illusion/rosa/keymaps/split_rshift/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/inland/v83p/keymaps/default/rules.mk b/keyboards/inland/v83p/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/inland/v83p/keymaps/default/rules.mk +++ b/keyboards/inland/v83p/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/itstleo/itstleo40/keyboard.json b/keyboards/itstleo/itstleo40/keyboard.json index ff55e3b0ce..6fb745e866 100644 --- a/keyboards/itstleo/itstleo40/keyboard.json +++ b/keyboards/itstleo/itstleo40/keyboard.json @@ -75,4 +75,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/itstleo/itstleo40/readme.md b/keyboards/itstleo/itstleo40/readme.md index b76a966509..aa48340194 100644 --- a/keyboards/itstleo/itstleo40/readme.md +++ b/keyboards/itstleo/itstleo40/readme.md @@ -23,4 +23,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/ivndbt/late9/readme.md b/keyboards/ivndbt/late9/readme.md index 8f1ae628fe..0a8a3bb7df 100644 --- a/keyboards/ivndbt/late9/readme.md +++ b/keyboards/ivndbt/late9/readme.md @@ -22,4 +22,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader When asked by the terminal, short with a metal wire the pins on the backside of the board highlighted as `RST` (one is the `RESET` and the other one is `GROUND`) to enter the bootloader and let the OS detects the device.\ -After installing this firmware you can use Bootmagic to enter the bootloader while plugging in your LATE-9. By default it's the button on the upper-left of the keyboard. \ No newline at end of file +After installing this firmware you can use Bootmagic to enter the bootloader while plugging in your LATE-9. By default it's the button on the upper-left of the keyboard. diff --git a/keyboards/ivndbt/late9/rev1/keymaps/default/keymap.c b/keyboards/ivndbt/late9/rev1/keymaps/default/keymap.c index cf38757100..fac1ca4a4e 100644 --- a/keyboards/ivndbt/late9/rev1/keymaps/default/keymap.c +++ b/keyboards/ivndbt/late9/rev1/keymaps/default/keymap.c @@ -81,4 +81,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LSFT(KC_7), LSFT(KC_5), LSFT(KC_6), LSFT(KC_BSLS), KC_PDOT, KC_PEQL ), -}; \ No newline at end of file +}; diff --git a/keyboards/janus/config.h b/keyboards/janus/config.h index 8f28edfb91..605d9b9477 100644 --- a/keyboards/janus/config.h +++ b/keyboards/janus/config.h @@ -12,4 +12,4 @@ /* Double tap reset button to enter bootloader */ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP17 -#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U \ No newline at end of file +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/janus/halconf.h b/keyboards/janus/halconf.h index 550a6e0abf..776808b278 100644 --- a/keyboards/janus/halconf.h +++ b/keyboards/janus/halconf.h @@ -6,4 +6,4 @@ #include_next #undef HAL_USE_SIO -#define HAL_USE_SIO TRUE \ No newline at end of file +#define HAL_USE_SIO TRUE diff --git a/keyboards/janus/keymaps/default/keymap.c b/keyboards/janus/keymaps/default/keymap.c index 351e3a3db0..251589ffce 100644 --- a/keyboards/janus/keymaps/default/keymap.c +++ b/keyboards/janus/keymaps/default/keymap.c @@ -47,4 +47,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { OS_LGUI, OS_LALT, OS_LSFT, OS_LCTL, XXXXXXX, KC_NUM, OS_RCTL, OS_RSFT, OS_RALT, OS_RGUI, _______, _______, _______, _______ ), -}; \ No newline at end of file +}; diff --git a/keyboards/janus/keymaps/default/readme.md b/keyboards/janus/keymaps/default/readme.md index dc7534e317..abbcf44178 100644 --- a/keyboards/janus/keymaps/default/readme.md +++ b/keyboards/janus/keymaps/default/readme.md @@ -10,4 +10,4 @@ It is inspired by [Callum's keymap](https://github.com/qmk/qmk_firmware/tree/mas * Symbol layer only contains non-shifted symbol keys. * General differences in key positions. -For simplicity's sake, the keymap uses QMK's native one shot key implementation. There are other excellent one shot implementations out there, including Callum's in the aforementioned keymap. \ No newline at end of file +For simplicity's sake, the keymap uses QMK's native one shot key implementation. There are other excellent one shot implementations out there, including Callum's in the aforementioned keymap. diff --git a/keyboards/janus/mcuconf.h b/keyboards/janus/mcuconf.h index c41253d4fb..6e619860c3 100644 --- a/keyboards/janus/mcuconf.h +++ b/keyboards/janus/mcuconf.h @@ -6,4 +6,4 @@ #include_next #undef RP_SIO_USE_UART0 -#define RP_SIO_USE_UART0 TRUE \ No newline at end of file +#define RP_SIO_USE_UART0 TRUE diff --git a/keyboards/jaykeeb/joker/keyboard.json b/keyboards/jaykeeb/joker/keyboard.json index b35c8c5830..68a5b1830b 100644 --- a/keyboards/jaykeeb/joker/keyboard.json +++ b/keyboards/jaykeeb/joker/keyboard.json @@ -487,4 +487,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/jaykeeb/joker/keymaps/default/keymap.c b/keyboards/jaykeeb/joker/keymaps/default/keymap.c index a9f7194160..3ce114ab99 100644 --- a/keyboards/jaykeeb/joker/keymaps/default/keymap.c +++ b/keyboards/jaykeeb/joker/keymaps/default/keymap.c @@ -12,4 +12,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0 , KC_PDOT ) -}; \ No newline at end of file +}; diff --git a/keyboards/jaykeeb/joker/matrix_diagram.md b/keyboards/jaykeeb/joker/matrix_diagram.md index d7b79bf97a..f8308157c1 100644 --- a/keyboards/jaykeeb/joker/matrix_diagram.md +++ b/keyboards/jaykeeb/joker/matrix_diagram.md @@ -20,4 +20,4 @@ ┌─────┬─────┬───────────────────────────┬─────┬─────┐ │50 │51 │56 │5A │5B │ WKL └─────┴─────┴───────────────────────────┴─────┴─────┘ -``` \ No newline at end of file +``` diff --git a/keyboards/jaykeeb/skyline/keymaps/default/keymap.c b/keyboards/jaykeeb/skyline/keymaps/default/keymap.c index 78cf4b4c44..caee0ba44e 100644 --- a/keyboards/jaykeeb/skyline/keymaps/default/keymap.c +++ b/keyboards/jaykeeb/skyline/keymaps/default/keymap.c @@ -34,4 +34,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/jaykeeb/skyline/readme.md b/keyboards/jaykeeb/skyline/readme.md index 6f58ba33de..0c72e1d49f 100644 --- a/keyboards/jaykeeb/skyline/readme.md +++ b/keyboards/jaykeeb/skyline/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/jaykeeb/sriwedari70/keyboard.json b/keyboards/jaykeeb/sriwedari70/keyboard.json index efb13554dc..ddeaa316e3 100644 --- a/keyboards/jaykeeb/sriwedari70/keyboard.json +++ b/keyboards/jaykeeb/sriwedari70/keyboard.json @@ -141,4 +141,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/jiran/keymaps/default/config.h b/keyboards/jiran/keymaps/default/config.h index b1020ed78c..149a54be7f 100644 --- a/keyboards/jiran/keymaps/default/config.h +++ b/keyboards/jiran/keymaps/default/config.h @@ -18,4 +18,4 @@ along with this program. If not, see . #pragma once // #define USE_I2C -#define EE_HANDS \ No newline at end of file +#define EE_HANDS diff --git a/keyboards/jiran/readme.md b/keyboards/jiran/readme.md index 13dc8963df..e311d43356 100644 --- a/keyboards/jiran/readme.md +++ b/keyboards/jiran/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make jiran: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). \ No newline at end of file +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/jlw/bruce_le_clavier/readme.md b/keyboards/jlw/bruce_le_clavier/readme.md index 7bef2d5eef..f2684b28fa 100644 --- a/keyboards/jlw/bruce_le_clavier/readme.md +++ b/keyboards/jlw/bruce_le_clavier/readme.md @@ -50,4 +50,4 @@ Exemple de « make » (après avoir installé votre environnement de développem Exemple de flash pour ce clavier: make jlw/bruce_le_clavier:flash - \ No newline at end of file + diff --git a/keyboards/jlw/bruce_the_keyboard/keymaps/default/keymap.c b/keyboards/jlw/bruce_the_keyboard/keymaps/default/keymap.c index 73ef2e0213..5218cbb3e5 100644 --- a/keyboards/jlw/bruce_the_keyboard/keymaps/default/keymap.c +++ b/keyboards/jlw/bruce_the_keyboard/keymaps/default/keymap.c @@ -32,4 +32,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { DF(0), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, DF(2), XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/jlw/vault35_wkl_universal/keymaps/default/rules.mk b/keyboards/jlw/vault35_wkl_universal/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/jlw/vault35_wkl_universal/keymaps/default/rules.mk +++ b/keyboards/jlw/vault35_wkl_universal/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/jones/v03/keymaps/default/keymap.c b/keyboards/jones/v03/keymaps/default/keymap.c index d051bd781e..c81e300cf1 100644 --- a/keyboards/jones/v03/keymaps/default/keymap.c +++ b/keyboards/jones/v03/keymaps/default/keymap.c @@ -24,4 +24,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, JP_COMM,JP_DOT, JP_SLSH,JP_BSLS,KC_UP, XXXXXXX, KC_MUTE,KC_LALT,KC_LGUI,KC_LNG2, KC_SPC, KC_SPC, KC_LNG1,KC_RGUI,KC_RALT,KC_LEFT,KC_DOWN,KC_RGHT ) -}; \ No newline at end of file +}; diff --git a/keyboards/jones/v03/keymaps/default_jp/rules.mk b/keyboards/jones/v03/keymaps/default_jp/rules.mk index d371e96a07..aa97fcc936 100644 --- a/keyboards/jones/v03/keymaps/default_jp/rules.mk +++ b/keyboards/jones/v03/keymaps/default_jp/rules.mk @@ -1 +1 @@ -TAP_DANCE_ENABLE = yes # Enable Tap Dance \ No newline at end of file +TAP_DANCE_ENABLE = yes # Enable Tap Dance diff --git a/keyboards/jones/v03_1/keymaps/default/keymap.c b/keyboards/jones/v03_1/keymaps/default/keymap.c index b374a6488b..14f4b45bf9 100644 --- a/keyboards/jones/v03_1/keymaps/default/keymap.c +++ b/keyboards/jones/v03_1/keymaps/default/keymap.c @@ -23,4 +23,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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, XXXXXXX, KC_MUTE,KC_LNG2,KC_LALT,KC_LGUI, KC_SPC, KC_SPC, KC_RGUI,KC_RALT,KC_LNG1,KC_LEFT,KC_DOWN,KC_RGHT ) -}; \ No newline at end of file +}; diff --git a/keyboards/jones/v03_1/keymaps/default_ansi/rules.mk b/keyboards/jones/v03_1/keymaps/default_ansi/rules.mk index 18b26d5c82..15d7e0624c 100644 --- a/keyboards/jones/v03_1/keymaps/default_ansi/rules.mk +++ b/keyboards/jones/v03_1/keymaps/default_ansi/rules.mk @@ -1 +1 @@ -TAP_DANCE_ENABLE = yes # Enable Tap Dance \ No newline at end of file +TAP_DANCE_ENABLE = yes # Enable Tap Dance diff --git a/keyboards/jukaie/jk01/jk01.c b/keyboards/jukaie/jk01/jk01.c index 595f6bf43f..804d1a55b7 100644 --- a/keyboards/jukaie/jk01/jk01.c +++ b/keyboards/jukaie/jk01/jk01.c @@ -170,4 +170,4 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { } return true; /* Process all other keycodes normally */ -}; \ No newline at end of file +}; diff --git a/keyboards/kapcave/arya/keymaps/default/keymap.c b/keyboards/kapcave/arya/keymaps/default/keymap.c index 4e20956789..fd02b06a97 100644 --- a/keyboards/kapcave/arya/keymaps/default/keymap.c +++ b/keyboards/kapcave/arya/keymaps/default/keymap.c @@ -31,4 +31,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_DOWN, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -}; \ No newline at end of file +}; diff --git a/keyboards/kapcave/gskt00/keymaps/default-poly/keymap.c b/keyboards/kapcave/gskt00/keymaps/default-poly/keymap.c index fc940ca9dd..76a56cd2da 100755 --- a/keyboards/kapcave/gskt00/keymaps/default-poly/keymap.c +++ b/keyboards/kapcave/gskt00/keymaps/default-poly/keymap.c @@ -67,4 +67,4 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } return true; -} \ No newline at end of file +} diff --git a/keyboards/kapcave/gskt00/keymaps/default-poly/readme.md b/keyboards/kapcave/gskt00/keymaps/default-poly/readme.md index 1f6d7bcd38..fc9d14751c 100644 --- a/keyboards/kapcave/gskt00/keymaps/default-poly/readme.md +++ b/keyboards/kapcave/gskt00/keymaps/default-poly/readme.md @@ -1 +1 @@ -There was a private run of Polycarbonate cases. This keymap supports the underglow PCBs that shipped out with those, in addition to future underglow pcbs. These PCBs also had encoder support which is reflected in the keymap. \ No newline at end of file +There was a private run of Polycarbonate cases. This keymap supports the underglow PCBs that shipped out with those, in addition to future underglow pcbs. These PCBs also had encoder support which is reflected in the keymap. diff --git a/keyboards/kapcave/gskt00/keymaps/default-poly/rules.mk b/keyboards/kapcave/gskt00/keymaps/default-poly/rules.mk index 53c9db2bd2..712439992c 100644 --- a/keyboards/kapcave/gskt00/keymaps/default-poly/rules.mk +++ b/keyboards/kapcave/gskt00/keymaps/default-poly/rules.mk @@ -1,2 +1,2 @@ RGBLIGHT_ENABLE = yes -ENCODER_ENABLE = yes \ No newline at end of file +ENCODER_ENABLE = yes diff --git a/keyboards/kb_elmo/isolation/readme.md b/keyboards/kb_elmo/isolation/readme.md index 610c26a590..abc65168fc 100644 --- a/keyboards/kb_elmo/isolation/readme.md +++ b/keyboards/kb_elmo/isolation/readme.md @@ -21,4 +21,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader * **Bootmagic reset**: Hold down the enter key and plug in the keyboard -* **Bootloader pins**: Short the two pins labeled "BOOT" while plugging the board \ No newline at end of file +* **Bootloader pins**: Short the two pins labeled "BOOT" while plugging the board diff --git a/keyboards/kb_elmo/qez/readme.md b/keyboards/kb_elmo/qez/readme.md index 5deb4044a1..592769181c 100644 --- a/keyboards/kb_elmo/qez/readme.md +++ b/keyboards/kb_elmo/qez/readme.md @@ -21,4 +21,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader * **Bootmagic reset**: Hold down the top left key and plug in the keyboard -* **Physical reset button**: Briefly press the button labeled "RESET" on the back of the PCB \ No newline at end of file +* **Physical reset button**: Briefly press the button labeled "RESET" on the back of the PCB diff --git a/keyboards/kb_elmo/sesame/readme.md b/keyboards/kb_elmo/sesame/readme.md index c0211cfde4..8541ea5938 100644 --- a/keyboards/kb_elmo/sesame/readme.md +++ b/keyboards/kb_elmo/sesame/readme.md @@ -21,4 +21,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader * **Bootmagic reset**: Hold down the top left key and plug in the keyboard -* **Physical reset button**: Hold down the button labeled "BOOT" and briefly press the button labeled "RESET" on the back of the PCB \ No newline at end of file +* **Physical reset button**: Hold down the button labeled "BOOT" and briefly press the button labeled "RESET" on the back of the PCB diff --git a/keyboards/kbdcraft/adam64/mcuconf.h b/keyboards/kbdcraft/adam64/mcuconf.h index ef406b9a3d..97ca2d3853 100644 --- a/keyboards/kbdcraft/adam64/mcuconf.h +++ b/keyboards/kbdcraft/adam64/mcuconf.h @@ -21,4 +21,4 @@ #include_next #undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/kbdfans/bounce/75/hotswap/readme.md b/keyboards/kbdfans/bounce/75/hotswap/readme.md index 7e631099cc..94704924ca 100644 --- a/keyboards/kbdfans/bounce/75/hotswap/readme.md +++ b/keyboards/kbdfans/bounce/75/hotswap/readme.md @@ -18,4 +18,4 @@ Enter the bootloader in 3 ways: * **Physical reset button**: Briefly press the button on the back of the PCB * **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 +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/kbdfans/bounce/pad/keymaps/default/keymap.c b/keyboards/kbdfans/bounce/pad/keymaps/default/keymap.c index 70648d0ae9..9deceaf38a 100644 --- a/keyboards/kbdfans/bounce/pad/keymaps/default/keymap.c +++ b/keyboards/kbdfans/bounce/pad/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P1, KC_P2, KC_P3, KC_P0, KC_PDOT, KC_PENT ), -}; \ No newline at end of file +}; diff --git a/keyboards/kbdfans/kbd66/keymaps/default/readme.md b/keyboards/kbdfans/kbd66/keymaps/default/readme.md index f4ab771a5d..a12dc59927 100644 --- a/keyboards/kbdfans/kbd66/keymaps/default/readme.md +++ b/keyboards/kbdfans/kbd66/keymaps/default/readme.md @@ -9,4 +9,4 @@ Backlight breathing: Fn + , Volume Up/Down: Fn + [ and Fn + ] Mute: Fn + \ Sleep: Fn + / -Bootloader Mode: Fn + CapsLock \ No newline at end of file +Bootloader Mode: Fn + CapsLock diff --git a/keyboards/kbdfans/kbd66/keymaps/default_ansi_split_space/readme.md b/keyboards/kbdfans/kbd66/keymaps/default_ansi_split_space/readme.md index 6ad0d85e08..0529349022 100644 --- a/keyboards/kbdfans/kbd66/keymaps/default_ansi_split_space/readme.md +++ b/keyboards/kbdfans/kbd66/keymaps/default_ansi_split_space/readme.md @@ -8,4 +8,4 @@ Backlight breathing: Fn + , Volume Up/Down: Fn + [ and Fn + ] Mute: Fn + \ Sleep: Fn + / -Bootloader Mode: Fn + CapsLock \ No newline at end of file +Bootloader Mode: Fn + CapsLock diff --git a/keyboards/kbdfans/kbd66/keymaps/default_iso_split_space/readme.md b/keyboards/kbdfans/kbd66/keymaps/default_iso_split_space/readme.md index f325b741cc..8abe42ae56 100644 --- a/keyboards/kbdfans/kbd66/keymaps/default_iso_split_space/readme.md +++ b/keyboards/kbdfans/kbd66/keymaps/default_iso_split_space/readme.md @@ -8,4 +8,4 @@ Backlight breathing: Fn + , Volume Up/Down: Fn + [ and Fn + ] Mute: Fn + # Sleep: Fn + / -Bootloader Mode: Fn + CapsLock \ No newline at end of file +Bootloader Mode: Fn + CapsLock diff --git a/keyboards/kbdfans/kbd67/mkiirgb/v4/readme.md b/keyboards/kbdfans/kbd67/mkiirgb/v4/readme.md index ad8b38a62e..75e3657292 100644 --- a/keyboards/kbdfans/kbd67/mkiirgb/v4/readme.md +++ b/keyboards/kbdfans/kbd67/mkiirgb/v4/readme.md @@ -15,4 +15,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down esc in the keyboard then replug * **Physical reset button**: Briefly press the button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` diff --git a/keyboards/kbdfans/kbd8x_mk2/keymaps/tester/readme.md b/keyboards/kbdfans/kbd8x_mk2/keymaps/tester/readme.md index 3de082bed9..320ce9fd0d 100644 --- a/keyboards/kbdfans/kbd8x_mk2/keymaps/tester/readme.md +++ b/keyboards/kbdfans/kbd8x_mk2/keymaps/tester/readme.md @@ -15,4 +15,4 @@ F8 = RGB Hue Decrease F9 = RGB Saturation Increase F10 = RGB Saturation Decrease F11 = RGB Value Increase -F12 = RGB Value Decrease \ No newline at end of file +F12 = RGB Value Decrease diff --git a/keyboards/kbdfans/kbdpad/mk2/keymaps/tester/readme.md b/keyboards/kbdfans/kbdpad/mk2/keymaps/tester/readme.md index 3cd1e9b67b..286229e367 100644 --- a/keyboards/kbdfans/kbdpad/mk2/keymaps/tester/readme.md +++ b/keyboards/kbdfans/kbdpad/mk2/keymaps/tester/readme.md @@ -6,4 +6,4 @@ From left to right: Backlight Toggle Backlight Step RGB Toggle -RGB Mode Cycle \ No newline at end of file +RGB Mode Cycle diff --git a/keyboards/kbnordic/nordic65/rev_a/matrix_diagram.md b/keyboards/kbnordic/nordic65/rev_a/matrix_diagram.md index fa1f3b2cbc..0bc0c86a99 100644 --- a/keyboards/kbnordic/nordic65/rev_a/matrix_diagram.md +++ b/keyboards/kbnordic/nordic65/rev_a/matrix_diagram.md @@ -22,4 +22,4 @@ ┌─────┬───┬─────┬───────────────────────────┬─────┐ │40 │41 │42 │46 │4B │ Tsangan └─────┴───┴─────┴───────────────────────────┴─────┘ -``` \ No newline at end of file +``` diff --git a/keyboards/keaboard/readme.md b/keyboards/keaboard/readme.md index 71473211ed..9912ee4b8b 100644 --- a/keyboards/keaboard/readme.md +++ b/keyboards/keaboard/readme.md @@ -18,4 +18,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader -Enter the bootloader by holding tapping reset button on the top edge of the board. \ No newline at end of file +Enter the bootloader by holding tapping reset button on the top edge of the board. diff --git a/keyboards/keebfront/vanguard65/readme.md b/keyboards/keebfront/vanguard65/readme.md index d054271bb3..b7091c9ea0 100644 --- a/keyboards/keebfront/vanguard65/readme.md +++ b/keyboards/keebfront/vanguard65/readme.md @@ -26,4 +26,4 @@ Enter the bootloader in 2 ways: * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available ## Matrix Diagram -![MatrixCoordinates](https://i.imgur.com/rQfEXyeh.jpeg) \ No newline at end of file +![MatrixCoordinates](https://i.imgur.com/rQfEXyeh.jpeg) diff --git a/keyboards/keebio/bamfk4/keymaps/default/keymap.c b/keyboards/keebio/bamfk4/keymaps/default/keymap.c index 960c436da3..98144676b1 100644 --- a/keyboards/keebio/bamfk4/keymaps/default/keymap.c +++ b/keyboards/keebio/bamfk4/keymaps/default/keymap.c @@ -15,4 +15,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_C, KC_D ) -}; \ No newline at end of file +}; diff --git a/keyboards/kelwin/utopia88/keyboard.json b/keyboards/kelwin/utopia88/keyboard.json index d73be1dd27..f768b725fa 100644 --- a/keyboards/kelwin/utopia88/keyboard.json +++ b/keyboards/kelwin/utopia88/keyboard.json @@ -125,4 +125,4 @@ } } } - \ No newline at end of file + diff --git a/keyboards/kepler_33/proto/readme.md b/keyboards/kepler_33/proto/readme.md index ad1918ee1d..dc6c614e5b 100644 --- a/keyboards/kepler_33/proto/readme.md +++ b/keyboards/kepler_33/proto/readme.md @@ -1,3 +1,3 @@ # Kepler-33 / proto -True 40% keyboard. So far only a prototype. \ No newline at end of file +True 40% keyboard. So far only a prototype. diff --git a/keyboards/kepler_33/readme.md b/keyboards/kepler_33/readme.md index edafb26c42..395296ca40 100644 --- a/keyboards/kepler_33/readme.md +++ b/keyboards/kepler_33/readme.md @@ -23,4 +23,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader in 1 ways: -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead \ No newline at end of file +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead diff --git a/keyboards/keybee/keybee65/readme.md b/keyboards/keybee/keybee65/readme.md index a6fe9cb0c6..f23b8d2bef 100644 --- a/keyboards/keybee/keybee65/readme.md +++ b/keyboards/keybee/keybee65/readme.md @@ -23,4 +23,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key ESC key and plug in the keyboard (Top Left most switch) * **Physical reset button**: Briefly press the button on the back of the PCB -* **Keycode in layout**: Press the Enter key on layer 1 which is mapped to `QK_BOOT` \ No newline at end of file +* **Keycode in layout**: Press the Enter key on layer 1 which is mapped to `QK_BOOT` diff --git a/keyboards/keychron/q0/info.json b/keyboards/keychron/q0/info.json index d7a7317e3f..b3e30e65d8 100644 --- a/keyboards/keychron/q0/info.json +++ b/keyboards/keychron/q0/info.json @@ -52,4 +52,4 @@ "nkro": true } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q1v1/ansi/config.h b/keyboards/keychron/q1v1/ansi/config.h index 83ac22d2b6..c0d96766a3 100644 --- a/keyboards/keychron/q1v1/ansi/config.h +++ b/keyboards/keychron/q1v1/ansi/config.h @@ -17,4 +17,4 @@ #pragma once /* Enable caps-lock LED */ -#define CAPS_LOCK_LED_INDEX 45 \ No newline at end of file +#define CAPS_LOCK_LED_INDEX 45 diff --git a/keyboards/keychron/q1v1/ansi/readme.md b/keyboards/keychron/q1v1/ansi/readme.md index 5cf488f048..77fae2e5fc 100644 --- a/keyboards/keychron/q1v1/ansi/readme.md +++ b/keyboards/keychron/q1v1/ansi/readme.md @@ -1 +1 @@ -# The ANSI variant of the Keychron Q1 \ No newline at end of file +# The ANSI variant of the Keychron Q1 diff --git a/keyboards/keychron/q1v1/ansi_encoder/keymaps/default/rules.mk b/keyboards/keychron/q1v1/ansi_encoder/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/keychron/q1v1/ansi_encoder/keymaps/default/rules.mk +++ b/keyboards/keychron/q1v1/ansi_encoder/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q1v1/info.json b/keyboards/keychron/q1v1/info.json index 034bb4357f..80cd81f8a4 100644 --- a/keyboards/keychron/q1v1/info.json +++ b/keyboards/keychron/q1v1/info.json @@ -59,4 +59,4 @@ "nkro": true } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q1v1/iso/config.h b/keyboards/keychron/q1v1/iso/config.h index 4593b41067..ee86dc6881 100644 --- a/keyboards/keychron/q1v1/iso/config.h +++ b/keyboards/keychron/q1v1/iso/config.h @@ -17,4 +17,4 @@ #pragma once /* Enable caps-lock LED */ -#define CAPS_LOCK_LED_INDEX 44 \ No newline at end of file +#define CAPS_LOCK_LED_INDEX 44 diff --git a/keyboards/keychron/q1v1/iso/readme.md b/keyboards/keychron/q1v1/iso/readme.md index 777ce04773..cbf5f7d6de 100644 --- a/keyboards/keychron/q1v1/iso/readme.md +++ b/keyboards/keychron/q1v1/iso/readme.md @@ -1 +1 @@ -# The ISO variant of the Keychron Q1 \ No newline at end of file +# The ISO variant of the Keychron Q1 diff --git a/keyboards/keychron/q1v1/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/q1v1/iso_encoder/keymaps/default/keymap.c index 43eab9318c..dd350bda49 100644 --- a/keyboards/keychron/q1v1/iso_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q1v1/iso_encoder/keymaps/default/keymap.c @@ -65,4 +65,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [WIN_FN] = { ENCODER_CCW_CW(RM_VALD, RM_VALU) }, }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/keychron/q1v1/iso_encoder/keymaps/default/rules.mk b/keyboards/keychron/q1v1/iso_encoder/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/keychron/q1v1/iso_encoder/keymaps/default/rules.mk +++ b/keyboards/keychron/q1v1/iso_encoder/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q1v1/q1v1.c b/keyboards/keychron/q1v1/q1v1.c index 8571b33751..5ed4618d39 100644 --- a/keyboards/keychron/q1v1/q1v1.c +++ b/keyboards/keychron/q1v1/q1v1.c @@ -70,4 +70,4 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) { return true; } -#endif // CAPS_LOCK_LED_INDEX \ No newline at end of file +#endif // CAPS_LOCK_LED_INDEX diff --git a/keyboards/keychron/q1v1/readme.md b/keyboards/keychron/q1v1/readme.md index af54da8195..375fa2db82 100644 --- a/keyboards/keychron/q1v1/readme.md +++ b/keyboards/keychron/q1v1/readme.md @@ -24,4 +24,4 @@ Flashing example for this keyboard: **Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. -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 +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/keychron/q1v2/ansi_encoder/keymaps/default/rules.mk b/keyboards/keychron/q1v2/ansi_encoder/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/keychron/q1v2/ansi_encoder/keymaps/default/rules.mk +++ b/keyboards/keychron/q1v2/ansi_encoder/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q1v2/iso_encoder/keymaps/default/rules.mk b/keyboards/keychron/q1v2/iso_encoder/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/keychron/q1v2/iso_encoder/keymaps/default/rules.mk +++ b/keyboards/keychron/q1v2/iso_encoder/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q1v2/jis_encoder/keymaps/default/rules.mk b/keyboards/keychron/q1v2/jis_encoder/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/keychron/q1v2/jis_encoder/keymaps/default/rules.mk +++ b/keyboards/keychron/q1v2/jis_encoder/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q2/ansi/config.h b/keyboards/keychron/q2/ansi/config.h index 1850088b1f..9cd663a216 100644 --- a/keyboards/keychron/q2/ansi/config.h +++ b/keyboards/keychron/q2/ansi/config.h @@ -17,4 +17,4 @@ #pragma once /* Enable caps-lock LED */ -#define CAPS_LOCK_LED_INDEX 30 \ No newline at end of file +#define CAPS_LOCK_LED_INDEX 30 diff --git a/keyboards/keychron/q2/ansi_encoder/config.h b/keyboards/keychron/q2/ansi_encoder/config.h index 1850088b1f..9cd663a216 100644 --- a/keyboards/keychron/q2/ansi_encoder/config.h +++ b/keyboards/keychron/q2/ansi_encoder/config.h @@ -17,4 +17,4 @@ #pragma once /* Enable caps-lock LED */ -#define CAPS_LOCK_LED_INDEX 30 \ No newline at end of file +#define CAPS_LOCK_LED_INDEX 30 diff --git a/keyboards/keychron/q2/ansi_encoder/keymaps/default/rules.mk b/keyboards/keychron/q2/ansi_encoder/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/keychron/q2/ansi_encoder/keymaps/default/rules.mk +++ b/keyboards/keychron/q2/ansi_encoder/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q2/info.json b/keyboards/keychron/q2/info.json index c322a9902f..6e14a21d82 100644 --- a/keyboards/keychron/q2/info.json +++ b/keyboards/keychron/q2/info.json @@ -59,4 +59,4 @@ "usb": { "vid": "0x3434" } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q2/iso/config.h b/keyboards/keychron/q2/iso/config.h index 22ddcba3ad..7a10ce6d65 100644 --- a/keyboards/keychron/q2/iso/config.h +++ b/keyboards/keychron/q2/iso/config.h @@ -17,4 +17,4 @@ #pragma once /* Enable caps-lock LED */ -#define CAPS_LOCK_LED_INDEX 29 \ No newline at end of file +#define CAPS_LOCK_LED_INDEX 29 diff --git a/keyboards/keychron/q2/iso_encoder/config.h b/keyboards/keychron/q2/iso_encoder/config.h index 22ddcba3ad..7a10ce6d65 100644 --- a/keyboards/keychron/q2/iso_encoder/config.h +++ b/keyboards/keychron/q2/iso_encoder/config.h @@ -17,4 +17,4 @@ #pragma once /* Enable caps-lock LED */ -#define CAPS_LOCK_LED_INDEX 29 \ No newline at end of file +#define CAPS_LOCK_LED_INDEX 29 diff --git a/keyboards/keychron/q2/iso_encoder/keymaps/default/rules.mk b/keyboards/keychron/q2/iso_encoder/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/keychron/q2/iso_encoder/keymaps/default/rules.mk +++ b/keyboards/keychron/q2/iso_encoder/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q2/readme.md b/keyboards/keychron/q2/readme.md index 3abd7280ca..21fd6b8bc4 100644 --- a/keyboards/keychron/q2/readme.md +++ b/keyboards/keychron/q2/readme.md @@ -28,4 +28,4 @@ Flashing example for this keyboard: **Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. -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 +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/keychron/q3/info.json b/keyboards/keychron/q3/info.json index a08a115bb6..68594e10f4 100644 --- a/keyboards/keychron/q3/info.json +++ b/keyboards/keychron/q3/info.json @@ -51,4 +51,4 @@ "usb": { "vid": "0x3434" } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q4/ansi/keymaps/default/keymap.c b/keyboards/keychron/q4/ansi/keymaps/default/keymap.c index 826243be09..32a836126e 100644 --- a/keyboards/keychron/q4/ansi/keymaps/default/keymap.c +++ b/keyboards/keychron/q4/ansi/keymaps/default/keymap.c @@ -63,4 +63,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______) }; -// clang-format on \ No newline at end of file +// clang-format on diff --git a/keyboards/keychron/q4/info.json b/keyboards/keychron/q4/info.json index bcbfd74217..2eb235177f 100644 --- a/keyboards/keychron/q4/info.json +++ b/keyboards/keychron/q4/info.json @@ -59,4 +59,4 @@ "usb": { "vid": "0x3434" } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q4/iso/keymaps/default/keymap.c b/keyboards/keychron/q4/iso/keymaps/default/keymap.c index 12d503d324..4ccefe06a3 100644 --- a/keyboards/keychron/q4/iso/keymaps/default/keymap.c +++ b/keyboards/keychron/q4/iso/keymaps/default/keymap.c @@ -63,4 +63,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______) }; -// clnag-format on \ No newline at end of file +// clnag-format on diff --git a/keyboards/keychron/q5/ansi/keyboard.json b/keyboards/keychron/q5/ansi/keyboard.json index 399b5873da..3d5658a836 100644 --- a/keyboards/keychron/q5/ansi/keyboard.json +++ b/keyboards/keychron/q5/ansi/keyboard.json @@ -217,4 +217,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q5/ansi/rules.mk b/keyboards/keychron/q5/ansi/rules.mk index c0d1417299..3652da4b69 100644 --- a/keyboards/keychron/q5/ansi/rules.mk +++ b/keyboards/keychron/q5/ansi/rules.mk @@ -1,4 +1,4 @@ # custom matrix setup CUSTOM_MATRIX = lite -SRC += matrix.c \ No newline at end of file +SRC += matrix.c diff --git a/keyboards/keychron/q5/ansi_encoder/keyboard.json b/keyboards/keychron/q5/ansi_encoder/keyboard.json index 479ef38e72..b08ff46fc6 100644 --- a/keyboards/keychron/q5/ansi_encoder/keyboard.json +++ b/keyboards/keychron/q5/ansi_encoder/keyboard.json @@ -223,4 +223,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q5/ansi_encoder/rules.mk b/keyboards/keychron/q5/ansi_encoder/rules.mk index c0d1417299..3652da4b69 100644 --- a/keyboards/keychron/q5/ansi_encoder/rules.mk +++ b/keyboards/keychron/q5/ansi_encoder/rules.mk @@ -1,4 +1,4 @@ # custom matrix setup CUSTOM_MATRIX = lite -SRC += matrix.c \ No newline at end of file +SRC += matrix.c diff --git a/keyboards/keychron/q5/config.h b/keyboards/keychron/q5/config.h index 4d297b223a..24e531ef7f 100644 --- a/keyboards/keychron/q5/config.h +++ b/keyboards/keychron/q5/config.h @@ -34,4 +34,4 @@ { 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56, 0xB6, 0xB6, 0x56 } /* Encoder Configuration*/ -#define ENCODER_DEFAULT_POS 0x3 \ No newline at end of file +#define ENCODER_DEFAULT_POS 0x3 diff --git a/keyboards/keychron/q5/info.json b/keyboards/keychron/q5/info.json index 1e7a5de703..6291bc0313 100644 --- a/keyboards/keychron/q5/info.json +++ b/keyboards/keychron/q5/info.json @@ -52,4 +52,4 @@ "usb": { "vid": "0x3434" } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q5/iso/keyboard.json b/keyboards/keychron/q5/iso/keyboard.json index 35ba9f9d04..04f1f18bfa 100644 --- a/keyboards/keychron/q5/iso/keyboard.json +++ b/keyboards/keychron/q5/iso/keyboard.json @@ -225,4 +225,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q5/iso/rules.mk b/keyboards/keychron/q5/iso/rules.mk index c0d1417299..3652da4b69 100644 --- a/keyboards/keychron/q5/iso/rules.mk +++ b/keyboards/keychron/q5/iso/rules.mk @@ -1,4 +1,4 @@ # custom matrix setup CUSTOM_MATRIX = lite -SRC += matrix.c \ No newline at end of file +SRC += matrix.c diff --git a/keyboards/keychron/q5/iso_encoder/keyboard.json b/keyboards/keychron/q5/iso_encoder/keyboard.json index 10e6767eaf..ed6cf2653d 100644 --- a/keyboards/keychron/q5/iso_encoder/keyboard.json +++ b/keyboards/keychron/q5/iso_encoder/keyboard.json @@ -217,4 +217,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q5/iso_encoder/rules.mk b/keyboards/keychron/q5/iso_encoder/rules.mk index c0d1417299..3652da4b69 100644 --- a/keyboards/keychron/q5/iso_encoder/rules.mk +++ b/keyboards/keychron/q5/iso_encoder/rules.mk @@ -1,4 +1,4 @@ # custom matrix setup CUSTOM_MATRIX = lite -SRC += matrix.c \ No newline at end of file +SRC += matrix.c diff --git a/keyboards/keychron/q5/readme.md b/keyboards/keychron/q5/readme.md index b78473cd2c..87be63d582 100644 --- a/keyboards/keychron/q5/readme.md +++ b/keyboards/keychron/q5/readme.md @@ -24,4 +24,4 @@ Flashing example for this keyboard: **Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. -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 +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/keychron/q7/ansi/keyboard.json b/keyboards/keychron/q7/ansi/keyboard.json index 62cff888e1..f6fd217b22 100644 --- a/keyboards/keychron/q7/ansi/keyboard.json +++ b/keyboards/keychron/q7/ansi/keyboard.json @@ -164,4 +164,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q7/info.json b/keyboards/keychron/q7/info.json index 663ad4b275..b1dcf4c1d2 100644 --- a/keyboards/keychron/q7/info.json +++ b/keyboards/keychron/q7/info.json @@ -59,4 +59,4 @@ "usb": { "vid": "0x3434" } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q7/iso/keyboard.json b/keyboards/keychron/q7/iso/keyboard.json index d98ec8fa5e..fc6749c37f 100644 --- a/keyboards/keychron/q7/iso/keyboard.json +++ b/keyboards/keychron/q7/iso/keyboard.json @@ -167,4 +167,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q7/readme.md b/keyboards/keychron/q7/readme.md index d6fedb1493..7d973e582b 100644 --- a/keyboards/keychron/q7/readme.md +++ b/keyboards/keychron/q7/readme.md @@ -20,4 +20,4 @@ Flashing example for this keyboard: **Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. -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 +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/keychron/q8/ansi/keyboard.json b/keyboards/keychron/q8/ansi/keyboard.json index 2580b4163e..259fee5f8a 100644 --- a/keyboards/keychron/q8/ansi/keyboard.json +++ b/keyboards/keychron/q8/ansi/keyboard.json @@ -159,4 +159,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q8/ansi_encoder/keyboard.json b/keyboards/keychron/q8/ansi_encoder/keyboard.json index b3f82637db..0ead20bbce 100644 --- a/keyboards/keychron/q8/ansi_encoder/keyboard.json +++ b/keyboards/keychron/q8/ansi_encoder/keyboard.json @@ -164,4 +164,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q8/info.json b/keyboards/keychron/q8/info.json index b0478e019b..c9183a5c47 100644 --- a/keyboards/keychron/q8/info.json +++ b/keyboards/keychron/q8/info.json @@ -59,4 +59,4 @@ "usb": { "vid": "0x3434" } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q8/iso/keyboard.json b/keyboards/keychron/q8/iso/keyboard.json index fe87955c39..460a3c5e68 100644 --- a/keyboards/keychron/q8/iso/keyboard.json +++ b/keyboards/keychron/q8/iso/keyboard.json @@ -160,4 +160,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q8/iso_encoder/keyboard.json b/keyboards/keychron/q8/iso_encoder/keyboard.json index 46a93ec63b..37e50a4501 100644 --- a/keyboards/keychron/q8/iso_encoder/keyboard.json +++ b/keyboards/keychron/q8/iso_encoder/keyboard.json @@ -167,4 +167,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q8/readme.md b/keyboards/keychron/q8/readme.md index eaa286899a..d6c1db5053 100644 --- a/keyboards/keychron/q8/readme.md +++ b/keyboards/keychron/q8/readme.md @@ -24,4 +24,4 @@ Flashing example for this keyboard: **Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. -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 +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/keychron/q9/ansi/keyboard.json b/keyboards/keychron/q9/ansi/keyboard.json index ec5f367ed1..89af3688a7 100644 --- a/keyboards/keychron/q9/ansi/keyboard.json +++ b/keyboards/keychron/q9/ansi/keyboard.json @@ -122,4 +122,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q9/ansi_encoder/keyboard.json b/keyboards/keychron/q9/ansi_encoder/keyboard.json index 0fc135771a..3c75f804fc 100644 --- a/keyboards/keychron/q9/ansi_encoder/keyboard.json +++ b/keyboards/keychron/q9/ansi_encoder/keyboard.json @@ -123,4 +123,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q9/config.h b/keyboards/keychron/q9/config.h index e0e7e19227..6d0337b148 100644 --- a/keyboards/keychron/q9/config.h +++ b/keyboards/keychron/q9/config.h @@ -30,4 +30,4 @@ { 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70, 0xF8, 0xF8, 0x70 } /* Encoder Configuration */ -#define ENCODER_DEFAULT_POS 0x3 \ No newline at end of file +#define ENCODER_DEFAULT_POS 0x3 diff --git a/keyboards/keychron/q9/info.json b/keyboards/keychron/q9/info.json index ff80a256d3..9e284a2bd9 100644 --- a/keyboards/keychron/q9/info.json +++ b/keyboards/keychron/q9/info.json @@ -59,4 +59,4 @@ "usb": { "vid": "0x3434" } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q9/iso/keyboard.json b/keyboards/keychron/q9/iso/keyboard.json index 19a818ebb8..4a03f38f27 100644 --- a/keyboards/keychron/q9/iso/keyboard.json +++ b/keyboards/keychron/q9/iso/keyboard.json @@ -124,4 +124,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q9/iso_encoder/keyboard.json b/keyboards/keychron/q9/iso_encoder/keyboard.json index 087c2f8188..b9e6a70c63 100644 --- a/keyboards/keychron/q9/iso_encoder/keyboard.json +++ b/keyboards/keychron/q9/iso_encoder/keyboard.json @@ -127,4 +127,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/keychron/q9/readme.md b/keyboards/keychron/q9/readme.md index c7641f1cf9..5cb0374659 100644 --- a/keyboards/keychron/q9/readme.md +++ b/keyboards/keychron/q9/readme.md @@ -24,4 +24,4 @@ Flashing example for this keyboard: **Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard. -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 +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/keygem/kg60ansi/keymaps/default/keymap.c b/keyboards/keygem/kg60ansi/keymaps/default/keymap.c index c89623b685..5ee105b3ab 100644 --- a/keyboards/keygem/kg60ansi/keymaps/default/keymap.c +++ b/keyboards/keygem/kg60ansi/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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/keygem/kg60ansi/readme.md b/keyboards/keygem/kg60ansi/readme.md index f24439855b..b0934be52b 100644 --- a/keyboards/keygem/kg60ansi/readme.md +++ b/keyboards/keygem/kg60ansi/readme.md @@ -23,4 +23,4 @@ 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 `RESET` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/keygem/kg65rgbv2/keymaps/default/keymap.c b/keyboards/keygem/kg65rgbv2/keymaps/default/keymap.c index b3c71d5071..eae55fabd0 100644 --- a/keyboards/keygem/kg65rgbv2/keymaps/default/keymap.c +++ b/keyboards/keygem/kg65rgbv2/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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/keygem/kg65rgbv2/readme.md b/keyboards/keygem/kg65rgbv2/readme.md index 20900cb861..b586b23db5 100644 --- a/keyboards/keygem/kg65rgbv2/readme.md +++ b/keyboards/keygem/kg65rgbv2/readme.md @@ -23,4 +23,4 @@ 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 `RESET` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `RESET` if it is available diff --git a/keyboards/keyhive/smallice/keymaps/default/readme.md b/keyboards/keyhive/smallice/keymaps/default/readme.md index e0c573662c..9df942227c 100644 --- a/keyboards/keyhive/smallice/keymaps/default/readme.md +++ b/keyboards/keyhive/smallice/keymaps/default/readme.md @@ -1,3 +1,3 @@ # The default keymap for smAllice -![smAllice](https://i.imgur.com/OngGf9n.png) \ No newline at end of file +![smAllice](https://i.imgur.com/OngGf9n.png) diff --git a/keyboards/keyspensory/kp60/keymaps/default/keymap.json b/keyboards/keyspensory/kp60/keymaps/default/keymap.json index 77a4f7fa02..a75a07f91a 100644 --- a/keyboards/keyspensory/kp60/keymaps/default/keymap.json +++ b/keyboards/keyspensory/kp60/keymaps/default/keymap.json @@ -9,4 +9,4 @@ "layout": "LAYOUT", "notes": "This file is a keymap.json file for keyspensory/kp60", "version": 1 -} \ No newline at end of file +} diff --git a/keyboards/kezewa/enter80/keyboard.json b/keyboards/kezewa/enter80/keyboard.json index 9e62163192..20c834891f 100644 --- a/keyboards/kezewa/enter80/keyboard.json +++ b/keyboards/kezewa/enter80/keyboard.json @@ -345,4 +345,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/kezewa/enter80/matrix_diagram.md b/keyboards/kezewa/enter80/matrix_diagram.md index 716538a4f5..1156883c99 100644 --- a/keyboards/kezewa/enter80/matrix_diagram.md +++ b/keyboards/kezewa/enter80/matrix_diagram.md @@ -19,4 +19,4 @@ ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐ │5A │5B │5C │5G │5L │5M │5N │ Tsangan/WKL └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ -``` \ No newline at end of file +``` diff --git a/keyboards/kibou/winter/keyboard.json b/keyboards/kibou/winter/keyboard.json index 14f912ceb4..e6ea8301b2 100644 --- a/keyboards/kibou/winter/keyboard.json +++ b/keyboards/kibou/winter/keyboard.json @@ -117,4 +117,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/kikoslab/ellora65/keymaps/default/rules.mk b/keyboards/kikoslab/ellora65/keymaps/default/rules.mk index bbe99c4238..76e55c05f4 100644 --- a/keyboards/kikoslab/ellora65/keymaps/default/rules.mk +++ b/keyboards/kikoslab/ellora65/keymaps/default/rules.mk @@ -1,2 +1,2 @@ OLED_ENABLE = yes -WPM_ENABLE = yes \ No newline at end of file +WPM_ENABLE = yes diff --git a/keyboards/kikoslab/kl90/keymaps/default/rules.mk b/keyboards/kikoslab/kl90/keymaps/default/rules.mk index 90fc9b184b..979fc59cc7 100644 --- a/keyboards/kikoslab/kl90/keymaps/default/rules.mk +++ b/keyboards/kikoslab/kl90/keymaps/default/rules.mk @@ -1 +1 @@ -WPM_ENABLE = yes \ No newline at end of file +WPM_ENABLE = yes diff --git a/keyboards/kin80/readme.md b/keyboards/kin80/readme.md index 3ed52b4a59..d4a10bf32c 100644 --- a/keyboards/kin80/readme.md +++ b/keyboards/kin80/readme.md @@ -30,4 +30,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the the top left key and plug in the keyboard. * **Physical reset button**. Hold 'boot0' button on MCU board, press 'reset', then release 'boot0'. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kindakeyboards/conone65/readme.md b/keyboards/kindakeyboards/conone65/readme.md index d0694fcc03..8cdc326d5b 100644 --- a/keyboards/kindakeyboards/conone65/readme.md +++ b/keyboards/kindakeyboards/conone65/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kinesis/keymaps/alvicstep/keymap.c b/keyboards/kinesis/keymaps/alvicstep/keymap.c index 0068ef7d95..75ba884ad6 100644 --- a/keyboards/kinesis/keymaps/alvicstep/keymap.c +++ b/keyboards/kinesis/keymaps/alvicstep/keymap.c @@ -132,4 +132,4 @@ bool led_update_user(led_t led_state) { //disable default processing of LEDs return false; -} \ No newline at end of file +} diff --git a/keyboards/kinesis/keymaps/alvicstep/readme.md b/keyboards/kinesis/keymaps/alvicstep/readme.md index c21618a1dc..dcd3a0134b 100644 --- a/keyboards/kinesis/keymaps/alvicstep/readme.md +++ b/keyboards/kinesis/keymaps/alvicstep/readme.md @@ -102,4 +102,4 @@ The **alvicstep** layout is optimized for software development on a Windows mach |`KEYPAD + ]` | } | |`KEYPAD + ,` | < | |`KEYPAD + .` | > | -|`KEYPAD + BACKTICK` | ~ | \ No newline at end of file +|`KEYPAD + BACKTICK` | ~ | diff --git a/keyboards/kinesis/kintwin/kintwin.c b/keyboards/kinesis/kintwin/kintwin.c index e0c3ab4880..0955c6e0a8 100644 --- a/keyboards/kinesis/kintwin/kintwin.c +++ b/keyboards/kinesis/kintwin/kintwin.c @@ -26,4 +26,4 @@ void matrix_init_kb(void) { gpio_write_pin_high(LED_COMPOSE_PIN); matrix_init_user(); -} \ No newline at end of file +} diff --git a/keyboards/kinesis/readme.md b/keyboards/kinesis/readme.md index 4767d6a436..498d6cbfbe 100644 --- a/keyboards/kinesis/readme.md +++ b/keyboards/kinesis/readme.md @@ -12,4 +12,4 @@ There are at least three different ways to replace the controller in this keyboa All three hardware solutions should work with the same keymaps ## Switch Modifications -In addition to the drop-in replacements of the stock controller above, the directory **"keyboards\kin80"** contains the files to support 80 switch modification of the keyboard, compared to original 86 switches. Kin80 keymaps are not compatible with keymaps that are located inside of **kinesis** directory. \ No newline at end of file +In addition to the drop-in replacements of the stock controller above, the directory **"keyboards\kin80"** contains the files to support 80 switch modification of the keyboard, compared to original 86 switches. Kin80 keymaps are not compatible with keymaps that are located inside of **kinesis** directory. diff --git a/keyboards/kisakeyluxury/qtz/readme.md b/keyboards/kisakeyluxury/qtz/readme.md index 813bf10a32..3196ce99c4 100644 --- a/keyboards/kisakeyluxury/qtz/readme.md +++ b/keyboards/kisakeyluxury/qtz/readme.md @@ -21,4 +21,4 @@ Flashing example for this keyboard: Enter the bootloader in 2 ways: * **Physical reset button**: Briefly press the button on the back of the PCB under the "Z" key -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available (default is bottom-right most key) \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available (default is bottom-right most key) diff --git a/keyboards/kiwikeebs/macro_v2/keymaps/default/keymap.c b/keyboards/kiwikeebs/macro_v2/keymaps/default/keymap.c index 0c66b20c91..77c3603f8a 100644 --- a/keyboards/kiwikeebs/macro_v2/keymaps/default/keymap.c +++ b/keyboards/kiwikeebs/macro_v2/keymaps/default/keymap.c @@ -41,4 +41,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/kiwikey/kawii9/keymaps/default/readme.md b/keyboards/kiwikey/kawii9/keymaps/default/readme.md index 874b526c20..02afde7f62 100644 --- a/keyboards/kiwikey/kawii9/keymaps/default/readme.md +++ b/keyboards/kiwikey/kawii9/keymaps/default/readme.md @@ -1,4 +1,4 @@ # Default keymap for KiwiKey Kawii9 This is the default keymap which is flashed on every Kawii9 board from the very first Group-buy. -This keymap contains some basic media commands on BASE layer and RGB underglow control commands on FN layer (FN is the most bottom-left key, by default). \ No newline at end of file +This keymap contains some basic media commands on BASE layer and RGB underglow control commands on FN layer (FN is the most bottom-left key, by default). diff --git a/keyboards/kiwikey/kawii9/readme.md b/keyboards/kiwikey/kawii9/readme.md index 4b10e82fab..6820ac6f71 100644 --- a/keyboards/kiwikey/kawii9/readme.md +++ b/keyboards/kiwikey/kawii9/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make kiwikey/kawii9: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). \ No newline at end of file +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/kiwikey/wanderland/keymaps/default/readme.md b/keyboards/kiwikey/wanderland/keymaps/default/readme.md index 02cf58d641..d5ff71c696 100644 --- a/keyboards/kiwikey/wanderland/keymaps/default/readme.md +++ b/keyboards/kiwikey/wanderland/keymaps/default/readme.md @@ -1,3 +1,3 @@ # Default keymap for KiwiKey Wanderland -With NO installation of OLED LCD. \ No newline at end of file +With NO installation of OLED LCD. diff --git a/keyboards/kkatano/bakeneko80/keymaps/default/keymap.c b/keyboards/kkatano/bakeneko80/keymaps/default/keymap.c index 372dcd4962..648619b0dd 100644 --- a/keyboards/kkatano/bakeneko80/keymaps/default/keymap.c +++ b/keyboards/kkatano/bakeneko80/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/kmini/readme.md b/keyboards/kmini/readme.md index 2a9e8e7908..b58a914592 100755 --- a/keyboards/kmini/readme.md +++ b/keyboards/kmini/readme.md @@ -10,4 +10,4 @@ Columns 0, 1 and 10-16 and rows 0-4 are wired directly to the ATmega32u4, and co Please read the [documentation](https://docs.qmk.fm). ## How to flash -Hold the capslock key while plugging in the USB and flash the .hex file using QMK Toolbox or Atmel FLIP. \ No newline at end of file +Hold the capslock key while plugging in the USB and flash the .hex file using QMK Toolbox or Atmel FLIP. diff --git a/keyboards/knobgoblin/keymaps/default/readme.md b/keyboards/knobgoblin/keymaps/default/readme.md index 9a37b43c63..d1d483510e 100644 --- a/keyboards/knobgoblin/keymaps/default/readme.md +++ b/keyboards/knobgoblin/keymaps/default/readme.md @@ -5,4 +5,4 @@ # Ortho Knob Goblin Layout This is the ortho layout for the Knob Goblin. key assignments to be used as a standard numpad layout -with a layer momentary switch in the bottom left \ No newline at end of file +with a layer momentary switch in the bottom left diff --git a/keyboards/knops/mini/keymaps/default/readme.md b/keyboards/knops/mini/keymaps/default/readme.md index 61479b486c..17de6d2869 100644 --- a/keyboards/knops/mini/keymaps/default/readme.md +++ b/keyboards/knops/mini/keymaps/default/readme.md @@ -4,4 +4,4 @@ ![Knops Mini Layout Image](https://i.imgur.com/WQBQctm.png) -This is the default layout that comes flashed on every Knops Mini. For your use, you probably want to change this. We suggest you to use [our configurator tool](http://knops.io/configurator.html) for this. \ No newline at end of file +This is the default layout that comes flashed on every Knops Mini. For your use, you probably want to change this. We suggest you to use [our configurator tool](http://knops.io/configurator.html) for this. diff --git a/keyboards/knops/mini/readme.md b/keyboards/knops/mini/readme.md index 4df6c207a4..9b02334ae9 100644 --- a/keyboards/knops/mini/readme.md +++ b/keyboards/knops/mini/readme.md @@ -18,4 +18,4 @@ Make example for this keyboard (after setting up your build environment): make knops/mini:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/knops/readme.md b/keyboards/knops/readme.md index 115e4d7c64..996d0a6b05 100644 --- a/keyboards/knops/readme.md +++ b/keyboards/knops/readme.md @@ -7,4 +7,4 @@ * Maintainer: [Pawnerd](https://github.com/pawnerd) * Hardware Supported: * [`Mini`](mini/): Knops Mini -* Hardware Availability: [knops.io](http://www.knops.io/) \ No newline at end of file +* Hardware Availability: [knops.io](http://www.knops.io/) diff --git a/keyboards/kopibeng/mnk60/readme.md b/keyboards/kopibeng/mnk60/readme.md index 70a382f5de..b3c33c3a48 100644 --- a/keyboards/kopibeng/mnk60/readme.md +++ b/keyboards/kopibeng/mnk60/readme.md @@ -23,4 +23,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to * Physical reset button: Press the RESET switch on top side of PCB. * Bootmagic reset: Unplug keyboard, hold down ESC key and plug in the keyboard. -* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + R keys) in layout if available. \ No newline at end of file +* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + R keys) in layout if available. diff --git a/keyboards/kopibeng/mnk60_stm32/readme.md b/keyboards/kopibeng/mnk60_stm32/readme.md index 30bea10d07..cd9ad480c8 100644 --- a/keyboards/kopibeng/mnk60_stm32/readme.md +++ b/keyboards/kopibeng/mnk60_stm32/readme.md @@ -23,4 +23,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to * Physical reset button: Press the RESET switch on top side of PCB. * Bootmagic reset: Unplug keyboard, hold down ESC key and plug in the keyboard. -* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + R key) in layout if available. \ No newline at end of file +* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + R key) in layout if available. diff --git a/keyboards/kopibeng/tgr_lena/keyboard.json b/keyboards/kopibeng/tgr_lena/keyboard.json index a526c26e52..15d1e07c45 100644 --- a/keyboards/kopibeng/tgr_lena/keyboard.json +++ b/keyboards/kopibeng/tgr_lena/keyboard.json @@ -424,4 +424,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/kopibeng/tgr_lena/readme.md b/keyboards/kopibeng/tgr_lena/readme.md index 107433e01e..e4a901f46a 100644 --- a/keyboards/kopibeng/tgr_lena/readme.md +++ b/keyboards/kopibeng/tgr_lena/readme.md @@ -18,4 +18,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to * Physical reset: Short the RESET jumper on PCB. * Bootmagic reset: Unplug keyboard, hold down top right key and plug in the keyboard. -* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + top right key) in layout if available. \ No newline at end of file +* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + top right key) in layout if available. diff --git a/keyboards/kopibeng/typ65/typ65.c b/keyboards/kopibeng/typ65/typ65.c index 53af0ba97d..e8bada664a 100644 --- a/keyboards/kopibeng/typ65/typ65.c +++ b/keyboards/kopibeng/typ65/typ65.c @@ -64,4 +64,4 @@ void suspend_wakeup_init_kb(void) { gpio_write_pin_high(INDICATOR_2); suspend_wakeup_init_user(); -} \ No newline at end of file +} diff --git a/keyboards/kopibeng/xt60/readme.md b/keyboards/kopibeng/xt60/readme.md index 6eacaded6f..0aa5723ec8 100644 --- a/keyboards/kopibeng/xt60/readme.md +++ b/keyboards/kopibeng/xt60/readme.md @@ -18,4 +18,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to * Physical reset button: Press the RESET switch on top side of PCB. * Bootmagic reset: Unplug keyboard, hold down ESC key and plug in the keyboard. -* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + R keys) in layout if available. \ No newline at end of file +* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + R keys) in layout if available. diff --git a/keyboards/kopibeng/xt60_singa/readme.md b/keyboards/kopibeng/xt60_singa/readme.md index f8efffcf1c..32bc245b6a 100644 --- a/keyboards/kopibeng/xt60_singa/readme.md +++ b/keyboards/kopibeng/xt60_singa/readme.md @@ -18,4 +18,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to * Physical reset button: Press the RESET switch on top side of PCB. * Bootmagic reset: Unplug keyboard, hold down ESC key and plug in the keyboard. -* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + R keys) in layout if available. \ No newline at end of file +* Keycode reset: Press the `QK_BOOT` keycode (default: MO(1) + R keys) in layout if available. diff --git a/keyboards/kprepublic/bm16s/keymaps/default/keymap.c b/keyboards/kprepublic/bm16s/keymaps/default/keymap.c index ac634be5d9..c2c90c3e71 100755 --- a/keyboards/kprepublic/bm16s/keymaps/default/keymap.c +++ b/keyboards/kprepublic/bm16s/keymaps/default/keymap.c @@ -13,4 +13,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { UG_TOGG, UG_NEXT, UG_HUEU, KC_MUTE, UG_SATU, UG_SATD, UG_HUED, _______ ), -}; \ No newline at end of file +}; diff --git a/keyboards/kprepublic/bm43hsrgb/keymaps/default/readme.md b/keyboards/kprepublic/bm43hsrgb/keymaps/default/readme.md index a1ebf08a17..178a490d36 100755 --- a/keyboards/kprepublic/bm43hsrgb/keymaps/default/readme.md +++ b/keyboards/kprepublic/bm43hsrgb/keymaps/default/readme.md @@ -24,4 +24,4 @@ |----------------------------------------------------------------------------+ | | | | | | | | | | `----------------------------------------------------------------------------' -``` \ No newline at end of file +``` diff --git a/keyboards/kradoindustries/kousa/readme.md b/keyboards/kradoindustries/kousa/readme.md index b9a50a93c9..74065faeb7 100644 --- a/keyboards/kradoindustries/kousa/readme.md +++ b/keyboards/kradoindustries/kousa/readme.md @@ -29,4 +29,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kradoindustries/krado66/readme.md b/keyboards/kradoindustries/krado66/readme.md index 7b8a275ee4..fd33a8643e 100644 --- a/keyboards/kradoindustries/krado66/readme.md +++ b/keyboards/kradoindustries/krado66/readme.md @@ -27,4 +27,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kradoindustries/promenade/readme.md b/keyboards/kradoindustries/promenade/readme.md index 179563995c..cf939bfab0 100644 --- a/keyboards/kradoindustries/promenade/readme.md +++ b/keyboards/kradoindustries/promenade/readme.md @@ -27,4 +27,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kradoindustries/promenade_rp24s/keymaps/default/keymap.c b/keyboards/kradoindustries/promenade_rp24s/keymaps/default/keymap.c index f08f27216a..a43ca24468 100644 --- a/keyboards/kradoindustries/promenade_rp24s/keymaps/default/keymap.c +++ b/keyboards/kradoindustries/promenade_rp24s/keymaps/default/keymap.c @@ -99,4 +99,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______)} }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/kradoindustries/promenade_rp24s/keymaps/default/rules.mk b/keyboards/kradoindustries/promenade_rp24s/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/kradoindustries/promenade_rp24s/keymaps/default/rules.mk +++ b/keyboards/kradoindustries/promenade_rp24s/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/kradoindustries/promenade_rp24s/readme.md b/keyboards/kradoindustries/promenade_rp24s/readme.md index 9685cb8296..eed5939b7f 100644 --- a/keyboards/kradoindustries/promenade_rp24s/readme.md +++ b/keyboards/kradoindustries/promenade_rp24s/readme.md @@ -26,4 +26,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/kraken_jones/pteron56/keyboard.json b/keyboards/kraken_jones/pteron56/keyboard.json index d298a1220f..ccfcc49da5 100644 --- a/keyboards/kraken_jones/pteron56/keyboard.json +++ b/keyboards/kraken_jones/pteron56/keyboard.json @@ -91,4 +91,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/ktec/ergodone/ergodox_compat.h b/keyboards/ktec/ergodone/ergodox_compat.h index b566e6cc94..37a9ddbc3a 100644 --- a/keyboards/ktec/ergodone/ergodox_compat.h +++ b/keyboards/ktec/ergodone/ergodox_compat.h @@ -91,4 +91,4 @@ static inline void ergodox_blink_all_leds(void) { //ergodox_led_all_on(); //wait_ms(333); ergodox_led_all_off(); -} \ No newline at end of file +} diff --git a/keyboards/ktec/ergodone/keymaps/default/readme.md b/keyboards/ktec/ergodone/keymaps/default/readme.md index 1150a4f709..f1634c1e98 100644 --- a/keyboards/ktec/ergodone/keymaps/default/readme.md +++ b/keyboards/ktec/ergodone/keymaps/default/readme.md @@ -12,4 +12,4 @@ This is what we ship with out of the factory. :) The image says it all: -![Default](https://i.imgur.com/Be53jH7.png) \ No newline at end of file +![Default](https://i.imgur.com/Be53jH7.png) diff --git a/keyboards/kuro/kuro65/keymaps/default/keymap.c b/keyboards/kuro/kuro65/keymaps/default/keymap.c index 4224bb8a3e..cc3764f2a0 100644 --- a/keyboards/kuro/kuro65/keymaps/default/keymap.c +++ b/keyboards/kuro/kuro65/keymaps/default/keymap.c @@ -90,4 +90,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_HOME, KC_PGDN, KC_END ) -}; \ No newline at end of file +}; diff --git a/keyboards/kwstudio/scorpio_rev2/readme.md b/keyboards/kwstudio/scorpio_rev2/readme.md index aa404d671b..1c12a46c9b 100644 --- a/keyboards/kwstudio/scorpio_rev2/readme.md +++ b/keyboards/kwstudio/scorpio_rev2/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/labbe/labbeminiv1/keymaps/default/keymap.c b/keyboards/labbe/labbeminiv1/keymaps/default/keymap.c index 3457acc011..3d4768c50d 100644 --- a/keyboards/labbe/labbeminiv1/keymaps/default/keymap.c +++ b/keyboards/labbe/labbeminiv1/keymaps/default/keymap.c @@ -17,4 +17,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_wasd( KC_W, KC_A, KC_S, KC_D), -}; \ No newline at end of file +}; diff --git a/keyboards/labbe/labbeminiv1/keymaps/rgb/config.h b/keyboards/labbe/labbeminiv1/keymaps/rgb/config.h index 087f4d7675..7e4e3e3de2 100644 --- a/keyboards/labbe/labbeminiv1/keymaps/rgb/config.h +++ b/keyboards/labbe/labbeminiv1/keymaps/rgb/config.h @@ -25,4 +25,4 @@ #define RGBLIGHT_VAL_STEP 12 // units to step when in/decreasing value (brightness) #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */ #define RGBLIGHT_SLEEP // If defined, the RGB lighting will be switched off when the host goes to sleep -#define RGBLIGHT_EFFECT_RAINBOW_MOOD \ No newline at end of file +#define RGBLIGHT_EFFECT_RAINBOW_MOOD diff --git a/keyboards/labbe/labbeminiv1/keymaps/rgb/keymap.c b/keyboards/labbe/labbeminiv1/keymaps/rgb/keymap.c index b708dee5e9..327d171404 100644 --- a/keyboards/labbe/labbeminiv1/keymaps/rgb/keymap.c +++ b/keyboards/labbe/labbeminiv1/keymaps/rgb/keymap.c @@ -17,4 +17,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_wasd( KC_W, KC_A, KC_S, KC_D), -}; \ No newline at end of file +}; diff --git a/keyboards/labbe/labbeminiv1/keymaps/rgb/rules.mk b/keyboards/labbe/labbeminiv1/keymaps/rgb/rules.mk index 7ad666d1a3..1e3cebb145 100644 --- a/keyboards/labbe/labbeminiv1/keymaps/rgb/rules.mk +++ b/keyboards/labbe/labbeminiv1/keymaps/rgb/rules.mk @@ -1 +1 @@ -RGBLIGHT_ENABLE = yes \ No newline at end of file +RGBLIGHT_ENABLE = yes diff --git a/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/config.h b/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/config.h index 3aa0db7e38..5a071b78b1 100644 --- a/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/config.h +++ b/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/config.h @@ -23,4 +23,4 @@ #define RGB_MATRIX_KEYPRESSES #define ENABLE_RGB_MATRIX_MULTISPLASH -#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_MULTISPLASH \ No newline at end of file +#define RGB_MATRIX_DEFAULT_MODE RGB_MATRIX_MULTISPLASH diff --git a/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/keymap.c b/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/keymap.c index b708dee5e9..327d171404 100644 --- a/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/keymap.c +++ b/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/keymap.c @@ -17,4 +17,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_wasd( KC_W, KC_A, KC_S, KC_D), -}; \ No newline at end of file +}; diff --git a/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/rules.mk b/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/rules.mk index 0a6437f0ef..e35030ed5c 100644 --- a/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/rules.mk +++ b/keyboards/labbe/labbeminiv1/keymaps/rgbmatrix/rules.mk @@ -1,2 +1,2 @@ RGB_MATRIX_ENABLE = yes -RGB_MATRIX_DRIVER = ws2812 \ No newline at end of file +RGB_MATRIX_DRIVER = ws2812 diff --git a/keyboards/labbe/labbeminiv1/readme.md b/keyboards/labbe/labbeminiv1/readme.md index 4e3d095255..00e57993c5 100644 --- a/keyboards/labbe/labbeminiv1/readme.md +++ b/keyboards/labbe/labbeminiv1/readme.md @@ -1,3 +1,3 @@ # Labbe Mini V1 Keyboard -A 4 key keyboard with perkey rgb support \ No newline at end of file +A 4 key keyboard with perkey rgb support diff --git a/keyboards/lazydesigners/the60/rev2/readme.md b/keyboards/lazydesigners/the60/rev2/readme.md index 12f51a06af..214de86227 100755 --- a/keyboards/lazydesigners/the60/rev2/readme.md +++ b/keyboards/lazydesigners/the60/rev2/readme.md @@ -18,4 +18,4 @@ **Reset Key:** To enter the bootloader, either push the RESET button on the PCB or the `QK_BOOT` key on the FN layer. - 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 + 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/lfkeyboards/lfk87/readme.md b/keyboards/lfkeyboards/lfk87/readme.md index 44a36c479f..8fa0c6b903 100644 --- a/keyboards/lfkeyboards/lfk87/readme.md +++ b/keyboards/lfkeyboards/lfk87/readme.md @@ -11,4 +11,4 @@ Make example for this keyboard (after setting up your build environment): make lfkeyboards/lfk87:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/lfkeyboards/smk65/readme.md b/keyboards/lfkeyboards/smk65/readme.md index 50d52472bb..f0729294d6 100644 --- a/keyboards/lfkeyboards/smk65/readme.md +++ b/keyboards/lfkeyboards/smk65/readme.md @@ -14,4 +14,4 @@ Flashing example for this keyboard: make lfkeyboards/smk65: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). \ No newline at end of file +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/lgbtkl/keyboard.json b/keyboards/lgbtkl/keyboard.json index 51411f2b2a..e89d4dcc53 100644 --- a/keyboards/lgbtkl/keyboard.json +++ b/keyboards/lgbtkl/keyboard.json @@ -106,4 +106,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/lgbtkl/readme.md b/keyboards/lgbtkl/readme.md index cd6f94b6e9..234fee52fa 100644 --- a/keyboards/lgbtkl/readme.md +++ b/keyboards/lgbtkl/readme.md @@ -23,4 +23,4 @@ Enter the bootloader using one of the following methods: * **Bootmagic reset**: Hold the F1 key while connecting the USB cable * **Physical reset button**: Hold the button labeled 'B/R' for a while to enter bootloader. -* **Keycode in layout**: In the case of the default keymap, use the key combination Fn + F5 \ No newline at end of file +* **Keycode in layout**: In the case of the default keymap, use the key combination Fn + F5 diff --git a/keyboards/lily58/lite_rev3/halconf.h b/keyboards/lily58/lite_rev3/halconf.h index 4639740d44..da46c85cf6 100644 --- a/keyboards/lily58/lite_rev3/halconf.h +++ b/keyboards/lily58/lite_rev3/halconf.h @@ -4,4 +4,4 @@ #define HAL_USE_I2C TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/linworks/dolice/keymaps/default/keymap.c b/keyboards/linworks/dolice/keymaps/default/keymap.c index 45f710a7a9..fe034d8f16 100644 --- a/keyboards/linworks/dolice/keymaps/default/keymap.c +++ b/keyboards/linworks/dolice/keymaps/default/keymap.c @@ -30,4 +30,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_VOLU, KC_MUTE, KC_MPRV, KC_MNXT, KC_MPLY, 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/linworks/em8/readme.md b/keyboards/linworks/em8/readme.md index cd8f6a5ba3..ce3f9adca1 100644 --- a/keyboards/linworks/em8/readme.md +++ b/keyboards/linworks/em8/readme.md @@ -19,4 +19,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## How to enter the bootloader * **Bootmagic reset**: Hold down the key `ESC` key and plug in the keyboard (Top left most switch). On older firmware revisions, `~` (top left most switch of the alpha cluster) may be needed instead. -* **Physical reset button**: Briefly press the button on the back of the PCB \ No newline at end of file +* **Physical reset button**: Briefly press the button on the back of the PCB diff --git a/keyboards/linworks/fave87/keymaps/default/keymap.c b/keyboards/linworks/fave87/keymaps/default/keymap.c index 343c4c02ad..9383e6adbb 100644 --- a/keyboards/linworks/fave87/keymaps/default/keymap.c +++ b/keyboards/linworks/fave87/keymaps/default/keymap.c @@ -32,4 +32,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT), -}; \ No newline at end of file +}; diff --git a/keyboards/linworks/favepada/keyboard.json b/keyboards/linworks/favepada/keyboard.json index e468f88779..e8f3af81cb 100644 --- a/keyboards/linworks/favepada/keyboard.json +++ b/keyboards/linworks/favepada/keyboard.json @@ -140,4 +140,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/linworks/whale75/mcuconf.h b/keyboards/linworks/whale75/mcuconf.h index a89e1dd02b..a668be4d0c 100644 --- a/keyboards/linworks/whale75/mcuconf.h +++ b/keyboards/linworks/whale75/mcuconf.h @@ -22,4 +22,4 @@ #undef STM32_PWM_USE_TIM1 #undef STM32_PWM_USE_TIM4 #define STM32_PWM_USE_TIM1 TRUE -#define STM32_PWM_USE_TIM4 TRUE \ No newline at end of file +#define STM32_PWM_USE_TIM4 TRUE diff --git a/keyboards/lucid/velvet_hotswap/rules.mk b/keyboards/lucid/velvet_hotswap/rules.mk index 5a00049a75..3437a35bdf 100644 --- a/keyboards/lucid/velvet_hotswap/rules.mk +++ b/keyboards/lucid/velvet_hotswap/rules.mk @@ -1,2 +1,2 @@ # Processor frequency -F_CPU = 8000000 \ No newline at end of file +F_CPU = 8000000 diff --git a/keyboards/lucid/velvet_solder/rules.mk b/keyboards/lucid/velvet_solder/rules.mk index 5a00049a75..3437a35bdf 100644 --- a/keyboards/lucid/velvet_solder/rules.mk +++ b/keyboards/lucid/velvet_solder/rules.mk @@ -1,2 +1,2 @@ # Processor frequency -F_CPU = 8000000 \ No newline at end of file +F_CPU = 8000000 diff --git a/keyboards/lz/erghost/readme.md b/keyboards/lz/erghost/readme.md index 0a4a504227..b064d207c5 100644 --- a/keyboards/lz/erghost/readme.md +++ b/keyboards/lz/erghost/readme.md @@ -24,4 +24,4 @@ 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 -* **Physical reset button**: Press the button on the back of the PCB \ No newline at end of file +* **Physical reset button**: Press the button on the back of the PCB diff --git a/keyboards/machkeyboards/mach3/keymaps/default/keymap.c b/keyboards/machkeyboards/mach3/keymaps/default/keymap.c index c395c820f9..e351641982 100644 --- a/keyboards/machkeyboards/mach3/keymaps/default/keymap.c +++ b/keyboards/machkeyboards/mach3/keymaps/default/keymap.c @@ -21,4 +21,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { BL_UP, BL_DOWN, BL_BRTG, BL_UP, BL_DOWN, BL_BRTG ) -}; \ No newline at end of file +}; diff --git a/keyboards/machkeyboards/mach3/keymaps/default/readme.md b/keyboards/machkeyboards/mach3/keymaps/default/readme.md index d12e48d497..cf08391de6 100644 --- a/keyboards/machkeyboards/mach3/keymaps/default/readme.md +++ b/keyboards/machkeyboards/mach3/keymaps/default/readme.md @@ -1,4 +1,4 @@ # Default Mach 3 Keymap This is the default layout that comes with the Mach 3. -The keys are set to only control the backlight. \ No newline at end of file +The keys are set to only control the backlight. diff --git a/keyboards/machkeyboards/readme.md b/keyboards/machkeyboards/readme.md index ef2f8b159d..d99156e667 100644 --- a/keyboards/machkeyboards/readme.md +++ b/keyboards/machkeyboards/readme.md @@ -4,4 +4,4 @@ Mach Keyboards focus itself on selling the best macropad in the world. [Mach Keyboards Official Website](https://machkeyboards.com) [Discord](https://discord.gg/ukFKFc7eXy) -[Instagram](https://www.instagram.com/machkeyboards) \ No newline at end of file +[Instagram](https://www.instagram.com/machkeyboards) diff --git a/keyboards/magic_force/mf17/keymaps/default/keymap.c b/keyboards/magic_force/mf17/keymaps/default/keymap.c index c845d80f13..867d292b88 100755 --- a/keyboards/magic_force/mf17/keymaps/default/keymap.c +++ b/keyboards/magic_force/mf17/keymaps/default/keymap.c @@ -29,4 +29,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RM_SPDD, RM_TOGG, RM_SPDU, QK_BOOTLOADER, RM_PREV, RM_VALD, RM_HUED, KC_TRNS, KC_TRNS, QK_CLEAR_EEPROM), -}; \ No newline at end of file +}; diff --git a/keyboards/mariorion_v25/halconf.h b/keyboards/mariorion_v25/halconf.h index a25bad2c7f..7a41f7e008 100644 --- a/keyboards/mariorion_v25/halconf.h +++ b/keyboards/mariorion_v25/halconf.h @@ -7,4 +7,4 @@ #define HAL_USE_SPI FALSE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/mariorion_v25/matrix_diagram.md b/keyboards/mariorion_v25/matrix_diagram.md index f37df5a6e1..795d3c1d30 100644 --- a/keyboards/mariorion_v25/matrix_diagram.md +++ b/keyboards/mariorion_v25/matrix_diagram.md @@ -26,4 +26,4 @@ ┌─────┬───┬───────────────────────────────────────┬───┬─────┐ │50 │51 │55 │5C │5D │ 10u Spacebar └─────┴───┴───────────────────────────────────────┴───┴─────┘ -``` \ No newline at end of file +``` diff --git a/keyboards/mariorion_v25/mcuconf.h b/keyboards/mariorion_v25/mcuconf.h index c2cf95aef2..b741e10311 100644 --- a/keyboards/mariorion_v25/mcuconf.h +++ b/keyboards/mariorion_v25/mcuconf.h @@ -6,4 +6,4 @@ #include_next #define STM32_PWM_USE_TIM17 TRUE -#define STM32_TIM17_SUPPRESS_ISR \ No newline at end of file +#define STM32_TIM17_SUPPRESS_ISR diff --git a/keyboards/mariorion_v25/prod/config.h b/keyboards/mariorion_v25/prod/config.h index 8895d16ece..c17b4322e4 100644 --- a/keyboards/mariorion_v25/prod/config.h +++ b/keyboards/mariorion_v25/prod/config.h @@ -13,4 +13,4 @@ #define INDICATOR_0 C9 #define INDICATOR_1 C8 -#define INDICATOR_2 C7 \ No newline at end of file +#define INDICATOR_2 C7 diff --git a/keyboards/mariorion_v25/proto/config.h b/keyboards/mariorion_v25/proto/config.h index 894b8fbf9e..d6c9049fd7 100644 --- a/keyboards/mariorion_v25/proto/config.h +++ b/keyboards/mariorion_v25/proto/config.h @@ -13,4 +13,4 @@ #define INDICATOR_0 C8 #define INDICATOR_1 C7 -#define INDICATOR_2 C6 \ No newline at end of file +#define INDICATOR_2 C6 diff --git a/keyboards/matchstickworks/southpad/rev1/keyboard.json b/keyboards/matchstickworks/southpad/rev1/keyboard.json index e7c3237a55..afc840944a 100644 --- a/keyboards/matchstickworks/southpad/rev1/keyboard.json +++ b/keyboards/matchstickworks/southpad/rev1/keyboard.json @@ -50,4 +50,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/matchstickworks/southpad/rev1/keymaps/default/keymap.c b/keyboards/matchstickworks/southpad/rev1/keymaps/default/keymap.c index 7d5d5cf2b3..82e17a12f8 100644 --- a/keyboards/matchstickworks/southpad/rev1/keymaps/default/keymap.c +++ b/keyboards/matchstickworks/southpad/rev1/keymaps/default/keymap.c @@ -24,4 +24,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P3, KC_P2, KC_P1, KC_PENT, KC_PDOT, KC_P0 ), -}; \ No newline at end of file +}; diff --git a/keyboards/matchstickworks/southpad/rev2/keymaps/default/keymap.c b/keyboards/matchstickworks/southpad/rev2/keymaps/default/keymap.c index 2dd332fdf5..298eb82917 100644 --- a/keyboards/matchstickworks/southpad/rev2/keymaps/default/keymap.c +++ b/keyboards/matchstickworks/southpad/rev2/keymaps/default/keymap.c @@ -22,4 +22,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_PGDN, KC_DOWN, KC_END, KC_DEL, KC_INS ), -}; \ No newline at end of file +}; diff --git a/keyboards/matrix/falcon/readme.md b/keyboards/matrix/falcon/readme.md index a2ceb82163..047591d487 100644 --- a/keyboards/matrix/falcon/readme.md +++ b/keyboards/matrix/falcon/readme.md @@ -22,4 +22,4 @@ 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 short cut the *RST* pin with the *GND* pin (pin at the topside of the *RST*) on the back of the PCB. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/matrix/me/readme.md b/keyboards/matrix/me/readme.md index f04229b2d1..cba4af97d7 100644 --- a/keyboards/matrix/me/readme.md +++ b/keyboards/matrix/me/readme.md @@ -22,4 +22,4 @@ 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 short cut the *RST* pin with the *GND* pin (pin at the topside of the *RST*) on the back of the PCB. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/matrix/noah/keymaps/wkl/keymap.c b/keyboards/matrix/noah/keymaps/wkl/keymap.c index 2e2377f18d..96bc62c0ff 100644 --- a/keyboards/matrix/noah/keymaps/wkl/keymap.c +++ b/keyboards/matrix/noah/keymaps/wkl/keymap.c @@ -17,4 +17,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP,KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; \ No newline at end of file +}; diff --git a/keyboards/mazestudio/jocker/keymaps/default/keymap.c b/keyboards/mazestudio/jocker/keymaps/default/keymap.c index 4d4f46b2e6..de4c9f0cf8 100644 --- a/keyboards/mazestudio/jocker/keymaps/default/keymap.c +++ b/keyboards/mazestudio/jocker/keymaps/default/keymap.c @@ -13,4 +13,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT ) -}; \ No newline at end of file +}; diff --git a/keyboards/mb44/keymaps/3u_space/keymap.c b/keyboards/mb44/keymaps/3u_space/keymap.c index a0b412bb36..b458a0f3ed 100644 --- a/keyboards/mb44/keymaps/3u_space/keymap.c +++ b/keyboards/mb44/keymaps/3u_space/keymap.c @@ -65,4 +65,4 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } } return true; -} \ No newline at end of file +} diff --git a/keyboards/mc_76k/keymaps/default/readme.md b/keyboards/mc_76k/keymaps/default/readme.md index cfca7e7ec6..ee8b915908 100644 --- a/keyboards/mc_76k/keymaps/default/readme.md +++ b/keyboards/mc_76k/keymaps/default/readme.md @@ -2,4 +2,4 @@ ![DEFAULT](https://i.imgur.com/GzUITtG.png) -![FN1](https://i.imgur.com/ytnKmxg.png) \ No newline at end of file +![FN1](https://i.imgur.com/ytnKmxg.png) diff --git a/keyboards/mechanicalkeyboards/point65/readme.md b/keyboards/mechanicalkeyboards/point65/readme.md index 7a50f6793d..693e12df25 100644 --- a/keyboards/mechanicalkeyboards/point65/readme.md +++ b/keyboards/mechanicalkeyboards/point65/readme.md @@ -28,4 +28,4 @@ The keyboard can be flashed with new firmware by entering the bootloader in one Once the keyboard enters bootloader mode, it will present itself as a removable device called `RPI-RP2`. Copy / drag the new firmware file to the `RPI-RP2` drive to flash the new firmware onto the keyboard. -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 +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/mechlovin/adelais/adelais.c b/keyboards/mechlovin/adelais/adelais.c index 5758bb7322..9a952c90c9 100644 --- a/keyboards/mechlovin/adelais/adelais.c +++ b/keyboards/mechlovin/adelais/adelais.c @@ -22,4 +22,4 @@ void keyboard_post_init_kb(void) { rgblight_sethsv_at(255, 255, 255, 0); keyboard_post_init_user(); } -#endif \ No newline at end of file +#endif diff --git a/keyboards/mechlovin/adelais/config.h b/keyboards/mechlovin/adelais/config.h index 9b59ebaf3a..55451b9f54 100644 --- a/keyboards/mechlovin/adelais/config.h +++ b/keyboards/mechlovin/adelais/config.h @@ -20,4 +20,4 @@ along with this program. If not, see . /* key matrix size */ #define MATRIX_ROWS 5 -#define MATRIX_COLS 15 \ No newline at end of file +#define MATRIX_COLS 15 diff --git a/keyboards/mechlovin/adelais/rgb_led/rev3/mcuconf.h b/keyboards/mechlovin/adelais/rgb_led/rev3/mcuconf.h index aa5ea7335b..1885b75bd3 100644 --- a/keyboards/mechlovin/adelais/rgb_led/rev3/mcuconf.h +++ b/keyboards/mechlovin/adelais/rgb_led/rev3/mcuconf.h @@ -22,4 +22,4 @@ #define STM32_SPI_USE_SPI1 TRUE #undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/mechlovin/delphine/keymaps/default/keymap.c b/keyboards/mechlovin/delphine/keymaps/default/keymap.c index 6498b69262..a7d2ca046e 100644 --- a/keyboards/mechlovin/delphine/keymaps/default/keymap.c +++ b/keyboards/mechlovin/delphine/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P0, KC_P0, KC_PDOT, KC_BSPC ), -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/foundation/readme.md b/keyboards/mechlovin/foundation/readme.md index 61dacd55bd..1e06ca804c 100644 --- a/keyboards/mechlovin/foundation/readme.md +++ b/keyboards/mechlovin/foundation/readme.md @@ -23,4 +23,4 @@ Enter the bootloader in 4 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 * **Bootloader reset**: Hold down the key at (0,13) in the matrix (Backspace) and plug in the keyboard * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available -* **Hardware reset**: Press reset button (located on the bottom side of the PCB) \ No newline at end of file +* **Hardware reset**: Press reset button (located on the bottom side of the PCB) diff --git a/keyboards/mechlovin/hannah910/rev1/keymaps/ansi/keymap.c b/keyboards/mechlovin/hannah910/rev1/keymaps/ansi/keymap.c index c16620a74e..cce801e23d 100644 --- a/keyboards/mechlovin/hannah910/rev1/keymaps/ansi/keymap.c +++ b/keyboards/mechlovin/hannah910/rev1/keymaps/ansi/keymap.c @@ -44,4 +44,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ), -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/hannah910/rev1/keymaps/default/keymap.c b/keyboards/mechlovin/hannah910/rev1/keymaps/default/keymap.c index ae53cc3f71..7a0d508150 100644 --- a/keyboards/mechlovin/hannah910/rev1/keymaps/default/keymap.c +++ b/keyboards/mechlovin/hannah910/rev1/keymaps/default/keymap.c @@ -45,4 +45,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ), -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/keymap.c b/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/keymap.c index 022f1f3b37..3bf1d02576 100644 --- a/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/keymap.c +++ b/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/keymap.c @@ -44,4 +44,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ), -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/readme.md b/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/readme.md index 63604a09e4..0723912d63 100644 --- a/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/readme.md +++ b/keyboards/mechlovin/hannah910/rev2/keymaps/ansi/readme.md @@ -1,2 +1,2 @@ # The ansi keymap for hannah910v2 -GB PCB rev.2 here: https://www.reddit.com/r/mechmarket/comments/esv0um/gb_team_mechlovin_hannah_910_v2_infinity_ce_jane/ \ No newline at end of file +GB PCB rev.2 here: https://www.reddit.com/r/mechmarket/comments/esv0um/gb_team_mechlovin_hannah_910_v2_infinity_ce_jane/ diff --git a/keyboards/mechlovin/hannah910/rev2/keymaps/default/keymap.c b/keyboards/mechlovin/hannah910/rev2/keymaps/default/keymap.c index c0f66cebcf..90ca736219 100644 --- a/keyboards/mechlovin/hannah910/rev2/keymaps/default/keymap.c +++ b/keyboards/mechlovin/hannah910/rev2/keymaps/default/keymap.c @@ -45,4 +45,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ), -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/hannah910/rev2/keymaps/default/readme.md b/keyboards/mechlovin/hannah910/rev2/keymaps/default/readme.md index 63604a09e4..0723912d63 100644 --- a/keyboards/mechlovin/hannah910/rev2/keymaps/default/readme.md +++ b/keyboards/mechlovin/hannah910/rev2/keymaps/default/readme.md @@ -1,2 +1,2 @@ # The ansi keymap for hannah910v2 -GB PCB rev.2 here: https://www.reddit.com/r/mechmarket/comments/esv0um/gb_team_mechlovin_hannah_910_v2_infinity_ce_jane/ \ No newline at end of file +GB PCB rev.2 here: https://www.reddit.com/r/mechmarket/comments/esv0um/gb_team_mechlovin_hannah_910_v2_infinity_ce_jane/ diff --git a/keyboards/mechlovin/hannah910/rev3/keymaps/ansi/keymap.c b/keyboards/mechlovin/hannah910/rev3/keymaps/ansi/keymap.c index 70ba2431bd..06f973fb8a 100644 --- a/keyboards/mechlovin/hannah910/rev3/keymaps/ansi/keymap.c +++ b/keyboards/mechlovin/hannah910/rev3/keymaps/ansi/keymap.c @@ -44,4 +44,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ), -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/hannah910/rev3/keymaps/default/keymap.c b/keyboards/mechlovin/hannah910/rev3/keymaps/default/keymap.c index 59f46dfbaa..764bb676ad 100644 --- a/keyboards/mechlovin/hannah910/rev3/keymaps/default/keymap.c +++ b/keyboards/mechlovin/hannah910/rev3/keymaps/default/keymap.c @@ -24,4 +24,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/hex4b/rev2/readme.md b/keyboards/mechlovin/hex4b/rev2/readme.md index 01ae8ea724..66e5cad083 100644 --- a/keyboards/mechlovin/hex4b/rev2/readme.md +++ b/keyboards/mechlovin/hex4b/rev2/readme.md @@ -25,4 +25,4 @@ 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 * **Bootloader reset**: Hold down the key at (0,13) in the matrix (Backspace) and plug in the keyboard * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available -* **Hardware reset**: Press reset button (located on the top side of the PCB) \ No newline at end of file +* **Hardware reset**: Press reset button (located on the top side of the PCB) diff --git a/keyboards/mechlovin/infinity87/rev1/readme.md b/keyboards/mechlovin/infinity87/rev1/readme.md index 448d69ca7c..45fd8445fe 100644 --- a/keyboards/mechlovin/infinity87/rev1/readme.md +++ b/keyboards/mechlovin/infinity87/rev1/readme.md @@ -13,4 +13,4 @@ Make example for this keyboard (after setting up your build environment): 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 Key:** To put the IF87_rev1, rouge87, rogue87 into bootloader, hold esc key while plugging in (bootmagic) or push reset swith on the bottom of the PCB. \ No newline at end of file +**Reset Key:** To put the IF87_rev1, rouge87, rogue87 into bootloader, hold esc key while plugging in (bootmagic) or push reset swith on the bottom of the PCB. diff --git a/keyboards/mechlovin/infinity87/rgb_rev1/readme.md b/keyboards/mechlovin/infinity87/rgb_rev1/readme.md index 1e71fc29fc..c13aa70e5c 100644 --- a/keyboards/mechlovin/infinity87/rgb_rev1/readme.md +++ b/keyboards/mechlovin/infinity87/rgb_rev1/readme.md @@ -18,4 +18,4 @@ Flashing example for this keyboard: 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 Key:** To put the IF87_RGB_Rev.1 into bootloader, hold esc key while plugging in (bootmagic) or push reset swith on the bottom of the PCB. \ No newline at end of file +**Reset Key:** To put the IF87_RGB_Rev.1 into bootloader, hold esc key while plugging in (bootmagic) or push reset swith on the bottom of the PCB. diff --git a/keyboards/mechlovin/infinity875/keymaps/default/rules.mk b/keyboards/mechlovin/infinity875/keymaps/default/rules.mk index 64a7fa8664..14ace89730 100644 --- a/keyboards/mechlovin/infinity875/keymaps/default/rules.mk +++ b/keyboards/mechlovin/infinity875/keymaps/default/rules.mk @@ -1 +1 @@ -RGB_MATRIX_CUSTOM_USER = no \ No newline at end of file +RGB_MATRIX_CUSTOM_USER = no diff --git a/keyboards/mechlovin/infinity875/readme.md b/keyboards/mechlovin/infinity875/readme.md index 39c76e5dc9..85ad0aeed0 100644 --- a/keyboards/mechlovin/infinity875/readme.md +++ b/keyboards/mechlovin/infinity875/readme.md @@ -21,4 +21,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to **Reset Key:** 3 ways to put the IF87.5 into bootloader: - By keycode: Press the key mapped to `QK_BOOT` if it is available. - By bootmagic: hold ESC key while plugging in. -- By hardware: Push reset button on bottom of the PCB while the PCB is plugged in. \ No newline at end of file +- By hardware: Push reset button on bottom of the PCB while the PCB is plugged in. diff --git a/keyboards/mechlovin/infinityce/infinityce.c b/keyboards/mechlovin/infinityce/infinityce.c index f1a9181a96..e2455fb1b3 100644 --- a/keyboards/mechlovin/infinityce/infinityce.c +++ b/keyboards/mechlovin/infinityce/infinityce.c @@ -32,4 +32,4 @@ bool led_update_kb(led_t led_state) { } } return res; -} \ No newline at end of file +} diff --git a/keyboards/mechlovin/kanu/keymaps/ansi/keymap.c b/keyboards/mechlovin/kanu/keymaps/ansi/keymap.c index cc8a3b5109..2cfecc301d 100644 --- a/keyboards/mechlovin/kanu/keymaps/ansi/keymap.c +++ b/keyboards/mechlovin/kanu/keymaps/ansi/keymap.c @@ -44,4 +44,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ), -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/kanu/keymaps/default/keymap.c b/keyboards/mechlovin/kanu/keymaps/default/keymap.c index 30db14c79e..ec15180738 100644 --- a/keyboards/mechlovin/kanu/keymaps/default/keymap.c +++ b/keyboards/mechlovin/kanu/keymaps/default/keymap.c @@ -45,4 +45,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ), -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/mechlovin9/readme.md b/keyboards/mechlovin/mechlovin9/readme.md index 55dead19c4..d90c8e7fa2 100644 --- a/keyboards/mechlovin/mechlovin9/readme.md +++ b/keyboards/mechlovin/mechlovin9/readme.md @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): 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 Key:** To put the mechlovin9 PCB into bootloader, hold ESC and plug cable. \ No newline at end of file +**Reset Key:** To put the mechlovin9 PCB into bootloader, hold ESC and plug cable. diff --git a/keyboards/mechlovin/mechlovin9/rev1/readme.md b/keyboards/mechlovin/mechlovin9/rev1/readme.md index 55dead19c4..d90c8e7fa2 100644 --- a/keyboards/mechlovin/mechlovin9/rev1/readme.md +++ b/keyboards/mechlovin/mechlovin9/rev1/readme.md @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): 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 Key:** To put the mechlovin9 PCB into bootloader, hold ESC and plug cable. \ No newline at end of file +**Reset Key:** To put the mechlovin9 PCB into bootloader, hold ESC and plug cable. diff --git a/keyboards/mechlovin/mechlovin9/rev2/readme.md b/keyboards/mechlovin/mechlovin9/rev2/readme.md index 55dead19c4..d90c8e7fa2 100644 --- a/keyboards/mechlovin/mechlovin9/rev2/readme.md +++ b/keyboards/mechlovin/mechlovin9/rev2/readme.md @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): 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 Key:** To put the mechlovin9 PCB into bootloader, hold ESC and plug cable. \ No newline at end of file +**Reset Key:** To put the mechlovin9 PCB into bootloader, hold ESC and plug cable. diff --git a/keyboards/mechlovin/mechlovin9/rev3/readme.md b/keyboards/mechlovin/mechlovin9/rev3/readme.md index 3b98b5383d..175e863c22 100644 --- a/keyboards/mechlovin/mechlovin9/rev3/readme.md +++ b/keyboards/mechlovin/mechlovin9/rev3/readme.md @@ -20,4 +20,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader -**Reset Key:** To put the mechlovin9 PCB into bootloader, hold ESC and plug cable. \ No newline at end of file +**Reset Key:** To put the mechlovin9 PCB into bootloader, hold ESC and plug cable. diff --git a/keyboards/mechlovin/olly/bb/readme.md b/keyboards/mechlovin/olly/bb/readme.md index 6afdc161ea..127b60a232 100644 --- a/keyboards/mechlovin/olly/bb/readme.md +++ b/keyboards/mechlovin/olly/bb/readme.md @@ -20,4 +20,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to **Reset Key:** 2 ways to put the Olly JF into bootloader: By keycode: Press the key mapped to `QK_BOOT` if it is available. -By bootloader: hold ESC key while plugging in \ No newline at end of file +By bootloader: hold ESC key while plugging in diff --git a/keyboards/mechlovin/olly/jf/readme.md b/keyboards/mechlovin/olly/jf/readme.md index c40a8dfd5e..3152fc17ca 100644 --- a/keyboards/mechlovin/olly/jf/readme.md +++ b/keyboards/mechlovin/olly/jf/readme.md @@ -25,4 +25,4 @@ Enter the bootloader in 4 ways: * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. * **Bootloader reset**: hold ESC (0,0) key while plugging in (jump to bootloader) * **Bootmagic reset**: hold Insert (1,14) key while pluging in (jump to bootloader and reset EEPROM) -* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead \ No newline at end of file +* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead diff --git a/keyboards/mechlovin/olly/jf/rev1/keymaps/default/keymap.c b/keyboards/mechlovin/olly/jf/rev1/keymaps/default/keymap.c index 6209811cf2..ef82c68df2 100644 --- a/keyboards/mechlovin/olly/jf/rev1/keymaps/default/keymap.c +++ b/keyboards/mechlovin/olly/jf/rev1/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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/mechlovin/olly/jf/rev1/readme.md b/keyboards/mechlovin/olly/jf/rev1/readme.md index f6c114fee6..8f174f3dab 100644 --- a/keyboards/mechlovin/olly/jf/rev1/readme.md +++ b/keyboards/mechlovin/olly/jf/rev1/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: By keycode: Press the key mapped to `QK_BOOT` if it is available. By Bootloader: hold ESC key while plugging in (jump to bootloader) -By Bootmagic: hold Insert key while pluging in (jump to bootloader and reset EEPROM) \ No newline at end of file +By Bootmagic: hold Insert key while pluging in (jump to bootloader and reset EEPROM) diff --git a/keyboards/mechlovin/olly/jf/rev2/readme.md b/keyboards/mechlovin/olly/jf/rev2/readme.md index b165c35778..10b902ee80 100644 --- a/keyboards/mechlovin/olly/jf/rev2/readme.md +++ b/keyboards/mechlovin/olly/jf/rev2/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: By keycode: Press the key mapped to `QK_BOOT` if it is available. By Bootloader: hold ESC key while plugging in (jump to bootloader) -By Bootmagic: hold Insert key while pluging in (jump to bootloader and reset EEPROM) \ No newline at end of file +By Bootmagic: hold Insert key while pluging in (jump to bootloader and reset EEPROM) diff --git a/keyboards/mechlovin/olly/orion/readme.md b/keyboards/mechlovin/olly/orion/readme.md index 1f29edaf87..a295483547 100644 --- a/keyboards/mechlovin/olly/orion/readme.md +++ b/keyboards/mechlovin/olly/orion/readme.md @@ -21,4 +21,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to **Reset Key:** 3 ways to put the IF87.5 into bootloader: - By keycode: Tap RESET keycode. - By bootmagic: hold ESC key while plugging in. -- By hardware: Push reset button on bottom of the PCB while the PCB is plugged in. \ No newline at end of file +- By hardware: Push reset button on bottom of the PCB while the PCB is plugged in. diff --git a/keyboards/mechlovin/zed1800/zed1800.c b/keyboards/mechlovin/zed1800/zed1800.c index 975c8914dd..75928c7a5a 100644 --- a/keyboards/mechlovin/zed1800/zed1800.c +++ b/keyboards/mechlovin/zed1800/zed1800.c @@ -42,4 +42,4 @@ bool led_update_kb(led_t led_state) { rgblight_set_layer_state(2, led_state.scroll_lock); } return true; -} \ No newline at end of file +} diff --git a/keyboards/mechlovin/zed65/910/keymaps/default/keymap.c b/keyboards/mechlovin/zed65/910/keymaps/default/keymap.c index f4c829bedd..ccf1b49841 100644 --- a/keyboards/mechlovin/zed65/910/keymaps/default/keymap.c +++ b/keyboards/mechlovin/zed65/910/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) -}; \ No newline at end of file +}; diff --git a/keyboards/mechlovin/zed65/no_backlight/cor65/keyboard.json b/keyboards/mechlovin/zed65/no_backlight/cor65/keyboard.json index 56103e44db..69bdc40377 100644 --- a/keyboards/mechlovin/zed65/no_backlight/cor65/keyboard.json +++ b/keyboards/mechlovin/zed65/no_backlight/cor65/keyboard.json @@ -245,4 +245,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/mechstudio/ud_40_ortho/readme.md b/keyboards/mechstudio/ud_40_ortho/readme.md index 211f174520..e8f33715c2 100644 --- a/keyboards/mechstudio/ud_40_ortho/readme.md +++ b/keyboards/mechstudio/ud_40_ortho/readme.md @@ -19,4 +19,4 @@ Make example for this keyboard (after setting up your build environment): make mechstudio/ud_40_ortho: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). \ No newline at end of file +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/mechwild/bbs/bbs.c b/keyboards/mechwild/bbs/bbs.c index 341103c1ab..f427d60a97 100644 --- a/keyboards/mechwild/bbs/bbs.c +++ b/keyboards/mechwild/bbs/bbs.c @@ -19,4 +19,4 @@ bool dip_switch_update_kb(uint8_t index, bool active) { void eeconfig_init_kb(void) { steno_set_mode(STENO_MODE_GEMINI); // or STENO_MODE_BOLT eeconfig_init_user(); -} \ No newline at end of file +} diff --git a/keyboards/mechwild/clunker/readme.md b/keyboards/mechwild/clunker/readme.md index b567e74190..f299b478c2 100644 --- a/keyboards/mechwild/clunker/readme.md +++ b/keyboards/mechwild/clunker/readme.md @@ -22,4 +22,4 @@ 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 top 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/mechwild/mercutio/readme.md b/keyboards/mechwild/mercutio/readme.md index a83942442c..0ab08b2b07 100644 --- a/keyboards/mechwild/mercutio/readme.md +++ b/keyboards/mechwild/mercutio/readme.md @@ -21,4 +21,4 @@ By default, Mercutio firmware has bootmagic enabled (lite). This means that inst -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 +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/mechwild/mokulua/readme.md b/keyboards/mechwild/mokulua/readme.md index 5a6b69e66e..4d21e620fa 100644 --- a/keyboards/mechwild/mokulua/readme.md +++ b/keyboards/mechwild/mokulua/readme.md @@ -22,4 +22,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/mechwild/puckbuddy/readme.md b/keyboards/mechwild/puckbuddy/readme.md index 3bf6647932..b91b5a3e36 100644 --- a/keyboards/mechwild/puckbuddy/readme.md +++ b/keyboards/mechwild/puckbuddy/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Physical reset button**: Press and hold the boot0 button on the blackpill, tap and release the nrst button on the blackpill, then release the boot0 button. * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. By default this is the top right key on layer 1. -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 +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/mechwild/waka60/f401/mcuconf.h b/keyboards/mechwild/waka60/f401/mcuconf.h index 95339690cf..f903d8880f 100644 --- a/keyboards/mechwild/waka60/f401/mcuconf.h +++ b/keyboards/mechwild/waka60/f401/mcuconf.h @@ -24,4 +24,4 @@ #undef STM32_PWM_USE_TIM1 #define STM32_PWM_USE_TIM1 TRUE #undef STM32_GPT_USE_TIM4 -#define STM32_GPT_USE_TIM4 TRUE \ No newline at end of file +#define STM32_GPT_USE_TIM4 TRUE diff --git a/keyboards/meetlab/kafka60/readme.md b/keyboards/meetlab/kafka60/readme.md index ffc2bf93f8..e914fd0003 100644 --- a/keyboards/meetlab/kafka60/readme.md +++ b/keyboards/meetlab/kafka60/readme.md @@ -23,4 +23,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/meetlab/kafka68/keyboard.json b/keyboards/meetlab/kafka68/keyboard.json index 418749ed43..deba6e30b5 100644 --- a/keyboards/meetlab/kafka68/keyboard.json +++ b/keyboards/meetlab/kafka68/keyboard.json @@ -98,4 +98,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/meetlab/kafka68/readme.md b/keyboards/meetlab/kafka68/readme.md index ac8742a101..dcf1e6f8a4 100644 --- a/keyboards/meetlab/kafka68/readme.md +++ b/keyboards/meetlab/kafka68/readme.md @@ -23,4 +23,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/meetlab/kafkasplit/keyboard.json b/keyboards/meetlab/kafkasplit/keyboard.json index 77e5ec3e13..a731474905 100644 --- a/keyboards/meetlab/kafkasplit/keyboard.json +++ b/keyboards/meetlab/kafkasplit/keyboard.json @@ -201,4 +201,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/meetlab/kafkasplit/readme.md b/keyboards/meetlab/kafkasplit/readme.md index 7b332d784a..53181e9aa7 100644 --- a/keyboards/meetlab/kafkasplit/readme.md +++ b/keyboards/meetlab/kafkasplit/readme.md @@ -23,4 +23,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/meetlab/kalice/config.h b/keyboards/meetlab/kalice/config.h index 052bfa4bdf..eec56fd2c3 100644 --- a/keyboards/meetlab/kalice/config.h +++ b/keyboards/meetlab/kalice/config.h @@ -20,4 +20,4 @@ #define WS2812_PWM_CHANNEL 2 #define WS2812_PWM_COMPLEMENTARY_OUTPUT #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM5 -#define WS2812_PWM_DMA_CHANNEL 5 \ No newline at end of file +#define WS2812_PWM_DMA_CHANNEL 5 diff --git a/keyboards/meetlab/kalice/keyboard.json b/keyboards/meetlab/kalice/keyboard.json index eb91d64466..cf5bb32c71 100644 --- a/keyboards/meetlab/kalice/keyboard.json +++ b/keyboards/meetlab/kalice/keyboard.json @@ -117,4 +117,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/meetlab/kalice/keymaps/default/keymap.c b/keyboards/meetlab/kalice/keymaps/default/keymap.c index 071941063e..46c78d3fde 100644 --- a/keyboards/meetlab/kalice/keymaps/default/keymap.c +++ b/keyboards/meetlab/kalice/keymaps/default/keymap.c @@ -32,4 +32,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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) -}; \ No newline at end of file +}; diff --git a/keyboards/meetlab/kalice/readme.md b/keyboards/meetlab/kalice/readme.md index efa97f2d5e..ab3b9ea473 100644 --- a/keyboards/meetlab/kalice/readme.md +++ b/keyboards/meetlab/kalice/readme.md @@ -23,4 +23,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/meetlab/rena/keyboard.json b/keyboards/meetlab/rena/keyboard.json index 8787fb0ee8..b333170635 100644 --- a/keyboards/meetlab/rena/keyboard.json +++ b/keyboards/meetlab/rena/keyboard.json @@ -113,4 +113,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/meetlab/rena/matrix_diagram.md b/keyboards/meetlab/rena/matrix_diagram.md index c671421bff..ced29dc3c8 100644 --- a/keyboards/meetlab/rena/matrix_diagram.md +++ b/keyboards/meetlab/rena/matrix_diagram.md @@ -14,4 +14,4 @@ │41 │42 │┌───────────────────────┐│4A │4C │ └────┴─────┘│46 │└─────┴────┘ └───────────────────────┘ -``` \ No newline at end of file +``` diff --git a/keyboards/meetlab/rena/readme.md b/keyboards/meetlab/rena/readme.md index 3941525d74..6a62bb3448 100644 --- a/keyboards/meetlab/rena/readme.md +++ b/keyboards/meetlab/rena/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/merge/iso_macro/readme.md b/keyboards/merge/iso_macro/readme.md index 654ede4fd5..113e8102ab 100644 --- a/keyboards/merge/iso_macro/readme.md +++ b/keyboards/merge/iso_macro/readme.md @@ -11,4 +11,4 @@ Make example for this keyboard (after setting up your build environment): make merge/isomacro: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). \ No newline at end of file +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/merge/uc1/readme.md b/keyboards/merge/uc1/readme.md index 730b97516f..43cf4e6fd0 100644 --- a/keyboards/merge/uc1/readme.md +++ b/keyboards/merge/uc1/readme.md @@ -11,4 +11,4 @@ Make example for this keyboard (after setting up your build environment): make merge/uc1: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). \ No newline at end of file +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/merge/um70/keymaps/default/rules.mk b/keyboards/merge/um70/keymaps/default/rules.mk index 1888ce3a12..7e2126efab 100644 --- a/keyboards/merge/um70/keymaps/default/rules.mk +++ b/keyboards/merge/um70/keymaps/default/rules.mk @@ -1,2 +1,2 @@ WPM_ENABLE = yes -LTO_ENABLE = yes \ No newline at end of file +LTO_ENABLE = yes diff --git a/keyboards/merge/um70/readme.md b/keyboards/merge/um70/readme.md index 0c297a6402..c50a42c636 100644 --- a/keyboards/merge/um70/readme.md +++ b/keyboards/merge/um70/readme.md @@ -11,4 +11,4 @@ Make example for this keyboard (after setting up your build environment): make merge/um70: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). \ No newline at end of file +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/merge/um80/keymaps/default/rules.mk b/keyboards/merge/um80/keymaps/default/rules.mk index 1888ce3a12..7e2126efab 100644 --- a/keyboards/merge/um80/keymaps/default/rules.mk +++ b/keyboards/merge/um80/keymaps/default/rules.mk @@ -1,2 +1,2 @@ WPM_ENABLE = yes -LTO_ENABLE = yes \ No newline at end of file +LTO_ENABLE = yes diff --git a/keyboards/merge/um80/readme.md b/keyboards/merge/um80/readme.md index ad9caf244f..b5bb9fca92 100644 --- a/keyboards/merge/um80/readme.md +++ b/keyboards/merge/um80/readme.md @@ -19,4 +19,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the Esc key on the left side or '7' key on the right side and plug in the keyboard. * **Physical reset button**: Briefly press the button on the back of the PCB. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/merge/um80/um80.c b/keyboards/merge/um80/um80.c index d13f34562c..b22fc752b5 100644 --- a/keyboards/merge/um80/um80.c +++ b/keyboards/merge/um80/um80.c @@ -120,4 +120,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/merge/uma/keymaps/default/rules.mk b/keyboards/merge/uma/keymaps/default/rules.mk index 90fc9b184b..979fc59cc7 100644 --- a/keyboards/merge/uma/keymaps/default/rules.mk +++ b/keyboards/merge/uma/keymaps/default/rules.mk @@ -1 +1 @@ -WPM_ENABLE = yes \ No newline at end of file +WPM_ENABLE = yes diff --git a/keyboards/merge/uma/uma.c b/keyboards/merge/uma/uma.c index 35c91b8a6e..250c180e78 100644 --- a/keyboards/merge/uma/uma.c +++ b/keyboards/merge/uma/uma.c @@ -106,4 +106,4 @@ bool oled_task_kb(void) { } return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/metamechs/timberwolf/keymaps/a_ansi/keymap.c b/keyboards/metamechs/timberwolf/keymaps/a_ansi/keymap.c index e2c4d225f3..9654e8c757 100644 --- a/keyboards/metamechs/timberwolf/keymaps/a_ansi/keymap.c +++ b/keyboards/metamechs/timberwolf/keymaps/a_ansi/keymap.c @@ -33,4 +33,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______ ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, MO(1) ,_______,_______,_______ ,_______ ,_______,_______, _______,_______,_______,_______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/metamechs/timberwolf/keymaps/a_iso/keymap.c b/keyboards/metamechs/timberwolf/keymaps/a_iso/keymap.c index 88779a9238..aa24cb7d9f 100644 --- a/keyboards/metamechs/timberwolf/keymaps/a_iso/keymap.c +++ b/keyboards/metamechs/timberwolf/keymaps/a_iso/keymap.c @@ -33,4 +33,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, _______, MO(1) ,_______,_______,_______ ,_______ ,_______,_______, _______,_______,_______,_______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/metamechs/timberwolf/keymaps/b_ansi/keymap.c b/keyboards/metamechs/timberwolf/keymaps/b_ansi/keymap.c index 48c145fad0..e43aa97843 100644 --- a/keyboards/metamechs/timberwolf/keymaps/b_ansi/keymap.c +++ b/keyboards/metamechs/timberwolf/keymaps/b_ansi/keymap.c @@ -33,4 +33,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______ ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______, MO(1) ,_______,_______,_______ ,_______ ,_______,_______,_______ ,_______,_______,_______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/metamechs/timberwolf/keymaps/b_iso/keymap.c b/keyboards/metamechs/timberwolf/keymaps/b_iso/keymap.c index 8a6b872066..d73de9f63b 100644 --- a/keyboards/metamechs/timberwolf/keymaps/b_iso/keymap.c +++ b/keyboards/metamechs/timberwolf/keymaps/b_iso/keymap.c @@ -33,4 +33,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, MO(1) ,_______,_______,_______ ,_______ ,_______,_______,_______ ,_______,_______,_______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/metamechs/timberwolf/keymaps/default/keymap.c b/keyboards/metamechs/timberwolf/keymaps/default/keymap.c index 5ef61f0200..d3447ec200 100644 --- a/keyboards/metamechs/timberwolf/keymaps/default/keymap.c +++ b/keyboards/metamechs/timberwolf/keymaps/default/keymap.c @@ -33,4 +33,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, MO(1) ,_______,_______,_______ ,_______ ,_______,_______,_______,_______,_______,_______,_______,_______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/metamechs/timberwolf/keymaps/prime_ansi/keymap.c b/keyboards/metamechs/timberwolf/keymaps/prime_ansi/keymap.c index a91b88123d..b3212d7e61 100644 --- a/keyboards/metamechs/timberwolf/keymaps/prime_ansi/keymap.c +++ b/keyboards/metamechs/timberwolf/keymaps/prime_ansi/keymap.c @@ -33,4 +33,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______ ,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______ ,_______, MO(1) ,_______,_______,_______ ,_______ ,_______,_______,_______ ,_______,_______,_______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/metamechs/timberwolf/keymaps/prime_iso/keymap.c b/keyboards/metamechs/timberwolf/keymaps/prime_iso/keymap.c index 4cb95c53ce..f2a1a64c44 100644 --- a/keyboards/metamechs/timberwolf/keymaps/prime_iso/keymap.c +++ b/keyboards/metamechs/timberwolf/keymaps/prime_iso/keymap.c @@ -33,4 +33,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, MO(1) ,_______,_______,_______ ,_______ ,_______,_______,_______ ,_______,_______,_______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/miiiw/blackio83/rev_0100/rev_0100.h b/keyboards/miiiw/blackio83/rev_0100/rev_0100.h index ea371443e3..6b636a5ef8 100644 --- a/keyboards/miiiw/blackio83/rev_0100/rev_0100.h +++ b/keyboards/miiiw/blackio83/rev_0100/rev_0100.h @@ -27,4 +27,4 @@ enum custom_keycodes { DEV_RF24, ALT_TAB, RGB_RST, -}; \ No newline at end of file +}; diff --git a/keyboards/miller/gm862/keymaps/default/keymap.c b/keyboards/miller/gm862/keymaps/default/keymap.c index f6c2b264f7..1c54263a1c 100644 --- a/keyboards/miller/gm862/keymaps/default/keymap.c +++ b/keyboards/miller/gm862/keymaps/default/keymap.c @@ -14,4 +14,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_LEFT, KC_DOWN, KC_RIGHT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_HOME, KC_PGUP, KC_TRNS, KC_MPRV, KC_VOLD, KC_VOLU, KC_MUTE, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_END, KC_PGDN, KC_MNXT, 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/millet/doksin/keyboard.json b/keyboards/millet/doksin/keyboard.json index a472eebc79..3d505e8ba2 100644 --- a/keyboards/millet/doksin/keyboard.json +++ b/keyboards/millet/doksin/keyboard.json @@ -27,4 +27,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/mini_elixivy/keymaps/ansi/readme.md b/keyboards/mini_elixivy/keymaps/ansi/readme.md index 021d2891b3..15ae56d82e 100644 --- a/keyboards/mini_elixivy/keymaps/ansi/readme.md +++ b/keyboards/mini_elixivy/keymaps/ansi/readme.md @@ -1,2 +1,2 @@ # The ANSI keymap for mini_elixivy -This is an ANSI keymap, with three 1u modifiers between the spacebar/arrow keys and (optionally) a rotary encoder. \ No newline at end of file +This is an ANSI keymap, with three 1u modifiers between the spacebar/arrow keys and (optionally) a rotary encoder. diff --git a/keyboards/mini_elixivy/keymaps/default/readme.md b/keyboards/mini_elixivy/keymaps/default/readme.md index 717b2c30ae..288de94976 100644 --- a/keyboards/mini_elixivy/keymaps/default/readme.md +++ b/keyboards/mini_elixivy/keymaps/default/readme.md @@ -1,2 +1,2 @@ # The default keymap for mini_elixivy -This is an ANSI keymap, with three 1u modifiers between the spacebar/arrow keys and (optionally) a rotary encoder. \ No newline at end of file +This is an ANSI keymap, with three 1u modifiers between the spacebar/arrow keys and (optionally) a rotary encoder. diff --git a/keyboards/mini_elixivy/keymaps/iso/readme.md b/keyboards/mini_elixivy/keymaps/iso/readme.md index d67bd32328..22805e5e7d 100644 --- a/keyboards/mini_elixivy/keymaps/iso/readme.md +++ b/keyboards/mini_elixivy/keymaps/iso/readme.md @@ -1,2 +1,2 @@ # The ISO keymap for mini_elixivy -This is an ISO keymap, with three 1u modifiers between the spacebar/arrow keys and (optionally) a rotary encoder. \ No newline at end of file +This is an ISO keymap, with three 1u modifiers between the spacebar/arrow keys and (optionally) a rotary encoder. diff --git a/keyboards/mini_elixivy/readme.md b/keyboards/mini_elixivy/readme.md index 6047a17346..5a3fc0fa04 100644 --- a/keyboards/mini_elixivy/readme.md +++ b/keyboards/mini_elixivy/readme.md @@ -21,4 +21,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader Enter the bootloader: -* **Physical reset button**: Briefly press the button on the back of the PCB (or short the reset/ground pads, should a tactile button not be installed) \ No newline at end of file +* **Physical reset button**: Briefly press the button on the back of the PCB (or short the reset/ground pads, should a tactile button not be installed) diff --git a/keyboards/mini_ten_key_plus/keymaps/default/readme.md b/keyboards/mini_ten_key_plus/keymaps/default/readme.md index a8f697f2cb..9e2dcb1e5d 100644 --- a/keyboards/mini_ten_key_plus/keymaps/default/readme.md +++ b/keyboards/mini_ten_key_plus/keymaps/default/readme.md @@ -1,2 +1,2 @@ # The default 1u keymap for mini_ten_key_plus -![mini_ten_key_plus](https://imgur.com/VuSTwfC.png) \ No newline at end of file +![mini_ten_key_plus](https://imgur.com/VuSTwfC.png) diff --git a/keyboards/mini_ten_key_plus/keymaps/standard_numpad/readme.md b/keyboards/mini_ten_key_plus/keymaps/standard_numpad/readme.md index 2cb470bef8..71535b59a8 100644 --- a/keyboards/mini_ten_key_plus/keymaps/standard_numpad/readme.md +++ b/keyboards/mini_ten_key_plus/keymaps/standard_numpad/readme.md @@ -1,2 +1,2 @@ # The standard numpad keymap for mini_ten_key_plus -![mini_ten_key_plus](https://imgur.com/x2BUc9J.png) \ No newline at end of file +![mini_ten_key_plus](https://imgur.com/x2BUc9J.png) diff --git a/keyboards/mini_ten_key_plus/mini_ten_key_plus.c b/keyboards/mini_ten_key_plus/mini_ten_key_plus.c index 6dc60c9de1..8393ebe49c 100644 --- a/keyboards/mini_ten_key_plus/mini_ten_key_plus.c +++ b/keyboards/mini_ten_key_plus/mini_ten_key_plus.c @@ -12,4 +12,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { tap_code16(KC_LEFT_PAREN); } return true; -} \ No newline at end of file +} diff --git a/keyboards/mode/m60h/config.h b/keyboards/mode/m60h/config.h index e51bff8ca5..e13ea3c33f 100644 --- a/keyboards/mode/m60h/config.h +++ b/keyboards/mode/m60h/config.h @@ -6,4 +6,4 @@ #define WS2812_PWM_DRIVER PWMD4 #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6 -#define WS2812_PWM_DMA_CHANNEL 2 \ No newline at end of file +#define WS2812_PWM_DMA_CHANNEL 2 diff --git a/keyboards/mode/m60h/halconf.h b/keyboards/mode/m60h/halconf.h index 6c00f38084..612ce4fc4a 100644 --- a/keyboards/mode/m60h/halconf.h +++ b/keyboards/mode/m60h/halconf.h @@ -18,4 +18,4 @@ #define HAL_USE_PWM TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/mode/m60h/keyboard.json b/keyboards/mode/m60h/keyboard.json index 39cbdb473f..94a42c152f 100644 --- a/keyboards/mode/m60h/keyboard.json +++ b/keyboards/mode/m60h/keyboard.json @@ -113,4 +113,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/mode/m60h/mcuconf.h b/keyboards/mode/m60h/mcuconf.h index 0b044526b2..fe4c53e724 100644 --- a/keyboards/mode/m60h/mcuconf.h +++ b/keyboards/mode/m60h/mcuconf.h @@ -21,4 +21,4 @@ #define STM32_PWM_USE_TIM4 TRUE #undef STM32_ST_USE_TIMER -#define STM32_ST_USE_TIMER 5 \ No newline at end of file +#define STM32_ST_USE_TIMER 5 diff --git a/keyboards/mode/m60h_f/config.h b/keyboards/mode/m60h_f/config.h index e51bff8ca5..e13ea3c33f 100644 --- a/keyboards/mode/m60h_f/config.h +++ b/keyboards/mode/m60h_f/config.h @@ -6,4 +6,4 @@ #define WS2812_PWM_DRIVER PWMD4 #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6 -#define WS2812_PWM_DMA_CHANNEL 2 \ No newline at end of file +#define WS2812_PWM_DMA_CHANNEL 2 diff --git a/keyboards/mode/m60h_f/halconf.h b/keyboards/mode/m60h_f/halconf.h index 6c00f38084..612ce4fc4a 100644 --- a/keyboards/mode/m60h_f/halconf.h +++ b/keyboards/mode/m60h_f/halconf.h @@ -18,4 +18,4 @@ #define HAL_USE_PWM TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/mode/m60h_f/keyboard.json b/keyboards/mode/m60h_f/keyboard.json index f04b599d84..a5d18025c8 100644 --- a/keyboards/mode/m60h_f/keyboard.json +++ b/keyboards/mode/m60h_f/keyboard.json @@ -111,4 +111,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/mode/m60h_f/mcuconf.h b/keyboards/mode/m60h_f/mcuconf.h index 0b044526b2..fe4c53e724 100644 --- a/keyboards/mode/m60h_f/mcuconf.h +++ b/keyboards/mode/m60h_f/mcuconf.h @@ -21,4 +21,4 @@ #define STM32_PWM_USE_TIM4 TRUE #undef STM32_ST_USE_TIMER -#define STM32_ST_USE_TIMER 5 \ No newline at end of file +#define STM32_ST_USE_TIMER 5 diff --git a/keyboards/mode/m60s/config.h b/keyboards/mode/m60s/config.h index e51bff8ca5..e13ea3c33f 100644 --- a/keyboards/mode/m60s/config.h +++ b/keyboards/mode/m60s/config.h @@ -6,4 +6,4 @@ #define WS2812_PWM_DRIVER PWMD4 #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM6 -#define WS2812_PWM_DMA_CHANNEL 2 \ No newline at end of file +#define WS2812_PWM_DMA_CHANNEL 2 diff --git a/keyboards/mode/m60s/halconf.h b/keyboards/mode/m60s/halconf.h index 6c00f38084..612ce4fc4a 100644 --- a/keyboards/mode/m60s/halconf.h +++ b/keyboards/mode/m60s/halconf.h @@ -18,4 +18,4 @@ #define HAL_USE_PWM TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/mode/m60s/keyboard.json b/keyboards/mode/m60s/keyboard.json index 993af9b798..f17494910a 100644 --- a/keyboards/mode/m60s/keyboard.json +++ b/keyboards/mode/m60s/keyboard.json @@ -177,4 +177,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/mode/m60s/mcuconf.h b/keyboards/mode/m60s/mcuconf.h index 0b044526b2..fe4c53e724 100644 --- a/keyboards/mode/m60s/mcuconf.h +++ b/keyboards/mode/m60s/mcuconf.h @@ -21,4 +21,4 @@ #define STM32_PWM_USE_TIM4 TRUE #undef STM32_ST_USE_TIMER -#define STM32_ST_USE_TIMER 5 \ No newline at end of file +#define STM32_ST_USE_TIMER 5 diff --git a/keyboards/mokey/ginkgo65/readme.md b/keyboards/mokey/ginkgo65/readme.md index 8caa629aef..bdc6c3de36 100644 --- a/keyboards/mokey/ginkgo65/readme.md +++ b/keyboards/mokey/ginkgo65/readme.md @@ -18,4 +18,4 @@ Flashing example for this keyboard: make mokey/ginkgo65: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). \ No newline at end of file +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/mokey/ginkgo65hot/readme.md b/keyboards/mokey/ginkgo65hot/readme.md index b3aa7ab562..aefe89e435 100644 --- a/keyboards/mokey/ginkgo65hot/readme.md +++ b/keyboards/mokey/ginkgo65hot/readme.md @@ -17,4 +17,4 @@ Flashing example for this keyboard: make mokey/ginkgo65hot: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). \ No newline at end of file +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/mokey/mokey12x2/readme.md b/keyboards/mokey/mokey12x2/readme.md index 75a87062c9..ccfc51a788 100644 --- a/keyboards/mokey/mokey12x2/readme.md +++ b/keyboards/mokey/mokey12x2/readme.md @@ -20,4 +20,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader in 2 ways: * **Physical reset button**: Briefly press the button: [boot] first, then press button: [reset] on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/moky/moky67/keyboard.json b/keyboards/moky/moky67/keyboard.json index 869dfc3389..2e03836318 100644 --- a/keyboards/moky/moky67/keyboard.json +++ b/keyboards/moky/moky67/keyboard.json @@ -229,4 +229,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/momokai/aurora/keymaps/default/keymap.c b/keyboards/momokai/aurora/keymaps/default/keymap.c index cb84cc87d9..791933f9b9 100644 --- a/keyboards/momokai/aurora/keymaps/default/keymap.c +++ b/keyboards/momokai/aurora/keymaps/default/keymap.c @@ -16,4 +16,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) } }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/monsgeek/m6/m6.c b/keyboards/monsgeek/m6/m6.c index 180c370031..3c4b67458c 100644 --- a/keyboards/monsgeek/m6/m6.c +++ b/keyboards/monsgeek/m6/m6.c @@ -194,4 +194,4 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) default: return true; } -} \ No newline at end of file +} diff --git a/keyboards/morizon/keymaps/default/keymap.c b/keyboards/morizon/keymaps/default/keymap.c index c84ddeaeb3..4480ab73ca 100644 --- a/keyboards/morizon/keymaps/default/keymap.c +++ b/keyboards/morizon/keymaps/default/keymap.c @@ -47,4 +47,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_F9 , KC_F10 , KC_F11 , KC_F12 , _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, KC_PAUS, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/mountainblocks/mb17/keymaps/default/keymap.c b/keyboards/mountainblocks/mb17/keymaps/default/keymap.c index 13c8cf8128..705c4fcb2e 100644 --- a/keyboards/mountainblocks/mb17/keymaps/default/keymap.c +++ b/keyboards/mountainblocks/mb17/keymaps/default/keymap.c @@ -57,4 +57,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_END, KC_DOWN, KC_PGDN, KC_INS, KC_DEL, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/mountainmechdesigns/teton_78/keyboard.json b/keyboards/mountainmechdesigns/teton_78/keyboard.json index ba7cfdd2c3..07bde308a5 100644 --- a/keyboards/mountainmechdesigns/teton_78/keyboard.json +++ b/keyboards/mountainmechdesigns/teton_78/keyboard.json @@ -107,4 +107,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/mountainmechdesigns/teton_78/readme.md b/keyboards/mountainmechdesigns/teton_78/readme.md index 40ef5c436b..29cc77eacd 100644 --- a/keyboards/mountainmechdesigns/teton_78/readme.md +++ b/keyboards/mountainmechdesigns/teton_78/readme.md @@ -34,4 +34,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/mwstudio/mw660/config.h b/keyboards/mwstudio/mw660/config.h index 58d0eee9e0..d39cc40330 100644 --- a/keyboards/mwstudio/mw660/config.h +++ b/keyboards/mwstudio/mw660/config.h @@ -21,4 +21,4 @@ //#define WS2812_PWM_COMPLEMENTARY_OUTPUT // Define for a complementary timer output (TIMx_CHyN); omit for a normal timer output (TIMx_CHy). #define WS2812_PWM_PAL_MODE 1 // Pin "alternate function", see the respective datasheet for the appropriate values for your MCU. default: 2 #define WS2812_PWM_DMA_STREAM STM32_DMA1_STREAM7 // DMA Stream for TIMx_UP, see the respective reference manual for the appropriate values for your MCU. -#define WS2812_PWM_DMA_CHANNEL 2 \ No newline at end of file +#define WS2812_PWM_DMA_CHANNEL 2 diff --git a/keyboards/mysticworks/wyvern/keymaps/default/keymap.c b/keyboards/mysticworks/wyvern/keymaps/default/keymap.c index 3269631206..f22d4e62cf 100644 --- a/keyboards/mysticworks/wyvern/keymaps/default/keymap.c +++ b/keyboards/mysticworks/wyvern/keymaps/default/keymap.c @@ -30,4 +30,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -}; \ No newline at end of file +}; diff --git a/keyboards/navi60/keymaps/default/keymap.c b/keyboards/navi60/keymaps/default/keymap.c index c49cc641d4..fba6f7bd5f 100644 --- a/keyboards/navi60/keymaps/default/keymap.c +++ b/keyboards/navi60/keymaps/default/keymap.c @@ -24,4 +24,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_RSFT, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_APP, KC_RGUI, KC_RCTL ), -}; \ No newline at end of file +}; diff --git a/keyboards/neson_design/700e/700e.c b/keyboards/neson_design/700e/700e.c index 810e311b28..8dabf5efe1 100644 --- a/keyboards/neson_design/700e/700e.c +++ b/keyboards/neson_design/700e/700e.c @@ -381,4 +381,4 @@ bool led_update_kb(led_t led_state) return res; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/neson_design/700e/readme.md b/keyboards/neson_design/700e/readme.md index 8b25d00c25..24822eed01 100644 --- a/keyboards/neson_design/700e/readme.md +++ b/keyboards/neson_design/700e/readme.md @@ -18,4 +18,4 @@ 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 *RST* button on the back of the PCB. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/neson_design/810e/keyboard.json b/keyboards/neson_design/810e/keyboard.json index ab52c1539e..b4181ccc24 100644 --- a/keyboards/neson_design/810e/keyboard.json +++ b/keyboards/neson_design/810e/keyboard.json @@ -114,4 +114,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/neson_design/n6/n6.c b/keyboards/neson_design/n6/n6.c index e4538257f1..bfee7ecb62 100644 --- a/keyboards/neson_design/n6/n6.c +++ b/keyboards/neson_design/n6/n6.c @@ -378,4 +378,4 @@ bool led_update_kb(led_t led_state) return res; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/neson_design/n6/readme.md b/keyboards/neson_design/n6/readme.md index f86668549a..e4d069e399 100644 --- a/keyboards/neson_design/n6/readme.md +++ b/keyboards/neson_design/n6/readme.md @@ -18,4 +18,4 @@ 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 *RST* button on the back of the PCB. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/neson_design/nico/readme.md b/keyboards/neson_design/nico/readme.md index 9b821c16d0..c743ae55ea 100644 --- a/keyboards/neson_design/nico/readme.md +++ b/keyboards/neson_design/nico/readme.md @@ -18,4 +18,4 @@ 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 *RST* button on the back of the PCB. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/nightly_boards/alter/rev1/readme.md b/keyboards/nightly_boards/alter/rev1/readme.md index 81079f0646..fdef3dc05b 100644 --- a/keyboards/nightly_boards/alter/rev1/readme.md +++ b/keyboards/nightly_boards/alter/rev1/readme.md @@ -9,4 +9,4 @@ Make example for this keyboard (after setting up your build environment): make nightly_boards/alter/rev1: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). \ No newline at end of file +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/nightly_boards/conde60/keymaps/default/keymap.c b/keyboards/nightly_boards/conde60/keymaps/default/keymap.c index fd3e6882ab..bc4d818e4f 100644 --- a/keyboards/nightly_boards/conde60/keymaps/default/keymap.c +++ b/keyboards/nightly_boards/conde60/keymaps/default/keymap.c @@ -50,4 +50,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ), -}; \ No newline at end of file +}; diff --git a/keyboards/nightly_boards/daily60/keymaps/default/keymap.c b/keyboards/nightly_boards/daily60/keymaps/default/keymap.c index cd6765355c..6f5141c323 100644 --- a/keyboards/nightly_boards/daily60/keymaps/default/keymap.c +++ b/keyboards/nightly_boards/daily60/keymaps/default/keymap.c @@ -48,4 +48,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ), -}; \ No newline at end of file +}; diff --git a/keyboards/nightly_boards/daily60/readme.md b/keyboards/nightly_boards/daily60/readme.md index 87e721943f..0afe78b839 100644 --- a/keyboards/nightly_boards/daily60/readme.md +++ b/keyboards/nightly_boards/daily60/readme.md @@ -23,4 +23,4 @@ Enter the bootloader in 3 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 -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 +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/nightly_boards/jisoo/keymaps/default/keymap.c b/keyboards/nightly_boards/jisoo/keymaps/default/keymap.c index e83c5eff08..b3d71c37f4 100644 --- a/keyboards/nightly_boards/jisoo/keymaps/default/keymap.c +++ b/keyboards/nightly_boards/jisoo/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_LSFT, KC_UP, KC_END, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_SPC, KC_LALT, KC_LCTL, KC_LEFT, KC_DOWN, KC_RGHT ), -}; \ No newline at end of file +}; diff --git a/keyboards/nightly_boards/jisoo/readme.md b/keyboards/nightly_boards/jisoo/readme.md index 7d1354e4aa..43d956533c 100644 --- a/keyboards/nightly_boards/jisoo/readme.md +++ b/keyboards/nightly_boards/jisoo/readme.md @@ -23,4 +23,4 @@ Enter the bootloader in 3 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 -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 +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/nightly_boards/octopadplus/keymaps/default/keymap.c b/keyboards/nightly_boards/octopadplus/keymaps/default/keymap.c index 3209f7ec36..35dd356883 100644 --- a/keyboards/nightly_boards/octopadplus/keymaps/default/keymap.c +++ b/keyboards/nightly_boards/octopadplus/keymaps/default/keymap.c @@ -51,4 +51,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/nightly_boards/octopadplus/keymaps/default/rules.mk b/keyboards/nightly_boards/octopadplus/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/nightly_boards/octopadplus/keymaps/default/rules.mk +++ b/keyboards/nightly_boards/octopadplus/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/nightmare/keymaps/default/readme.md b/keyboards/nightmare/keymaps/default/readme.md index b044730cf5..ee3683eeb9 100644 --- a/keyboards/nightmare/keymaps/default/readme.md +++ b/keyboards/nightmare/keymaps/default/readme.md @@ -1,3 +1,3 @@ # The default keymap for nightmare -![Default Layout](https://imgur.com/G0Hh7F3.png) \ No newline at end of file +![Default Layout](https://imgur.com/G0Hh7F3.png) diff --git a/keyboards/nopunin10did/styrkatmel/readme.md b/keyboards/nopunin10did/styrkatmel/readme.md index df9656d1a6..a8362dc896 100644 --- a/keyboards/nopunin10did/styrkatmel/readme.md +++ b/keyboards/nopunin10did/styrkatmel/readme.md @@ -22,4 +22,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at the top left in the macro columns (default: F1) and plug in the keyboard. * **Physical reset button**: Briefly press the button on the back of the PCB. -* **Keycode in layout**: Press the key mapped to `QK_BOOT`. For the default layout, hold down the rightmost 1.25u key on the bottom row, then tap the top-left key in the macro columns. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT`. For the default layout, hold down the rightmost 1.25u key on the bottom row, then tap the top-left key in the macro columns. diff --git a/keyboards/noxary/220/keymaps/default/readme.md b/keyboards/noxary/220/keymaps/default/readme.md index 40f25464a0..c3fd87ea4e 100644 --- a/keyboards/noxary/220/keymaps/default/readme.md +++ b/keyboards/noxary/220/keymaps/default/readme.md @@ -1,3 +1,3 @@ ![Noxary 220 Layout Image](https://i.imgur.com/jVQ50lt.png) -# The default keymap for Noxary 220 \ No newline at end of file +# The default keymap for Noxary 220 diff --git a/keyboards/noxary/280/keymaps/default/readme.md b/keyboards/noxary/280/keymaps/default/readme.md index 3b6bc24f32..8defe72bd0 100644 --- a/keyboards/noxary/280/keymaps/default/readme.md +++ b/keyboards/noxary/280/keymaps/default/readme.md @@ -1,3 +1,3 @@ ![Noxary 280 Layout Image](https://i.imgur.com/7Go0py2.png) -# The default keymap for Noxary 280 \ No newline at end of file +# The default keymap for Noxary 280 diff --git a/keyboards/noxary/x268/keymaps/default/keymap.c b/keyboards/noxary/x268/keymaps/default/keymap.c index bc47a72677..26fcc12e07 100644 --- a/keyboards/noxary/x268/keymaps/default/keymap.c +++ b/keyboards/noxary/x268/keymaps/default/keymap.c @@ -108,4 +108,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), -}; \ No newline at end of file +}; diff --git a/keyboards/nullbitsco/common/bitc_led.c b/keyboards/nullbitsco/common/bitc_led.c index 8f91e665f8..a39bad0e9b 100644 --- a/keyboards/nullbitsco/common/bitc_led.c +++ b/keyboards/nullbitsco/common/bitc_led.c @@ -34,4 +34,4 @@ void set_bitc_LED(uint8_t mode) { default: break; } -} \ No newline at end of file +} diff --git a/keyboards/nullbitsco/common/bitc_led.h b/keyboards/nullbitsco/common/bitc_led.h index c649f1c1dd..9e5a07c5f3 100644 --- a/keyboards/nullbitsco/common/bitc_led.h +++ b/keyboards/nullbitsco/common/bitc_led.h @@ -27,4 +27,4 @@ #define PIN_LED F0 -void set_bitc_LED(uint8_t mode); \ No newline at end of file +void set_bitc_LED(uint8_t mode); diff --git a/keyboards/nullbitsco/common/remote_kb.h b/keyboards/nullbitsco/common/remote_kb.h index 97d299189d..fc57b39da5 100644 --- a/keyboards/nullbitsco/common/remote_kb.h +++ b/keyboards/nullbitsco/common/remote_kb.h @@ -50,4 +50,4 @@ enum remote_macros { void matrix_init_remote_kb(void), process_record_remote_kb(uint16_t keycode, keyrecord_t *record), - matrix_scan_remote_kb(void); \ No newline at end of file + matrix_scan_remote_kb(void); diff --git a/keyboards/nullbitsco/nibble/matrix.c b/keyboards/nullbitsco/nibble/matrix.c index 7ea5a6c470..e13dd38774 100644 --- a/keyboards/nullbitsco/nibble/matrix.c +++ b/keyboards/nullbitsco/nibble/matrix.c @@ -93,4 +93,4 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { } return (uint8_t)changed; -} \ No newline at end of file +} diff --git a/keyboards/nullbitsco/scramble/v2/v2.h b/keyboards/nullbitsco/scramble/v2/v2.h index c86282f658..5daec11128 100644 --- a/keyboards/nullbitsco/scramble/v2/v2.h +++ b/keyboards/nullbitsco/scramble/v2/v2.h @@ -40,4 +40,4 @@ void set_scramble_LED_r_pwm(uint8_t pwm), set_scramble_LED_g_pwm(uint8_t pwm), set_scramble_LED_b_pwm(uint8_t pwm); - \ No newline at end of file + diff --git a/keyboards/nulldesignco/null65ansi/v1/readme.md b/keyboards/nulldesignco/null65ansi/v1/readme.md index 308d4120e3..c51f665eb5 100755 --- a/keyboards/nulldesignco/null65ansi/v1/readme.md +++ b/keyboards/nulldesignco/null65ansi/v1/readme.md @@ -24,4 +24,4 @@ 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 boot button**: Hold the button labeled as "BOOT" on the back of the board or short the two pads on the front while you connect the keyboard to your computer. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/nulldesignco/null65iso/v1/readme.md b/keyboards/nulldesignco/null65iso/v1/readme.md index f7fdeac131..e73b27def1 100755 --- a/keyboards/nulldesignco/null65iso/v1/readme.md +++ b/keyboards/nulldesignco/null65iso/v1/readme.md @@ -24,4 +24,4 @@ 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 boot button**: Hold the button labeled as "BOOT" on the back of the board or short the two pads on the front while you connect the keyboard to your computer. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/numatreus/readme.md b/keyboards/numatreus/readme.md index e945c31467..1f2c2a5a04 100644 --- a/keyboards/numatreus/readme.md +++ b/keyboards/numatreus/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make numatreus: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). \ No newline at end of file +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/om60/readme.md b/keyboards/om60/readme.md index 5d9d096d56..9c8a650f7d 100644 --- a/keyboards/om60/readme.md +++ b/keyboards/om60/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/orange75/readme.md b/keyboards/orange75/readme.md index 9106744062..58823e0ee8 100644 --- a/keyboards/orange75/readme.md +++ b/keyboards/orange75/readme.md @@ -13,4 +13,4 @@ Make example for this keyboard (after setting up your build environment): make orange75: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). \ No newline at end of file +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/org60/readme.md b/keyboards/org60/readme.md index 98a1e0315d..58d3d67fe3 100644 --- a/keyboards/org60/readme.md +++ b/keyboards/org60/readme.md @@ -24,4 +24,4 @@ Taken from [r/mk](https://www.reddit.com/r/MechanicalKeyboards/comments/6xsd5c/m MOSFET that drives the in switch LEDs is not connected to a PWM pin. (It is connected to pin F5). Fix mentioned in reddit post re-routes to pin B5. You will have to change the pin to B5 in `config.h` ## Build -To build the default keymap, simply run `make org60:default`. \ No newline at end of file +To build the default keymap, simply run `make org60:default`. diff --git a/keyboards/orthocode/readme.md b/keyboards/orthocode/readme.md index 4a2dfc01bf..ab62948487 100644 --- a/keyboards/orthocode/readme.md +++ b/keyboards/orthocode/readme.md @@ -14,4 +14,4 @@ Flashing example for this keyboard: make orthocode: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). \ No newline at end of file +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/orthograph/keymaps/default/keymap.json b/keyboards/orthograph/keymaps/default/keymap.json index 128016b742..c5660d3ce7 100644 --- a/keyboards/orthograph/keymaps/default/keymap.json +++ b/keyboards/orthograph/keymaps/default/keymap.json @@ -21,4 +21,4 @@ "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "RM_NEXT","KC_TRNS", "RM_TOGG", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS", "KC_TRNS" ] ] -} \ No newline at end of file +} diff --git a/keyboards/owlab/jelly_evolv/config.h b/keyboards/owlab/jelly_evolv/config.h index 95c5ca6048..e9f29e9771 100644 --- a/keyboards/owlab/jelly_evolv/config.h +++ b/keyboards/owlab/jelly_evolv/config.h @@ -20,4 +20,4 @@ /* RGB Strip*/ # define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 5 # define RGBLIGHT_EFFECT_BREATHE_CENTER 1.0 -# define RGBLIGHT_EFFECT_BREATHE_MAX 100 \ No newline at end of file +# define RGBLIGHT_EFFECT_BREATHE_MAX 100 diff --git a/keyboards/owlab/jelly_evolv/hotswap/625u/keyboard.json b/keyboards/owlab/jelly_evolv/hotswap/625u/keyboard.json index ec25908b60..6e0ad02084 100644 --- a/keyboards/owlab/jelly_evolv/hotswap/625u/keyboard.json +++ b/keyboards/owlab/jelly_evolv/hotswap/625u/keyboard.json @@ -90,4 +90,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/owlab/jelly_evolv/hotswap/625u/keymaps/default/keymap.c b/keyboards/owlab/jelly_evolv/hotswap/625u/keymaps/default/keymap.c index 48dc032a4b..118fe1d73a 100644 --- a/keyboards/owlab/jelly_evolv/hotswap/625u/keymaps/default/keymap.c +++ b/keyboards/owlab/jelly_evolv/hotswap/625u/keymaps/default/keymap.c @@ -34,4 +34,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/owlab/jelly_evolv/hotswap/625u/readme.md b/keyboards/owlab/jelly_evolv/hotswap/625u/readme.md index 9bbd09d2cd..783fb8769a 100644 --- a/keyboards/owlab/jelly_evolv/hotswap/625u/readme.md +++ b/keyboards/owlab/jelly_evolv/hotswap/625u/readme.md @@ -18,4 +18,4 @@ Flashing example for this keyboard: **Bootloader:** Press the button B of the PCB while plugging in the board. -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 +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/owlab/jelly_evolv/hotswap/625u/rules.mk b/keyboards/owlab/jelly_evolv/hotswap/625u/rules.mk index dfd7b8e208..2dab647e95 100644 --- a/keyboards/owlab/jelly_evolv/hotswap/625u/rules.mk +++ b/keyboards/owlab/jelly_evolv/hotswap/625u/rules.mk @@ -2,4 +2,4 @@ MCU_LDSCRIPT = STM32F103x8_0x08006000_bootloader DFU_ARGS = -d 1688:2220 -a 0 -s 0x08006000 DFU_SUFFIX_ARGS = -v 1688 -p 2220 BOOTLOADER_TYPE = stm32duino -OPT_DEFS += -DBOOTLOADER_STM32DUINO \ No newline at end of file +OPT_DEFS += -DBOOTLOADER_STM32DUINO diff --git a/keyboards/owlab/jelly_evolv/hotswap/7u/keyboard.json b/keyboards/owlab/jelly_evolv/hotswap/7u/keyboard.json index dc62266add..35ab2ec1de 100644 --- a/keyboards/owlab/jelly_evolv/hotswap/7u/keyboard.json +++ b/keyboards/owlab/jelly_evolv/hotswap/7u/keyboard.json @@ -89,4 +89,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/owlab/jelly_evolv/hotswap/7u/keymaps/default/keymap.c b/keyboards/owlab/jelly_evolv/hotswap/7u/keymaps/default/keymap.c index 4a0cbc599f..c1a81e1b36 100644 --- a/keyboards/owlab/jelly_evolv/hotswap/7u/keymaps/default/keymap.c +++ b/keyboards/owlab/jelly_evolv/hotswap/7u/keymaps/default/keymap.c @@ -34,4 +34,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/owlab/jelly_evolv/hotswap/7u/readme.md b/keyboards/owlab/jelly_evolv/hotswap/7u/readme.md index 31615a8486..4956ec7fe2 100644 --- a/keyboards/owlab/jelly_evolv/hotswap/7u/readme.md +++ b/keyboards/owlab/jelly_evolv/hotswap/7u/readme.md @@ -18,4 +18,4 @@ Flashing example for this keyboard: **Bootloader:** Press the button B of the PCB while plugging in the board. -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 +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/owlab/jelly_evolv/hotswap/7u/rules.mk b/keyboards/owlab/jelly_evolv/hotswap/7u/rules.mk index dfd7b8e208..2dab647e95 100644 --- a/keyboards/owlab/jelly_evolv/hotswap/7u/rules.mk +++ b/keyboards/owlab/jelly_evolv/hotswap/7u/rules.mk @@ -2,4 +2,4 @@ MCU_LDSCRIPT = STM32F103x8_0x08006000_bootloader DFU_ARGS = -d 1688:2220 -a 0 -s 0x08006000 DFU_SUFFIX_ARGS = -v 1688 -p 2220 BOOTLOADER_TYPE = stm32duino -OPT_DEFS += -DBOOTLOADER_STM32DUINO \ No newline at end of file +OPT_DEFS += -DBOOTLOADER_STM32DUINO diff --git a/keyboards/owlab/jelly_evolv/info.json b/keyboards/owlab/jelly_evolv/info.json index cd67a95a8d..93ac2a4cb3 100644 --- a/keyboards/owlab/jelly_evolv/info.json +++ b/keyboards/owlab/jelly_evolv/info.json @@ -40,4 +40,4 @@ "max_brightness": 100, "saturation_steps": 8 } -} \ No newline at end of file +} diff --git a/keyboards/owlab/jelly_evolv/ld/STM32F103x8_0x08006000_bootloader.ld b/keyboards/owlab/jelly_evolv/ld/STM32F103x8_0x08006000_bootloader.ld index a40e12668a..57c50fd4eb 100644 --- a/keyboards/owlab/jelly_evolv/ld/STM32F103x8_0x08006000_bootloader.ld +++ b/keyboards/owlab/jelly_evolv/ld/STM32F103x8_0x08006000_bootloader.ld @@ -86,4 +86,4 @@ REGION_ALIAS("BSS_RAM", ram0); REGION_ALIAS("HEAP_RAM", ram0); /* Generic rules inclusion.*/ -INCLUDE rules.ld \ No newline at end of file +INCLUDE rules.ld diff --git a/keyboards/owlab/jelly_evolv/solder/keymaps/default/keymap.c b/keyboards/owlab/jelly_evolv/solder/keymaps/default/keymap.c index ff6ab06e9c..59f1d39fc4 100644 --- a/keyboards/owlab/jelly_evolv/solder/keymaps/default/keymap.c +++ b/keyboards/owlab/jelly_evolv/solder/keymaps/default/keymap.c @@ -34,4 +34,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/owlab/jelly_evolv/solder/readme.md b/keyboards/owlab/jelly_evolv/solder/readme.md index 89843dac2d..157d680ce8 100644 --- a/keyboards/owlab/jelly_evolv/solder/readme.md +++ b/keyboards/owlab/jelly_evolv/solder/readme.md @@ -18,4 +18,4 @@ Flashing example for this keyboard: **Bootloader:** Press the button B of the PCB while plugging in the board. -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 +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/owlab/jelly_evolv/solder/rules.mk b/keyboards/owlab/jelly_evolv/solder/rules.mk index dfd7b8e208..2dab647e95 100644 --- a/keyboards/owlab/jelly_evolv/solder/rules.mk +++ b/keyboards/owlab/jelly_evolv/solder/rules.mk @@ -2,4 +2,4 @@ MCU_LDSCRIPT = STM32F103x8_0x08006000_bootloader DFU_ARGS = -d 1688:2220 -a 0 -s 0x08006000 DFU_SUFFIX_ARGS = -v 1688 -p 2220 BOOTLOADER_TYPE = stm32duino -OPT_DEFS += -DBOOTLOADER_STM32DUINO \ No newline at end of file +OPT_DEFS += -DBOOTLOADER_STM32DUINO diff --git a/keyboards/owlab/spring/keymaps/default/keymap.c b/keyboards/owlab/spring/keymaps/default/keymap.c index f3564883e8..63b52c60cd 100644 --- a/keyboards/owlab/spring/keymaps/default/keymap.c +++ b/keyboards/owlab/spring/keymaps/default/keymap.c @@ -35,4 +35,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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/pangorin/tan67/keyboard.json b/keyboards/pangorin/tan67/keyboard.json index 3c593d846b..175cf7cfb6 100644 --- a/keyboards/pangorin/tan67/keyboard.json +++ b/keyboards/pangorin/tan67/keyboard.json @@ -241,4 +241,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/pearlboards/zeuspad/matrix_diagram.md b/keyboards/pearlboards/zeuspad/matrix_diagram.md index 1dde3faef8..e0e79ce56e 100644 --- a/keyboards/pearlboards/zeuspad/matrix_diagram.md +++ b/keyboards/pearlboards/zeuspad/matrix_diagram.md @@ -18,4 +18,4 @@ ┌───────┐ │50 │ 2u P0 └───────┘ -``` \ No newline at end of file +``` diff --git a/keyboards/percent/readme.md b/keyboards/percent/readme.md index 8028edf03c..f5cc8d8150 100644 --- a/keyboards/percent/readme.md +++ b/keyboards/percent/readme.md @@ -3,4 +3,4 @@ [Website](https://percent.studio/) [Facebook](https://www.facebook.com/PercentStudio.CN/) [Instagram](https://www.instagram.com/percent.studio/) -[Taobao](https://shop140162967.world.taobao.com/?spm=a1z09.1.sellercard.15.15ec3606mPki7O) \ No newline at end of file +[Taobao](https://shop140162967.world.taobao.com/?spm=a1z09.1.sellercard.15.15ec3606mPki7O) diff --git a/keyboards/phdesign/phac/keymaps/default/keymap.c b/keyboards/phdesign/phac/keymaps/default/keymap.c index 630cca64a7..d21ebd9ddf 100644 --- a/keyboards/phdesign/phac/keymaps/default/keymap.c +++ b/keyboards/phdesign/phac/keymaps/default/keymap.c @@ -19,4 +19,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_BL] = { ENCODER_CCW_CW(MS_UP, MS_DOWN), ENCODER_CCW_CW(MS_LEFT, MS_RGHT) }, }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/phdesign/phac/keymaps/default/rules.mk b/keyboards/phdesign/phac/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/phdesign/phac/keymaps/default/rules.mk +++ b/keyboards/phdesign/phac/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/phrygian/ph100/keymaps/default/keymap.c b/keyboards/phrygian/ph100/keymaps/default/keymap.c index 75b93783d1..18761c0509 100644 --- a/keyboards/phrygian/ph100/keymaps/default/keymap.c +++ b/keyboards/phrygian/ph100/keymaps/default/keymap.c @@ -24,4 +24,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_APP, KC_LEFT, KC_DOWN, KC_RGHT, KC_P0, KC_PDOT, KC_PENT) -}; \ No newline at end of file +}; diff --git a/keyboards/pimoroni/keybow2040/mcuconf.h b/keyboards/pimoroni/keybow2040/mcuconf.h index 9bfd480c7c..e4864be318 100644 --- a/keyboards/pimoroni/keybow2040/mcuconf.h +++ b/keyboards/pimoroni/keybow2040/mcuconf.h @@ -7,4 +7,4 @@ #define RP_I2C_USE_I2C0 TRUE #undef RP_I2C_USE_I2C1 -#define RP_I2C_USE_I2C1 FALSE \ No newline at end of file +#define RP_I2C_USE_I2C1 FALSE diff --git a/keyboards/pisces/pisces.c b/keyboards/pisces/pisces.c index ca2016280d..45c9227e90 100644 --- a/keyboards/pisces/pisces.c +++ b/keyboards/pisces/pisces.c @@ -24,4 +24,4 @@ const matrix_row_t matrix_mask[MATRIX_ROWS] = { 0b00111111, 0b00111111, 0b01111111 -}; \ No newline at end of file +}; diff --git a/keyboards/planck/rev7/keymaps/default/rules.mk b/keyboards/planck/rev7/keymaps/default/rules.mk index 13fc199bb6..199bad85f3 100644 --- a/keyboards/planck/rev7/keymaps/default/rules.mk +++ b/keyboards/planck/rev7/keymaps/default/rules.mk @@ -1 +1 @@ -DEFERRED_EXEC_ENABLE = yes \ No newline at end of file +DEFERRED_EXEC_ENABLE = yes diff --git a/keyboards/playkbtw/pk64rgb/pk64rgb.c b/keyboards/playkbtw/pk64rgb/pk64rgb.c index e8ac5eb4e2..5f53fd41f7 100644 --- a/keyboards/playkbtw/pk64rgb/pk64rgb.c +++ b/keyboards/playkbtw/pk64rgb/pk64rgb.c @@ -94,4 +94,4 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {0, SW10_CS10, SW11_CS10, SW12_CS10}, {0, SW10_CS15, SW11_CS15, SW12_CS15} }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/playkbtw/pk64rgb/readme.md b/keyboards/playkbtw/pk64rgb/readme.md index c5061bc0cc..102efc29ca 100644 --- a/keyboards/playkbtw/pk64rgb/readme.md +++ b/keyboards/playkbtw/pk64rgb/readme.md @@ -22,4 +22,4 @@ Enter the bootloader in 3 ways: You can get into bootloader by pressing the reset button from the back of PCB. -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 +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/ploopyco/mouse/post_rules.mk b/keyboards/ploopyco/mouse/post_rules.mk index 0d1a00b89e..fab9162dc6 100644 --- a/keyboards/ploopyco/mouse/post_rules.mk +++ b/keyboards/ploopyco/mouse/post_rules.mk @@ -1 +1 @@ -POINTING_DEVICE_DRIVER = pmw3360 \ No newline at end of file +POINTING_DEVICE_DRIVER = pmw3360 diff --git a/keyboards/ploopyco/nano_2/readme.md b/keyboards/ploopyco/nano_2/readme.md index 509a62f9fa..02e46570d3 100644 --- a/keyboards/ploopyco/nano_2/readme.md +++ b/keyboards/ploopyco/nano_2/readme.md @@ -35,4 +35,4 @@ If you want to upload a new firmware file (a ".uf2" file, like "nano-2-awesome-v # Customizing your Ploopy Nano 2 -You can find customziation options [here](../readme.md). \ No newline at end of file +You can find customziation options [here](../readme.md). diff --git a/keyboards/ploopyco/trackball/post_rules.mk b/keyboards/ploopyco/trackball/post_rules.mk index 0d1a00b89e..fab9162dc6 100644 --- a/keyboards/ploopyco/trackball/post_rules.mk +++ b/keyboards/ploopyco/trackball/post_rules.mk @@ -1 +1 @@ -POINTING_DEVICE_DRIVER = pmw3360 \ No newline at end of file +POINTING_DEVICE_DRIVER = pmw3360 diff --git a/keyboards/ploopyco/trackball/rev1_005/readme.md b/keyboards/ploopyco/trackball/rev1_005/readme.md index 980f118a10..d0578942b8 100644 --- a/keyboards/ploopyco/trackball/rev1_005/readme.md +++ b/keyboards/ploopyco/trackball/rev1_005/readme.md @@ -1,3 +1,3 @@ See the [main readme](../readme.md) for more details. -This is for the R1.005-R1.006 version of the Classic. It's easily distinguishable from the R1.007+ versions of the Classic because it has an ATmega32u4 on the board. \ No newline at end of file +This is for the R1.005-R1.006 version of the Classic. It's easily distinguishable from the R1.007+ versions of the Classic because it has an ATmega32u4 on the board. diff --git a/keyboards/ploopyco/trackball_mini/keymaps/default/readme.md b/keyboards/ploopyco/trackball_mini/keymaps/default/readme.md index ebb90d2999..b19c879936 100644 --- a/keyboards/ploopyco/trackball_mini/keymaps/default/readme.md +++ b/keyboards/ploopyco/trackball_mini/keymaps/default/readme.md @@ -1,3 +1,3 @@ The default keymap for the Ploopy Trackball Mini. -Note that kits bought from PloopyCo actually ship with the VIA keymap, not this one. \ No newline at end of file +Note that kits bought from PloopyCo actually ship with the VIA keymap, not this one. diff --git a/keyboards/ploopyco/trackball_thumb/post_rules.mk b/keyboards/ploopyco/trackball_thumb/post_rules.mk index 0d1a00b89e..fab9162dc6 100644 --- a/keyboards/ploopyco/trackball_thumb/post_rules.mk +++ b/keyboards/ploopyco/trackball_thumb/post_rules.mk @@ -1 +1 @@ -POINTING_DEVICE_DRIVER = pmw3360 \ No newline at end of file +POINTING_DEVICE_DRIVER = pmw3360 diff --git a/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md b/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md index 658a71df0a..80402ab05b 100644 --- a/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md +++ b/keyboards/ploopyco/trackball_thumb/rev1_001/readme.md @@ -1,3 +1,3 @@ See the [main readme](../readme.md) for more details. -This is for the R1.001 version of the Thumb. It's easily distinguishable from the R1.002+ versions of the Thumb because it has an ATmega32u4 on the board. \ No newline at end of file +This is for the R1.001 version of the Thumb. It's easily distinguishable from the R1.002+ versions of the Thumb because it has an ATmega32u4 on the board. diff --git a/keyboards/pmk/posey_split/config.h b/keyboards/pmk/posey_split/config.h index f115e5fc2c..b4089fa81e 100644 --- a/keyboards/pmk/posey_split/config.h +++ b/keyboards/pmk/posey_split/config.h @@ -15,4 +15,4 @@ #define SPLIT_CONNECTION_CHECK_TIMEOUT 2000 // RGB Configuration -#define RGBLIGHT_EFFECT_BREATHE_CENTER 2.0 //1.0 to 2.7 \ No newline at end of file +#define RGBLIGHT_EFFECT_BREATHE_CENTER 2.0 //1.0 to 2.7 diff --git a/keyboards/pmk/posey_split/v4/keyboard.json b/keyboards/pmk/posey_split/v4/keyboard.json index d9f165286a..038b7a1842 100644 --- a/keyboards/pmk/posey_split/v4/keyboard.json +++ b/keyboards/pmk/posey_split/v4/keyboard.json @@ -143,4 +143,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/pmk/posey_split/v5/keyboard.json b/keyboards/pmk/posey_split/v5/keyboard.json index cc2c8f2461..9a1d544684 100644 --- a/keyboards/pmk/posey_split/v5/keyboard.json +++ b/keyboards/pmk/posey_split/v5/keyboard.json @@ -143,4 +143,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/preonic/rev3_drop/mcuconf.h b/keyboards/preonic/rev3_drop/mcuconf.h index 32c615b3a2..6a8662748b 100644 --- a/keyboards/preonic/rev3_drop/mcuconf.h +++ b/keyboards/preonic/rev3_drop/mcuconf.h @@ -42,4 +42,4 @@ // enable i2c #undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/primekb/prime_r/keymaps/default/readme.md b/keyboards/primekb/prime_r/keymaps/default/readme.md index be92dce9b1..ba8e62bd72 100644 --- a/keyboards/primekb/prime_r/keymaps/default/readme.md +++ b/keyboards/primekb/prime_r/keymaps/default/readme.md @@ -1,3 +1,3 @@ # The default Prime_R layout, with nothing committed to function layer. -# Extracted from json at https://www.primekb.com/pages/programming \ No newline at end of file +# Extracted from json at https://www.primekb.com/pages/programming diff --git a/keyboards/printedpad/halconf.h b/keyboards/printedpad/halconf.h index 0534f72da2..4c8c7c1375 100644 --- a/keyboards/printedpad/halconf.h +++ b/keyboards/printedpad/halconf.h @@ -5,4 +5,4 @@ #define HAL_USE_I2C TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/printedpad/keyboard.json b/keyboards/printedpad/keyboard.json index 0dca5da74d..4be16e8a1d 100644 --- a/keyboards/printedpad/keyboard.json +++ b/keyboards/printedpad/keyboard.json @@ -40,4 +40,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/program_yoink/info.json b/keyboards/program_yoink/info.json index 36a2befc70..9c8b65c878 100644 --- a/keyboards/program_yoink/info.json +++ b/keyboards/program_yoink/info.json @@ -13,4 +13,4 @@ "resync": true } } -} \ No newline at end of file +} diff --git a/keyboards/projectcain/relic/keymaps/default/rules.mk b/keyboards/projectcain/relic/keymaps/default/rules.mk index dca6713d4f..fd8f01b90a 100644 --- a/keyboards/projectcain/relic/keymaps/default/rules.mk +++ b/keyboards/projectcain/relic/keymaps/default/rules.mk @@ -1,2 +1,2 @@ ENCODER_ENABLE = yes -COMBO_ENABLE = yes \ No newline at end of file +COMBO_ENABLE = yes diff --git a/keyboards/projectcain/vault45/keymaps/default/rules.mk b/keyboards/projectcain/vault45/keymaps/default/rules.mk index ff681299e4..ab1e438182 100644 --- a/keyboards/projectcain/vault45/keymaps/default/rules.mk +++ b/keyboards/projectcain/vault45/keymaps/default/rules.mk @@ -1 +1 @@ -COMBO_ENABLE = yes \ No newline at end of file +COMBO_ENABLE = yes diff --git a/keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c b/keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c index f8700f624b..7e9f9cbaa3 100644 --- a/keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c +++ b/keyboards/projectd/65/projectd_65_ansi/keymaps/default/keymap.c @@ -90,4 +90,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_R, RGB_G, RGB_B, RGB_W, SW_cy, 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/projectkb/signature65/keymaps/default/keymap.c b/keyboards/projectkb/signature65/keymaps/default/keymap.c index 9b071b77af..0ce290b8e8 100644 --- a/keyboards/projectkb/signature65/keymaps/default/keymap.c +++ b/keyboards/projectkb/signature65/keymaps/default/keymap.c @@ -35,4 +35,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/projectkb/signature87/keymaps/default/keymap.c b/keyboards/projectkb/signature87/keymaps/default/keymap.c index c6c7adabaa..30446b1636 100644 --- a/keyboards/projectkb/signature87/keymaps/default/keymap.c +++ b/keyboards/projectkb/signature87/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/projectkb/signature87/readme.md b/keyboards/projectkb/signature87/readme.md index 3f3ca1d63e..74086985a1 100644 --- a/keyboards/projectkb/signature87/readme.md +++ b/keyboards/projectkb/signature87/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make projectkb/signature87: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). \ No newline at end of file +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/prototypist/allison_numpad/keymaps/default/readme.md b/keyboards/prototypist/allison_numpad/keymaps/default/readme.md index b6b98a1815..3579cd491b 100644 --- a/keyboards/prototypist/allison_numpad/keymaps/default/readme.md +++ b/keyboards/prototypist/allison_numpad/keymaps/default/readme.md @@ -2,4 +2,4 @@ ![NUMPAD](https://i.imgur.com/1n2pl5p.png) -![NUMPAD FN1](https://i.imgur.com/1n2pl5p.png) \ No newline at end of file +![NUMPAD FN1](https://i.imgur.com/1n2pl5p.png) diff --git a/keyboards/prototypist/oceanographer/keymaps/default/keymap.c b/keyboards/prototypist/oceanographer/keymaps/default/keymap.c index ceeb224927..b98846f37f 100644 --- a/keyboards/prototypist/oceanographer/keymaps/default/keymap.c +++ b/keyboards/prototypist/oceanographer/keymaps/default/keymap.c @@ -86,4 +86,4 @@ layer_state_t layer_state_set_user(layer_state_t state) { rgblight_set_layer_state(2, layer_state_cmp(state, _FN2)); rgblight_set_layer_state(3, layer_state_cmp(state, _FN3)); return state; -} \ No newline at end of file +} diff --git a/keyboards/prototypist/oceanographer/keymaps/default_625/keymap.c b/keyboards/prototypist/oceanographer/keymaps/default_625/keymap.c index 185ce52c9b..ff1410f5df 100644 --- a/keyboards/prototypist/oceanographer/keymaps/default_625/keymap.c +++ b/keyboards/prototypist/oceanographer/keymaps/default_625/keymap.c @@ -86,4 +86,4 @@ layer_state_t layer_state_set_user(layer_state_t state) { rgblight_set_layer_state(2, layer_state_cmp(state, _FN2)); rgblight_set_layer_state(3, layer_state_cmp(state, _FN3)); return state; -} \ No newline at end of file +} diff --git a/keyboards/prototypist/oceanographer/keymaps/split_225_2/keymap.c b/keyboards/prototypist/oceanographer/keymaps/split_225_2/keymap.c index 0a1d1558dd..6820d2dfff 100644 --- a/keyboards/prototypist/oceanographer/keymaps/split_225_2/keymap.c +++ b/keyboards/prototypist/oceanographer/keymaps/split_225_2/keymap.c @@ -86,4 +86,4 @@ layer_state_t layer_state_set_user(layer_state_t state) { rgblight_set_layer_state(2, layer_state_cmp(state, _FN2)); rgblight_set_layer_state(3, layer_state_cmp(state, _FN3)); return state; -} \ No newline at end of file +} diff --git a/keyboards/prototypist/oceanographer/oceanographer.c b/keyboards/prototypist/oceanographer/oceanographer.c index ad9378b75c..e16fc882f8 100644 --- a/keyboards/prototypist/oceanographer/oceanographer.c +++ b/keyboards/prototypist/oceanographer/oceanographer.c @@ -51,4 +51,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/prototypist/pt80/readme.md b/keyboards/prototypist/pt80/readme.md index a102d9d6db..66c1282db1 100644 --- a/keyboards/prototypist/pt80/readme.md +++ b/keyboards/prototypist/pt80/readme.md @@ -32,4 +32,4 @@ 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 marked `RESET0`. -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/protozoa/event_horizon/keyboard.json b/keyboards/protozoa/event_horizon/keyboard.json index 29c7c94fb9..8cc17b4abc 100644 --- a/keyboards/protozoa/event_horizon/keyboard.json +++ b/keyboards/protozoa/event_horizon/keyboard.json @@ -103,4 +103,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/protozoa/p01/keymaps/default/rules.mk b/keyboards/protozoa/p01/keymaps/default/rules.mk index d0790e6c3f..3beeda7684 100644 --- a/keyboards/protozoa/p01/keymaps/default/rules.mk +++ b/keyboards/protozoa/p01/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/purin/keyboard.json b/keyboards/purin/keyboard.json index 7e06f2ede9..9e9c2a55dc 100644 --- a/keyboards/purin/keyboard.json +++ b/keyboards/purin/keyboard.json @@ -102,4 +102,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/qck75/v1/keyboard.json b/keyboards/qck75/v1/keyboard.json index d97a719a52..878d404098 100644 --- a/keyboards/qck75/v1/keyboard.json +++ b/keyboards/qck75/v1/keyboard.json @@ -126,4 +126,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/qpockets/space_space/rev1/keymaps/big_space/rules.mk b/keyboards/qpockets/space_space/rev1/keymaps/big_space/rules.mk index ff681299e4..ab1e438182 100644 --- a/keyboards/qpockets/space_space/rev1/keymaps/big_space/rules.mk +++ b/keyboards/qpockets/space_space/rev1/keymaps/big_space/rules.mk @@ -1 +1 @@ -COMBO_ENABLE = yes \ No newline at end of file +COMBO_ENABLE = yes diff --git a/keyboards/qpockets/space_space/rev1/keymaps/default/rules.mk b/keyboards/qpockets/space_space/rev1/keymaps/default/rules.mk index ff681299e4..ab1e438182 100644 --- a/keyboards/qpockets/space_space/rev1/keymaps/default/rules.mk +++ b/keyboards/qpockets/space_space/rev1/keymaps/default/rules.mk @@ -1 +1 @@ -COMBO_ENABLE = yes \ No newline at end of file +COMBO_ENABLE = yes diff --git a/keyboards/qpockets/space_space/rev2/keymaps/big_space/rules.mk b/keyboards/qpockets/space_space/rev2/keymaps/big_space/rules.mk index ff681299e4..ab1e438182 100644 --- a/keyboards/qpockets/space_space/rev2/keymaps/big_space/rules.mk +++ b/keyboards/qpockets/space_space/rev2/keymaps/big_space/rules.mk @@ -1 +1 @@ -COMBO_ENABLE = yes \ No newline at end of file +COMBO_ENABLE = yes diff --git a/keyboards/qpockets/space_space/rev2/keymaps/qpockets/rules.mk b/keyboards/qpockets/space_space/rev2/keymaps/qpockets/rules.mk index ff681299e4..ab1e438182 100644 --- a/keyboards/qpockets/space_space/rev2/keymaps/qpockets/rules.mk +++ b/keyboards/qpockets/space_space/rev2/keymaps/qpockets/rules.mk @@ -1 +1 @@ -COMBO_ENABLE = yes \ No newline at end of file +COMBO_ENABLE = yes diff --git a/keyboards/qvex/lynepad2/keymaps/default/keymap.c b/keyboards/qvex/lynepad2/keymaps/default/keymap.c index edb2604390..77575bc367 100644 --- a/keyboards/qvex/lynepad2/keymaps/default/keymap.c +++ b/keyboards/qvex/lynepad2/keymaps/default/keymap.c @@ -139,4 +139,4 @@ layer_state_t layer_state_set_user(layer_state_t state) { void keyboard_post_init_user(void) { rgblight_init(); rgblight_sethue_noeeprom(RGB_HUE_LAYER0); -} \ No newline at end of file +} diff --git a/keyboards/qvex/lynepad2/keymaps/default/rules.mk b/keyboards/qvex/lynepad2/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/qvex/lynepad2/keymaps/default/rules.mk +++ b/keyboards/qvex/lynepad2/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/qvex/lynepad2/matrix.c b/keyboards/qvex/lynepad2/matrix.c index 23b22cdb69..80b6911c46 100644 --- a/keyboards/qvex/lynepad2/matrix.c +++ b/keyboards/qvex/lynepad2/matrix.c @@ -111,4 +111,4 @@ bool matrix_scan_custom(void) { changed |= read_encoder_switches(raw_matrix); return changed; -} \ No newline at end of file +} diff --git a/keyboards/qvex/lynepad2/rules.mk b/keyboards/qvex/lynepad2/rules.mk index c25bdff0cf..30ce5d293b 100644 --- a/keyboards/qvex/lynepad2/rules.mk +++ b/keyboards/qvex/lynepad2/rules.mk @@ -1,2 +1,2 @@ CUSTOM_MATRIX = lite -SRC += matrix.c \ No newline at end of file +SRC += matrix.c diff --git a/keyboards/qwertlekeys/calice/keymaps/default/keymap.c b/keyboards/qwertlekeys/calice/keymaps/default/keymap.c index d9876034de..c636eff5f7 100644 --- a/keyboards/qwertlekeys/calice/keymaps/default/keymap.c +++ b/keyboards/qwertlekeys/calice/keymaps/default/keymap.c @@ -35,4 +35,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/qwertykeys/qk100/ansi/ansi.c b/keyboards/qwertykeys/qk100/ansi/ansi.c index 93af272e00..14358b8c27 100644 --- a/keyboards/qwertykeys/qk100/ansi/ansi.c +++ b/keyboards/qwertykeys/qk100/ansi/ansi.c @@ -140,4 +140,4 @@ bool led_update_kb(led_t led_state) { rgblight_set_layer_state(1, !led_state.num_lock); } return res; -} \ No newline at end of file +} diff --git a/keyboards/qwertykeys/qk100/ansi/halconf.h b/keyboards/qwertykeys/qk100/ansi/halconf.h index 0deaa06aa2..d93551de53 100644 --- a/keyboards/qwertykeys/qk100/ansi/halconf.h +++ b/keyboards/qwertykeys/qk100/ansi/halconf.h @@ -18,4 +18,4 @@ #define HAL_USE_I2C TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/qwertykeys/qk100/ansi/keymaps/default/keymap.c b/keyboards/qwertykeys/qk100/ansi/keymaps/default/keymap.c index ae4a72af15..7ebaeef2dc 100644 --- a/keyboards/qwertykeys/qk100/ansi/keymaps/default/keymap.c +++ b/keyboards/qwertykeys/qk100/ansi/keymaps/default/keymap.c @@ -35,4 +35,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, UG_TOGG, UG_NEXT, UG_PREV, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALD, UG_VALU, 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/qwertykeys/qk100/ansi/mcuconf.h b/keyboards/qwertykeys/qk100/ansi/mcuconf.h index a8228a149f..a7dfd96937 100644 --- a/keyboards/qwertykeys/qk100/ansi/mcuconf.h +++ b/keyboards/qwertykeys/qk100/ansi/mcuconf.h @@ -22,4 +22,4 @@ * I2C driver system settings. */ #undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/qwertykeys/qk100/ansi/readme.md b/keyboards/qwertykeys/qk100/ansi/readme.md index d3360b0420..b197ea7802 100644 --- a/keyboards/qwertykeys/qk100/ansi/readme.md +++ b/keyboards/qwertykeys/qk100/ansi/readme.md @@ -18,4 +18,4 @@ Flashing example for this keyboard: **Bootloader:** Press the button B on PCB while plugging in the board. -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 +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/qwertykeys/qk100/solder/config.h b/keyboards/qwertykeys/qk100/solder/config.h index 6a16c99f05..f95049c1c0 100644 --- a/keyboards/qwertykeys/qk100/solder/config.h +++ b/keyboards/qwertykeys/qk100/solder/config.h @@ -23,4 +23,4 @@ along with this program. If not, see . /*== customize breathing effect ==*/ #define RGBLIGHT_BREATHE_TABLE_SIZE 128 #define RGBLIGHT_EFFECT_BREATHE_CENTER 1.0 -#define RGBLIGHT_EFFECT_BREATHE_MAX 60 \ No newline at end of file +#define RGBLIGHT_EFFECT_BREATHE_MAX 60 diff --git a/keyboards/qwertykeys/qk100/solder/keyboard.json b/keyboards/qwertykeys/qk100/solder/keyboard.json index 64f8945b7f..44f4b879e2 100644 --- a/keyboards/qwertykeys/qk100/solder/keyboard.json +++ b/keyboards/qwertykeys/qk100/solder/keyboard.json @@ -111,4 +111,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/qwertykeys/qk100/solder/keymaps/default/keymap.c b/keyboards/qwertykeys/qk100/solder/keymaps/default/keymap.c index 738f321ded..3469e5000d 100644 --- a/keyboards/qwertykeys/qk100/solder/keymaps/default/keymap.c +++ b/keyboards/qwertykeys/qk100/solder/keymaps/default/keymap.c @@ -35,4 +35,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, UG_TOGG, UG_NEXT, UG_PREV, UG_HUEU, UG_HUED, UG_SATU, UG_SATD, UG_VALD, UG_VALU, 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/qwertykeys/qk100/solder/readme.md b/keyboards/qwertykeys/qk100/solder/readme.md index f660fe0d42..42b93a510b 100644 --- a/keyboards/qwertykeys/qk100/solder/readme.md +++ b/keyboards/qwertykeys/qk100/solder/readme.md @@ -18,4 +18,4 @@ Flashing example for this keyboard: **Bootloader:** Press the button B on PCB while plugging in the board. -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 +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/qwertykeys/qk100/solder/solder.c b/keyboards/qwertykeys/qk100/solder/solder.c index 8a3e46dab7..24ca9fcf8f 100644 --- a/keyboards/qwertykeys/qk100/solder/solder.c +++ b/keyboards/qwertykeys/qk100/solder/solder.c @@ -34,4 +34,4 @@ bool led_update_kb(led_t led_state) { rgblight_set_layer_state(1, !led_state.num_lock); } return res; -} \ No newline at end of file +} diff --git a/keyboards/qwertykeys/qk65/solder/readme.md b/keyboards/qwertykeys/qk65/solder/readme.md index 8987ebc586..52d6a27a9e 100644 --- a/keyboards/qwertykeys/qk65/solder/readme.md +++ b/keyboards/qwertykeys/qk65/solder/readme.md @@ -18,4 +18,4 @@ Flashing example for this keyboard: **Bootloader:** Press the physical reset button on the bottom side of the PCB (labeled SW1) or hold down ESC while plugging in the board. -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 +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/rarepotato8de/3x3macropad/readme.md b/keyboards/rarepotato8de/3x3macropad/readme.md index 60a5caa222..34301f1f75 100644 --- a/keyboards/rarepotato8de/3x3macropad/readme.md +++ b/keyboards/rarepotato8de/3x3macropad/readme.md @@ -25,4 +25,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,1) in the matrix (the top left one below the OLED) and plug in the keyboard * **Physical reset button**: Short the two through hole pins on the back of the PCB (positioned at the rotary encoder) -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/rart/rart75m/keymaps/default/keymap.c b/keyboards/rart/rart75m/keymaps/default/keymap.c index 6c1135a44e..3656b783cc 100644 --- a/keyboards/rart/rart75m/keymaps/default/keymap.c +++ b/keyboards/rart/rart75m/keymaps/default/keymap.c @@ -50,4 +50,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ), -}; \ No newline at end of file +}; diff --git a/keyboards/rart/rartland/keymaps/default/keymap.c b/keyboards/rart/rartland/keymaps/default/keymap.c index 658e695e1b..dcc3cf1bd7 100644 --- a/keyboards/rart/rartland/keymaps/default/keymap.c +++ b/keyboards/rart/rartland/keymaps/default/keymap.c @@ -46,4 +46,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_LGUI, 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/rate/pistachio/rev1/readme.md b/keyboards/rate/pistachio/rev1/readme.md index eae3776935..232d708417 100644 --- a/keyboards/rate/pistachio/rev1/readme.md +++ b/keyboards/rate/pistachio/rev1/readme.md @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): 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). -[Build guide](https://ratelog.net/pistachio-build-guide/) \ No newline at end of file +[Build guide](https://ratelog.net/pistachio-build-guide/) diff --git a/keyboards/rate/pistachio/rev2/readme.md b/keyboards/rate/pistachio/rev2/readme.md index 12d9f6598f..9f7593a2f2 100644 --- a/keyboards/rate/pistachio/rev2/readme.md +++ b/keyboards/rate/pistachio/rev2/readme.md @@ -14,4 +14,4 @@ Make example for this keyboard (after setting up your build environment): 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). -[Build guide](https://ratelog.net/pistachio-build-guide/) \ No newline at end of file +[Build guide](https://ratelog.net/pistachio-build-guide/) diff --git a/keyboards/redox/rev1/proton_c/halconf.h b/keyboards/redox/rev1/proton_c/halconf.h index 0a2498a62f..7d740817a3 100644 --- a/keyboards/redox/rev1/proton_c/halconf.h +++ b/keyboards/redox/rev1/proton_c/halconf.h @@ -5,4 +5,4 @@ #define HAL_USE_SERIAL TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/reviung/reviung46/keyboard.json b/keyboards/reviung/reviung46/keyboard.json index b44aa0dce4..a7c11e605f 100644 --- a/keyboards/reviung/reviung46/keyboard.json +++ b/keyboards/reviung/reviung46/keyboard.json @@ -458,4 +458,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/reviung/reviung61/keymaps/default_rgb/rules.mk b/keyboards/reviung/reviung61/keymaps/default_rgb/rules.mk index 7ad666d1a3..1e3cebb145 100644 --- a/keyboards/reviung/reviung61/keymaps/default_rgb/rules.mk +++ b/keyboards/reviung/reviung61/keymaps/default_rgb/rules.mk @@ -1 +1 @@ -RGBLIGHT_ENABLE = yes \ No newline at end of file +RGBLIGHT_ENABLE = yes diff --git a/keyboards/rgbkb/common/common_oled.c b/keyboards/rgbkb/common/common_oled.c index b6873123b0..48caeea521 100644 --- a/keyboards/rgbkb/common/common_oled.c +++ b/keyboards/rgbkb/common/common_oled.c @@ -99,4 +99,4 @@ void rgb_menu_update(int8_t transaction_id) { void rgb_menu_slave_sync(uint8_t initiator2target_buffer_size, const void* initiator2target_buffer, uint8_t target2initiator_buffer_size, void* target2initiator_buffer) { memcpy(&rgb_menu, initiator2target_buffer, sizeof(kb_menu_status_t)); -} \ No newline at end of file +} diff --git a/keyboards/rgbkb/common/common_oled.h b/keyboards/rgbkb/common/common_oled.h index a99988b2a8..16d3340828 100644 --- a/keyboards/rgbkb/common/common_oled.h +++ b/keyboards/rgbkb/common/common_oled.h @@ -18,4 +18,4 @@ void render_rgb_menu(void); void rgb_menu_selection(void); void rgb_menu_action(bool clockwise); void rgb_menu_update(int8_t transaction_id); -void rgb_menu_slave_sync(uint8_t initiator2target_buffer_size, const void* initiator2target_buffer, uint8_t target2initiator_buffer_size, void* target2initiator_buffer); \ No newline at end of file +void rgb_menu_slave_sync(uint8_t initiator2target_buffer_size, const void* initiator2target_buffer, uint8_t target2initiator_buffer_size, void* target2initiator_buffer); diff --git a/keyboards/rgbkb/sol3/rev1/rev1.h b/keyboards/rgbkb/sol3/rev1/rev1.h index 6f08563e79..03e4f3aa14 100644 --- a/keyboards/rgbkb/sol3/rev1/rev1.h +++ b/keyboards/rgbkb/sol3/rev1/rev1.h @@ -22,4 +22,4 @@ void render_audio_status(void); #ifdef RGB_MATRIX_ENABLE // utility function to cycle active led zones void rgb_matrix_increase_flags(void); -#endif \ No newline at end of file +#endif diff --git a/keyboards/ristretto/readme.md b/keyboards/ristretto/readme.md index d047e70994..05bcf80076 100644 --- a/keyboards/ristretto/readme.md +++ b/keyboards/ristretto/readme.md @@ -15,4 +15,4 @@ Make example for this keyboard (after setting up your build envionment): make ristretto: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). \ No newline at end of file +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/rominronin/katana60/rev1/keymaps/default/readme.md b/keyboards/rominronin/katana60/rev1/keymaps/default/readme.md index a75a385869..5eff19a448 100644 --- a/keyboards/rominronin/katana60/rev1/keymaps/default/readme.md +++ b/keyboards/rominronin/katana60/rev1/keymaps/default/readme.md @@ -4,4 +4,4 @@ This layout takes my own personal layout (in development at the Colemak forum) a The testing was comducted on my Windows gaming PC, though it was not exhaustive, all the many layers and useful navigation shortcuts worked fine. # TODO: references to extend layer and symbol layers -# TODO: more information \ No newline at end of file +# TODO: more information diff --git a/keyboards/rose75/keyboard.json b/keyboards/rose75/keyboard.json index 09d0b7af19..43f01362f5 100644 --- a/keyboards/rose75/keyboard.json +++ b/keyboards/rose75/keyboard.json @@ -127,4 +127,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/rot13labs/h4ckb0ard/keymaps/default/keymap.c b/keyboards/rot13labs/h4ckb0ard/keymaps/default/keymap.c index 45f7117989..95da758683 100755 --- a/keyboards/rot13labs/h4ckb0ard/keymaps/default/keymap.c +++ b/keyboards/rot13labs/h4ckb0ard/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TAB, KC_A, RGB_M_P, KC_D, KC_F, KC_G, KC_H, RM_SATD, RM_SATU, RM_TOGG, KC_ENT, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, RGB_M_B, KC_N, KC_M, KC_RCTL, RM_VALU, DF(0), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, _______, RM_HUED, RM_VALD, RM_HUEU), -}; \ No newline at end of file +}; diff --git a/keyboards/rot13labs/hackboard/readme.md b/keyboards/rot13labs/hackboard/readme.md index c14b742326..da76458698 100644 --- a/keyboards/rot13labs/hackboard/readme.md +++ b/keyboards/rot13labs/hackboard/readme.md @@ -19,4 +19,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to You can enter the bootloader to flash on new firmware in one of two ways: * **Bootmagic**: Hold the ESC key (top left key) and hit reset -* **Boot button**: Hold the boot button on the top of the PCB and hit reset \ No newline at end of file +* **Boot button**: Hold the boot button on the top of the PCB and hit reset diff --git a/keyboards/rot13labs/rotc0n/keyboard.json b/keyboards/rot13labs/rotc0n/keyboard.json index fa5ac19edb..fb17a73a7b 100644 --- a/keyboards/rot13labs/rotc0n/keyboard.json +++ b/keyboards/rot13labs/rotc0n/keyboard.json @@ -33,4 +33,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/rot13labs/veilid_sao/keymaps/default/keymap.c b/keyboards/rot13labs/veilid_sao/keymaps/default/keymap.c index e8afbe3224..4d4489202b 100755 --- a/keyboards/rot13labs/veilid_sao/keymaps/default/keymap.c +++ b/keyboards/rot13labs/veilid_sao/keymaps/default/keymap.c @@ -29,4 +29,4 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_ortho_1x1(QK_USER_1), -}; \ No newline at end of file +}; diff --git a/keyboards/rotor/keymaps/default/rules.mk b/keyboards/rotor/keymaps/default/rules.mk index 910bd64a59..ae71c4baca 100644 --- a/keyboards/rotor/keymaps/default/rules.mk +++ b/keyboards/rotor/keymaps/default/rules.mk @@ -1,2 +1,2 @@ CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no \ No newline at end of file +COMMAND_ENABLE = no diff --git a/keyboards/rotor/keymaps/default_all/rules.mk b/keyboards/rotor/keymaps/default_all/rules.mk index 910bd64a59..ae71c4baca 100644 --- a/keyboards/rotor/keymaps/default_all/rules.mk +++ b/keyboards/rotor/keymaps/default_all/rules.mk @@ -1,2 +1,2 @@ CONSOLE_ENABLE = no # Console for debug -COMMAND_ENABLE = no \ No newline at end of file +COMMAND_ENABLE = no diff --git a/keyboards/runes/vaengr/keymaps/default/readme.md b/keyboards/runes/vaengr/keymaps/default/readme.md index 3a5339cfa8..346962d0c8 100644 --- a/keyboards/runes/vaengr/keymaps/default/readme.md +++ b/keyboards/runes/vaengr/keymaps/default/readme.md @@ -10,4 +10,4 @@ Layer 2: ![Layer 2](https://i.imgur.com/oGo0Iss.png) Layer 3: -![Layer 3](https://i.imgur.com/tOjiGn3.png) \ No newline at end of file +![Layer 3](https://i.imgur.com/tOjiGn3.png) diff --git a/keyboards/ryanskidmore/rskeys100/matrix.c b/keyboards/ryanskidmore/rskeys100/matrix.c index 53ad18ee48..c54e1de021 100644 --- a/keyboards/ryanskidmore/rskeys100/matrix.c +++ b/keyboards/ryanskidmore/rskeys100/matrix.c @@ -105,4 +105,4 @@ static void shift_out_single(uint8_t value) { static inline void shift_pulse(void) { gpio_write_pin_high(SHR_CLOCK); gpio_write_pin_low(SHR_CLOCK); -} \ No newline at end of file +} diff --git a/keyboards/ryanskidmore/rskeys100/readme.md b/keyboards/ryanskidmore/rskeys100/readme.md index 4be465dbde..61da979eee 100644 --- a/keyboards/ryanskidmore/rskeys100/readme.md +++ b/keyboards/ryanskidmore/rskeys100/readme.md @@ -19,4 +19,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader -To enter the bootloader, press the `RESET` button on your daughterboard PCB while it's plugged in. \ No newline at end of file +To enter the bootloader, press the `RESET` button on your daughterboard PCB while it's plugged in. diff --git a/keyboards/salane/ncr80alpsskfl/readme.md b/keyboards/salane/ncr80alpsskfl/readme.md index a8e0c0725a..45922c8a90 100644 --- a/keyboards/salane/ncr80alpsskfl/readme.md +++ b/keyboards/salane/ncr80alpsskfl/readme.md @@ -26,4 +26,4 @@ Enter the bootloader in 3 ways: * **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 +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/salane/starryfrl/readme.md b/keyboards/salane/starryfrl/readme.md index da2920797d..25474185ae 100644 --- a/keyboards/salane/starryfrl/readme.md +++ b/keyboards/salane/starryfrl/readme.md @@ -26,4 +26,4 @@ Enter the bootloader in 3 ways: * **Physical reset button**: Press the key `BOOT` in the back of PCB and plug in keyboard * **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 +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/sawnsprojects/amber80/readme.md b/keyboards/sawnsprojects/amber80/readme.md index 807ba0917f..6d95efd68e 100644 --- a/keyboards/sawnsprojects/amber80/readme.md +++ b/keyboards/sawnsprojects/amber80/readme.md @@ -22,4 +22,4 @@ Enter the bootloader in 3 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 -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 +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/sawnsprojects/amber80/solder/keymaps/default/keymap.c b/keyboards/sawnsprojects/amber80/solder/keymaps/default/keymap.c index 9ab41b57f4..2d46e4879b 100644 --- a/keyboards/sawnsprojects/amber80/solder/keymaps/default/keymap.c +++ b/keyboards/sawnsprojects/amber80/solder/keymaps/default/keymap.c @@ -27,4 +27,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_INT2, 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/sawnsprojects/krush/krush60/readme.md b/keyboards/sawnsprojects/krush/krush60/readme.md index 6890329c35..bd2f674bfb 100644 --- a/keyboards/sawnsprojects/krush/krush60/readme.md +++ b/keyboards/sawnsprojects/krush/krush60/readme.md @@ -22,4 +22,4 @@ Enter the bootloader in 3 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 -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 +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/sawnsprojects/krush/krush65/readme.md b/keyboards/sawnsprojects/krush/krush65/readme.md index cc2efdfcfe..4de8aad749 100644 --- a/keyboards/sawnsprojects/krush/krush65/readme.md +++ b/keyboards/sawnsprojects/krush/krush65/readme.md @@ -22,4 +22,4 @@ Enter the bootloader in 3 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 -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 +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/sawnsprojects/krush/krush65/solder/readme.md b/keyboards/sawnsprojects/krush/krush65/solder/readme.md index 27af715eda..888a21cf15 100644 --- a/keyboards/sawnsprojects/krush/krush65/solder/readme.md +++ b/keyboards/sawnsprojects/krush/krush65/solder/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make sawnsprojects/krush65/solder: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). \ No newline at end of file +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/sawnsprojects/krush/krush65/solder/solder.c b/keyboards/sawnsprojects/krush/krush65/solder/solder.c index db6fec3950..9d69cda97d 100644 --- a/keyboards/sawnsprojects/krush/krush65/solder/solder.c +++ b/keyboards/sawnsprojects/krush/krush65/solder/solder.c @@ -49,4 +49,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } } return true; -} \ No newline at end of file +} diff --git a/keyboards/sawnsprojects/okayu/stm32f072/config.h b/keyboards/sawnsprojects/okayu/stm32f072/config.h index 41bb0d1fdb..4c7f155ae4 100644 --- a/keyboards/sawnsprojects/okayu/stm32f072/config.h +++ b/keyboards/sawnsprojects/okayu/stm32f072/config.h @@ -5,4 +5,4 @@ #define WS2812_SPI_DRIVER SPID1 #define WS2812_SPI_MOSI_PAL_MODE 5 #define WS2812_SPI_SCK_PIN B13 -#define WS2812_SPI_SCK_PAL_MODE 5 \ No newline at end of file +#define WS2812_SPI_SCK_PAL_MODE 5 diff --git a/keyboards/sawnsprojects/okayu/stm32f103/config.h b/keyboards/sawnsprojects/okayu/stm32f103/config.h index 9024616477..0bd43049d7 100644 --- a/keyboards/sawnsprojects/okayu/stm32f103/config.h +++ b/keyboards/sawnsprojects/okayu/stm32f103/config.h @@ -5,4 +5,4 @@ #define WS2812_SPI_DRIVER SPID2 #define WS2812_SPI_MOSI_PAL_MODE 5 #define WS2812_SPI_SCK_PIN B13 -#define WS2812_SPI_SCK_PAL_MODE 5 \ No newline at end of file +#define WS2812_SPI_SCK_PAL_MODE 5 diff --git a/keyboards/sawnsprojects/okayu/stm32f303/config.h b/keyboards/sawnsprojects/okayu/stm32f303/config.h index 41bb0d1fdb..4c7f155ae4 100644 --- a/keyboards/sawnsprojects/okayu/stm32f303/config.h +++ b/keyboards/sawnsprojects/okayu/stm32f303/config.h @@ -5,4 +5,4 @@ #define WS2812_SPI_DRIVER SPID1 #define WS2812_SPI_MOSI_PAL_MODE 5 #define WS2812_SPI_SCK_PIN B13 -#define WS2812_SPI_SCK_PAL_MODE 5 \ No newline at end of file +#define WS2812_SPI_SCK_PAL_MODE 5 diff --git a/keyboards/sawnsprojects/okayu/stm32f303/keyboard.json b/keyboards/sawnsprojects/okayu/stm32f303/keyboard.json index 84661311fd..50a6a6a96f 100644 --- a/keyboards/sawnsprojects/okayu/stm32f303/keyboard.json +++ b/keyboards/sawnsprojects/okayu/stm32f303/keyboard.json @@ -1,4 +1,4 @@ { "processor": "STM32F303", "bootloader": "stm32-dfu" -} \ No newline at end of file +} diff --git a/keyboards/sawnsprojects/plaque80/keymaps/default/keymap.c b/keyboards/sawnsprojects/plaque80/keymaps/default/keymap.c index c3bd1eb819..aa55524810 100644 --- a/keyboards/sawnsprojects/plaque80/keymaps/default/keymap.c +++ b/keyboards/sawnsprojects/plaque80/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LSFT, KC_NO, 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_RALT, KC_RGUI, KC_MENU, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) -}; \ No newline at end of file +}; diff --git a/keyboards/sawnsprojects/plaque80/readme.md b/keyboards/sawnsprojects/plaque80/readme.md index 7dae55ba1a..425b15f42f 100644 --- a/keyboards/sawnsprojects/plaque80/readme.md +++ b/keyboards/sawnsprojects/plaque80/readme.md @@ -22,4 +22,4 @@ Enter the bootloader in 3 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 -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 +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/sawnsprojects/re65/keymaps/default/rules.mk b/keyboards/sawnsprojects/re65/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/sawnsprojects/re65/keymaps/default/rules.mk +++ b/keyboards/sawnsprojects/re65/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/sawnsprojects/vcl65/readme.md b/keyboards/sawnsprojects/vcl65/readme.md index d47c145e79..d8eb66b6aa 100644 --- a/keyboards/sawnsprojects/vcl65/readme.md +++ b/keyboards/sawnsprojects/vcl65/readme.md @@ -22,4 +22,4 @@ Enter the bootloader in 3 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 -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 +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/sawnsprojects/vcl65/solder/keymaps/default/keymap.c b/keyboards/sawnsprojects/vcl65/solder/keymaps/default/keymap.c index 40f1e85051..27f8615443 100644 --- a/keyboards/sawnsprojects/vcl65/solder/keymaps/default/keymap.c +++ b/keyboards/sawnsprojects/vcl65/solder/keymaps/default/keymap.c @@ -35,4 +35,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_VOLD, KC_TRNS ), -}; \ No newline at end of file +}; diff --git a/keyboards/scottokeebs/scotto34/keymaps/default/keymap.c b/keyboards/scottokeebs/scotto34/keymaps/default/keymap.c index a06722184a..45d6434bb7 100644 --- a/keyboards/scottokeebs/scotto34/keymaps/default/keymap.c +++ b/keyboards/scottokeebs/scotto34/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/scottokeebs/scotto69/keymaps/default/keymap.c b/keyboards/scottokeebs/scotto69/keymaps/default/keymap.c index 96ee0e1877..3f13475511 100644 --- a/keyboards/scottokeebs/scotto69/keymaps/default/keymap.c +++ b/keyboards/scottokeebs/scotto69/keymaps/default/keymap.c @@ -55,4 +55,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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/scottokeebs/scottowing/keymaps/default/keymap.c b/keyboards/scottokeebs/scottowing/keymaps/default/keymap.c index 9a1c7daef3..a027db84fa 100644 --- a/keyboards/scottokeebs/scottowing/keymaps/default/keymap.c +++ b/keyboards/scottokeebs/scottowing/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_F11, KC_NO, KC_NO, QK_BOOT, KC_TRNS, KC_NO, KC_NO, KC_NO, KC_NO, KC_F12, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/senselessclay/ck60/readme.md b/keyboards/senselessclay/ck60/readme.md index 32700967da..60396dc082 100644 --- a/keyboards/senselessclay/ck60/readme.md +++ b/keyboards/senselessclay/ck60/readme.md @@ -16,4 +16,4 @@ Flashing example for this keyboard: 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). -If you'd like to reset the board into bootloader mode for flashing using [QMK Toolbox](https://github.com/qmk/qmk_toolbox), simply press the reset button directly above the controller assembly on the bottom side of the PCB. \ No newline at end of file +If you'd like to reset the board into bootloader mode for flashing using [QMK Toolbox](https://github.com/qmk/qmk_toolbox), simply press the reset button directly above the controller assembly on the bottom side of the PCB. diff --git a/keyboards/senselessclay/ck65/readme.md b/keyboards/senselessclay/ck65/readme.md index 653266a59f..b139ddc19a 100644 --- a/keyboards/senselessclay/ck65/readme.md +++ b/keyboards/senselessclay/ck65/readme.md @@ -16,4 +16,4 @@ Flashing example for this keyboard: 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). -If you'd like to reset the board into bootloader mode for flashing using [QMK Toolbox](https://github.com/qmk/qmk_toolbox), simply press the reset button directly above the controller assembly on the bottom side of the PCB. \ No newline at end of file +If you'd like to reset the board into bootloader mode for flashing using [QMK Toolbox](https://github.com/qmk/qmk_toolbox), simply press the reset button directly above the controller assembly on the bottom side of the PCB. diff --git a/keyboards/senselessclay/gos65/keymaps/default/keymap.c b/keyboards/senselessclay/gos65/keymaps/default/keymap.c index 457186fafe..2564f1e5e6 100644 --- a/keyboards/senselessclay/gos65/keymaps/default/keymap.c +++ b/keyboards/senselessclay/gos65/keymaps/default/keymap.c @@ -42,4 +42,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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) -}; \ No newline at end of file +}; diff --git a/keyboards/senselessclay/gos65/readme.md b/keyboards/senselessclay/gos65/readme.md index bae450ee79..193a5c9c9e 100644 --- a/keyboards/senselessclay/gos65/readme.md +++ b/keyboards/senselessclay/gos65/readme.md @@ -15,4 +15,4 @@ Flashing example for this keyboard: 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). -If you'd like to reset the board into bootloader mode for flashing using [QMK Toolbox](https://github.com/qmk/qmk_toolbox), simply press the reset button directly above the controller assembly on the bottom side of the PCB. \ No newline at end of file +If you'd like to reset the board into bootloader mode for flashing using [QMK Toolbox](https://github.com/qmk/qmk_toolbox), simply press the reset button directly above the controller assembly on the bottom side of the PCB. diff --git a/keyboards/senselessclay/had60/keymaps/default/keymap.c b/keyboards/senselessclay/had60/keymaps/default/keymap.c index 9c70873acf..ed443850ec 100644 --- a/keyboards/senselessclay/had60/keymaps/default/keymap.c +++ b/keyboards/senselessclay/had60/keymaps/default/keymap.c @@ -35,4 +35,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_LEFT, KC_RGHT, 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_DOWN, 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/sentraq/s60_x/keymaps/default_rgb/readme.md b/keyboards/sentraq/s60_x/keymaps/default_rgb/readme.md index 69cede566a..1612bff874 100644 --- a/keyboards/sentraq/s60_x/keymaps/default_rgb/readme.md +++ b/keyboards/sentraq/s60_x/keymaps/default_rgb/readme.md @@ -24,4 +24,4 @@ This is a variation of the default keymap with added RGB underglow and in-switch │ │ │UGTOG│UGMOD│UGHUI│UGHUD│UGSAI│UGSAD│ │BLDEC│BLTOG│BLINC│▒▒▒▒▒│ │▒▒▒▒▒│ ├─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┼─────┤ │ │ │ │█████│█████│█████│ │█████│█████│█████│ │ │ │ │█████│ - └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ \ No newline at end of file + └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ diff --git a/keyboards/sergiopoverony/creator_pro/keymaps/default/readme.md b/keyboards/sergiopoverony/creator_pro/keymaps/default/readme.md index f899eb3c13..aa8dc6ab97 100644 --- a/keyboards/sergiopoverony/creator_pro/keymaps/default/readme.md +++ b/keyboards/sergiopoverony/creator_pro/keymaps/default/readme.md @@ -2,4 +2,4 @@ # Default Creator Pro Layout -This is the default layout that comes flashed on every Creator Pro. The right most key (Encoder) is the rotary and the key is binded to layer switching. \ No newline at end of file +This is the default layout that comes flashed on every Creator Pro. The right most key (Encoder) is the rotary and the key is binded to layer switching. diff --git a/keyboards/sf2040/keymaps/default/keymap.c b/keyboards/sf2040/keymaps/default/keymap.c index ca5bcce358..f84f55face 100644 --- a/keyboards/sf2040/keymaps/default/keymap.c +++ b/keyboards/sf2040/keymaps/default/keymap.c @@ -22,4 +22,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_LEFT_CTRL, KC_LEFT_GUI, KC_LEFT_ALT, KC_SPACE, _______, KC_HOME, KC_END, KC_RIGHT_CTRL ) -}; \ No newline at end of file +}; diff --git a/keyboards/sha/config.h b/keyboards/sha/config.h index f936d7b473..e26ab4f695 100644 --- a/keyboards/sha/config.h +++ b/keyboards/sha/config.h @@ -3,4 +3,4 @@ #pragma once -#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB \ No newline at end of file +#define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_RGB diff --git a/keyboards/sha/keyboard.json b/keyboards/sha/keyboard.json index e361334e00..03cf871f89 100644 --- a/keyboards/sha/keyboard.json +++ b/keyboards/sha/keyboard.json @@ -102,4 +102,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/sha/keymaps/default/config.h b/keyboards/sha/keymaps/default/config.h index 12d21f94cc..6f44f13191 100644 --- a/keyboards/sha/keymaps/default/config.h +++ b/keyboards/sha/keymaps/default/config.h @@ -3,4 +3,4 @@ #pragma once -#define RGBLIGHT_LAYERS \ No newline at end of file +#define RGBLIGHT_LAYERS diff --git a/keyboards/sha/keymaps/default/keymap.c b/keyboards/sha/keymaps/default/keymap.c index 533f12fe01..2f0b94cffe 100644 --- a/keyboards/sha/keymaps/default/keymap.c +++ b/keyboards/sha/keymaps/default/keymap.c @@ -87,4 +87,4 @@ layer_state_t default_layer_state_set_user(layer_state_t state) { rgblight_set_layer_state(3, layer_state_cmp(state, _QWERTY)); rgblight_set_layer_state(4, layer_state_cmp(state, _COLEMAK)); return state; -} \ No newline at end of file +} diff --git a/keyboards/sha/keymaps/default/readme.md b/keyboards/sha/keymaps/default/readme.md index 0ff118c21a..3a0bd0eca7 100644 --- a/keyboards/sha/keymaps/default/readme.md +++ b/keyboards/sha/keymaps/default/readme.md @@ -10,4 +10,4 @@ There are two extended layers: When using a Waveshare RP2040-Matrix, the [RGB Light - Lighting Layers](https://docs.qmk.fm/#/feature_rgblight?id=lighting-layers) feature is used to demonstrate how the 5x5 RGB LEDs can indicate keyboard state. The indicators are: * Base layer on the outer LED ring: QWERTY = yellow, Colemak = cyan -* Lock status indicators using the center 3x3 LEDs: Scroll lock = blue, Caps lock = green, Num lock = red \ No newline at end of file +* Lock status indicators using the center 3x3 LEDs: Scroll lock = blue, Caps lock = green, Num lock = red diff --git a/keyboards/shandoncodes/mino_plus/hotswap/hotswap.c b/keyboards/shandoncodes/mino_plus/hotswap/hotswap.c index a5920b2617..d3ed573901 100644 --- a/keyboards/shandoncodes/mino_plus/hotswap/hotswap.c +++ b/keyboards/shandoncodes/mino_plus/hotswap/hotswap.c @@ -5,4 +5,4 @@ void board_init(void) { SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); -} \ No newline at end of file +} diff --git a/keyboards/shandoncodes/mino_plus/hotswap/keymaps/default/keymap.c b/keyboards/shandoncodes/mino_plus/hotswap/keymaps/default/keymap.c index f068c66215..a395fa56d4 100644 --- a/keyboards/shandoncodes/mino_plus/hotswap/keymaps/default/keymap.c +++ b/keyboards/shandoncodes/mino_plus/hotswap/keymaps/default/keymap.c @@ -18,4 +18,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/shandoncodes/mino_plus/hotswap/mcuconf.h b/keyboards/shandoncodes/mino_plus/hotswap/mcuconf.h index 7b8a66123e..c64f5d49ac 100644 --- a/keyboards/shandoncodes/mino_plus/hotswap/mcuconf.h +++ b/keyboards/shandoncodes/mino_plus/hotswap/mcuconf.h @@ -5,4 +5,4 @@ #include_next #undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/shandoncodes/mino_plus/soldered/keymaps/default/keymap.c b/keyboards/shandoncodes/mino_plus/soldered/keymaps/default/keymap.c index 365f31440a..8347a2c40c 100644 --- a/keyboards/shandoncodes/mino_plus/soldered/keymaps/default/keymap.c +++ b/keyboards/shandoncodes/mino_plus/soldered/keymaps/default/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/shandoncodes/mino_plus/soldered/mcuconf.h b/keyboards/shandoncodes/mino_plus/soldered/mcuconf.h index 7968bd26da..40c779e509 100644 --- a/keyboards/shandoncodes/mino_plus/soldered/mcuconf.h +++ b/keyboards/shandoncodes/mino_plus/soldered/mcuconf.h @@ -5,4 +5,4 @@ #include_next #undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/shandoncodes/mino_plus/soldered/soldered.c b/keyboards/shandoncodes/mino_plus/soldered/soldered.c index 6dd113ebfa..ed3d3f8ca3 100644 --- a/keyboards/shandoncodes/mino_plus/soldered/soldered.c +++ b/keyboards/shandoncodes/mino_plus/soldered/soldered.c @@ -5,4 +5,4 @@ void board_init(void) { SYSCFG->CFGR1 |= SYSCFG_CFGR1_I2C1_DMA_RMP; SYSCFG->CFGR1 &= ~(SYSCFG_CFGR1_SPI2_DMA_RMP); -} \ No newline at end of file +} diff --git a/keyboards/shandoncodes/riot_pad/halconf.h b/keyboards/shandoncodes/riot_pad/halconf.h index 555a609029..8be896f683 100644 --- a/keyboards/shandoncodes/riot_pad/halconf.h +++ b/keyboards/shandoncodes/riot_pad/halconf.h @@ -4,4 +4,4 @@ #define HAL_USE_SPI TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/shandoncodes/riot_pad/mcuconf.h b/keyboards/shandoncodes/riot_pad/mcuconf.h index 7c3eec4802..23b5ed9886 100644 --- a/keyboards/shandoncodes/riot_pad/mcuconf.h +++ b/keyboards/shandoncodes/riot_pad/mcuconf.h @@ -5,4 +5,4 @@ #include_next #undef STM32_SPI_USE_SPI1 -#define STM32_SPI_USE_SPI1 TRUE \ No newline at end of file +#define STM32_SPI_USE_SPI1 TRUE diff --git a/keyboards/shiro/readme.md b/keyboards/shiro/readme.md index 7c4c024a6b..7d6f140b16 100644 --- a/keyboards/shiro/readme.md +++ b/keyboards/shiro/readme.md @@ -24,4 +24,4 @@ Make for this keyboard build check keymap (after setting up your build environme 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). -[Build guide - Japanese](https://github.com/ShinoharaTa/keyboards/blob/master/Shiro/manual/build_guide_ja.md) \ No newline at end of file +[Build guide - Japanese](https://github.com/ShinoharaTa/keyboards/blob/master/Shiro/manual/build_guide_ja.md) diff --git a/keyboards/shk9/keymaps/default/keymap.c b/keyboards/shk9/keymaps/default/keymap.c index cdff8a74be..b28a557587 100644 --- a/keyboards/shk9/keymaps/default/keymap.c +++ b/keyboards/shk9/keymaps/default/keymap.c @@ -21,4 +21,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_4, KC_5, KC_6, KC_7, KC_8, KC_9 ) -}; \ No newline at end of file +}; diff --git a/keyboards/shk9/readme.md b/keyboards/shk9/readme.md index 1fab42a1ac..e7ed85c9a8 100644 --- a/keyboards/shk9/readme.md +++ b/keyboards/shk9/readme.md @@ -20,4 +20,4 @@ Flashing example for this keyboard: To reset the board into bootloader mode, remove the pcb from the case buy removing keycaps, and unscrewing the 3 screws. Then (while plugged in) press the switch on the underside of the PCB for a few seconds. The board is now in bootloader mode. -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 +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/shorty/readme.md b/keyboards/shorty/readme.md index 23f023b92c..cb33d22038 100644 --- a/keyboards/shorty/readme.md +++ b/keyboards/shorty/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/sixkeyboard/sixkeyboard.c b/keyboards/sixkeyboard/sixkeyboard.c index 5a5c818d13..d50a7fb19c 100644 --- a/keyboards/sixkeyboard/sixkeyboard.c +++ b/keyboards/sixkeyboard/sixkeyboard.c @@ -26,4 +26,4 @@ void matrix_init_kb(void) { gpio_write_pin_low(D3); matrix_init_user(); -}; \ No newline at end of file +}; diff --git a/keyboards/skeletonkbd/frost68/keyboard.json b/keyboards/skeletonkbd/frost68/keyboard.json index 9d1173c860..79824c8c27 100644 --- a/keyboards/skeletonkbd/frost68/keyboard.json +++ b/keyboards/skeletonkbd/frost68/keyboard.json @@ -230,4 +230,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/skeletonkbd/frost68/keymaps/default/keymap.c b/keyboards/skeletonkbd/frost68/keymaps/default/keymap.c index be7c414f8a..26fa60c2c1 100644 --- a/keyboards/skeletonkbd/frost68/keymaps/default/keymap.c +++ b/keyboards/skeletonkbd/frost68/keymaps/default/keymap.c @@ -26,4 +26,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGDN, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/skeletonkbd/skeletonnumpad/keymaps/default/readme.md b/keyboards/skeletonkbd/skeletonnumpad/keymaps/default/readme.md index 4a4ed5e7e9..8ebc93b1f8 100644 --- a/keyboards/skeletonkbd/skeletonnumpad/keymaps/default/readme.md +++ b/keyboards/skeletonkbd/skeletonnumpad/keymaps/default/readme.md @@ -1,3 +1,3 @@ ![SkeletonNumPad Layout Image](https://i.imgur.com/oHqihGI.png) -# The default keymap for skeletonnumpad \ No newline at end of file +# The default keymap for skeletonnumpad diff --git a/keyboards/skippys_custom_pcs/rooboard65/keymaps/default/keymap.c b/keyboards/skippys_custom_pcs/rooboard65/keymaps/default/keymap.c index 3b77e6f3d3..8548cf99e1 100644 --- a/keyboards/skippys_custom_pcs/rooboard65/keymaps/default/keymap.c +++ b/keyboards/skippys_custom_pcs/rooboard65/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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/skippys_custom_pcs/rooboard65/readme.md b/keyboards/skippys_custom_pcs/rooboard65/readme.md index 40a23ec12a..1fa8944bb0 100644 --- a/keyboards/skippys_custom_pcs/rooboard65/readme.md +++ b/keyboards/skippys_custom_pcs/rooboard65/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/slothie60/readme.md b/keyboards/slothie60/readme.md index d29aa45bd1..cb886bd33b 100644 --- a/keyboards/slothie60/readme.md +++ b/keyboards/slothie60/readme.md @@ -23,4 +23,4 @@ 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 -* **Keycode in layout**: Press FN + Esc \ No newline at end of file +* **Keycode in layout**: Press FN + Esc diff --git a/keyboards/smart68/keyboard.json b/keyboards/smart68/keyboard.json index f97c347ed5..4de6137526 100644 --- a/keyboards/smart68/keyboard.json +++ b/keyboards/smart68/keyboard.json @@ -325,4 +325,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/smithrune/iron165r2/f072/config.h b/keyboards/smithrune/iron165r2/f072/config.h index e53468c2a7..0417a12a0b 100644 --- a/keyboards/smithrune/iron165r2/f072/config.h +++ b/keyboards/smithrune/iron165r2/f072/config.h @@ -19,4 +19,4 @@ along with this program. If not, see . #define BACKLIGHT_PWM_DRIVER PWMD3 #define BACKLIGHT_PWM_CHANNEL 1 -#define BACKLIGHT_PAL_MODE 1 \ No newline at end of file +#define BACKLIGHT_PAL_MODE 1 diff --git a/keyboards/spaceman/2_milk/keymaps/emoji/config.h b/keyboards/spaceman/2_milk/keymaps/emoji/config.h index a564c44a29..96f5c8aa26 100644 --- a/keyboards/spaceman/2_milk/keymaps/emoji/config.h +++ b/keyboards/spaceman/2_milk/keymaps/emoji/config.h @@ -1,2 +1,2 @@ #define UNICODE_SELECTED_MODES UNICODE_MODE_LINUX, UNICODE_MODE_MACOS, UNICODE_MODE_WINDOWS, UNICODE_MODE_WINCOMPOSE -#define TAPPING_TERM 300 \ No newline at end of file +#define TAPPING_TERM 300 diff --git a/keyboards/spaceman/2_milk/keymaps/emoji/readme.md b/keyboards/spaceman/2_milk/keymaps/emoji/readme.md index 43b7dc4257..ca7faaf170 100644 --- a/keyboards/spaceman/2_milk/keymaps/emoji/readme.md +++ b/keyboards/spaceman/2_milk/keymaps/emoji/readme.md @@ -36,4 +36,4 @@ multiples times will produce different emojis. - 2 Taps: `(ノಠ痊ಠ)ノ彡┻━┻` - 3 Taps: `╭∩╮(-_-)╭∩╮` - 4 Taps: `(づ ̄ ³ ̄)づ` -- 5 Taps: `(︺︹︺)` \ No newline at end of file +- 5 Taps: `(︺︹︺)` diff --git a/keyboards/spaceman/2_milk/keymaps/emoji/rules.mk b/keyboards/spaceman/2_milk/keymaps/emoji/rules.mk index 7a64eb9023..7ff594a2ae 100644 --- a/keyboards/spaceman/2_milk/keymaps/emoji/rules.mk +++ b/keyboards/spaceman/2_milk/keymaps/emoji/rules.mk @@ -1,2 +1,2 @@ UNICODE_ENABLE = yes # Unicode -TAP_DANCE_ENABLE = yes # Tap Dance \ No newline at end of file +TAP_DANCE_ENABLE = yes # Tap Dance diff --git a/keyboards/split67/readme.md b/keyboards/split67/readme.md index e42fa9f9ff..5db1f48338 100644 --- a/keyboards/split67/readme.md +++ b/keyboards/split67/readme.md @@ -23,4 +23,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/splitkb/aurora/helix/config.h b/keyboards/splitkb/aurora/helix/config.h index 0212d8e9af..872724ceb3 100644 --- a/keyboards/splitkb/aurora/helix/config.h +++ b/keyboards/splitkb/aurora/helix/config.h @@ -18,4 +18,4 @@ #ifdef OLED_ENABLE # define OLED_FONT_H "keyboards/splitkb/aurora/helix/glcdfont.c" -#endif \ No newline at end of file +#endif diff --git a/keyboards/splitkb/aurora/helix/info.json b/keyboards/splitkb/aurora/helix/info.json index 5729b00207..4782d0da8f 100644 --- a/keyboards/splitkb/aurora/helix/info.json +++ b/keyboards/splitkb/aurora/helix/info.json @@ -13,4 +13,4 @@ "device_version": "1.0.0", "vid": "0x8D1D" } -} \ No newline at end of file +} diff --git a/keyboards/splitkb/aurora/helix/keymaps/debug/config.h b/keyboards/splitkb/aurora/helix/keymaps/debug/config.h index a15def3fb9..9c0c9483a9 100644 --- a/keyboards/splitkb/aurora/helix/keymaps/debug/config.h +++ b/keyboards/splitkb/aurora/helix/keymaps/debug/config.h @@ -16,4 +16,4 @@ #pragma once -#define RGBLIGHT_EFFECT_BREATHING \ No newline at end of file +#define RGBLIGHT_EFFECT_BREATHING diff --git a/keyboards/splitkb/aurora/helix/keymaps/debug/keymap.c b/keyboards/splitkb/aurora/helix/keymaps/debug/keymap.c index 2c99ef9429..497374d057 100644 --- a/keyboards/splitkb/aurora/helix/keymaps/debug/keymap.c +++ b/keyboards/splitkb/aurora/helix/keymaps/debug/keymap.c @@ -65,4 +65,4 @@ bool oled_task_user(void) { oled_write_P(PSTR("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789!@#$%^&*()[]{}-=_+?"), false); return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/splitkb/aurora/helix/keymaps/debug/readme.md b/keyboards/splitkb/aurora/helix/keymaps/debug/readme.md index 827235e447..3b6fbdaf1b 100644 --- a/keyboards/splitkb/aurora/helix/keymaps/debug/readme.md +++ b/keyboards/splitkb/aurora/helix/keymaps/debug/readme.md @@ -21,4 +21,4 @@ Both underglow and per-key RGB should be fading between red and off. ## OLEDs -Both the primary and secondary side should be filled with characters. \ No newline at end of file +Both the primary and secondary side should be filled with characters. diff --git a/keyboards/splitkb/aurora/helix/keymaps/debug/rules.mk b/keyboards/splitkb/aurora/helix/keymaps/debug/rules.mk index 9c9df9b126..e1b414f5c1 100644 --- a/keyboards/splitkb/aurora/helix/keymaps/debug/rules.mk +++ b/keyboards/splitkb/aurora/helix/keymaps/debug/rules.mk @@ -5,4 +5,4 @@ # RGB Matrix is enabled at the revision level, # while we use the regular RGB underglow for testing RGB_MATRIX_ENABLE = no -RGBLIGHT_ENABLE = yes \ No newline at end of file +RGBLIGHT_ENABLE = yes diff --git a/keyboards/splitkb/aurora/helix/keymaps/default/config.h b/keyboards/splitkb/aurora/helix/keymaps/default/config.h index a6863a01e8..6f1dc5fde4 100644 --- a/keyboards/splitkb/aurora/helix/keymaps/default/config.h +++ b/keyboards/splitkb/aurora/helix/keymaps/default/config.h @@ -21,4 +21,4 @@ #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_RAINBOW_BEACON -#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT \ No newline at end of file +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT diff --git a/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json b/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json index 5411d34941..cfeea8726d 100644 --- a/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json +++ b/keyboards/splitkb/aurora/helix/keymaps/default/keymap.json @@ -49,4 +49,4 @@ ], "layout": "LAYOUT", "version": 1 -} \ No newline at end of file +} diff --git a/keyboards/splitkb/aurora/helix/keymaps/default/readme.md b/keyboards/splitkb/aurora/helix/keymaps/default/readme.md index 2f0aa63ca7..4e3710e67c 100644 --- a/keyboards/splitkb/aurora/helix/keymaps/default/readme.md +++ b/keyboards/splitkb/aurora/helix/keymaps/default/readme.md @@ -85,4 +85,4 @@ qmk json2c -o keymap.c keymap.json ``` You can add custom C code to the newly generated `keymap.c` file. Do note that you have to use **either** a C file **or** a JSON file - you cannot do both! -**If a JSON file is present, the C file is ignored.** \ No newline at end of file +**If a JSON file is present, the C file is ignored.** diff --git a/keyboards/splitkb/aurora/helix/readme.md b/keyboards/splitkb/aurora/helix/readme.md index fc7727f145..19c5cdf38c 100644 --- a/keyboards/splitkb/aurora/helix/readme.md +++ b/keyboards/splitkb/aurora/helix/readme.md @@ -45,4 +45,4 @@ The Aurora series were designed as a homage to open source keyboard kits that ha With the Aurora series, we aim to make these kits available to the community in a way that both honors the original, while also offering the best possible feature set and a consistent, well-documented build experience. -For each kit sold, we give back to the community by donating €1 across [the firmware projects we support](https://opencollective.com/splitkb). This way we support open source projects and benefit everyone using keyboards, whether they use our kits or their own. \ No newline at end of file +For each kit sold, we give back to the community by donating €1 across [the firmware projects we support](https://opencollective.com/splitkb). This way we support open source projects and benefit everyone using keyboards, whether they use our kits or their own. diff --git a/keyboards/splitkb/aurora/helix/rev1/keyboard.json b/keyboards/splitkb/aurora/helix/rev1/keyboard.json index 0c3569f26c..5921ec4af9 100644 --- a/keyboards/splitkb/aurora/helix/rev1/keyboard.json +++ b/keyboards/splitkb/aurora/helix/rev1/keyboard.json @@ -207,4 +207,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/splitkb/aurora/lily58/keymaps/default/readme.md b/keyboards/splitkb/aurora/lily58/keymaps/default/readme.md index 05cf701699..4dfd1a40d0 100644 --- a/keyboards/splitkb/aurora/lily58/keymaps/default/readme.md +++ b/keyboards/splitkb/aurora/lily58/keymaps/default/readme.md @@ -85,4 +85,4 @@ qmk json2c -o keymap.c keymap.json ``` You can add custom C code to the newly generated `keymap.c` file. Do note that you have to use **either** a C file **or** a JSON file - you cannot do both! -**If a JSON file is present, the C file is ignored.** \ No newline at end of file +**If a JSON file is present, the C file is ignored.** diff --git a/keyboards/splitkb/aurora/sofle_v2/config.h b/keyboards/splitkb/aurora/sofle_v2/config.h index 7b00c71645..b360db6996 100644 --- a/keyboards/splitkb/aurora/sofle_v2/config.h +++ b/keyboards/splitkb/aurora/sofle_v2/config.h @@ -18,4 +18,4 @@ #ifdef OLED_ENABLE # define OLED_FONT_H "keyboards/splitkb/aurora/sofle_v2/glcdfont.c" -#endif \ No newline at end of file +#endif diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/config.h b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/config.h index a15def3fb9..9c0c9483a9 100644 --- a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/config.h +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/config.h @@ -16,4 +16,4 @@ #pragma once -#define RGBLIGHT_EFFECT_BREATHING \ No newline at end of file +#define RGBLIGHT_EFFECT_BREATHING diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/keymap.c b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/keymap.c index b9383db325..4ff61149c2 100644 --- a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/keymap.c +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/keymap.c @@ -66,4 +66,4 @@ bool oled_task_user(void) { oled_write_P(PSTR("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ123456789!@#$%^&*()[]{}-=_+?"), false); return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/readme.md b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/readme.md index c429b0246d..8052cbaff2 100644 --- a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/readme.md +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/readme.md @@ -21,4 +21,4 @@ Both underglow and per-key RGB should be fading between red and off. ## OLEDs -Both the primary and secondary side should be filled with characters. \ No newline at end of file +Both the primary and secondary side should be filled with characters. diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/rules.mk b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/rules.mk index 9c9df9b126..e1b414f5c1 100644 --- a/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/rules.mk +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/debug/rules.mk @@ -5,4 +5,4 @@ # RGB Matrix is enabled at the revision level, # while we use the regular RGB underglow for testing RGB_MATRIX_ENABLE = no -RGBLIGHT_ENABLE = yes \ No newline at end of file +RGBLIGHT_ENABLE = yes diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/default/config.h b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/config.h index 75d233f42e..89729ded58 100644 --- a/keyboards/splitkb/aurora/sofle_v2/keymaps/default/config.h +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/config.h @@ -21,4 +21,4 @@ #define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_RAINBOW_BEACON -#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT \ No newline at end of file +#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json index 19146dbde1..2d528da2f2 100644 --- a/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/keymap.json @@ -49,4 +49,4 @@ "sleep": true } } -} \ No newline at end of file +} diff --git a/keyboards/splitkb/aurora/sofle_v2/keymaps/default/readme.md b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/readme.md index 6ff79a4f99..86ef604b54 100644 --- a/keyboards/splitkb/aurora/sofle_v2/keymaps/default/readme.md +++ b/keyboards/splitkb/aurora/sofle_v2/keymaps/default/readme.md @@ -85,4 +85,4 @@ qmk json2c -o keymap.c keymap.json ``` You can add custom C code to the newly generated `keymap.c` file. Do note that you have to use **either** a C file **or** a JSON file - you cannot do both! -**If a JSON file is present, the C file is ignored.** \ No newline at end of file +**If a JSON file is present, the C file is ignored.** diff --git a/keyboards/splitkb/aurora/sofle_v2/readme.md b/keyboards/splitkb/aurora/sofle_v2/readme.md index 13f1d84bbb..4344babc6b 100644 --- a/keyboards/splitkb/aurora/sofle_v2/readme.md +++ b/keyboards/splitkb/aurora/sofle_v2/readme.md @@ -45,4 +45,4 @@ The Aurora series were designed as a homage to open source keyboard kits that ha With the Aurora series, we aim to make these kits available to the community in a way that both honors the original, while also offering the best possible feature set and a consistent, well-documented build experience. -For each kit sold, we give back to the community by donating €1 across [the firmware projects we support](https://opencollective.com/splitkb). This way we support open source projects and benefit everyone using keyboards, whether they use our kits or their own. \ No newline at end of file +For each kit sold, we give back to the community by donating €1 across [the firmware projects we support](https://opencollective.com/splitkb). This way we support open source projects and benefit everyone using keyboards, whether they use our kits or their own. diff --git a/keyboards/splitkb/aurora/sweep/keymaps/default/config.h b/keyboards/splitkb/aurora/sweep/keymaps/default/config.h index 4605cb782a..5307f98d35 100644 --- a/keyboards/splitkb/aurora/sweep/keymaps/default/config.h +++ b/keyboards/splitkb/aurora/sweep/keymaps/default/config.h @@ -31,4 +31,4 @@ # define MOUSEKEY_WHEEL_INTERVAL 50 // The default is 40 # define MOUSEKEY_WHEEL_TIME_TO_MAX 100 -#endif \ No newline at end of file +#endif diff --git a/keyboards/splitkb/elora/info.json b/keyboards/splitkb/elora/info.json index 2ed11bfd19..02c9c49c02 100644 --- a/keyboards/splitkb/elora/info.json +++ b/keyboards/splitkb/elora/info.json @@ -169,4 +169,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/splitkb/elora/keymaps/debug/config.h b/keyboards/splitkb/elora/keymaps/debug/config.h index 0024fe4dfe..f2d79afe0e 100644 --- a/keyboards/splitkb/elora/keymaps/debug/config.h +++ b/keyboards/splitkb/elora/keymaps/debug/config.h @@ -6,4 +6,4 @@ // Myriad boilerplate #define MYRIAD_ENABLE -#define RGBLIGHT_EFFECT_BREATHING \ No newline at end of file +#define RGBLIGHT_EFFECT_BREATHING diff --git a/keyboards/splitkb/elora/keymaps/debug/rules.mk b/keyboards/splitkb/elora/keymaps/debug/rules.mk index 6c52b64847..b5bd51b327 100644 --- a/keyboards/splitkb/elora/keymaps/debug/rules.mk +++ b/keyboards/splitkb/elora/keymaps/debug/rules.mk @@ -1,2 +1,2 @@ RGB_MATRIX_ENABLE = no -RGBLIGHT_ENABLE = yes \ No newline at end of file +RGBLIGHT_ENABLE = yes diff --git a/keyboards/splitkb/elora/keymaps/default/config.h b/keyboards/splitkb/elora/keymaps/default/config.h index e35c193957..fe536aa601 100644 --- a/keyboards/splitkb/elora/keymaps/default/config.h +++ b/keyboards/splitkb/elora/keymaps/default/config.h @@ -4,4 +4,4 @@ #pragma once // Myriad boilerplate -#define MYRIAD_ENABLE \ No newline at end of file +#define MYRIAD_ENABLE diff --git a/keyboards/splitkb/elora/keymaps/default/readme.md b/keyboards/splitkb/elora/keymaps/default/readme.md index 7e95db3938..f0ed43858a 100644 --- a/keyboards/splitkb/elora/keymaps/default/readme.md +++ b/keyboards/splitkb/elora/keymaps/default/readme.md @@ -47,4 +47,4 @@ The underglow LEDs should default red. ## Going further… This default keymap can be used as is, unchanged, as a daily driver for your Elora 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. \ No newline at end of file +Check out the #keymap-ideas channel on the official splitkb Discord server for inspiration. diff --git a/keyboards/splitkb/elora/rev1/matrix.c b/keyboards/splitkb/elora/rev1/matrix.c index 625eafcd85..a5df47c3c7 100644 --- a/keyboards/splitkb/elora/rev1/matrix.c +++ b/keyboards/splitkb/elora/rev1/matrix.c @@ -54,4 +54,4 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { #else return matrix_has_changed; #endif -} \ No newline at end of file +} diff --git a/keyboards/splitkb/elora/rev1/myriad.c b/keyboards/splitkb/elora/rev1/myriad.c index 0263821b81..eb798b19b1 100644 --- a/keyboards/splitkb/elora/rev1/myriad.c +++ b/keyboards/splitkb/elora/rev1/myriad.c @@ -338,4 +338,4 @@ bool pointing_device_driver_init(void) { gpio_set_pin_input(MYRIAD_ADC1); // Y gpio_set_pin_input(MYRIAD_ADC2); // X return true; -} \ No newline at end of file +} diff --git a/keyboards/splitkb/elora/rev1/rules.mk b/keyboards/splitkb/elora/rev1/rules.mk index 643fdc9a1b..4a43aca87f 100644 --- a/keyboards/splitkb/elora/rev1/rules.mk +++ b/keyboards/splitkb/elora/rev1/rules.mk @@ -4,4 +4,4 @@ CUSTOM_MATRIX = lite # Myriad boilerplate SRC += myriad.c matrix.c ANALOG_DRIVER_REQUIRED = yes -POINTING_DEVICE_DRIVER = custom \ No newline at end of file +POINTING_DEVICE_DRIVER = custom diff --git a/keyboards/splitkb/halcyon/elora/readme.md b/keyboards/splitkb/halcyon/elora/readme.md index 9970d31f43..7d3692ce45 100644 --- a/keyboards/splitkb/halcyon/elora/readme.md +++ b/keyboards/splitkb/halcyon/elora/readme.md @@ -28,4 +28,4 @@ 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. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c b/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c index 78fd8d4fab..1205300d6f 100755 --- a/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c +++ b/keyboards/splitkb/halcyon/kyria/keymaps/default/keymap.c @@ -203,4 +203,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ // ), // -}; \ No newline at end of file +}; diff --git a/keyboards/splitkb/halcyon/kyria/rev4/config.h b/keyboards/splitkb/halcyon/kyria/rev4/config.h index c09744f923..d223ff2f28 100755 --- a/keyboards/splitkb/halcyon/kyria/rev4/config.h +++ b/keyboards/splitkb/halcyon/kyria/rev4/config.h @@ -29,4 +29,4 @@ #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 +#define SPI_MISO_PIN GP12 diff --git a/keyboards/splitkb/halcyon/kyria/rev4/halconf.h b/keyboards/splitkb/halcyon/kyria/rev4/halconf.h index 6d2db1bbd2..95e6fcfdea 100644 --- a/keyboards/splitkb/halcyon/kyria/rev4/halconf.h +++ b/keyboards/splitkb/halcyon/kyria/rev4/halconf.h @@ -8,4 +8,4 @@ #define HAL_USE_I2C TRUE #define HAL_USE_SPI TRUE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h b/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h index 6792b923f1..4b1b3eae30 100644 --- a/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h +++ b/keyboards/splitkb/halcyon/kyria/rev4/mcuconf.h @@ -11,4 +11,4 @@ #define RP_I2C_USE_I2C0 TRUE #undef RP_SPI_USE_SPI1 -#define RP_SPI_USE_SPI1 TRUE \ No newline at end of file +#define RP_SPI_USE_SPI1 TRUE diff --git a/keyboards/studiokestra/fairholme/keyboard.json b/keyboards/studiokestra/fairholme/keyboard.json index 413218e8bd..7c1b2032a8 100644 --- a/keyboards/studiokestra/fairholme/keyboard.json +++ b/keyboards/studiokestra/fairholme/keyboard.json @@ -996,4 +996,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/studiokestra/nascent/readme.md b/keyboards/studiokestra/nascent/readme.md index 09e0aaa7f0..ef1829cae8 100644 --- a/keyboards/studiokestra/nascent/readme.md +++ b/keyboards/studiokestra/nascent/readme.md @@ -22,4 +22,4 @@ There are 3 ways to put the board in bootloader mode: - Hold the top-left key (typically `Esc`) while plugging in the USB cable, OR - While the PCB is plugged into the PC, press the physical `RESET` button on the back of the board, OR -- With the default layout, toggle Layer 1 and press the `R` key. \ No newline at end of file +- With the default layout, toggle Layer 1 and press the `R` key. diff --git a/keyboards/studiokestra/nue/keymaps/default/keymap.c b/keyboards/studiokestra/nue/keymaps/default/keymap.c index cfd24b93bb..72458bfa81 100644 --- a/keyboards/studiokestra/nue/keymaps/default/keymap.c +++ b/keyboards/studiokestra/nue/keymaps/default/keymap.c @@ -38,4 +38,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -}; \ No newline at end of file +}; diff --git a/keyboards/subrezon/lancer/keyboard.json b/keyboards/subrezon/lancer/keyboard.json index 571cf4c8ad..acf8d3c12c 100644 --- a/keyboards/subrezon/lancer/keyboard.json +++ b/keyboards/subrezon/lancer/keyboard.json @@ -60,4 +60,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/subrezon/lancer/keymaps/default/keymap.json b/keyboards/subrezon/lancer/keymaps/default/keymap.json index b25e81d538..5cddea3fc8 100644 --- a/keyboards/subrezon/lancer/keymaps/default/keymap.json +++ b/keyboards/subrezon/lancer/keymaps/default/keymap.json @@ -30,4 +30,4 @@ "XXXXXXX", "_______", "XXXXXXX", "XXXXXXX", "XXXXXXX", "_______" ] ] -} \ No newline at end of file +} diff --git a/keyboards/suikagiken/suika27melo/keyboard.json b/keyboards/suikagiken/suika27melo/keyboard.json index 26b57f7001..c6d896e334 100644 --- a/keyboards/suikagiken/suika27melo/keyboard.json +++ b/keyboards/suikagiken/suika27melo/keyboard.json @@ -59,4 +59,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/suikagiken/suika85ergo/keyboard.json b/keyboards/suikagiken/suika85ergo/keyboard.json index 6274f56f7c..39a42dc173 100644 --- a/keyboards/suikagiken/suika85ergo/keyboard.json +++ b/keyboards/suikagiken/suika85ergo/keyboard.json @@ -119,4 +119,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/switchplate/readme.md b/keyboards/switchplate/readme.md index 166853f285..478e3e68a1 100644 --- a/keyboards/switchplate/readme.md +++ b/keyboards/switchplate/readme.md @@ -1,4 +1,4 @@ # Switchplate Peripherals All keyboards under the Switchplate Peripherals brand -Website: [here](https://switchplate.co/) \ No newline at end of file +Website: [here](https://switchplate.co/) diff --git a/keyboards/synthandkeys/bento_box/bento_box.c b/keyboards/synthandkeys/bento_box/bento_box.c index 5ef0678f5e..e9eea41f53 100644 --- a/keyboards/synthandkeys/bento_box/bento_box.c +++ b/keyboards/synthandkeys/bento_box/bento_box.c @@ -34,4 +34,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } return true; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/synthandkeys/bento_box/keyboard.json b/keyboards/synthandkeys/bento_box/keyboard.json index ad662f1669..9ccae20e19 100644 --- a/keyboards/synthandkeys/bento_box/keyboard.json +++ b/keyboards/synthandkeys/bento_box/keyboard.json @@ -58,4 +58,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/synthandkeys/bento_box/keymaps/default/keymap.c b/keyboards/synthandkeys/bento_box/keymaps/default/keymap.c index bf8f26984b..0e69e7b97a 100644 --- a/keyboards/synthandkeys/bento_box/keymaps/default/keymap.c +++ b/keyboards/synthandkeys/bento_box/keymaps/default/keymap.c @@ -38,4 +38,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { * ------------------------------------ * | | | | | | * ------------------------------------ - */ \ No newline at end of file + */ diff --git a/keyboards/synthandkeys/the_debit_card/keymaps/default/keymap.c b/keyboards/synthandkeys/the_debit_card/keymaps/default/keymap.c index aa5468c45c..52a940dd9b 100644 --- a/keyboards/synthandkeys/the_debit_card/keymaps/default/keymap.c +++ b/keyboards/synthandkeys/the_debit_card/keymaps/default/keymap.c @@ -19,4 +19,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P4, KC_P5, KC_P6, KC_P7, KC_P8, KC_P9, KC_P0 ) -}; \ No newline at end of file +}; diff --git a/keyboards/tada68/keymaps/rgb/readme.md b/keyboards/tada68/keymaps/rgb/readme.md index fb5a5abd0c..cc3b65d012 100755 --- a/keyboards/tada68/keymaps/rgb/readme.md +++ b/keyboards/tada68/keymaps/rgb/readme.md @@ -1,3 +1,3 @@ # RGB on the TADA68 This board has unused pins, which means that you can add some nice RGB leds, although they have no use at this momen because not a single transparent case has been made yet. Here's where you have to solder the wires on the PCB: -![Image of solder points for RGB on the Tada68](http://i.imgur.com/5Xmiz6Q.jpg) \ No newline at end of file +![Image of solder points for RGB on the Tada68](http://i.imgur.com/5Xmiz6Q.jpg) diff --git a/keyboards/takashicompany/baumkuchen/baumkuchen.c b/keyboards/takashicompany/baumkuchen/baumkuchen.c index e7cc85f091..c06b0f2ff0 100644 --- a/keyboards/takashicompany/baumkuchen/baumkuchen.c +++ b/keyboards/takashicompany/baumkuchen/baumkuchen.c @@ -16,4 +16,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } return true; -} \ No newline at end of file +} diff --git a/keyboards/takashicompany/baumkuchen/keyboard.json b/keyboards/takashicompany/baumkuchen/keyboard.json index d5aa1f81e1..973ff31dfc 100644 --- a/keyboards/takashicompany/baumkuchen/keyboard.json +++ b/keyboards/takashicompany/baumkuchen/keyboard.json @@ -69,4 +69,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/takashicompany/baumkuchen/keymaps/default/keymap.c b/keyboards/takashicompany/baumkuchen/keymaps/default/keymap.c index 26fe58f54c..b7c5716907 100644 --- a/keyboards/takashicompany/baumkuchen/keymaps/default/keymap.c +++ b/keyboards/takashicompany/baumkuchen/keymaps/default/keymap.c @@ -16,4 +16,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/takashicompany/ergomirage/keyboard.json b/keyboards/takashicompany/ergomirage/keyboard.json index 4a2e3ab5ec..39e1f0dfd3 100644 --- a/keyboards/takashicompany/ergomirage/keyboard.json +++ b/keyboards/takashicompany/ergomirage/keyboard.json @@ -76,4 +76,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/takashicompany/goat51/keymaps/default/keymap.c b/keyboards/takashicompany/goat51/keymaps/default/keymap.c index 71d623c91f..3a674137d4 100644 --- a/keyboards/takashicompany/goat51/keymaps/default/keymap.c +++ b/keyboards/takashicompany/goat51/keymaps/default/keymap.c @@ -120,4 +120,4 @@ bool encoder_update_user(uint8_t index, bool clockwise) { } return true; -} \ No newline at end of file +} diff --git a/keyboards/takashicompany/jourkey/keyboard.json b/keyboards/takashicompany/jourkey/keyboard.json index e99eb87c47..a72d9364ab 100644 --- a/keyboards/takashicompany/jourkey/keyboard.json +++ b/keyboards/takashicompany/jourkey/keyboard.json @@ -45,4 +45,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/takashicompany/jourkey/keymaps/default/rules.mk b/keyboards/takashicompany/jourkey/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/takashicompany/jourkey/keymaps/default/rules.mk +++ b/keyboards/takashicompany/jourkey/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/takashicompany/klec_01/keyboard.json b/keyboards/takashicompany/klec_01/keyboard.json index 88eda74f12..b39ccb7dd2 100644 --- a/keyboards/takashicompany/klec_01/keyboard.json +++ b/keyboards/takashicompany/klec_01/keyboard.json @@ -71,4 +71,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/takashicompany/klec_01/keymaps/default/keymap.c b/keyboards/takashicompany/klec_01/keymaps/default/keymap.c index 551c211b73..0283452dcb 100644 --- a/keyboards/takashicompany/klec_01/keymaps/default/keymap.c +++ b/keyboards/takashicompany/klec_01/keymaps/default/keymap.c @@ -66,4 +66,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, 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/takashicompany/klec_02/config.h b/keyboards/takashicompany/klec_02/config.h index 8828e2ad72..0b312f5619 100644 --- a/keyboards/takashicompany/klec_02/config.h +++ b/keyboards/takashicompany/klec_02/config.h @@ -3,4 +3,4 @@ #pragma once -#define EE_HANDS \ No newline at end of file +#define EE_HANDS diff --git a/keyboards/takashicompany/klec_02/keyboard.json b/keyboards/takashicompany/klec_02/keyboard.json index b659d18bc0..fc92d257a3 100644 --- a/keyboards/takashicompany/klec_02/keyboard.json +++ b/keyboards/takashicompany/klec_02/keyboard.json @@ -67,4 +67,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/takashicompany/klec_02/keymaps/default/keymap.c b/keyboards/takashicompany/klec_02/keymaps/default/keymap.c index 0431b8e6b7..e83656dbb7 100644 --- a/keyboards/takashicompany/klec_02/keymaps/default/keymap.c +++ b/keyboards/takashicompany/klec_02/keymaps/default/keymap.c @@ -67,4 +67,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/takashicompany/minidivide/keymaps/default/keymap.c b/keyboards/takashicompany/minidivide/keymaps/default/keymap.c index cd9f82476e..15eb0a1e80 100644 --- a/keyboards/takashicompany/minidivide/keymaps/default/keymap.c +++ b/keyboards/takashicompany/minidivide/keymaps/default/keymap.c @@ -67,4 +67,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB_M_K, RGB_M_X, RGB_M_G, KC_NO, KC_NO, QK_BOOT, KC_NO, KC_NO, KC_NO, KC_NO, 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/takashicompany/minidivide/minidivide.c b/keyboards/takashicompany/minidivide/minidivide.c index abdb91fc47..2fe0b3b73c 100644 --- a/keyboards/takashicompany/minidivide/minidivide.c +++ b/keyboards/takashicompany/minidivide/minidivide.c @@ -45,4 +45,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/takashicompany/minizone/minizone.c b/keyboards/takashicompany/minizone/minizone.c index 1574b0aef7..1a10f21bad 100644 --- a/keyboards/takashicompany/minizone/minizone.c +++ b/keyboards/takashicompany/minizone/minizone.c @@ -52,4 +52,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/takashicompany/rookey/keyboard.json b/keyboards/takashicompany/rookey/keyboard.json index 5e530a5a3c..a2bae0ee42 100644 --- a/keyboards/takashicompany/rookey/keyboard.json +++ b/keyboards/takashicompany/rookey/keyboard.json @@ -45,4 +45,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/takashicompany/rookey/keymaps/default/rules.mk b/keyboards/takashicompany/rookey/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/takashicompany/rookey/keymaps/default/rules.mk +++ b/keyboards/takashicompany/rookey/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/taleguers/taleguers75/readme.md b/keyboards/taleguers/taleguers75/readme.md index c3018dc2d7..84e48bbfa6 100644 --- a/keyboards/taleguers/taleguers75/readme.md +++ b/keyboards/taleguers/taleguers75/readme.md @@ -11,4 +11,4 @@ Make example for this keyboard (after setting up your build environment): make taleguers/taleguers75: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). \ No newline at end of file +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/teleport/native/ansi/keymaps/default/keymap.c b/keyboards/teleport/native/ansi/keymaps/default/keymap.c index 381228f42d..142b77a3c5 100644 --- a/keyboards/teleport/native/ansi/keymaps/default/keymap.c +++ b/keyboards/teleport/native/ansi/keymaps/default/keymap.c @@ -95,4 +95,4 @@ layer_state_t layer_state_set_user(layer_state_t state) { rgb_matrix_set_color(WIN_LED_INDEX, rgb_mat.r, rgb_mat.g, rgb_mat.b); } return state; -} \ No newline at end of file +} diff --git a/keyboards/teleport/native/mcuconf.h b/keyboards/teleport/native/mcuconf.h index e12b906041..7376837ac3 100644 --- a/keyboards/teleport/native/mcuconf.h +++ b/keyboards/teleport/native/mcuconf.h @@ -27,4 +27,4 @@ #define STM32_I2C_USE_I2C1 TRUE #undef STM32_I2C_USE_DMA -#define STM32_I2C_USE_DMA TRUE \ No newline at end of file +#define STM32_I2C_USE_DMA TRUE diff --git a/keyboards/teleport/native/native.c b/keyboards/teleport/native/native.c index b53979e27c..aca323715f 100644 --- a/keyboards/teleport/native/native.c +++ b/keyboards/teleport/native/native.c @@ -115,4 +115,4 @@ const is31fl3733_led_t PROGMEM g_is31fl3733_leds[IS31FL3733_LED_COUNT] = { {1, SW6_CS15, SW5_CS15, SW4_CS15}, {1, SW6_CS16, SW5_CS16, SW4_CS16} }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/teleport/numpad/readme.md b/keyboards/teleport/numpad/readme.md index 20975b6947..a12e88a6c1 100644 --- a/keyboards/teleport/numpad/readme.md +++ b/keyboards/teleport/numpad/readme.md @@ -17,4 +17,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (In this case NumLock) and plug in the keyboard * **Physical reset button**: Briefly press the button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` (With the default keymap, hold NumLock, then press Enter) \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` (With the default keymap, hold NumLock, then press Enter) diff --git a/keyboards/teleport/tkl/keyboard.json b/keyboards/teleport/tkl/keyboard.json index b6b93667f4..56c82b4b42 100644 --- a/keyboards/teleport/tkl/keyboard.json +++ b/keyboards/teleport/tkl/keyboard.json @@ -319,4 +319,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/terrazzo/terrazzo_effects/dino.h b/keyboards/terrazzo/terrazzo_effects/dino.h index 18c629f414..fa1e9c44e2 100644 --- a/keyboards/terrazzo/terrazzo_effects/dino.h +++ b/keyboards/terrazzo/terrazzo_effects/dino.h @@ -159,4 +159,4 @@ void DINO(uint8_t i, bool dir) { } # endif -#endif \ No newline at end of file +#endif diff --git a/keyboards/terrazzo/terrazzo_effects/dot.h b/keyboards/terrazzo/terrazzo_effects/dot.h index 07c4621c26..1ed8669789 100644 --- a/keyboards/terrazzo/terrazzo_effects/dot.h +++ b/keyboards/terrazzo/terrazzo_effects/dot.h @@ -24,4 +24,4 @@ void DOT(uint8_t i, bool dir) { } # endif -#endif \ No newline at end of file +#endif diff --git a/keyboards/terrazzo/terrazzo_effects/heart.h b/keyboards/terrazzo/terrazzo_effects/heart.h index bfbd6acc38..1abb83411f 100644 --- a/keyboards/terrazzo/terrazzo_effects/heart.h +++ b/keyboards/terrazzo/terrazzo_effects/heart.h @@ -96,4 +96,4 @@ void HEART(uint8_t i, bool dir) { } # endif -#endif \ No newline at end of file +#endif diff --git a/keyboards/terrazzo/terrazzo_effects/outrun.h b/keyboards/terrazzo/terrazzo_effects/outrun.h index 127e714b2f..9cb28e3b70 100644 --- a/keyboards/terrazzo/terrazzo_effects/outrun.h +++ b/keyboards/terrazzo/terrazzo_effects/outrun.h @@ -124,4 +124,4 @@ void OUTRUN(uint8_t i, bool dir) { } # endif -#endif \ No newline at end of file +#endif diff --git a/keyboards/terrazzo/terrazzo_effects/pac_dude.h b/keyboards/terrazzo/terrazzo_effects/pac_dude.h index aaf0c55457..c4f393f558 100644 --- a/keyboards/terrazzo/terrazzo_effects/pac_dude.h +++ b/keyboards/terrazzo/terrazzo_effects/pac_dude.h @@ -64,4 +64,4 @@ void PAC_DUDE(uint8_t i, bool dir) { } # endif -#endif \ No newline at end of file +#endif diff --git a/keyboards/terrazzo/terrazzo_effects/stripes.h b/keyboards/terrazzo/terrazzo_effects/stripes.h index 4e1238cdc4..e90fd05d25 100644 --- a/keyboards/terrazzo/terrazzo_effects/stripes.h +++ b/keyboards/terrazzo/terrazzo_effects/stripes.h @@ -32,4 +32,4 @@ void STRIPES(uint8_t i, bool dir) { } # endif -#endif \ No newline at end of file +#endif diff --git a/keyboards/terrazzo/terrazzo_effects/wpm_chart.h b/keyboards/terrazzo/terrazzo_effects/wpm_chart.h index b80b604d26..bfb043150b 100644 --- a/keyboards/terrazzo/terrazzo_effects/wpm_chart.h +++ b/keyboards/terrazzo/terrazzo_effects/wpm_chart.h @@ -108,4 +108,4 @@ void WPM_CHART(uint8_t i, bool dir) { } # endif -#endif \ No newline at end of file +#endif diff --git a/keyboards/tg67/keyboard.json b/keyboards/tg67/keyboard.json index 308f16cc99..f712749368 100644 --- a/keyboards/tg67/keyboard.json +++ b/keyboards/tg67/keyboard.json @@ -120,4 +120,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/tgr/910ce/keymaps/default/keymap.c b/keyboards/tgr/910ce/keymaps/default/keymap.c index 2e5fc5dd67..60772c7586 100644 --- a/keyboards/tgr/910ce/keymaps/default/keymap.c +++ b/keyboards/tgr/910ce/keymaps/default/keymap.c @@ -44,4 +44,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ), -}; \ No newline at end of file +}; diff --git a/keyboards/themadnoodle/ncc1701kb/v2/keyboard.json b/keyboards/themadnoodle/ncc1701kb/v2/keyboard.json index 069a4b79fa..155524ad61 100644 --- a/keyboards/themadnoodle/ncc1701kb/v2/keyboard.json +++ b/keyboards/themadnoodle/ncc1701kb/v2/keyboard.json @@ -66,4 +66,4 @@ ] } -} \ No newline at end of file +} diff --git a/keyboards/themadnoodle/ncc1701kb/v2/keymaps/default/rules.mk b/keyboards/themadnoodle/ncc1701kb/v2/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/themadnoodle/ncc1701kb/v2/keymaps/default/rules.mk +++ b/keyboards/themadnoodle/ncc1701kb/v2/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/themadnoodle/noodlepad/config.h b/keyboards/themadnoodle/noodlepad/config.h index d51dabf53d..fbb498c408 100644 --- a/keyboards/themadnoodle/noodlepad/config.h +++ b/keyboards/themadnoodle/noodlepad/config.h @@ -3,4 +3,4 @@ #pragma once -#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 5 \ No newline at end of file +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL + 5 diff --git a/keyboards/themadnoodle/noodlepad/info.json b/keyboards/themadnoodle/noodlepad/info.json index 48f984339c..84caadfdae 100644 --- a/keyboards/themadnoodle/noodlepad/info.json +++ b/keyboards/themadnoodle/noodlepad/info.json @@ -47,4 +47,4 @@ } }, -} \ No newline at end of file +} diff --git a/keyboards/themadnoodle/noodlepad/keymaps/default/rules.mk b/keyboards/themadnoodle/noodlepad/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/themadnoodle/noodlepad/keymaps/default/rules.mk +++ b/keyboards/themadnoodle/noodlepad/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/themadnoodle/noodlepad/v1/keyboard.json b/keyboards/themadnoodle/noodlepad/v1/keyboard.json index e868400ee1..3b89cbff71 100644 --- a/keyboards/themadnoodle/noodlepad/v1/keyboard.json +++ b/keyboards/themadnoodle/noodlepad/v1/keyboard.json @@ -22,4 +22,4 @@ ] } -} \ No newline at end of file +} diff --git a/keyboards/themadnoodle/noodlepad/v2/keyboard.json b/keyboards/themadnoodle/noodlepad/v2/keyboard.json index d66c2813ce..e88c561625 100644 --- a/keyboards/themadnoodle/noodlepad/v2/keyboard.json +++ b/keyboards/themadnoodle/noodlepad/v2/keyboard.json @@ -21,4 +21,4 @@ ] } -} \ No newline at end of file +} diff --git a/keyboards/themadnoodle/noodlepad_micro/keymaps/default/rules.mk b/keyboards/themadnoodle/noodlepad_micro/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/themadnoodle/noodlepad_micro/keymaps/default/rules.mk +++ b/keyboards/themadnoodle/noodlepad_micro/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/themadnoodle/noodlepad_micro/readme.md b/keyboards/themadnoodle/noodlepad_micro/readme.md index a77c1ad7ba..9c8f3acdce 100644 --- a/keyboards/themadnoodle/noodlepad_micro/readme.md +++ b/keyboards/themadnoodle/noodlepad_micro/readme.md @@ -25,4 +25,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to * Double press the button on the back, center, left of the PCB labeled "R" to enter the bootloader drive mode. -* If you have a pre-compiled .uf2 file, copy it into bootloader drive (RPI-RP2), board will reset automatically once file is copied sucessfully \ No newline at end of file +* If you have a pre-compiled .uf2 file, copy it into bootloader drive (RPI-RP2), board will reset automatically once file is copied sucessfully diff --git a/keyboards/themadnoodle/udon13/keyboard.json b/keyboards/themadnoodle/udon13/keyboard.json index 31ad17a367..f3ac7cfb11 100644 --- a/keyboards/themadnoodle/udon13/keyboard.json +++ b/keyboards/themadnoodle/udon13/keyboard.json @@ -70,4 +70,4 @@ ] } -} \ No newline at end of file +} diff --git a/keyboards/themadnoodle/udon13/keymaps/default/rules.mk b/keyboards/themadnoodle/udon13/keymaps/default/rules.mk index 217da48272..defc5696fc 100644 --- a/keyboards/themadnoodle/udon13/keymaps/default/rules.mk +++ b/keyboards/themadnoodle/udon13/keymaps/default/rules.mk @@ -1,2 +1,2 @@ ENCODER_MAP_ENABLE = yes -LTO_ENABLE = yes \ No newline at end of file +LTO_ENABLE = yes diff --git a/keyboards/themadnoodle/udon13/udon13.c b/keyboards/themadnoodle/udon13/udon13.c index bda0ae7e7b..304d7811f6 100644 --- a/keyboards/themadnoodle/udon13/udon13.c +++ b/keyboards/themadnoodle/udon13/udon13.c @@ -73,4 +73,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/thepanduuh/degenpad/readme.md b/keyboards/thepanduuh/degenpad/readme.md index 2feed8cbcc..5e0772c668 100644 --- a/keyboards/thepanduuh/degenpad/readme.md +++ b/keyboards/thepanduuh/degenpad/readme.md @@ -21,4 +21,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/thevankeyboards/readme.md b/keyboards/thevankeyboards/readme.md index 5dfd74e574..10879bbb5f 100644 --- a/keyboards/thevankeyboards/readme.md +++ b/keyboards/thevankeyboards/readme.md @@ -1,3 +1,3 @@ # TheVan Keyboards -[TheVan Keyboards](https://thevankeyboards.com/) is based in the United States and is responsible for boards such as the minivan. \ No newline at end of file +[TheVan Keyboards](https://thevankeyboards.com/) is based in the United States and is responsible for boards such as the minivan. diff --git a/keyboards/thumbsup/rev9_promicro_4x12/keyboard.json b/keyboards/thumbsup/rev9_promicro_4x12/keyboard.json index 95fa6664b2..8a2b4093f2 100644 --- a/keyboards/thumbsup/rev9_promicro_4x12/keyboard.json +++ b/keyboards/thumbsup/rev9_promicro_4x12/keyboard.json @@ -74,4 +74,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/thumbsup/rev9_promicro_4x12/rules.mk b/keyboards/thumbsup/rev9_promicro_4x12/rules.mk index 9bfd1498a3..fedac72e2e 100644 --- a/keyboards/thumbsup/rev9_promicro_4x12/rules.mk +++ b/keyboards/thumbsup/rev9_promicro_4x12/rules.mk @@ -1 +1 @@ -POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c \ No newline at end of file +POINTING_DEVICE_DRIVER = cirque_pinnacle_i2c diff --git a/keyboards/togkey/pad_pocket/readme.md b/keyboards/togkey/pad_pocket/readme.md index 160d698ad6..8007cc808e 100644 --- a/keyboards/togkey/pad_pocket/readme.md +++ b/keyboards/togkey/pad_pocket/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (The left key closest to the USB Port) 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/tominabox1/le_chiffre/rev2/readme.md b/keyboards/tominabox1/le_chiffre/rev2/readme.md index b8c65bc0e0..84422b3d4c 100644 --- a/keyboards/tominabox1/le_chiffre/rev2/readme.md +++ b/keyboards/tominabox1/le_chiffre/rev2/readme.md @@ -1,2 +1,2 @@ Updated v2 PCB with better plate screw clearances, ESD protection, as well as sweet sweet curvy traces. -Rev. 2.0 requires new firmware due to the pinout changing to facilitate prettier trace runs. \ No newline at end of file +Rev. 2.0 requires new firmware due to the pinout changing to facilitate prettier trace runs. diff --git a/keyboards/tweetydabird/lbs4/keymaps/default/readme.md b/keyboards/tweetydabird/lbs4/keymaps/default/readme.md index 09501d9231..1919f101f8 100644 --- a/keyboards/tweetydabird/lbs4/keymaps/default/readme.md +++ b/keyboards/tweetydabird/lbs4/keymaps/default/readme.md @@ -2,4 +2,4 @@ This is a very basic layout using LSB4 as media playback buttons. -![lsb4](https://imgur.com/hCDdQIc) \ No newline at end of file +![lsb4](https://imgur.com/hCDdQIc) diff --git a/keyboards/tweetydabird/lbs4/readme.md b/keyboards/tweetydabird/lbs4/readme.md index e17a850c5e..4597f15882 100644 --- a/keyboards/tweetydabird/lbs4/readme.md +++ b/keyboards/tweetydabird/lbs4/readme.md @@ -23,4 +23,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the top left key and plug in the keyboard * **Physical reset**: Briefly short the marked pads on PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) diff --git a/keyboards/tweetydabird/lbs6/readme.md b/keyboards/tweetydabird/lbs6/readme.md index 2301cc3c56..c47f254876 100644 --- a/keyboards/tweetydabird/lbs6/readme.md +++ b/keyboards/tweetydabird/lbs6/readme.md @@ -25,4 +25,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the bottom right key and plug in the keyboard * **Physical reset**: Briefly short the marked pads on PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if mapped (not in default keymap) diff --git a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c index 5fcc5cf144..364bff7df9 100644 --- a/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c +++ b/keyboards/tweetydabird/lotus58/keymaps/default/keymap.c @@ -94,4 +94,4 @@ bool oled_task_user(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/tweetydabird/lotus58/lotus58.c b/keyboards/tweetydabird/lotus58/lotus58.c index f1e433a426..736781bd80 100644 --- a/keyboards/tweetydabird/lotus58/lotus58.c +++ b/keyboards/tweetydabird/lotus58/lotus58.c @@ -26,4 +26,4 @@ bool oled_task_kb(void) { render_logo(); return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/tyraelwastaken/equanimity/keymaps/default/keymap.c b/keyboards/tyraelwastaken/equanimity/keymaps/default/keymap.c index 7430554f7a..9c24ca89c6 100644 --- a/keyboards/tyraelwastaken/equanimity/keymaps/default/keymap.c +++ b/keyboards/tyraelwastaken/equanimity/keymaps/default/keymap.c @@ -32,4 +32,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [_BL] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_FL] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/tyraelwastaken/equanimity/keymaps/default/rules.mk b/keyboards/tyraelwastaken/equanimity/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/tyraelwastaken/equanimity/keymaps/default/rules.mk +++ b/keyboards/tyraelwastaken/equanimity/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/tyraelwastaken/equanimity/readme.md b/keyboards/tyraelwastaken/equanimity/readme.md index a866226192..5346bbf882 100644 --- a/keyboards/tyraelwastaken/equanimity/readme.md +++ b/keyboards/tyraelwastaken/equanimity/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/umbra/hotswap/readme.md b/keyboards/umbra/hotswap/readme.md index bf86db069b..b02c8e31ee 100644 --- a/keyboards/umbra/hotswap/readme.md +++ b/keyboards/umbra/hotswap/readme.md @@ -23,4 +23,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to How to enter bootloader (DFU): * PCB will arrive flashed. With USB plugged in press Fn+Esc to enter DFU. Flash the firmware and replug the USB cable to fresh boot the PCB. -* If that method fails please locate the RESET header on the back of the PCB just right of the MCU. Short the 2 plated holes for 2 seconds to enter DFU. Flash the firmware and replug the USB cable to fresh boot the PCB. \ No newline at end of file +* If that method fails please locate the RESET header on the back of the PCB just right of the MCU. Short the 2 plated holes for 2 seconds to enter DFU. Flash the firmware and replug the USB cable to fresh boot the PCB. diff --git a/keyboards/umbra/solder/readme.md b/keyboards/umbra/solder/readme.md index 61a564578b..773f135c98 100644 --- a/keyboards/umbra/solder/readme.md +++ b/keyboards/umbra/solder/readme.md @@ -23,4 +23,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to How to enter bootloader (DFU): * PCB will arrive flashed. With USB plugged in press Fn+Esc to enter DFU. Flash the firmware and replug the USB cable to fresh boot the PCB. -* If that method fails please locate the RESET header on the back of the PCB just right of the MCU. Short the 2 plated holes for 2 seconds to enter DFU. Flash the firmware and replug the USB cable to fresh boot the PCB. \ No newline at end of file +* If that method fails please locate the RESET header on the back of the PCB just right of the MCU. Short the 2 plated holes for 2 seconds to enter DFU. Flash the firmware and replug the USB cable to fresh boot the PCB. diff --git a/keyboards/unikeyboard/diverge3/keymaps/workman/config.h b/keyboards/unikeyboard/diverge3/keymaps/workman/config.h index 9829a604f1..9cba61966e 100644 --- a/keyboards/unikeyboard/diverge3/keymaps/workman/config.h +++ b/keyboards/unikeyboard/diverge3/keymaps/workman/config.h @@ -2,4 +2,4 @@ // place overrides here #define PERMISSIVE_HOLD -#define TAPPING_TERM 150 \ No newline at end of file +#define TAPPING_TERM 150 diff --git a/keyboards/vertex/t75/keymaps/default/keymap.c b/keyboards/vertex/t75/keymaps/default/keymap.c index 96aa2a2fee..d5c71837ae 100644 --- a/keyboards/vertex/t75/keymaps/default/keymap.c +++ b/keyboards/vertex/t75/keymaps/default/keymap.c @@ -39,4 +39,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { ) }; - \ No newline at end of file + diff --git a/keyboards/wavtype/foundation/readme.md b/keyboards/wavtype/foundation/readme.md index 68ad269d07..1dca8bb16b 100644 --- a/keyboards/wavtype/foundation/readme.md +++ b/keyboards/wavtype/foundation/readme.md @@ -19,4 +19,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key at (0,1) in the matrix (Escape key) and plug in the keyboard * **Physical reset button**: Briefly press the button on the back of the PCB -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available (by default this is set to "Fn + R") \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available (by default this is set to "Fn + R") diff --git a/keyboards/weirdo/kelowna/rgb64/keymaps/default/keymap.c b/keyboards/weirdo/kelowna/rgb64/keymaps/default/keymap.c index 1c5acf6bab..c2463f8841 100644 --- a/keyboards/weirdo/kelowna/rgb64/keymaps/default/keymap.c +++ b/keyboards/weirdo/kelowna/rgb64/keymaps/default/keymap.c @@ -35,4 +35,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_SPACE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), // -}; \ No newline at end of file +}; diff --git a/keyboards/weirdo/naiping/npminila/keymaps/default/keymap.c b/keyboards/weirdo/naiping/npminila/keymaps/default/keymap.c index 30d6bf291e..8cce4ec9d8 100644 --- a/keyboards/weirdo/naiping/npminila/keymaps/default/keymap.c +++ b/keyboards/weirdo/naiping/npminila/keymaps/default/keymap.c @@ -36,4 +36,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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), // -}; \ No newline at end of file +}; diff --git a/keyboards/werk_technica/one/keyboard.json b/keyboards/werk_technica/one/keyboard.json index ba5df0b136..bf3478cba3 100644 --- a/keyboards/werk_technica/one/keyboard.json +++ b/keyboards/werk_technica/one/keyboard.json @@ -292,4 +292,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/werk_technica/one/mcuconf.h b/keyboards/werk_technica/one/mcuconf.h index d25a2619fd..3fe066bf7d 100644 --- a/keyboards/werk_technica/one/mcuconf.h +++ b/keyboards/werk_technica/one/mcuconf.h @@ -18,4 +18,4 @@ /* Set PLL M divider from 4 (F411 GENERIC default) to 8, because of 16 MHz crystal on board */ #undef STM32_PLLM_VALUE -#define STM32_PLLM_VALUE 8 \ No newline at end of file +#define STM32_PLLM_VALUE 8 diff --git a/keyboards/westm/westm68/keymaps/default/keymap.c b/keyboards/westm/westm68/keymaps/default/keymap.c index 392a21a854..0bd7fd6297 100755 --- a/keyboards/westm/westm68/keymaps/default/keymap.c +++ b/keyboards/westm/westm68/keymaps/default/keymap.c @@ -31,4 +31,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_AUDIO_VOL_DOWN, KC_AUDIO_VOL_UP, UG_SATU, UG_SATD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/westm/westm68/rev1/rev1.c b/keyboards/westm/westm68/rev1/rev1.c index 3b47910624..a93916a49a 100644 --- a/keyboards/westm/westm68/rev1/rev1.c +++ b/keyboards/westm/westm68/rev1/rev1.c @@ -19,4 +19,4 @@ void board_init(void) { rgblight_toggle(); // Fixes if LEDs were off in the first place buggy LED turns on rgblight_set(); // Need this to fix buggy first LED upon plugging in PCB -} \ No newline at end of file +} diff --git a/keyboards/westm/westm9/chconf.h b/keyboards/westm/westm9/chconf.h index d79a01d36b..ba97496d31 100644 --- a/keyboards/westm/westm9/chconf.h +++ b/keyboards/westm/westm9/chconf.h @@ -23,4 +23,4 @@ #define CH_CFG_USE_CONDVARS_TIMEOUT FALSE -#include_next \ No newline at end of file +#include_next diff --git a/keyboards/westm/westm9/keymaps/default/keymap.c b/keyboards/westm/westm9/keymaps/default/keymap.c index e46a29beb6..aab3cbedbb 100755 --- a/keyboards/westm/westm9/keymaps/default/keymap.c +++ b/keyboards/westm/westm9/keymaps/default/keymap.c @@ -27,4 +27,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { UG_VALD, UG_VALU, UG_SATD, UG_HUED, UG_HUEU, KC_NO ) -}; \ No newline at end of file +}; diff --git a/keyboards/westm/westm9/mcuconf.h b/keyboards/westm/westm9/mcuconf.h index 328b5d45a9..9745473764 100644 --- a/keyboards/westm/westm9/mcuconf.h +++ b/keyboards/westm/westm9/mcuconf.h @@ -19,4 +19,4 @@ #include_next #undef STM32_I2C_USE_I2C1 -#define STM32_I2C_USE_I2C1 TRUE \ No newline at end of file +#define STM32_I2C_USE_I2C1 TRUE diff --git a/keyboards/westm/westm9/readme.md b/keyboards/westm/westm9/readme.md index 883aab3c35..8e2911d4a1 100644 --- a/keyboards/westm/westm9/readme.md +++ b/keyboards/westm/westm9/readme.md @@ -13,4 +13,4 @@ Make example for this keyboard (after setting up your build environment): make westm/westm9/rev1: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). \ No newline at end of file +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/westm/westm9/rev1/config.h b/keyboards/westm/westm9/rev1/config.h index 9492e7f6ca..c6f4d5f288 100644 --- a/keyboards/westm/westm9/rev1/config.h +++ b/keyboards/westm/westm9/rev1/config.h @@ -37,4 +37,4 @@ #define I2C1_TIMINGR_SCLH 0x03U #define I2C1_TIMINGR_SCLL 0x09U -#define OLED_UPDATE_INTERVAL 66 \ No newline at end of file +#define OLED_UPDATE_INTERVAL 66 diff --git a/keyboards/westm/westm9/rev1/rev1.c b/keyboards/westm/westm9/rev1/rev1.c index cf84b5c52e..8ab502af2a 100644 --- a/keyboards/westm/westm9/rev1/rev1.c +++ b/keyboards/westm/westm9/rev1/rev1.c @@ -113,4 +113,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/westm/westm9/rev2/config.h b/keyboards/westm/westm9/rev2/config.h index 9492e7f6ca..c6f4d5f288 100644 --- a/keyboards/westm/westm9/rev2/config.h +++ b/keyboards/westm/westm9/rev2/config.h @@ -37,4 +37,4 @@ #define I2C1_TIMINGR_SCLH 0x03U #define I2C1_TIMINGR_SCLL 0x09U -#define OLED_UPDATE_INTERVAL 66 \ No newline at end of file +#define OLED_UPDATE_INTERVAL 66 diff --git a/keyboards/westm/westm9/rev2/rev2.c b/keyboards/westm/westm9/rev2/rev2.c index 7524ca6690..e598600c44 100644 --- a/keyboards/westm/westm9/rev2/rev2.c +++ b/keyboards/westm/westm9/rev2/rev2.c @@ -109,4 +109,4 @@ bool oled_task_kb(void) { return false; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/westm/westmergo/keymaps/default/keymap.c b/keyboards/westm/westmergo/keymaps/default/keymap.c index fdffde449a..6ae56e0ee0 100755 --- a/keyboards/westm/westmergo/keymaps/default/keymap.c +++ b/keyboards/westm/westmergo/keymaps/default/keymap.c @@ -32,4 +32,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, KC_MPRV, KC_MPLY, KC_MNXT, KC_VOLD, KC_VOLU, UG_SATU, UG_SATD, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ) -}; \ No newline at end of file +}; diff --git a/keyboards/westm/westmergo/readme.md b/keyboards/westm/westmergo/readme.md index 53cb5e6829..467db9d6b9 100644 --- a/keyboards/westm/westmergo/readme.md +++ b/keyboards/westm/westmergo/readme.md @@ -15,4 +15,4 @@ Make example for this keyboard (after setting up your build environment): make westm/westmergo: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). \ No newline at end of file +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/whitefacemountain/ampersand/keymaps/default/keymap.c b/keyboards/whitefacemountain/ampersand/keymaps/default/keymap.c index d380e64fa7..c8d176a42d 100644 --- a/keyboards/whitefacemountain/ampersand/keymaps/default/keymap.c +++ b/keyboards/whitefacemountain/ampersand/keymaps/default/keymap.c @@ -9,4 +9,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_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_LGUI, KC_SPC, KC_SPC, KC_RGUI, KC_RALT, KC_RCTL) -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/rama_works_koyu/readme.md b/keyboards/wilba_tech/rama_works_koyu/readme.md index 11fa3bacf6..c4400db9ca 100644 --- a/keyboards/wilba_tech/rama_works_koyu/readme.md +++ b/keyboards/wilba_tech/rama_works_koyu/readme.md @@ -20,4 +20,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/rama_works_koyu: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). \ No newline at end of file +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/wilba_tech/rama_works_m10_b/readme.md b/keyboards/wilba_tech/rama_works_m10_b/readme.md index 6b4130aeb4..bac4c629d6 100644 --- a/keyboards/wilba_tech/rama_works_m10_b/readme.md +++ b/keyboards/wilba_tech/rama_works_m10_b/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/rama_works_m10_b:default -See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. \ No newline at end of file +See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. diff --git a/keyboards/wilba_tech/rama_works_m10_c/readme.md b/keyboards/wilba_tech/rama_works_m10_c/readme.md index be7e225737..2f01c61e1a 100644 --- a/keyboards/wilba_tech/rama_works_m10_c/readme.md +++ b/keyboards/wilba_tech/rama_works_m10_c/readme.md @@ -16,4 +16,4 @@ Flashing example for this keyboard: make wilba_tech/rama_works_m10_c: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). \ No newline at end of file +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/wilba_tech/rama_works_m60_a/readme.md b/keyboards/wilba_tech/rama_works_m60_a/readme.md index 1a9d9945bd..23e8a9aafc 100644 --- a/keyboards/wilba_tech/rama_works_m60_a/readme.md +++ b/keyboards/wilba_tech/rama_works_m60_a/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/rama_works_m60_a: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). \ No newline at end of file +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/wilba_tech/rama_works_m6_a/keymaps/naut/keymap.c b/keyboards/wilba_tech/rama_works_m6_a/keymaps/naut/keymap.c index df4cf9be37..8a8c78c9e4 100644 --- a/keyboards/wilba_tech/rama_works_m6_a/keymaps/naut/keymap.c +++ b/keyboards/wilba_tech/rama_works_m6_a/keymaps/naut/keymap.c @@ -14,4 +14,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { // Fn Layer [_FNX] = LAYOUT( TO(0), KC_VOLU, KC_MPLY, - KC_MRWD, KC_VOLD, KC_MFFD)}; \ No newline at end of file + KC_MRWD, KC_VOLD, KC_MFFD)}; diff --git a/keyboards/wilba_tech/rama_works_m6_a/readme.md b/keyboards/wilba_tech/rama_works_m6_a/readme.md index 974224b455..c5392a3190 100644 --- a/keyboards/wilba_tech/rama_works_m6_a/readme.md +++ b/keyboards/wilba_tech/rama_works_m6_a/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/rama_works_m6_a: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). \ No newline at end of file +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/wilba_tech/rama_works_m6_b/readme.md b/keyboards/wilba_tech/rama_works_m6_b/readme.md index 747aa74dd5..70d073b3da 100644 --- a/keyboards/wilba_tech/rama_works_m6_b/readme.md +++ b/keyboards/wilba_tech/rama_works_m6_b/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/rama_works_m6_b: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). \ No newline at end of file +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/wilba_tech/rama_works_u80_a/readme.md b/keyboards/wilba_tech/rama_works_u80_a/readme.md index ff87889e45..8311b71563 100644 --- a/keyboards/wilba_tech/rama_works_u80_a/readme.md +++ b/keyboards/wilba_tech/rama_works_u80_a/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/rama_works_u80_a: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). \ No newline at end of file +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/wilba_tech/via_test.c b/keyboards/wilba_tech/via_test.c index 314ec4472c..46cc42a9e4 100644 --- a/keyboards/wilba_tech/via_test.c +++ b/keyboards/wilba_tech/via_test.c @@ -129,4 +129,4 @@ void via_custom_value_command(uint8_t *data, uint8_t length) { // DO NOT call raw_hid_send(data,length) here, let caller do this } -#endif // VIA_ENABLE \ No newline at end of file +#endif // VIA_ENABLE diff --git a/keyboards/wilba_tech/wt20_h1/keyboard.json b/keyboards/wilba_tech/wt20_h1/keyboard.json index 77905e275e..1aafdea67f 100644 --- a/keyboards/wilba_tech/wt20_h1/keyboard.json +++ b/keyboards/wilba_tech/wt20_h1/keyboard.json @@ -77,4 +77,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/wilba_tech/wt60_a/readme.md b/keyboards/wilba_tech/wt60_a/readme.md index 91cc5c8cef..4aac913a3d 100644 --- a/keyboards/wilba_tech/wt60_a/readme.md +++ b/keyboards/wilba_tech/wt60_a/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/wt60_a: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). \ No newline at end of file +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/wilba_tech/wt60_b/readme.md b/keyboards/wilba_tech/wt60_b/readme.md index f365bf3258..75da06e4ae 100644 --- a/keyboards/wilba_tech/wt60_b/readme.md +++ b/keyboards/wilba_tech/wt60_b/readme.md @@ -15,4 +15,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/wt60_b: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). \ No newline at end of file +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/wilba_tech/wt60_bx/readme.md b/keyboards/wilba_tech/wt60_bx/readme.md index 404742c992..95b4c15310 100644 --- a/keyboards/wilba_tech/wt60_bx/readme.md +++ b/keyboards/wilba_tech/wt60_bx/readme.md @@ -15,4 +15,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/wt60_bx: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). \ No newline at end of file +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/wilba_tech/wt60_g/keymaps/default/keymap.c b/keyboards/wilba_tech/wt60_g/keymaps/default/keymap.c index 12c17135b0..6208dd6fe5 100644 --- a/keyboards/wilba_tech/wt60_g/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt60_g/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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), -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/wt60_g2/keymaps/default/keymap.c b/keyboards/wilba_tech/wt60_g2/keymaps/default/keymap.c index 9910c070fc..86030c9d94 100644 --- a/keyboards/wilba_tech/wt60_g2/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt60_g2/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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), -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/wt60_h1/keymaps/default/keymap.c b/keyboards/wilba_tech/wt60_h1/keymaps/default/keymap.c index 0f4abc0bb1..708a68ec45 100644 --- a/keyboards/wilba_tech/wt60_h1/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt60_h1/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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), -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/wt60_xt/wt60_xt.c b/keyboards/wilba_tech/wt60_xt/wt60_xt.c index 53b822e58f..0cc8634e46 100644 --- a/keyboards/wilba_tech/wt60_xt/wt60_xt.c +++ b/keyboards/wilba_tech/wt60_xt/wt60_xt.c @@ -81,4 +81,4 @@ void via_set_device_indication(uint8_t value) { if ( value == 0 ) { PLAY_SONG(tone_device_indication); } -} \ No newline at end of file +} diff --git a/keyboards/wilba_tech/wt65_d/keymaps/default/keymap.c b/keyboards/wilba_tech/wt65_d/keymaps/default/keymap.c index ca0093926d..c30bdcbbf2 100644 --- a/keyboards/wilba_tech/wt65_d/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt65_d/keymaps/default/keymap.c @@ -37,4 +37,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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), -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/wt65_f/keymaps/default/keymap.c b/keyboards/wilba_tech/wt65_f/keymaps/default/keymap.c index 7db3bb165c..0c18739c7a 100644 --- a/keyboards/wilba_tech/wt65_f/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt65_f/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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), -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/wt65_fx/keymaps/default/keymap.c b/keyboards/wilba_tech/wt65_fx/keymaps/default/keymap.c index 56310ddef0..f04bef7bc8 100644 --- a/keyboards/wilba_tech/wt65_fx/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt65_fx/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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), -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/wt65_g/keymaps/default/keymap.c b/keyboards/wilba_tech/wt65_g/keymaps/default/keymap.c index b837b0f8be..9ad8c967ad 100644 --- a/keyboards/wilba_tech/wt65_g/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt65_g/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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), -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/wt65_g2/keymaps/default/keymap.c b/keyboards/wilba_tech/wt65_g2/keymaps/default/keymap.c index 3e0523b90c..d5eed1d7fa 100644 --- a/keyboards/wilba_tech/wt65_g2/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt65_g2/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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), -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/wt69_a/keymaps/default/keymap.c b/keyboards/wilba_tech/wt69_a/keymaps/default/keymap.c index 397d36faf2..ae62259186 100644 --- a/keyboards/wilba_tech/wt69_a/keymaps/default/keymap.c +++ b/keyboards/wilba_tech/wt69_a/keymaps/default/keymap.c @@ -33,4 +33,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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), -}; \ No newline at end of file +}; diff --git a/keyboards/wilba_tech/wt80_a/readme.md b/keyboards/wilba_tech/wt80_a/readme.md index 8bddecadee..eb74f218f5 100644 --- a/keyboards/wilba_tech/wt80_a/readme.md +++ b/keyboards/wilba_tech/wt80_a/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/wt80_a: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). \ No newline at end of file +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/wilba_tech/wt8_a/readme.md b/keyboards/wilba_tech/wt8_a/readme.md index 4998e91293..6bd7c2dd36 100644 --- a/keyboards/wilba_tech/wt8_a/readme.md +++ b/keyboards/wilba_tech/wt8_a/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make wilba_tech/wt8_a: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). \ No newline at end of file +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/wilba_tech/zeal65/zeal65.c b/keyboards/wilba_tech/zeal65/zeal65.c index a4550031b3..cf6b79972d 100644 --- a/keyboards/wilba_tech/zeal65/zeal65.c +++ b/keyboards/wilba_tech/zeal65/zeal65.c @@ -103,4 +103,4 @@ const is31fl3731_led_t PROGMEM g_is31fl3731_leds[IS31FL3731_LED_COUNT] = { {1, C9_16, C7_15, C6_15}, // LD16 {1, C8_16, C7_16, C6_16}, // LD17 }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/willoucom/keypad/keyboard.json b/keyboards/willoucom/keypad/keyboard.json index 9b4717e63f..bc2d63c387 100644 --- a/keyboards/willoucom/keypad/keyboard.json +++ b/keyboards/willoucom/keypad/keyboard.json @@ -62,4 +62,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/willoucom/keypad/keymaps/default/keymap.json b/keyboards/willoucom/keypad/keymaps/default/keymap.json index c16729bd6c..24aefd4a3a 100644 --- a/keyboards/willoucom/keypad/keymaps/default/keymap.json +++ b/keyboards/willoucom/keypad/keymaps/default/keymap.json @@ -10,4 +10,4 @@ "KC_M" ] ] -} \ No newline at end of file +} diff --git a/keyboards/willoucom/keypad/readme.md b/keyboards/willoucom/keypad/readme.md index 863ce79d37..5d172d3d49 100644 --- a/keyboards/willoucom/keypad/readme.md +++ b/keyboards/willoucom/keypad/readme.md @@ -17,4 +17,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader -Push the reset button twice. Then drop the u2f file in the usb drive. \ No newline at end of file +Push the reset button twice. Then drop the u2f file in the usb drive. diff --git a/keyboards/winkeyless/b87/keymaps/default/keymap.c b/keyboards/winkeyless/b87/keymaps/default/keymap.c index 8fe5a3f0d2..074680273b 100644 --- a/keyboards/winkeyless/b87/keymaps/default/keymap.c +++ b/keyboards/winkeyless/b87/keymaps/default/keymap.c @@ -52,4 +52,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/winkeys/mini_winni/keymaps/default/keymap.c b/keyboards/winkeys/mini_winni/keymaps/default/keymap.c index b878365be1..c6ac99a776 100644 --- a/keyboards/winkeys/mini_winni/keymaps/default/keymap.c +++ b/keyboards/winkeys/mini_winni/keymaps/default/keymap.c @@ -39,4 +39,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/wolf/frogpad/frogpad.c b/keyboards/wolf/frogpad/frogpad.c index ae6a2e0e17..04fdb7e693 100644 --- a/keyboards/wolf/frogpad/frogpad.c +++ b/keyboards/wolf/frogpad/frogpad.c @@ -35,4 +35,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } return true; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/wolf/frogpad/keymaps/default/keymap.c b/keyboards/wolf/frogpad/keymaps/default/keymap.c index 236afeab06..6eb357a8e3 100644 --- a/keyboards/wolf/frogpad/keymaps/default/keymap.c +++ b/keyboards/wolf/frogpad/keymaps/default/keymap.c @@ -45,4 +45,4 @@ const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { [_LAYER0] = { ENCODER_CCW_CW(MS_WHLU, MS_WHLD), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, [_LAYER1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS), ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } }; -#endif \ No newline at end of file +#endif diff --git a/keyboards/wolf/frogpad/keymaps/default/rules.mk b/keyboards/wolf/frogpad/keymaps/default/rules.mk index a40474b4d5..ee32568148 100644 --- a/keyboards/wolf/frogpad/keymaps/default/rules.mk +++ b/keyboards/wolf/frogpad/keymaps/default/rules.mk @@ -1 +1 @@ -ENCODER_MAP_ENABLE = yes \ No newline at end of file +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/wolf/m60_b/keymaps/default/keymap.c b/keyboards/wolf/m60_b/keymaps/default/keymap.c index 3c0fd2bc36..84dcf31a25 100644 --- a/keyboards/wolf/m60_b/keymaps/default/keymap.c +++ b/keyboards/wolf/m60_b/keymaps/default/keymap.c @@ -36,4 +36,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/wolf/m6_c/keyboard.json b/keyboards/wolf/m6_c/keyboard.json index c1d3d1302a..9f42760ed4 100644 --- a/keyboards/wolf/m6_c/keyboard.json +++ b/keyboards/wolf/m6_c/keyboard.json @@ -98,4 +98,4 @@ ] } } -} \ No newline at end of file +} diff --git a/keyboards/wolf/silhouette/keymaps/default/keymap.c b/keyboards/wolf/silhouette/keymaps/default/keymap.c index b49f1ea8e4..71ebaccaab 100644 --- a/keyboards/wolf/silhouette/keymaps/default/keymap.c +++ b/keyboards/wolf/silhouette/keymaps/default/keymap.c @@ -20,4 +20,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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 ) -}; \ No newline at end of file +}; diff --git a/keyboards/wolf/ts60/readme.md b/keyboards/wolf/ts60/readme.md index 5f1d64937b..719e0a2b49 100644 --- a/keyboards/wolf/ts60/readme.md +++ b/keyboards/wolf/ts60/readme.md @@ -22,4 +22,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to ## Bootloader Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the key ESC key and plug in the keyboard (Top Left most switch) * **Physical reset button**: Briefly press the button on the back of the PCB -* **Keycode in layout**: Press the Enter key on layer 1 which is mapped to `QK_BOOT` \ No newline at end of file +* **Keycode in layout**: Press the Enter key on layer 1 which is mapped to `QK_BOOT` diff --git a/keyboards/wolf/twilight/keymaps/default/keymap.c b/keyboards/wolf/twilight/keymaps/default/keymap.c index 0c20711c9a..54524029b0 100644 --- a/keyboards/wolf/twilight/keymaps/default/keymap.c +++ b/keyboards/wolf/twilight/keymaps/default/keymap.c @@ -24,4 +24,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 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_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_MENU, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) -}; \ No newline at end of file +}; diff --git a/keyboards/wolfmarkclub/wm1/keymaps/default/keymap.c b/keyboards/wolfmarkclub/wm1/keymaps/default/keymap.c index fac2966b4f..01c8c8599f 100644 --- a/keyboards/wolfmarkclub/wm1/keymaps/default/keymap.c +++ b/keyboards/wolfmarkclub/wm1/keymaps/default/keymap.c @@ -14,4 +14,4 @@ QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), -}; \ No newline at end of file +}; diff --git a/keyboards/woodkeys/bigseries/1key/keymaps/leddance/rules.mk b/keyboards/woodkeys/bigseries/1key/keymaps/leddance/rules.mk index 1ba2fa8fbe..e5ddcae8d9 100644 --- a/keyboards/woodkeys/bigseries/1key/keymaps/leddance/rules.mk +++ b/keyboards/woodkeys/bigseries/1key/keymaps/leddance/rules.mk @@ -1 +1 @@ -TAP_DANCE_ENABLE = yes \ No newline at end of file +TAP_DANCE_ENABLE = yes diff --git a/keyboards/xdboards/recon/keyboard.json b/keyboards/xdboards/recon/keyboard.json index 65f3c88a32..2ba4ccdb08 100644 --- a/keyboards/xdboards/recon/keyboard.json +++ b/keyboards/xdboards/recon/keyboard.json @@ -198,4 +198,4 @@ "hue": 126 } } -} \ No newline at end of file +} diff --git a/keyboards/xdboards/recon/post_config.h b/keyboards/xdboards/recon/post_config.h index 9e4950e04a..dc302cbf78 100644 --- a/keyboards/xdboards/recon/post_config.h +++ b/keyboards/xdboards/recon/post_config.h @@ -21,4 +21,4 @@ # define WS2812_DI_PIN 25U #else # define WS2812_DI_PIN B3 -#endif \ No newline at end of file +#endif diff --git a/keyboards/xdboards/recon/post_rules.mk b/keyboards/xdboards/recon/post_rules.mk index 8b9382b32a..afa01106e5 100644 --- a/keyboards/xdboards/recon/post_rules.mk +++ b/keyboards/xdboards/recon/post_rules.mk @@ -1,3 +1,3 @@ ifeq ($(strip $(USE_SEA_PICRO_RGB_PIN)), yes) OPT_DEFS += -DUSE_SEA_PICRO_RGB_PIN -endif \ No newline at end of file +endif diff --git a/keyboards/xdboards/recon/readme.md b/keyboards/xdboards/recon/readme.md index 49dbddbbfb..c431179ae9 100644 --- a/keyboards/xdboards/recon/readme.md +++ b/keyboards/xdboards/recon/readme.md @@ -54,4 +54,4 @@ In your keymap directory: #define RGB_MATRIX_SPLIT { 5, 5 } #define RGB_MATRIX_LED_COUNT 10 ``` - \ No newline at end of file + diff --git a/keyboards/xdboards/recon/recon.c b/keyboards/xdboards/recon/recon.c index 823f3df7bf..f623c5ffbd 100644 --- a/keyboards/xdboards/recon/recon.c +++ b/keyboards/xdboards/recon/recon.c @@ -115,4 +115,4 @@ bool encoder_update_kb(uint8_t index, bool clockwise) { } return true; } -#endif \ No newline at end of file +#endif diff --git a/keyboards/xelus/dawn60/readme.md b/keyboards/xelus/dawn60/readme.md index 8e01381939..530a93b617 100644 --- a/keyboards/xelus/dawn60/readme.md +++ b/keyboards/xelus/dawn60/readme.md @@ -10,4 +10,4 @@ Make example for this keyboard (after setting up your build environment): make xelus/dawn60/rev1: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). \ No newline at end of file +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/xelus/dawn60/rev1_qmk/readme.md b/keyboards/xelus/dawn60/rev1_qmk/readme.md index b105dd6c7a..68357d6471 100644 --- a/keyboards/xelus/dawn60/rev1_qmk/readme.md +++ b/keyboards/xelus/dawn60/rev1_qmk/readme.md @@ -1,3 +1,3 @@ # Dawn60 -The QMK RGB Matrix Version \ No newline at end of file +The QMK RGB Matrix Version diff --git a/keyboards/xiudi/xd60/keymaps/crd_ansi/README.md b/keyboards/xiudi/xd60/keymaps/crd_ansi/README.md index 80e4550249..bf571d3432 100644 --- a/keyboards/xiudi/xd60/keymaps/crd_ansi/README.md +++ b/keyboards/xiudi/xd60/keymaps/crd_ansi/README.md @@ -49,4 +49,4 @@ controls, RGB (underglow) controls, and firmware reset (DFU mode). * `-----------------------------------------------------------------------------------------' */ -``` \ No newline at end of file +``` diff --git a/keyboards/xiudi/xd60/keymaps/split_bksp_arrows/readme.md b/keyboards/xiudi/xd60/keymaps/split_bksp_arrows/readme.md index 35a5e4f224..a24685de80 100644 --- a/keyboards/xiudi/xd60/keymaps/split_bksp_arrows/readme.md +++ b/keyboards/xiudi/xd60/keymaps/split_bksp_arrows/readme.md @@ -5,4 +5,4 @@ make xd60:split_bksp_arrows ![Layout](https://photos.app.goo.gl/cjpRZ2j8q3X1ONck1 "Layout") ## KLE Link -http://www.keyboard-layout-editor.com/#/gists/5bb96ed3f4974bf74b1c448c8349d01f \ No newline at end of file +http://www.keyboard-layout-editor.com/#/gists/5bb96ed3f4974bf74b1c448c8349d01f diff --git a/keyboards/xiudi/xd84pro/keymaps/default/keymap.c b/keyboards/xiudi/xd84pro/keymaps/default/keymap.c index 884b7b27ec..6c16b4d82d 100644 --- a/keyboards/xiudi/xd84pro/keymaps/default/keymap.c +++ b/keyboards/xiudi/xd84pro/keymaps/default/keymap.c @@ -49,4 +49,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ /* └───────────┴───────────┴───────────┴───────────────────────────────────────────────────────────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘ */ ) -}; \ No newline at end of file +}; diff --git a/keyboards/xiudi/xd87/keymaps/default_underglow/readme.md b/keyboards/xiudi/xd87/keymaps/default_underglow/readme.md index 676709fccd..627449e489 100755 --- a/keyboards/xiudi/xd87/keymaps/default_underglow/readme.md +++ b/keyboards/xiudi/xd87/keymaps/default_underglow/readme.md @@ -10,4 +10,4 @@ The RGB Underglow feature is disabled by default. This specific keymap enables R ### Layer 1 -![XD87 - rgb_default keymap - layer 1](https://i.imgur.com/BIsAgtO.png) \ No newline at end of file +![XD87 - rgb_default keymap - layer 1](https://i.imgur.com/BIsAgtO.png) diff --git a/keyboards/xiudi/xd87/readme.md b/keyboards/xiudi/xd87/readme.md index 7beae2c6c8..79bbcddd22 100644 --- a/keyboards/xiudi/xd87/readme.md +++ b/keyboards/xiudi/xd87/readme.md @@ -23,4 +23,4 @@ It also supports the tkl_ansi and tkl_iso community layouts: The keyboard can be reset to bootloader by using bootmagic (top left key by default) or short out the small connector between the Delete and End keys. -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 +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/xiudi/xd96/matrix.c b/keyboards/xiudi/xd96/matrix.c index 2c433f02b8..f73fce267f 100644 --- a/keyboards/xiudi/xd96/matrix.c +++ b/keyboards/xiudi/xd96/matrix.c @@ -90,4 +90,4 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) { changed |= read_cols_on_row(current_matrix, current_row); } return changed; -} \ No newline at end of file +} diff --git a/keyboards/xw60/keymaps/default/readme.md b/keyboards/xw60/keymaps/default/readme.md index 0e146718a4..71bd405428 100644 --- a/keyboards/xw60/keymaps/default/readme.md +++ b/keyboards/xw60/keymaps/default/readme.md @@ -55,4 +55,4 @@ |--------------------------------------------------------------------------| | | | | | | | | '--------------------------------------------------------------------------' - ``` \ No newline at end of file + ``` diff --git a/keyboards/yiancardesigns/gingham/keymaps/default/readme.md b/keyboards/yiancardesigns/gingham/keymaps/default/readme.md index 2f3372492e..9e12473d8b 100644 --- a/keyboards/yiancardesigns/gingham/keymaps/default/readme.md +++ b/keyboards/yiancardesigns/gingham/keymaps/default/readme.md @@ -3,4 +3,4 @@ The default keymap for Gingham ![Layout image](https://i.imgur.com/WwOVJTh.jpg) -Default layer is normal ANSI and Fn layer is used for Volume control and arrow cluster. \ No newline at end of file +Default layer is normal ANSI and Fn layer is used for Volume control and arrow cluster. diff --git a/keyboards/yiancardesigns/gingham/keymaps/iso/readme.md b/keyboards/yiancardesigns/gingham/keymaps/iso/readme.md index cd29c28900..eed9639cbc 100644 --- a/keyboards/yiancardesigns/gingham/keymaps/iso/readme.md +++ b/keyboards/yiancardesigns/gingham/keymaps/iso/readme.md @@ -3,4 +3,4 @@ The default keymap for ISO Gingham ![Layout image](https://i.imgur.com/WwOVJTh.jpg) -Default layer is normal ISO and Fn layer is used for Volume control and arrow cluster \ No newline at end of file +Default layer is normal ISO and Fn layer is used for Volume control and arrow cluster diff --git a/keyboards/ymdk/yd60mq/keymaps/iso/keymap.c b/keyboards/ymdk/yd60mq/keymaps/iso/keymap.c index 310549c07d..21819edf2d 100644 --- a/keyboards/ymdk/yd60mq/keymaps/iso/keymap.c +++ b/keyboards/ymdk/yd60mq/keymaps/iso/keymap.c @@ -25,4 +25,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, UG_TOGG, UG_SPDU, UG_SPDD, XXXXXXX, KC_TRNS ) -}; \ No newline at end of file +}; diff --git a/keyboards/ymdk/ymd62/config.h b/keyboards/ymdk/ymd62/config.h index 5f1f3f3a2a..dfe035edf0 100644 --- a/keyboards/ymdk/ymd62/config.h +++ b/keyboards/ymdk/ymd62/config.h @@ -8,4 +8,4 @@ #define WS2812_PWM_CHANNEL 4 #define WS2812_PWM_PAL_MODE 2 #define WS2812_DMA_STREAM STM32_DMA1_STREAM7 -#define WS2812_DMA_CHANNEL 7 \ No newline at end of file +#define WS2812_DMA_CHANNEL 7 diff --git a/keyboards/ymdk/ymd62/keymaps/default/keymap.c b/keyboards/ymdk/ymd62/keymaps/default/keymap.c index e5be1d7910..cbef3448ee 100644 --- a/keyboards/ymdk/ymd62/keymaps/default/keymap.c +++ b/keyboards/ymdk/ymd62/keymaps/default/keymap.c @@ -16,4 +16,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_LEFT, KC_DOWN, KC_RGHT, 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_NEXT, RM_PREV, RM_HUEU, RM_HUED, RM_SATU, RM_SATD, RM_VALU, RM_VALD, RGB_M_P, KC_TRNS, KC_TRNS, KC_VOLU, KC_VOLD, KC_MUTE, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) -}; \ No newline at end of file +}; diff --git a/keyboards/ymdk/ymd62/mcuconf.h b/keyboards/ymdk/ymd62/mcuconf.h index 3c07640371..4c28b523ec 100644 --- a/keyboards/ymdk/ymd62/mcuconf.h +++ b/keyboards/ymdk/ymd62/mcuconf.h @@ -6,4 +6,4 @@ #include_next #undef STM32_PWM_USE_TIM4 -#define STM32_PWM_USE_TIM4 TRUE \ No newline at end of file +#define STM32_PWM_USE_TIM4 TRUE diff --git a/keyboards/ymdk/ymd62/readme.md b/keyboards/ymdk/ymd62/readme.md index 73eeed3dbb..5fc42487e7 100644 --- a/keyboards/ymdk/ymd62/readme.md +++ b/keyboards/ymdk/ymd62/readme.md @@ -25,4 +25,4 @@ Enter the bootloader in 3 ways: * **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available Note: The device does not reconnect automatically after the QMK firmware has been flashed. -Wait for the USB device to disappear after writing firmware, then unplug and re-plug it. \ No newline at end of file +Wait for the USB device to disappear after writing firmware, then unplug and re-plug it. diff --git a/keyboards/ymdk/ymd62/rules.mk b/keyboards/ymdk/ymd62/rules.mk index ef4364b06a..6f0a3736a7 100644 --- a/keyboards/ymdk/ymd62/rules.mk +++ b/keyboards/ymdk/ymd62/rules.mk @@ -1,2 +1,2 @@ # Configure for 128K flash -MCU_LDSCRIPT = STM32F103xB \ No newline at end of file +MCU_LDSCRIPT = STM32F103xB diff --git a/keyboards/yushakobo/ergo68/readme.md b/keyboards/yushakobo/ergo68/readme.md index 863c747f77..09369eef56 100644 --- a/keyboards/yushakobo/ergo68/readme.md +++ b/keyboards/yushakobo/ergo68/readme.md @@ -24,4 +24,4 @@ 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 +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/yushakobo/quick7/keymaps/default/readme.md b/keyboards/yushakobo/quick7/keymaps/default/readme.md index 644098edfa..faa75fdd17 100644 --- a/keyboards/yushakobo/quick7/keymaps/default/readme.md +++ b/keyboards/yushakobo/quick7/keymaps/default/readme.md @@ -22,4 +22,4 @@ Right Encoder(CW: RGB HUE-, CCW: RGB HUE+) ----------- --------- ------------ | MEDIA << | VOL- | MEDIA >> | `----------- --------- ------------' -``` \ No newline at end of file +``` diff --git a/keyboards/zeix/acidandco/stellaron/readme.md b/keyboards/zeix/acidandco/stellaron/readme.md index 0b865aeee4..f07153035c 100644 --- a/keyboards/zeix/acidandco/stellaron/readme.md +++ b/keyboards/zeix/acidandco/stellaron/readme.md @@ -24,4 +24,4 @@ Enter the bootloader in 3 ways: * **Bootmagic reset**: Hold down the top left key and plug in the keyboard. * **Physical reset button**: Briefly press the `RESET` button twice or short the `USB_BOOT` and `GND` pads and plug in the keyboard. -* **Keycode in layout**: Press the key mapped to `QK_BOOT`. \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT`. diff --git a/keyboards/zeix/eden/readme.md b/keyboards/zeix/eden/readme.md index 85f1ff66de..af36d01fb0 100644 --- a/keyboards/zeix/eden/readme.md +++ b/keyboards/zeix/eden/readme.md @@ -24,4 +24,4 @@ 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 `RESET` button twice or short the `USB_BOOT` and `GND` pads and plug in the keyboard -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/zeix/qwertyqop60hs/readme.md b/keyboards/zeix/qwertyqop60hs/readme.md index 1a36951fd1..746f069f47 100644 --- a/keyboards/zeix/qwertyqop60hs/readme.md +++ b/keyboards/zeix/qwertyqop60hs/readme.md @@ -24,4 +24,4 @@ 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 'USB_BOOT' button and plug in keyboard or briefly short the `RESET` and `GND` pads on the SWD header twice -* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available \ No newline at end of file +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available diff --git a/keyboards/zj68/keymaps/default/readme.md b/keyboards/zj68/keymaps/default/readme.md index 3522fe0229..6845f00f12 100644 --- a/keyboards/zj68/keymaps/default/readme.md +++ b/keyboards/zj68/keymaps/default/readme.md @@ -1,3 +1,3 @@ # ZJ68 Default layout -This is the default layout from the json file provided on Drop, that was intended to be used on kbdfirmware, with an added soft reset on fn(backspace). \ No newline at end of file +This is the default layout from the json file provided on Drop, that was intended to be used on kbdfirmware, with an added soft reset on fn(backspace). diff --git a/keyboards/ztboards/after/readme.md b/keyboards/ztboards/after/readme.md index 6dc2bc783a..7e89351fcb 100644 --- a/keyboards/ztboards/after/readme.md +++ b/keyboards/ztboards/after/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): 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). -Esc + plugging in will put the keyboard into bootloader. \ No newline at end of file +Esc + plugging in will put the keyboard into bootloader. diff --git a/keyboards/ztboards/noon/readme.md b/keyboards/ztboards/noon/readme.md index 96b2bcd8de..b143e02de1 100644 --- a/keyboards/ztboards/noon/readme.md +++ b/keyboards/ztboards/noon/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): 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). -Esc + plugging in will put the keyboard into bootloader. \ No newline at end of file +Esc + plugging in will put the keyboard into bootloader. diff --git a/keyboards/zvecr/split_blackpill/readme.md b/keyboards/zvecr/split_blackpill/readme.md index 811e308f77..bdf8470b2a 100644 --- a/keyboards/zvecr/split_blackpill/readme.md +++ b/keyboards/zvecr/split_blackpill/readme.md @@ -12,4 +12,4 @@ Make example for this keyboard (after setting up your build environment): make zvecr/split_blackpill: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). \ No newline at end of file +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/quantum/nvm/readme.md b/quantum/nvm/readme.md index 0731695e92..3f5a2a495e 100644 --- a/quantum/nvm/readme.md +++ b/quantum/nvm/readme.md @@ -27,4 +27,4 @@ At the base `nvm` level, for every QMK core system which requires persistence th Each `nvm` "provider" is a corresponding child directory consisting of its name, such as `eeprom`, and corresponding `nvm_<>.c` implementation files which provide the concrete implementation of the upper `nvm_<>.h`. -New systems requiring persistence can add the corresponding `nvm_<>.h` file, and in most circumstances must also implement equivalent `nvm_<>.c` files for every `nvm` provider. If persistence is not possible for that system, a `nvm_<>.c` file with simple stubs which ignore writes and provide sane defaults must be used instead. \ No newline at end of file +New systems requiring persistence can add the corresponding `nvm_<>.h` file, and in most circumstances must also implement equivalent `nvm_<>.c` files for every `nvm` provider. If persistence is not possible for that system, a `nvm_<>.c` file with simple stubs which ignore writes and provide sane defaults must be used instead. diff --git a/quantum/pointing_device/pointing_device.c b/quantum/pointing_device/pointing_device.c index fe88d5a1af..622b6ae5e8 100644 --- a/quantum/pointing_device/pointing_device.c +++ b/quantum/pointing_device/pointing_device.c @@ -582,4 +582,4 @@ __attribute__((weak)) void pointing_device_keycode_handler(uint16_t keycode, boo uint16_t pointing_device_get_hires_scroll_resolution(void) { return hires_scroll_resolution; } -#endif \ No newline at end of file +#endif diff --git a/tmk_core/protocol/usb_descriptor_common.h b/tmk_core/protocol/usb_descriptor_common.h index f782d83fbc..a1dba288ba 100644 --- a/tmk_core/protocol/usb_descriptor_common.h +++ b/tmk_core/protocol/usb_descriptor_common.h @@ -51,4 +51,4 @@ # else # define POINTING_DEVICE_HIRES_SCROLL_EXPONENT 0 # endif -#endif \ No newline at end of file +#endif From 45ccd2e9351b979f8eb8fa359db732e5374b0d53 Mon Sep 17 00:00:00 2001 From: ivan <81021475+ivndbt@users.noreply.github.com> Date: Wed, 11 Feb 2026 21:23:30 +0100 Subject: [PATCH 211/255] Add ows steno board (#25984) --- keyboards/ivndbt/ows/keyboard.json | 74 +++++++++++++++++++ keyboards/ivndbt/ows/keymaps/default/keymap.c | 49 ++++++++++++ .../ivndbt/ows/keymaps/default/readme.md | 6 ++ keyboards/ivndbt/ows/keymaps/default/rules.mk | 1 + keyboards/ivndbt/ows/readme.md | 32 ++++++++ 5 files changed, 162 insertions(+) create mode 100644 keyboards/ivndbt/ows/keyboard.json create mode 100644 keyboards/ivndbt/ows/keymaps/default/keymap.c create mode 100644 keyboards/ivndbt/ows/keymaps/default/readme.md create mode 100644 keyboards/ivndbt/ows/keymaps/default/rules.mk create mode 100644 keyboards/ivndbt/ows/readme.md diff --git a/keyboards/ivndbt/ows/keyboard.json b/keyboards/ivndbt/ows/keyboard.json new file mode 100644 index 0000000000..f36c67a42e --- /dev/null +++ b/keyboards/ivndbt/ows/keyboard.json @@ -0,0 +1,74 @@ +{ + "keyboard_name": "OWS", + "manufacturer": "ivndbt", + "url": "https://github.com/ivndbt/obiwanstenobit", + "maintainer": "ivndbt", + "usb": { + "vid": "0x6961", + "pid": "0x3033", + "device_version": "0.1.1" + }, + "development_board": "promicro_rp2040", + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["GP4", "GP5", "GP6", "GP8", "GP7", "GP22", "GP26", "GP21", "GP23", "GP20"], + "rows": ["GP9", "GP28", "GP27"] + }, + "features": { + "bootmagic": true, + "nkro": true, + "steno": true, + "mousekey": false, + "extrakey": true + }, + "host": { + "default": { + "nkro": true + } + }, + "stenography": { + "enabled": true, + "protocol": "geminipr" + }, + "layouts": { + "LAYOUT": { + "layout": [ + {"matrix": [2, 8], "x": 0, "y": 0}, + {"matrix": [0, 9], "x": 1, "y": 0}, + {"matrix": [0, 8], "x": 2, "y": 0}, + {"matrix": [0, 7], "x": 3, "y": 0}, + {"matrix": [0, 6], "x": 4, "y": 0}, + {"matrix": [0, 5], "x": 5, "y": 0}, + + {"matrix": [0, 0], "x": 8, "y": 0}, + {"matrix": [0, 1], "x": 9, "y": 0}, + {"matrix": [0, 2], "x": 10, "y": 0}, + {"matrix": [0, 3], "x": 11, "y": 0}, + {"matrix": [0, 4], "x": 12, "y": 0}, + {"matrix": [2, 3], "x": 13, "y": 0}, + + {"matrix": [2, 9], "x": 0, "y": 1}, + {"matrix": [1, 9], "x": 1, "y": 1}, + {"matrix": [1, 8], "x": 2, "y": 1}, + {"matrix": [1, 7], "x": 3, "y": 1}, + {"matrix": [1, 6], "x": 4, "y": 1}, + {"matrix": [1, 5], "x": 5, "y": 1}, + + {"matrix": [1, 0], "x": 8, "y": 1}, + {"matrix": [1, 1], "x": 9, "y": 1}, + {"matrix": [1, 2], "x": 10, "y": 1}, + {"matrix": [1, 3], "x": 11, "y": 1}, + {"matrix": [1, 4], "x": 12, "y": 1}, + {"matrix": [2, 4], "x": 13, "y": 1}, + + {"matrix": [2, 7], "x": 3, "y": 3}, + {"matrix": [2, 6], "x": 4, "y": 3}, + {"matrix": [2, 5], "x": 5, "y": 3}, + + {"matrix": [2, 0], "x": 8, "y": 3}, + {"matrix": [2, 1], "x": 9, "y": 3}, + {"matrix": [2, 2], "x": 10, "y": 3} + ] + } + } +} diff --git a/keyboards/ivndbt/ows/keymaps/default/keymap.c b/keyboards/ivndbt/ows/keymaps/default/keymap.c new file mode 100644 index 0000000000..19d484e952 --- /dev/null +++ b/keyboards/ivndbt/ows/keymaps/default/keymap.c @@ -0,0 +1,49 @@ +// Copyright 2026 ivndbt +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +// Layers declarations +enum layers { + _PLOVER, + _LOWER, + _RAISE, + _CONTROL, + _QWERTY +}; + +#define LOWER TL_LOWR +#define RAISE TL_UPPR +#define QWERTY TG(_QWERTY) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +[_PLOVER] = LAYOUT( + LOWER, STN_S1, STN_TL, STN_PL, STN_HL, STN_ST1, STN_ST3, STN_FR, STN_PR, STN_LR, STN_TR, STN_DR, + RAISE, STN_S2, STN_KL, STN_WL, STN_RL, STN_ST2, STN_ST4, STN_RR, STN_BR, STN_GR, STN_SR, STN_ZR, + STN_N1, STN_A, STN_O, STN_E, STN_U, STN_N2 + ), + +[_LOWER] = LAYOUT( + _______, _______, _______, _______, _______, KC_DEL, KC_ESC, _______, KC_UP, _______, KC_PGUP, _______, + _______, _______, _______, _______, _______, _______, KC_TAB, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, + _______, _______, _______, KC_HOME, KC_END, _______ + ), + +[_RAISE] = LAYOUT( + _______, _______, _______, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, KC_BRID, KC_BRIU, _______, _______, _______, + _______, _______, _______, KC_MPRV, KC_MPLY, KC_MNXT + ), + +[_CONTROL] = LAYOUT( + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_BOOT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QWERTY, + _______, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, QK_RBT, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, + XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX + ), + +[_QWERTY] = LAYOUT( + KC_BSPC, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, QWERTY, + KC_SPC, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_Z, KC_ENT, + KC_X, KC_C, KC_V, KC_B, KC_N, KC_M + ) +}; diff --git a/keyboards/ivndbt/ows/keymaps/default/readme.md b/keyboards/ivndbt/ows/keymaps/default/readme.md new file mode 100644 index 0000000000..79cd68eb08 --- /dev/null +++ b/keyboards/ivndbt/ows/keymaps/default/readme.md @@ -0,0 +1,6 @@ +# OWS usage + +OWS is meant to be use with [Plover](https://opensteno.org/plover/) via the GeminiPR steno protocol.\ +To get started, make sure to follow the setup guide described in the [Plover Wiki](https://plover.wiki/index.php/Setting_up_a_hobbyist_writer_with_Plover) for hobbyist writers. + +For an in-depth look at its features, please visit the [project repository](https://github.com/ivndbt/obiwanstenobit). diff --git a/keyboards/ivndbt/ows/keymaps/default/rules.mk b/keyboards/ivndbt/ows/keymaps/default/rules.mk new file mode 100644 index 0000000000..7c9bf212a6 --- /dev/null +++ b/keyboards/ivndbt/ows/keymaps/default/rules.mk @@ -0,0 +1 @@ +TRI_LAYER_ENABLE = yes diff --git a/keyboards/ivndbt/ows/readme.md b/keyboards/ivndbt/ows/readme.md new file mode 100644 index 0000000000..278c10f0ed --- /dev/null +++ b/keyboards/ivndbt/ows/readme.md @@ -0,0 +1,32 @@ +# OWS + +Open-source steno keyboard with a pseudo-split layout, designed to be compact, portable, and cost-effective. + +![OWS](https://i.imgur.com/OKkenaR.jpeg "OWS v1 prototype") + +* Keyboard maintainer: [ivndbt](https://github.com/ivndbt) +* Hardware supported: Pro Micro RP2040 +* Hardware Availability: OWS is open-source, check the [project repository](https://github.com/ivndbt/obiwanstenobit) + +Make example for this keyboard (after setting up your build environment): + + make ivndbt/ows:default + +Flashing example for this keyboard: + + make ivndbt/ows: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 + +1. There are 4 ways to enter the bootloader: + + * **Physical reset button**: Double tap the `RST` button located on the back of the Controller PCB. + * **Physical boot button**: Hold the `BOOT` button as you plug the RP2040 + * **Bootmagic reset**: Hold down the key at (0,0) in the matrix (the top-left key on the right-hand Main PCB) while plugging in the keyboard. + * **Keycode in layout**: Press the key assigned to `QK_BOOT` if it is available + +2. Wait for the OS to detect the device +3. Copy the `.uf2` file to the new USB disk or flash via QMK CLI +4. Wait for the keyboard to become available \ No newline at end of file From 59cc10451b928099390461e5b5bfc24eb5563df5 Mon Sep 17 00:00:00 2001 From: QMK Bot Date: Thu, 12 Feb 2026 07:35:16 +1100 Subject: [PATCH 212/255] [CI] Format code according to conventions (#26005) Format code according to conventions --- keyboards/ivndbt/ows/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/ivndbt/ows/readme.md b/keyboards/ivndbt/ows/readme.md index 278c10f0ed..7cca68ebbf 100644 --- a/keyboards/ivndbt/ows/readme.md +++ b/keyboards/ivndbt/ows/readme.md @@ -29,4 +29,4 @@ See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_to 2. Wait for the OS to detect the device 3. Copy the `.uf2` file to the new USB disk or flash via QMK CLI -4. Wait for the keyboard to become available \ No newline at end of file +4. Wait for the keyboard to become available From 36cdac8fd3ae13f6ae6b9c38a7b719fb16a86745 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Thu, 12 Feb 2026 23:58:13 +0800 Subject: [PATCH 213/255] Remove redundant EEPROM update (#26008) --- quantum/haptic.c | 1 - 1 file changed, 1 deletion(-) diff --git a/quantum/haptic.c b/quantum/haptic.c index 8a743480ff..7fedccff99 100644 --- a/quantum/haptic.c +++ b/quantum/haptic.c @@ -137,7 +137,6 @@ void haptic_toggle(void) { } else { haptic_enable(); } - eeconfig_update_haptic(&haptic_config); } void haptic_feedback_toggle(void) { From 6b423c98e5a31f08179e6abb3333dffbd2195d82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Thu, 12 Feb 2026 23:58:31 +0800 Subject: [PATCH 214/255] Remove an unreachable break statement (#26006) --- quantum/process_keycode/process_dynamic_macro.c | 1 - 1 file changed, 1 deletion(-) diff --git a/quantum/process_keycode/process_dynamic_macro.c b/quantum/process_keycode/process_dynamic_macro.c index 20e90c6e14..3195791849 100644 --- a/quantum/process_keycode/process_dynamic_macro.c +++ b/quantum/process_keycode/process_dynamic_macro.c @@ -320,7 +320,6 @@ bool process_dynamic_macro(uint16_t keycode, keyrecord_t *record) { } } return true; - break; } } From edd2e3d35483ccafe003099092e1fb7033206f2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Thu, 12 Feb 2026 23:58:59 +0800 Subject: [PATCH 215/255] Remove duplicate include of host.h (#26007) --- quantum/keyboard.c | 1 - 1 file changed, 1 deletion(-) diff --git a/quantum/keyboard.c b/quantum/keyboard.c index e0c9373165..debd3caf5c 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -29,7 +29,6 @@ along with this program. If not, see . #include "debug.h" #include "command.h" #include "util.h" -#include "host.h" #include "sendchar.h" #include "eeconfig.h" #include "action_layer.h" From 6b2a2ab7ace1d1b28a497d8607a3a56e9b7a6a10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Fri, 13 Feb 2026 14:51:33 +0800 Subject: [PATCH 216/255] Return INVALID_DEFERRED_TOKEN on allocation failure (#26012) Return the proper deferred_token type instead of boolean false. --- quantum/deferred_exec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/quantum/deferred_exec.c b/quantum/deferred_exec.c index b3be3747d4..41a773140d 100644 --- a/quantum/deferred_exec.c +++ b/quantum/deferred_exec.c @@ -56,7 +56,7 @@ deferred_token defer_exec_advanced(deferred_executor_t *table, size_t table_coun // Work out the new token value, dropping out if none were available deferred_token token = allocate_token(table, table_count); if (token == INVALID_DEFERRED_TOKEN) { - return false; + return INVALID_DEFERRED_TOKEN; } // Set up the executor table entry From 888d42d64c5a27d34946a909f173045bd00ee76f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Fri, 13 Feb 2026 20:35:08 +0800 Subject: [PATCH 217/255] Remove redundant unsigned comparison in apa102_set_brightness (#26010) --- drivers/led/apa102.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/led/apa102.c b/drivers/led/apa102.c index 6a13153374..ead8a11afc 100644 --- a/drivers/led/apa102.c +++ b/drivers/led/apa102.c @@ -145,8 +145,6 @@ void apa102_flush(void) { void apa102_set_brightness(uint8_t brightness) { if (brightness > APA102_MAX_BRIGHTNESS) { apa102_led_brightness = APA102_MAX_BRIGHTNESS; - } else if (brightness < 0) { - apa102_led_brightness = 0; } else { apa102_led_brightness = brightness; } From 403211f7f8034f6988580a4178f877d5a8bc10fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Sat, 14 Feb 2026 02:20:18 +0800 Subject: [PATCH 218/255] Remove unused headers (#26011) --- quantum/keymap_common.c | 2 -- quantum/process_keycode/process_key_lock.c | 1 - 2 files changed, 3 deletions(-) diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 9be9bae943..091ab491c8 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -43,8 +43,6 @@ along with this program. If not, see . extern keymap_config_t keymap_config; -#include - /* converts key to action */ action_t action_for_key(uint8_t layer, keypos_t key) { // 16bit keycodes - important diff --git a/quantum/process_keycode/process_key_lock.c b/quantum/process_keycode/process_key_lock.c index cd691f6f5e..304a89c5cd 100644 --- a/quantum/process_keycode/process_key_lock.c +++ b/quantum/process_keycode/process_key_lock.c @@ -14,7 +14,6 @@ * along with this program. If not, see . */ -#include #include #include "process_key_lock.h" From 036c6100bdac9cb6396f179b2f12a576e28e2bc4 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 13 Feb 2026 18:21:36 +0000 Subject: [PATCH 219/255] Fix incorrect `matrix_scan_custom` implementations (#25999) --- keyboards/joshajohnson/hub16/matrix.c | 62 +++++++++---------------- keyboards/mexsistor/ludmila/matrix.c | 66 +++++++++++---------------- keyboards/qvex/lynepad2/matrix.c | 12 ++--- 3 files changed, 52 insertions(+), 88 deletions(-) diff --git a/keyboards/joshajohnson/hub16/matrix.c b/keyboards/joshajohnson/hub16/matrix.c index 26222cf15a..f786c9fd73 100644 --- a/keyboards/joshajohnson/hub16/matrix.c +++ b/keyboards/joshajohnson/hub16/matrix.c @@ -14,28 +14,23 @@ 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 "wait.h" -#include "util.h" #include "matrix.h" // Encoder things #define SWITCH_1 F7 #define SWITCH_2 D7 -static bool read_encoder_switches(matrix_row_t current_matrix[], uint8_t current_row); static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; -/* matrix state(1:on, 0:off) */ -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values -extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values - static void select_row(uint8_t row) { gpio_set_pin_output(row_pins[row]); gpio_write_pin_low(row_pins[row]); } -static void unselect_row(uint8_t row) { gpio_set_pin_input_high(row_pins[row]); } +static void unselect_row(uint8_t row) { + gpio_set_pin_input_high(row_pins[row]); +} static void unselect_rows(void) { for (uint8_t x = 0; x < MATRIX_ROWS; x++) { @@ -57,9 +52,9 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) // Clear data in matrix row current_matrix[current_row] = 0; - // Select row and wait for row selecton to stabilize + // Select row and wait for row selection to stabilize select_row(current_row); - wait_us(30); + matrix_io_delay(); // For each col... for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { @@ -76,6 +71,19 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) return (last_row_value != current_matrix[current_row]); } +static bool read_encoder_switches(matrix_row_t current_matrix[], uint8_t current_row) { + // Store last value of row prior to reading + matrix_row_t last_row_value = current_matrix[current_row]; + + // Clear data in matrix row + current_matrix[current_row] = 0; + + // Populate the matrix row with the state of the encoder + current_matrix[current_row] |= gpio_read_pin(SWITCH_1) ? (1 << 0) : 0; + current_matrix[current_row] |= gpio_read_pin(SWITCH_2) ? (1 << 1) : 0; + + return (last_row_value != current_matrix[current_row]); +} void matrix_init_custom(void) { // initialize key pins @@ -84,42 +92,16 @@ void matrix_init_custom(void) { init_pins(); } -bool matrix_scan_custom(void) { +bool matrix_scan_custom(matrix_row_t current_matrix[]) { bool changed = false; // Set row, read cols - for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { - changed |= read_cols_on_row(raw_matrix, current_row); + for (uint8_t current_row = 0; current_row < MATRIX_ROWS - 1; current_row++) { + changed |= read_cols_on_row(current_matrix, current_row); } // Read encoder switches, already debounced - changed |= read_encoder_switches(matrix, 4); + changed |= read_encoder_switches(current_matrix, 4); return changed; } - -static bool read_encoder_switches(matrix_row_t current_matrix[], uint8_t current_row) { - // Store last value of row prior to reading - matrix_row_t last_row_value = current_matrix[current_row]; - - // Clear data in matrix row - current_matrix[current_row] = 0; - - // Debounce the encoder buttons using a shift register - static uint8_t btn_1_array; - static uint8_t btn_2_array; - bool btn_1_rise = 0; - bool btn_2_rise = 0; - btn_1_array <<= 1; - btn_2_array <<= 1; - btn_1_array |= gpio_read_pin(SWITCH_1); - btn_2_array |= gpio_read_pin(SWITCH_2); - (btn_1_array == 0b01111111) ? (btn_1_rise = 1) : (btn_1_rise = 0); - (btn_2_array == 0b01111111) ? (btn_2_rise = 1) : (btn_2_rise = 0); - - // Populate the matrix row with the state of the encoder - current_matrix[current_row] |= btn_1_rise ? (1 << 0) : 0; - current_matrix[current_row] |= btn_2_rise ? (1 << 1) : 0; - - return (last_row_value != current_matrix[current_row]); -} diff --git a/keyboards/mexsistor/ludmila/matrix.c b/keyboards/mexsistor/ludmila/matrix.c index fd197f366d..be16612c1e 100644 --- a/keyboards/mexsistor/ludmila/matrix.c +++ b/keyboards/mexsistor/ludmila/matrix.c @@ -14,28 +14,22 @@ 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 "wait.h" -#include "util.h" #include "matrix.h" // Encoder things #define ENC_SW F7 -static bool read_encoder_switches(matrix_row_t current_matrix[], uint8_t current_row); static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; -/* matrix state(1:on, 0:off) */ -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values -extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values - - static void select_row(uint8_t row) { gpio_set_pin_output(row_pins[row]); gpio_write_pin_low(row_pins[row]); } -static void unselect_row(uint8_t row) { gpio_set_pin_input_high(row_pins[row]); } +static void unselect_row(uint8_t row) { + gpio_set_pin_input_high(row_pins[row]); +} static void unselect_rows(void) { for (uint8_t x = 0; x < MATRIX_ROWS; x++) { @@ -57,9 +51,9 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) // Clear data in matrix row current_matrix[current_row] = 0; - // Select row and wait for row selecton to stabilize + // Select row and wait for row selection to stabilize select_row(current_row); - wait_us(30); + matrix_io_delay(); // For each col... for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { @@ -76,27 +70,6 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) return (last_row_value != current_matrix[current_row]); } - -void matrix_init_custom(void) { - // initialize key pins - gpio_set_pin_input(ENC_SW); - init_pins(); -} - -bool matrix_scan_custom(void) { - bool changed = false; - - // Set row, read cols - for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { - changed |= read_cols_on_row(raw_matrix, current_row); - } - - // Read encoder switches, already debounced - changed |= read_encoder_switches(matrix, 2); - - return changed; -} - static bool read_encoder_switches(matrix_row_t current_matrix[], uint8_t current_row) { // Store last value of row prior to reading matrix_row_t last_row_value = current_matrix[current_row]; @@ -104,15 +77,28 @@ static bool read_encoder_switches(matrix_row_t current_matrix[], uint8_t current // Clear data in matrix row current_matrix[current_row] = 0; - // Debounce the encoder buttons using a shift register - static uint8_t btn_1_array; - bool btn_1_pressed = 0; - btn_1_array <<= 1; - btn_1_array |= gpio_read_pin(ENC_SW); - (btn_1_array == 0b11111111) ? (btn_1_pressed = 1) : (btn_1_pressed = 0); - // Populate the matrix row with the state of the encoder - current_matrix[current_row] |= btn_1_pressed ? (1 << 0) : 0; + current_matrix[current_row] |= gpio_read_pin(ENC_SW) ? (1 << 0) : 0; return (last_row_value != current_matrix[current_row]); } + +void matrix_init_custom(void) { + // initialize key pins + gpio_set_pin_input(ENC_SW); + init_pins(); +} + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + bool changed = false; + + // Set row, read cols + for (uint8_t current_row = 0; current_row < MATRIX_ROWS - 1; current_row++) { + changed |= read_cols_on_row(current_matrix, current_row); + } + + // Read encoder switches, already debounced + changed |= read_encoder_switches(current_matrix, 2); + + return changed; +} diff --git a/keyboards/qvex/lynepad2/matrix.c b/keyboards/qvex/lynepad2/matrix.c index 80b6911c46..2dacbb89a6 100644 --- a/keyboards/qvex/lynepad2/matrix.c +++ b/keyboards/qvex/lynepad2/matrix.c @@ -15,14 +15,10 @@ along with this program. If not, see . */ #include "matrix.h" -#include "wait.h" static const pin_t row_pins[MATRIX_ROWS] = MATRIX_ROW_PINS; static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; -extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values -extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values - static void select_row(uint8_t row) { gpio_set_pin_output(row_pins[row]); gpio_write_pin_low(row_pins[row]); @@ -59,7 +55,7 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row) current_matrix[current_row] = 0; select_row(current_row); - wait_us(30); + matrix_io_delay(); for (uint8_t col_index = 0; col_index < MATRIX_COLS; col_index++) { uint8_t pin_state = gpio_read_pin(col_pins[col_index]); @@ -101,14 +97,14 @@ void matrix_init_custom(void) { init_pins(); } -bool matrix_scan_custom(void) { +bool matrix_scan_custom(matrix_row_t current_matrix[]) { bool changed = false; for (uint8_t current_row = 0; current_row < MATRIX_ROWS; current_row++) { - changed |= read_cols_on_row(raw_matrix, current_row); + changed |= read_cols_on_row(current_matrix, current_row); } - changed |= read_encoder_switches(raw_matrix); + changed |= read_encoder_switches(current_matrix); return changed; } From 63a3fc3591f755d1ef6b36269e61df16f4c32707 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 13 Feb 2026 18:21:51 +0000 Subject: [PATCH 220/255] Fix `qmk flash` handling of paths relative to qmk_firmware (#25993) --- lib/python/qmk/path.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/python/qmk/path.py b/lib/python/qmk/path.py index 1739689adf..3b8bafbd4e 100644 --- a/lib/python/qmk/path.py +++ b/lib/python/qmk/path.py @@ -177,5 +177,17 @@ class FileType(argparse.FileType): """normalize and check exists otherwise magic strings like '-' for stdin resolve to bad paths """ + # TODO: This should not return both Path and TextIOWrapper as consumers + # assume that they can call Path.as_posix without checking type + + # Handle absolute paths and relative paths to CWD norm = normpath(string) - return norm if norm.exists() else super().__call__(string) + if norm.exists(): + return norm + + # Handle relative paths to QMK_HOME + relative = Path(string) + if relative.exists(): + return relative + + return super().__call__(string) From 3ac6f603a80ab7d1f2a336c744f53566553c3330 Mon Sep 17 00:00:00 2001 From: Joshua Diamond Date: Fri, 13 Feb 2026 13:22:06 -0500 Subject: [PATCH 221/255] Mark encoders as such in dmqdesign/spin (#25973) --- keyboards/dmqdesign/spin/keyboard.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/keyboards/dmqdesign/spin/keyboard.json b/keyboards/dmqdesign/spin/keyboard.json index dd3cbaa838..374fb7d7de 100644 --- a/keyboards/dmqdesign/spin/keyboard.json +++ b/keyboards/dmqdesign/spin/keyboard.json @@ -49,19 +49,19 @@ {"matrix": [0, 0], "x": 0, "y": 0}, {"matrix": [1, 0], "x": 1, "y": 0}, {"matrix": [2, 0], "x": 2, "y": 0}, - {"matrix": [2, 4], "x": 3.5, "y": 0}, + {"matrix": [2, 4], "x": 3.5, "y": 0, "encoder": 0}, {"matrix": [0, 1], "x": 0, "y": 1}, {"matrix": [1, 1], "x": 1, "y": 1}, {"matrix": [2, 1], "x": 2, "y": 1}, - {"matrix": [1, 4], "x": 3.5, "y": 1.5}, + {"matrix": [1, 4], "x": 3.5, "y": 1.5, "encoder": 1}, {"matrix": [0, 2], "x": 0, "y": 2}, {"matrix": [1, 2], "x": 1, "y": 2}, {"matrix": [2, 2], "x": 2, "y": 2}, - {"matrix": [0, 4], "x": 3.5, "y": 3}, + {"matrix": [0, 4], "x": 3.5, "y": 3, "encoder": 2}, {"matrix": [0, 3], "x": 0, "y": 3}, {"matrix": [1, 3], "x": 1, "y": 3}, {"matrix": [2, 3], "x": 2, "y": 3} From f8daa3cc40a87e7c3846414ef124f7f5ed346bd0 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 16 Feb 2026 02:18:04 +0000 Subject: [PATCH 222/255] Add 'none of the above' to `new-keyboard` dev board prompt (#25998) --- lib/python/qmk/cli/new/keyboard.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/python/qmk/cli/new/keyboard.py b/lib/python/qmk/cli/new/keyboard.py index bd02acf9c8..dd1d06e189 100644 --- a/lib/python/qmk/cli/new/keyboard.py +++ b/lib/python/qmk/cli/new/keyboard.py @@ -184,7 +184,10 @@ def prompt_dev_board(): prompt_heading_subheading("Select Development Board", """For more information, see: https://docs.qmk.fm/compatible_microcontrollers""") - return choice("Development Board?", dev_boards, default=dev_boards.index("promicro")) + filtered_dev_boards = dev_boards.copy() + filtered_dev_boards.append("none of the above") + + return choice("Development Board?", filtered_dev_boards, default=len(filtered_dev_boards) - 1) def prompt_mcu(): @@ -222,10 +225,14 @@ def new_keyboard(cli): real_name = cli.args.realname or cli.config.new_keyboard.name if cli.args.realname or cli.config.new_keyboard.name else prompt_name(user_name) default_layout = cli.args.layout if cli.args.layout else prompt_layout() + mcu = None if cli.args.type: mcu = cli.args.type else: - mcu = prompt_dev_board() if prompt_mcu_type() else prompt_mcu() + if prompt_mcu_type(): + mcu = prompt_dev_board() + if not mcu or mcu == "none of the above": + mcu = prompt_mcu() config = {} if mcu in dev_boards: From 1ba0300da7a08a44be57c07360c90fdaf98d9d1b Mon Sep 17 00:00:00 2001 From: Jakob Schikowski Date: Tue, 17 Feb 2026 18:00:51 +0100 Subject: [PATCH 223/255] Fix JSON type for SELECT_SOFT_SERIAL_SPEED (#26003) --- data/mappings/info_config.hjson | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/mappings/info_config.hjson b/data/mappings/info_config.hjson index 8a0c93e5ac..cd4a127844 100644 --- a/data/mappings/info_config.hjson +++ b/data/mappings/info_config.hjson @@ -196,7 +196,7 @@ // Split Keyboard "SOFT_SERIAL_PIN": {"info_key": "split.serial.pin"}, - "SELECT_SOFT_SERIAL_SPEED": {"info_key": "split.serial.speed"}, + "SELECT_SOFT_SERIAL_SPEED": {"info_key": "split.serial.speed", "value_type": "int"}, "SPLIT_HAND_MATRIX_GRID": {"info_key": "split.handedness.matrix_grid", "value_type": "array", "to_c": false}, "SPLIT_HAND_PIN": {"info_key": "split.handedness.pin"}, "SPLIT_USB_DETECT": {"info_key": "split.usb_detect.enabled", "value_type": "flag"}, From cde41cf61124002cbe7d78af389cd437bc0a3b86 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 17 Feb 2026 22:24:03 +0000 Subject: [PATCH 224/255] Remove `config_h_features` from generated `info.json` (#26024) --- lib/python/qmk/cli/info.py | 1 - lib/python/qmk/info.py | 4 ---- 2 files changed, 5 deletions(-) diff --git a/lib/python/qmk/cli/info.py b/lib/python/qmk/cli/info.py index 26f7f0269d..f13e4e91cc 100755 --- a/lib/python/qmk/cli/info.py +++ b/lib/python/qmk/cli/info.py @@ -24,7 +24,6 @@ def _strip_api_content(info_json): info_json.pop('platform_key', None) info_json.pop('processor_type', None) info_json.pop('protocol', None) - info_json.pop('config_h_features', None) info_json.pop('keymaps', None) info_json.pop('keyboard_folder', None) info_json.pop('parse_errors', None) diff --git a/lib/python/qmk/info.py b/lib/python/qmk/info.py index cad93018bd..c51480804b 100644 --- a/lib/python/qmk/info.py +++ b/lib/python/qmk/info.py @@ -324,9 +324,6 @@ def _extract_features(info_data, rules): if key in ['lto']: continue - if 'config_h_features' not in info_data: - info_data['config_h_features'] = {} - if 'features' not in info_data: info_data['features'] = {} @@ -334,7 +331,6 @@ def _extract_features(info_data, rules): _log_warning(info_data, 'Feature %s is specified in both info.json (%s) and rules.mk (%s). The rules.mk value wins.' % (key, info_data['features'], value)) info_data['features'][key] = value - info_data['config_h_features'][key] = value return info_data From e52319b751c43c2efb828f5fd1549780c1177962 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 18 Feb 2026 00:06:23 +0000 Subject: [PATCH 225/255] Check PRs for invalid keyboard build targets (#25992) --- .github/workflows/lint.yml | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index ec5e04804d..19a19d3538 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -31,7 +31,7 @@ jobs: with: use_rest_api: true - - name: Print info + - name: Print git info run: | git rev-parse --short HEAD echo ${{ github.event.pull_request.base.sha }} @@ -78,10 +78,37 @@ jobs: fi exit $exit_code - - name: Verify keyboard aliases + - name: Reset git repo if: always() shell: 'bash {0}' run: | git reset --hard git clean -xfd + + - name: Verify keyboard targets + if: always() + shell: 'bash {0}' + run: | + exit_code=0 + + for file in $(find keyboards/ -name rules.mk | grep -v /keymaps/ | grep -v /common/ | grep -v /lib/); do + dir=$(dirname $file) + + $(find $dir -name keyboard.json -exec false {} +) + if [[ $? == 0 ]]; then + echo "$dir::Legacy target detected" + + ((++exit_code)) + fi + done + + if [[ $exit_code -gt 255 ]]; then + exit 255 + fi + exit $exit_code + + - name: Verify keyboard aliases + if: always() + shell: 'bash {0}' + run: | qmk ci-validate-aliases From 5591a68b6594e1f32849051cc305a1b937a1d98a Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Thu, 19 Feb 2026 11:03:26 +0000 Subject: [PATCH 226/255] Allow custom data sync for community modules (#25955) * Allow custom data sync for community modules * Stub out community_config.h codegen * Fix SPLIT_TRANSACTION_RPC logic --- builddefs/build_keyboard.mk | 17 +++++- data/constants/module_hooks/1.1.2.hjson | 3 + docs/features/community_modules.md | 8 +++ .../qmk/cli/generate/community_modules.py | 55 +++++++++++++++++++ modules/qmk/split_data_sync/config.h | 5 ++ modules/qmk/split_data_sync/qmk_module.json | 5 ++ modules/qmk/split_data_sync/split_data_sync.c | 40 ++++++++++++++ quantum/split_common/transaction_id_define.h | 13 ++++- quantum/split_common/transactions.c | 12 ++-- quantum/split_common/transport.h | 9 +-- 10 files changed, 154 insertions(+), 13 deletions(-) create mode 100644 data/constants/module_hooks/1.1.2.hjson create mode 100644 modules/qmk/split_data_sync/config.h create mode 100644 modules/qmk/split_data_sync/qmk_module.json create mode 100644 modules/qmk/split_data_sync/split_data_sync.c diff --git a/builddefs/build_keyboard.mk b/builddefs/build_keyboard.mk index aa527f79b5..acfad61e7d 100644 --- a/builddefs/build_keyboard.mk +++ b/builddefs/build_keyboard.mk @@ -187,6 +187,11 @@ include $(COMMUNITY_RULES_MK) ifneq ($(COMMUNITY_MODULES),) +$(INTERMEDIATE_OUTPUT)/src/community_config.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES) + @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) + $(eval CMD=$(QMK_BIN) generate-community-config-h -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_config.h $(KEYMAP_JSON)) + @$(BUILD_CMD) + $(INTERMEDIATE_OUTPUT)/src/community_modules.h: $(KEYMAP_JSON) $(DD_CONFIG_FILES) @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) $(eval CMD=$(QMK_BIN) generate-community-modules-h -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(KEYMAP_JSON)) @@ -217,9 +222,15 @@ $(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc: $(KEYMAP_JSON) $(DD $(eval CMD=$(QMK_BIN) generate-rgb-matrix-community-modules-inc -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc $(KEYMAP_JSON)) @$(BUILD_CMD) +$(INTERMEDIATE_OUTPUT)/src/split_transaction_id_community_modules.inc: $(KEYMAP_JSON) $(DD_CONFIG_FILES) + @$(SILENT) || printf "$(MSG_GENERATING) $@" | $(AWK_CMD) + $(eval CMD=$(QMK_BIN) generate-split-transaction-id-community-modules-inc -kb $(KEYBOARD) --quiet --output $(INTERMEDIATE_OUTPUT)/src/split_transaction_id_community_modules.inc $(KEYMAP_JSON)) + @$(BUILD_CMD) + +COMMUNITY_CONFIG_H = $(INTERMEDIATE_OUTPUT)/src/community_config.h SRC += $(INTERMEDIATE_OUTPUT)/src/community_modules.c -generated-files: $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(INTERMEDIATE_OUTPUT)/src/community_modules.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h $(INTERMEDIATE_OUTPUT)/src/led_matrix_community_modules.inc $(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc +generated-files: $(INTERMEDIATE_OUTPUT)/src/community_config.h $(INTERMEDIATE_OUTPUT)/src/community_modules.h $(INTERMEDIATE_OUTPUT)/src/community_modules.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.c $(INTERMEDIATE_OUTPUT)/src/community_modules_introspection.h $(INTERMEDIATE_OUTPUT)/src/led_matrix_community_modules.inc $(INTERMEDIATE_OUTPUT)/src/rgb_matrix_community_modules.inc $(INTERMEDIATE_OUTPUT)/src/split_transaction_id_community_modules.inc endif @@ -320,6 +331,10 @@ define config_h_community_module_appender endef $(foreach module,$(COMMUNITY_MODULE_PATHS),$(eval $(call config_h_community_module_appender,$(module)))) +ifneq ($(COMMUNITY_CONFIG_H),) + CONFIG_H += $(COMMUNITY_CONFIG_H) +endif + ifneq ("$(wildcard $(KEYBOARD_PATH_5)/config.h)","") CONFIG_H += $(KEYBOARD_PATH_5)/config.h endif diff --git a/data/constants/module_hooks/1.1.2.hjson b/data/constants/module_hooks/1.1.2.hjson new file mode 100644 index 0000000000..3d4d100f83 --- /dev/null +++ b/data/constants/module_hooks/1.1.2.hjson @@ -0,0 +1,3 @@ +{ + // This version exists to signify addition of split data sync support. +} diff --git a/docs/features/community_modules.md b/docs/features/community_modules.md index eff07c939a..c8adf58674 100644 --- a/docs/features/community_modules.md +++ b/docs/features/community_modules.md @@ -95,6 +95,10 @@ The use of `features` matches the definition normally provided within `keyboard. The `keycodes` array allows a module to provide new keycodes (as well as corresponding aliases) to a keymap. +### `config.h` + +This file will be automatically added to the build as if it were present in the keyboard or keymap. + ### `rules.mk` / `post_rules.mk` These two files follows standard QMK build system logic, allowing for `Makefile`-style customisation as if it were present in the keyboard or keymap. @@ -131,6 +135,10 @@ This file defines LED matrix effects in the same form as used with `led_matrix_k This file defines RGB matrix effects in the same form as used with `rgb_matrix_kb.inc` and `rgb_matrix_user.inc` (see [Custom RGB Matrix Effects](rgb_matrix#custom-rgb-matrix-effects)). Effect mode names are prepended with `RGB_MATRIX_COMMUNITY_MODULE_`. +### Custom split keyboard data sync + +Defines follow the convention, `SPLIT_TRANSACTION_IDS_MODULE_` (see [Custom LED Matrix Effects](split_keyboard#custom-data-sync)). + ### Compatible APIs Community Modules may provide specializations for the following APIs: diff --git a/lib/python/qmk/cli/generate/community_modules.py b/lib/python/qmk/cli/generate/community_modules.py index a5ab61f9bd..22bb7c0a13 100644 --- a/lib/python/qmk/cli/generate/community_modules.py +++ b/lib/python/qmk/cli/generate/community_modules.py @@ -194,6 +194,38 @@ def generate_community_modules_rules_mk(cli): cli.log.info('Wrote rules.mk to %s.', cli.args.output) +@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') +@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") +@cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate community_config.h for.') +@cli.argument('filename', nargs='?', type=qmk.path.FileType('r'), arg_only=True, completer=FilesCompleter('.json'), help='Configurator JSON file') +@cli.subcommand('Creates a community_config.h from a keymap.json file.') +def generate_community_config_h(cli): + """Creates a community_config.h from a keymap.json file + """ + if cli.args.output and cli.args.output.name == '-': + cli.args.output = None + + lines = [ + GPL2_HEADER_C_LIKE, + GENERATED_HEADER_C_LIKE, + '#pragma once', + '', + ] + + modules = get_modules(cli.args.keyboard, cli.args.filename) + if len(modules) > 0: + lines.append('// Split transactions') + for module in modules: + lines.extend([ + f'#ifdef SPLIT_TRANSACTION_IDS_MODULE_{Path(module).name.upper()}', + '# define SPLIT_TRANSACTION_RPC', + '#endif', + ]) + lines.append('') + + dump_lines(cli.args.output, lines, cli.args.quiet, remove_repeated_newlines=True) + + @cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') @cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") @cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate community_modules.h for.') @@ -339,3 +371,26 @@ def generate_rgb_matrix_community_modules_inc(cli): """Creates an rgb_matrix_community_modules.inc from a keymap.json file """ _generate_include_per_module(cli, 'rgb_matrix_module.inc') + + +@cli.argument('-o', '--output', arg_only=True, type=qmk.path.normpath, help='File to write to') +@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") +@cli.argument('-kb', '--keyboard', arg_only=True, type=keyboard_folder, completer=keyboard_completer, help='Keyboard to generate split_transaction_id_community_modules.inc for.') +@cli.argument('filename', nargs='?', type=qmk.path.FileType('r'), arg_only=True, completer=FilesCompleter('.json'), help='Configurator JSON file') +@cli.subcommand('Creates an split_transaction_id_community_modules.inc from a keymap.json file.') +def generate_split_transaction_id_community_modules_inc(cli): + """Creates an split_transaction_id_community_modules.inc from a keymap.json file + """ + if cli.args.output and cli.args.output.name == '-': + cli.args.output = None + + lines = [GPL2_HEADER_C_LIKE, GENERATED_HEADER_C_LIKE] + + for module in get_modules(cli.args.keyboard, cli.args.filename): + lines.extend([ + f'#ifdef SPLIT_TRANSACTION_IDS_MODULE_{Path(module).name.upper()}', + f' SPLIT_TRANSACTION_IDS_MODULE_{Path(module).name.upper()},', + '#endif', + ]) + + dump_lines(cli.args.output, lines, cli.args.quiet, remove_repeated_newlines=True) diff --git a/modules/qmk/split_data_sync/config.h b/modules/qmk/split_data_sync/config.h new file mode 100644 index 0000000000..22a8505489 --- /dev/null +++ b/modules/qmk/split_data_sync/config.h @@ -0,0 +1,5 @@ +// Copyright 2026 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#pragma once + +#define SPLIT_TRANSACTION_IDS_MODULE_SPLIT_DATA_SYNC EXAMPLE_MODULE_SYNC_A diff --git a/modules/qmk/split_data_sync/qmk_module.json b/modules/qmk/split_data_sync/qmk_module.json new file mode 100644 index 0000000000..286cf29248 --- /dev/null +++ b/modules/qmk/split_data_sync/qmk_module.json @@ -0,0 +1,5 @@ +{ + "module_name": "Example split data sync", + "maintainer": "QMK Maintainers", + "license": "GPL-2.0-or-later" +} diff --git a/modules/qmk/split_data_sync/split_data_sync.c b/modules/qmk/split_data_sync/split_data_sync.c new file mode 100644 index 0000000000..cf0a93c350 --- /dev/null +++ b/modules/qmk/split_data_sync/split_data_sync.c @@ -0,0 +1,40 @@ +// Copyright 2026 QMK +// SPDX-License-Identifier: GPL-2.0-or-later +#include "debug.h" +#include "timer.h" +#include "transactions.h" + +typedef struct _master_to_slave_t { + int m2s_data; +} master_to_slave_t; + +typedef struct _slave_to_master_t { + int s2m_data; +} slave_to_master_t; + +static void module_sync_slave_handler(uint8_t in_buflen, const void *in_data, uint8_t out_buflen, void *out_data) { + const master_to_slave_t *m2s = (const master_to_slave_t *)in_data; + slave_to_master_t *s2m = (slave_to_master_t *)out_data; + s2m->s2m_data = m2s->m2s_data + 5; // whatever comes in, add 5 so it can be sent back +} + +void keyboard_post_init_split_data_sync(void) { + transaction_register_rpc(EXAMPLE_MODULE_SYNC_A, module_sync_slave_handler); +} + +void housekeeping_task_split_data_sync(void) { + if (is_keyboard_master()) { + // Interact with slave every 500ms + static uint32_t last_sync = 0; + if (timer_elapsed32(last_sync) > 500) { + master_to_slave_t m2s = {6}; + slave_to_master_t s2m = {0}; + if (transaction_rpc_exec(EXAMPLE_MODULE_SYNC_A, sizeof(m2s), &m2s, sizeof(s2m), &s2m)) { + last_sync = timer_read32(); + dprintf("Slave value: %d\n", s2m.s2m_data); // this will now be 11, as the slave adds 5 + } else { + dprint("Slave sync failed!\n"); + } + } + } +} diff --git a/quantum/split_common/transaction_id_define.h b/quantum/split_common/transaction_id_define.h index 694737868a..c383b26adb 100644 --- a/quantum/split_common/transaction_id_define.h +++ b/quantum/split_common/transaction_id_define.h @@ -18,6 +18,10 @@ #include "compiler_support.h" +#if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +# define SPLIT_TRANSACTION_RPC +#endif + enum serial_transaction_id { #ifdef USE_I2C I2C_EXECUTE_CALLBACK, @@ -99,12 +103,12 @@ enum serial_transaction_id { PUT_ACTIVITY, #endif // SPLIT_ACTIVITY_ENABLE -#if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#if defined(SPLIT_TRANSACTION_RPC) PUT_RPC_INFO, PUT_RPC_REQ_DATA, EXECUTE_RPC, GET_RPC_RESP_DATA, -#endif // defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#endif // defined(SPLIT_TRANSACTION_RPC) // keyboard-specific #ifdef SPLIT_TRANSACTION_IDS_KB @@ -116,6 +120,11 @@ enum serial_transaction_id { SPLIT_TRANSACTION_IDS_USER, #endif // SPLIT_TRANSACTION_IDS_USER +// community module specific +#ifdef COMMUNITY_MODULES_ENABLE +# include "split_transaction_id_community_modules.inc" +#endif // COMMUNITY_MODULES_ENABLE + #if defined(OS_DETECTION_ENABLE) && defined(SPLIT_DETECTED_OS_ENABLE) PUT_DETECTED_OS, #endif // defined(OS_DETECTION_ENABLE) && defined(SPLIT_DETECTED_OS_ENABLE) diff --git a/quantum/split_common/transactions.c b/quantum/split_common/transactions.c index 64a81ef31f..ffc3e45c2c 100644 --- a/quantum/split_common/transactions.c +++ b/quantum/split_common/transactions.c @@ -85,11 +85,11 @@ #define transport_read(id, data, length) transport_execute_transaction(id, NULL, 0, data, length) #define transport_exec(id) transport_execute_transaction(id, NULL, 0, NULL, 0) -#if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#if defined(SPLIT_TRANSACTION_RPC) // Forward-declare the RPC callback handlers void slave_rpc_info_callback(uint8_t initiator2target_buffer_size, const void *initiator2target_buffer, uint8_t target2initiator_buffer_size, void *target2initiator_buffer); void slave_rpc_exec_callback(uint8_t initiator2target_buffer_size, const void *initiator2target_buffer, uint8_t target2initiator_buffer_size, void *target2initiator_buffer); -#endif // defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#endif // defined(SPLIT_TRANSACTION_RPC) //////////////////////////////////////////////////// // Helpers @@ -943,12 +943,12 @@ split_transaction_desc_t split_transaction_table[NUM_TOTAL_TRANSACTIONS] = { TRANSACTIONS_DETECTED_OS_REGISTRATIONS // clang-format on -#if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#if defined(SPLIT_TRANSACTION_RPC) [PUT_RPC_INFO] = trans_initiator2target_initializer_cb(rpc_info, slave_rpc_info_callback), [PUT_RPC_REQ_DATA] = trans_initiator2target_initializer(rpc_m2s_buffer), [EXECUTE_RPC] = trans_initiator2target_initializer_cb(rpc_info.payload.transaction_id, slave_rpc_exec_callback), [GET_RPC_RESP_DATA] = trans_target2initiator_initializer(rpc_s2m_buffer), -#endif // defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#endif // defined(SPLIT_TRANSACTION_RPC) }; bool transactions_master(matrix_row_t master_matrix[], matrix_row_t slave_matrix[]) { @@ -996,7 +996,7 @@ void transactions_slave(matrix_row_t master_matrix[], matrix_row_t slave_matrix[ TRANSACTIONS_DETECTED_OS_SLAVE(); } -#if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#if defined(SPLIT_TRANSACTION_RPC) void transaction_register_rpc(int8_t transaction_id, slave_callback_t callback) { // Prevent invoking RPC on QMK core sync data @@ -1073,4 +1073,4 @@ void slave_rpc_exec_callback(uint8_t initiator2target_buffer_size, const void *i } } -#endif // defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#endif // defined(SPLIT_TRANSACTION_RPC) diff --git a/quantum/split_common/transport.h b/quantum/split_common/transport.h index fbd87ca312..e6caca4fa8 100644 --- a/quantum/split_common/transport.h +++ b/quantum/split_common/transport.h @@ -22,6 +22,7 @@ #include "progmem.h" #include "action_layer.h" #include "matrix.h" +#include "transaction_id_define.h" #ifndef RPC_M2S_BUFFER_SIZE # define RPC_M2S_BUFFER_SIZE 32 @@ -132,7 +133,7 @@ typedef struct _split_slave_activity_sync_t { } split_slave_activity_sync_t; #endif // defined(SPLIT_ACTIVITY_ENABLE) -#if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#if defined(SPLIT_TRANSACTION_RPC) typedef struct _rpc_sync_info_t { uint8_t checksum; struct { @@ -141,7 +142,7 @@ typedef struct _rpc_sync_info_t { uint8_t s2m_length; } payload; } rpc_sync_info_t; -#endif // defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#endif // defined(SPLIT_TRANSACTION_RPC) #if defined(OS_DETECTION_ENABLE) && defined(SPLIT_DETECTED_OS_ENABLE) # include "os_detection.h" @@ -222,11 +223,11 @@ typedef struct _split_shared_memory_t { split_slave_activity_sync_t activity_sync; #endif // defined(SPLIT_ACTIVITY_ENABLE) -#if defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#if defined(SPLIT_TRANSACTION_RPC) rpc_sync_info_t rpc_info; uint8_t rpc_m2s_buffer[RPC_M2S_BUFFER_SIZE]; uint8_t rpc_s2m_buffer[RPC_S2M_BUFFER_SIZE]; -#endif // defined(SPLIT_TRANSACTION_IDS_KB) || defined(SPLIT_TRANSACTION_IDS_USER) +#endif // defined(SPLIT_TRANSACTION_RPC) #if defined(OS_DETECTION_ENABLE) && defined(SPLIT_DETECTED_OS_ENABLE) os_variant_t detected_os; From 7bea08cb12d4569adbb3a09ba2191148c1dadbd2 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 20 Feb 2026 12:56:19 +0000 Subject: [PATCH 227/255] Enable strict linting for keyboard PRs (#26026) --- .github/workflows/lint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 19a19d3538..342b8907c6 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -57,7 +57,7 @@ jobs: if [[ $KEYMAP_ONLY -gt 0 ]]; then echo "linting ${KB}" - qmk lint --keyboard ${KB} && qmk info -l --keyboard ${KB} + qmk lint --strict --keyboard ${KB} && qmk info -l --keyboard ${KB} exit_code=$(($exit_code + $?)) fi done From 2d46c967324d31076f266a1f798e183629e2aa9b Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 20 Feb 2026 14:37:16 +0000 Subject: [PATCH 228/255] Remove deprecated GPIO defines (#26028) --- platforms/gpio.h | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/platforms/gpio.h b/platforms/gpio.h index 6a87e75b01..a490ad63ff 100644 --- a/platforms/gpio.h +++ b/platforms/gpio.h @@ -20,20 +20,3 @@ #if __has_include_next("gpio.h") # include_next "gpio.h" /* Include the platforms gpio.h */ #endif - -// ======== DEPRECATED DEFINES - DO NOT USE ======== - -#define setPinInput(pin) gpio_set_pin_input(pin) -#define setPinInputHigh(pin) gpio_set_pin_input_high(pin) -#define setPinInputLow(pin) gpio_set_pin_input_low(pin) -#define setPinOutputPushPull(pin) gpio_set_pin_output_push_pull(pin) -#define setPinOutputOpenDrain(pin) gpio_set_pin_output_open_drain(pin) -#define setPinOutput(pin) gpio_set_pin_output_push_pull(pin) - -#define writePinHigh(pin) gpio_write_pin_high(pin) -#define writePinLow(pin) gpio_write_pin_low(pin) -#define writePin(pin, level) gpio_write_pin(pin, level) - -#define readPin(pin) gpio_read_pin(pin) - -#define togglePin(pin) gpio_toggle_pin(pin) From 4733a2df16ce1299425d00ab3f4b4a63ecf47b36 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 20 Feb 2026 15:45:26 +0000 Subject: [PATCH 229/255] Promote duplication of defaults check to error (#26025) --- lib/python/qmk/cli/lint.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/python/qmk/cli/lint.py b/lib/python/qmk/cli/lint.py index a05bd2fa7e..99775067e9 100644 --- a/lib/python/qmk/cli/lint.py +++ b/lib/python/qmk/cli/lint.py @@ -234,12 +234,15 @@ def _handle_duplicating_code_defaults(kb, info): defaults_map = json_load(Path('data/mappings/info_defaults.hjson')) dotty_info = dotty(info) + ok = True + for key, v_default in _collect_dotted_output(defaults_map): v_info = dotty_info.get(key) if v_default == v_info: - cli.log.warning(f'{kb}: Option "{key}" duplicates default value of "{v_default}"') + cli.log.error(f'{kb}: Option "{key}" duplicates default value of "{v_default}"') + ok = False - return True + return ok def keymap_check(kb, km): From 9e8199c41189a2eb6243600bf3f96f136650820b Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 24 Feb 2026 19:23:04 +0000 Subject: [PATCH 230/255] Print keymap name within new-keymap error message (#26034) --- lib/python/qmk/cli/new/keymap.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/python/qmk/cli/new/keymap.py b/lib/python/qmk/cli/new/keymap.py index 4d19a726a4..fe4871adab 100755 --- a/lib/python/qmk/cli/new/keymap.py +++ b/lib/python/qmk/cli/new/keymap.py @@ -126,7 +126,7 @@ def new_keymap(cli): return False if not validate_keymap_name(user_name): - cli.log.error('Keymap names must contain only {fg_cyan}a-z{fg_reset}, {fg_cyan}0-9{fg_reset} and {fg_cyan}_{fg_reset}! Please choose a different name.') + cli.log.error(f'Keymap name {{fg_cyan}}{user_name}{{fg_reset}} must contain only {{fg_cyan}}a-z{{fg_reset}}, {{fg_cyan}}0-9{{fg_reset}} and {{fg_cyan}}_{{fg_reset}}! Please choose a different name.') return False if keymap_path_new.exists(): From 032c2aa9745f7a346e3173941562a09e01147e91 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sun, 8 Mar 2026 10:46:38 +1100 Subject: [PATCH 231/255] 2026q1 `develop` changelog. (#26046) --- docs/ChangeLog/20260222.md | 75 ++++++++++++++++++++++++++++++++ docs/_sidebar.json | 2 +- docs/breaking_changes.md | 20 ++++----- docs/breaking_changes_history.md | 1 + 4 files changed, 87 insertions(+), 11 deletions(-) create mode 100644 docs/ChangeLog/20260222.md diff --git a/docs/ChangeLog/20260222.md b/docs/ChangeLog/20260222.md new file mode 100644 index 0000000000..462c9e6521 --- /dev/null +++ b/docs/ChangeLog/20260222.md @@ -0,0 +1,75 @@ +# QMK Breaking Changes - 2026 Feb 22 Changelog + +## Deprecation Notices + +### Removal of deprecated GPIO defines ([#26028](https://github.com/qmk/qmk_firmware/pull/26028)) + +QMK has long used Arduino-style GPIO naming conventions. This has been confusing for users, as over time they've had new variations added, as well as users mistakenly thinking that QMK supports the rest of the Arduino ecosystem. + +The decision was made to rename the GPIO manipulation functions with ones matching QMK Firmware's code styling. + +Previous backwards compatibility has now been removed. see the [GPIO Control](../drivers/gpio#macros) documentation for more information. + +### Removal of deprecated isLeftHand ([25897](https://github.com/qmk/qmk_firmware/pull/25897)) + +Users should migrate to `is_keyboard_left()` found in `split_util.h` instead. For example: + +```diff +oled_rotation_t oled_init_user(oled_rotation_t rotation) { +- return isLeftHand ? OLED_ROTATION_180 : OLED_ROTATION_0; ++ return is_keyboard_left() ? OLED_ROTATION_180 : OLED_ROTATION_0; +} +``` + +The deprecated variable `isLeftHand` will be removed in a future breaking changes cycle. + +## Full changelist + +Core: +* Refactor Makefile logic for locating keymaps ([#25808](https://github.com/qmk/qmk_firmware/pull/25808)) +* Move shutdown delay to audio feature ([#25859](https://github.com/qmk/qmk_firmware/pull/25859)) +* Refactor core use of deprecated `isLeftHand` ([#25888](https://github.com/qmk/qmk_firmware/pull/25888)) +* Allow custom data sync for community modules ([#25955](https://github.com/qmk/qmk_firmware/pull/25955)) +* Remove an unreachable break statement ([#26006](https://github.com/qmk/qmk_firmware/pull/26006)) +* Remove duplicate host.h ([#26007](https://github.com/qmk/qmk_firmware/pull/26007)) +* Remove redundant EEPROM update ([#26008](https://github.com/qmk/qmk_firmware/pull/26008)) +* Remove redundant unsigned comparison in apa102_set_brightness ([#26010](https://github.com/qmk/qmk_firmware/pull/26010)) +* Remove unused headers ([#26011](https://github.com/qmk/qmk_firmware/pull/26011)) +* Return INVALID_DEFERRED_TOKEN on allocation failure ([#26012](https://github.com/qmk/qmk_firmware/pull/26012)) +* Remove deprecated GPIO defines ([#26028](https://github.com/qmk/qmk_firmware/pull/26028)) + +CLI: +* Enforce EOL when formatting files ([#24989](https://github.com/qmk/qmk_firmware/pull/24989)) +* Allow keymap.json to disable config flags ([#25502](https://github.com/qmk/qmk_firmware/pull/25502)) +* Remove unused `qmk.keymap.write_file`/`qmk.keymap.write_json` ([#25854](https://github.com/qmk/qmk_firmware/pull/25854)) +* Include userspace version (QMK_USERSPACE_VERSION) in version.h ([#25882](https://github.com/qmk/qmk_firmware/pull/25882)) +* Lint out-of-bounds bootmagic config ([#25899](https://github.com/qmk/qmk_firmware/pull/25899)) +* Report permission issues in `qmk doctor` ([#25931](https://github.com/qmk/qmk_firmware/pull/25931)) +* Minor alignment of CLI formatting commands ([#25946](https://github.com/qmk/qmk_firmware/pull/25946)) +* Update lint to validate keymap names ([#25969](https://github.com/qmk/qmk_firmware/pull/25969)) +* Add 'none of the above' to `new-keyboard` dev board prompt ([#25998](https://github.com/qmk/qmk_firmware/pull/25998)) +* Remove `config_h_features` from generated `info.json` ([#26024](https://github.com/qmk/qmk_firmware/pull/26024)) +* Promote duplication of defaults check to error ([#26025](https://github.com/qmk/qmk_firmware/pull/26025)) + +Keyboards: +* Add Soldered Macro Pad ([#25834](https://github.com/qmk/qmk_firmware/pull/25834)) +* Remove redundant URLs from `.json` ([#25856](https://github.com/qmk/qmk_firmware/pull/25856)) +* Guard encoder behaviour on `projectcain/vault*` ([#25864](https://github.com/qmk/qmk_firmware/pull/25864)) +* Refactor keyboard/keymap use of deprecated `isLeftHand` ([#25891](https://github.com/qmk/qmk_firmware/pull/25891)) +* Remove some unnecessary matrix externs ([#25975](https://github.com/qmk/qmk_firmware/pull/25975)) +* Migrate ROW_SHIFTER to core MATRIX_ROW_SHIFTER ([#25977](https://github.com/qmk/qmk_firmware/pull/25977)) + +Keyboard fixes: +* Fix out-of-bounds bootmagic config ([#25898](https://github.com/qmk/qmk_firmware/pull/25898)) +* Fix incorrect `matrix_scan_custom` implementations ([#25999](https://github.com/qmk/qmk_firmware/pull/25999)) + +Others: +* Add missing labels to DD keycode definitions ([#25503](https://github.com/qmk/qmk_firmware/pull/25503)) +* Copilot instructions for pull requests ([#25857](https://github.com/qmk/qmk_firmware/pull/25857)) + +Bugs: +* Fix flash wear leveling sector calculation ([#24776](https://github.com/qmk/qmk_firmware/pull/24776)) +* [Bugfix] WS2812 indexing in split boards ([#25407](https://github.com/qmk/qmk_firmware/pull/25407)) +* Correctly resolve keyboard alias during 'qmk new-keymap' ([#25570](https://github.com/qmk/qmk_firmware/pull/25570)) +* Fixes for is31fl3729 LED matrix driver off-by-one errors ([#25902](https://github.com/qmk/qmk_firmware/pull/25902)) +* Match Key override index type to bounds type to prevent overflow ([#25939](https://github.com/qmk/qmk_firmware/pull/25939)) diff --git a/docs/_sidebar.json b/docs/_sidebar.json index 2531de2b1e..13982765e4 100644 --- a/docs/_sidebar.json +++ b/docs/_sidebar.json @@ -214,7 +214,7 @@ { "text": "My Pull Request Was Flagged", "link": "/breaking_changes_instructions" }, { "text": "Most Recent ChangeLog", - "link": "/ChangeLog/20251130" + "link": "/ChangeLog/20260222" }, { "text": "Past Breaking Changes", "link": "/breaking_changes_history" }, { "text": "Deprecation Policy", "link": "/support_deprecation_policy" } diff --git a/docs/breaking_changes.md b/docs/breaking_changes.md index 9dd995500c..af11445291 100644 --- a/docs/breaking_changes.md +++ b/docs/breaking_changes.md @@ -10,25 +10,25 @@ Practically, this means QMK merges the `develop` branch into the `master` branch ## What has been included in past Breaking Changes? +* [2026 Feb 22](ChangeLog/20260222) * [2025 Nov 30](ChangeLog/20251130) * [2025 Aug 31](ChangeLog/20250831) -* [2025 May 25](ChangeLog/20250525) * [Older Breaking Changes](breaking_changes_history) ## When is the next Breaking Change? -The next Breaking Change is scheduled for February 22, 2026. +The next Breaking Change is scheduled for May 31, 2026. ### Important Dates -* 2025 Nov 30 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions. -* 2026 Jan 25 - `develop` closed to new PRs. -* 2026 Jan 25 - Call for testers. -* 2026 Feb 8 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes -* 2026 Feb 15 - `develop` is locked, only critical bugfix PRs merged. -* 2026 Feb 20 - `master` is locked, no PRs merged. -* 2026 Feb 22 - Merge `develop` to `master`. -* 2026 Feb 22 - `master` is unlocked. PRs can be merged again. +* 2025 Feb 22 - `develop` is tagged with a new release version. Each push to `master` is subsequently merged to `develop` by GitHub actions. +* 2026 May 3 - `develop` closed to new PRs. +* 2026 May 3 - Call for testers. +* 2026 May 17 - Last day for merges -- after this point `develop` is locked for testing and accepts only bugfixes +* 2026 May 24 - `develop` is locked, only critical bugfix PRs merged. +* 2026 May 29 - `master` is locked, no PRs merged. +* 2026 May 31 - Merge `develop` to `master`. +* 2026 May 31 - `master` is unlocked. PRs can be merged again. ## What changes will be included? diff --git a/docs/breaking_changes_history.md b/docs/breaking_changes_history.md index 2db767c5ec..c3c2a8f1b7 100644 --- a/docs/breaking_changes_history.md +++ b/docs/breaking_changes_history.md @@ -2,6 +2,7 @@ This page links to all previous changelogs from the QMK Breaking Changes process. +* [2026 Feb 22](ChangeLog/20260222) - version 0.32.0 * [2025 Nov 30](ChangeLog/20251130) - version 0.31.0 * [2025 Aug 31](ChangeLog/20250831) - version 0.30.0 * [2025 May 25](ChangeLog/20250525) - version 0.29.0 From a56496640ed03d478a9e6c4829ed50731207b967 Mon Sep 17 00:00:00 2001 From: zvecr Date: Sat, 7 Mar 2026 23:47:50 +0000 Subject: [PATCH 232/255] Merge point for 2026q1 breaking changes. --- readme.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/readme.md b/readme.md index e5c0d41b7b..62aed12066 100644 --- a/readme.md +++ b/readme.md @@ -1,7 +1,3 @@ -# THIS IS THE DEVELOP BRANCH - -Warning- This is the `develop` branch of QMK Firmware. You may encounter broken code here. Please see [Breaking Changes](https://docs.qmk.fm/#/breaking_changes) for more information. - # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) From 6d7589e249b4656e6cee4a90829374f324991603 Mon Sep 17 00:00:00 2001 From: zvecr Date: Sun, 8 Mar 2026 00:52:03 +0000 Subject: [PATCH 233/255] Branch point for 2026q2 Breaking Change --- readme.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/readme.md b/readme.md index 62aed12066..e5c0d41b7b 100644 --- a/readme.md +++ b/readme.md @@ -1,3 +1,7 @@ +# THIS IS THE DEVELOP BRANCH + +Warning- This is the `develop` branch of QMK Firmware. You may encounter broken code here. Please see [Breaking Changes](https://docs.qmk.fm/#/breaking_changes) for more information. + # Quantum Mechanical Keyboard Firmware [![Current Version](https://img.shields.io/github/tag/qmk/qmk_firmware.svg)](https://github.com/qmk/qmk_firmware/tags) From 3dcdf41d1c3da8fade4e80bc87f3c4f700562bed Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Mon, 9 Mar 2026 21:16:30 +0000 Subject: [PATCH 234/255] Fix split data sync link in community modules docs (#26055) --- docs/features/community_modules.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/features/community_modules.md b/docs/features/community_modules.md index c8adf58674..2b0086134b 100644 --- a/docs/features/community_modules.md +++ b/docs/features/community_modules.md @@ -137,7 +137,7 @@ This file defines RGB matrix effects in the same form as used with `rgb_matrix_k ### Custom split keyboard data sync -Defines follow the convention, `SPLIT_TRANSACTION_IDS_MODULE_` (see [Custom LED Matrix Effects](split_keyboard#custom-data-sync)). +Defines follow the convention, `SPLIT_TRANSACTION_IDS_MODULE_` (see [Custom data sync](split_keyboard#custom-data-sync)). ### Compatible APIs From 40e81ad8932f8ee820d15924f87e898994f57300 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Mar 2026 22:00:42 +0000 Subject: [PATCH 235/255] Bump rollup from 4.31.0 to 4.59.0 in /builddefs/docsgen (#26036) Bumps [rollup](https://github.com/rollup/rollup) from 4.31.0 to 4.59.0. - [Release notes](https://github.com/rollup/rollup/releases) - [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md) - [Commits](https://github.com/rollup/rollup/compare/v4.31.0...v4.59.0) --- updated-dependencies: - dependency-name: rollup dependency-version: 4.59.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- builddefs/docsgen/yarn.lock | 242 +++++++++++++++++++++--------------- 1 file changed, 139 insertions(+), 103 deletions(-) diff --git a/builddefs/docsgen/yarn.lock b/builddefs/docsgen/yarn.lock index e5eaaa2c8f..8c0791ffc2 100644 --- a/builddefs/docsgen/yarn.lock +++ b/builddefs/docsgen/yarn.lock @@ -298,100 +298,130 @@ resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== -"@rollup/rollup-android-arm-eabi@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.31.0.tgz#d4dd60da0075a6ce9a6c76d71b8204f3e1822285" - integrity sha512-9NrR4033uCbUBRgvLcBrJofa2KY9DzxL2UKZ1/4xA/mnTNyhZCWBuD8X3tPm1n4KxcgaraOYgrFKSgwjASfmlA== +"@rollup/rollup-android-arm-eabi@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz#a6742c74c7d9d6d604ef8a48f99326b4ecda3d82" + integrity sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg== -"@rollup/rollup-android-arm64@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.31.0.tgz#25c4d33259a7a2ccd2f52a5ffcc0bb3ab3f0729d" - integrity sha512-iBbODqT86YBFHajxxF8ebj2hwKm1k8PTBQSojSt3d1FFt1gN+xf4CowE47iN0vOSdnd+5ierMHBbu/rHc7nq5g== +"@rollup/rollup-android-arm64@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz#97247be098de4df0c11971089fd2edf80a5da8cf" + integrity sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q== -"@rollup/rollup-darwin-arm64@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.31.0.tgz#d137dff254b19163a6b52ac083a71cd055dae844" - integrity sha512-WHIZfXgVBX30SWuTMhlHPXTyN20AXrLH4TEeH/D0Bolvx9PjgZnn4H677PlSGvU6MKNsjCQJYczkpvBbrBnG6g== +"@rollup/rollup-darwin-arm64@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz#674852cf14cf11b8056e0b1a2f4e872b523576cf" + integrity sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg== -"@rollup/rollup-darwin-x64@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.31.0.tgz#58ff20b5dacb797d3adca19f02a21c532f9d55bf" - integrity sha512-hrWL7uQacTEF8gdrQAqcDy9xllQ0w0zuL1wk1HV8wKGSGbKPVjVUv/DEwT2+Asabf8Dh/As+IvfdU+H8hhzrQQ== +"@rollup/rollup-darwin-x64@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz#36dfd7ed0aaf4d9d89d9ef983af72632455b0246" + integrity sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w== -"@rollup/rollup-freebsd-arm64@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.31.0.tgz#96ce1a241c591ec3e068f4af765d94eddb24e60c" - integrity sha512-S2oCsZ4hJviG1QjPY1h6sVJLBI6ekBeAEssYKad1soRFv3SocsQCzX6cwnk6fID6UQQACTjeIMB+hyYrFacRew== +"@rollup/rollup-freebsd-arm64@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz#2f87c2074b4220260fdb52a9996246edfc633c22" + integrity sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA== -"@rollup/rollup-freebsd-x64@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.31.0.tgz#e59e7ede505be41f0b4311b0b943f8eb44938467" - integrity sha512-pCANqpynRS4Jirn4IKZH4tnm2+2CqCNLKD7gAdEjzdLGbH1iO0zouHz4mxqg0uEMpO030ejJ0aA6e1PJo2xrPA== +"@rollup/rollup-freebsd-x64@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz#9b5a26522a38a95dc06616d1939d4d9a76937803" + integrity sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg== -"@rollup/rollup-linux-arm-gnueabihf@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.31.0.tgz#e455ca6e4ff35bd46d62201c153352e717000a7b" - integrity sha512-0O8ViX+QcBd3ZmGlcFTnYXZKGbFu09EhgD27tgTdGnkcYXLat4KIsBBQeKLR2xZDCXdIBAlWLkiXE1+rJpCxFw== +"@rollup/rollup-linux-arm-gnueabihf@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz#86aa4859385a8734235b5e40a48e52d770758c3a" + integrity sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw== -"@rollup/rollup-linux-arm-musleabihf@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.31.0.tgz#bc1a93d807d19e70b1e343a5bfea43723bcd6327" - integrity sha512-w5IzG0wTVv7B0/SwDnMYmbr2uERQp999q8FMkKG1I+j8hpPX2BYFjWe69xbhbP6J9h2gId/7ogesl9hwblFwwg== +"@rollup/rollup-linux-arm-musleabihf@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz#cbe70e56e6ece8dac83eb773b624fc9e5a460976" + integrity sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA== -"@rollup/rollup-linux-arm64-gnu@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.31.0.tgz#f38bf843f1dc3d5de680caf31084008846e3efae" - integrity sha512-JyFFshbN5xwy6fulZ8B/8qOqENRmDdEkcIMF0Zz+RsfamEW+Zabl5jAb0IozP/8UKnJ7g2FtZZPEUIAlUSX8cA== +"@rollup/rollup-linux-arm64-gnu@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz#d14992a2e653bc3263d284bc6579b7a2890e1c45" + integrity sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA== -"@rollup/rollup-linux-arm64-musl@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.31.0.tgz#b3987a96c18b7287129cf735be2dbf83e94d9d05" - integrity sha512-kpQXQ0UPFeMPmPYksiBL9WS/BDiQEjRGMfklVIsA0Sng347H8W2iexch+IEwaR7OVSKtr2ZFxggt11zVIlZ25g== +"@rollup/rollup-linux-arm64-musl@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz#2fdd1ddc434ea90aeaa0851d2044789b4d07f6da" + integrity sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA== -"@rollup/rollup-linux-loongarch64-gnu@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.31.0.tgz#0f0324044e71c4f02e9f49e7ec4e347b655b34ee" - integrity sha512-pMlxLjt60iQTzt9iBb3jZphFIl55a70wexvo8p+vVFK+7ifTRookdoXX3bOsRdmfD+OKnMozKO6XM4zR0sHRrQ== +"@rollup/rollup-linux-loong64-gnu@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz#8a181e6f89f969f21666a743cd411416c80099e7" + integrity sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg== -"@rollup/rollup-linux-powerpc64le-gnu@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.31.0.tgz#809479f27f1fd5b4eecd2aa732132ad952d454ba" - integrity sha512-D7TXT7I/uKEuWiRkEFbed1UUYZwcJDU4vZQdPTcepK7ecPhzKOYk4Er2YR4uHKme4qDeIh6N3XrLfpuM7vzRWQ== +"@rollup/rollup-linux-loong64-musl@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz#904125af2babc395f8061daa27b5af1f4e3f2f78" + integrity sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q== -"@rollup/rollup-linux-riscv64-gnu@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.31.0.tgz#7bc75c4f22db04d3c972f83431739cfa41c6a36e" - integrity sha512-wal2Tc8O5lMBtoePLBYRKj2CImUCJ4UNGJlLwspx7QApYny7K1cUYlzQ/4IGQBLmm+y0RS7dwc3TDO/pmcneTw== +"@rollup/rollup-linux-ppc64-gnu@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz#a57970ac6864c9a3447411a658224bdcf948be22" + integrity sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA== -"@rollup/rollup-linux-s390x-gnu@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.31.0.tgz#cfe8052345c55864d83ae343362cf1912480170e" - integrity sha512-O1o5EUI0+RRMkK9wiTVpk2tyzXdXefHtRTIjBbmFREmNMy7pFeYXCFGbhKFwISA3UOExlo5GGUuuj3oMKdK6JQ== +"@rollup/rollup-linux-ppc64-musl@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz#bb84de5b26870567a4267666e08891e80bb56a63" + integrity sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA== -"@rollup/rollup-linux-x64-gnu@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.31.0.tgz#c6b048f1e25f3fea5b4bd246232f4d07a159c5a0" - integrity sha512-zSoHl356vKnNxwOWnLd60ixHNPRBglxpv2g7q0Cd3Pmr561gf0HiAcUBRL3S1vPqRC17Zo2CX/9cPkqTIiai1g== +"@rollup/rollup-linux-riscv64-gnu@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz#72d00d2c7fb375ce3564e759db33f17a35bffab9" + integrity sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg== -"@rollup/rollup-linux-x64-musl@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.31.0.tgz#615273ac52d1a201f4de191cbd3389016a9d7d80" - integrity sha512-ypB/HMtcSGhKUQNiFwqgdclWNRrAYDH8iMYH4etw/ZlGwiTVxBz2tDrGRrPlfZu6QjXwtd+C3Zib5pFqID97ZA== +"@rollup/rollup-linux-riscv64-musl@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz#4c166ef58e718f9245bd31873384ba15a5c1a883" + integrity sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg== -"@rollup/rollup-win32-arm64-msvc@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.31.0.tgz#32ed85810c1b831c648eca999d68f01255b30691" - integrity sha512-JuhN2xdI/m8Hr+aVO3vspO7OQfUFO6bKLIRTAy0U15vmWjnZDLrEgCZ2s6+scAYaQVpYSh9tZtRijApw9IXyMw== +"@rollup/rollup-linux-s390x-gnu@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz#bb5025cde9a61db478c2ca7215808ad3bce73a09" + integrity sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w== -"@rollup/rollup-win32-ia32-msvc@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.31.0.tgz#d47effada68bcbfdccd30c4a788d42e4542ff4d3" - integrity sha512-U1xZZXYkvdf5MIWmftU8wrM5PPXzyaY1nGCI4KI4BFfoZxHamsIe+BtnPLIvvPykvQWlVbqUXdLa4aJUuilwLQ== +"@rollup/rollup-linux-x64-gnu@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz#9b66b1f9cd95c6624c788f021c756269ffed1552" + integrity sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg== -"@rollup/rollup-win32-x64-msvc@4.31.0": - version "4.31.0" - resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.31.0.tgz#7a2d89a82cf0388d60304964217dd7beac6de645" - integrity sha512-ul8rnCsUumNln5YWwz0ted2ZHFhzhRRnkpBZ+YRuHoRAlUji9KChpOUOndY7uykrPEPXVbHLlsdo6v5yXo/TXw== +"@rollup/rollup-linux-x64-musl@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz#b007ca255dc7166017d57d7d2451963f0bd23fd9" + integrity sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg== + +"@rollup/rollup-openbsd-x64@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz#e8b357b2d1aa2c8d76a98f5f0d889eabe93f4ef9" + integrity sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ== + +"@rollup/rollup-openharmony-arm64@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz#96c2e3f4aacd3d921981329831ff8dde492204dc" + integrity sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA== + +"@rollup/rollup-win32-arm64-msvc@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz#2d865149d706d938df8b4b8f117e69a77646d581" + integrity sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A== + +"@rollup/rollup-win32-ia32-msvc@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz#abe1593be0fa92325e9971c8da429c5e05b92c36" + integrity sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA== + +"@rollup/rollup-win32-x64-gnu@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz#c4af3e9518c9a5cd4b1c163dc81d0ad4d82e7eab" + integrity sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA== + +"@rollup/rollup-win32-x64-msvc@4.59.0": + version "4.59.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz#4584a8a87b29188a4c1fe987a9fcf701e256d86c" + integrity sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA== "@shikijs/core@1.3.0", "@shikijs/core@^1.3.0": version "1.3.0" @@ -405,10 +435,10 @@ dependencies: shiki "1.3.0" -"@types/estree@1.0.6": - version "1.0.6" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" - integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== +"@types/estree@1.0.8": + version "1.0.8" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== "@types/linkify-it@*": version "3.0.5" @@ -712,31 +742,37 @@ rfdc@^1.3.1: integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== rollup@^4.20.0: - version "4.31.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.31.0.tgz#b84af969a0292cb047dce2c0ec5413a9457597a4" - integrity sha512-9cCE8P4rZLx9+PjoyqHLs31V9a9Vpvfo4qNcs6JCiGWYhw2gijSetFbH6SSy1whnkgcefnUwr8sad7tgqsGvnw== + version "4.59.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.59.0.tgz#cf74edac17c1486f562d728a4d923a694abdf06f" + integrity sha512-2oMpl67a3zCH9H79LeMcbDhXW/UmWG/y2zuqnF2jQq5uq9TbM9TVyXvA4+t+ne2IIkBdrLpAaRQAvo7YI/Yyeg== dependencies: - "@types/estree" "1.0.6" + "@types/estree" "1.0.8" optionalDependencies: - "@rollup/rollup-android-arm-eabi" "4.31.0" - "@rollup/rollup-android-arm64" "4.31.0" - "@rollup/rollup-darwin-arm64" "4.31.0" - "@rollup/rollup-darwin-x64" "4.31.0" - "@rollup/rollup-freebsd-arm64" "4.31.0" - "@rollup/rollup-freebsd-x64" "4.31.0" - "@rollup/rollup-linux-arm-gnueabihf" "4.31.0" - "@rollup/rollup-linux-arm-musleabihf" "4.31.0" - "@rollup/rollup-linux-arm64-gnu" "4.31.0" - "@rollup/rollup-linux-arm64-musl" "4.31.0" - "@rollup/rollup-linux-loongarch64-gnu" "4.31.0" - "@rollup/rollup-linux-powerpc64le-gnu" "4.31.0" - "@rollup/rollup-linux-riscv64-gnu" "4.31.0" - "@rollup/rollup-linux-s390x-gnu" "4.31.0" - "@rollup/rollup-linux-x64-gnu" "4.31.0" - "@rollup/rollup-linux-x64-musl" "4.31.0" - "@rollup/rollup-win32-arm64-msvc" "4.31.0" - "@rollup/rollup-win32-ia32-msvc" "4.31.0" - "@rollup/rollup-win32-x64-msvc" "4.31.0" + "@rollup/rollup-android-arm-eabi" "4.59.0" + "@rollup/rollup-android-arm64" "4.59.0" + "@rollup/rollup-darwin-arm64" "4.59.0" + "@rollup/rollup-darwin-x64" "4.59.0" + "@rollup/rollup-freebsd-arm64" "4.59.0" + "@rollup/rollup-freebsd-x64" "4.59.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.59.0" + "@rollup/rollup-linux-arm-musleabihf" "4.59.0" + "@rollup/rollup-linux-arm64-gnu" "4.59.0" + "@rollup/rollup-linux-arm64-musl" "4.59.0" + "@rollup/rollup-linux-loong64-gnu" "4.59.0" + "@rollup/rollup-linux-loong64-musl" "4.59.0" + "@rollup/rollup-linux-ppc64-gnu" "4.59.0" + "@rollup/rollup-linux-ppc64-musl" "4.59.0" + "@rollup/rollup-linux-riscv64-gnu" "4.59.0" + "@rollup/rollup-linux-riscv64-musl" "4.59.0" + "@rollup/rollup-linux-s390x-gnu" "4.59.0" + "@rollup/rollup-linux-x64-gnu" "4.59.0" + "@rollup/rollup-linux-x64-musl" "4.59.0" + "@rollup/rollup-openbsd-x64" "4.59.0" + "@rollup/rollup-openharmony-arm64" "4.59.0" + "@rollup/rollup-win32-arm64-msvc" "4.59.0" + "@rollup/rollup-win32-ia32-msvc" "4.59.0" + "@rollup/rollup-win32-x64-gnu" "4.59.0" + "@rollup/rollup-win32-x64-msvc" "4.59.0" fsevents "~2.3.2" shiki@1.3.0, shiki@^1.3.0: From d73c91f19bbc5eaec4b20991efdbf2287cd958c4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Mar 2026 01:50:37 +0000 Subject: [PATCH 236/255] Bump actions/upload-artifact from 6 to 7 (#26037) Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci_build_major_branch_keymap.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci_build_major_branch_keymap.yml b/.github/workflows/ci_build_major_branch_keymap.yml index 57593b1a1b..2e15d7b87b 100644 --- a/.github/workflows/ci_build_major_branch_keymap.yml +++ b/.github/workflows/ci_build_major_branch_keymap.yml @@ -60,7 +60,7 @@ jobs: echo "targets=$(jq -c 'keys' targets.json)" >> $GITHUB_OUTPUT - name: Upload targets json - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: targets-${{ inputs.keymap }} path: targets.json @@ -113,7 +113,7 @@ jobs: qmk mass-compile -t -j $NCPUS -e DUMP_CI_METADATA=yes $targets || touch .failed - name: Upload binaries - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: firmware-${{ inputs.keymap }}-${{ matrix.target }} if-no-files-found: ignore @@ -147,7 +147,7 @@ jobs: merge-multiple: true - name: Upload all firmwares - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: firmware-${{ inputs.keymap }} if-no-files-found: ignore From acdc8a13745c77e918b429b2f3270849810b17d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Mar 2026 01:50:49 +0000 Subject: [PATCH 237/255] Bump actions/download-artifact from 7 to 8 (#26038) Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7 to 8. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/v7...v8) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-version: '8' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/ci_build_major_branch.yml | 2 +- .github/workflows/ci_build_major_branch_keymap.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci_build_major_branch.yml b/.github/workflows/ci_build_major_branch.yml index e857f5f6c4..c44e9d8aea 100644 --- a/.github/workflows/ci_build_major_branch.yml +++ b/.github/workflows/ci_build_major_branch.yml @@ -85,7 +85,7 @@ jobs: fetch-depth: 0 - name: Download firmwares - uses: actions/download-artifact@v7 + uses: actions/download-artifact@v8 with: pattern: firmware-* path: . diff --git a/.github/workflows/ci_build_major_branch_keymap.yml b/.github/workflows/ci_build_major_branch_keymap.yml index 2e15d7b87b..b957395536 100644 --- a/.github/workflows/ci_build_major_branch_keymap.yml +++ b/.github/workflows/ci_build_major_branch_keymap.yml @@ -88,7 +88,7 @@ jobs: run: pip3 install -r requirements-dev.txt - name: Get target definitions - uses: actions/download-artifact@v7 + uses: actions/download-artifact@v8 with: name: targets-${{ inputs.keymap }} path: . @@ -140,7 +140,7 @@ jobs: uses: actions/checkout@v6 - name: Download firmwares - uses: actions/download-artifact@v7 + uses: actions/download-artifact@v8 with: pattern: firmware-${{ inputs.keymap }}-* path: . From 01e30d407c8a7004da5f3db7ba037c2265538ba5 Mon Sep 17 00:00:00 2001 From: Peter Cock Date: Tue, 10 Mar 2026 02:41:03 +0000 Subject: [PATCH 238/255] [Docs] Show how to flip semicolon and colon (#26030) * Show how to flip semicolon and colon * Apply whitespace suggestions from code review Co-authored-by: Drashna Jaelre * Match line-wrapping Co-authored-by: Joel Challis --------- Co-authored-by: Drashna Jaelre Co-authored-by: Joel Challis --- docs/features/key_overrides.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/features/key_overrides.md b/docs/features/key_overrides.md index c0b788bde9..a4c9ed98e9 100644 --- a/docs/features/key_overrides.md +++ b/docs/features/key_overrides.md @@ -47,6 +47,17 @@ const key_override_t *key_overrides[] = { }; ``` +This second example inverts or swaps semicolon and colon on ANSI and many other layouts. That means pressing the key alone sends `shift` + `semicolon` giving `colon` (`S(KP_SCLN)` aka `KC_COLN`), but when pressing the key with shift, the shift modifier is suppressed (see `suppressed_mods` below), sending only `semicolon` (`KC_SCLN`): + +```c +const key_override_t semicolon_colon_key_override = ko_make_basic(MOD_MASK_SHIFT, KC_COLN, KC_SCLN); + +// This globally defines all key overrides to be used +const key_override_t *key_overrides[] = { + &semicolon_colon_key_override +}; +``` + ## Intermediate Difficulty Examples {#intermediate-difficulty-examples} ### Media Controls & Screen Brightness {#media-controls-amp-screen-brightness} From 5629ecf5ff8c410bf577cfae7d7d68fb14a4da81 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 10 Mar 2026 23:33:14 +0000 Subject: [PATCH 239/255] Add bootloadHID support to `qmk flash` (#26053) --- lib/python/qmk/flashers.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/python/qmk/flashers.py b/lib/python/qmk/flashers.py index 6b52f4d35a..2705bb7d5b 100644 --- a/lib/python/qmk/flashers.py +++ b/lib/python/qmk/flashers.py @@ -136,6 +136,10 @@ def _find_serial_port(vid, pid): return None +def _flash_bootloadhid(file): + cli.run(['bootloadHID', '-r', file], capture_output=False) + + def _flash_caterina(details, file): port = _find_serial_port(details[0], details[1]) if port: @@ -218,6 +222,8 @@ def flasher(mcu, file): time.sleep(1) if bl == 'atmel-dfu': _flash_atmel_dfu(details, file) + elif bl == 'bootloadhid': + _flash_bootloadhid(file) elif bl == 'caterina': if _flash_caterina(details, file): return (True, "The Caterina bootloader was found but is not writable. Check 'qmk doctor' output for advice.") From 7fe0c9c746e632b8ff114e777ac69814c05801b6 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Wed, 11 Mar 2026 16:43:02 +0000 Subject: [PATCH 240/255] [CI] Build unit tests in parallel (#26058) --- .github/workflows/unit_test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/unit_test.yml b/.github/workflows/unit_test.yml index 7edc240355..eaac37c839 100644 --- a/.github/workflows/unit_test.yml +++ b/.github/workflows/unit_test.yml @@ -34,4 +34,4 @@ jobs: run: pip3 install -r requirements-dev.txt - name: Run tests - run: qmk test-c + run: qmk test-c -j $(nproc) From 9fd72b352b8687bb8846c9977010bc137d91a5fc Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Thu, 12 Mar 2026 21:05:24 +1100 Subject: [PATCH 241/255] Extra bootstrap release package filtering. (#26039) --- util/env-bootstrap.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/util/env-bootstrap.sh b/util/env-bootstrap.sh index 07020ea371..7c00ab2a6d 100755 --- a/util/env-bootstrap.sh +++ b/util/env-bootstrap.sh @@ -418,7 +418,7 @@ __EOT__ # Get the latest toolchain release from https://github.com/qmk/qmk_toolchains local latest_toolchains_release=$(github_api_call repos/qmk/qmk_toolchains/releases/latest - | grep -oE '"tag_name": "[^"]+' | grep -oE '[^"]+$') # Download the specific release asset with a matching keyword - local toolchain_url=$(github_api_call repos/qmk/qmk_toolchains/releases/tags/$latest_toolchains_release - | grep -oE '"browser_download_url": "[^"]+"' | grep -oE 'https://[^"]+' | grep $(fn_os)$(fn_arch)) + local toolchain_url=$(github_api_call repos/qmk/qmk_toolchains/releases/tags/$latest_toolchains_release - | grep -oE '"browser_download_url": "[^"]+"' | grep -oE 'https://[^"]+' | grep -E "qmk_toolchains-.*$(fn_os)$(fn_arch)") if [ -z "$toolchain_url" ]; then echo "No toolchain found for this OS/Arch combination." >&2 exit 1 @@ -445,7 +445,7 @@ __EOT__ # Get the latest flashing tools release from https://github.com/qmk/qmk_flashutils local latest_flashutils_release=$(github_api_call repos/qmk/qmk_flashutils/releases/latest - | grep -oE '"tag_name": "[^"]+' | grep -oE '[^"]+$') # Download the specific release asset with a matching keyword - local flashutils_url=$(github_api_call repos/qmk/qmk_flashutils/releases/tags/$latest_flashutils_release - | grep -oE '"browser_download_url": "[^"]+"' | grep -oE 'https://[^"]+' | grep "$osarchvariant") + local flashutils_url=$(github_api_call repos/qmk/qmk_flashutils/releases/tags/$latest_flashutils_release - | grep -oE '"browser_download_url": "[^"]+"' | grep -oE 'https://[^"]+' | grep -E "qmk_flashutils-.*$osarchvariant") if [ -z "$flashutils_url" ]; then echo "No flashing tools found for this OS/Arch combination." >&2 exit 1 From e83672fdc4a8d7ef564dbbf4195c33ad179f8754 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Fri, 13 Mar 2026 18:52:49 +1100 Subject: [PATCH 242/255] Update ChibiOS, ChibiOS-Contrib. (#25730) --- keyboards/matrix/abelx/mcuconf.h | 2 +- keyboards/matrix/m20add/mcuconf.h | 2 +- keyboards/matrix/noah/mcuconf.h | 2 +- keyboards/tzarc/kobold/info.json | 2 +- lib/chibios | 2 +- lib/chibios-contrib | 2 +- .../BLACKPILL_STM32_F401/configs/mcuconf.h | 2 +- .../BLACKPILL_STM32_F411/configs/mcuconf.h | 2 +- .../boards/BONSAI_C4/configs/mcuconf.h | 2 +- .../GENERIC_STM32_F303XC/configs/mcuconf.h | 2 +- .../GENERIC_STM32_F401XC/configs/mcuconf.h | 2 +- .../GENERIC_STM32_F405XG/configs/mcuconf.h | 2 +- .../GENERIC_STM32_F407XE/configs/mcuconf.h | 2 +- .../GENERIC_STM32_F411XE/configs/mcuconf.h | 2 +- .../GENERIC_STM32_F446XE/configs/mcuconf.h | 2 +- .../GENERIC_STM32_G0B1XB/configs/mcuconf.h | 28 ++++++++++--------- .../GENERIC_STM32_G431XB/configs/mcuconf.h | 18 ++++++------ .../GENERIC_STM32_G474XE/configs/mcuconf.h | 24 ++++++++-------- .../GENERIC_STM32_H723XG/configs/mcuconf.h | 7 ++++- .../GENERIC_STM32_L412XB/configs/mcuconf.h | 2 +- .../GENERIC_STM32_L432XC/configs/mcuconf.h | 2 +- .../boards/QMK_PROTON_C/configs/chconf.h | 25 +---------------- .../boards/QMK_PROTON_C/configs/halconf.h | 19 +++++++++++-- .../boards/QMK_PROTON_C/configs/mcuconf.h | 2 +- .../chibios/boards/STEMCELL/configs/mcuconf.h | 2 +- .../chibios/boards/common/configs/chconf.h | 25 +---------------- .../chibios/boards/common/configs/halconf.h | 19 +++++++++++-- platforms/chibios/platform.mk | 2 +- util/chibios_conf_updater.sh | 2 +- 29 files changed, 97 insertions(+), 110 deletions(-) diff --git a/keyboards/matrix/abelx/mcuconf.h b/keyboards/matrix/abelx/mcuconf.h index a2fd42b8c4..ce8783c8b9 100644 --- a/keyboards/matrix/abelx/mcuconf.h +++ b/keyboards/matrix/abelx/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/keyboards/matrix/m20add/mcuconf.h b/keyboards/matrix/m20add/mcuconf.h index 00216f6908..25f36a892d 100644 --- a/keyboards/matrix/m20add/mcuconf.h +++ b/keyboards/matrix/m20add/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/keyboards/matrix/noah/mcuconf.h b/keyboards/matrix/noah/mcuconf.h index 00216f6908..25f36a892d 100644 --- a/keyboards/matrix/noah/mcuconf.h +++ b/keyboards/matrix/noah/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/keyboards/tzarc/kobold/info.json b/keyboards/tzarc/kobold/info.json index bed8e8a23f..70eaa9eb84 100644 --- a/keyboards/tzarc/kobold/info.json +++ b/keyboards/tzarc/kobold/info.json @@ -13,7 +13,7 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "backing_size": 32768, + "backing_size": 16384, "driver": "spi_flash" } }, diff --git a/lib/chibios b/lib/chibios index 8bd61b8043..d5b7ac30a0 160000 --- a/lib/chibios +++ b/lib/chibios @@ -1 +1 @@ -Subproject commit 8bd61b804303f1614d574546c2dd735eeabb09f5 +Subproject commit d5b7ac30a02c4962338a38b3a05e5f8da97a8c81 diff --git a/lib/chibios-contrib b/lib/chibios-contrib index 8d863d9ee4..5a9ad82b6b 160000 --- a/lib/chibios-contrib +++ b/lib/chibios-contrib @@ -1 +1 @@ -Subproject commit 8d863d9ee4eecea68ad8d15f7e7c2b451aea79d9 +Subproject commit 5a9ad82b6ba4f649cdb800e8c2bbc9be2d3ce767 diff --git a/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/mcuconf.h b/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/mcuconf.h index a21fd7bd12..129e275ca8 100644 --- a/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/mcuconf.h +++ b/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/mcuconf.h b/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/mcuconf.h index 131c847661..cd2152da08 100644 --- a/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/mcuconf.h +++ b/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h b/platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h index b381aed4fd..d119d133ff 100644 --- a/platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h +++ b/platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/mcuconf.h index e0af4a276b..0c514c2b88 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/mcuconf.h index 1208563aa1..8e2d16843a 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/mcuconf.h index 394e750256..21871350c6 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/mcuconf.h index 07399ad2f7..d29ab85c36 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/mcuconf.h index e1d45ca487..4489bed5c1 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h index 9c5cb82436..45ee3ef56e 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_G0B1XB/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_G0B1XB/configs/mcuconf.h index 80726e0308..c13e69c7cd 100644 --- a/platforms/chibios/boards/GENERIC_STM32_G0B1XB/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_G0B1XB/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -73,6 +73,8 @@ #define STM32_PPRE STM32_PPRE_DIV1 #define STM32_MCOSEL STM32_MCOSEL_NOCLOCK #define STM32_MCOPRE STM32_MCOPRE_DIV1 +#define STM32_MCO2SEL STM32_MCOSEL_NOCLOCK +#define STM32_MCO2PRE STM32_MCOPRE_DIV1 #define STM32_LSCOSEL STM32_LSCOSEL_NOCLOCK /* @@ -107,9 +109,8 @@ #define STM32_IRQ_EXTI4_15_PRIORITY 3 #define STM32_IRQ_EXTI1921_PRIORITY 3 -#define STM32_IRQ_USART1_PRIORITY 2 -#define STM32_IRQ_USART2_LP2_PRIORITY 2 -#define STM32_IRQ_USART3_4_5_6_LP1_PRIORITY 2 +#define STM32_IRQ_I2C1_PRIORITY 3 +#define STM32_IRQ_I2C2_3_PRIORITY 3 #define STM32_IRQ_TIM1_UP_PRIORITY 1 #define STM32_IRQ_TIM1_CC_PRIORITY 1 @@ -122,6 +123,12 @@ #define STM32_IRQ_TIM16_PRIORITY 1 #define STM32_IRQ_TIM17_PRIORITY 1 +#define STM32_IRQ_USART1_PRIORITY 2 +#define STM32_IRQ_USART2_LP2_PRIORITY 2 +#define STM32_IRQ_USART3_4_5_6_LP1_PRIORITY 2 + +#define STM32_IRQ_USB1_UCPD1_2_PRIORITY 3 + /* * ADC driver system settings. */ @@ -166,16 +173,12 @@ #define STM32_I2C_USE_I2C2 FALSE #define STM32_I2C_USE_I2C3 FALSE #define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C1_IRQ_PRIORITY 3 -#define STM32_I2C_I2C2_IRQ_PRIORITY 3 +#define STM32_I2C_I2C1_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C2_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C3_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY #define STM32_I2C_I2C1_DMA_PRIORITY 3 #define STM32_I2C_I2C2_DMA_PRIORITY 3 +#define STM32_I2C_I2C3_DMA_PRIORITY 1 #define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") /* @@ -296,7 +299,6 @@ * USB driver system settings. */ #define STM32_USB_USE_USB1 TRUE -#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 #define STM32_USB_USE_ISOCHRONOUS FALSE #define STM32_USB_USE_FAST_COPY TRUE #define STM32_USB_HOST_WAKEUP_DURATION 2 diff --git a/platforms/chibios/boards/GENERIC_STM32_G431XB/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_G431XB/configs/mcuconf.h index 0537ee9235..39d594d585 100644 --- a/platforms/chibios/boards/GENERIC_STM32_G431XB/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_G431XB/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -119,6 +119,10 @@ #define STM32_IRQ_FDCAN1_PRIORITY 10 +#define STM32_IRQ_I2C1_PRIORITY 5 +#define STM32_IRQ_I2C2_PRIORITY 5 +#define STM32_IRQ_I2C3_PRIORITY 5 + #define STM32_IRQ_TIM1_BRK_TIM15_PRIORITY 7 #define STM32_IRQ_TIM1_UP_TIM16_PRIORITY 7 #define STM32_IRQ_TIM1_TRGCO_TIM17_PRIORITY 7 @@ -201,15 +205,9 @@ #define STM32_I2C_USE_I2C2 FALSE #define STM32_I2C_USE_I2C3 FALSE #define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C1_IRQ_PRIORITY 5 -#define STM32_I2C_I2C2_IRQ_PRIORITY 5 -#define STM32_I2C_I2C3_IRQ_PRIORITY 5 +#define STM32_I2C_I2C1_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C2_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C3_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY #define STM32_I2C_I2C1_DMA_PRIORITY 3 #define STM32_I2C_I2C2_DMA_PRIORITY 3 #define STM32_I2C_I2C3_DMA_PRIORITY 3 diff --git a/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/mcuconf.h index d6385da624..94bef9ea54 100644 --- a/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -127,6 +127,11 @@ #define STM32_IRQ_FDCAN2_PRIORITY 10 #define STM32_IRQ_FDCAN3_PRIORITY 10 +#define STM32_IRQ_I2C1_PRIORITY 5 +#define STM32_IRQ_I2C2_PRIORITY 5 +#define STM32_IRQ_I2C3_PRIORITY 5 +#define STM32_IRQ_I2C4_PRIORITY 5 + #define STM32_IRQ_TIM1_BRK_TIM15_PRIORITY 7 #define STM32_IRQ_TIM1_UP_TIM16_PRIORITY 7 #define STM32_IRQ_TIM1_TRGCO_TIM17_PRIORITY 7 @@ -184,6 +189,7 @@ #define STM32_CAN_USE_FDCAN1 FALSE #define STM32_CAN_USE_FDCAN2 FALSE #define STM32_CAN_USE_FDCAN3 FALSE +#define STM32_CAN_FDCAN_PRESC FDCAN_CONFIG_CKDIV_PDIV_20 /* * DAC driver system settings. @@ -241,18 +247,10 @@ #define STM32_I2C_USE_I2C3 FALSE #define STM32_I2C_USE_I2C4 FALSE #define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C4_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C4_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C1_IRQ_PRIORITY 5 -#define STM32_I2C_I2C2_IRQ_PRIORITY 5 -#define STM32_I2C_I2C3_IRQ_PRIORITY 5 -#define STM32_I2C_I2C4_IRQ_PRIORITY 5 +#define STM32_I2C_I2C1_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C2_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C3_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C4_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY #define STM32_I2C_I2C1_DMA_PRIORITY 3 #define STM32_I2C_I2C2_DMA_PRIORITY 3 #define STM32_I2C_I2C3_DMA_PRIORITY 3 diff --git a/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h index 09096c3977..2b74c34ff5 100644 --- a/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -276,6 +276,7 @@ #define STM32_I2C_USE_I2C2 FALSE #define STM32_I2C_USE_I2C3 FALSE #define STM32_I2C_USE_I2C4 FALSE +#define STM32_I2C_USE_I2C5 FALSE #define STM32_I2C_BUSY_TIMEOUT 50 #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY #define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY @@ -285,14 +286,18 @@ #define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY #define STM32_I2C_I2C4_RX_BDMA_STREAM STM32_BDMA_STREAM_ID_ANY #define STM32_I2C_I2C4_TX_BDMA_STREAM STM32_BDMA_STREAM_ID_ANY +#define STM32_I2C_I2C5_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C5_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY #define STM32_I2C_I2C1_IRQ_PRIORITY 5 #define STM32_I2C_I2C2_IRQ_PRIORITY 5 #define STM32_I2C_I2C3_IRQ_PRIORITY 5 #define STM32_I2C_I2C4_IRQ_PRIORITY 5 +#define STM32_I2C_I2C5_IRQ_PRIORITY 5 #define STM32_I2C_I2C1_DMA_PRIORITY 3 #define STM32_I2C_I2C2_DMA_PRIORITY 3 #define STM32_I2C_I2C3_DMA_PRIORITY 3 #define STM32_I2C_I2C4_DMA_PRIORITY 3 +#define STM32_I2C_I2C5_DMA_PRIORITY 3 #define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") /* diff --git a/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/mcuconf.h index 47f1598b74..ee3a84f0ec 100644 --- a/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_L432XC/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_L432XC/configs/mcuconf.h index 6962a340c5..7f7cb74beb 100644 --- a/platforms/chibios/boards/GENERIC_STM32_L432XC/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_L432XC/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h b/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h index e92b7aeb98..2cdd9bc80e 100644 --- a/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h +++ b/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -49,19 +49,6 @@ #define CH_CFG_SMP_MODE FALSE #endif -/** - * @brief Kernel hardening level. - * @details This option is the level of functional-safety checks enabled - * in the kerkel. The meaning is: - * - 0: No checks, maximum performance. - * - 1: Reasonable checks. - * - 2: All checks. - * . - */ -#if !defined(CH_CFG_HARDENING_LEVEL) -#define CH_CFG_HARDENING_LEVEL 0 -#endif - /** @} */ /*===========================================================================*/ @@ -373,16 +360,6 @@ #define CH_CFG_USE_MAILBOXES TRUE #endif -/** - * @brief Memory checks APIs. - * @details If enabled then the memory checks APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCHECKS) -#define CH_CFG_USE_MEMCHECKS TRUE -#endif - /** * @brief Core Memory Manager APIs. * @details If enabled then the core memory manager APIs are included diff --git a/platforms/chibios/boards/QMK_PROTON_C/configs/halconf.h b/platforms/chibios/boards/QMK_PROTON_C/configs/halconf.h index 4a22e818e2..4e8154820b 100644 --- a/platforms/chibios/boards/QMK_PROTON_C/configs/halconf.h +++ b/platforms/chibios/boards/QMK_PROTON_C/configs/halconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -29,10 +29,17 @@ #define HALCONF_H #define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_8_4_ +#define _CHIBIOS_HAL_CONF_VER_9_1_ #include +/** + * @brief Enables the HAL safety subsystem. + */ +#if !defined(HAL_USE_SAFETY) || defined(__DOXYGEN__) +#define HAL_USE_SAFETY FALSE +#endif + /** * @brief Enables the PAL subsystem. */ @@ -305,6 +312,14 @@ /* I2C driver related settings. */ /*===========================================================================*/ +/** + * @brief Slave mode API enable switch. + * @note The low level driver must support this capability. + */ +#if !defined(I2C_ENABLE_SLAVE_MODE) +#define I2C_ENABLE_SLAVE_MODE FALSE +#endif + /** * @brief Enables the mutual exclusion APIs on the I2C bus. */ diff --git a/platforms/chibios/boards/QMK_PROTON_C/configs/mcuconf.h b/platforms/chibios/boards/QMK_PROTON_C/configs/mcuconf.h index cab4c29cf6..8a27ba5537 100644 --- a/platforms/chibios/boards/QMK_PROTON_C/configs/mcuconf.h +++ b/platforms/chibios/boards/QMK_PROTON_C/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/STEMCELL/configs/mcuconf.h b/platforms/chibios/boards/STEMCELL/configs/mcuconf.h index d4b870f8e4..3ccc668641 100644 --- a/platforms/chibios/boards/STEMCELL/configs/mcuconf.h +++ b/platforms/chibios/boards/STEMCELL/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/common/configs/chconf.h b/platforms/chibios/boards/common/configs/chconf.h index 6381298ef7..e4c65bdcf7 100644 --- a/platforms/chibios/boards/common/configs/chconf.h +++ b/platforms/chibios/boards/common/configs/chconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -49,19 +49,6 @@ #define CH_CFG_SMP_MODE FALSE #endif -/** - * @brief Kernel hardening level. - * @details This option is the level of functional-safety checks enabled - * in the kerkel. The meaning is: - * - 0: No checks, maximum performance. - * - 1: Reasonable checks. - * - 2: All checks. - * . - */ -#if !defined(CH_CFG_HARDENING_LEVEL) -#define CH_CFG_HARDENING_LEVEL 0 -#endif - /** @} */ /*===========================================================================*/ @@ -373,16 +360,6 @@ #define CH_CFG_USE_MAILBOXES FALSE #endif -/** - * @brief Memory checks APIs. - * @details If enabled then the memory checks APIs are included in the kernel. - * - * @note The default is @p TRUE. - */ -#if !defined(CH_CFG_USE_MEMCHECKS) -#define CH_CFG_USE_MEMCHECKS TRUE -#endif - /** * @brief Core Memory Manager APIs. * @details If enabled then the core memory manager APIs are included diff --git a/platforms/chibios/boards/common/configs/halconf.h b/platforms/chibios/boards/common/configs/halconf.h index b0ccbc1f2f..9ab6dc3fd6 100644 --- a/platforms/chibios/boards/common/configs/halconf.h +++ b/platforms/chibios/boards/common/configs/halconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio + ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -29,10 +29,17 @@ #define HALCONF_H #define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_8_4_ +#define _CHIBIOS_HAL_CONF_VER_9_1_ #include +/** + * @brief Enables the HAL safety subsystem. + */ +#if !defined(HAL_USE_SAFETY) || defined(__DOXYGEN__) +#define HAL_USE_SAFETY FALSE +#endif + /** * @brief Enables the PAL subsystem. */ @@ -305,6 +312,14 @@ /* I2C driver related settings. */ /*===========================================================================*/ +/** + * @brief Slave mode API enable switch. + * @note The low level driver must support this capability. + */ +#if !defined(I2C_ENABLE_SLAVE_MODE) +#define I2C_ENABLE_SLAVE_MODE FALSE +#endif + /** * @brief Enables the mutual exclusion APIs on the I2C bus. */ diff --git a/platforms/chibios/platform.mk b/platforms/chibios/platform.mk index cf9fac251e..b5cbec4431 100644 --- a/platforms/chibios/platform.mk +++ b/platforms/chibios/platform.mk @@ -279,7 +279,7 @@ PLATFORM_SRC = \ $(PLATFORMSRC) \ $(BOARDSRC) \ $(STREAMSSRC) \ - $(CHIBIOS)/os/various/syscalls.c \ + $(CHIBIOS)/os/various/newlib_bindings/syscalls.c \ $(PLATFORM_COMMON_DIR)/syscall-fallbacks.c \ $(PLATFORM_COMMON_DIR)/wait.c \ $(PLATFORM_COMMON_DIR)/synchronization_util.c \ diff --git a/util/chibios_conf_updater.sh b/util/chibios_conf_updater.sh index 4c68c678c6..06f8e9104a 100755 --- a/util/chibios_conf_updater.sh +++ b/util/chibios_conf_updater.sh @@ -62,7 +62,7 @@ upgrade_conf_files_generic() { pushd "$qmk_firmware_dir/lib/chibios/tools/updater" >/dev/null 2>&1 for file in $(find_chibi_files "$qmk_firmware_dir" -name "$search_filename") ; do cp -f "$file" "$file.orig" - clang-format --style='{IndentPPDirectives: None}' -i "$file" + clang-format --style='{IndentPPDirectives: None, ColumnLimit: 0}' -i "$file" cp -f "$file" "$file.formatted" bash "$update_script" "$file" if ! diff "$file" "$file.formatted" >/dev/null 2>&1 ; then From afb5335bf3396447d19db4816bcd520bafb4779d Mon Sep 17 00:00:00 2001 From: Peter Cock Date: Fri, 13 Mar 2026 22:59:54 +0000 Subject: [PATCH 243/255] Switch missing default handler in OS detection docs (#26064) Switch was missing default handler: control reaches end of non-void function This warning gets treated as an error on Github Actions --- docs/features/os_detection.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/features/os_detection.md b/docs/features/os_detection.md index 880e88d4b9..093e9a78d3 100644 --- a/docs/features/os_detection.md +++ b/docs/features/os_detection.md @@ -136,6 +136,8 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) { print_stored_setups(); } return false; + default: + return true; // Process all other keycodes normally } } ``` From 7785e87029ab28c83b13bd11a0b6d3a9c8ceb8a4 Mon Sep 17 00:00:00 2001 From: Brandon Date: Fri, 13 Mar 2026 17:17:29 -0600 Subject: [PATCH 244/255] Add nulldesignco/v1/nullpad (#26057) --- .../nulldesignco/nullpad/v1/keyboard.json | 126 ++++++++++++++++++ .../nullpad/v1/keymaps/default/keymap.c | 22 +++ keyboards/nulldesignco/nullpad/v1/readme.md | 27 ++++ 3 files changed, 175 insertions(+) create mode 100755 keyboards/nulldesignco/nullpad/v1/keyboard.json create mode 100755 keyboards/nulldesignco/nullpad/v1/keymaps/default/keymap.c create mode 100755 keyboards/nulldesignco/nullpad/v1/readme.md diff --git a/keyboards/nulldesignco/nullpad/v1/keyboard.json b/keyboards/nulldesignco/nullpad/v1/keyboard.json new file mode 100755 index 0000000000..e669e51d90 --- /dev/null +++ b/keyboards/nulldesignco/nullpad/v1/keyboard.json @@ -0,0 +1,126 @@ +{ + "manufacturer": "nulldesignco", + "keyboard_name": "nullpad", + "maintainer": "quark-works", + "bootloader": "rp2040", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "extrakey": true, + "mousekey": true, + "nkro": true, + "rgb_matrix": true + }, + "matrix_pins": { + "cols": ["GP27", "GP28", "GP8", "GP10"], + "rows": ["GP12", "GP25", "GP11", "GP26", "GP9", "GP21"] + }, + "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": [5, 1], "x": 37, "y": 0, "flags": 4}, + {"matrix": [3, 0], "x": 0, "y": 16, "flags": 4}, + {"matrix": [3, 1], "x": 75, "y": 16, "flags": 4}, + {"matrix": [3, 2], "x": 150, "y": 16, "flags": 4}, + {"matrix": [4, 2], "x": 150, "y": 0, "flags": 4}, + {"matrix": [4, 3], "x": 224, "y": 8, "flags": 4}, + {"matrix": [2, 2], "x": 150, "y": 32, "flags": 4}, + {"matrix": [2, 1], "x": 75, "y": 32, "flags": 4}, + {"matrix": [2, 0], "x": 0, "y": 32, "flags": 4}, + {"matrix": [1, 0], "x": 0, "y": 48, "flags": 4}, + {"matrix": [1, 1], "x": 75, "y": 48, "flags": 4}, + {"matrix": [1, 2], "x": 150, "y": 48, "flags": 4}, + {"matrix": [2, 3], "x": 224, "y": 40, "flags": 4}, + {"matrix": [0, 3], "x": 224, "y": 64, "flags": 4}, + {"matrix": [0, 2], "x": 150, "y": 64, "flags": 4}, + {"matrix": [0, 1], "x": 75, "y": 64, "flags": 4}, + {"matrix": [0, 0], "x": 0, "y": 64, "flags": 4} + ], + "sleep": true + }, + "url": "https://nulldesignco.com/", + "usb": { + "device_version": "1.0.0", + "pid": "0x0011", + "vid": "0x6E6C" + }, + "ws2812": { + "driver": "vendor", + "pin": "GP18" + }, + "community_layouts": ["numpad_5x4"], + "layouts": { + "LAYOUT_numpad_5x4": { + "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": [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": 1, "h": 2}, + {"matrix": [3, 0], "x": 0, "y": 3}, + {"matrix": [3, 1], "x": 1, "y": 3}, + {"matrix": [3, 2], "x": 2, "y": 3}, + {"matrix": [5, 1], "x": 0, "y": 4, "w": 2}, + {"matrix": [4, 2], "x": 2, "y": 4}, + {"matrix": [4, 3], "x": 3, "y": 3, "h": 2} + ] + } + } +} diff --git a/keyboards/nulldesignco/nullpad/v1/keymaps/default/keymap.c b/keyboards/nulldesignco/nullpad/v1/keymaps/default/keymap.c new file mode 100755 index 0000000000..ac5482f4b2 --- /dev/null +++ b/keyboards/nulldesignco/nullpad/v1/keymaps/default/keymap.c @@ -0,0 +1,22 @@ +// Copyright 2025 quark-works +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_numpad_5x4( + KC_NUM, KC_PSLS, KC_PAST, KC_PMNS, + KC_P7, KC_P8, KC_P9, + KC_P4, KC_P5, KC_P6, KC_PPLS, + KC_P1, KC_P2, KC_P3, + KC_P0, KC_PDOT, KC_PENT + ) +}; + +bool rgb_matrix_indicators_user(void) { + if (host_keyboard_led_state().num_lock) { + rgb_matrix_set_color(16, 255, 0, 0); + } + return false; +} diff --git a/keyboards/nulldesignco/nullpad/v1/readme.md b/keyboards/nulldesignco/nullpad/v1/readme.md new file mode 100755 index 0000000000..6c3b5a401e --- /dev/null +++ b/keyboards/nulldesignco/nullpad/v1/readme.md @@ -0,0 +1,27 @@ +# nullpad v1 + +![sp](https://i.imgur.com/069rfPe.png) + +Numpad tray mount PCB with RGB per key. + +* Keyboard Maintainer: [Quark](https://github.com/quark-works) +* Hardware Supported: PCB +* Hardware Availability: https://nulldesignco.com/ + +Make example for this keyboard (after setting up your build environment): + + make nulldesignco/nullpad/v1:default + +Flashing example for this keyboard: + + make nulldesignco/nullpad/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 + +Enter the bootloader in 3 ways: + +* **Bootmagic reset**: Hold down the key at (0,0) in the matrix (top left key or NumLock) and plug in the keyboard +* **Physical boot button**: Hold the button labeled as "BOOT" on the back of the board while you connect the keyboard to your computer. +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available From f7a77c8b702d8e18c85818652e7e6b6652422034 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Fri, 13 Mar 2026 23:20:28 +0000 Subject: [PATCH 245/255] Update lint to check all keymaps within the repo (#25970) --- lib/python/qmk/cli/lint.py | 20 ++++++++++---------- lib/python/qmk/keymap.py | 32 ++++++++++++++++++-------------- 2 files changed, 28 insertions(+), 24 deletions(-) diff --git a/lib/python/qmk/cli/lint.py b/lib/python/qmk/cli/lint.py index 99775067e9..575e357c7e 100644 --- a/lib/python/qmk/cli/lint.py +++ b/lib/python/qmk/cli/lint.py @@ -22,15 +22,10 @@ INVALID_KM_NAMES = ['via', 'vial'] def _list_defaultish_keymaps(kb): """Return default like keymaps for a given keyboard """ - defaultish = ['ansi', 'iso'] + keymaps = set(list_keymaps(kb, include_userspace=False, include_community=False)) - # This is only here to flag it as "testable", so it doesn't fly under the radar during PR - defaultish.extend(INVALID_KM_NAMES) - - keymaps = set() - for x in list_keymaps(kb, include_userspace=False): - if x in defaultish or x.startswith('default'): - keymaps.add(x) + # Ensure that at least a 'default' keymap always exists + keymaps.add('default') return keymaps @@ -366,6 +361,11 @@ def lint(cli): cli.print_help() return False + # milc config handling of user.keymap breaks running lint without keymap argument + # so we have to disable that while still allowing a default to be set with lint.keymap + if 'keymap' not in cli.config_source.lint.keys() and cli.config.lint.keymap: + cli.config.lint.keymap = None + if isinstance(cli.config.lint.keyboard, str): # if provided via config - string not array keyboard_list = [cli.config.lint.keyboard] @@ -381,12 +381,12 @@ def lint(cli): # Determine keymaps to also check if cli.args.keymap == 'all': keymaps = list_keymaps(kb) + elif cli.args.keymap: + keymaps = {cli.args.keymap} elif cli.config.lint.keymap: keymaps = {cli.config.lint.keymap} else: keymaps = _list_defaultish_keymaps(kb) - # Ensure that at least a 'default' keymap always exists - keymaps.add('default') ok = True diff --git a/lib/python/qmk/keymap.py b/lib/python/qmk/keymap.py index 4c7b391362..fa8f5df5f9 100644 --- a/lib/python/qmk/keymap.py +++ b/lib/python/qmk/keymap.py @@ -389,7 +389,7 @@ def is_keymap_target(keyboard, keymap): return False -def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=False, include_userspace=True): +def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=False, include_userspace=True, include_community=True): """List the available keymaps for a keyboard. Args: @@ -411,6 +411,9 @@ def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=Fa include_userspace When set to True, also search userspace for available keymaps + include_community + When set to True, also search community layouts folder for available keymaps + Returns: a sorted list of valid keymap names. """ @@ -434,21 +437,22 @@ def list_keymaps(keyboard, c=True, json=True, additional_files=None, fullpath=Fa kb_path = kb_path.parent - # Check community layouts as a fallback - info = info_json(keyboard) + if include_community: + # Check community layouts as a fallback + info = info_json(keyboard) - community_parents = list(Path('layouts').glob('*/')) - if has_userspace and (Path(QMK_USERSPACE) / "layouts").exists(): - community_parents.append(Path(QMK_USERSPACE) / "layouts") + community_parents = list(Path('layouts').glob('*/')) + if has_userspace and (Path(QMK_USERSPACE) / "layouts").exists(): + community_parents.append(Path(QMK_USERSPACE) / "layouts") - for community_parent in community_parents: - for layout in info.get("community_layouts", []): - cl_path = community_parent / layout - if cl_path.is_dir(): - for keymap in cl_path.iterdir(): - if is_keymap_dir(keymap, c, json, additional_files): - keymap = keymap if fullpath else keymap.name - names.add(keymap) + for community_parent in community_parents: + for layout in info.get("community_layouts", []): + cl_path = community_parent / layout + if cl_path.is_dir(): + for keymap in cl_path.iterdir(): + if is_keymap_dir(keymap, c, json, additional_files): + keymap = keymap if fullpath else keymap.name + names.add(keymap) return sorted(names) From 7ec819eb22e66be7ab03acbbc1442c328d80b8ea Mon Sep 17 00:00:00 2001 From: vuvoth Date: Sat, 14 Mar 2026 20:30:14 +0700 Subject: [PATCH 246/255] docs: remove hardware link in Ferris Sweep README (#26069) remove hardware link in Ferris Sweep readme Corrected wording for Ferris sweep hardware description. --- keyboards/ferris/readme.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/keyboards/ferris/readme.md b/keyboards/ferris/readme.md index 0d1fe284fd..be4199532e 100644 --- a/keyboards/ferris/readme.md +++ b/keyboards/ferris/readme.md @@ -8,8 +8,7 @@ A split 34 keys column staggered keyboard named and decorated after the rustlang * Hardware Supported: * Ferris 0.1 (With atmega32u4 chip. Comes in 4 variants: base, low, high and compact) * Ferris 0.2 (With stm32f072 chip. Comes in 4 variants: bling, mini, high and compact) - * Ferris sweep (With pro-micro. Comes in a couple of PCB edge cuts shapes, but with identical pinout) -* Hardware Availability: [Cuddly Keyboards](https://cuddlykeyboards.com) + * Ferris sweep (With pro-micro. Comes in a couple of PCB edge cut shapes, but with an identical pinout) Make examples for this keyboard (after setting up your build environment): From e5faeea94d7f21b901b12321a1a5c75268c5bff6 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sat, 14 Mar 2026 15:31:07 +0000 Subject: [PATCH 247/255] Unit tests should not run when docs change (#26068) --- .github/workflows/unit_test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/unit_test.yml b/.github/workflows/unit_test.yml index eaac37c839..6f785dec7d 100644 --- a/.github/workflows/unit_test.yml +++ b/.github/workflows/unit_test.yml @@ -11,6 +11,7 @@ on: pull_request: paths: - 'builddefs/**' + - '!builddefs/docsgen/**' - 'quantum/**' - 'platforms/**' - 'tmk_core/**' From cd78765edc547c118a55dbdd847da4bb2606815b Mon Sep 17 00:00:00 2001 From: HorrorTroll Date: Sun, 15 Mar 2026 16:06:19 +0700 Subject: [PATCH 248/255] Update WL backing store from 16 to 32-bit for AT32 (#26066) Update backing store from 16 to 32-bit for AT32 --- .../chibios/drivers/wear_leveling/wear_leveling_efl_config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h index f09f824bd8..2661b54acc 100644 --- a/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h +++ b/platforms/chibios/drivers/wear_leveling/wear_leveling_efl_config.h @@ -17,7 +17,7 @@ # elif defined(QMK_MCU_FAMILY_WB32) # define BACKING_STORE_WRITE_SIZE 8 // from hal_efl_lld.c # elif defined(QMK_MCU_FAMILY_AT32) -# define BACKING_STORE_WRITE_SIZE 2 // from hal_efl_lld.c +# define BACKING_STORE_WRITE_SIZE 4 // from hal_efl_lld.c # elif defined(QMK_MCU_FAMILY_STM32) # if defined(STM32_FLASH_LINE_SIZE) // from some family's stm32_registry.h file # define BACKING_STORE_WRITE_SIZE (STM32_FLASH_LINE_SIZE) From b6ff72cb03ba002b4f3459a2afea52645b116a01 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 15 Mar 2026 10:25:45 +0000 Subject: [PATCH 249/255] Bump vitepress to 1.6.4 (#26067) --- builddefs/docsgen/package.json | 6 +- builddefs/docsgen/yarn.lock | 1134 +++++++++++++++++++++----------- 2 files changed, 750 insertions(+), 390 deletions(-) diff --git a/builddefs/docsgen/package.json b/builddefs/docsgen/package.json index b6c56f3448..17912e652d 100644 --- a/builddefs/docsgen/package.json +++ b/builddefs/docsgen/package.json @@ -1,10 +1,8 @@ { "license": "GPL-2.0-or-later", "devDependencies": { - "vite": "^5.4.21", - "vitepress": "^1.1.0", - "vitepress-plugin-tabs": "^0.5.0", - "vue": "^3.4.24" + "vitepress": "^1.6.4", + "vitepress-plugin-tabs": "^0.8.0" }, "scripts": { "docs:dev": "vitepress dev --host 0.0.0.0", diff --git a/builddefs/docsgen/yarn.lock b/builddefs/docsgen/yarn.lock index 8c0791ffc2..ec27914827 100644 --- a/builddefs/docsgen/yarn.lock +++ b/builddefs/docsgen/yarn.lock @@ -2,181 +2,206 @@ # yarn lockfile v1 -"@algolia/autocomplete-core@1.9.3": - version "1.9.3" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz#1d56482a768c33aae0868c8533049e02e8961be7" - integrity sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw== +"@algolia/abtesting@1.15.2": + version "1.15.2" + resolved "https://registry.yarnpkg.com/@algolia/abtesting/-/abtesting-1.15.2.tgz#5c5e52daba3cf80d92eaf683c781e7f86d3b51b6" + integrity sha512-rF7vRVE61E0QORw8e2NNdnttcl3jmFMWS9B4hhdga12COe+lMa26bQLfcBn/Nbp9/AF/8gXdaRCPsVns3CnjsA== dependencies: - "@algolia/autocomplete-plugin-algolia-insights" "1.9.3" - "@algolia/autocomplete-shared" "1.9.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/autocomplete-plugin-algolia-insights@1.9.3": - version "1.9.3" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz#9b7f8641052c8ead6d66c1623d444cbe19dde587" - integrity sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg== +"@algolia/autocomplete-core@1.17.7": + version "1.17.7" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.17.7.tgz#2c410baa94a47c5c5f56ed712bb4a00ebe24088b" + integrity sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q== dependencies: - "@algolia/autocomplete-shared" "1.9.3" + "@algolia/autocomplete-plugin-algolia-insights" "1.17.7" + "@algolia/autocomplete-shared" "1.17.7" -"@algolia/autocomplete-preset-algolia@1.9.3": - version "1.9.3" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz#64cca4a4304cfcad2cf730e83067e0c1b2f485da" - integrity sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA== +"@algolia/autocomplete-plugin-algolia-insights@1.17.7": + version "1.17.7" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.7.tgz#7d2b105f84e7dd8f0370aa4c4ab3b704e6760d82" + integrity sha512-Jca5Ude6yUOuyzjnz57og7Et3aXjbwCSDf/8onLHSQgw1qW3ALl9mrMWaXb5FmPVkV3EtkD2F/+NkT6VHyPu9A== dependencies: - "@algolia/autocomplete-shared" "1.9.3" + "@algolia/autocomplete-shared" "1.17.7" -"@algolia/autocomplete-shared@1.9.3": - version "1.9.3" - resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz#2e22e830d36f0a9cf2c0ccd3c7f6d59435b77dfa" - integrity sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ== - -"@algolia/cache-browser-local-storage@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.23.3.tgz#0cc26b96085e1115dac5fcb9d826651ba57faabc" - integrity sha512-vRHXYCpPlTDE7i6UOy2xE03zHF2C8MEFjPN2v7fRbqVpcOvAUQK81x3Kc21xyb5aSIpYCjWCZbYZuz8Glyzyyg== +"@algolia/autocomplete-preset-algolia@1.17.7": + version "1.17.7" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.7.tgz#c9badc0d73d62db5bf565d839d94ec0034680ae9" + integrity sha512-ggOQ950+nwbWROq2MOCIL71RE0DdQZsceqrg32UqnhDz8FlO9rL8ONHNsI2R1MH0tkgVIDKI/D0sMiUchsFdWA== dependencies: - "@algolia/cache-common" "4.23.3" + "@algolia/autocomplete-shared" "1.17.7" -"@algolia/cache-common@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/cache-common/-/cache-common-4.23.3.tgz#3bec79092d512a96c9bfbdeec7cff4ad36367166" - integrity sha512-h9XcNI6lxYStaw32pHpB1TMm0RuxphF+Ik4o7tcQiodEdpKK+wKufY6QXtba7t3k8eseirEMVB83uFFF3Nu54A== +"@algolia/autocomplete-shared@1.17.7": + version "1.17.7" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.7.tgz#105e84ad9d1a31d3fb86ba20dc890eefe1a313a0" + integrity sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg== -"@algolia/cache-in-memory@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/cache-in-memory/-/cache-in-memory-4.23.3.tgz#3945f87cd21ffa2bec23890c85305b6b11192423" - integrity sha512-yvpbuUXg/+0rbcagxNT7un0eo3czx2Uf0y4eiR4z4SD7SiptwYTpbuS0IHxcLHG3lq22ukx1T6Kjtk/rT+mqNg== +"@algolia/client-abtesting@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/client-abtesting/-/client-abtesting-5.49.2.tgz#0c7f46ba2789e30db53eb31f816aa31fe1ec750e" + integrity sha512-XyvKCm0RRmovMI/ChaAVjTwpZhXdbgt3iZofK914HeEHLqD1MUFFVLz7M0+Ou7F56UkHXwRbpHwb9xBDNopprQ== dependencies: - "@algolia/cache-common" "4.23.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/client-account@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/client-account/-/client-account-4.23.3.tgz#8751bbf636e6741c95e7c778488dee3ee430ac6f" - integrity sha512-hpa6S5d7iQmretHHF40QGq6hz0anWEHGlULcTIT9tbUssWUriN9AUXIFQ8Ei4w9azD0hc1rUok9/DeQQobhQMA== +"@algolia/client-analytics@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-5.49.2.tgz#d1eee1df4a7d50c05cd0448589b34d5e3b058237" + integrity sha512-jq/3qvtmj3NijZlhq7A1B0Cl41GfaBpjJxcwukGsYds6aMSCWrEAJ9pUqw/C9B3hAmILYKl7Ljz3N9SFvekD3Q== dependencies: - "@algolia/client-common" "4.23.3" - "@algolia/client-search" "4.23.3" - "@algolia/transporter" "4.23.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/client-analytics@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-4.23.3.tgz#f88710885278fe6fb6964384af59004a5a6f161d" - integrity sha512-LBsEARGS9cj8VkTAVEZphjxTjMVCci+zIIiRhpFun9jGDUlS1XmhCW7CTrnaWeIuCQS/2iPyRqSy1nXPjcBLRA== +"@algolia/client-common@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.49.2.tgz#cb93f1ea9a60f7ffec65474e075afb52900f2434" + integrity sha512-bn0biLequn3epobCfjUqCxlIlurLr4RHu7RaE4trgN+RDcUq6HCVC3/yqq1hwbNYpVtulnTOJzcaxYlSr1fnuw== + +"@algolia/client-insights@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/client-insights/-/client-insights-5.49.2.tgz#fdbd2be74bfe805cddf249f67f95f65323c5f5dd" + integrity sha512-z14wfFs1T3eeYbCArC8pvntAWsPo9f6hnUGoj8IoRUJTwgJiiySECkm8bmmV47/x0oGHfsVn3kBdjMX0yq0sNA== dependencies: - "@algolia/client-common" "4.23.3" - "@algolia/client-search" "4.23.3" - "@algolia/requester-common" "4.23.3" - "@algolia/transporter" "4.23.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/client-common@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-4.23.3.tgz#891116aa0db75055a7ecc107649f7f0965774704" - integrity sha512-l6EiPxdAlg8CYhroqS5ybfIczsGUIAC47slLPOMDeKSVXYG1n0qGiz4RjAHLw2aD0xzh2EXZ7aRguPfz7UKDKw== +"@algolia/client-personalization@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-5.49.2.tgz#3b8fc9eb85b24dbcb2ee80dae9af91bd12490148" + integrity sha512-GpRf7yuuAX93+Qt0JGEJZwgtL0MFdjFO9n7dn8s2pA9mTjzl0Sc5+uTk1VPbIAuf7xhCP9Mve+URGb6J+EYxgA== dependencies: - "@algolia/requester-common" "4.23.3" - "@algolia/transporter" "4.23.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/client-personalization@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-4.23.3.tgz#35fa8e5699b0295fbc400a8eb211dc711e5909db" - integrity sha512-3E3yF3Ocr1tB/xOZiuC3doHQBQ2zu2MPTYZ0d4lpfWads2WTKG7ZzmGnsHmm63RflvDeLK/UVx7j2b3QuwKQ2g== +"@algolia/client-query-suggestions@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.49.2.tgz#e5d9ed73fe5f0afc8feddfc68d4691d5963e8c57" + integrity sha512-HZwApmNkp0DiAjZcLYdQLddcG4Agb88OkojiAHGgcm5DVXobT5uSZ9lmyrbw/tmQBJwgu2CNw4zTyXoIB7YbPA== dependencies: - "@algolia/client-common" "4.23.3" - "@algolia/requester-common" "4.23.3" - "@algolia/transporter" "4.23.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/client-search@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-4.23.3.tgz#a3486e6af13a231ec4ab43a915a1f318787b937f" - integrity sha512-P4VAKFHqU0wx9O+q29Q8YVuaowaZ5EM77rxfmGnkHUJggh28useXQdopokgwMeYw2XUht49WX5RcTQ40rZIabw== +"@algolia/client-search@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.49.2.tgz#3c823ffaf333ce70fedfb3d45361661c8b227806" + integrity sha512-y1IOpG6OSmTpGg/CT0YBb/EAhR2nsC18QWp9Jy8HO9iGySpcwaTvs5kHa17daP3BMTwWyaX9/1tDTDQshZzXdg== dependencies: - "@algolia/client-common" "4.23.3" - "@algolia/requester-common" "4.23.3" - "@algolia/transporter" "4.23.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/logger-common@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/logger-common/-/logger-common-4.23.3.tgz#35c6d833cbf41e853a4f36ba37c6e5864920bfe9" - integrity sha512-y9kBtmJwiZ9ZZ+1Ek66P0M68mHQzKRxkW5kAAXYN/rdzgDN0d2COsViEFufxJ0pb45K4FRcfC7+33YB4BLrZ+g== - -"@algolia/logger-console@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/logger-console/-/logger-console-4.23.3.tgz#30f916781826c4db5f51fcd9a8a264a06e136985" - integrity sha512-8xoiseoWDKuCVnWP8jHthgaeobDLolh00KJAdMe9XPrWPuf1by732jSpgy2BlsLTaT9m32pHI8CRfrOqQzHv3A== +"@algolia/ingestion@1.49.2": + version "1.49.2" + resolved "https://registry.yarnpkg.com/@algolia/ingestion/-/ingestion-1.49.2.tgz#99626cd9b11925e1aae5db59836821d2e7e2c892" + integrity sha512-YYJRjaZ2bqk923HxE4um7j/Cm3/xoSkF2HC2ZweOF8cXL3sqnlndSUYmCaxHFjNPWLaSHk2IfssX6J/tdKTULw== dependencies: - "@algolia/logger-common" "4.23.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/recommend@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-4.23.3.tgz#53d4f194d22d9c72dc05f3f7514c5878f87c5890" - integrity sha512-9fK4nXZF0bFkdcLBRDexsnGzVmu4TSYZqxdpgBW2tEyfuSSY54D4qSRkLmNkrrz4YFvdh2GM1gA8vSsnZPR73w== +"@algolia/monitoring@1.49.2": + version "1.49.2" + resolved "https://registry.yarnpkg.com/@algolia/monitoring/-/monitoring-1.49.2.tgz#5c550df1b073de97e3d38a2e8d50f17e90badc52" + integrity sha512-9WgH+Dha39EQQyGKCHlGYnxW/7W19DIrEbCEbnzwAMpGAv1yTWCHMPXHxYa+LcL3eCp2V/5idD1zHNlIKmHRHg== dependencies: - "@algolia/cache-browser-local-storage" "4.23.3" - "@algolia/cache-common" "4.23.3" - "@algolia/cache-in-memory" "4.23.3" - "@algolia/client-common" "4.23.3" - "@algolia/client-search" "4.23.3" - "@algolia/logger-common" "4.23.3" - "@algolia/logger-console" "4.23.3" - "@algolia/requester-browser-xhr" "4.23.3" - "@algolia/requester-common" "4.23.3" - "@algolia/requester-node-http" "4.23.3" - "@algolia/transporter" "4.23.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/requester-browser-xhr@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.23.3.tgz#9e47e76f60d540acc8b27b4ebc7a80d1b41938b9" - integrity sha512-jDWGIQ96BhXbmONAQsasIpTYWslyjkiGu0Quydjlowe+ciqySpiDUrJHERIRfELE5+wFc7hc1Q5hqjGoV7yghw== +"@algolia/recommend@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-5.49.2.tgz#ace9e988141dd627f7ac3a0e38d9e254bb006490" + integrity sha512-K7Gp5u+JtVYgaVpBxF5rGiM+Ia8SsMdcAJMTDV93rwh00DKNllC19o1g+PwrDjDvyXNrnTEbofzbTs2GLfFyKA== dependencies: - "@algolia/requester-common" "4.23.3" + "@algolia/client-common" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -"@algolia/requester-common@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/requester-common/-/requester-common-4.23.3.tgz#7dbae896e41adfaaf1d1fa5f317f83a99afb04b3" - integrity sha512-xloIdr/bedtYEGcXCiF2muajyvRhwop4cMZo+K2qzNht0CMzlRkm8YsDdj5IaBhshqfgmBb3rTg4sL4/PpvLYw== - -"@algolia/requester-node-http@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-4.23.3.tgz#c9f94a5cb96a15f48cea338ab6ef16bbd0ff989f" - integrity sha512-zgu++8Uj03IWDEJM3fuNl34s746JnZOWn1Uz5taV1dFyJhVM/kTNw9Ik7YJWiUNHJQXcaD8IXD1eCb0nq/aByA== +"@algolia/requester-browser-xhr@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.49.2.tgz#4493ed41dc84948693b34174ccc08ac5dfabd3dd" + integrity sha512-3UhYCcWX6fbtN8ABcxZlhaQEwXFh3CsFtARyyadQShHMPe3mJV9Wel4FpJTa+seugRkbezFz0tt6aPTZSYTBuA== dependencies: - "@algolia/requester-common" "4.23.3" + "@algolia/client-common" "5.49.2" -"@algolia/transporter@4.23.3": - version "4.23.3" - resolved "https://registry.yarnpkg.com/@algolia/transporter/-/transporter-4.23.3.tgz#545b045b67db3850ddf0bbecbc6c84ff1f3398b7" - integrity sha512-Wjl5gttqnf/gQKJA+dafnD0Y6Yw97yvfY8R9h0dQltX1GXTgNs1zWgvtWW0tHl1EgMdhAyw189uWiZMnL3QebQ== +"@algolia/requester-fetch@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.49.2.tgz#fd64e1ec726ffb63dce22112354119125c67a27e" + integrity sha512-G94VKSGbsr+WjsDDOBe5QDQ82QYgxvpxRGJfCHZBnYKYsy/jv9qGIDb93biza+LJWizQBUtDj7bZzp3QZyzhPQ== dependencies: - "@algolia/cache-common" "4.23.3" - "@algolia/logger-common" "4.23.3" - "@algolia/requester-common" "4.23.3" + "@algolia/client-common" "5.49.2" -"@babel/parser@^7.24.4": - version "7.24.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.4.tgz#234487a110d89ad5a3ed4a8a566c36b9453e8c88" - integrity sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg== - -"@docsearch/css@3.6.0", "@docsearch/css@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.6.0.tgz#0e9f56f704b3a34d044d15fd9962ebc1536ba4fb" - integrity sha512-+sbxb71sWre+PwDK7X2T8+bhS6clcVMLwBPznX45Qu6opJcgRjAp7gYSDzVFp187J+feSj5dNBN1mJoi6ckkUQ== - -"@docsearch/js@^3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.6.0.tgz#f9e46943449b9092d874944f7a80bcc071004cfb" - integrity sha512-QujhqINEElrkIfKwyyyTfbsfMAYCkylInLYMRqHy7PHc8xTBQCow73tlo/Kc7oIwBrCLf0P3YhjlOeV4v8hevQ== +"@algolia/requester-node-http@5.49.2": + version "5.49.2" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.49.2.tgz#ac71c6502b8ba8760d22afd3f38620934a28a68f" + integrity sha512-UuihBGHafG/ENsrcTGAn5rsOffrCIRuHMOsD85fZGLEY92ate+BMTUqxz60dv5zerh8ZumN4bRm8eW2z9L11jA== dependencies: - "@docsearch/react" "3.6.0" + "@algolia/client-common" "5.49.2" + +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz#54da796097ab19ce67ed9f88b47bb2ec49367687" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== + +"@babel/helper-validator-identifier@^7.28.5": + version "7.28.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz#010b6938fab7cb7df74aa2bbc06aa503b8fe5fb4" + integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== + +"@babel/parser@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.29.0.tgz#669ef345add7d057e92b7ed15f0bac07611831b6" + integrity sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww== + dependencies: + "@babel/types" "^7.29.0" + +"@babel/types@^7.29.0": + version "7.29.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.29.0.tgz#9f5b1e838c446e72cf3cd4b918152b8c605e37c7" + integrity sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A== + dependencies: + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.28.5" + +"@docsearch/css@3.8.2": + version "3.8.2" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.8.2.tgz#7973ceb6892c30f154ba254cd05c562257a44977" + integrity sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ== + +"@docsearch/js@3.8.2": + version "3.8.2" + resolved "https://registry.yarnpkg.com/@docsearch/js/-/js-3.8.2.tgz#bdcfc9837700eb38453b88e211ab5cc5a3813cc6" + integrity sha512-Q5wY66qHn0SwA7Taa0aDbHiJvaFJLOJyHmooQ7y8hlwwQLQ/5WwCcoX0g7ii04Qi2DJlHsd0XXzJ8Ypw9+9YmQ== + dependencies: + "@docsearch/react" "3.8.2" preact "^10.0.0" -"@docsearch/react@3.6.0": - version "3.6.0" - resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.6.0.tgz#b4f25228ecb7fc473741aefac592121e86dd2958" - integrity sha512-HUFut4ztcVNmqy9gp/wxNbC7pTOHhgVVkHVGCACTuLhUKUhKAF9KYHJtMiLUJxEqiFLQiuri1fWF8zqwM/cu1w== +"@docsearch/react@3.8.2": + version "3.8.2" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.8.2.tgz#7b11d39b61c976c0aa9fbde66e6b73b30f3acd42" + integrity sha512-xCRrJQlTt8N9GU0DG4ptwHRkfnSnD/YpdeaXe02iKfqs97TkZJv60yE+1eq/tjPcVnTW8dP5qLP7itifFVV5eg== dependencies: - "@algolia/autocomplete-core" "1.9.3" - "@algolia/autocomplete-preset-algolia" "1.9.3" - "@docsearch/css" "3.6.0" - algoliasearch "^4.19.1" + "@algolia/autocomplete-core" "1.17.7" + "@algolia/autocomplete-preset-algolia" "1.17.7" + "@docsearch/css" "3.8.2" + algoliasearch "^5.14.2" "@esbuild/aix-ppc64@0.21.5": version "0.21.5" @@ -293,10 +318,22 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz#acad351d582d157bb145535db2a6ff53dd514b5c" integrity sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw== -"@jridgewell/sourcemap-codec@^1.4.15": - version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@iconify-json/simple-icons@^1.2.21": + version "1.2.73" + resolved "https://registry.yarnpkg.com/@iconify-json/simple-icons/-/simple-icons-1.2.73.tgz#65772d358fc25aa1ea97b98101c61170c3ef27e7" + integrity sha512-nQZTwul4c2zBqH/aLP4zMOiElj93T6HawbrP+sFQKpxmBdS5x1duCK3cAnkj6dntHz84EYkzaQRM83V2pj4qxA== + dependencies: + "@iconify/types" "*" + +"@iconify/types@*": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@iconify/types/-/types-2.0.0.tgz#ab0e9ea681d6c8a1214f30cd741fe3a20cc57f57" + integrity sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg== + +"@jridgewell/sourcemap-codec@^1.5.5": + version "1.5.5" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz#6912b00d2c631c0d15ce1a7ab57cd657f2a8f8ba" + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== "@rollup/rollup-android-arm-eabi@4.59.0": version "4.59.0" @@ -423,216 +460,343 @@ resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz#4584a8a87b29188a4c1fe987a9fcf701e256d86c" integrity sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA== -"@shikijs/core@1.3.0", "@shikijs/core@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-1.3.0.tgz#5b93b51ddb8def1e3a1543107f9b5b0540f716f6" - integrity sha512-7fedsBfuILDTBmrYZNFI8B6ATTxhQAasUHllHmjvSZPnoq4bULWoTpHwmuQvZ8Aq03/tAa2IGo6RXqWtHdWaCA== - -"@shikijs/transformers@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-1.3.0.tgz#b03c5733ef61e25e4f53666bf11889f8876f34e9" - integrity sha512-3mlpg2I9CjhjE96dEWQOGeCWoPcyTov3s4aAsHmgvnTHa8MBknEnCQy8/xivJPSpD+olqOqIEoHnLfbNJK29AA== +"@shikijs/core@2.5.0", "@shikijs/core@^2.1.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/core/-/core-2.5.0.tgz#e14d33961dfa3141393d4a76fc8923d0d1c4b62f" + integrity sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg== dependencies: - shiki "1.3.0" + "@shikijs/engine-javascript" "2.5.0" + "@shikijs/engine-oniguruma" "2.5.0" + "@shikijs/types" "2.5.0" + "@shikijs/vscode-textmate" "^10.0.2" + "@types/hast" "^3.0.4" + hast-util-to-html "^9.0.4" + +"@shikijs/engine-javascript@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/engine-javascript/-/engine-javascript-2.5.0.tgz#e045c6ecfbda6c99137547b0a482e0b87f1053fc" + integrity sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w== + dependencies: + "@shikijs/types" "2.5.0" + "@shikijs/vscode-textmate" "^10.0.2" + oniguruma-to-es "^3.1.0" + +"@shikijs/engine-oniguruma@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/engine-oniguruma/-/engine-oniguruma-2.5.0.tgz#230de5693cc1da6c9d59c7ad83593c2027274817" + integrity sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw== + dependencies: + "@shikijs/types" "2.5.0" + "@shikijs/vscode-textmate" "^10.0.2" + +"@shikijs/langs@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/langs/-/langs-2.5.0.tgz#97ab50c495922cc1ca06e192985b28dc73de5d50" + integrity sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w== + dependencies: + "@shikijs/types" "2.5.0" + +"@shikijs/themes@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/themes/-/themes-2.5.0.tgz#8c6aecf73f5455681c8bec15797cf678162896cb" + integrity sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw== + dependencies: + "@shikijs/types" "2.5.0" + +"@shikijs/transformers@^2.1.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/transformers/-/transformers-2.5.0.tgz#190c84786ff06c417580ab79177338a947168c55" + integrity sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg== + dependencies: + "@shikijs/core" "2.5.0" + "@shikijs/types" "2.5.0" + +"@shikijs/types@2.5.0", "@shikijs/types@^2.1.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@shikijs/types/-/types-2.5.0.tgz#e949c7384802703a48b9d6425dd41673c164df69" + integrity sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw== + dependencies: + "@shikijs/vscode-textmate" "^10.0.2" + "@types/hast" "^3.0.4" + +"@shikijs/vscode-textmate@^10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz#a90ab31d0cc1dfb54c66a69e515bf624fa7b2224" + integrity sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg== "@types/estree@1.0.8": version "1.0.8" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== -"@types/linkify-it@*": - version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-3.0.5.tgz#1e78a3ac2428e6d7e6c05c1665c242023a4601d8" - integrity sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw== - -"@types/markdown-it@^14.0.1": - version "14.0.1" - resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-14.0.1.tgz#3d3fdf9dba83b69edececc070d39ec72b84270a7" - integrity sha512-6WfOG3jXR78DW8L5cTYCVVGAsIFZskRHCDo5tbqa+qtKVt4oDRVH7hyIWu1SpDQJlmIoEivNQZ5h+AGAOrgOtQ== +"@types/hast@^3.0.0", "@types/hast@^3.0.4": + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" + integrity sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ== dependencies: - "@types/linkify-it" "*" - "@types/mdurl" "*" + "@types/unist" "*" -"@types/mdurl@*": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.5.tgz#3e0d2db570e9fb6ccb2dc8fde0be1d79ac810d39" - integrity sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA== +"@types/linkify-it@^5": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-5.0.0.tgz#21413001973106cda1c3a9b91eedd4ccd5469d76" + integrity sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q== -"@types/web-bluetooth@^0.0.20": - version "0.0.20" - resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz#f066abfcd1cbe66267cdbbf0de010d8a41b41597" - integrity sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow== - -"@vitejs/plugin-vue@^5.0.4": - version "5.0.4" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.0.4.tgz#508d6a0f2440f86945835d903fcc0d95d1bb8a37" - integrity sha512-WS3hevEszI6CEVEx28F8RjTX97k3KsrcY6kvTg7+Whm5y3oYvcqzVeGCU3hxSAn4uY2CLCkeokkGKpoctccilQ== - -"@vue/compiler-core@3.4.24": - version "3.4.24" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.4.24.tgz#6b4a5ffddcd874a692f2acfa68981201bcd7096b" - integrity sha512-vbW/tgbwJYj62N/Ww99x0zhFTkZDTcGh3uwJEuadZ/nF9/xuFMC4693P9r+3sxGXISABpDKvffY5ApH9pmdd1A== +"@types/markdown-it@^14.1.2": + version "14.1.2" + resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-14.1.2.tgz#57f2532a0800067d9b934f3521429a2e8bfb4c61" + integrity sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog== dependencies: - "@babel/parser" "^7.24.4" - "@vue/shared" "3.4.24" - entities "^4.5.0" + "@types/linkify-it" "^5" + "@types/mdurl" "^2" + +"@types/mdast@^4.0.0": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.4.tgz#7ccf72edd2f1aa7dd3437e180c64373585804dd6" + integrity sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA== + dependencies: + "@types/unist" "*" + +"@types/mdurl@^2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-2.0.0.tgz#d43878b5b20222682163ae6f897b20447233bdfd" + integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg== + +"@types/unist@*", "@types/unist@^3.0.0": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-3.0.3.tgz#acaab0f919ce69cce629c2d4ed2eb4adc1b6c20c" + integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== + +"@types/web-bluetooth@^0.0.21": + version "0.0.21" + resolved "https://registry.yarnpkg.com/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz#525433c784aed9b457aaa0ee3d92aeb71f346b63" + integrity sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA== + +"@ungap/structured-clone@^1.0.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.3.0.tgz#d06bbb384ebcf6c505fde1c3d0ed4ddffe0aaff8" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== + +"@vitejs/plugin-vue@^5.2.1": + version "5.2.4" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-vue/-/plugin-vue-5.2.4.tgz#9e8a512eb174bfc2a333ba959bbf9de428d89ad8" + integrity sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA== + +"@vue/compiler-core@3.5.30": + version "3.5.30" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.5.30.tgz#0f984da9207f24f9ddfb700052a43247a953fd9a" + integrity sha512-s3DfdZkcu/qExZ+td75015ljzHc6vE+30cFMGRPROYjqkroYI5NV2X1yAMX9UeyBNWB9MxCfPcsjpLS11nzkkw== + dependencies: + "@babel/parser" "^7.29.0" + "@vue/shared" "3.5.30" + entities "^7.0.1" estree-walker "^2.0.2" - source-map-js "^1.2.0" + source-map-js "^1.2.1" -"@vue/compiler-dom@3.4.24": - version "3.4.24" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.4.24.tgz#b7335a49f095b6d35e48b6f7be8da513c1fa52b8" - integrity sha512-4XgABML/4cNndVsQndG6BbGN7+EoisDwi3oXNovqL/4jdNhwvP8/rfRMTb6FxkxIxUUtg6AI1/qZvwfSjxJiWA== +"@vue/compiler-dom@3.5.30": + version "3.5.30" + resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.5.30.tgz#a38dbdd520479244c8b673123b4bd06a82e733ee" + integrity sha512-eCFYESUEVYHhiMuK4SQTldO3RYxyMR/UQL4KdGD1Yrkfdx4m/HYuZ9jSfPdA+nWJY34VWndiYdW/wZXyiPEB9g== dependencies: - "@vue/compiler-core" "3.4.24" - "@vue/shared" "3.4.24" + "@vue/compiler-core" "3.5.30" + "@vue/shared" "3.5.30" -"@vue/compiler-sfc@3.4.24": - version "3.4.24" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.4.24.tgz#2872e353147ce2a145169a33ddd4d68dc95c3a18" - integrity sha512-nRAlJUK02FTWfA2nuvNBAqsDZuERGFgxZ8sGH62XgFSvMxO2URblzulExsmj4gFZ8e+VAyDooU9oAoXfEDNxTA== +"@vue/compiler-sfc@3.5.30": + version "3.5.30" + resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.5.30.tgz#5c716d844f240154263e99b25fba6e1802c0c8c6" + integrity sha512-LqmFPDn89dtU9vI3wHJnwaV6GfTRD87AjWpTWpyrdVOObVtjIuSeZr181z5C4PmVx/V3j2p+0f7edFKGRMpQ5A== dependencies: - "@babel/parser" "^7.24.4" - "@vue/compiler-core" "3.4.24" - "@vue/compiler-dom" "3.4.24" - "@vue/compiler-ssr" "3.4.24" - "@vue/shared" "3.4.24" + "@babel/parser" "^7.29.0" + "@vue/compiler-core" "3.5.30" + "@vue/compiler-dom" "3.5.30" + "@vue/compiler-ssr" "3.5.30" + "@vue/shared" "3.5.30" estree-walker "^2.0.2" - magic-string "^0.30.10" - postcss "^8.4.38" - source-map-js "^1.2.0" + magic-string "^0.30.21" + postcss "^8.5.8" + source-map-js "^1.2.1" -"@vue/compiler-ssr@3.4.24": - version "3.4.24" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.4.24.tgz#0d11fe54dabd17cbd6393a16bf7f785da1cfab46" - integrity sha512-ZsAtr4fhaUFnVcDqwW3bYCSDwq+9Gk69q2r/7dAHDrOMw41kylaMgOP4zRnn6GIEJkQznKgrMOGPMFnLB52RbQ== +"@vue/compiler-ssr@3.5.30": + version "3.5.30" + resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.5.30.tgz#e9b407d7e56be1e307a7621f2e8d2501267ff1d0" + integrity sha512-NsYK6OMTnx109PSL2IAyf62JP6EUdk4Dmj6AkWcJGBvN0dQoMYtVekAmdqgTtWQgEJo+Okstbf/1p7qZr5H+bA== dependencies: - "@vue/compiler-dom" "3.4.24" - "@vue/shared" "3.4.24" + "@vue/compiler-dom" "3.5.30" + "@vue/shared" "3.5.30" -"@vue/devtools-api@^7.0.27": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-7.1.2.tgz#8808b0f008842b756bf1e9c30788837abb62ab3a" - integrity sha512-AKd49cN3BdRgttmX5Aw8op7sx6jmaPwaILcDjaa05UKc1yIHDYST7P8yGZs6zd2pKFETAQz40gmyG7+b57slsQ== +"@vue/devtools-api@^7.7.0": + version "7.7.9" + resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-7.7.9.tgz#999dbea50da6b00cf59a1336f11fdc2b43d9e063" + integrity sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g== dependencies: - "@vue/devtools-kit" "^7.1.2" + "@vue/devtools-kit" "^7.7.9" -"@vue/devtools-kit@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@vue/devtools-kit/-/devtools-kit-7.1.2.tgz#dfb7306edf895dadc556dd5f0c516809c2f94826" - integrity sha512-UTrcUSOhlI9eXqbPMHUWwA6NQiiPT3onzXsVk2JHGR8ZFFSkzsWTTpHyVA1woG8zvgu2HNV/wigW2k87p858zw== +"@vue/devtools-kit@^7.7.9": + version "7.7.9" + resolved "https://registry.yarnpkg.com/@vue/devtools-kit/-/devtools-kit-7.7.9.tgz#bc218a815616e8987df7ab3e10fc1fb3b8706c58" + integrity sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA== dependencies: - "@vue/devtools-shared" "^7.1.2" + "@vue/devtools-shared" "^7.7.9" + birpc "^2.3.0" hookable "^5.5.3" mitt "^3.0.1" perfect-debounce "^1.0.0" speakingurl "^14.0.1" + superjson "^2.2.2" -"@vue/devtools-shared@^7.1.2": - version "7.1.2" - resolved "https://registry.yarnpkg.com/@vue/devtools-shared/-/devtools-shared-7.1.2.tgz#7b1c1de10bab4756f271c377370a62833b4ee94b" - integrity sha512-r9cUf93VMhKSsxF2/cBbf6Lm1nRBx+r1pRuji5CiAf3JIPYPOjeEqJ13OuwP1fauYh1tyBFcCxt3eJPvHT59gg== +"@vue/devtools-shared@^7.7.9": + version "7.7.9" + resolved "https://registry.yarnpkg.com/@vue/devtools-shared/-/devtools-shared-7.7.9.tgz#fa4c096b744927081a7dda5fcf05f34b1ae6ca14" + integrity sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA== dependencies: - rfdc "^1.3.1" + rfdc "^1.4.1" -"@vue/reactivity@3.4.24": - version "3.4.24" - resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.4.24.tgz#150584316ca2acc4ed19a24f9f29863c3a17a7b2" - integrity sha512-nup3fSYg4i4LtNvu9slF/HF/0dkMQYfepUdORBcMSsankzRPzE7ypAFurpwyRBfU1i7Dn1kcwpYsE1wETSh91g== +"@vue/reactivity@3.5.30": + version "3.5.30" + resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.5.30.tgz#1ff13f7d570b16b4f009f007772c7b71be1dd09d" + integrity sha512-179YNgKATuwj9gB+66snskRDOitDiuOZqkYia7mHKJaidOMo/WJxHKF8DuGc4V4XbYTJANlfEKb0yxTQotnx4Q== dependencies: - "@vue/shared" "3.4.24" + "@vue/shared" "3.5.30" -"@vue/runtime-core@3.4.24": - version "3.4.24" - resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.4.24.tgz#066c544dc59a07a96c12874a57b750c239124874" - integrity sha512-c7iMfj6cJMeAG3s5yOn9Rc5D9e2/wIuaozmGf/ICGCY3KV5H7mbTVdvEkd4ZshTq7RUZqj2k7LMJWVx+EBiY1g== +"@vue/runtime-core@3.5.30": + version "3.5.30" + resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.5.30.tgz#abe448b25e88f583b1847323a2f19f5e4a21837d" + integrity sha512-e0Z+8PQsUTdwV8TtEsLzUM7SzC7lQwYKePydb7K2ZnmS6jjND+WJXkmmfh/swYzRyfP1EY3fpdesyYoymCzYfg== dependencies: - "@vue/reactivity" "3.4.24" - "@vue/shared" "3.4.24" + "@vue/reactivity" "3.5.30" + "@vue/shared" "3.5.30" -"@vue/runtime-dom@3.4.24": - version "3.4.24" - resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.4.24.tgz#4f8e7acbe1e8ffa7c55af1366e4438729ebe9b20" - integrity sha512-uXKzuh/Emfad2Y7Qm0ABsLZZV6H3mAJ5ZVqmAOlrNQRf+T5mxpPGZBfec1hkP41t6h6FwF6RSGCs/gd8WbuySQ== +"@vue/runtime-dom@3.5.30": + version "3.5.30" + resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.5.30.tgz#41d1b6424b754300f735c2ecb1a7457b4125dab3" + integrity sha512-2UIGakjU4WSQ0T4iwDEW0W7vQj6n7AFn7taqZ9Cvm0Q/RA2FFOziLESrDL4GmtI1wV3jXg5nMoJSYO66egDUBw== dependencies: - "@vue/runtime-core" "3.4.24" - "@vue/shared" "3.4.24" - csstype "^3.1.3" + "@vue/reactivity" "3.5.30" + "@vue/runtime-core" "3.5.30" + "@vue/shared" "3.5.30" + csstype "^3.2.3" -"@vue/server-renderer@3.4.24": - version "3.4.24" - resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.4.24.tgz#80dd546f8d6a9f5c4f8b68083fe9cc2d62299332" - integrity sha512-H+DLK4sQF6sRgzKyofmlEVBIV/9KrQU6HIV7nt6yIwSGGKvSwlV8pqJlebUKLpbXaNHugdSfAbP6YmXF69lxow== +"@vue/server-renderer@3.5.30": + version "3.5.30" + resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.5.30.tgz#116515063d609d3ceca1170f3b09122f24f187b5" + integrity sha512-v+R34icapydRwbZRD0sXwtHqrQJv38JuMB4JxbOxd8NEpGLny7cncMp53W9UH/zo4j8eDHjQ1dEJXwzFQknjtQ== dependencies: - "@vue/compiler-ssr" "3.4.24" - "@vue/shared" "3.4.24" + "@vue/compiler-ssr" "3.5.30" + "@vue/shared" "3.5.30" -"@vue/shared@3.4.24": - version "3.4.24" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.4.24.tgz#278ac71f492b392b9b17fe8fc7d324db1a8842db" - integrity sha512-BW4tajrJBM9AGAknnyEw5tO2xTmnqgup0VTnDAMcxYmqOX0RG0b9aSUGAbEKolD91tdwpA6oCwbltoJoNzpItw== +"@vue/shared@3.5.30", "@vue/shared@^3.5.13": + version "3.5.30" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.5.30.tgz#5d7a0d3ca151647484303fd9f057e2e13ecb80ef" + integrity sha512-YXgQ7JjaO18NeK2K9VTbDHaFy62WrObMa6XERNfNOkAhD1F1oDSf3ZJ7K6GqabZ0BvSDHajp8qfS5Sa2I9n8uQ== -"@vueuse/core@10.9.0", "@vueuse/core@^10.9.0": - version "10.9.0" - resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-10.9.0.tgz#7d779a95cf0189de176fee63cee4ba44b3c85d64" - integrity sha512-/1vjTol8SXnx6xewDEKfS0Ra//ncg4Hb0DaZiwKf7drgfMsKFExQ+FnnENcN6efPen+1kIzhLQoGSy0eDUVOMg== +"@vueuse/core@12.8.2", "@vueuse/core@^12.4.0": + version "12.8.2" + resolved "https://registry.yarnpkg.com/@vueuse/core/-/core-12.8.2.tgz#007c6dd29a7d1f6933e916e7a2f8ef3c3f968eaa" + integrity sha512-HbvCmZdzAu3VGi/pWYm5Ut+Kd9mn1ZHnn4L5G8kOQTPs/IwIAmJoBrmYk2ckLArgMXZj0AW3n5CAejLUO+PhdQ== dependencies: - "@types/web-bluetooth" "^0.0.20" - "@vueuse/metadata" "10.9.0" - "@vueuse/shared" "10.9.0" - vue-demi ">=0.14.7" + "@types/web-bluetooth" "^0.0.21" + "@vueuse/metadata" "12.8.2" + "@vueuse/shared" "12.8.2" + vue "^3.5.13" -"@vueuse/integrations@^10.9.0": - version "10.9.0" - resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-10.9.0.tgz#2b1a9556215ad3c1f96d39cbfbef102cf6e0ec05" - integrity sha512-acK+A01AYdWSvL4BZmCoJAcyHJ6EqhmkQEXbQLwev1MY7NBnS+hcEMx/BzVoR9zKI+UqEPMD9u6PsyAuiTRT4Q== +"@vueuse/integrations@^12.4.0": + version "12.8.2" + resolved "https://registry.yarnpkg.com/@vueuse/integrations/-/integrations-12.8.2.tgz#d04f33d86fe985c9a27c98addcfde9f30f2db1df" + integrity sha512-fbGYivgK5uBTRt7p5F3zy6VrETlV9RtZjBqd1/HxGdjdckBgBM4ugP8LHpjolqTj14TXTxSK1ZfgPbHYyGuH7g== dependencies: - "@vueuse/core" "10.9.0" - "@vueuse/shared" "10.9.0" - vue-demi ">=0.14.7" + "@vueuse/core" "12.8.2" + "@vueuse/shared" "12.8.2" + vue "^3.5.13" -"@vueuse/metadata@10.9.0": - version "10.9.0" - resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-10.9.0.tgz#769a1a9db65daac15cf98084cbf7819ed3758620" - integrity sha512-iddNbg3yZM0X7qFY2sAotomgdHK7YJ6sKUvQqbvwnf7TmaVPxS4EJydcNsVejNdS8iWCtDk+fYXr7E32nyTnGA== +"@vueuse/metadata@12.8.2": + version "12.8.2" + resolved "https://registry.yarnpkg.com/@vueuse/metadata/-/metadata-12.8.2.tgz#6cb3a4e97cdcf528329eebc1bda73cd7f64318d3" + integrity sha512-rAyLGEuoBJ/Il5AmFHiziCPdQzRt88VxR+Y/A/QhJ1EWtWqPBBAxTAFaSkviwEuOEZNtW8pvkPgoCZQ+HxqW1A== -"@vueuse/shared@10.9.0": - version "10.9.0" - resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-10.9.0.tgz#13af2a348de15d07b7be2fd0c7fc9853a69d8fe0" - integrity sha512-Uud2IWncmAfJvRaFYzv5OHDli+FbOzxiVEQdLCKQKLyhz94PIyFC3CHcH7EDMwIn8NPtD06+PNbC/PiO0LGLtw== +"@vueuse/shared@12.8.2": + version "12.8.2" + resolved "https://registry.yarnpkg.com/@vueuse/shared/-/shared-12.8.2.tgz#b9e4611d0603629c8e151f982459da394e22f930" + integrity sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w== dependencies: - vue-demi ">=0.14.7" + vue "^3.5.13" -algoliasearch@^4.19.1: - version "4.23.3" - resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-4.23.3.tgz#e09011d0a3b0651444916a3e6bbcba064ec44b60" - integrity sha512-Le/3YgNvjW9zxIQMRhUHuhiUjAlKY/zsdZpfq4dlLqg6mEm0nL6yk+7f2hDOtLpxsgE4jSzDmvHL7nXdBp5feg== +algoliasearch@^5.14.2: + version "5.49.2" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-5.49.2.tgz#af1a0db7c8a36f93473399da918fe6d7799660b6" + integrity sha512-1K0wtDaRONwfhL4h8bbJ9qTjmY6rhGgRvvagXkMBsAOMNr+3Q2SffHECh9DIuNVrMA1JwA0zCwhyepgBZVakng== dependencies: - "@algolia/cache-browser-local-storage" "4.23.3" - "@algolia/cache-common" "4.23.3" - "@algolia/cache-in-memory" "4.23.3" - "@algolia/client-account" "4.23.3" - "@algolia/client-analytics" "4.23.3" - "@algolia/client-common" "4.23.3" - "@algolia/client-personalization" "4.23.3" - "@algolia/client-search" "4.23.3" - "@algolia/logger-common" "4.23.3" - "@algolia/logger-console" "4.23.3" - "@algolia/recommend" "4.23.3" - "@algolia/requester-browser-xhr" "4.23.3" - "@algolia/requester-common" "4.23.3" - "@algolia/requester-node-http" "4.23.3" - "@algolia/transporter" "4.23.3" + "@algolia/abtesting" "1.15.2" + "@algolia/client-abtesting" "5.49.2" + "@algolia/client-analytics" "5.49.2" + "@algolia/client-common" "5.49.2" + "@algolia/client-insights" "5.49.2" + "@algolia/client-personalization" "5.49.2" + "@algolia/client-query-suggestions" "5.49.2" + "@algolia/client-search" "5.49.2" + "@algolia/ingestion" "1.49.2" + "@algolia/monitoring" "1.49.2" + "@algolia/recommend" "5.49.2" + "@algolia/requester-browser-xhr" "5.49.2" + "@algolia/requester-fetch" "5.49.2" + "@algolia/requester-node-http" "5.49.2" -csstype@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" - integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== +birpc@^2.3.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/birpc/-/birpc-2.9.0.tgz#b59550897e4cd96a223e2a6c1475b572236ed145" + integrity sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw== -entities@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== + +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== + +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== + +copy-anything@^4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-4.0.5.tgz#16cabafd1ea4bb327a540b750f2b4df522825aea" + integrity sha512-7Vv6asjS4gMOuILabD3l739tsaxFQmC+a7pLZm02zyvs8p977bL3zEgq3yDk5rn9B0PbYgIv++jmHcuUab4RhA== + dependencies: + is-what "^5.2.0" + +csstype@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.2.3.tgz#ec48c0f3e993e50648c86da559e2610995cf989a" + integrity sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ== + +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + +devlop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/devlop/-/devlop-1.1.0.tgz#4db7c2ca4dc6e0e834c30be70c94bbc976dc7018" + integrity sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA== + dependencies: + dequal "^2.0.0" + +emoji-regex-xs@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz#e8af22e5d9dbd7f7f22d280af3d19d2aab5b0724" + integrity sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg== + +entities@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-7.0.1.tgz#26e8a88889db63417dcb9a1e79a3f1bc92b5976b" + integrity sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA== esbuild@^0.21.3: version "0.21.5" @@ -668,49 +832,139 @@ estree-walker@^2.0.2: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== -focus-trap@^7.5.4: - version "7.5.4" - resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.5.4.tgz#6c4e342fe1dae6add9c2aa332a6e7a0bbd495ba2" - integrity sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w== +focus-trap@^7.6.4: + version "7.8.0" + resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.8.0.tgz#b1d9463fa42b93ad7a5223d750493a6c09b672a8" + integrity sha512-/yNdlIkpWbM0ptxno3ONTuf+2g318kh2ez3KSeZN5dZ8YC6AAmgeWz+GasYYiBJPFaYcSAPeu4GfhUaChzIJXA== dependencies: - tabbable "^6.2.0" + tabbable "^6.4.0" fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== +hast-util-to-html@^9.0.4: + version "9.0.5" + resolved "https://registry.yarnpkg.com/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz#ccc673a55bb8e85775b08ac28380f72d47167005" + integrity sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw== + dependencies: + "@types/hast" "^3.0.0" + "@types/unist" "^3.0.0" + ccount "^2.0.0" + comma-separated-tokens "^2.0.0" + hast-util-whitespace "^3.0.0" + html-void-elements "^3.0.0" + mdast-util-to-hast "^13.0.0" + property-information "^7.0.0" + space-separated-tokens "^2.0.0" + stringify-entities "^4.0.0" + zwitch "^2.0.4" + +hast-util-whitespace@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz#7778ed9d3c92dd9e8c5c8f648a49c21fc51cb621" + integrity sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw== + dependencies: + "@types/hast" "^3.0.0" + hookable@^5.5.3: version "5.5.3" resolved "https://registry.yarnpkg.com/hookable/-/hookable-5.5.3.tgz#6cfc358984a1ef991e2518cb9ed4a778bbd3215d" integrity sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ== -magic-string@^0.30.10: - version "0.30.10" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.10.tgz#123d9c41a0cb5640c892b041d4cfb3bd0aa4b39e" - integrity sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ== +html-void-elements@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-3.0.0.tgz#fc9dbd84af9e747249034d4d62602def6517f1d7" + integrity sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg== + +is-what@^5.2.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/is-what/-/is-what-5.5.0.tgz#a3031815757cfe1f03fed990bf6355a2d3f628c4" + integrity sha512-oG7cgbmg5kLYae2N5IVd3jm2s+vldjxJzK1pcu9LfpGuQ93MQSzo0okvRna+7y5ifrD+20FE8FvjusyGaz14fw== + +magic-string@^0.30.21: + version "0.30.21" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.21.tgz#56763ec09a0fa8091df27879fd94d19078c00d91" + integrity sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ== dependencies: - "@jridgewell/sourcemap-codec" "^1.4.15" + "@jridgewell/sourcemap-codec" "^1.5.5" mark.js@8.11.1: version "8.11.1" resolved "https://registry.yarnpkg.com/mark.js/-/mark.js-8.11.1.tgz#180f1f9ebef8b0e638e4166ad52db879beb2ffc5" integrity sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ== -minisearch@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/minisearch/-/minisearch-6.3.0.tgz#985a2f1ca3c73c2d65af94f0616bfe57164b0b6b" - integrity sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ== +mdast-util-to-hast@^13.0.0: + version "13.2.1" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-13.2.1.tgz#d7ff84ca499a57e2c060ae67548ad950e689a053" + integrity sha512-cctsq2wp5vTsLIcaymblUriiTcZd0CwWtCbLvrOzYCDZoWyMNV8sZ7krj09FSnsiJi3WVsHLM4k6Dq/yaPyCXA== + dependencies: + "@types/hast" "^3.0.0" + "@types/mdast" "^4.0.0" + "@ungap/structured-clone" "^1.0.0" + devlop "^1.0.0" + micromark-util-sanitize-uri "^2.0.0" + trim-lines "^3.0.0" + unist-util-position "^5.0.0" + unist-util-visit "^5.0.0" + vfile "^6.0.0" + +micromark-util-character@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-2.1.1.tgz#2f987831a40d4c510ac261e89852c4e9703ccda6" + integrity sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q== + dependencies: + micromark-util-symbol "^2.0.0" + micromark-util-types "^2.0.0" + +micromark-util-encode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz#0d51d1c095551cfaac368326963cf55f15f540b8" + integrity sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw== + +micromark-util-sanitize-uri@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz#ab89789b818a58752b73d6b55238621b7faa8fd7" + integrity sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ== + dependencies: + micromark-util-character "^2.0.0" + micromark-util-encode "^2.0.0" + micromark-util-symbol "^2.0.0" + +micromark-util-symbol@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz#e5da494e8eb2b071a0d08fb34f6cefec6c0a19b8" + integrity sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q== + +micromark-util-types@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-2.0.2.tgz#f00225f5f5a0ebc3254f96c36b6605c4b393908e" + integrity sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA== + +minisearch@^7.1.1: + version "7.2.0" + resolved "https://registry.yarnpkg.com/minisearch/-/minisearch-7.2.0.tgz#3dc30e41e9464b3836553b6d969b656614f8f359" + integrity sha512-dqT2XBYUOZOiC5t2HRnwADjhNS2cecp9u+TJRiJ1Qp/f5qjkeT5APcGPjHw+bz89Ms8Jp+cG4AlE+QZ/QnDglg== mitt@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/mitt/-/mitt-3.0.1.tgz#ea36cf0cc30403601ae074c8f77b7092cdab36d1" integrity sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw== -nanoid@^3.3.8: - version "3.3.8" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.8.tgz#b1be3030bee36aaff18bacb375e5cce521684baf" - integrity sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w== +nanoid@^3.3.11: + version "3.3.11" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" + integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== + +oniguruma-to-es@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/oniguruma-to-es/-/oniguruma-to-es-3.1.1.tgz#480e4bac4d3bc9439ac0d2124f0725e7a0d76d17" + integrity sha512-bUH8SDvPkH3ho3dvwJwfonjlQ4R80vjyvrU8YpxuROddv55vAEJrTuCuCVUhhsHbtlD9tGGbaNApGQckXhS8iQ== + dependencies: + emoji-regex-xs "^1.0.0" + regex "^6.0.1" + regex-recursion "^6.0.2" perfect-debounce@^1.0.0: version "1.0.0" @@ -722,24 +976,48 @@ picocolors@^1.1.1: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -postcss@^8.4.38, postcss@^8.4.43: - version "8.5.1" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.1.tgz#e2272a1f8a807fafa413218245630b5db10a3214" - integrity sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ== +postcss@^8.4.43, postcss@^8.5.8: + version "8.5.8" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.8.tgz#6230ecc8fb02e7a0f6982e53990937857e13f399" + integrity sha512-OW/rX8O/jXnm82Ey1k44pObPtdblfiuWnrd8X7GJ7emImCOstunGbXUpp7HdBrFQX6rJzn3sPT397Wp5aCwCHg== dependencies: - nanoid "^3.3.8" + nanoid "^3.3.11" picocolors "^1.1.1" source-map-js "^1.2.1" preact@^10.0.0: - version "10.20.2" - resolved "https://registry.yarnpkg.com/preact/-/preact-10.20.2.tgz#0b343299a8c020562311cc25db93b3d832ec5e71" - integrity sha512-S1d1ernz3KQ+Y2awUxKakpfOg2CEmJmwOP+6igPx6dgr6pgDvenqYviyokWso2rhHvGtTlWWnJDa7RaPbQerTg== + version "10.29.0" + resolved "https://registry.yarnpkg.com/preact/-/preact-10.29.0.tgz#a6e5858670b659c4d471c6fea232233e03b403e8" + integrity sha512-wSAGyk2bYR1c7t3SZ3jHcM6xy0lcBcDel6lODcs9ME6Th++Dx2KU+6D3HD8wMMKGA8Wpw7OMd3/4RGzYRpzwRg== -rfdc@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f" - integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg== +property-information@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-7.1.0.tgz#b622e8646e02b580205415586b40804d3e8bfd5d" + integrity sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ== + +regex-recursion@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/regex-recursion/-/regex-recursion-6.0.2.tgz#a0b1977a74c87f073377b938dbedfab2ea582b33" + integrity sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg== + dependencies: + regex-utilities "^2.3.0" + +regex-utilities@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/regex-utilities/-/regex-utilities-2.3.0.tgz#87163512a15dce2908cf079c8960d5158ff43280" + integrity sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng== + +regex@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/regex/-/regex-6.1.0.tgz#d7ce98f8ee32da7497c13f6601fca2bc4a6a7803" + integrity sha512-6VwtthbV4o/7+OaAF9I5L5V3llLEsoPyq9P1JVXkedTP33c7MfCG0/5NOPcSJn0TzXcG9YUrR0gQSWioew3LDg== + dependencies: + regex-utilities "^2.3.0" + +rfdc@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.4.1.tgz#778f76c4fb731d93414e8f925fbecf64cce7f6ca" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== rollup@^4.20.0: version "4.59.0" @@ -775,34 +1053,115 @@ rollup@^4.20.0: "@rollup/rollup-win32-x64-msvc" "4.59.0" fsevents "~2.3.2" -shiki@1.3.0, shiki@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/shiki/-/shiki-1.3.0.tgz#3eda35cb49f6f0a98525e9da48fc072e6c655a3f" - integrity sha512-9aNdQy/etMXctnPzsje1h1XIGm9YfRcSksKOGqZWXA/qP9G18/8fpz5Bjpma8bOgz3tqIpjERAd6/lLjFyzoww== +shiki@^2.1.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-2.5.0.tgz#09d01ebf3b0b06580431ce3ddc023320442cf223" + integrity sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ== dependencies: - "@shikijs/core" "1.3.0" - -source-map-js@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" - integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + "@shikijs/core" "2.5.0" + "@shikijs/engine-javascript" "2.5.0" + "@shikijs/engine-oniguruma" "2.5.0" + "@shikijs/langs" "2.5.0" + "@shikijs/themes" "2.5.0" + "@shikijs/types" "2.5.0" + "@shikijs/vscode-textmate" "^10.0.2" + "@types/hast" "^3.0.4" source-map-js@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + speakingurl@^14.0.1: version "14.0.1" resolved "https://registry.yarnpkg.com/speakingurl/-/speakingurl-14.0.1.tgz#f37ec8ddc4ab98e9600c1c9ec324a8c48d772a53" integrity sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ== -tabbable@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97" - integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew== +stringify-entities@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.4.tgz#b3b79ef5f277cc4ac73caeb0236c5ba939b3a4f3" + integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== + dependencies: + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" -vite@^5.2.9, vite@^5.4.21: +superjson@^2.2.2: + version "2.2.6" + resolved "https://registry.yarnpkg.com/superjson/-/superjson-2.2.6.tgz#a223a3a988172a5f9656e2063fe5f733af40d099" + integrity sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA== + dependencies: + copy-anything "^4" + +tabbable@^6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.4.0.tgz#36eb7a06d80b3924a22095daf45740dea3bf5581" + integrity sha512-05PUHKSNE8ou2dwIxTngl4EzcnsCDZGJ/iCLtDflR/SHB/ny14rXc+qU5P4mG9JkusiV7EivzY9Mhm55AzAvCg== + +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + +unist-util-is@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-6.0.1.tgz#d0a3f86f2dd0db7acd7d8c2478080b5c67f9c6a9" + integrity sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-position@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-5.0.0.tgz#678f20ab5ca1207a97d7ea8a388373c9cf896be4" + integrity sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-stringify-position@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz#449c6e21a880e0855bf5aabadeb3a740314abac2" + integrity sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ== + dependencies: + "@types/unist" "^3.0.0" + +unist-util-visit-parents@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-6.0.2.tgz#777df7fb98652ce16b4b7cd999d0a1a40efa3a02" + integrity sha512-goh1s1TBrqSqukSc8wrjwWhL0hiJxgA8m4kFxGlQ+8FYQ3C/m11FcTs4YYem7V664AhHVvgoQLk890Ssdsr2IQ== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + +unist-util-visit@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-5.1.0.tgz#9a2a28b0aa76a15e0da70a08a5863a2f060e2468" + integrity sha512-m+vIdyeCOpdr/QeQCu2EzxX/ohgS8KbnPDgFni4dQsfSCtpz8UqDyY5GjRru8PDKuYn7Fq19j1CQ+nJSsGKOzg== + dependencies: + "@types/unist" "^3.0.0" + unist-util-is "^6.0.0" + unist-util-visit-parents "^6.0.0" + +vfile-message@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-4.0.3.tgz#87b44dddd7b70f0641c2e3ed0864ba73e2ea8df4" + integrity sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw== + dependencies: + "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" + +vfile@^6.0.0: + version "6.0.3" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-6.0.3.tgz#3652ab1c496531852bf55a6bac57af981ebc38ab" + integrity sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q== + dependencies: + "@types/unist" "^3.0.0" + vfile-message "^4.0.0" + +vite@^5.4.14: version "5.4.21" resolved "https://registry.yarnpkg.com/vite/-/vite-5.4.21.tgz#84a4f7c5d860b071676d39ba513c0d598fdc7027" integrity sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw== @@ -813,44 +1172,47 @@ vite@^5.2.9, vite@^5.4.21: optionalDependencies: fsevents "~2.3.3" -vitepress-plugin-tabs@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/vitepress-plugin-tabs/-/vitepress-plugin-tabs-0.5.0.tgz#2b193a72ed36b9fcd63e3907d3044fe7b6cf3e4e" - integrity sha512-SIhFWwGsUkTByfc2b279ray/E0Jt8vDTsM1LiHxmCOBAEMmvzIBZSuYYT1DpdDTiS3SuJieBheJkYnwCq/yD9A== +vitepress-plugin-tabs@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/vitepress-plugin-tabs/-/vitepress-plugin-tabs-0.8.0.tgz#4509330ccc0cb04a4aca0f43160108270a21d143" + integrity sha512-86FWHAuS9XCyTMDpMd5MELwp3bQyITDf/+IdZ20+iYbB8TIR8yoCp08PkDHxi4WWSVsCZ3n1uUIC7YCVhMsI3A== -vitepress@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.1.3.tgz#ded22392f5274680aaba8bb81dd4fb1c4741c02e" - integrity sha512-hGrIYN0w9IHWs0NQSnlMjKV/v/HLfD+Ywv5QdvCSkiT32mpNOOwUrZjnqZv/JL/WBPpUc94eghTUvmipxw0xrA== +vitepress@^1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/vitepress/-/vitepress-1.6.4.tgz#1b6c68fede541a3f401a66263dce0c985e2d8d92" + integrity sha512-+2ym1/+0VVrbhNyRoFFesVvBvHAVMZMK0rw60E3X/5349M1GuVdKeazuksqopEdvkKwKGs21Q729jX81/bkBJg== dependencies: - "@docsearch/css" "^3.6.0" - "@docsearch/js" "^3.6.0" - "@shikijs/core" "^1.3.0" - "@shikijs/transformers" "^1.3.0" - "@types/markdown-it" "^14.0.1" - "@vitejs/plugin-vue" "^5.0.4" - "@vue/devtools-api" "^7.0.27" - "@vueuse/core" "^10.9.0" - "@vueuse/integrations" "^10.9.0" - focus-trap "^7.5.4" + "@docsearch/css" "3.8.2" + "@docsearch/js" "3.8.2" + "@iconify-json/simple-icons" "^1.2.21" + "@shikijs/core" "^2.1.0" + "@shikijs/transformers" "^2.1.0" + "@shikijs/types" "^2.1.0" + "@types/markdown-it" "^14.1.2" + "@vitejs/plugin-vue" "^5.2.1" + "@vue/devtools-api" "^7.7.0" + "@vue/shared" "^3.5.13" + "@vueuse/core" "^12.4.0" + "@vueuse/integrations" "^12.4.0" + focus-trap "^7.6.4" mark.js "8.11.1" - minisearch "^6.3.0" - shiki "^1.3.0" - vite "^5.2.9" - vue "^3.4.23" + minisearch "^7.1.1" + shiki "^2.1.0" + vite "^5.4.14" + vue "^3.5.13" -vue-demi@>=0.14.7: - version "0.14.7" - resolved "https://registry.yarnpkg.com/vue-demi/-/vue-demi-0.14.7.tgz#8317536b3ef74c5b09f268f7782e70194567d8f2" - integrity sha512-EOG8KXDQNwkJILkx/gPcoL/7vH+hORoBaKgGe+6W7VFMvCYJfmF2dGbvgDroVnI8LU7/kTu8mbjRZGBU1z9NTA== - -vue@^3.4.23, vue@^3.4.24: - version "3.4.24" - resolved "https://registry.yarnpkg.com/vue/-/vue-3.4.24.tgz#f269549939a6c092480f018aa0bd886ba64f4c6f" - integrity sha512-NPdx7dLGyHmKHGRRU5bMRYVE+rechR+KDU5R2tSTNG36PuMwbfAJ+amEvOAw7BPfZp5sQulNELSLm5YUkau+Sg== +vue@^3.5.13: + version "3.5.30" + resolved "https://registry.yarnpkg.com/vue/-/vue-3.5.30.tgz#66df25e9795af3e5522b36f24f3d290fde83f8a0" + integrity sha512-hTHLc6VNZyzzEH/l7PFGjpcTvUgiaPK5mdLkbjrTeWSRcEfxFrv56g/XckIYlE9ckuobsdwqd5mk2g1sBkMewg== dependencies: - "@vue/compiler-dom" "3.4.24" - "@vue/compiler-sfc" "3.4.24" - "@vue/runtime-dom" "3.4.24" - "@vue/server-renderer" "3.4.24" - "@vue/shared" "3.4.24" + "@vue/compiler-dom" "3.5.30" + "@vue/compiler-sfc" "3.5.30" + "@vue/runtime-dom" "3.5.30" + "@vue/server-renderer" "3.5.30" + "@vue/shared" "3.5.30" + +zwitch@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A== From e4de46b3b0aa140967835ece0bebef61c22e4a51 Mon Sep 17 00:00:00 2001 From: HorrorTroll Date: Sun, 15 Mar 2026 17:28:40 +0700 Subject: [PATCH 250/255] Added PixArt PMW-3325 mouse sensor driver (#26065) * Added support PMW3325 sensor driver * Missing PMW3325 on pointing device document * Suggested changes resolved --- builddefs/common_features.mk | 4 +- docs/features/pointing_device.md | 17 ++ drivers/sensors/pmw3325.c | 179 ++++++++++++++++++++++ drivers/sensors/pmw3325.h | 44 ++++++ quantum/pointing_device/pointing_device.h | 4 + 5 files changed, 247 insertions(+), 1 deletion(-) create mode 100644 drivers/sensors/pmw3325.c create mode 100644 drivers/sensors/pmw3325.h diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index cd4e67a4bd..b7cb2193fa 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -125,7 +125,7 @@ ifeq ($(strip $(MOUSEKEY_ENABLE)), yes) MOUSE_ENABLE := yes endif -VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick azoteq_iqs5xx cirque_pinnacle_i2c cirque_pinnacle_spi paw3204 paw3222 pmw3320 pmw3360 pmw3389 pimoroni_trackball custom +VALID_POINTING_DEVICE_DRIVER_TYPES := adns5050 adns9800 analog_joystick azoteq_iqs5xx cirque_pinnacle_i2c cirque_pinnacle_spi paw3204 paw3222 pmw3320 pmw3325 pmw3360 pmw3389 pimoroni_trackball custom ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) ifeq ($(filter $(POINTING_DEVICE_DRIVER),$(VALID_POINTING_DEVICE_DRIVER_TYPES)),) $(call CATASTROPHIC_ERROR,Invalid POINTING_DEVICE_DRIVER,POINTING_DEVICE_DRIVER="$(POINTING_DEVICE_DRIVER)" is not a valid pointing device type) @@ -159,6 +159,8 @@ ifeq ($(strip $(POINTING_DEVICE_ENABLE)), yes) SRC += $(QUANTUM_DIR)/pointing_device/pointing_device_gestures.c else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), paw3222) SPI_DRIVER_REQUIRED = yes + else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), pmw3325) + SPI_DRIVER_REQUIRED = yes else ifeq ($(strip $(POINTING_DEVICE_DRIVER)), pimoroni_trackball) I2C_DRIVER_REQUIRED = yes else ifneq ($(filter $(strip $(POINTING_DEVICE_DRIVER)),pmw3360 pmw3389),) diff --git a/docs/features/pointing_device.md b/docs/features/pointing_device.md index eedbf59b95..8319db7823 100644 --- a/docs/features/pointing_device.md +++ b/docs/features/pointing_device.md @@ -320,6 +320,23 @@ The PMW3320 sensor uses a serial type protocol for communication, and requires a The CPI range is 500-3500, in increments of 250. Defaults to 1000 CPI. +### PMW-3325 Sensor + +To use the PMW-3325 sensor, add this to your `rules.mk`: + +```make +POINTING_DEVICE_DRIVER = pmw3325 +``` + +The following pins must be defined in `config.h`: + +| Setting (`config.h`) | Description | Default | +| --------------------- | ------------------------------------------------------------------ | ---------------------------- | +| `PMW3325_CS_PIN` | (Required) The pin connected to the chip select pin of the sensor. | `POINTING_DEVICE_CS_PIN` | +| `PMW3325_SPI_DIVISOR` | (Required) The SPI clock divisor. This is dependent on your MCU. | _not defined_ | + +The CPI range is 100-5000, in increments of 100. Defaults to 2000 CPI. + ### PMW 3360 and PMW 3389 Sensor This drivers supports both the PMW 3360 and PMW 3389 sensor as well as multiple sensors of the same type _per_ controller, so 2 can be attached at the same side for split keyboards (or unsplit keyboards). diff --git a/drivers/sensors/pmw3325.c b/drivers/sensors/pmw3325.c new file mode 100644 index 0000000000..b8eb6ee88c --- /dev/null +++ b/drivers/sensors/pmw3325.c @@ -0,0 +1,179 @@ +// Copyright 2024 Colin Lam (Ploopy Corporation) +// Copyright 2026 HorrorTroll +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "pmw3325.h" +#include "wait.h" +#include "gpio.h" +#include "spi_master.h" +#include "pointing_device_internal.h" + +#define MSB1 0x80 +#define MSB0 0x7F + +const pointing_device_driver_t pmw3325_pointing_device_driver = { + .init = pmw3325_init, + .get_report = pmw3325_get_report, + .set_cpi = pmw3325_set_cpi, + .get_cpi = pmw3325_get_cpi, +}; + +// Convert a 16-bit twos complement binary-represented number into a +// signed 16-bit integer. +static int16_t convert_twoscomp_16(uint8_t high, uint8_t low) { + uint16_t data = (high << 8) | low; + + if ((data & 0x8000) == 0x8000) { + return -32768 + (data & 0x7FFF); + } else { + return data; + } +} + +void pmw3325_write(uint8_t reg_addr, uint8_t data) { + spi_start(PMW3325_CS_PIN, false, 3, PMW3325_SPI_DIVISOR); + wait_us(1); // tNCS_SCLK + spi_write(reg_addr | MSB1); + wait_us(180); // tSRAD + spi_write(data); + wait_us(1); // tSCLK_NCS + spi_stop(); + wait_us(20); // tSRR +} + +uint8_t pmw3325_read(uint8_t reg_addr) { + spi_start(PMW3325_CS_PIN, false, 3, PMW3325_SPI_DIVISOR); + wait_us(1); // tNCS_SCLK + spi_write(reg_addr & MSB0); + wait_us(180); // tSRAD + uint8_t data = spi_read(); + wait_us(1); // tSCLK_NCS + spi_stop(); + wait_us(20); // tSRR + + return data; +} + +bool pmw3325_init(void) { + wait_ms(50); + gpio_set_pin_output(PMW3325_CS_PIN); + + // CS must be kept high at power-up stage for at least 1ms + gpio_write_pin_low(PMW3325_CS_PIN); + wait_ms(10); + gpio_write_pin_high(PMW3325_CS_PIN); + + spi_init(); + + // reboot + pmw3325_write(0x3A, 0x5A); + wait_ms(10); + + pmw3325_write(0x18, 0x39); + + if (!pmw3325_check_signature()) { + return false; + } + + // read a burst, then discard + pmw3325_read(0x02); + pmw3325_read(0x03); + pmw3325_read(0x04); + pmw3325_read(0x05); + pmw3325_read(0x06); + + // initialize + pmw3325_write(0x78, 0x80); + pmw3325_write(0x79, 0x80); + pmw3325_write(0x14, 0x80); + pmw3325_write(0x20, 0x40); + pmw3325_write(0x1A, 0x40); + pmw3325_write(0x47, 0x00); + pmw3325_write(0x48, 0x01); + pmw3325_write(0x60, 0x01); + pmw3325_write(0x69, 0x03); + pmw3325_write(0x1D, 0x90); + pmw3325_write(0x1B, 0x2E); + pmw3325_write(0x24, 0x05); + pmw3325_write(0x56, 0x00); + pmw3325_write(0x2C, 0x8A); + pmw3325_write(0x2D, 0x58); + pmw3325_write(0x40, 0x80); + pmw3325_write(0x7F, 0x01); + pmw3325_write(0x7A, 0x32); + pmw3325_write(0x6A, 0x93); + pmw3325_write(0x6B, 0x68); + pmw3325_write(0x6C, 0x71); + pmw3325_write(0x6D, 0x50); + pmw3325_write(0x7F, 0x00); + pmw3325_write(0x7F, 0x02); + pmw3325_write(0x29, 0x1C); + pmw3325_write(0x2A, 0x1A); + pmw3325_write(0x2B, 0x90); + pmw3325_write(0x40, 0x80); + pmw3325_write(0x7F, 0x00); + return true; +} + +report_pmw3325_t pmw3325_read_burst(void) { + report_pmw3325_t report = {0}; + + uint8_t motion = pmw3325_read(0x02); + if ((motion & MSB1) == MSB1) { + // Motion detected + uint8_t dx_l = pmw3325_read(0x03); + uint8_t dx_h = pmw3325_read(0x04); + uint8_t dy_l = pmw3325_read(0x05); + uint8_t dy_h = pmw3325_read(0x06); + + report.dx = convert_twoscomp_16(dx_h, dx_l); + report.dy = convert_twoscomp_16(dy_h, dy_l); + } + + return report; +} + +static const uint8_t pmw3325_cpi_lut[50] = { + 0x02, 0x04, 0x06, 0x08, 0x0B, 0x0D, 0x0F, 0x12, 0x14, 0x16, + 0x19, 0x1B, 0x1D, 0x20, 0x22, 0x24, 0x27, 0x29, 0x2B, 0x2E, + 0x30, 0x32, 0x34, 0x37, 0x39, 0x3B, 0x3E, 0x40, 0x42, 0x45, + 0x47, 0x49, 0x4C, 0x4E, 0x50, 0x53, 0x55, 0x57, 0x5A, 0x5C, + 0x5E, 0x61, 0x63, 0x65, 0x68, 0x6A, 0x6C, 0x6F, 0x71, 0x73 +}; + +void pmw3325_set_cpi(uint16_t cpi) { + uint8_t cpival = CONSTRAIN((cpi / PMW3325_CPI_STEP), (PMW3325_CPI_MIN / PMW3325_CPI_STEP), (PMW3325_CPI_MAX / PMW3325_CPI_STEP)) - 1U; + + pmw3325_write(0x1B, pmw3325_cpi_lut[cpival]); +} + +uint16_t pmw3325_get_cpi(void) { + uint8_t cpival = pmw3325_read(0x1B); + + for (uint8_t cpi = 0; cpi < 50; cpi++) { + if (pmw3325_cpi_lut[cpi] == cpival) { + return (cpi + 1) * PMW3325_CPI_STEP; + } + } + + return 0; +} + +report_mouse_t pmw3325_get_report(report_mouse_t mouse_report) { + report_pmw3325_t data = pmw3325_read_burst(); + + if (data.dx != 0 || data.dy != 0) { + pd_dprintf("Raw ] X: %d, Y: %d\n", data.dx, data.dy); + mouse_report.x = CONSTRAIN_HID_XY(data.dx); + mouse_report.y = CONSTRAIN_HID_XY(data.dy); + } + + return mouse_report; +} + +bool pmw3325_check_signature(void) { + uint8_t checkval_1 = pmw3325_read(0x00); + uint8_t checkval_2 = pmw3325_read(0x3F); + + return (checkval_1 == 0x43 && checkval_2 == 0xBC); +} diff --git a/drivers/sensors/pmw3325.h b/drivers/sensors/pmw3325.h new file mode 100644 index 0000000000..17a965aa19 --- /dev/null +++ b/drivers/sensors/pmw3325.h @@ -0,0 +1,44 @@ +// Copyright 2021 Colin Lam (Ploopy Corporation) +// Copyright 2026 HorrorTroll +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include +#include "pointing_device.h" + +#ifndef PMW3325_CS_PIN +# ifdef POINTING_DEVICE_CS_PIN +# define PMW3325_CS_PIN POINTING_DEVICE_CS_PIN +# else +# error "No chip select pin defined -- missing POINTING_DEVICE_CS_PIN or PMW3325_CS_PIN define" +# endif +#endif + +#ifndef PMW3325_SPI_DIVISOR +# error "No PMW3325 SPI divisor defined -- missing PMW3325_SPI_DIVISOR" +#endif + +typedef struct { + int16_t dx; + int16_t dy; +} report_pmw3325_t; + +extern const pointing_device_driver_t pmw3325_pointing_device_driver; + +bool pmw3325_init(void); +report_pmw3325_t pmw3325_read_burst(void); +void pmw3325_set_cpi(uint16_t cpi); +uint16_t pmw3325_get_cpi(void); +report_mouse_t pmw3325_get_report(report_mouse_t mouse_report); +bool pmw3325_check_signature(void); + +#if !defined(PMW3325_CPI) +# define PMW3325_CPI 2000 +#endif + +#define PMW3325_CPI_MIN 100 +#define PMW3325_CPI_MAX 5000 +#define PMW3325_CPI_STEP 100 +#define CONSTRAIN(amt, low, high) ((amt) < (low) ? (low) : ((amt) > (high) ? (high) : (amt))) diff --git a/quantum/pointing_device/pointing_device.h b/quantum/pointing_device/pointing_device.h index bb0e43af3c..78c5f326de 100644 --- a/quantum/pointing_device/pointing_device.h +++ b/quantum/pointing_device/pointing_device.h @@ -43,6 +43,10 @@ typedef struct { # include "spi_master.h" # include "drivers/sensors/paw3222.h" # define POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW +#elif defined(POINTING_DEVICE_DRIVER_pmw3325) +# include "spi_master.h" +# include "drivers/sensors/pmw3325.h" +# define POINTING_DEVICE_MOTION_PIN_ACTIVE_LOW #elif defined(POINTING_DEVICE_DRIVER_adns9800) # include "spi_master.h" # include "drivers/sensors/adns9800.h" From 2afc217124883e8b11e22081497ede12d61e0d7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=95=E3=82=A3=E3=83=AB=E3=82=BF=E3=83=BC=E3=83=9A?= =?UTF-8?q?=E3=83=BC=E3=83=91=E3=83=BC?= <76888457+filterpaper@users.noreply.github.com> Date: Sun, 15 Mar 2026 18:29:36 +0800 Subject: [PATCH 251/255] Refactor Pixel Fractal effect (#26071) --- .../animations/pixel_fractal_anim.h | 47 ++++++++----------- 1 file changed, 20 insertions(+), 27 deletions(-) diff --git a/quantum/rgb_matrix/animations/pixel_fractal_anim.h b/quantum/rgb_matrix/animations/pixel_fractal_anim.h index bf5c22a64e..05d899f6ec 100644 --- a/quantum/rgb_matrix/animations/pixel_fractal_anim.h +++ b/quantum/rgb_matrix/animations/pixel_fractal_anim.h @@ -10,50 +10,43 @@ static bool PIXEL_FRACTAL(effect_params_t* params) { # if MATRIX_COLS < 2 # define MID_COL 1 # else -# define MID_COL MATRIX_COLS / 2 +# define MID_COL (MATRIX_COLS / 2) # endif static bool led[MATRIX_ROWS][MID_COL]; static uint32_t wait_timer = 0; - inline uint32_t interval(void) { - return 3000 / scale16by8(qadd8(rgb_matrix_config.speed, 16), 16); - } - if (params->init) { rgb_matrix_set_color_all(0, 0, 0); + memset(led, 0, sizeof(led)); } RGB_MATRIX_USE_LIMITS(led_min, led_max); if (g_rgb_timer > wait_timer) { rgb_t rgb = rgb_matrix_hsv_to_rgb(rgb_matrix_config.hsv); - for (uint8_t h = 0; h < MATRIX_ROWS; ++h) { - // Light and copy columns outward - for (uint8_t l = 0; l < MID_COL - 1; ++l) { - rgb_t index_rgb = led[h][l] ? (rgb_t){rgb.r, rgb.g, rgb.b} : (rgb_t){0, 0, 0}; - if (HAS_ANY_FLAGS(g_led_config.flags[g_led_config.matrix_co[h][l]], params->flags)) { - rgb_matrix_set_color(g_led_config.matrix_co[h][l], index_rgb.r, index_rgb.g, index_rgb.b); + for (uint8_t row = 0; row < MATRIX_ROWS; ++row) { + // Light columns outward from center, mirroring each side + for (uint8_t col = 0; col < MID_COL; ++col) { + rgb_t index_rgb = led[row][col] ? rgb : (rgb_t){0, 0, 0}; + uint8_t l_idx = g_led_config.matrix_co[row][col]; + uint8_t r_idx = g_led_config.matrix_co[row][MATRIX_COLS - 1 - col]; + if (l_idx >= led_min && l_idx < led_max && HAS_ANY_FLAGS(g_led_config.flags[l_idx], params->flags)) { + rgb_matrix_set_color(l_idx, index_rgb.r, index_rgb.g, index_rgb.b); } - if (HAS_ANY_FLAGS(g_led_config.flags[g_led_config.matrix_co[h][MATRIX_COLS - 1 - l]], params->flags)) { - rgb_matrix_set_color(g_led_config.matrix_co[h][MATRIX_COLS - 1 - l], index_rgb.r, index_rgb.g, index_rgb.b); + if (r_idx >= led_min && r_idx < led_max && HAS_ANY_FLAGS(g_led_config.flags[r_idx], params->flags)) { + rgb_matrix_set_color(r_idx, index_rgb.r, index_rgb.g, index_rgb.b); } - led[h][l] = led[h][l + 1]; } - - // Light both middle columns - rgb_t index_rgb = led[h][MID_COL - 1] ? (rgb_t){rgb.r, rgb.g, rgb.b} : (rgb_t){0, 0, 0}; - if (HAS_ANY_FLAGS(g_led_config.flags[g_led_config.matrix_co[h][MID_COL - 1]], params->flags)) { - rgb_matrix_set_color(g_led_config.matrix_co[h][MID_COL - 1], index_rgb.r, index_rgb.g, index_rgb.b); - } - if (HAS_ANY_FLAGS(g_led_config.flags[g_led_config.matrix_co[h][MATRIX_COLS - MID_COL]], params->flags)) { - rgb_matrix_set_color(g_led_config.matrix_co[h][MATRIX_COLS - MID_COL], index_rgb.r, index_rgb.g, index_rgb.b); - } - - // Generate new random fractal column - led[h][MID_COL - 1] = (random8() & 3) ? false : true; } - wait_timer = g_rgb_timer + interval(); + // Advance state and reset timer only on the final LED range iteration + if (!rgb_matrix_check_finished_leds(led_max)) { + for (uint8_t row = 0; row < MATRIX_ROWS; ++row) { + memmove(led[row], led[row] + 1, (MID_COL - 1) * sizeof(bool)); + led[row][MID_COL - 1] = !(random8() & 3); + } + wait_timer = g_rgb_timer + 3000 / scale16by8(qadd8(rgb_matrix_config.speed, 16), 16); + } } return rgb_matrix_check_finished_leds(led_max); From 53c0e30e9691ce364f90fd1834b2f98e14834ef1 Mon Sep 17 00:00:00 2001 From: QMK Bot Date: Sun, 15 Mar 2026 21:31:43 +1100 Subject: [PATCH 252/255] [CI] Format code according to conventions (#26072) --- drivers/sensors/pmw3325.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/sensors/pmw3325.c b/drivers/sensors/pmw3325.c index b8eb6ee88c..96f2288824 100644 --- a/drivers/sensors/pmw3325.c +++ b/drivers/sensors/pmw3325.c @@ -133,13 +133,7 @@ report_pmw3325_t pmw3325_read_burst(void) { return report; } -static const uint8_t pmw3325_cpi_lut[50] = { - 0x02, 0x04, 0x06, 0x08, 0x0B, 0x0D, 0x0F, 0x12, 0x14, 0x16, - 0x19, 0x1B, 0x1D, 0x20, 0x22, 0x24, 0x27, 0x29, 0x2B, 0x2E, - 0x30, 0x32, 0x34, 0x37, 0x39, 0x3B, 0x3E, 0x40, 0x42, 0x45, - 0x47, 0x49, 0x4C, 0x4E, 0x50, 0x53, 0x55, 0x57, 0x5A, 0x5C, - 0x5E, 0x61, 0x63, 0x65, 0x68, 0x6A, 0x6C, 0x6F, 0x71, 0x73 -}; +static const uint8_t pmw3325_cpi_lut[50] = {0x02, 0x04, 0x06, 0x08, 0x0B, 0x0D, 0x0F, 0x12, 0x14, 0x16, 0x19, 0x1B, 0x1D, 0x20, 0x22, 0x24, 0x27, 0x29, 0x2B, 0x2E, 0x30, 0x32, 0x34, 0x37, 0x39, 0x3B, 0x3E, 0x40, 0x42, 0x45, 0x47, 0x49, 0x4C, 0x4E, 0x50, 0x53, 0x55, 0x57, 0x5A, 0x5C, 0x5E, 0x61, 0x63, 0x65, 0x68, 0x6A, 0x6C, 0x6F, 0x71, 0x73}; void pmw3325_set_cpi(uint16_t cpi) { uint8_t cpival = CONSTRAIN((cpi / PMW3325_CPI_STEP), (PMW3325_CPI_MIN / PMW3325_CPI_STEP), (PMW3325_CPI_MAX / PMW3325_CPI_STEP)) - 1U; From f01698b3f88a72b9878c5f01063e4a593d96562e Mon Sep 17 00:00:00 2001 From: Marcus Ofenhed Date: Sun, 15 Mar 2026 10:59:23 +0000 Subject: [PATCH 253/255] Add resolution information to digitizer (#25958) Co-authored-by: Marcus Ofenhed <> --- tmk_core/protocol/usb_descriptor.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tmk_core/protocol/usb_descriptor.c b/tmk_core/protocol/usb_descriptor.c index ceab9eef9a..b71236f067 100644 --- a/tmk_core/protocol/usb_descriptor.c +++ b/tmk_core/protocol/usb_descriptor.c @@ -332,6 +332,11 @@ const USB_Descriptor_HIDReport_Datatype_t PROGMEM SharedReport[] = { HID_RI_USAGE(8, 0x44), // Barrel Switch HID_RI_LOGICAL_MINIMUM(8, 0x00), HID_RI_LOGICAL_MAXIMUM(8, 0x01), + HID_RI_PHYSICAL_MINIMUM(8, 0), + // Semi-random value (actual claimed physical size is not important) + HID_RI_PHYSICAL_MAXIMUM(8, 0xCB), + HID_RI_UNIT(8, 0x13), // Inch, English Linear + HID_RI_UNIT_EXPONENT(8, 0x0E), // -2 HID_RI_REPORT_COUNT(8, 0x03), HID_RI_REPORT_SIZE(8, 0x01), HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), From 709628dfb2a1a4336bad490722a282502788f9db Mon Sep 17 00:00:00 2001 From: Jalal El Mansouri Date: Sun, 15 Mar 2026 12:07:43 +0100 Subject: [PATCH 254/255] Honor BUILD_DIR in mass_compile.py (#25586) --- lib/python/qmk/cli/mass_compile.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/python/qmk/cli/mass_compile.py b/lib/python/qmk/cli/mass_compile.py index e71280f482..732d778e7a 100755 --- a/lib/python/qmk/cli/mass_compile.py +++ b/lib/python/qmk/cli/mass_compile.py @@ -23,7 +23,7 @@ def mass_compile_targets(targets: List[BuildTarget], clean: bool, dry_run: bool, os.environ.setdefault('SKIP_SCHEMA_VALIDATION', '1') make_cmd = find_make() - builddir = Path(QMK_FIRMWARE) / '.build' + builddir = Path(env.get("BUILD_DIR")) if env.get("BUILD_DIR") is not None else Path(QMK_FIRMWARE) / '.build' makefile = builddir / 'parallel_kb_builds.mk' if dry_run: @@ -71,8 +71,8 @@ print_failures: all_targets command = target.compile_command(**env) command[0] = '+@$(MAKE)' # Override the make so that we can use jobserver to handle parallelism extra_args = '_'.join([f"{k}_{v}" for k, v in target.extra_args.items()]) - build_log = f"{QMK_FIRMWARE}/.build/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" - failed_log = f"{QMK_FIRMWARE}/.build/failed.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" + build_log = f"{builddir}/build.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" + failed_log = f"{builddir}/failed.log.{os.getpid()}.{keyboard_safe}.{keymap_name}" target_suffix = '' if len(extra_args) > 0: build_log += f".{extra_args}" @@ -101,9 +101,9 @@ all_targets: {target_filename}{target_suffix}_binary # yapf: disable f.write( f"""\ - @rm -rf "{QMK_FIRMWARE}/.build/{target_filename}.elf" 2>/dev/null || true - @rm -rf "{QMK_FIRMWARE}/.build/{target_filename}.map" 2>/dev/null || true - @rm -rf "{QMK_FIRMWARE}/.build/obj_{target_filename}" || true + @rm -rf "{builddir}/{target_filename}.elf" 2>/dev/null || true + @rm -rf "{builddir}/{target_filename}.map" 2>/dev/null || true + @rm -rf "{builddir}/obj_{target_filename}" || true """# noqa ) # yapf: enable From 70b301f6af8f27f5cc6b1625dbe122f85d964d34 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Mon, 16 Mar 2026 11:16:30 +1100 Subject: [PATCH 255/255] Revert "Update ChibiOS, ChibiOS-Contrib. (#25730)" This reverts commit e83672fdc4a8d7ef564dbbf4195c33ad179f8754. --- keyboards/matrix/abelx/mcuconf.h | 2 +- keyboards/matrix/m20add/mcuconf.h | 2 +- keyboards/matrix/noah/mcuconf.h | 2 +- keyboards/tzarc/kobold/info.json | 2 +- lib/chibios | 2 +- lib/chibios-contrib | 2 +- .../BLACKPILL_STM32_F401/configs/mcuconf.h | 2 +- .../BLACKPILL_STM32_F411/configs/mcuconf.h | 2 +- .../boards/BONSAI_C4/configs/mcuconf.h | 2 +- .../GENERIC_STM32_F303XC/configs/mcuconf.h | 2 +- .../GENERIC_STM32_F401XC/configs/mcuconf.h | 2 +- .../GENERIC_STM32_F405XG/configs/mcuconf.h | 2 +- .../GENERIC_STM32_F407XE/configs/mcuconf.h | 2 +- .../GENERIC_STM32_F411XE/configs/mcuconf.h | 2 +- .../GENERIC_STM32_F446XE/configs/mcuconf.h | 2 +- .../GENERIC_STM32_G0B1XB/configs/mcuconf.h | 28 +++++++++---------- .../GENERIC_STM32_G431XB/configs/mcuconf.h | 18 ++++++------ .../GENERIC_STM32_G474XE/configs/mcuconf.h | 24 ++++++++-------- .../GENERIC_STM32_H723XG/configs/mcuconf.h | 7 +---- .../GENERIC_STM32_L412XB/configs/mcuconf.h | 2 +- .../GENERIC_STM32_L432XC/configs/mcuconf.h | 2 +- .../boards/QMK_PROTON_C/configs/chconf.h | 25 ++++++++++++++++- .../boards/QMK_PROTON_C/configs/halconf.h | 19 ++----------- .../boards/QMK_PROTON_C/configs/mcuconf.h | 2 +- .../chibios/boards/STEMCELL/configs/mcuconf.h | 2 +- .../chibios/boards/common/configs/chconf.h | 25 ++++++++++++++++- .../chibios/boards/common/configs/halconf.h | 19 ++----------- platforms/chibios/platform.mk | 2 +- util/chibios_conf_updater.sh | 2 +- 29 files changed, 110 insertions(+), 97 deletions(-) diff --git a/keyboards/matrix/abelx/mcuconf.h b/keyboards/matrix/abelx/mcuconf.h index ce8783c8b9..a2fd42b8c4 100644 --- a/keyboards/matrix/abelx/mcuconf.h +++ b/keyboards/matrix/abelx/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/keyboards/matrix/m20add/mcuconf.h b/keyboards/matrix/m20add/mcuconf.h index 25f36a892d..00216f6908 100644 --- a/keyboards/matrix/m20add/mcuconf.h +++ b/keyboards/matrix/m20add/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/keyboards/matrix/noah/mcuconf.h b/keyboards/matrix/noah/mcuconf.h index 25f36a892d..00216f6908 100644 --- a/keyboards/matrix/noah/mcuconf.h +++ b/keyboards/matrix/noah/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/keyboards/tzarc/kobold/info.json b/keyboards/tzarc/kobold/info.json index 70eaa9eb84..bed8e8a23f 100644 --- a/keyboards/tzarc/kobold/info.json +++ b/keyboards/tzarc/kobold/info.json @@ -13,7 +13,7 @@ "eeprom": { "driver": "wear_leveling", "wear_leveling": { - "backing_size": 16384, + "backing_size": 32768, "driver": "spi_flash" } }, diff --git a/lib/chibios b/lib/chibios index d5b7ac30a0..8bd61b8043 160000 --- a/lib/chibios +++ b/lib/chibios @@ -1 +1 @@ -Subproject commit d5b7ac30a02c4962338a38b3a05e5f8da97a8c81 +Subproject commit 8bd61b804303f1614d574546c2dd735eeabb09f5 diff --git a/lib/chibios-contrib b/lib/chibios-contrib index 5a9ad82b6b..8d863d9ee4 160000 --- a/lib/chibios-contrib +++ b/lib/chibios-contrib @@ -1 +1 @@ -Subproject commit 5a9ad82b6ba4f649cdb800e8c2bbc9be2d3ce767 +Subproject commit 8d863d9ee4eecea68ad8d15f7e7c2b451aea79d9 diff --git a/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/mcuconf.h b/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/mcuconf.h index 129e275ca8..a21fd7bd12 100644 --- a/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/mcuconf.h +++ b/platforms/chibios/boards/BLACKPILL_STM32_F401/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/mcuconf.h b/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/mcuconf.h index cd2152da08..131c847661 100644 --- a/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/mcuconf.h +++ b/platforms/chibios/boards/BLACKPILL_STM32_F411/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h b/platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h index d119d133ff..b381aed4fd 100644 --- a/platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h +++ b/platforms/chibios/boards/BONSAI_C4/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/mcuconf.h index 0c514c2b88..e0af4a276b 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F303XC/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/mcuconf.h index 8e2d16843a..1208563aa1 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F401XC/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/mcuconf.h index 21871350c6..394e750256 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F405XG/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/mcuconf.h index d29ab85c36..07399ad2f7 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F407XE/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/mcuconf.h index 4489bed5c1..e1d45ca487 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F411XE/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h index 45ee3ef56e..9c5cb82436 100644 --- a/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_F446XE/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_G0B1XB/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_G0B1XB/configs/mcuconf.h index c13e69c7cd..80726e0308 100644 --- a/platforms/chibios/boards/GENERIC_STM32_G0B1XB/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_G0B1XB/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -73,8 +73,6 @@ #define STM32_PPRE STM32_PPRE_DIV1 #define STM32_MCOSEL STM32_MCOSEL_NOCLOCK #define STM32_MCOPRE STM32_MCOPRE_DIV1 -#define STM32_MCO2SEL STM32_MCOSEL_NOCLOCK -#define STM32_MCO2PRE STM32_MCOPRE_DIV1 #define STM32_LSCOSEL STM32_LSCOSEL_NOCLOCK /* @@ -109,8 +107,9 @@ #define STM32_IRQ_EXTI4_15_PRIORITY 3 #define STM32_IRQ_EXTI1921_PRIORITY 3 -#define STM32_IRQ_I2C1_PRIORITY 3 -#define STM32_IRQ_I2C2_3_PRIORITY 3 +#define STM32_IRQ_USART1_PRIORITY 2 +#define STM32_IRQ_USART2_LP2_PRIORITY 2 +#define STM32_IRQ_USART3_4_5_6_LP1_PRIORITY 2 #define STM32_IRQ_TIM1_UP_PRIORITY 1 #define STM32_IRQ_TIM1_CC_PRIORITY 1 @@ -123,12 +122,6 @@ #define STM32_IRQ_TIM16_PRIORITY 1 #define STM32_IRQ_TIM17_PRIORITY 1 -#define STM32_IRQ_USART1_PRIORITY 2 -#define STM32_IRQ_USART2_LP2_PRIORITY 2 -#define STM32_IRQ_USART3_4_5_6_LP1_PRIORITY 2 - -#define STM32_IRQ_USB1_UCPD1_2_PRIORITY 3 - /* * ADC driver system settings. */ @@ -173,12 +166,16 @@ #define STM32_I2C_USE_I2C2 FALSE #define STM32_I2C_USE_I2C3 FALSE #define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C2_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C3_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C1_IRQ_PRIORITY 3 +#define STM32_I2C_I2C2_IRQ_PRIORITY 3 #define STM32_I2C_I2C1_DMA_PRIORITY 3 #define STM32_I2C_I2C2_DMA_PRIORITY 3 -#define STM32_I2C_I2C3_DMA_PRIORITY 1 #define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") /* @@ -299,6 +296,7 @@ * USB driver system settings. */ #define STM32_USB_USE_USB1 TRUE +#define STM32_USB_USB1_LP_IRQ_PRIORITY 3 #define STM32_USB_USE_ISOCHRONOUS FALSE #define STM32_USB_USE_FAST_COPY TRUE #define STM32_USB_HOST_WAKEUP_DURATION 2 diff --git a/platforms/chibios/boards/GENERIC_STM32_G431XB/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_G431XB/configs/mcuconf.h index 39d594d585..0537ee9235 100644 --- a/platforms/chibios/boards/GENERIC_STM32_G431XB/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_G431XB/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -119,10 +119,6 @@ #define STM32_IRQ_FDCAN1_PRIORITY 10 -#define STM32_IRQ_I2C1_PRIORITY 5 -#define STM32_IRQ_I2C2_PRIORITY 5 -#define STM32_IRQ_I2C3_PRIORITY 5 - #define STM32_IRQ_TIM1_BRK_TIM15_PRIORITY 7 #define STM32_IRQ_TIM1_UP_TIM16_PRIORITY 7 #define STM32_IRQ_TIM1_TRGCO_TIM17_PRIORITY 7 @@ -205,9 +201,15 @@ #define STM32_I2C_USE_I2C2 FALSE #define STM32_I2C_USE_I2C3 FALSE #define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C2_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C3_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C1_IRQ_PRIORITY 5 +#define STM32_I2C_I2C2_IRQ_PRIORITY 5 +#define STM32_I2C_I2C3_IRQ_PRIORITY 5 #define STM32_I2C_I2C1_DMA_PRIORITY 3 #define STM32_I2C_I2C2_DMA_PRIORITY 3 #define STM32_I2C_I2C3_DMA_PRIORITY 3 diff --git a/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/mcuconf.h index 94bef9ea54..d6385da624 100644 --- a/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_G474XE/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -127,11 +127,6 @@ #define STM32_IRQ_FDCAN2_PRIORITY 10 #define STM32_IRQ_FDCAN3_PRIORITY 10 -#define STM32_IRQ_I2C1_PRIORITY 5 -#define STM32_IRQ_I2C2_PRIORITY 5 -#define STM32_IRQ_I2C3_PRIORITY 5 -#define STM32_IRQ_I2C4_PRIORITY 5 - #define STM32_IRQ_TIM1_BRK_TIM15_PRIORITY 7 #define STM32_IRQ_TIM1_UP_TIM16_PRIORITY 7 #define STM32_IRQ_TIM1_TRGCO_TIM17_PRIORITY 7 @@ -189,7 +184,6 @@ #define STM32_CAN_USE_FDCAN1 FALSE #define STM32_CAN_USE_FDCAN2 FALSE #define STM32_CAN_USE_FDCAN3 FALSE -#define STM32_CAN_FDCAN_PRESC FDCAN_CONFIG_CKDIV_PDIV_20 /* * DAC driver system settings. @@ -247,10 +241,18 @@ #define STM32_I2C_USE_I2C3 FALSE #define STM32_I2C_USE_I2C4 FALSE #define STM32_I2C_BUSY_TIMEOUT 50 -#define STM32_I2C_I2C1_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C2_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C3_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C4_DMA_CHANNEL STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C2_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C2_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C3_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C4_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C4_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY +#define STM32_I2C_I2C1_IRQ_PRIORITY 5 +#define STM32_I2C_I2C2_IRQ_PRIORITY 5 +#define STM32_I2C_I2C3_IRQ_PRIORITY 5 +#define STM32_I2C_I2C4_IRQ_PRIORITY 5 #define STM32_I2C_I2C1_DMA_PRIORITY 3 #define STM32_I2C_I2C2_DMA_PRIORITY 3 #define STM32_I2C_I2C3_DMA_PRIORITY 3 diff --git a/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h index 2b74c34ff5..09096c3977 100644 --- a/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_H723XG/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -276,7 +276,6 @@ #define STM32_I2C_USE_I2C2 FALSE #define STM32_I2C_USE_I2C3 FALSE #define STM32_I2C_USE_I2C4 FALSE -#define STM32_I2C_USE_I2C5 FALSE #define STM32_I2C_BUSY_TIMEOUT 50 #define STM32_I2C_I2C1_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY #define STM32_I2C_I2C1_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY @@ -286,18 +285,14 @@ #define STM32_I2C_I2C3_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY #define STM32_I2C_I2C4_RX_BDMA_STREAM STM32_BDMA_STREAM_ID_ANY #define STM32_I2C_I2C4_TX_BDMA_STREAM STM32_BDMA_STREAM_ID_ANY -#define STM32_I2C_I2C5_RX_DMA_STREAM STM32_DMA_STREAM_ID_ANY -#define STM32_I2C_I2C5_TX_DMA_STREAM STM32_DMA_STREAM_ID_ANY #define STM32_I2C_I2C1_IRQ_PRIORITY 5 #define STM32_I2C_I2C2_IRQ_PRIORITY 5 #define STM32_I2C_I2C3_IRQ_PRIORITY 5 #define STM32_I2C_I2C4_IRQ_PRIORITY 5 -#define STM32_I2C_I2C5_IRQ_PRIORITY 5 #define STM32_I2C_I2C1_DMA_PRIORITY 3 #define STM32_I2C_I2C2_DMA_PRIORITY 3 #define STM32_I2C_I2C3_DMA_PRIORITY 3 #define STM32_I2C_I2C4_DMA_PRIORITY 3 -#define STM32_I2C_I2C5_DMA_PRIORITY 3 #define STM32_I2C_DMA_ERROR_HOOK(i2cp) osalSysHalt("DMA failure") /* diff --git a/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/mcuconf.h index ee3a84f0ec..47f1598b74 100644 --- a/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_L412XB/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/GENERIC_STM32_L432XC/configs/mcuconf.h b/platforms/chibios/boards/GENERIC_STM32_L432XC/configs/mcuconf.h index 7f7cb74beb..6962a340c5 100644 --- a/platforms/chibios/boards/GENERIC_STM32_L432XC/configs/mcuconf.h +++ b/platforms/chibios/boards/GENERIC_STM32_L432XC/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h b/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h index 2cdd9bc80e..e92b7aeb98 100644 --- a/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h +++ b/platforms/chibios/boards/QMK_PROTON_C/configs/chconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -49,6 +49,19 @@ #define CH_CFG_SMP_MODE FALSE #endif +/** + * @brief Kernel hardening level. + * @details This option is the level of functional-safety checks enabled + * in the kerkel. The meaning is: + * - 0: No checks, maximum performance. + * - 1: Reasonable checks. + * - 2: All checks. + * . + */ +#if !defined(CH_CFG_HARDENING_LEVEL) +#define CH_CFG_HARDENING_LEVEL 0 +#endif + /** @} */ /*===========================================================================*/ @@ -360,6 +373,16 @@ #define CH_CFG_USE_MAILBOXES TRUE #endif +/** + * @brief Memory checks APIs. + * @details If enabled then the memory checks APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMCHECKS) +#define CH_CFG_USE_MEMCHECKS TRUE +#endif + /** * @brief Core Memory Manager APIs. * @details If enabled then the core memory manager APIs are included diff --git a/platforms/chibios/boards/QMK_PROTON_C/configs/halconf.h b/platforms/chibios/boards/QMK_PROTON_C/configs/halconf.h index 4e8154820b..4a22e818e2 100644 --- a/platforms/chibios/boards/QMK_PROTON_C/configs/halconf.h +++ b/platforms/chibios/boards/QMK_PROTON_C/configs/halconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -29,17 +29,10 @@ #define HALCONF_H #define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_9_1_ +#define _CHIBIOS_HAL_CONF_VER_8_4_ #include -/** - * @brief Enables the HAL safety subsystem. - */ -#if !defined(HAL_USE_SAFETY) || defined(__DOXYGEN__) -#define HAL_USE_SAFETY FALSE -#endif - /** * @brief Enables the PAL subsystem. */ @@ -312,14 +305,6 @@ /* I2C driver related settings. */ /*===========================================================================*/ -/** - * @brief Slave mode API enable switch. - * @note The low level driver must support this capability. - */ -#if !defined(I2C_ENABLE_SLAVE_MODE) -#define I2C_ENABLE_SLAVE_MODE FALSE -#endif - /** * @brief Enables the mutual exclusion APIs on the I2C bus. */ diff --git a/platforms/chibios/boards/QMK_PROTON_C/configs/mcuconf.h b/platforms/chibios/boards/QMK_PROTON_C/configs/mcuconf.h index 8a27ba5537..cab4c29cf6 100644 --- a/platforms/chibios/boards/QMK_PROTON_C/configs/mcuconf.h +++ b/platforms/chibios/boards/QMK_PROTON_C/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/STEMCELL/configs/mcuconf.h b/platforms/chibios/boards/STEMCELL/configs/mcuconf.h index 3ccc668641..d4b870f8e4 100644 --- a/platforms/chibios/boards/STEMCELL/configs/mcuconf.h +++ b/platforms/chibios/boards/STEMCELL/configs/mcuconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/platforms/chibios/boards/common/configs/chconf.h b/platforms/chibios/boards/common/configs/chconf.h index e4c65bdcf7..6381298ef7 100644 --- a/platforms/chibios/boards/common/configs/chconf.h +++ b/platforms/chibios/boards/common/configs/chconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -49,6 +49,19 @@ #define CH_CFG_SMP_MODE FALSE #endif +/** + * @brief Kernel hardening level. + * @details This option is the level of functional-safety checks enabled + * in the kerkel. The meaning is: + * - 0: No checks, maximum performance. + * - 1: Reasonable checks. + * - 2: All checks. + * . + */ +#if !defined(CH_CFG_HARDENING_LEVEL) +#define CH_CFG_HARDENING_LEVEL 0 +#endif + /** @} */ /*===========================================================================*/ @@ -360,6 +373,16 @@ #define CH_CFG_USE_MAILBOXES FALSE #endif +/** + * @brief Memory checks APIs. + * @details If enabled then the memory checks APIs are included in the kernel. + * + * @note The default is @p TRUE. + */ +#if !defined(CH_CFG_USE_MEMCHECKS) +#define CH_CFG_USE_MEMCHECKS TRUE +#endif + /** * @brief Core Memory Manager APIs. * @details If enabled then the core memory manager APIs are included diff --git a/platforms/chibios/boards/common/configs/halconf.h b/platforms/chibios/boards/common/configs/halconf.h index 9ab6dc3fd6..b0ccbc1f2f 100644 --- a/platforms/chibios/boards/common/configs/halconf.h +++ b/platforms/chibios/boards/common/configs/halconf.h @@ -1,5 +1,5 @@ /* - ChibiOS - Copyright (C) 2006-2026 Giovanni Di Sirio. + ChibiOS - Copyright (C) 2006..2020 Giovanni Di Sirio Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -29,17 +29,10 @@ #define HALCONF_H #define _CHIBIOS_HAL_CONF_ -#define _CHIBIOS_HAL_CONF_VER_9_1_ +#define _CHIBIOS_HAL_CONF_VER_8_4_ #include -/** - * @brief Enables the HAL safety subsystem. - */ -#if !defined(HAL_USE_SAFETY) || defined(__DOXYGEN__) -#define HAL_USE_SAFETY FALSE -#endif - /** * @brief Enables the PAL subsystem. */ @@ -312,14 +305,6 @@ /* I2C driver related settings. */ /*===========================================================================*/ -/** - * @brief Slave mode API enable switch. - * @note The low level driver must support this capability. - */ -#if !defined(I2C_ENABLE_SLAVE_MODE) -#define I2C_ENABLE_SLAVE_MODE FALSE -#endif - /** * @brief Enables the mutual exclusion APIs on the I2C bus. */ diff --git a/platforms/chibios/platform.mk b/platforms/chibios/platform.mk index b5cbec4431..cf9fac251e 100644 --- a/platforms/chibios/platform.mk +++ b/platforms/chibios/platform.mk @@ -279,7 +279,7 @@ PLATFORM_SRC = \ $(PLATFORMSRC) \ $(BOARDSRC) \ $(STREAMSSRC) \ - $(CHIBIOS)/os/various/newlib_bindings/syscalls.c \ + $(CHIBIOS)/os/various/syscalls.c \ $(PLATFORM_COMMON_DIR)/syscall-fallbacks.c \ $(PLATFORM_COMMON_DIR)/wait.c \ $(PLATFORM_COMMON_DIR)/synchronization_util.c \ diff --git a/util/chibios_conf_updater.sh b/util/chibios_conf_updater.sh index 06f8e9104a..4c68c678c6 100755 --- a/util/chibios_conf_updater.sh +++ b/util/chibios_conf_updater.sh @@ -62,7 +62,7 @@ upgrade_conf_files_generic() { pushd "$qmk_firmware_dir/lib/chibios/tools/updater" >/dev/null 2>&1 for file in $(find_chibi_files "$qmk_firmware_dir" -name "$search_filename") ; do cp -f "$file" "$file.orig" - clang-format --style='{IndentPPDirectives: None, ColumnLimit: 0}' -i "$file" + clang-format --style='{IndentPPDirectives: None}' -i "$file" cp -f "$file" "$file.formatted" bash "$update_script" "$file" if ! diff "$file" "$file.formatted" >/dev/null 2>&1 ; then