From be8907d634ac8967de1ae2ac8346b845f738c9e6 Mon Sep 17 00:00:00 2001 From: Ryan Date: Tue, 27 Sep 2022 18:37:13 +1000 Subject: [PATCH 01/34] Further refactoring of joystick feature (#18437) --- docs/feature_joystick.md | 81 ++++------ .../onekey/keymaps/joystick/keymap.c | 6 +- .../synthlabs/solo/keymaps/gamepad/keymap.c | 7 +- quantum/joystick.c | 98 ++++++++++- quantum/joystick.h | 28 +++- quantum/process_keycode/process_joystick.c | 152 ++---------------- quantum/process_keycode/process_joystick.h | 21 ++- tmk_core/protocol/chibios/usb_main.c | 54 +------ tmk_core/protocol/host.c | 56 +++++++ tmk_core/protocol/host_driver.h | 1 + tmk_core/protocol/lufa/lufa.c | 51 +----- tmk_core/protocol/report.h | 2 +- 12 files changed, 248 insertions(+), 309 deletions(-) diff --git a/docs/feature_joystick.md b/docs/feature_joystick.md index 2635298587d..a82192bfe11 100644 --- a/docs/feature_joystick.md +++ b/docs/feature_joystick.md @@ -70,71 +70,44 @@ When the ADC reads 900 or higher, the returned axis value will be -127, whereas In this example, the first axis will be read from the `A4` pin while `B0` is set high and `A7` is set low, using `analogReadPin()`, whereas the second axis will not be read. -In order to give a value to the second axis, you can do so in any customizable entry point: as an action, in `process_record_user()` or in `matrix_scan_user()`, or even in `joystick_task()` which is called even when no key has been pressed. -You assign a value by writing to `joystick_status.axes[axis_index]` a signed 8-bit value (ranging from -127 to 127). Then it is necessary to assign the flag `JS_UPDATED` to `joystick_status.status` in order for an updated HID report to be sent. +#### Virtual Axes -The following example writes two axes based on keypad presses, with `KC_P5` as a precision modifier: +To give a value to virtual axes, call `joystick_set_axis(axis, value)`. + +The following example adjusts two virtual axes (X and Y) based on keypad presses, with `KC_P5` as a precision modifier: ```c -#ifdef ANALOG_JOYSTICK_ENABLE -static uint8_t precision_val = 70; -static uint8_t axesFlags = 0; -enum axes { - Precision = 1, - Axis1High = 2, - Axis1Low = 4, - Axis2High = 8, - Axis2Low = 16 +joystick_config_t joystick_axes[JOYSTICK_AXES_COUNT] = { + [0] = JOYSTICK_AXIS_VIRTUAL, // x + [1] = JOYSTICK_AXIS_VIRTUAL // y }; -#endif + +static bool precision = false; +static uint16_t precision_mod = 64; +static uint16_t axis_val = 127; bool process_record_user(uint16_t keycode, keyrecord_t *record) { - switch(keycode) { -#ifdef ANALOG_JOYSTICK_ENABLE - // virtual joystick -# if JOYSTICK_AXES_COUNT > 1 + int16_t precision_val = axis_val; + if (precision) { + precision_val -= precision_mod; + } + + switch (keycode) { case KC_P8: - if (record->event.pressed) { - axesFlags |= Axis2Low; - } else { - axesFlags &= ~Axis2Low; - } - joystick_status.status |= JS_UPDATED; - break; + joystick_set_axis(1, record->event.pressed ? -precision_val : 0); + return false; case KC_P2: - if (record->event.pressed) { - axesFlags |= Axis2High; - } else { - axesFlags &= ~Axis2High; - } - joystick_status.status |= JS_UPDATED; - break; -# endif + joystick_set_axis(1, record->event.pressed ? precision_val : 0); + return false; case KC_P4: - if (record->event.pressed) { - axesFlags |= Axis1Low; - } else { - axesFlags &= ~Axis1Low; - } - joystick_status.status |= JS_UPDATED; - break; + joystick_set_axis(0, record->event.pressed ? -precision_val : 0); + return false; case KC_P6: - if (record->event.pressed) { - axesFlags |= Axis1High; - } else { - axesFlags &= ~Axis1High; - } - joystick_status.status |= JS_UPDATED; - break; + joystick_set_axis(0, record->event.pressed ? precision_val : 0); + return false; case KC_P5: - if (record->event.pressed) { - axesFlags |= Precision; - } else { - axesFlags &= ~Precision; - } - joystick_status.status |= JS_UPDATED; - break; -#endif + precision = record->event.pressed; + return false; } return true; } diff --git a/keyboards/handwired/onekey/keymaps/joystick/keymap.c b/keyboards/handwired/onekey/keymaps/joystick/keymap.c index 7a2f138b28b..c74707e931d 100644 --- a/keyboards/handwired/onekey/keymaps/joystick/keymap.c +++ b/keyboards/handwired/onekey/keymaps/joystick/keymap.c @@ -10,11 +10,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { void matrix_scan_user() { int16_t val = (((uint32_t)timer_read() % 5000 - 2500) * 255) / 5000; - - if (val != joystick_status.axes[1]) { - joystick_status.axes[1] = val; - joystick_status.status |= JS_UPDATED; - } + joystick_set_axis(1, val); } // Joystick config diff --git a/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c b/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c index 3e55f346f13..8da2afc97aa 100644 --- a/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c +++ b/keyboards/synthlabs/solo/keymaps/gamepad/keymap.c @@ -3,8 +3,6 @@ #include QMK_KEYBOARD_H -#include "joystick.h" - const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( JS_BUTTON0,JS_BUTTON1,JS_BUTTON2,JS_BUTTON3,JS_BUTTON4,JS_BUTTON5,JS_BUTTON6, @@ -24,11 +22,8 @@ joystick_config_t joystick_axes[JOYSTICK_AXES_COUNT] = { bool encoder_update_kb(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); - if (joystick_position != joystick_status.axes[0]) { - joystick_status.axes[0] = joystick_position; - joystick_status.status |= JS_UPDATED; - } return true; } diff --git a/quantum/joystick.c b/quantum/joystick.c index 86b2c64036b..d285dcdb5e7 100644 --- a/quantum/joystick.c +++ b/quantum/joystick.c @@ -1,5 +1,24 @@ +/* Copyright 2022 + * + * 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 "joystick.h" +#include "analog.h" +#include "wait.h" + // clang-format off joystick_t joystick_status = { .buttons = {0}, @@ -15,12 +34,13 @@ joystick_t joystick_status = { // array defining the reading of analog values for each axis __attribute__((weak)) joystick_config_t joystick_axes[JOYSTICK_AXES_COUNT] = {}; -// to be implemented in the hid protocol library -void send_joystick_packet(joystick_t *joystick); +__attribute__((weak)) void joystick_task(void) { + joystick_read_axes(); +} void joystick_flush(void) { if ((joystick_status.status & JS_UPDATED) > 0) { - send_joystick_packet(&joystick_status); + host_joystick_send(&joystick_status); joystick_status.status &= ~JS_UPDATED; } } @@ -36,3 +56,75 @@ void unregister_joystick_button(uint8_t button) { joystick_status.status |= JS_UPDATED; joystick_flush(); } + +int16_t joystick_read_axis(uint8_t axis) { + // disable pull-up resistor + writePinLow(joystick_axes[axis].input_pin); + + // if pin was a pull-up input, we need to uncharge it by turning it low + // before making it a low input + setPinOutput(joystick_axes[axis].input_pin); + + wait_us(10); + + if (joystick_axes[axis].output_pin != JS_VIRTUAL_AXIS) { + setPinOutput(joystick_axes[axis].output_pin); + writePinHigh(joystick_axes[axis].output_pin); + } + + if (joystick_axes[axis].ground_pin != JS_VIRTUAL_AXIS) { + setPinOutput(joystick_axes[axis].ground_pin); + writePinLow(joystick_axes[axis].ground_pin); + } + + wait_us(10); + + setPinInput(joystick_axes[axis].input_pin); + + wait_us(10); + +#if defined(ANALOG_JOYSTICK_ENABLE) && (defined(__AVR__) || defined(PROTOCOL_CHIBIOS)) + int16_t axis_val = analogReadPin(joystick_axes[axis].input_pin); +#else + // default to resting position + int16_t axis_val = joystick_axes[axis].mid_digit; +#endif + + // test the converted value against the lower range + int32_t ref = joystick_axes[axis].mid_digit; + int32_t range = joystick_axes[axis].min_digit; + int32_t ranged_val = ((axis_val - ref) * -JOYSTICK_RESOLUTION) / (range - ref); + + if (ranged_val > 0) { + // the value is in the higher range + range = joystick_axes[axis].max_digit; + ranged_val = ((axis_val - ref) * JOYSTICK_RESOLUTION) / (range - ref); + } + + // clamp the result in the valid range + ranged_val = ranged_val < -JOYSTICK_RESOLUTION ? -JOYSTICK_RESOLUTION : ranged_val; + ranged_val = ranged_val > JOYSTICK_RESOLUTION ? JOYSTICK_RESOLUTION : ranged_val; + + return ranged_val; +} + +void joystick_read_axes() { +#if JOYSTICK_AXES_COUNT > 0 + for (int i = 0; i < JOYSTICK_AXES_COUNT; ++i) { + if (joystick_axes[i].input_pin == JS_VIRTUAL_AXIS) { + continue; + } + + joystick_set_axis(i, joystick_read_axis(i)); + } + + joystick_flush(); +#endif +} + +void joystick_set_axis(uint8_t axis, int16_t value) { + if (value != joystick_status.axes[axis]) { + joystick_status.axes[axis] = value; + joystick_status.status |= JS_UPDATED; + } +} diff --git a/quantum/joystick.h b/quantum/joystick.h index 5d81b14ef2f..ee966fdb1af 100644 --- a/quantum/joystick.h +++ b/quantum/joystick.h @@ -1,3 +1,19 @@ +/* Copyright 2022 + * + * 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 @@ -54,7 +70,10 @@ typedef struct { extern joystick_config_t joystick_axes[JOYSTICK_AXES_COUNT]; -enum joystick_status { JS_INITIALIZED = 1, JS_UPDATED = 2 }; +enum joystick_status { + JS_INITIALIZED = 1, + JS_UPDATED, +}; typedef struct { uint8_t buttons[(JOYSTICK_BUTTON_COUNT - 1) / 8 + 1]; @@ -65,7 +84,14 @@ typedef struct { extern joystick_t joystick_status; +void joystick_task(void); void joystick_flush(void); void register_joystick_button(uint8_t button); void unregister_joystick_button(uint8_t button); + +int16_t joystick_read_axis(uint8_t axis); +void joystick_read_axes(void); +void joystick_set_axis(uint8_t axis, int16_t value); + +void host_joystick_send(joystick_t *joystick); diff --git a/quantum/process_keycode/process_joystick.c b/quantum/process_keycode/process_joystick.c index e867606074f..af69d3aa05b 100644 --- a/quantum/process_keycode/process_joystick.c +++ b/quantum/process_keycode/process_joystick.c @@ -1,10 +1,21 @@ -#include "joystick.h" +/* Copyright 2022 + * + * 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 "process_joystick.h" - -#include "analog.h" - -#include -#include +#include "joystick.h" bool process_joystick(uint16_t keycode, keyrecord_t *record) { switch (keycode) { @@ -18,132 +29,3 @@ bool process_joystick(uint16_t keycode, keyrecord_t *record) { } return true; } - -__attribute__((weak)) void joystick_task(void) { - if (process_joystick_analogread()) { - joystick_flush(); - } -} - -uint16_t savePinState(pin_t pin) { -#ifdef __AVR__ - uint8_t pinNumber = pin & 0xF; - return ((PORTx_ADDRESS(pin) >> pinNumber) & 0x1) << 1 | ((DDRx_ADDRESS(pin) >> pinNumber) & 0x1); -#elif defined(PROTOCOL_CHIBIOS) - /* - The pin configuration is backed up in the following format : - bit 15 9 8 7 6 5 4 3 2 1 0 - |unused|ODR|IDR|PUPDR|OSPEEDR|OTYPER|MODER| - */ - return ((PAL_PORT(pin)->MODER >> (2 * PAL_PAD(pin))) & 0x3) | (((PAL_PORT(pin)->OTYPER >> (1 * PAL_PAD(pin))) & 0x1) << 2) | (((PAL_PORT(pin)->OSPEEDR >> (2 * PAL_PAD(pin))) & 0x3) << 3) | (((PAL_PORT(pin)->PUPDR >> (2 * PAL_PAD(pin))) & 0x3) << 5) | (((PAL_PORT(pin)->IDR >> (1 * PAL_PAD(pin))) & 0x1) << 7) | (((PAL_PORT(pin)->ODR >> (1 * PAL_PAD(pin))) & 0x1) << 8); -#else - return 0; -#endif -} - -void restorePinState(pin_t pin, uint16_t restoreState) { -#if defined(PROTOCOL_LUFA) - uint8_t pinNumber = pin & 0xF; - PORTx_ADDRESS(pin) = (PORTx_ADDRESS(pin) & ~_BV(pinNumber)) | (((restoreState >> 1) & 0x1) << pinNumber); - DDRx_ADDRESS(pin) = (DDRx_ADDRESS(pin) & ~_BV(pinNumber)) | ((restoreState & 0x1) << pinNumber); -#elif defined(PROTOCOL_CHIBIOS) - PAL_PORT(pin)->MODER = (PAL_PORT(pin)->MODER & ~(0x3 << (2 * PAL_PAD(pin)))) | (restoreState & 0x3) << (2 * PAL_PAD(pin)); - PAL_PORT(pin)->OTYPER = (PAL_PORT(pin)->OTYPER & ~(0x1 << (1 * PAL_PAD(pin)))) | ((restoreState >> 2) & 0x1) << (1 * PAL_PAD(pin)); - PAL_PORT(pin)->OSPEEDR = (PAL_PORT(pin)->OSPEEDR & ~(0x3 << (2 * PAL_PAD(pin)))) | ((restoreState >> 3) & 0x3) << (2 * PAL_PAD(pin)); - PAL_PORT(pin)->PUPDR = (PAL_PORT(pin)->PUPDR & ~(0x3 << (2 * PAL_PAD(pin)))) | ((restoreState >> 5) & 0x3) << (2 * PAL_PAD(pin)); - PAL_PORT(pin)->IDR = (PAL_PORT(pin)->IDR & ~(0x1 << (1 * PAL_PAD(pin)))) | ((restoreState >> 7) & 0x1) << (1 * PAL_PAD(pin)); - PAL_PORT(pin)->ODR = (PAL_PORT(pin)->ODR & ~(0x1 << (1 * PAL_PAD(pin)))) | ((restoreState >> 8) & 0x1) << (1 * PAL_PAD(pin)); -#else - return; -#endif -} - -__attribute__((weak)) bool process_joystick_analogread() { - return process_joystick_analogread_quantum(); -} - -bool process_joystick_analogread_quantum() { -#if JOYSTICK_AXES_COUNT > 0 - for (int axis_index = 0; axis_index < JOYSTICK_AXES_COUNT; ++axis_index) { - if (joystick_axes[axis_index].input_pin == JS_VIRTUAL_AXIS) { - continue; - } - - // save previous input pin status as well - uint16_t inputSavedState = savePinState(joystick_axes[axis_index].input_pin); - - // disable pull-up resistor - writePinLow(joystick_axes[axis_index].input_pin); - - // if pin was a pull-up input, we need to uncharge it by turning it low - // before making it a low input - setPinOutput(joystick_axes[axis_index].input_pin); - - wait_us(10); - - // save and apply output pin status - uint16_t outputSavedState = 0; - if (joystick_axes[axis_index].output_pin != JS_VIRTUAL_AXIS) { - // save previous output pin status - outputSavedState = savePinState(joystick_axes[axis_index].output_pin); - - setPinOutput(joystick_axes[axis_index].output_pin); - writePinHigh(joystick_axes[axis_index].output_pin); - } - - uint16_t groundSavedState = 0; - if (joystick_axes[axis_index].ground_pin != JS_VIRTUAL_AXIS) { - // save previous output pin status - groundSavedState = savePinState(joystick_axes[axis_index].ground_pin); - - setPinOutput(joystick_axes[axis_index].ground_pin); - writePinLow(joystick_axes[axis_index].ground_pin); - } - - wait_us(10); - - setPinInput(joystick_axes[axis_index].input_pin); - - wait_us(10); - -# if defined(ANALOG_JOYSTICK_ENABLE) && (defined(__AVR__) || defined(PROTOCOL_CHIBIOS)) - int16_t axis_val = analogReadPin(joystick_axes[axis_index].input_pin); -# else - // default to resting position - int16_t axis_val = joystick_axes[axis_index].mid_digit; -# endif - - // test the converted value against the lower range - int32_t ref = joystick_axes[axis_index].mid_digit; - int32_t range = joystick_axes[axis_index].min_digit; - int32_t ranged_val = ((axis_val - ref) * -JOYSTICK_RESOLUTION) / (range - ref); - - if (ranged_val > 0) { - // the value is in the higher range - range = joystick_axes[axis_index].max_digit; - ranged_val = ((axis_val - ref) * JOYSTICK_RESOLUTION) / (range - ref); - } - - // clamp the result in the valid range - ranged_val = ranged_val < -JOYSTICK_RESOLUTION ? -JOYSTICK_RESOLUTION : ranged_val; - ranged_val = ranged_val > JOYSTICK_RESOLUTION ? JOYSTICK_RESOLUTION : ranged_val; - - if (ranged_val != joystick_status.axes[axis_index]) { - joystick_status.axes[axis_index] = ranged_val; - joystick_status.status |= JS_UPDATED; - } - - // restore output, ground and input status - if (joystick_axes[axis_index].output_pin != JS_VIRTUAL_AXIS) { - restorePinState(joystick_axes[axis_index].output_pin, outputSavedState); - } - if (joystick_axes[axis_index].ground_pin != JS_VIRTUAL_AXIS) { - restorePinState(joystick_axes[axis_index].ground_pin, groundSavedState); - } - - restorePinState(joystick_axes[axis_index].input_pin, inputSavedState); - } - -#endif - return true; -} diff --git a/quantum/process_keycode/process_joystick.h b/quantum/process_keycode/process_joystick.h index 7a8b82913aa..1fb8757708d 100644 --- a/quantum/process_keycode/process_joystick.h +++ b/quantum/process_keycode/process_joystick.h @@ -1,11 +1,22 @@ +/* Copyright 2022 + * + * 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 "quantum.h" bool process_joystick(uint16_t keycode, keyrecord_t *record); - -void joystick_task(void); - -bool process_joystick_analogread(void); -bool process_joystick_analogread_quantum(void); diff --git a/tmk_core/protocol/chibios/usb_main.c b/tmk_core/protocol/chibios/usb_main.c index 222a867e3c7..7c44b87bc4f 100644 --- a/tmk_core/protocol/chibios/usb_main.c +++ b/tmk_core/protocol/chibios/usb_main.c @@ -50,10 +50,6 @@ extern keymap_config_t keymap_config; #endif -#ifdef JOYSTICK_ENABLE -# include "joystick.h" -#endif - /* --------------------------------------------------------- * Global interface variables and declarations * --------------------------------------------------------- @@ -1151,59 +1147,15 @@ void virtser_task(void) { #endif +void send_joystick(report_joystick_t *report) { #ifdef JOYSTICK_ENABLE - -void send_joystick_packet(joystick_t *joystick) { - static joystick_report_t rep; - rep = (joystick_report_t) { -# if JOYSTICK_AXES_COUNT > 0 - .axes = - { joystick->axes[0], - -# if JOYSTICK_AXES_COUNT >= 2 - joystick->axes[1], -# endif -# if JOYSTICK_AXES_COUNT >= 3 - joystick->axes[2], -# endif -# if JOYSTICK_AXES_COUNT >= 4 - joystick->axes[3], -# endif -# if JOYSTICK_AXES_COUNT >= 5 - joystick->axes[4], -# endif -# if JOYSTICK_AXES_COUNT >= 6 - joystick->axes[5], -# endif - }, -# endif // JOYSTICK_AXES_COUNT>0 - -# if JOYSTICK_BUTTON_COUNT > 0 - .buttons = { - joystick->buttons[0], - -# if JOYSTICK_BUTTON_COUNT > 8 - joystick->buttons[1], -# endif -# if JOYSTICK_BUTTON_COUNT > 16 - joystick->buttons[2], -# endif -# if JOYSTICK_BUTTON_COUNT > 24 - joystick->buttons[3], -# endif - } -# endif // JOYSTICK_BUTTON_COUNT>0 - }; - - // chnWrite(&drivers.joystick_driver.driver, (uint8_t *)&rep, sizeof(rep)); osalSysLock(); if (usbGetDriverStateI(&USB_DRIVER) != USB_ACTIVE) { osalSysUnlock(); return; } - usbStartTransmitI(&USB_DRIVER, JOYSTICK_IN_EPNUM, (uint8_t *)&rep, sizeof(joystick_report_t)); + usbStartTransmitI(&USB_DRIVER, JOYSTICK_IN_EPNUM, (uint8_t *)report, sizeof(report_joystick_t)); osalSysUnlock(); -} - #endif +} diff --git a/tmk_core/protocol/host.c b/tmk_core/protocol/host.c index 53854b94fb0..99298ad6d68 100644 --- a/tmk_core/protocol/host.c +++ b/tmk_core/protocol/host.c @@ -24,6 +24,10 @@ along with this program. If not, see . #include "debug.h" #include "digitizer.h" +#ifdef JOYSTICK_ENABLE +# include "joystick.h" +#endif + #ifdef BLUETOOTH_ENABLE # include "outputselect.h" # ifdef BLUETOOTH_BLUEFRUIT_LE @@ -161,6 +165,58 @@ void host_consumer_send(uint16_t report) { (*driver->send_extra)(REPORT_ID_CONSUMER, report); } +#ifdef JOYSTICK_ENABLE +void host_joystick_send(joystick_t *joystick) { + if (!driver) return; + + report_joystick_t report = { +# if JOYSTICK_AXES_COUNT > 0 + .axes = + { + joystick->axes[0], + +# if JOYSTICK_AXES_COUNT >= 2 + joystick->axes[1], +# endif +# if JOYSTICK_AXES_COUNT >= 3 + joystick->axes[2], +# endif +# if JOYSTICK_AXES_COUNT >= 4 + joystick->axes[3], +# endif +# if JOYSTICK_AXES_COUNT >= 5 + joystick->axes[4], +# endif +# if JOYSTICK_AXES_COUNT >= 6 + joystick->axes[5], +# endif + }, +# endif + +# if JOYSTICK_BUTTON_COUNT > 0 + .buttons = + { + joystick->buttons[0], + +# if JOYSTICK_BUTTON_COUNT > 8 + joystick->buttons[1], +# endif +# if JOYSTICK_BUTTON_COUNT > 16 + joystick->buttons[2], +# endif +# if JOYSTICK_BUTTON_COUNT > 24 + joystick->buttons[3], +# endif + }, +# endif + }; + + send_joystick(&report); +} +#endif + +__attribute__((weak)) void send_joystick(report_joystick_t *report) {} + void host_digitizer_send(digitizer_t *digitizer) { if (!driver) return; diff --git a/tmk_core/protocol/host_driver.h b/tmk_core/protocol/host_driver.h index 680d9727d37..ae6e40ddc38 100644 --- a/tmk_core/protocol/host_driver.h +++ b/tmk_core/protocol/host_driver.h @@ -31,4 +31,5 @@ typedef struct { void (*send_programmable_button)(uint32_t); } host_driver_t; +void send_joystick(report_joystick_t *report); void send_digitizer(report_digitizer_t *report); diff --git a/tmk_core/protocol/lufa/lufa.c b/tmk_core/protocol/lufa/lufa.c index 2a3f5fd8839..6012d96fd59 100644 --- a/tmk_core/protocol/lufa/lufa.c +++ b/tmk_core/protocol/lufa/lufa.c @@ -77,10 +77,6 @@ extern keymap_config_t keymap_config; # include "raw_hid.h" #endif -#ifdef JOYSTICK_ENABLE -# include "joystick.h" -#endif - uint8_t keyboard_idle = 0; /* 0: Boot Protocol, 1: Report Protocol(default) */ uint8_t keyboard_protocol = 1; @@ -261,51 +257,10 @@ static void Console_Task(void) { /******************************************************************************* * Joystick ******************************************************************************/ +void send_joystick(report_joystick_t *report) { #ifdef JOYSTICK_ENABLE -void send_joystick_packet(joystick_t *joystick) { uint8_t timeout = 255; - static joystick_report_t r; - r = (joystick_report_t) { -# if JOYSTICK_AXES_COUNT > 0 - .axes = - { joystick->axes[0], - -# if JOYSTICK_AXES_COUNT >= 2 - joystick->axes[1], -# endif -# if JOYSTICK_AXES_COUNT >= 3 - joystick->axes[2], -# endif -# if JOYSTICK_AXES_COUNT >= 4 - joystick->axes[3], -# endif -# if JOYSTICK_AXES_COUNT >= 5 - joystick->axes[4], -# endif -# if JOYSTICK_AXES_COUNT >= 6 - joystick->axes[5], -# endif - }, -# endif // JOYSTICK_AXES_COUNT>0 - -# if JOYSTICK_BUTTON_COUNT > 0 - .buttons = { - joystick->buttons[0], - -# if JOYSTICK_BUTTON_COUNT > 8 - joystick->buttons[1], -# endif -# if JOYSTICK_BUTTON_COUNT > 16 - joystick->buttons[2], -# endif -# if JOYSTICK_BUTTON_COUNT > 24 - joystick->buttons[3], -# endif - } -# endif // JOYSTICK_BUTTON_COUNT>0 - }; - /* Select the Joystick Report Endpoint */ Endpoint_SelectEndpoint(JOYSTICK_IN_EPNUM); @@ -315,12 +270,12 @@ void send_joystick_packet(joystick_t *joystick) { if (!Endpoint_IsReadWriteAllowed()) return; /* Write Joystick Report Data */ - Endpoint_Write_Stream_LE(&r, sizeof(joystick_report_t), NULL); + Endpoint_Write_Stream_LE(report, sizeof(report_joystick_t), NULL); /* Finalize the stream transfer to send the last packet */ Endpoint_ClearIN(); -} #endif +} /******************************************************************************* * USB Events diff --git a/tmk_core/protocol/report.h b/tmk_core/protocol/report.h index b4dbf92a8fb..8bc4a57c0c7 100644 --- a/tmk_core/protocol/report.h +++ b/tmk_core/protocol/report.h @@ -245,7 +245,7 @@ typedef struct { #if JOYSTICK_BUTTON_COUNT > 0 uint8_t buttons[(JOYSTICK_BUTTON_COUNT - 1) / 8 + 1]; #endif -} __attribute__((packed)) joystick_report_t; +} __attribute__((packed)) report_joystick_t; /* keycode to system usage */ static inline uint16_t KEYCODE2SYSTEM(uint8_t key) { From e021fe90b1226eabc618cd5d42acfd2ba7a674fa Mon Sep 17 00:00:00 2001 From: Zicodia <82699172+Z1codia@users.noreply.github.com> Date: Tue, 27 Sep 2022 04:16:03 -0500 Subject: [PATCH 02/34] [Keyboard] Add TKLFRLNRLMLAO (#18487) Co-authored-by: Drashna Jaelre --- keyboards/zicodia/tklfrlnrlmlao/config.h | 20 +++++ keyboards/zicodia/tklfrlnrlmlao/info.json | 36 +++++++++ .../tklfrlnrlmlao/keymaps/default/keymap.c | 79 ++++++++++++++++++ .../tklfrlnrlmlao/keymaps/via/keymap.c | 80 +++++++++++++++++++ .../tklfrlnrlmlao/keymaps/via/rules.mk | 1 + keyboards/zicodia/tklfrlnrlmlao/readme.md | 38 +++++++++ keyboards/zicodia/tklfrlnrlmlao/rules.mk | 1 + 7 files changed, 255 insertions(+) create mode 100644 keyboards/zicodia/tklfrlnrlmlao/config.h create mode 100644 keyboards/zicodia/tklfrlnrlmlao/info.json create mode 100644 keyboards/zicodia/tklfrlnrlmlao/keymaps/default/keymap.c create mode 100644 keyboards/zicodia/tklfrlnrlmlao/keymaps/via/keymap.c create mode 100644 keyboards/zicodia/tklfrlnrlmlao/keymaps/via/rules.mk create mode 100644 keyboards/zicodia/tklfrlnrlmlao/readme.md create mode 100644 keyboards/zicodia/tklfrlnrlmlao/rules.mk diff --git a/keyboards/zicodia/tklfrlnrlmlao/config.h b/keyboards/zicodia/tklfrlnrlmlao/config.h new file mode 100644 index 00000000000..58f2df252b3 --- /dev/null +++ b/keyboards/zicodia/tklfrlnrlmlao/config.h @@ -0,0 +1,20 @@ +// Copyright 2022 Zicodia (@Zicodia) +// SPDX-License-Identifier: GPL-2.0-or-later + +#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 diff --git a/keyboards/zicodia/tklfrlnrlmlao/info.json b/keyboards/zicodia/tklfrlnrlmlao/info.json new file mode 100644 index 00000000000..fcecd426207 --- /dev/null +++ b/keyboards/zicodia/tklfrlnrlmlao/info.json @@ -0,0 +1,36 @@ +{ + "manufacturer": "Zicodia", + "keyboard_name": "TKLFRLNRLMLAO", + "maintainer": "Zicodia", + "bootloader": "atmel-dfu", + "diode_direction": "COL2ROW", + "features": { + "bootmagic": true, + "command": false, + "console": false, + "extrakey": true, + "mousekey": true, + "nkro": true + }, + "matrix_pins": { + "cols": ["F1", "F4", "F0", "F5", "C7", "F6", "F7", "B6", "D6", "D4"], + "rows": ["D5", "B5", "B4", "D7"] + }, + "usb": { + "vid": "0x4A4C", + "pid": "0x0000", + "device_version": "1.0.0" + }, + "processor": "atmega32u4", + "url": "https://github.com/Zicodia", + "layouts": { + "LAYOUT_all": { + "layout": [ + { "matrix": [0, 0], "x": 0, "y": 0 }, { "matrix": [0, 1], "x": 1.25, "y": 0 }, { "matrix": [0, 2], "x": 2.25, "y": 0 }, { "matrix": [0, 3], "x": 3.25, "y": 0 }, { "matrix": [0, 4], "x": 4.5, "y": 0 }, { "matrix": [0, 5], "x": 5.5, "y": 0 }, { "matrix": [0, 6], "x": 6.5, "y": 0 }, { "matrix": [0, 7], "x": 7.75, "y": 0 }, { "matrix": [0, 8], "x": 8.75, "y": 0 }, { "matrix": [0, 9], "x": 9.75, "y": 0 }, + { "matrix": [1, 0], "x": 0, "y": 1.25 }, { "matrix": [1, 1], "x": 1, "y": 1.25 }, { "matrix": [1, 2], "x": 2, "y": 1.25 }, { "matrix": [1, 3], "x": 3, "y": 1.25 }, { "matrix": [1, 4], "x": 0, "y": 1.25 }, { "matrix": [1, 5], "x": 0, "y": 1.25 }, { "matrix": [1, 6], "x": 0, "y": 1.25, "w": 1.5 }, { "matrix": [1, 7], "x": 7.75, "y": 1 }, { "matrix": [1, 8], "x": 8.75, "y": 1 }, { "matrix": [1, 9], "x": 9.75, "y": 1 }, + { "matrix": [2, 0], "x": 0, "y": 2.25, "w": 1.5 }, { "matrix": [2, 1], "x": 1, "y": 2.25 }, { "matrix": [2, 2], "x": 2, "y": 2.25 }, { "matrix": [2, 3], "x": 3, "y": 2.25 }, { "matrix": [2, 4], "x": 0, "y": 2.25 }, { "matrix": [2, 5], "x": 0, "y": 2.25 }, { "matrix": [2, 6], "x": 0, "y": 2.25 }, { "matrix": [2, 8], "x": 8.75, "y": 2.25 }, + { "matrix": [3, 0], "x": 0, "y": 3.25, "w": 1.25 }, { "matrix": [3, 1], "x": 1, "y": 3.25 }, { "matrix": [3, 3], "x": 3, "y": 3.25, "w": 3 }, { "matrix": [3, 5], "x": 0, "y": 3.25 }, { "matrix": [3, 6], "x": 0, "y": 3.25, "w":1.25 }, { "matrix": [3, 7], "x": 0, "y": 3.25 }, { "matrix": [3, 8], "x": 7.75, "y": 3.25 }, { "matrix": [3, 9], "x": 8.75, "y": 3.25 } + ] + } + } +} \ No newline at end of file diff --git a/keyboards/zicodia/tklfrlnrlmlao/keymaps/default/keymap.c b/keyboards/zicodia/tklfrlnrlmlao/keymaps/default/keymap.c new file mode 100644 index 00000000000..12edec5bdb3 --- /dev/null +++ b/keyboards/zicodia/tklfrlnrlmlao/keymaps/default/keymap.c @@ -0,0 +1,79 @@ +// Copyright 2022 Zicodia (@Zicodia) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ Q │| W │ E │ R │| T │ Y │ U │ | I │ O │ P │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ | K │ L │ENT│ + * │ A │ S │ D │ F | G │ H │ J │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │Z(SF)│ X │ C │ V │ B │ N │ M │ │UP │ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │CTRL│ALT│ SPACE │WIN│MO1 │ |LFT│DWN│RT │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_all( + 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_ENT, + SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ) + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ 1 │| 2 │ 3 │ 4 │| 5 │ 6 │ 7 │ | 8 │ 9 │ 0 │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ | [ │ ] │ \ │ + * │TAB│ │ │ | - │ = │BSPC │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │ │ │ │ │ │ ; │ ' │ │SFT│ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │ │ │ │MO2│ │ | , │ . │ / │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [1] = LAYOUT_all( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_BSPC, KC_LBRC, KC_RBRC, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_RSFT, + KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_COMM, KC_DOT, KC_SLSH + ) + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ESC│|F1 │F2 │F3 │|F4 │F5 │F6 │ |F7 │F8 │F9 │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ |F10│F11│F12│ + * │ │ │ │ | │ │ │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │ │ │ │ │ │ │ │ │ │ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │ │ │ │ │ │ | │ │ │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [2] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + ) + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ │| │ │ │| │ │ │ | │ │ │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ | │ │ │ + * │ │ │ │ | │ │ │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │ │ │ │ │ │ │ │ │ │ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │ │ │ │ │ │ | │ │ │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [4] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/zicodia/tklfrlnrlmlao/keymaps/via/keymap.c b/keyboards/zicodia/tklfrlnrlmlao/keymaps/via/keymap.c new file mode 100644 index 00000000000..a0e27e92081 --- /dev/null +++ b/keyboards/zicodia/tklfrlnrlmlao/keymaps/via/keymap.c @@ -0,0 +1,80 @@ +// Copyright 2022 Zicodia (@Zicodia) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + /* ANSI style + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ Q │| W │ E │ R │| T │ Y │ U │ | I │ O │ P │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ | K │ L │ENT│ + * │ A │ S │ D │ F | G │ H │ J │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │Z(SF)│ X │ C │ V │ B │ N │ M │ │UP │ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │CTRL│ALT│ SPACE │WIN│MO1 │ |LFT│DWN│RT │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [0] = LAYOUT_all( + 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_ENT, + SFT_T(KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_UP, + KC_LCTL, KC_LALT, KC_SPC, KC_RGUI, MO(1), KC_LEFT, KC_DOWN, KC_RGHT + ), + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ 1 │| 2 │ 3 │ 4 │| 5 │ 6 │ 7 │ | 8 │ 9 │ 0 │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ | [ │ ] │ \ │ + * │TAB│ │ │ | - │ = │BSPC │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │ │ │ │ │ │ ; │ ' │ │SFT│ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │ │ │ │MO2│ │ | , │ . │ / │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [1] = LAYOUT_all( + KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, + KC_TAB, KC_TRNS, KC_TRNS, KC_TRNS, KC_MINS, KC_EQL, KC_BSPC, KC_LBRC, KC_RBRC, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SCLN, KC_QUOT, KC_RSFT, + KC_TRNS, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_COMM, KC_DOT, KC_SLSH + ), + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ESC│|F1 │F2 │F3 │|F4 │F5 │F6 │ |F7 │F8 │F9 │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ |F10│F11│F12│ + * │ │ │ │ | │ │ │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │ │ │ │ │ │ │ │ │ │ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │ │ │ │ │ │ | │ │ │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [2] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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 + ), + /* + * ┌───┐┌───┬───┬───┐┌───┬───┬───┐ ┌───┬───┬───┐ + * │ │| │ │ │| │ │ │ | │ │ │ + * └───┘└───┴───┴───┘└───┴───┴───┘ ├───┼───┼───┤ + * ┌───┬───┬───┬───┬───┬───┬─────┐ | │ │ │ + * │ │ │ │ | │ │ │ └───┴───┴───┘ + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬───┤ ┌───┐ + * │ │ │ │ │ │ │ │ │ │ + * ├────┬┴──┬┴───┴───┴──┬┴──┬┴───┤ ┌───┼───┼───┐ + * │ │ │ │ │ │ | │ │ │ + * └────┴───┴───────────┴───┴────┘ └───┴───┴───┘ + */ + [3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/zicodia/tklfrlnrlmlao/keymaps/via/rules.mk b/keyboards/zicodia/tklfrlnrlmlao/keymaps/via/rules.mk new file mode 100644 index 00000000000..036bd6d1c3e --- /dev/null +++ b/keyboards/zicodia/tklfrlnrlmlao/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes \ No newline at end of file diff --git a/keyboards/zicodia/tklfrlnrlmlao/readme.md b/keyboards/zicodia/tklfrlnrlmlao/readme.md new file mode 100644 index 00000000000..393503c550f --- /dev/null +++ b/keyboards/zicodia/tklfrlnrlmlao/readme.md @@ -0,0 +1,38 @@ +# TKLFRLNRLMLAO "LMAO" + +![TKLFRLNRLMLAO "LMAO"](https://i.imgur.com/rmHpYEyh.jpeg) + +A "totally normal" TKL. + +This keyboard is a unique 40% keyboard, designed with form in mind over function. Purely designed to immitate the TKL layout in a small form factor. + +What the name means: +- TKL = Ten-Key-Less +- FRL = Function-Row-Less +- NRL = Number-Row-Less +- ML = Modifier-less +- AO = Alpha-Only + +Additionally, a WKL (Windows-Key-Less) option is available, which results in the variation WKLTKLFRLNRLMLAO "WLMAO" + +* Keyboard Maintainer: [Zicodia](https://github.com/Zicodia) +* Hardware Supported: TKLFRLNRLMLAO PCB +* Hardware Availability: TBA + +Make example for this keyboard (after setting up your build environment): + + make zicodia/tklfrlnrlmlao:default + +Flashing example for this keyboard: + + make zicodia/tklfrlnrlmlao: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/zicodia/tklfrlnrlmlao/rules.mk b/keyboards/zicodia/tklfrlnrlmlao/rules.mk new file mode 100644 index 00000000000..6e7633bfe01 --- /dev/null +++ b/keyboards/zicodia/tklfrlnrlmlao/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank From cad1547ee63165b8c140c44cc0f4a2106ce21001 Mon Sep 17 00:00:00 2001 From: Arturo Avila <69410272+ADPenrose@users.noreply.github.com> Date: Tue, 27 Sep 2022 04:16:23 -0500 Subject: [PATCH 03/34] [Keyboard] Add Obi keyboard (#18489) --- keyboards/adpenrose/obi/config.h | 68 ++++++++++++++++++ keyboards/adpenrose/obi/info.json | 70 +++++++++++++++++++ .../adpenrose/obi/keymaps/default/keymap.c | 41 +++++++++++ .../adpenrose/obi/keymaps/default/rules.mk | 1 + keyboards/adpenrose/obi/keymaps/via/keymap.c | 41 +++++++++++ keyboards/adpenrose/obi/keymaps/via/rules.mk | 3 + keyboards/adpenrose/obi/obi.c | 5 ++ keyboards/adpenrose/obi/obi.h | 26 +++++++ keyboards/adpenrose/obi/readme.md | 29 ++++++++ keyboards/adpenrose/obi/rules.mk | 19 +++++ 10 files changed, 303 insertions(+) create mode 100644 keyboards/adpenrose/obi/config.h create mode 100644 keyboards/adpenrose/obi/info.json create mode 100644 keyboards/adpenrose/obi/keymaps/default/keymap.c create mode 100644 keyboards/adpenrose/obi/keymaps/default/rules.mk create mode 100644 keyboards/adpenrose/obi/keymaps/via/keymap.c create mode 100644 keyboards/adpenrose/obi/keymaps/via/rules.mk create mode 100644 keyboards/adpenrose/obi/obi.c create mode 100644 keyboards/adpenrose/obi/obi.h create mode 100644 keyboards/adpenrose/obi/readme.md create mode 100644 keyboards/adpenrose/obi/rules.mk diff --git a/keyboards/adpenrose/obi/config.h b/keyboards/adpenrose/obi/config.h new file mode 100644 index 00000000000..c1c5ea9f30d --- /dev/null +++ b/keyboards/adpenrose/obi/config.h @@ -0,0 +1,68 @@ +// Copyright 2022 Arturo Avila (@ADPenrose) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "config_common.h" + +/* key matrix size */ +#define MATRIX_ROWS 4 +#define MATRIX_COLS 14 + +/* + * 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 { F4, F5, C7, C6 } +#define MATRIX_COL_PINS { F6, B7, B6, B4, B5, D6, D5, D3, D7, D4, D2, D1, D0, B0 } + +/* COL2ROW, ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/*Rotary encoder - set the resolution fitting your encoder. +Most will need a value of 4. If 1 encoder click results in 2 keycodes sent +increase the value. If you need 2 clicks for 1 keycode, decrease*/ +#define ENCODER_RESOLUTION 4 +#define ENCODERS_PAD_A { F1 } +#define ENCODERS_PAD_B { F0 } +#define TAP_CODE_DELAY 10 + +/* Underglow options: */ +#define RGB_DI_PIN F7 +#ifdef RGB_DI_PIN +# define RGBLED_NUM 16 +# define RGBLIGHT_HUE_STEP 8 +# define RGBLIGHT_SAT_STEP 8 +# define RGBLIGHT_VAL_STEP 8 +# 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_BREATHING +# define RGBLIGHT_EFFECT_RAINBOW_MOOD +# define RGBLIGHT_EFFECT_RAINBOW_SWIRL +# define RGBLIGHT_EFFECT_SNAKE +# define RGBLIGHT_EFFECT_KNIGHT +# define RGBLIGHT_EFFECT_CHRISTMAS +# define RGBLIGHT_EFFECT_STATIC_GRADIENT +# define RGBLIGHT_EFFECT_RGB_TEST +# define RGBLIGHT_EFFECT_ALTERNATING +/*== customize breathing effect ==*/ +/*==== (DEFAULT) use fixed table instead of exp() and sin() ====*/ +//# define RGBLIGHT_BREATHE_TABLE_SIZE 256 // 256(default) or 128 or 64 +/*==== use exp() and sin() ====*/ +//# define RGBLIGHT_EFFECT_BREATHE_CENTER 1.85 // 1 to 2.7 +//# define RGBLIGHT_EFFECT_BREATHE_MAX 255 // 0 to 255 +#endif + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* Bootmagic Lite key configuration */ +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 0 + diff --git a/keyboards/adpenrose/obi/info.json b/keyboards/adpenrose/obi/info.json new file mode 100644 index 00000000000..b1afa0bc0df --- /dev/null +++ b/keyboards/adpenrose/obi/info.json @@ -0,0 +1,70 @@ +{ + "manufacturer": "ADPenrose", + "keyboard_name": "Obi", + "maintainer": "Arturo Avila", + "usb": { + "device_version": "1.0.0", + "pid": "0x0002", + "vid": "0x4450" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"label":"F1", "x":0, "y":0}, + {"label":"Tab", "x":1.25, "y":0, "w":1.5}, + {"label":"Q", "x":2.75, "y":0}, + {"label":"W", "x":3.75, "y":0}, + {"label":"E", "x":4.75, "y":0}, + {"label":"R", "x":5.75, "y":0}, + {"label":"T", "x":6.75, "y":0}, + {"label":"Y", "x":7.75, "y":0}, + {"label":"U", "x":8.75, "y":0}, + {"label":"I", "x":9.75, "y":0}, + {"label":"O", "x":10.75, "y":0}, + {"label":"P", "x":11.75, "y":0}, + {"label":"{", "x":12.75, "y":0}, + {"label":"Backspace", "x":13.75, "y":0, "w":1.5}, + + {"label":"F2", "x":0, "y":1}, + {"label":"Caps Lock", "x":1.25, "y":1, "w":1.75}, + {"label":"A", "x":3, "y":1}, + {"label":"S", "x":4, "y":1}, + {"label":"D", "x":5, "y":1}, + {"label":"F", "x":6, "y":1}, + {"label":"G", "x":7, "y":1}, + {"label":"H", "x":8, "y":1}, + {"label":"J", "x":9, "y":1}, + {"label":"K", "x":10, "y":1}, + {"label":"L", "x":11, "y":1}, + {"label":":", "x":12, "y":1}, + {"label":"Enter", "x":13, "y":1, "w":2.25}, + + {"label":"F3", "x":0, "y":2}, + {"label":"Shift", "x":1.25, "y":2, "w":2.25}, + {"label":"Z", "x":3.5, "y":2}, + {"label":"X", "x":4.5, "y":2}, + {"label":"C", "x":5.5, "y":2}, + {"label":"V", "x":6.5, "y":2}, + {"label":"B", "x":7.5, "y":2}, + {"label":"N", "x":8.5, "y":2}, + {"label":"M", "x":9.5, "y":2}, + {"label":"<", "x":10.5, "y":2}, + {"label":"Shift", "x":11.5, "y":2, "w":1.75}, + {"label":"Up", "x":13.25, "y":2}, + {"label":"?", "x":14.25, "y":2}, + + {"label":"F4", "x":0, "y":3}, + {"label":"Ctrl", "x":1.25, "y":3, "w":1.25}, + {"label":"Win", "x":2.5, "y":3}, + {"label":"Alt", "x":3.5, "y":3, "w":1.25}, + {"label":"Spacebar", "x":4.75, "y":3, "w":2.25}, + {"label":"Spacebar", "x":7, "y":3, "w":1.25}, + {"label":"Spacebar", "x":8.25, "y":3, "w":2.75}, + {"label":"Alt", "x":11, "y":3, "w":1.25}, + {"label":"Left", "x":12.25, "y":3}, + {"label":"Down", "x":13.25, "y":3}, + {"label":"Right", "x":14.25, "y":3} + ] + } + } +} diff --git a/keyboards/adpenrose/obi/keymaps/default/keymap.c b/keyboards/adpenrose/obi/keymaps/default/keymap.c new file mode 100644 index 00000000000..6d55dc73fb2 --- /dev/null +++ b/keyboards/adpenrose/obi/keymaps/default/keymap.c @@ -0,0 +1,41 @@ +// Copyright 2022 Arturo Avila (@ADPenrose) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_all( + KC_ESC, 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_BSPC, + KC_MUTE, 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_VOLU, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_RSFT, KC_UP, KC_SLSH, + KC_VOLD, KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_all( + KC_DEL, KC_TRNS, 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_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_QUOT, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_all( + KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_RBRC, + KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif diff --git a/keyboards/adpenrose/obi/keymaps/default/rules.mk b/keyboards/adpenrose/obi/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/adpenrose/obi/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/adpenrose/obi/keymaps/via/keymap.c b/keyboards/adpenrose/obi/keymaps/via/keymap.c new file mode 100644 index 00000000000..efede949b86 --- /dev/null +++ b/keyboards/adpenrose/obi/keymaps/via/keymap.c @@ -0,0 +1,41 @@ +// Copyright 2022 Arturo Avila (@ADPenrose) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [0] = LAYOUT_all( + KC_ESC, 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_BSPC, + KC_MUTE, 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_VOLU, KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_RSFT, KC_UP, KC_SLSH, + KC_VOLD, KC_LCTL, KC_LGUI, KC_LALT, MO(1), KC_SPC, KC_SPC, MO(2), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT_all( + KC_DEL, KC_TRNS, 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_MPLY, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_QUOT, KC_BSLS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DOT, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [2] = LAYOUT_all( + KC_TILD, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_RBRC, + KC_TRNS, QK_BOOT, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + [3] = LAYOUT_all( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif diff --git a/keyboards/adpenrose/obi/keymaps/via/rules.mk b/keyboards/adpenrose/obi/keymaps/via/rules.mk new file mode 100644 index 00000000000..1189f4ad192 --- /dev/null +++ b/keyboards/adpenrose/obi/keymaps/via/rules.mk @@ -0,0 +1,3 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/adpenrose/obi/obi.c b/keyboards/adpenrose/obi/obi.c new file mode 100644 index 00000000000..2efd4eba472 --- /dev/null +++ b/keyboards/adpenrose/obi/obi.c @@ -0,0 +1,5 @@ +// Copyright 2022 Arturo Avila (@ADPenrose) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "obi.h" + diff --git a/keyboards/adpenrose/obi/obi.h b/keyboards/adpenrose/obi/obi.h new file mode 100644 index 00000000000..09bf9b29fcd --- /dev/null +++ b/keyboards/adpenrose/obi/obi.h @@ -0,0 +1,26 @@ +// Copyright 2022 Arturo Avila (@ADPenrose) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "quantum.h" + +/* 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_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2C, K2D, \ + K30, K31, K32, K33, K35, K36, K37, K3A, K3B, K3C, K3D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, KC_NO, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, KC_NO, K2C, K2D }, \ + { K30, K31, K32, K33, KC_NO, K35, K36, K37, KC_NO, KC_NO, K3A, K3B, K3C, K3D } \ +} diff --git a/keyboards/adpenrose/obi/readme.md b/keyboards/adpenrose/obi/readme.md new file mode 100644 index 00000000000..59c0b796ae4 --- /dev/null +++ b/keyboards/adpenrose/obi/readme.md @@ -0,0 +1,29 @@ +# Obi + +![obi](https://i.imgur.com/btQPol1h.png) + +A 40% keyboard inspired by the TMOv2 and Nightmare boards. + +# General info + +* Keyboard Maintainer: [Arturo Avila](https://github.com/ADPenrose) +* Hardware Supported: Obi v1 PCB +* Hardware Availability: [Arturo Avila](https://github.com/ADPenrose) + +Make example for this keyboard (after setting up your build environment): + + make adpenrose/obi:default + +Flashing example for this keyboard: + + make adpenrose/obi: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/adpenrose/obi/rules.mk b/keyboards/adpenrose/obi/rules.mk new file mode 100644 index 00000000000..94ce0d7a665 --- /dev/null +++ b/keyboards/adpenrose/obi/rules.mk @@ -0,0 +1,19 @@ +# MCU name +MCU = atmega32u4 + +# Bootloader selection +BOOTLOADER = caterina + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = no # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = no # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = yes # Encoder functionality From e1980726badbbe77fa1ff8be74334b7a993a955d Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 27 Sep 2022 02:16:35 -0700 Subject: [PATCH 04/34] Linworks FAve 84H Layout Refactor (#18496) --- keyboards/linworks/fave84h/fave84h.h | 55 ++++- keyboards/linworks/fave84h/info.json | 195 +++++++++++++++++- .../linworks/fave84h/keymaps/default/keymap.c | 28 +-- .../linworks/fave84h/keymaps/via/keymap.c | 56 ++--- 4 files changed, 280 insertions(+), 54 deletions(-) diff --git a/keyboards/linworks/fave84h/fave84h.h b/keyboards/linworks/fave84h/fave84h.h index 39f85c159cf..1d97f972360 100644 --- a/keyboards/linworks/fave84h/fave84h.h +++ b/keyboards/linworks/fave84h/fave84h.h @@ -16,19 +16,54 @@ along with this program. If not, see . #include "quantum.h" +#define ___ KC_NO + +/* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │00 │ │02 │03 │04 │05 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ │0E │0F │0G │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───────┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │3C │ │1E │1F │1G │ │1D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ └───────┘ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2E │2F │2G │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4C │ │4F │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ + * │50 │51 │52 │55 │5A │5C │5D │ │5E │5F │5G │ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + */ + /* FAve 84H Keymap Definitions */ -#define LAYOUT( \ +#define LAYOUT_tkl_ansi_tsangan_split_bs( \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3C, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4F, \ + K50, K51, K52, K55, K5A, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, ___, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, ___, ___, ___ }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, ___, K4C, ___, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, K55, ___, ___, ___, ___, K5A, ___, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_tkl_ansi_tsangan( \ K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4F, \ - K50, K51, K52, K55, K5A, K5C, K5D, K5E, K5F, K5G \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4F, \ + K50, K51, K52, K55, K5A, K5C, K5D, K5E, K5F, K5G \ ) { \ - { K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, KC_NO, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ - { K50, K51, K52, KC_NO, KC_NO, K55, KC_NO, KC_NO, KC_NO, KC_NO, K5A, KC_NO, K5C, K5D, K5E, K5F, K5G } \ + { K00, ___, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, ___, ___, ___ }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, ___, K4C, ___, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, K55, ___, ___, ___, ___, K5A, ___, K5C, K5D, K5E, K5F, K5G } \ } diff --git a/keyboards/linworks/fave84h/info.json b/keyboards/linworks/fave84h/info.json index 04b5cabd31a..4447c404f8f 100644 --- a/keyboards/linworks/fave84h/info.json +++ b/keyboards/linworks/fave84h/info.json @@ -8,9 +8,200 @@ "pid": "0x0004", "device_version": "0.0.1" }, + "community_layouts": [ + "tkl_ansi_tsangan" + ], "layouts": { - "LAYOUT": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Delete", "x":14, "y":1.25}, {"label":"Insert", "x":15.25, "y":1.25}, {"label":"Home", "x":16.25, "y":1.25}, {"label":"PgUp", "x":17.25, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"End", "x":16.25, "y":2.25}, {"label":"PgDn", "x":17.25, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, {"label":"Win", "x":1.5, "y":5.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, {"x":4, "y":5.25, "w":7}, {"label":"Alt", "x":11, "y":5.25, "w":1.5}, {"label":"Fn", "x":12.5, "y":5.25}, {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, {"label":"\u2190", "x":15.25, "y":5.25}, {"label":"\u2193", "x":16.25, "y":5.25}, {"label":"\u2192", "x":17.25, "y":5.25}] + "LAYOUT_tkl_ansi_tsangan_split_bs": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2@", "x":2, "y":1.25}, + {"label":"3#", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25}, + {"label":"Delete", "x":14, "y":1.25}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"\\|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":",<", "x":9.25, "y":4.25}, + {"label":".>", "x":10.25, "y":4.25}, + {"label":"/?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, + {"label":"Space", "x":4, "y":5.25, "w":7}, + {"label":"Alt", "x":11, "y":5.25, "w":1.5}, + {"label":"Fn", "x":12.5, "y":5.25}, + {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] + }, + "LAYOUT_tkl_ansi_tsangan": { + "layout": [ + {"label":"Esc", "x":0, "y":0}, + {"label":"F1", "x":2, "y":0}, + {"label":"F2", "x":3, "y":0}, + {"label":"F3", "x":4, "y":0}, + {"label":"F4", "x":5, "y":0}, + {"label":"F5", "x":6.5, "y":0}, + {"label":"F6", "x":7.5, "y":0}, + {"label":"F7", "x":8.5, "y":0}, + {"label":"F8", "x":9.5, "y":0}, + {"label":"F9", "x":11, "y":0}, + {"label":"F10", "x":12, "y":0}, + {"label":"F11", "x":13, "y":0}, + {"label":"F12", "x":14, "y":0}, + {"label":"PrtSc", "x":15.25, "y":0}, + {"label":"Scroll Lock", "x":16.25, "y":0}, + {"label":"Pause", "x":17.25, "y":0}, + + {"label":"`~", "x":0, "y":1.25}, + {"label":"1!", "x":1, "y":1.25}, + {"label":"2@", "x":2, "y":1.25}, + {"label":"3#", "x":3, "y":1.25}, + {"label":"4$", "x":4, "y":1.25}, + {"label":"5%", "x":5, "y":1.25}, + {"label":"6^", "x":6, "y":1.25}, + {"label":"7&", "x":7, "y":1.25}, + {"label":"8*", "x":8, "y":1.25}, + {"label":"9(", "x":9, "y":1.25}, + {"label":"0)", "x":10, "y":1.25}, + {"label":"-_", "x":11, "y":1.25}, + {"label":"=+", "x":12, "y":1.25}, + {"label":"Backspace", "x":13, "y":1.25, "w":2}, + {"label":"Insert", "x":15.25, "y":1.25}, + {"label":"Home", "x":16.25, "y":1.25}, + {"label":"PgUp", "x":17.25, "y":1.25}, + + {"label":"Tab", "x":0, "y":2.25, "w":1.5}, + {"label":"Q", "x":1.5, "y":2.25}, + {"label":"W", "x":2.5, "y":2.25}, + {"label":"E", "x":3.5, "y":2.25}, + {"label":"R", "x":4.5, "y":2.25}, + {"label":"T", "x":5.5, "y":2.25}, + {"label":"Y", "x":6.5, "y":2.25}, + {"label":"U", "x":7.5, "y":2.25}, + {"label":"I", "x":8.5, "y":2.25}, + {"label":"O", "x":9.5, "y":2.25}, + {"label":"P", "x":10.5, "y":2.25}, + {"label":"[{", "x":11.5, "y":2.25}, + {"label":"]}", "x":12.5, "y":2.25}, + {"label":"\\|", "x":13.5, "y":2.25, "w":1.5}, + {"label":"Delete", "x":15.25, "y":2.25}, + {"label":"End", "x":16.25, "y":2.25}, + {"label":"PgDn", "x":17.25, "y":2.25}, + + {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, + {"label":"A", "x":1.75, "y":3.25}, + {"label":"S", "x":2.75, "y":3.25}, + {"label":"D", "x":3.75, "y":3.25}, + {"label":"F", "x":4.75, "y":3.25}, + {"label":"G", "x":5.75, "y":3.25}, + {"label":"H", "x":6.75, "y":3.25}, + {"label":"J", "x":7.75, "y":3.25}, + {"label":"K", "x":8.75, "y":3.25}, + {"label":"L", "x":9.75, "y":3.25}, + {"label":";:", "x":10.75, "y":3.25}, + {"label":"'\"", "x":11.75, "y":3.25}, + {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, + + {"label":"Shift", "x":0, "y":4.25, "w":2.25}, + {"label":"Z", "x":2.25, "y":4.25}, + {"label":"X", "x":3.25, "y":4.25}, + {"label":"C", "x":4.25, "y":4.25}, + {"label":"V", "x":5.25, "y":4.25}, + {"label":"B", "x":6.25, "y":4.25}, + {"label":"N", "x":7.25, "y":4.25}, + {"label":"M", "x":8.25, "y":4.25}, + {"label":",<", "x":9.25, "y":4.25}, + {"label":".>", "x":10.25, "y":4.25}, + {"label":"/?", "x":11.25, "y":4.25}, + {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, + {"label":"\u2191", "x":16.25, "y":4.25}, + + {"label":"Ctrl", "x":0, "y":5.25, "w":1.5}, + {"label":"Win", "x":1.5, "y":5.25}, + {"label":"Alt", "x":2.5, "y":5.25, "w":1.5}, + {"label":"Space", "x":4, "y":5.25, "w":7}, + {"label":"Alt", "x":11, "y":5.25, "w":1.5}, + {"label":"Fn", "x":12.5, "y":5.25}, + {"label":"Ctrl", "x":13.5, "y":5.25, "w":1.5}, + {"label":"\u2190", "x":15.25, "y":5.25}, + {"label":"\u2193", "x":16.25, "y":5.25}, + {"label":"\u2192", "x":17.25, "y":5.25} + ] } } } diff --git a/keyboards/linworks/fave84h/keymaps/default/keymap.c b/keyboards/linworks/fave84h/keymaps/default/keymap.c index 9f7b1b40ef8..72234a44f8b 100644 --- a/keyboards/linworks/fave84h/keymaps/default/keymap.c +++ b/keyboards/linworks/fave84h/keymaps/default/keymap.c @@ -21,22 +21,22 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = 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_PSCR, KC_SLCK, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_DEL, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [_LAYER0] = LAYOUT_tkl_ansi_tsangan_split_bs( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_LAYER1] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, - 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_AUDIO_VOL_UP, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK + [_LAYER1] = LAYOUT_tkl_ansi_tsangan_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, + 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_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT ) }; diff --git a/keyboards/linworks/fave84h/keymaps/via/keymap.c b/keyboards/linworks/fave84h/keymaps/via/keymap.c index c319a5c8584..85238100d18 100644 --- a/keyboards/linworks/fave84h/keymaps/via/keymap.c +++ b/keyboards/linworks/fave84h/keymaps/via/keymap.c @@ -23,40 +23,40 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = 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_PSCR, KC_SLCK, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_DEL, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [_LAYER0] = LAYOUT_tkl_ansi_tsangan_split_bs( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_LAYER1] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, - 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_AUDIO_VOL_UP, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK + [_LAYER1] = LAYOUT_tkl_ansi_tsangan_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, + 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_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT ), - [_LAYER2] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + [_LAYER2] = LAYOUT_tkl_ansi_tsangan_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [_LAYER3] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + [_LAYER3] = LAYOUT_tkl_ansi_tsangan_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; From 492c34f8d06517348f1df865c220bb002a775149 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 27 Sep 2022 02:16:51 -0700 Subject: [PATCH 05/34] Linworks FAve 87H Layout Refactor (#18497) --- keyboards/linworks/fave87h/fave87h.h | 55 ++++- keyboards/linworks/fave87h/info.json | 200 +++++++++++++++++- .../linworks/fave87h/keymaps/default/keymap.c | 28 +-- .../linworks/fave87h/keymaps/via/keymap.c | 56 ++--- 4 files changed, 285 insertions(+), 54 deletions(-) diff --git a/keyboards/linworks/fave87h/fave87h.h b/keyboards/linworks/fave87h/fave87h.h index 748dae3ebcd..30e9fc7ac50 100644 --- a/keyboards/linworks/fave87h/fave87h.h +++ b/keyboards/linworks/fave87h/fave87h.h @@ -16,19 +16,54 @@ along with this program. If not, see . #include "quantum.h" +#define ___ KC_NO + +/* + * ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ + * │00 │ │02 │03 │04 │05 │ │06 │07 │08 │09 │ │0A │0B │0C │0D │ │0E │0F │0G │ + * └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───────┐ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │3C │ │1E │1F │1G │ │1D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ └───────┘ + * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ │2E │2F │2G │ + * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ + * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ + * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4C │ │4F │ + * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ + * │50 │51 │52 │55 │59 │5A │5C │5D │ │5E │5F │5G │ + * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ + */ + /* FAve 87H Keymap Definitions */ -#define LAYOUT( \ +#define LAYOUT_tkl_ansi( \ K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \ - K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4F, \ - K50, K51, K52, K55, K59, K5A, K5C, K5D, K5E, K5F, K5G \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4F, \ + K50, K51, K52, K55, K59, K5A, K5C, K5D, K5E, K5F, K5G \ ) { \ - { K00, KC_NO, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ - { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ - { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ - { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, KC_NO, KC_NO }, \ - { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, KC_NO, K4C, KC_NO, KC_NO, K4F, KC_NO }, \ - { K50, K51, K52, KC_NO, KC_NO, K55, KC_NO, KC_NO, KC_NO, K59, K5A, KC_NO, K5C, K5D, K5E, K5F, K5G } \ + { K00, ___, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, ___, K3D, ___, ___, ___ }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, ___, K4C, ___, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, K55, ___, ___, ___, K59, K5A, ___, K5C, K5D, K5E, K5F, K5G } \ +} + +#define LAYOUT_tkl_ansi_split_bs( \ + K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K3C, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \ + K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4C, K4F, \ + K50, K51, K52, K55, K59, K5A, K5C, K5D, K5E, K5F, K5G \ +) { \ + { K00, ___, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, ___, ___, ___ }, \ + { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, ___, K4C, ___, ___, K4F, ___ }, \ + { K50, K51, K52, ___, ___, K55, ___, ___, ___, K59, K5A, ___, K5C, K5D, K5E, K5F, K5G } \ } diff --git a/keyboards/linworks/fave87h/info.json b/keyboards/linworks/fave87h/info.json index 4035dde5ee4..b6a836e0ec9 100644 --- a/keyboards/linworks/fave87h/info.json +++ b/keyboards/linworks/fave87h/info.json @@ -8,9 +8,205 @@ "pid": "0x0003", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_tkl_ansi_split_bs" + }, + "community_layouts": [ + "tkl_ansi" + ], "layouts": { - "LAYOUT": { - "layout": [{"label":"Esc", "x":0, "y":0}, {"label":"F1", "x":2, "y":0}, {"label":"F2", "x":3, "y":0}, {"label":"F3", "x":4, "y":0}, {"label":"F4", "x":5, "y":0}, {"label":"F5", "x":6.5, "y":0}, {"label":"F6", "x":7.5, "y":0}, {"label":"F7", "x":8.5, "y":0}, {"label":"F8", "x":9.5, "y":0}, {"label":"F9", "x":11, "y":0}, {"label":"F10", "x":12, "y":0}, {"label":"F11", "x":13, "y":0}, {"label":"F12", "x":14, "y":0}, {"label":"PrtSc", "x":15.25, "y":0}, {"label":"Scroll Lock", "x":16.25, "y":0}, {"label":"Pause", "x":17.25, "y":0}, {"label":"~", "x":0, "y":1.25}, {"label":"!", "x":1, "y":1.25}, {"label":"@", "x":2, "y":1.25}, {"label":"#", "x":3, "y":1.25}, {"label":"$", "x":4, "y":1.25}, {"label":"%", "x":5, "y":1.25}, {"label":"^", "x":6, "y":1.25}, {"label":"&", "x":7, "y":1.25}, {"label":"*", "x":8, "y":1.25}, {"label":"(", "x":9, "y":1.25}, {"label":")", "x":10, "y":1.25}, {"label":"_", "x":11, "y":1.25}, {"label":"+", "x":12, "y":1.25}, {"label":"Backspace", "x":13, "y":1.25, "w":2}, {"label":"Delete", "x":14, "y":1.25}, {"label":"Insert", "x":15.25, "y":1.25}, {"label":"Home", "x":16.25, "y":1.25}, {"label":"PgUp", "x":17.25, "y":1.25}, {"label":"Tab", "x":0, "y":2.25, "w":1.5}, {"label":"Q", "x":1.5, "y":2.25}, {"label":"W", "x":2.5, "y":2.25}, {"label":"E", "x":3.5, "y":2.25}, {"label":"R", "x":4.5, "y":2.25}, {"label":"T", "x":5.5, "y":2.25}, {"label":"Y", "x":6.5, "y":2.25}, {"label":"U", "x":7.5, "y":2.25}, {"label":"I", "x":8.5, "y":2.25}, {"label":"O", "x":9.5, "y":2.25}, {"label":"P", "x":10.5, "y":2.25}, {"label":"{", "x":11.5, "y":2.25}, {"label":"}", "x":12.5, "y":2.25}, {"label":"|", "x":13.5, "y":2.25, "w":1.5}, {"label":"Delete", "x":15.25, "y":2.25}, {"label":"End", "x":16.25, "y":2.25}, {"label":"PgDn", "x":17.25, "y":2.25}, {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75}, {"label":"A", "x":1.75, "y":3.25}, {"label":"S", "x":2.75, "y":3.25}, {"label":"D", "x":3.75, "y":3.25}, {"label":"F", "x":4.75, "y":3.25}, {"label":"G", "x":5.75, "y":3.25}, {"label":"H", "x":6.75, "y":3.25}, {"label":"J", "x":7.75, "y":3.25}, {"label":"K", "x":8.75, "y":3.25}, {"label":"L", "x":9.75, "y":3.25}, {"label":":", "x":10.75, "y":3.25}, {"label":"\"", "x":11.75, "y":3.25}, {"label":"Enter", "x":12.75, "y":3.25, "w":2.25}, {"label":"Shift", "x":0, "y":4.25, "w":2.25}, {"label":"Z", "x":2.25, "y":4.25}, {"label":"X", "x":3.25, "y":4.25}, {"label":"C", "x":4.25, "y":4.25}, {"label":"V", "x":5.25, "y":4.25}, {"label":"B", "x":6.25, "y":4.25}, {"label":"N", "x":7.25, "y":4.25}, {"label":"M", "x":8.25, "y":4.25}, {"label":"<", "x":9.25, "y":4.25}, {"label":">", "x":10.25, "y":4.25}, {"label":"?", "x":11.25, "y":4.25}, {"label":"Shift", "x":12.25, "y":4.25, "w":2.75}, {"label":"\u2191", "x":16.25, "y":4.25}, {"label":"Ctrl", "x":0, "y":5.25, "w":1.25}, {"label":"Win", "x":1.25, "y":5.25, "w":1.25}, {"label":"Alt", "x":2.5, "y":5.25, "w":1.25}, {"x":3.75, "y":5.25, "w":6.25}, {"label":"Alt", "x":10, "y":5.25, "w":1.25}, {"label":"Win", "x":11.25, "y":5.25, "w":1.25}, {"label":"Fn", "x":12.5, "y":5.25, "w":1.25}, {"label":"Ctrl", "x":13.75, "y":5.25, "w":1.25}, {"label":"\u2190", "x":15.25, "y":5.25}, {"label":"\u2193", "x":16.25, "y":5.25}, {"label":"\u2192", "x":17.25, "y":5.25}] + "LAYOUT_tkl_ansi": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 2, "y": 0 }, + { "label": "F2", "x": 3, "y": 0 }, + { "label": "F3", "x": 4, "y": 0 }, + { "label": "F4", "x": 5, "y": 0 }, + { "label": "F5", "x": 6.5, "y": 0 }, + { "label": "F6", "x": 7.5, "y": 0 }, + { "label": "F7", "x": 8.5, "y": 0 }, + { "label": "F8", "x": 9.5, "y": 0 }, + { "label": "F9", "x": 11, "y": 0 }, + { "label": "F10", "x": 12, "y": 0 }, + { "label": "F11", "x": 13, "y": 0 }, + { "label": "F12", "x": 14, "y": 0 }, + { "label": "PrtSc", "x": 15.25, "y": 0 }, + { "label": "Scroll Lock", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "!", "x": 1, "y": 1.25 }, + { "label": "@", "x": 2, "y": 1.25 }, + { "label": "#", "x": 3, "y": 1.25 }, + { "label": "$", "x": 4, "y": 1.25 }, + { "label": "%", "x": 5, "y": 1.25 }, + { "label": "^", "x": 6, "y": 1.25 }, + { "label": "&", "x": 7, "y": 1.25 }, + { "label": "*", "x": 8, "y": 1.25 }, + { "label": "(", "x": 9, "y": 1.25 }, + { "label": ")", "x": 10, "y": 1.25 }, + { "label": "_", "x": 11, "y": 1.25 }, + { "label": "+", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25, "w": 2 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PgUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "{", "x": 11.5, "y": 2.25 }, + { "label": "}", "x": 12.5, "y": 2.25 }, + { "label": "|", "x": 13.5, "y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PgDn", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ":", "x": 10.75, "y": 3.25 }, + { "label": "\"", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": "<", "x": 9.25, "y": 4.25 }, + { "label": ">", "x": 10.25, "y": 4.25 }, + { "label": "?", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] + }, + "LAYOUT_tkl_ansi_split_bs": { + "layout": [ + { "label": "Esc", "x": 0, "y": 0 }, + { "label": "F1", "x": 2, "y": 0 }, + { "label": "F2", "x": 3, "y": 0 }, + { "label": "F3", "x": 4, "y": 0 }, + { "label": "F4", "x": 5, "y": 0 }, + { "label": "F5", "x": 6.5, "y": 0 }, + { "label": "F6", "x": 7.5, "y": 0 }, + { "label": "F7", "x": 8.5, "y": 0 }, + { "label": "F8", "x": 9.5, "y": 0 }, + { "label": "F9", "x": 11, "y": 0 }, + { "label": "F10", "x": 12, "y": 0 }, + { "label": "F11", "x": 13, "y": 0 }, + { "label": "F12", "x": 14, "y": 0 }, + { "label": "PrtSc", "x": 15.25, "y": 0 }, + { "label": "Scroll Lock", "x": 16.25, "y": 0 }, + { "label": "Pause", "x": 17.25, "y": 0 }, + + { "label": "~", "x": 0, "y": 1.25 }, + { "label": "!", "x": 1, "y": 1.25 }, + { "label": "@", "x": 2, "y": 1.25 }, + { "label": "#", "x": 3, "y": 1.25 }, + { "label": "$", "x": 4, "y": 1.25 }, + { "label": "%", "x": 5, "y": 1.25 }, + { "label": "^", "x": 6, "y": 1.25 }, + { "label": "&", "x": 7, "y": 1.25 }, + { "label": "*", "x": 8, "y": 1.25 }, + { "label": "(", "x": 9, "y": 1.25 }, + { "label": ")", "x": 10, "y": 1.25 }, + { "label": "_", "x": 11, "y": 1.25 }, + { "label": "+", "x": 12, "y": 1.25 }, + { "label": "Backspace", "x": 13, "y": 1.25 }, + { "label": "Delete", "x": 14, "y": 1.25 }, + { "label": "Insert", "x": 15.25, "y": 1.25 }, + { "label": "Home", "x": 16.25, "y": 1.25 }, + { "label": "PgUp", "x": 17.25, "y": 1.25 }, + + { "label": "Tab", "x": 0, "y": 2.25, "w": 1.5 }, + { "label": "Q", "x": 1.5, "y": 2.25 }, + { "label": "W", "x": 2.5, "y": 2.25 }, + { "label": "E", "x": 3.5, "y": 2.25 }, + { "label": "R", "x": 4.5, "y": 2.25 }, + { "label": "T", "x": 5.5, "y": 2.25 }, + { "label": "Y", "x": 6.5, "y": 2.25 }, + { "label": "U", "x": 7.5, "y": 2.25 }, + { "label": "I", "x": 8.5, "y": 2.25 }, + { "label": "O", "x": 9.5, "y": 2.25 }, + { "label": "P", "x": 10.5, "y": 2.25 }, + { "label": "{", "x": 11.5, "y": 2.25 }, + { "label": "}", "x": 12.5, "y": 2.25 }, + { "label": "|", "x": 13.5, "y": 2.25, "w": 1.5 }, + { "label": "Delete", "x": 15.25, "y": 2.25 }, + { "label": "End", "x": 16.25, "y": 2.25 }, + { "label": "PgDn", "x": 17.25, "y": 2.25 }, + + { "label": "Caps Lock", "x": 0, "y": 3.25, "w": 1.75 }, + { "label": "A", "x": 1.75, "y": 3.25 }, + { "label": "S", "x": 2.75, "y": 3.25 }, + { "label": "D", "x": 3.75, "y": 3.25 }, + { "label": "F", "x": 4.75, "y": 3.25 }, + { "label": "G", "x": 5.75, "y": 3.25 }, + { "label": "H", "x": 6.75, "y": 3.25 }, + { "label": "J", "x": 7.75, "y": 3.25 }, + { "label": "K", "x": 8.75, "y": 3.25 }, + { "label": "L", "x": 9.75, "y": 3.25 }, + { "label": ":", "x": 10.75, "y": 3.25 }, + { "label": "\"", "x": 11.75, "y": 3.25 }, + { "label": "Enter", "x": 12.75, "y": 3.25, "w": 2.25 }, + + { "label": "Shift", "x": 0, "y": 4.25, "w": 2.25 }, + { "label": "Z", "x": 2.25, "y": 4.25 }, + { "label": "X", "x": 3.25, "y": 4.25 }, + { "label": "C", "x": 4.25, "y": 4.25 }, + { "label": "V", "x": 5.25, "y": 4.25 }, + { "label": "B", "x": 6.25, "y": 4.25 }, + { "label": "N", "x": 7.25, "y": 4.25 }, + { "label": "M", "x": 8.25, "y": 4.25 }, + { "label": "<", "x": 9.25, "y": 4.25 }, + { "label": ">", "x": 10.25, "y": 4.25 }, + { "label": "?", "x": 11.25, "y": 4.25 }, + { "label": "Shift", "x": 12.25, "y": 4.25, "w": 2.75 }, + { "label": "\u2191", "x": 16.25, "y": 4.25 }, + + { "label": "Ctrl", "x": 0, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 1.25, "y": 5.25, "w": 1.25 }, + { "label": "Alt", "x": 2.5, "y": 5.25, "w": 1.25 }, + { "x": 3.75, "y": 5.25, "w": 6.25 }, + { "label": "Alt", "x": 10, "y": 5.25, "w": 1.25 }, + { "label": "Win", "x": 11.25, "y": 5.25, "w": 1.25 }, + { "label": "Fn", "x": 12.5, "y": 5.25, "w": 1.25 }, + { "label": "Ctrl", "x": 13.75, "y": 5.25, "w": 1.25 }, + { "label": "\u2190", "x": 15.25, "y": 5.25 }, + { "label": "\u2193", "x": 16.25, "y": 5.25 }, + { "label": "\u2192", "x": 17.25, "y": 5.25 } + ] } } } diff --git a/keyboards/linworks/fave87h/keymaps/default/keymap.c b/keyboards/linworks/fave87h/keymaps/default/keymap.c index d5d64a12309..e53b840d761 100644 --- a/keyboards/linworks/fave87h/keymaps/default/keymap.c +++ b/keyboards/linworks/fave87h/keymaps/default/keymap.c @@ -21,22 +21,22 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = 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_PSCR, KC_SLCK, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_DEL, 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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [_LAYER0] = LAYOUT_tkl_ansi_split_bs( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_LAYER1] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, - 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_AUDIO_VOL_UP, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK + [_LAYER1] = LAYOUT_tkl_ansi_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, + 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_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT ) }; diff --git a/keyboards/linworks/fave87h/keymaps/via/keymap.c b/keyboards/linworks/fave87h/keymaps/via/keymap.c index b62268e9a47..2b3210c1e08 100644 --- a/keyboards/linworks/fave87h/keymaps/via/keymap.c +++ b/keyboards/linworks/fave87h/keymaps/via/keymap.c @@ -23,40 +23,40 @@ enum layers { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [_LAYER0] = 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_PSCR, KC_SLCK, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_DEL, 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, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [_LAYER0] = LAYOUT_tkl_ansi_split_bs( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, KC_SLCK, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_DEL, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [_LAYER1] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, - 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_AUDIO_VOL_UP, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MEDIA_PREV_TRACK, KC_AUDIO_VOL_DOWN, KC_MEDIA_NEXT_TRACK + [_LAYER1] = LAYOUT_tkl_ansi_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, EEP_RST, + 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_VOLU, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_VOLD, KC_MNXT ), - [_LAYER2] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + [_LAYER2] = LAYOUT_tkl_ansi_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ), - [_LAYER3] = LAYOUT( - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, - KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + [_LAYER3] = LAYOUT_tkl_ansi_split_bs( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS ) }; From 7d0c1332cc794c49423ffae04967678d5b2ce48c Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Tue, 27 Sep 2022 02:17:08 -0700 Subject: [PATCH 06/34] Mechlovin Foundation Configurator Cleanup (#18500) --- keyboards/mechlovin/foundation/foundation.h | 4 +- keyboards/mechlovin/foundation/info.json | 267 +++++++++++++++++- .../foundation/keymaps/default/keymap.c | 4 +- .../foundation/keymaps/default_iso/keymap.c | 40 +++ .../foundation/keymaps/default_iso/rules.mk | 1 + 5 files changed, 304 insertions(+), 12 deletions(-) create mode 100644 keyboards/mechlovin/foundation/keymaps/default_iso/keymap.c create mode 100644 keyboards/mechlovin/foundation/keymaps/default_iso/rules.mk diff --git a/keyboards/mechlovin/foundation/foundation.h b/keyboards/mechlovin/foundation/foundation.h index d9d317deb7a..0444817bbf3 100644 --- a/keyboards/mechlovin/foundation/foundation.h +++ b/keyboards/mechlovin/foundation/foundation.h @@ -31,7 +31,7 @@ { K40, K41, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D, K4E, K4F, K4G, K4H }, \ } -#define LAYOUT_tkl_nofrow_ansi( \ +#define LAYOUT_ansi( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G, K1H, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \ @@ -45,7 +45,7 @@ { K40, K41, K42, K43, KC_NO, KC_NO, KC_NO, K47, KC_NO, KC_NO, KC_NO, K4B, K4C, K4D, K4E, K4F, K4G, K4H }, \ } -#define LAYOUT_tkl_nofrow_iso( \ +#define LAYOUT_iso( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, K0H, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1F, K1G, K1H, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ diff --git a/keyboards/mechlovin/foundation/info.json b/keyboards/mechlovin/foundation/info.json index aa4148a40a4..584a774367f 100644 --- a/keyboards/mechlovin/foundation/info.json +++ b/keyboards/mechlovin/foundation/info.json @@ -8,16 +8,267 @@ "pid": "0x0180", "device_version": "0.0.2" }, + "layout_aliases": { + "LAYOUT_tkl_nofrow_ansi": "LAYOUT_ansi", + "LAYOUT_tkl_nofrow_iso": "LAYOUT_iso" + }, "layouts": { "LAYOUT_all": { - "layout": [{"label":"0,0", "x":0.5, "y":0}, {"label":"0,1", "x":2.25, "y":0}, {"label":"0,2", "x":3.25, "y":0}, {"label":"0,3", "x":4.25, "y":0}, {"label":"0,4", "x":5.25, "y":0}, {"label":"0,5", "x":6.25, "y":0}, {"label":"0,6", "x":7.25, "y":0}, {"label":"0,7", "x":8.25, "y":0}, {"label":"0,8", "x":9.25, "y":0}, {"label":"0,9", "x":10.25, "y":0}, {"label":"0,10", "x":11.25, "y":0}, {"label":"0,11", "x":12.25, "y":0}, {"label":"0,12", "x":13.25, "y":0}, {"label":"0,13", "x":14.25, "y":0}, {"label":"0,14", "x":15.25, "y":0}, {"label":"2,15", "x":16.25, "y":0}, {"label":"0,15", "x":17.5, "y":0}, {"label":"0,16", "x":18.5, "y":0}, {"label":"0,17", "x":19.5, "y":0}, {"label":"1,0", "x":0.5, "y":1}, {"label":"1,1", "x":2.25, "y":1, "w":1.5}, {"label":"1,2", "x":3.75, "y":1}, {"label":"1,3", "x":4.75, "y":1}, {"label":"1,4", "x":5.75, "y":1}, {"label":"1,5", "x":6.75, "y":1}, {"label":"1,6", "x":7.75, "y":1}, {"label":"1,7", "x":8.75, "y":1}, {"label":"1,8", "x":9.75, "y":1}, {"label":"1,9", "x":10.75, "y":1}, {"label":"1,10", "x":11.75, "y":1}, {"label":"1,11", "x":12.75, "y":1}, {"label":"1,12", "x":13.75, "y":1}, {"label":"1,13", "x":14.75, "y":1}, {"label":"1,14", "x":15.75, "y":1, "w":1.5}, {"label":"1,15", "x":17.5, "y":1}, {"label":"1,16", "x":18.5, "y":1}, {"label":"1,17", "x":19.5, "y":1}, {"label":"2,0", "x":0.5, "y":2}, {"label":"2,1", "x":2.25, "y":2, "w":1.75}, {"label":"2,2", "x":4, "y":2}, {"label":"2,3", "x":5, "y":2}, {"label":"2,4", "x":6, "y":2}, {"label":"2,5", "x":7, "y":2}, {"label":"2,6", "x":8, "y":2}, {"label":"2,7", "x":9, "y":2}, {"label":"2,8", "x":10, "y":2}, {"label":"2,9", "x":11, "y":2}, {"label":"2,10", "x":12, "y":2}, {"label":"2,11", "x":13, "y":2}, {"label":"2,12", "x":14, "y":2}, {"label":"2,13", "x":15, "y":2}, {"label":"2,14", "x":16, "y":2, "w":1.25}, {"label":"3,0", "x":0.5, "y":3}, {"label":"3,1", "x":2.25, "y":3, "w":1.25}, {"label":"3,2", "x":3.5, "y":3}, {"label":"3,3", "x":4.5, "y":3}, {"label":"3,4", "x":5.5, "y":3}, {"label":"3,5", "x":6.5, "y":3}, {"label":"3,6", "x":7.5, "y":3}, {"label":"3,7", "x":8.5, "y":3}, {"label":"3,8", "x":9.5, "y":3}, {"label":"3,9", "x":10.5, "y":3}, {"label":"3,10", "x":11.5, "y":3}, {"label":"3,11", "x":12.5, "y":3}, {"label":"3,12", "x":13.5, "y":3}, {"label":"3,13", "x":14.5, "y":3, "w":1.75}, {"label":"3,14", "x":16.25, "y":3}, {"label":"3,16", "x":18.5, "y":3}, {"label":"4,0", "x":0.5, "y":4}, {"label":"4,1", "x":2.25, "y":4, "w":1.25}, {"label":"4,2", "x":3.5, "y":4, "w":1.25}, {"label":"4,3", "x":4.75, "y":4, "w":1.25}, {"label":"4,7", "x":6, "y":4, "w":6.25}, {"label":"4,11", "x":12.25, "y":4, "w":1.25}, {"label":"4,12", "x":13.5, "y":4, "w":1.25}, {"label":"4,13", "x":14.75, "y":4, "w":1.25}, {"label":"4,14", "x":16, "y":4, "w":1.25}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,16", "x":18.5, "y":4}, {"label":"4,17", "x":19.5, "y":4}] + "layout": [ + { "label": "0,0", "x": 0, "y": 0 }, + { "label": "0,1", "x": 1.5, "y": 0 }, + { "label": "0,2", "x": 2.5, "y": 0 }, + { "label": "0,3", "x": 3.5, "y": 0 }, + { "label": "0,4", "x": 4.5, "y": 0 }, + { "label": "0,5", "x": 5.5, "y": 0 }, + { "label": "0,6", "x": 6.5, "y": 0 }, + { "label": "0,7", "x": 7.5, "y": 0 }, + { "label": "0,8", "x": 8.5, "y": 0 }, + { "label": "0,9", "x": 9.5, "y": 0 }, + { "label": "0,10", "x": 10.5, "y": 0 }, + { "label": "0,11", "x": 11.5, "y": 0 }, + { "label": "0,12", "x": 12.5, "y": 0 }, + { "label": "0,13", "x": 13.5, "y": 0 }, + { "label": "0,14", "x": 14.5, "y": 0 }, + { "label": "2,15", "x": 15.5, "y": 0 }, + { "label": "0,15", "x": 17, "y": 0 }, + { "label": "0,16", "x": 18, "y": 0 }, + { "label": "0,17", "x": 19, "y": 0 }, + + { "label": "1,0", "x": 0, "y": 1 }, + { "label": "1,1", "x": 1.5, "y": 1, "w": 1.5 }, + { "label": "1,2", "x": 3, "y": 1 }, + { "label": "1,3", "x": 4, "y": 1 }, + { "label": "1,4", "x": 5, "y": 1 }, + { "label": "1,5", "x": 6, "y": 1 }, + { "label": "1,6", "x": 7, "y": 1 }, + { "label": "1,7", "x": 8, "y": 1 }, + { "label": "1,8", "x": 9, "y": 1 }, + { "label": "1,9", "x": 10, "y": 1 }, + { "label": "1,10", "x": 11, "y": 1 }, + { "label": "1,11", "x": 12, "y": 1 }, + { "label": "1,12", "x": 13, "y": 1 }, + { "label": "1,13", "x": 14, "y": 1 }, + { "label": "1,14", "x": 15, "y": 1, "w": 1.5 }, + { "label": "1,15", "x": 17, "y": 1 }, + { "label": "1,16", "x": 18, "y": 1 }, + { "label": "1,17", "x": 19, "y": 1 }, + + { "label": "2,0", "x": 0, "y": 2 }, + { "label": "2,1", "x": 1.5, "y": 2, "w": 1.75 }, + { "label": "2,2", "x": 3.25, "y": 2 }, + { "label": "2,3", "x": 4.25, "y": 2 }, + { "label": "2,4", "x": 5.25, "y": 2 }, + { "label": "2,5", "x": 6.25, "y": 2 }, + { "label": "2,6", "x": 7.25, "y": 2 }, + { "label": "2,7", "x": 8.25, "y": 2 }, + { "label": "2,8", "x": 9.25, "y": 2 }, + { "label": "2,9", "x": 10.25, "y": 2 }, + { "label": "2,10", "x": 11.25, "y": 2 }, + { "label": "2,11", "x": 12.25, "y": 2 }, + { "label": "2,12", "x": 13.25, "y": 2 }, + { "label": "2,13", "x": 14.25, "y": 2 }, + { "label": "2,14", "x": 15.25, "y": 2, "w": 1.25 }, + + { "label": "3,0", "x": 0, "y": 3 }, + { "label": "3,1", "x": 1.5, "y": 3, "w": 1.25 }, + { "label": "3,2", "x": 2.75, "y": 3 }, + { "label": "3,3", "x": 3.75, "y": 3 }, + { "label": "3,4", "x": 4.75, "y": 3 }, + { "label": "3,5", "x": 5.75, "y": 3 }, + { "label": "3,6", "x": 6.75, "y": 3 }, + { "label": "3,7", "x": 7.75, "y": 3 }, + { "label": "3,8", "x": 8.75, "y": 3 }, + { "label": "3,9", "x": 9.75, "y": 3 }, + { "label": "3,10", "x": 10.75, "y": 3 }, + { "label": "3,11", "x": 11.75, "y": 3 }, + { "label": "3,12", "x": 12.75, "y": 3 }, + { "label": "3,13", "x": 13.75, "y": 3, "w": 1.75 }, + { "label": "3,14", "x": 15.5, "y": 3 }, + { "label": "3,16", "x": 18, "y": 3 }, + + { "label": "4,0", "x": 0, "y": 4 }, + { "label": "4,1", "x": 1.5, "y": 4, "w": 1.25 }, + { "label": "4,2", "x": 2.75, "y": 4, "w": 1.25 }, + { "label": "4,3", "x": 4, "y": 4, "w": 1.25 }, + { "label": "4,7", "x": 5.25, "y": 4, "w": 6.25 }, + { "label": "4,11", "x": 11.5, "y": 4, "w": 1.25 }, + { "label": "4,12", "x": 12.75, "y": 4, "w": 1.25 }, + { "label": "4,13", "x": 14, "y": 4, "w": 1.25 }, + { "label": "4,14", "x": 15.25, "y": 4, "w": 1.25 }, + { "label": "4,15", "x": 17, "y": 4 }, + { "label": "4,16", "x": 18, "y": 4 }, + { "label": "4,17", "x": 19, "y": 4 } + ] }, - "LAYOUT_tkl_nofrow_ansi": { - "layout": [{"label":"0,0", "x":0.5, "y":0}, {"label":"0,1", "x":2.25, "y":0}, {"label":"0,2", "x":3.25, "y":0}, {"label":"0,3", "x":4.25, "y":0}, {"label":"0,4", "x":5.25, "y":0}, {"label":"0,5", "x":6.25, "y":0}, {"label":"0,6", "x":7.25, "y":0}, {"label":"0,7", "x":8.25, "y":0}, {"label":"0,8", "x":9.25, "y":0}, {"label":"0,9", "x":10.25, "y":0}, {"label":"0,10", "x":11.25, "y":0}, {"label":"0,11", "x":12.25, "y":0}, {"label":"0,12", "x":13.25, "y":0}, {"label":"0,13", "x":14.25, "y":0}, {"label":"0,14", "x":15.25, "y":0, "w":2}, {"label":"0,15", "x":17.5, "y":0}, {"label":"0,16", "x":18.5, "y":0}, {"label":"0,17", "x":19.5, "y":0}, {"label":"1,0", "x":0.5, "y":1}, {"label":"1,1", "x":2.25, "y":1, "w":1.5}, {"label":"1,2", "x":3.75, "y":1}, {"label":"1,3", "x":4.75, "y":1}, {"label":"1,4", "x":5.75, "y":1}, {"label":"1,5", "x":6.75, "y":1}, {"label":"1,6", "x":7.75, "y":1}, {"label":"1,7", "x":8.75, "y":1}, {"label":"1,8", "x":9.75, "y":1}, {"label":"1,9", "x":10.75, "y":1}, {"label":"1,10", "x":11.75, "y":1}, {"label":"1,11", "x":12.75, "y":1}, {"label":"1,12", "x":13.75, "y":1}, {"label":"1,13", "x":14.75, "y":1}, {"label":"1,14", "x":15.75, "y":1, "w":1.5}, {"label":"1,15", "x":17.5, "y":1}, {"label":"1,16", "x":18.5, "y":1}, {"label":"1,17", "x":19.5, "y":1}, {"label":"2,0", "x":0.5, "y":2}, {"label":"2,1", "x":2.25, "y":2, "w":1.75}, {"label":"2,2", "x":4, "y":2}, {"label":"2,3", "x":5, "y":2}, {"label":"2,4", "x":6, "y":2}, {"label":"2,5", "x":7, "y":2}, {"label":"2,6", "x":8, "y":2}, {"label":"2,7", "x":9, "y":2}, {"label":"2,8", "x":10, "y":2}, {"label":"2,9", "x":11, "y":2}, {"label":"2,10", "x":12, "y":2}, {"label":"2,11", "x":13, "y":2}, {"label":"2,12", "x":14, "y":2}, {"label":"2,14", "x":15, "y":2, "w":2.25}, {"label":"3,0", "x":0.5, "y":3}, {"label":"3,1", "x":2.25, "y":3, "w":2.25}, {"label":"3,3", "x":4.5, "y":3}, {"label":"3,4", "x":5.5, "y":3}, {"label":"3,5", "x":6.5, "y":3}, {"label":"3,6", "x":7.5, "y":3}, {"label":"3,7", "x":8.5, "y":3}, {"label":"3,8", "x":9.5, "y":3}, {"label":"3,9", "x":10.5, "y":3}, {"label":"3,10", "x":11.5, "y":3}, {"label":"3,11", "x":12.5, "y":3}, {"label":"3,12", "x":13.5, "y":3}, {"label":"3,13", "x":14.5, "y":3, "w":2.75}, {"label":"3,16", "x":18.5, "y":3}, {"label":"4,0", "x":0.5, "y":4}, {"label":"4,1", "x":2.25, "y":4, "w":1.25}, {"label":"4,2", "x":3.5, "y":4, "w":1.25}, {"label":"4,3", "x":4.75, "y":4, "w":1.25}, {"label":"4,7", "x":6, "y":4, "w":6.25}, {"label":"4,11", "x":12.25, "y":4, "w":1.25}, {"label":"4,12", "x":13.5, "y":4, "w":1.25}, {"label":"4,13", "x":14.75, "y":4, "w":1.25}, {"label":"4,14", "x":16, "y":4, "w":1.25}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,16", "x":18.5, "y":4}, {"label":"4,17", "x":19.5, "y":4}] + "LAYOUT_ansi": { + "layout": [ + { "label": "0,0", "x": 0, "y": 0 }, + { "label": "0,1", "x": 1.5, "y": 0 }, + { "label": "0,2", "x": 2.5, "y": 0 }, + { "label": "0,3", "x": 3.5, "y": 0 }, + { "label": "0,4", "x": 4.5, "y": 0 }, + { "label": "0,5", "x": 5.5, "y": 0 }, + { "label": "0,6", "x": 6.5, "y": 0 }, + { "label": "0,7", "x": 7.5, "y": 0 }, + { "label": "0,8", "x": 8.5, "y": 0 }, + { "label": "0,9", "x": 9.5, "y": 0 }, + { "label": "0,10", "x": 10.5, "y": 0 }, + { "label": "0,11", "x": 11.5, "y": 0 }, + { "label": "0,12", "x": 12.5, "y": 0 }, + { "label": "0,13", "x": 13.5, "y": 0 }, + { "label": "0,14", "x": 14.5, "y": 0, "w": 2 }, + { "label": "0,15", "x": 17, "y": 0 }, + { "label": "0,16", "x": 18, "y": 0 }, + { "label": "0,17", "x": 19, "y": 0 }, + + { "label": "1,0", "x": 0, "y": 1 }, + { "label": "1,1", "x": 1.5, "y": 1, "w": 1.5 }, + { "label": "1,2", "x": 3, "y": 1 }, + { "label": "1,3", "x": 4, "y": 1 }, + { "label": "1,4", "x": 5, "y": 1 }, + { "label": "1,5", "x": 6, "y": 1 }, + { "label": "1,6", "x": 7, "y": 1 }, + { "label": "1,7", "x": 8, "y": 1 }, + { "label": "1,8", "x": 9, "y": 1 }, + { "label": "1,9", "x": 10, "y": 1 }, + { "label": "1,10", "x": 11, "y": 1 }, + { "label": "1,11", "x": 12, "y": 1 }, + { "label": "1,12", "x": 13, "y": 1 }, + { "label": "1,13", "x": 14, "y": 1 }, + { "label": "1,14", "x": 15, "y": 1, "w": 1.5 }, + { "label": "1,15", "x": 17, "y": 1 }, + { "label": "1,16", "x": 18, "y": 1 }, + { "label": "1,17", "x": 19, "y": 1 }, + + { "label": "2,0", "x": 0, "y": 2 }, + { "label": "2,1", "x": 1.5, "y": 2, "w": 1.75 }, + { "label": "2,2", "x": 3.25, "y": 2 }, + { "label": "2,3", "x": 4.25, "y": 2 }, + { "label": "2,4", "x": 5.25, "y": 2 }, + { "label": "2,5", "x": 6.25, "y": 2 }, + { "label": "2,6", "x": 7.25, "y": 2 }, + { "label": "2,7", "x": 8.25, "y": 2 }, + { "label": "2,8", "x": 9.25, "y": 2 }, + { "label": "2,9", "x": 10.25, "y": 2 }, + { "label": "2,10", "x": 11.25, "y": 2 }, + { "label": "2,11", "x": 12.25, "y": 2 }, + { "label": "2,12", "x": 13.25, "y": 2 }, + { "label": "2,14", "x": 14.25, "y": 2, "w": 2.25 }, + + { "label": "3,0", "x": 0, "y": 3 }, + { "label": "3,1", "x": 1.5, "y": 3, "w": 2.25 }, + { "label": "3,3", "x": 3.75, "y": 3 }, + { "label": "3,4", "x": 4.75, "y": 3 }, + { "label": "3,5", "x": 5.75, "y": 3 }, + { "label": "3,6", "x": 6.75, "y": 3 }, + { "label": "3,7", "x": 7.75, "y": 3 }, + { "label": "3,8", "x": 8.75, "y": 3 }, + { "label": "3,9", "x": 9.75, "y": 3 }, + { "label": "3,10", "x": 10.75, "y": 3 }, + { "label": "3,11", "x": 11.75, "y": 3 }, + { "label": "3,12", "x": 12.75, "y": 3 }, + { "label": "3,13", "x": 13.75, "y": 3, "w": 2.75 }, + { "label": "3,16", "x": 18, "y": 3 }, + + { "label": "4,0", "x": 0, "y": 4 }, + { "label": "4,1", "x": 1.5, "y": 4, "w": 1.25 }, + { "label": "4,2", "x": 2.75, "y": 4, "w": 1.25 }, + { "label": "4,3", "x": 4, "y": 4, "w": 1.25 }, + { "label": "4,7", "x": 5.25, "y": 4, "w": 6.25 }, + { "label": "4,11", "x": 11.5, "y": 4, "w": 1.25 }, + { "label": "4,12", "x": 12.75, "y": 4, "w": 1.25 }, + { "label": "4,13", "x": 14, "y": 4, "w": 1.25 }, + { "label": "4,14", "x": 15.25, "y": 4, "w": 1.25 }, + { "label": "4,15", "x": 17, "y": 4 }, + { "label": "4,16", "x": 18, "y": 4 }, + { "label": "4,17", "x": 19, "y": 4 } + ] }, - "LAYOUT_tkl_nofrow_iso": { - "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1.75, "y":0}, {"label":"0,2", "x":2.75, "y":0}, {"label":"0,3", "x":3.75, "y":0}, {"label":"0,4", "x":4.75, "y":0}, {"label":"0,5", "x":5.75, "y":0}, {"label":"0,6", "x":6.75, "y":0}, {"label":"0,7", "x":7.75, "y":0}, {"label":"0,8", "x":8.75, "y":0}, {"label":"0,9", "x":9.75, "y":0}, {"label":"0,10", "x":10.75, "y":0}, {"label":"0,11", "x":11.75, "y":0}, {"label":"0,12", "x":12.75, "y":0}, {"label":"0,13", "x":13.75, "y":0}, {"label":"0,14", "x":14.75, "y":0, "w":2}, {"label":"0,15", "x":17, "y":0}, {"label":"0,16", "x":18, "y":0}, {"label":"0,17", "x":19, "y":0}, {"label":"1,0", "x":0, "y":1}, {"label":"1,1", "x":1.75, "y":1, "w":1.5}, {"label":"1,2", "x":3.25, "y":1}, {"label":"1,3", "x":4.25, "y":1}, {"label":"1,4", "x":5.25, "y":1}, {"label":"1,5", "x":6.25, "y":1}, {"label":"1,6", "x":7.25, "y":1}, {"label":"1,7", "x":8.25, "y":1}, {"label":"1,8", "x":9.25, "y":1}, {"label":"1,9", "x":10.25, "y":1}, {"label":"1,10", "x":11.25, "y":1}, {"label":"1,11", "x":12.25, "y":1}, {"label":"1,12", "x":13.25, "y":1}, {"label":"1,13", "x":14.25, "y":1}, {"label":"2,14", "x":15.5, "y":1, "w":1.25, "h":2}, {"label":"1,15", "x":17, "y":1}, {"label":"1,16", "x":18, "y":1}, {"label":"1,17", "x":19, "y":1}, {"label":"2,0", "x":0, "y":2}, {"label":"2,1", "x":1.75, "y":2, "w":1.75}, {"label":"2,2", "x":3.5, "y":2}, {"label":"2,3", "x":4.5, "y":2}, {"label":"2,4", "x":5.5, "y":2}, {"label":"2,5", "x":6.5, "y":2}, {"label":"2,6", "x":7.5, "y":2}, {"label":"2,7", "x":8.5, "y":2}, {"label":"2,8", "x":9.5, "y":2}, {"label":"2,9", "x":10.5, "y":2}, {"label":"2,10", "x":11.5, "y":2}, {"label":"2,11", "x":12.5, "y":2}, {"label":"2,12", "x":13.5, "y":2}, {"label":"2,13", "x":14.5, "y":2}, {"label":"3,0", "x":0, "y":3}, {"label":"3,1", "x":1.75, "y":3, "w":1.25}, {"label":"3,2", "x":3, "y":3}, {"label":"3,3", "x":4, "y":3}, {"label":"3,4", "x":5, "y":3}, {"label":"3,5", "x":6, "y":3}, {"label":"3,6", "x":7, "y":3}, {"label":"3,7", "x":8, "y":3}, {"label":"3,8", "x":9, "y":3}, {"label":"3,9", "x":10, "y":3}, {"label":"3,10", "x":11, "y":3}, {"label":"3,11", "x":12, "y":3}, {"label":"3,12", "x":13, "y":3}, {"label":"3,13", "x":14, "y":3, "w":2.75}, {"label":"3,16", "x":18, "y":3}, {"label":"4,0", "x":0, "y":4}, {"label":"4,1", "x":1.75, "y":4, "w":1.25}, {"label":"4,2", "x":3, "y":4, "w":1.25}, {"label":"4,3", "x":4.25, "y":4, "w":1.25}, {"label":"4,7", "x":5.5, "y":4, "w":6.25}, {"label":"4,11", "x":11.75, "y":4, "w":1.25}, {"label":"4,12", "x":13, "y":4, "w":1.25}, {"label":"4,13", "x":14.25, "y":4, "w":1.25}, {"label":"4,14", "x":15.5, "y":4, "w":1.25}, {"label":"4,15", "x":17, "y":4}, {"label":"4,16", "x":18, "y":4}, {"label":"4,17", "x":19, "y":4}] - }, - + "LAYOUT_iso": { + "layout": [ + { "label": "0,0", "x": 0, "y": 0 }, + { "label": "0,1", "x": 1.5, "y": 0 }, + { "label": "0,2", "x": 2.5, "y": 0 }, + { "label": "0,3", "x": 3.5, "y": 0 }, + { "label": "0,4", "x": 4.5, "y": 0 }, + { "label": "0,5", "x": 5.5, "y": 0 }, + { "label": "0,6", "x": 6.5, "y": 0 }, + { "label": "0,7", "x": 7.5, "y": 0 }, + { "label": "0,8", "x": 8.5, "y": 0 }, + { "label": "0,9", "x": 9.5, "y": 0 }, + { "label": "0,10", "x": 10.5, "y": 0 }, + { "label": "0,11", "x": 11.5, "y": 0 }, + { "label": "0,12", "x": 12.5, "y": 0 }, + { "label": "0,13", "x": 13.5, "y": 0 }, + { "label": "0,14", "x": 14.5, "y": 0, "w": 2 }, + { "label": "0,15", "x": 17, "y": 0 }, + { "label": "0,16", "x": 18, "y": 0 }, + { "label": "0,17", "x": 19, "y": 0 }, + + { "label": "1,0", "x": 0, "y": 1 }, + { "label": "1,1", "x": 1.5, "y": 1, "w": 1.5 }, + { "label": "1,2", "x": 3, "y": 1 }, + { "label": "1,3", "x": 4, "y": 1 }, + { "label": "1,4", "x": 5, "y": 1 }, + { "label": "1,5", "x": 6, "y": 1 }, + { "label": "1,6", "x": 7, "y": 1 }, + { "label": "1,7", "x": 8, "y": 1 }, + { "label": "1,8", "x": 9, "y": 1 }, + { "label": "1,9", "x": 10, "y": 1 }, + { "label": "1,10", "x": 11, "y": 1 }, + { "label": "1,11", "x": 12, "y": 1 }, + { "label": "1,12", "x": 13, "y": 1 }, + { "label": "1,13", "x": 14, "y": 1 }, + { "label": "1,15", "x": 17, "y": 1 }, + { "label": "1,16", "x": 18, "y": 1 }, + { "label": "1,17", "x": 19, "y": 1 }, + + { "label": "2,0", "x": 0, "y": 2 }, + { "label": "2,1", "x": 1.5, "y": 2, "w": 1.75 }, + { "label": "2,2", "x": 3.25, "y": 2 }, + { "label": "2,3", "x": 4.25, "y": 2 }, + { "label": "2,4", "x": 5.25, "y": 2 }, + { "label": "2,5", "x": 6.25, "y": 2 }, + { "label": "2,6", "x": 7.25, "y": 2 }, + { "label": "2,7", "x": 8.25, "y": 2 }, + { "label": "2,8", "x": 9.25, "y": 2 }, + { "label": "2,9", "x": 10.25, "y": 2 }, + { "label": "2,10", "x": 11.25, "y": 2 }, + { "label": "2,11", "x": 12.25, "y": 2 }, + { "label": "2,12", "x": 13.25, "y": 2 }, + { "label": "2,13", "x": 14.25, "y": 2 }, + { "label": "2,14", "x": 15.25, "y": 1, "w": 1.25, "h": 2 }, + + { "label": "3,0", "x": 0, "y": 3 }, + { "label": "3,1", "x": 1.5, "y": 3, "w": 1.25 }, + { "label": "3,2", "x": 2.75, "y": 3 }, + { "label": "3,3", "x": 3.75, "y": 3 }, + { "label": "3,4", "x": 4.75, "y": 3 }, + { "label": "3,5", "x": 5.75, "y": 3 }, + { "label": "3,6", "x": 6.75, "y": 3 }, + { "label": "3,7", "x": 7.75, "y": 3 }, + { "label": "3,8", "x": 8.75, "y": 3 }, + { "label": "3,9", "x": 9.75, "y": 3 }, + { "label": "3,10", "x": 10.75, "y": 3 }, + { "label": "3,11", "x": 11.75, "y": 3 }, + { "label": "3,12", "x": 12.75, "y": 3 }, + { "label": "3,13", "x": 13.75, "y": 3, "w": 2.75 }, + { "label": "3,16", "x": 18, "y": 3 }, + + { "label": "4,0", "x": 0, "y": 4 }, + { "label": "4,1", "x": 1.5, "y": 4, "w": 1.25 }, + { "label": "4,2", "x": 2.75, "y": 4, "w": 1.25 }, + { "label": "4,3", "x": 4, "y": 4, "w": 1.25 }, + { "label": "4,7", "x": 5.25, "y": 4, "w": 6.25 }, + { "label": "4,11", "x": 11.5, "y": 4, "w": 1.25 }, + { "label": "4,12", "x": 12.75, "y": 4, "w": 1.25 }, + { "label": "4,13", "x": 14, "y": 4, "w": 1.25 }, + { "label": "4,14", "x": 15.25, "y": 4, "w": 1.25 }, + { "label": "4,15", "x": 17, "y": 4 }, + { "label": "4,16", "x": 18, "y": 4 }, + { "label": "4,17", "x": 19, "y": 4 } + ] + } } -} \ No newline at end of file +} diff --git a/keyboards/mechlovin/foundation/keymaps/default/keymap.c b/keyboards/mechlovin/foundation/keymaps/default/keymap.c index 4cabf521d22..11ae3282b51 100644 --- a/keyboards/mechlovin/foundation/keymaps/default/keymap.c +++ b/keyboards/mechlovin/foundation/keymaps/default/keymap.c @@ -16,14 +16,14 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_tkl_nofrow_ansi( + [0] = LAYOUT_ansi( KC_F1, 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_F2, 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_F3, 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_F4, 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_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ), - [1] = LAYOUT_tkl_nofrow_ansi( + [1] = LAYOUT_ansi( KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/mechlovin/foundation/keymaps/default_iso/keymap.c b/keyboards/mechlovin/foundation/keymaps/default_iso/keymap.c new file mode 100644 index 00000000000..5b8918c9e56 --- /dev/null +++ b/keyboards/mechlovin/foundation/keymaps/default_iso/keymap.c @@ -0,0 +1,40 @@ +/* Copyright 2022 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 QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + [0] = LAYOUT_iso( + KC_F1, 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_F2, 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_DEL, KC_END, KC_PGDN, + KC_F3, 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_F4, 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_F5, KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_iso( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + +}; +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = {ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, + [1] = {ENCODER_CCW_CW(RGB_MOD, RGB_RMOD)} +}; +#endif diff --git a/keyboards/mechlovin/foundation/keymaps/default_iso/rules.mk b/keyboards/mechlovin/foundation/keymaps/default_iso/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/mechlovin/foundation/keymaps/default_iso/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes From f8c8005ce1bc9292951f65e26c47a7e934b5a773 Mon Sep 17 00:00:00 2001 From: JX <572673807@qq.com> Date: Tue, 27 Sep 2022 20:36:49 +0800 Subject: [PATCH 07/34] [Keyboard] Add wave75 (#18490) --- keyboards/yandrstudio/wave75/board.h | 21 + keyboards/yandrstudio/wave75/info.json | 433 ++++++++++++++++++ .../wave75/keymaps/default/keymap.c | 34 ++ .../yandrstudio/wave75/keymaps/via/keymap.c | 48 ++ .../yandrstudio/wave75/keymaps/via/rules.mk | 1 + keyboards/yandrstudio/wave75/mcuconf.h | 24 + keyboards/yandrstudio/wave75/readme.md | 22 + keyboards/yandrstudio/wave75/rules.mk | 15 + keyboards/yandrstudio/wave75/wave75.c | 49 ++ keyboards/yandrstudio/wave75/wave75.h | 55 +++ 10 files changed, 702 insertions(+) create mode 100644 keyboards/yandrstudio/wave75/board.h create mode 100644 keyboards/yandrstudio/wave75/info.json create mode 100644 keyboards/yandrstudio/wave75/keymaps/default/keymap.c create mode 100644 keyboards/yandrstudio/wave75/keymaps/via/keymap.c create mode 100644 keyboards/yandrstudio/wave75/keymaps/via/rules.mk create mode 100644 keyboards/yandrstudio/wave75/mcuconf.h create mode 100644 keyboards/yandrstudio/wave75/readme.md create mode 100644 keyboards/yandrstudio/wave75/rules.mk create mode 100644 keyboards/yandrstudio/wave75/wave75.c create mode 100644 keyboards/yandrstudio/wave75/wave75.h diff --git a/keyboards/yandrstudio/wave75/board.h b/keyboards/yandrstudio/wave75/board.h new file mode 100644 index 00000000000..d83804babdf --- /dev/null +++ b/keyboards/yandrstudio/wave75/board.h @@ -0,0 +1,21 @@ +/* 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 . + */ +#pragma once + +#include_next "board.h" + +#undef STM32_HSECLK +#define STM32_HSECLK 16000000 diff --git a/keyboards/yandrstudio/wave75/info.json b/keyboards/yandrstudio/wave75/info.json new file mode 100644 index 00000000000..61bd8ab7f36 --- /dev/null +++ b/keyboards/yandrstudio/wave75/info.json @@ -0,0 +1,433 @@ +{ + "keyboard_name": "wave75", + "processor": "STM32F103", + "bootloader": "stm32duino", + "usb": { + "pid": "0xAA8E", + "device_version": "1.0.0" + }, + "diode_direction": "COL2ROW", + "matrix_pins": { + "cols": ["B0", "A7", "A6", "B15", "B14", "B13", "A5", "B7", "B6", "B5", "A4", "B12", "A3", "B2", "A2"], + "rows": ["A9", "A10", "C15", "A8", "B1", "A1"] + }, + "layouts": { + "LAYOUT": { + "layout": [ + { + "label": "0,0", + "x": 0, + "y": 0 + }, + { + "label": "0,1", + "x": 1.25, + "y": 0 + }, + { + "label": "0,2", + "x": 2.25, + "y": 0 + }, + { + "label": "0,3", + "x": 3.25, + "y": 0 + }, + { + "label": "0,4", + "x": 4.25, + "y": 0 + }, + { + "label": "0,5", + "x": 5.5, + "y": 0 + }, + { + "label": "0,6", + "x": 6.5, + "y": 0 + }, + { + "label": "0,7", + "x": 7.5, + "y": 0 + }, + { + "label": "0,8", + "x": 8.5, + "y": 0 + }, + { + "label": "0,9", + "x": 9.75, + "y": 0 + }, + { + "label": "0,10", + "x": 10.75, + "y": 0 + }, + { + "label": "0,11", + "x": 11.75, + "y": 0 + }, + { + "label": "0,12", + "x": 12.75, + "y": 0 + }, + { + "label": "0,13", + "x": 14, + "y": 0 + }, + { + "label": "0,14", + "x": 15.25, + "y": 0 + }, + { + "label": "1,0", + "x": 0, + "y": 1.25 + }, + { + "label": "1,1", + "x": 1, + "y": 1.25 + }, + { + "label": "1,2", + "x": 2, + "y": 1.25 + }, + { + "label": "1,3", + "x": 3, + "y": 1.25 + }, + { + "label": "1,4", + "x": 4, + "y": 1.25 + }, + { + "label": "1,5", + "x": 5, + "y": 1.25 + }, + { + "label": "1,6", + "x": 6, + "y": 1.25 + }, + { + "label": "1,7", + "x": 7, + "y": 1.25 + }, + { + "label": "1,8", + "x": 8, + "y": 1.25 + }, + { + "label": "1,9", + "x": 9, + "y": 1.25 + }, + { + "label": "1,10", + "x": 10, + "y": 1.25 + }, + { + "label": "1,11", + "x": 11, + "y": 1.25 + }, + { + "label": "1,12", + "x": 12, + "y": 1.25 + }, + { + "label": "1,13", + "x": 13, + "y": 1.25, + "w": 2 + }, + { + "label": "1,14", + "x": 15.25, + "y": 1.25 + }, + { + "label": "2,0", + "x": 0, + "y": 2.25, + "w": 1.5 + }, + { + "label": "2,1", + "x": 1.5, + "y": 2.25 + }, + { + "label": "2,2", + "x": 2.5, + "y": 2.25 + }, + { + "label": "2,3", + "x": 3.5, + "y": 2.25 + }, + { + "label": "2,4", + "x": 4.5, + "y": 2.25 + }, + { + "label": "2,5", + "x": 5.5, + "y": 2.25 + }, + { + "label": "2,6", + "x": 6.5, + "y": 2.25 + }, + { + "label": "2,7", + "x": 7.5, + "y": 2.25 + }, + { + "label": "2,8", + "x": 8.5, + "y": 2.25 + }, + { + "label": "2,9", + "x": 9.5, + "y": 2.25 + }, + { + "label": "2,10", + "x": 10.5, + "y": 2.25 + }, + { + "label": "2,11", + "x": 11.5, + "y": 2.25 + }, + { + "label": "2,12", + "x": 12.5, + "y": 2.25 + }, + { + "label": "2,13", + "x": 13.5, + "y": 2.25, + "w": 1.5 + }, + { + "label": "2,14", + "x": 15.25, + "y": 2.25 + }, + { + "label": "3,0", + "x": 0, + "y": 3.25, + "w": 1.75 + }, + { + "label": "3,1", + "x": 1.75, + "y": 3.25 + }, + { + "label": "3,2", + "x": 2.75, + "y": 3.25 + }, + { + "label": "3,3", + "x": 3.75, + "y": 3.25 + }, + { + "label": "3,4", + "x": 4.75, + "y": 3.25 + }, + { + "label": "3,5", + "x": 5.75, + "y": 3.25 + }, + { + "label": "3,6", + "x": 6.75, + "y": 3.25 + }, + { + "label": "3,7", + "x": 7.75, + "y": 3.25 + }, + { + "label": "3,8", + "x": 8.75, + "y": 3.25 + }, + { + "label": "3,9", + "x": 9.75, + "y": 3.25 + }, + { + "label": "3,10", + "x": 10.75, + "y": 3.25 + }, + { + "label": "3,11", + "x": 11.75, + "y": 3.25 + }, + { + "label": "3,12", + "x": 12.75, + "y": 3.25, + "w": 2.25 + }, + { + "label": "4,0", + "x": 0, + "y": 4.25, + "w": 2.25 + }, + { + "label": "4,1", + "x": 2.25, + "y": 4.25 + }, + { + "label": "4,2", + "x": 3.25, + "y": 4.25 + }, + { + "label": "4,3", + "x": 4.25, + "y": 4.25 + }, + { + "label": "4,4", + "x": 5.25, + "y": 4.25 + }, + { + "label": "4,5", + "x": 6.25, + "y": 4.25 + }, + { + "label": "4,6", + "x": 7.25, + "y": 4.25 + }, + { + "label": "4,7", + "x": 8.25, + "y": 4.25 + }, + { + "label": "4,8", + "x": 9.25, + "y": 4.25 + }, + { + "label": "4,9", + "x": 10.25, + "y": 4.25 + }, + { + "label": "4,10", + "x": 11.25, + "y": 4.25 + }, + { + "label": "4,11", + "x": 12.25, + "y": 4.25, + "w": 1.75 + }, + { + "label": "4,13", + "x": 14.25, + "y": 4.5 + }, + { + "label": "5,0", + "x": 0, + "y": 5.25, + "w": 1.25 + }, + { + "label": "5,1", + "x": 1.25, + "y": 5.25, + "w": 1.25 + }, + { + "label": "5,2", + "x": 2.5, + "y": 5.25, + "w": 1.25 + }, + { + "label": "5,6", + "x": 3.75, + "y": 5.25, + "w": 6.25 + }, + { + "label": "5,9", + "x": 10, + "y": 5.25, + "w": 1.5 + }, + { + "label": "5,10", + "x": 11.5, + "y": 5.25, + "w": 1.5 + }, + { + "label": "5,12", + "x": 13.25, + "y": 5.5 + }, + { + "label": "5,13", + "x": 14.25, + "y": 5.5 + }, + { + "label": "5,14", + "x": 15.25, + "y": 5.5 + } + ] + } + } +} diff --git a/keyboards/yandrstudio/wave75/keymaps/default/keymap.c b/keyboards/yandrstudio/wave75/keymaps/default/keymap.c new file mode 100644 index 00000000000..a4e4bc286d7 --- /dev/null +++ b/keyboards/yandrstudio/wave75/keymaps/default/keymap.c @@ -0,0 +1,34 @@ +/* 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 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, KC_MUTE, KC_VOLU, + 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT,MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MACOS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) +}; diff --git a/keyboards/yandrstudio/wave75/keymaps/via/keymap.c b/keyboards/yandrstudio/wave75/keymaps/via/keymap.c new file mode 100644 index 00000000000..38eb0515e09 --- /dev/null +++ b/keyboards/yandrstudio/wave75/keymaps/via/keymap.c @@ -0,0 +1,48 @@ +/* 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 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, KC_MUTE, KC_VOLU, + 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_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT,MO(1), KC_LEFT, KC_DOWN, KC_RIGHT), + [1] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MACOS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_LG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [2] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), + [3] = LAYOUT( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/yandrstudio/wave75/keymaps/via/rules.mk b/keyboards/yandrstudio/wave75/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/yandrstudio/wave75/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/yandrstudio/wave75/mcuconf.h b/keyboards/yandrstudio/wave75/mcuconf.h new file mode 100644 index 00000000000..ae03a6e12f0 --- /dev/null +++ b/keyboards/yandrstudio/wave75/mcuconf.h @@ -0,0 +1,24 @@ +/* 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 . + */ + +#pragma once + +#include_next + +#undef STM32_PLLXTPRE +#define STM32_PLLXTPRE STM32_PLLXTPRE_DIV2 + + diff --git a/keyboards/yandrstudio/wave75/readme.md b/keyboards/yandrstudio/wave75/readme.md new file mode 100644 index 00000000000..f88b900c3fe --- /dev/null +++ b/keyboards/yandrstudio/wave75/readme.md @@ -0,0 +1,22 @@ +# wave75 + +![wave75](https://i.imgur.com/Kh6VfN8h.png) +A 75% keyboard. +This keyboard use 16mhz HSE and APM32F103 as MCU. + +- Keyboard Maintainer: https://github.com/jiaxin96 +- Hardware Supported: wave75 +- Hardware Availability: https://github.com/Oh-My-Mechanical-Keyboard + +Make example for this keyboard (after setting up your build environment): + + make yandrstudio/wave75: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. + +## Bootloader + +Enter the bootloader in 2 ways: + +- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key which is Escape in this keyboard) and plug in the keyboard +- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available. diff --git a/keyboards/yandrstudio/wave75/rules.mk b/keyboards/yandrstudio/wave75/rules.mk new file mode 100644 index 00000000000..4a92d0f891c --- /dev/null +++ b/keyboards/yandrstudio/wave75/rules.mk @@ -0,0 +1,15 @@ +# Wildcard to allow APM32 MCU +DFU_SUFFIX_ARGS = -p FFFF -v FFFF + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = no # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output diff --git a/keyboards/yandrstudio/wave75/wave75.c b/keyboards/yandrstudio/wave75/wave75.c new file mode 100644 index 00000000000..cc58a1d43e8 --- /dev/null +++ b/keyboards/yandrstudio/wave75/wave75.c @@ -0,0 +1,49 @@ +/* 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 "wave75.h" + +bool process_record_kb(uint16_t keycode, keyrecord_t *record) { + if (!process_record_user(keycode, record)) { return false; } + switch(keycode) { + case KC_LG: + if (record->event.pressed) { + process_magic(GUI_TOG, record); + } + return false; + case KC_MACOS: + if (record->event.pressed) { + process_magic(CG_TOGG, record); + } + return false; + case KC_MCTL: + if (record->event.pressed) { + host_consumer_send(0x29F); + } else { + host_consumer_send(0); + } + return false; + case KC_LPAD: + if (record->event.pressed) { + host_consumer_send(0x2A0); + } else { + host_consumer_send(0); + } + return false; + default: + return true; + } + return true; +} diff --git a/keyboards/yandrstudio/wave75/wave75.h b/keyboards/yandrstudio/wave75/wave75.h new file mode 100644 index 00000000000..f0d041241a8 --- /dev/null +++ b/keyboards/yandrstudio/wave75/wave75.h @@ -0,0 +1,55 @@ +/* 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 . + */ +#pragma once +#include "quantum.h" + +#define LAYOUT( \ + K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014, \ + K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114, \ + K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214, \ + K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, \ + K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, K413, \ + K500, K501, K502, K506, K509, K510, K512, K513, K514 \ + )\ + { \ + { K000, K001, K002, K003, K004, K005, K006, K007, K008, K009, K010, K011, K012, K013, K014 }, \ + { K100, K101, K102, K103, K104, K105, K106, K107, K108, K109, K110, K111, K112, K113, K114 }, \ + { K200, K201, K202, K203, K204, K205, K206, K207, K208, K209, K210, K211, K212, K213, K214 }, \ + { K300, K301, K302, K303, K304, K305, K306, K307, K308, K309, K310, K311, K312, KC_NO, KC_NO }, \ + { K400, K401, K402, K403, K404, K405, K406, K407, K408, K409, K410, K411, KC_NO, K413, KC_NO }, \ + { K500, K501, K502, KC_NO, KC_NO, KC_NO, K506, KC_NO, KC_NO, K509, K510, KC_NO, K512, K513, K514 } \ +} + +enum keyboard_keycodes { +#ifdef VIA_ENABLE + LOCK_GUI = USER00, + TOG_MACOS_KEYMAP, + KC_MISSION_CONTROL, + KC_LAUNCHPAD, + NEW_SAFE_RANGE = SAFE_RANGE // Important! +#else + LOCK_GUI = SAFE_RANGE, + TOG_MACOS_KEYMAP, + KC_MISSION_CONTROL, + KC_LAUNCHPAD, + NEW_SAFE_RANGE // Important! +#endif +}; + +#define KC_LG LOCK_GUI +#define KC_MACOS TOG_MACOS_KEYMAP +#define KC_MCTL KC_MISSION_CONTROL +#define KC_LPAD KC_LAUNCHPAD From 848e1ec318889b727403228c1ca2f3e206a4fec0 Mon Sep 17 00:00:00 2001 From: Arturo Avila <69410272+ADPenrose@users.noreply.github.com> Date: Tue, 27 Sep 2022 07:44:41 -0500 Subject: [PATCH 08/34] [Keyboard] Updated Kintsugi to support encoder mapping (#18492) --- keyboards/adpenrose/kintsugi/config.h | 55 +-- keyboards/adpenrose/kintsugi/info.json | 8 +- .../kintsugi/keymaps/default/keymap.c | 25 +- .../kintsugi/keymaps/default/rules.mk | 1 + .../keymaps/oled_bongocat/animation_frames.h | 405 ++++++++++++++++++ .../kintsugi/keymaps/oled_bongocat/keymap.c | 181 ++++++++ .../kintsugi/keymaps/oled_bongocat/rules.mk | 6 + .../kintsugi/keymaps/snailmap_port/keymap.c | 99 +---- .../kintsugi/keymaps/snailmap_port/rules.mk | 1 + .../adpenrose/kintsugi/keymaps/via/keymap.c | 29 +- .../adpenrose/kintsugi/keymaps/via/rules.mk | 1 + keyboards/adpenrose/kintsugi/kintsugi.c | 30 +- keyboards/adpenrose/kintsugi/kintsugi.h | 4 +- keyboards/adpenrose/kintsugi/readme.md | 2 +- keyboards/adpenrose/kintsugi/rules.mk | 2 +- 15 files changed, 663 insertions(+), 186 deletions(-) create mode 100644 keyboards/adpenrose/kintsugi/keymaps/default/rules.mk create mode 100644 keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/animation_frames.h create mode 100644 keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/keymap.c create mode 100644 keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/rules.mk diff --git a/keyboards/adpenrose/kintsugi/config.h b/keyboards/adpenrose/kintsugi/config.h index d4e3dcc729e..1985c257518 100644 --- a/keyboards/adpenrose/kintsugi/config.h +++ b/keyboards/adpenrose/kintsugi/config.h @@ -1,5 +1,5 @@ /* -Copyright 2021 adpenrose +Copyright 2022 adpenrose 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 @@ -56,9 +56,6 @@ increase the value. If you need 2 clicks for 1 keycode, decrease*/ # define RGBLIGHT_VAL_STEP 8 # 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 */ -/*== all animations enable ==*/ -// # define RGBLIGHT_ANIMATIONS -/*== or choose animations ==*/ # define RGBLIGHT_EFFECT_BREATHING # define RGBLIGHT_EFFECT_RAINBOW_MOOD # define RGBLIGHT_EFFECT_RAINBOW_SWIRL @@ -79,56 +76,6 @@ increase the value. If you need 2 clicks for 1 keycode, decrease*/ /* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ #define DEBOUNCE 5 -/* define if matrix has ghost (lacks anti-ghosting diodes) */ -//#define MATRIX_HAS_GHOST - -/* 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 useful 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 - -/* - * 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 - /* Bootmagic Lite key configuration */ #define BOOTMAGIC_LITE_ROW 0 #define BOOTMAGIC_LITE_COLUMN 0 diff --git a/keyboards/adpenrose/kintsugi/info.json b/keyboards/adpenrose/kintsugi/info.json index db9952af294..c305d871ea3 100644 --- a/keyboards/adpenrose/kintsugi/info.json +++ b/keyboards/adpenrose/kintsugi/info.json @@ -1,15 +1,15 @@ { "keyboard_name": "Kintsugi", - "manufacturer": "adpenrose", + "manufacturer": "ADPenrose", "url": "https://github.com/ADPenrose/kintsugi_keeb", - "maintainer": "adpenrose", + "maintainer": "Arturo Avila", "usb": { "vid": "0x4450", "pid": "0x0001", - "device_version": "0.0.1" + "device_version": "1.0.0" }, "layouts": { - "LAYOUT_65_ansi_blocker": { + "LAYOUT": { "layout": [ {"label":"Esc", "x":0, "y":0}, {"label":"1", "x":1, "y":0}, diff --git a/keyboards/adpenrose/kintsugi/keymaps/default/keymap.c b/keyboards/adpenrose/kintsugi/keymaps/default/keymap.c index 19d3880b778..f7f960e4b07 100644 --- a/keyboards/adpenrose/kintsugi/keymaps/default/keymap.c +++ b/keyboards/adpenrose/kintsugi/keymaps/default/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2021 adpenrose +/* Copyright 2022 adpenrose * * 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 @@ -23,26 +23,33 @@ * |---------------------------------------------------------------------| * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter | ENC | * |---------------------------------------------------------------------| - * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M1 | + * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M0(3) | * |---------------------------------------------------------------------| - * |Ctrl|GUI |Alt | Space |Alt |MO(1)| |Lt |Dn |Rt | + * |Ctrl|GUI |Alt | Space |MO(1) |MO(2)| |Lt |Dn |Rt | * `---------------------------------------------------------------------|' */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [0] = LAYOUT_65_ansi_blocker( + [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_MINS, KC_EQL, KC_BSPC, KC_TAB, KC_A, 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_MUTE, - 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_DEL, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RIGHT + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(3), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_LEFT, KC_DOWN, KC_RIGHT ), - [1] = LAYOUT_65_ansi_blocker( + [1] = LAYOUT( _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, - _______, RGB_TOG, RGB_VAI, RGB_VAD, RGB_MODE_FORWARD, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif diff --git a/keyboards/adpenrose/kintsugi/keymaps/default/rules.mk b/keyboards/adpenrose/kintsugi/keymaps/default/rules.mk new file mode 100644 index 00000000000..ee325681483 --- /dev/null +++ b/keyboards/adpenrose/kintsugi/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/animation_frames.h b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/animation_frames.h new file mode 100644 index 00000000000..4a97accdde5 --- /dev/null +++ b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/animation_frames.h @@ -0,0 +1,405 @@ +/* Copyright 2022 adpenrose + * + * 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 +#ifdef OLED_ENABLE + +// Enable OLED bitmpa compression selectively. +#define USE_OLED_BITMAP_COMPRESSION + +#define NUM_IDLE_FRAMES 5 +#define NUM_TAP_FRAMES 2 +#define NUM_OLED_BYTES 512 + +#ifdef USE_OLED_BITMAP_COMPRESSION + +static const char PROGMEM idle_1_block_map[] = { //IDLE_1 and IDLE_2 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0x7f, 0x00, 0xf0, 0xb0, 0xc1, 0x07, + 0xf0, 0xcf, 0x00, 0x1c, 0x00, 0xb8, 0x8f, 0x3f, 0x00, 0x98, 0xff, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01 +}; + +static const char PROGMEM idle_2_block_map[] = { //IDLE_3 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0xf0, 0xd8, 0xe0, 0x03, + 0xf0, 0x6f, 0x00, 0x3e, 0x00, 0xf8, 0xc7, 0x7f, 0x00, 0x98, 0x7f, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01 +}; + +static const char PROGMEM idle_3_block_map[] = { //IDLE_4 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0xf0, 0xb0, 0xc1, 0x07, + 0xf0, 0xcf, 0x00, 0x7c, 0x00, 0xb8, 0x8f, 0xff, 0x00, 0x98, 0xff, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01 +}; + +static const char PROGMEM idle_4_block_map[] = { //IDLE_5 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x00, 0xf0, 0xb0, 0xc1, 0x07, + 0xf0, 0xcf, 0x00, 0x3c, 0x00, 0xb8, 0x8f, 0x7f, 0x00, 0x98, 0xff, 0x00, 0x00, 0xf0, 0x03, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01 +}; + +static const char PROGMEM tap_1_block_map[] = { //TAP_1 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0x01, 0x80, 0xff, 0xc1, 0x07, + 0x00, 0xce, 0x00, 0x7c, 0x00, 0xb8, 0x8d, 0xff, 0x00, 0x98, 0xff, 0x1f, 0xc0, 0xff, 0xff, 0x1f, + 0x00, 0x3f, 0xfe, 0x01, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01 +}; + +static const char PROGMEM tap_2_block_map[] = { //TAP_2 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, + 0x18, 0x00, 0x00, 0x00, 0x70, 0x00, 0x00, 0x00, 0xde, 0xff, 0xff, 0x01, 0xfc, 0x80, 0xc1, 0x07, + 0xf1, 0xcf, 0x00, 0x7c, 0x00, 0xb8, 0x8d, 0xff, 0x00, 0xe0, 0xff, 0x00, 0x00, 0x80, 0x3f, 0x00, + 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0xc0, 0x01 +}; + +static const char PROGMEM idle_1_block_list[] = { //IDLE_1 and IDLE_2 flipped + 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x01, 0x02, 0x02, 0x02, + 0x04, 0x08, 0x08, 0x08, 0x04, 0x04, 0x02, 0x02, 0x04, 0xf8, 0xe0, 0x18, 0x06, 0x01, 0x78, 0x78, + 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x30, + 0xc8, 0x01, 0x3e, 0xc0, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18, 0x80, 0x40, 0x20, 0x10, + 0x10, 0x08, 0x07, 0xfc, 0x03, 0x80, 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x01, 0x01, + 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, 0xe0 +}; + +static const char PROGMEM idle_2_block_list[] = { //IDLE_3 flipped + 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x06, 0x04, + 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0xe0, 0x18, 0x06, 0x01, 0x78, + 0x78, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, + 0x30, 0xc8, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18, 0x80, + 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0xfc, 0x03, 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, + 0x02, 0x01, 0x01, 0x01, 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, + 0x1e, 0xe0 +}; + +static const char PROGMEM idle_3_block_list[] = { //IDLE_4 flipped + 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, + 0x04, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0xe0, 0x18, 0x06, 0x01, + 0x78, 0x78, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, + 0xe0, 0x30, 0xc8, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18, + 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0xfc, 0x03, 0x80, 0x83, 0x43, 0x20, 0x10, + 0x08, 0x04, 0x02, 0x01, 0x01, 0x01, 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, + 0xe0, 0x01, 0x1e, 0xe0 +}; + +static const char PROGMEM idle_4_block_list[] = { //IDLE_5 flipped + 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, + 0x04, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0xe4, 0x18, 0xe0, 0x18, 0x06, 0x01, 0x78, + 0x78, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, + 0x30, 0xc8, 0x01, 0x1e, 0x60, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0xc2, 0xc0, 0x18, 0x18, 0x80, 0x40, + 0x20, 0x10, 0x10, 0x10, 0x08, 0x07, 0xfc, 0x03, 0x80, 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, + 0x01, 0x01, 0x01, 0x01, 0x07, 0x78, 0x80, 0x07, 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, + 0xe0 +}; + +static const char PROGMEM tap_1_block_list[] = { //TAP_1 flipped + 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x42, 0x44, + 0x84, 0x88, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x01, 0x0e, 0xf0, 0x20, + 0x26, 0x26, 0x29, 0x10, 0xd5, 0xce, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x03, 0x1c, 0xe0, 0x30, 0xc8, + 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0, 0x03, 0x02, 0x18, 0x18, 0x80, 0x40, 0x20, 0x10, + 0x10, 0x08, 0x08, 0x04, 0x03, 0xfc, 0x03, 0x80, 0x80, 0x40, 0x20, 0x10, 0x08, 0x84, 0xc2, 0xc1, + 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfc, 0xfd, 0xfd, 0x01, 0x07, 0x78, + 0x80, 0x38, 0xf8, 0xf8, 0xf1, 0xe1, 0xc3, 0x83, 0x03, 0x03, 0x03, 0x03, 0x01, 0x01, 0x03, 0x03, + 0x07, 0x07, 0x07, 0x78, 0x81, 0x07, 0x07, 0x03, 0x03, 0x01, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, + 0xe0 +}; + +static const char PROGMEM tap_2_block_list[] = { //TAP_2 flipped + 0x3e, 0xc0, 0x07, 0xf8, 0x1f, 0xe0, 0x03, 0x7c, 0x80, 0x7e, 0xfe, 0xfe, 0xfe, 0x07, 0xf9, 0x01, + 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, + 0x01, 0x01, 0xe0, 0x18, 0x06, 0x01, 0xc0, 0xc0, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x0f, 0x03, 0x04, + 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x30, 0xc8, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x01, 0x3e, 0xc0, + 0x03, 0x02, 0x18, 0x18, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0x0f, 0x70, 0x80, + 0x81, 0x01, 0x31, 0x32, 0x8a, 0x24, 0x86, 0x79, 0x07, 0x78, 0x81, 0x01, 0x01, 0x01, 0x01, 0x07, + 0x78, 0x80, 0x07, 0xf8, 0x1f, 0xe0, 0x01, 0x1e, 0xe0 +}; + +// idle_1 and idle_2 are identical, so share them and save some space +const char* idle_frames[NUM_IDLE_FRAMES] = { + idle_1_block_list, + idle_1_block_list, + idle_2_block_list, + idle_3_block_list, + idle_4_block_list +}; + +const char* tap_frames[NUM_TAP_FRAMES] = { + tap_1_block_list, + tap_2_block_list +}; + +// idle_1 and idle_2 are identical, so save some space +const char* idle_block_map[NUM_IDLE_FRAMES] = { + idle_1_block_map, + idle_1_block_map, + idle_2_block_map, + idle_3_block_map, + idle_4_block_map +}; + +const char* tap_block_map[NUM_TAP_FRAMES] = { + tap_1_block_map, + tap_2_block_map +}; + +#else + +static const char PROGMEM idle_frames[NUM_IDLE_FRAMES][NUM_OLED_BYTES] = { + { // IDLE 1 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 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, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf9, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x08, 0x08, + 0x08, 0x04, 0x04, 0x02, 0x02, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03, + 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80, + 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, + 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { //IDLE 2 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 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, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf9, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x08, 0x08, + 0x08, 0x04, 0x04, 0x02, 0x02, 0x04, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03, + 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x07, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80, + 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, + 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { //IDLE 3 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 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, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf9, 0x01, 0x02, 0x02, 0x06, 0x04, 0x08, 0x08, 0x04, + 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x30, 0xc8, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x03, 0xc2, + 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x83, + 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 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, + 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { //IDLE 4 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 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, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, + 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03, + 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80, + 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, + 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { //IDLE 5 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 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, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, + 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0xe4, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x78, 0x78, 0x00, 0xc0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x60, 0x80, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03, + 0xc2, 0xc0, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x10, 0x08, 0x07, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80, + 0x83, 0x43, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x07, + 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + } + }; +static const char PROGMEM tap_frames[NUM_TAP_FRAMES][NUM_OLED_BYTES] = { + { //Tap 1 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 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, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf9, 0x01, 0x02, 0x02, 0x42, 0x44, 0x84, 0x88, 0x08, + 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0e, 0xf0, 0x20, 0x26, 0x26, 0x29, 0x10, 0xd5, + 0xce, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03, + 0x02, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x03, 0x00, 0x00, 0x80, + 0x80, 0x40, 0x20, 0x10, 0x08, 0x84, 0xc2, 0xc1, 0xc0, 0xc0, 0xc0, 0xc0, 0xc0, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfc, 0xfd, 0xfd, 0x01, 0x07, + 0x78, 0x80, 0x38, 0xf8, 0xf8, 0xf1, 0xe1, 0xc3, 0x83, 0x03, 0x03, 0x03, 0x03, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x07, 0x07, 0x00, 0x00, + 0x00, 0x07, 0x78, 0x81, 0x07, 0x07, 0x03, 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, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + { //Tap 2 flipped + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x3e, 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, 0x07, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x7c, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x7e, 0xfe, 0xfe, 0xfe, 0x00, 0x07, 0xf9, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, + 0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x82, 0x64, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x01, 0x01, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, + 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x18, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x0f, 0x00, 0x00, 0x00, 0x03, 0x04, 0x04, 0x04, 0x04, 0x02, 0x1c, 0xe0, 0x00, 0x00, 0x30, 0xc8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x1e, 0x20, 0x40, 0x80, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3e, 0xc0, 0x00, 0x03, + 0x02, 0x00, 0x18, 0x18, 0x00, 0x00, 0x00, 0x80, 0x40, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0x70, 0x80, + 0x81, 0x01, 0x31, 0x32, 0x8a, 0x24, 0x86, 0x79, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, + 0x78, 0x81, 0x01, 0x01, 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, 0x07, 0x78, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0x1e, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + }, + }; +#endif //USE_BITMAP_COMPRESSION +#endif //OLED_ENABLE diff --git a/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/keymap.c b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/keymap.c new file mode 100644 index 00000000000..2db96a11c26 --- /dev/null +++ b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/keymap.c @@ -0,0 +1,181 @@ +/* Copyright 2022 adpenrose + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H +#include "animation_frames.h" + +/* Base layout: + * ,---------------------------------------------------------------------| + * |` |1 |2 |3 |4 |5 |6 |7 |8 |9 |0 |- |= |Backspace| OLED| + * |--------------------------------------------------------------- | + * |Tab |Q |W |E |R |T |Y |U |I |O |P |[ | ] | \ OLED| + * |---------------------------------------------------------------------| + * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter | ENC | + * |---------------------------------------------------------------------| + * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M0(3) | + * |---------------------------------------------------------------------| + * |Ctrl|GUI |Alt | Space |MO(1) |MO(2)| |Lt |Dn |Rt | + * `---------------------------------------------------------------------|' + */ + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + /* Base */ + [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_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_MUTE, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(3), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_LEFT, KC_DOWN, KC_RIGHT + ), + [1] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), +}; + +/* Encoder */ +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif + +#ifdef OLED_ENABLE +#define IDLE_FRAME_DURATION 200 // Idle animation iteration rate in ms + +oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; } + +uint32_t anim_timer = 0; +uint32_t anim_sleep = 0; +uint8_t current_idle_frame = 0; + +bool tap_anim = false; +bool tap_anim_toggle = false; + + +// Decompress and write a precompressed bitmap frame to the OLED. +// Documentation and python compression script available at: +// https://github.com/nullbitsco/squeez-o +#ifdef USE_OLED_BITMAP_COMPRESSION +static void oled_write_compressed_P(const char* input_block_map, const char* input_block_list) { + uint16_t block_index = 0; + for (uint16_t i=0; i IDLE_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + anim_sleep = timer_read32(); + } else { // Turn off screen when timer threshold elapsed or reset time since last input + if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) { + oled_off(); + } else { + if (timer_elapsed32(anim_timer) > IDLE_FRAME_DURATION) { + anim_timer = timer_read32(); + animation_phase(); + } + } + } +} + +bool oled_task_user(void) { + render_anim(); + oled_set_cursor(0, 0); + + uint8_t n = get_current_wpm(); + char wpm_counter[6]; + wpm_counter[5] = '\0'; + wpm_counter[4] = '0' + n % 10; + wpm_counter[3] = '0' + (n /= 10) % 10; + wpm_counter[2] = '0' + n / 10 ; + wpm_counter[1] = '0'; + wpm_counter[0] = '>'; + oled_write_ln(wpm_counter, false); + + return false; +} +#endif + +// Animate tap +bool process_record_user(uint16_t keycode, keyrecord_t *record) { + #ifdef OLED_ENABLE + // Check if non-mod + if ((keycode >= KC_A && keycode <= KC_0) || (keycode >= KC_TAB && keycode <= KC_SLASH)) { + if (record->event.pressed) { + // Display tap frames + tap_anim_toggle = !tap_anim_toggle; + #ifdef USE_OLED_BITMAP_COMPRESSION + oled_write_compressed_P(tap_block_map[tap_anim_toggle], tap_frames[tap_anim_toggle]); + #else + oled_write_raw_P(tap_frames[tap_anim_toggle], NUM_OLED_BYTES); + #endif + } + } + #endif + + return true; + +} diff --git a/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/rules.mk b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/rules.mk new file mode 100644 index 00000000000..24719cefb25 --- /dev/null +++ b/keyboards/adpenrose/kintsugi/keymaps/oled_bongocat/rules.mk @@ -0,0 +1,6 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes +WPM_ENABLE = yes +SPACE_CADET_ENABLE = no +MAGIC_ENABLE = no +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/keymap.c b/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/keymap.c index 4930d5bc68e..59955d33bd3 100644 --- a/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/keymap.c +++ b/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2021 adpenrose +/* Copyright 2022 adpenrose * * 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 @@ -23,105 +23,52 @@ * |---------------------------------------------------------------------| * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter | ENC | * |---------------------------------------------------------------------| - * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M1 | + * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M0(3) | * |---------------------------------------------------------------------| - * |Ctrl|GUI |Alt | Space |MO(2) |MO(3)| |Lt |Dn |Rt | + * |Ctrl|GUI |Alt | Space |MO(1) |MO(2)| |Lt |Dn |Rt | * `---------------------------------------------------------------------|' */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [0] = LAYOUT_65_ansi_blocker( + [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_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_MUTE, - 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_DEL, - KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(2), MO(3), KC_LEFT, KC_DOWN, KC_RIGHT + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, MO(3), + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_LEFT, KC_DOWN, KC_RIGHT ), - [1] = LAYOUT_65_ansi_blocker( + [1] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT_65_ansi_blocker( + [2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT_65_ansi_blocker( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + [3] = LAYOUT( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; /* Encoder */ -#ifdef ENCODER_ENABLE -bool encoder_update_user(uint8_t index, bool clockwise) { - /* Used to change the layer using the encoder. */ - static int8_t selected_layer = 0; - - if (clockwise){ - /* Check if left shift is pressed: */ - if (selected_layer < 4 && get_mods() & MOD_BIT(KC_LSFT)){ - selected_layer ++; - /* If already on the last layer, jumps back to the first layer: */ - if (selected_layer == 4) { - selected_layer = 0; - } - /* Move to the selected layer. */ - layer_move(selected_layer); - } else if (get_mods() & MOD_BIT(KC_RSFT)){ /* Check if right shift is pressed: */ - switch (get_highest_layer(layer_state)){ - default: - /* Go to the next track. */ - tap_code(KC_MNXT); - break; - } - } else { - /* If shift isn't pressed, encoder will do this stuff: */ - switch (get_highest_layer(layer_state)){ - default: - /* Turn up the volume of the system. */ - tap_code(KC_VOLU); - break; - } - } - } else { - /* Check if left shift is pressed: */ - if (selected_layer > -1 && get_mods() & MOD_BIT(KC_LSFT)){ - selected_layer --; - /* If already on the first layer, jumps up to the last layer: */ - if (selected_layer == -1) { - selected_layer = 3; - } - /* Move to the selected layer. */ - layer_move(selected_layer); - } else if (get_mods() & MOD_BIT(KC_RSFT)){ /* Check if right shift is pressed: */ - switch (get_highest_layer(layer_state)){ - default: - /* Go to the previous track. */ - tap_code(KC_MPRV); - break; - } - } else { - /* If shift isn't pressed, encoder will do this stuff: */ - switch (get_highest_layer(layer_state)){ - default: - /* Turn down the volume of the system. */ - tap_code(KC_VOLD); - break; - } - } - } - return false; -} +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; #endif #ifdef OLED_ENABLE @@ -134,9 +81,9 @@ int icon_med_wpm = 50; // WPM required to display the medium sn int icon_fast_wpm = 72; // WPM required to display the fast snail // Layer names: Should be exactly 5 characters in length if vertical display, or 6 characters if horizontal #define MA_LAYER_NAME "QWRTY" // Layer 0 name -#define L1_LAYER_NAME "KICAD" // Layer 1 name +#define L1_LAYER_NAME "FUNCT" // Layer 1 name #define L2_LAYER_NAME "NMPAD" // Layer 2 name -#define L3_LAYER_NAME "FUNCT" // Layer 3 name +#define L3_LAYER_NAME "RANDM" // Layer 3 name // Constants required for the background render, the graph render and the WPM counter. THESE VALUES SHOULD NOT BE CHANGED. bool first_loop = true; int timer = 0; diff --git a/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/rules.mk b/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/rules.mk index 8058dc57fce..24719cefb25 100644 --- a/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/rules.mk +++ b/keyboards/adpenrose/kintsugi/keymaps/snailmap_port/rules.mk @@ -3,3 +3,4 @@ LTO_ENABLE = yes WPM_ENABLE = yes SPACE_CADET_ENABLE = no MAGIC_ENABLE = no +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/adpenrose/kintsugi/keymaps/via/keymap.c b/keyboards/adpenrose/kintsugi/keymaps/via/keymap.c index ea0b06070d2..5a42fa9b2fe 100644 --- a/keyboards/adpenrose/kintsugi/keymaps/via/keymap.c +++ b/keyboards/adpenrose/kintsugi/keymaps/via/keymap.c @@ -1,4 +1,4 @@ -/* Copyright 2021 adpenrose +/* Copyright 2022 adpenrose * * 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 @@ -23,36 +23,36 @@ * |---------------------------------------------------------------------| * |Caps |A |S |D |F |G |H |J |K |L |; |' | Enter | ENC | * |---------------------------------------------------------------------| - * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M1 | + * |Shft |Z |X |C |V |B |N |M |, |. |/ |Shift |Up| M0(3) | * |---------------------------------------------------------------------| - * |Ctrl|GUI |Alt | Space |MO(2) |MO(3)| |Lt |Dn |Rt | + * |Ctrl|GUI |Alt | Space |MO(1) |MO(2)| |Lt |Dn |Rt | * `---------------------------------------------------------------------|' */ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* Base */ - [0] = LAYOUT_65_ansi_blocker( + [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_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_MUTE, - 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_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_UP, MO(3), KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, MO(1), MO(2), KC_LEFT, KC_DOWN, KC_RIGHT ), - [1] = LAYOUT_65_ansi_blocker( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + [1] = LAYOUT( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MPLY, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, KC_SPC, _______, _______, _______, _______, _______ + _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [2] = LAYOUT_65_ansi_blocker( + [2] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_MNXT, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ ), - [3] = LAYOUT_65_ansi_blocker( + [3] = LAYOUT( _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, @@ -60,3 +60,12 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { _______, _______, _______, _______, _______, _______, _______, _______, _______ ), }; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = { + [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, + [1] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [2] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) }, + [3] = { ENCODER_CCW_CW(KC_TRNS, KC_TRNS) } +}; +#endif diff --git a/keyboards/adpenrose/kintsugi/keymaps/via/rules.mk b/keyboards/adpenrose/kintsugi/keymaps/via/rules.mk index 36b7ba9cbc9..1189f4ad192 100644 --- a/keyboards/adpenrose/kintsugi/keymaps/via/rules.mk +++ b/keyboards/adpenrose/kintsugi/keymaps/via/rules.mk @@ -1,2 +1,3 @@ VIA_ENABLE = yes LTO_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/adpenrose/kintsugi/kintsugi.c b/keyboards/adpenrose/kintsugi/kintsugi.c index ff62858377b..59e7d79b55f 100644 --- a/keyboards/adpenrose/kintsugi/kintsugi.c +++ b/keyboards/adpenrose/kintsugi/kintsugi.c @@ -1,4 +1,4 @@ -/* Copyright 2021 adpenrose +/* Copyright 2022 adpenrose * * 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 @@ -16,34 +16,6 @@ #include "kintsugi.h" -/* Encoder */ -#ifdef ENCODER_ENABLE -bool encoder_update_kb(uint8_t index, bool clockwise) { - if (!encoder_update_user(index, clockwise)) { - return false; - } else { -/* The switch case allows for different encoder mappings on different layers, "default" map gets applied for all unspecified layers */ - switch(get_highest_layer(layer_state)){ - case 1: - if (clockwise) { - tap_code(KC_MNXT); - } else { - tap_code(KC_MPRV); - } - break; - default: - if (clockwise){ - tap_code(KC_VOLU); - } else{ - tap_code(KC_VOLD); - } - break; - } - } - return true; -} -#endif - #ifdef OLED_ENABLE oled_rotation_t oled_init_kb(oled_rotation_t rotation) { return OLED_ROTATION_270; diff --git a/keyboards/adpenrose/kintsugi/kintsugi.h b/keyboards/adpenrose/kintsugi/kintsugi.h index 37ce6cc6e56..728ef72d0a0 100644 --- a/keyboards/adpenrose/kintsugi/kintsugi.h +++ b/keyboards/adpenrose/kintsugi/kintsugi.h @@ -1,4 +1,4 @@ -/* Copyright 2021 adpenrose +/* Copyright 2022 adpenrose * * 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 @@ -26,7 +26,7 @@ * The second converts the arguments into a two-dimensional array which * represents the switch matrix. */ -#define LAYOUT_65_ansi_blocker( \ +#define LAYOUT( \ K00, K01, K02, K03, K04, K05, K06, K50, K51, K52, K53, K54, K55, K56, \ K10, K11, K12, K13, K14, K15, K16, K60, K61, K62, K63, K64, K65, K66, \ K20, K21, K22, K23, K24, K25, K26, K70, K71, K72, K73, K74, K75, K76, \ diff --git a/keyboards/adpenrose/kintsugi/readme.md b/keyboards/adpenrose/kintsugi/readme.md index 708dc16699b..9c0ccd1a1a8 100644 --- a/keyboards/adpenrose/kintsugi/readme.md +++ b/keyboards/adpenrose/kintsugi/readme.md @@ -15,7 +15,7 @@ A 65%-ish keyboard with some extra features. ## General info * Keyboard Maintainer: [Arturo Avila](https://github.com/ADPenrose) -* Hardware Supported: Kintsugi V1 PCB +* Hardware Supported: Kintsugi v1 PCB * Hardware Availability: [Arturo Avila](https://github.com/ADPenrose) Make example for this keyboard (after setting up your build environment): diff --git a/keyboards/adpenrose/kintsugi/rules.mk b/keyboards/adpenrose/kintsugi/rules.mk index fe95a9b72b1..6a0aca4700a 100644 --- a/keyboards/adpenrose/kintsugi/rules.mk +++ b/keyboards/adpenrose/kintsugi/rules.mk @@ -16,6 +16,6 @@ NKRO_ENABLE = no # Enable N-Key Rollover BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow AUDIO_ENABLE = no # Audio output -ENCODER_ENABLE = yes # Encoder functionality +ENCODER_ENABLE = yes # Encoder functionality OLED_ENABLE = yes # OLED functionality OLED_DRIVER = SSD1306 From 63c87f591e96c1038acbc0665f6aea8628fd2089 Mon Sep 17 00:00:00 2001 From: Ramon Imbao Date: Tue, 27 Sep 2022 21:51:40 +0800 Subject: [PATCH 09/34] Update VID and PID of Abats Keyboard Club Nayeon (#18503) --- keyboards/abatskeyboardclub/nayeon/info.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/keyboards/abatskeyboardclub/nayeon/info.json b/keyboards/abatskeyboardclub/nayeon/info.json index 8cafe5aebf5..ace6b22f086 100644 --- a/keyboards/abatskeyboardclub/nayeon/info.json +++ b/keyboards/abatskeyboardclub/nayeon/info.json @@ -16,7 +16,7 @@ "nkro": false }, "usb": { - "vid": "0x4B47", + "vid": "0xABA7", "pid": "0x0001", "device_version": "2.0.0" }, From 703d8cd417115d6e37090e26e358cf73f6346113 Mon Sep 17 00:00:00 2001 From: izmishi <31067139+izmishi@users.noreply.github.com> Date: Wed, 28 Sep 2022 18:16:24 +0100 Subject: [PATCH 10/34] Fix retain brightness when val is changed while a layer is active (#18426) * Fix retain brightness when val is changed while a layer is active * Fix retain brightness for RGBLIGHT_MODE_STATIC_GRADIENT * Fix formatting --- quantum/rgblight/rgblight.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/quantum/rgblight/rgblight.c b/quantum/rgblight/rgblight.c index 73b352cea8d..37cd7a66ab1 100644 --- a/quantum/rgblight/rgblight.c +++ b/quantum/rgblight/rgblight.c @@ -523,10 +523,19 @@ void rgblight_sethsv_noeeprom_old(uint8_t hue, uint8_t sat, uint8_t val) { void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool write_to_eeprom) { if (rgblight_config.enable) { +#ifdef RGBLIGHT_SPLIT + if (rgblight_config.hue != hue || rgblight_config.sat != sat || rgblight_config.val != val) { + RGBLIGHT_SPLIT_SET_CHANGE_HSVS; + } +#endif rgblight_status.base_mode = mode_base_table[rgblight_config.mode]; if (rgblight_config.mode == RGBLIGHT_MODE_STATIC_LIGHT) { // same static color LED_TYPE tmp_led; +#ifdef RGBLIGHT_LAYERS_RETAIN_VAL + // needed for rgblight_layers_write() to get the new val, since it reads rgblight_config.val + rgblight_config.val = val; +#endif sethsv(hue, sat, val, &tmp_led); rgblight_setrgb(tmp_led.r, tmp_led.g, tmp_led.b); } else { @@ -568,15 +577,14 @@ void rgblight_sethsv_eeprom_helper(uint8_t hue, uint8_t sat, uint8_t val, bool w dprintf("rgblight rainbow set hsv: %d,%d,%d,%u\n", i, _hue, direction, range); sethsv(_hue, sat, val, (LED_TYPE *)&led[i + rgblight_ranges.effect_start_pos]); } +# ifdef RGBLIGHT_LAYERS_RETAIN_VAL + // needed for rgblight_layers_write() to get the new val, since it reads rgblight_config.val + rgblight_config.val = val; +# endif rgblight_set(); } #endif } -#ifdef RGBLIGHT_SPLIT - if (rgblight_config.hue != hue || rgblight_config.sat != sat || rgblight_config.val != val) { - RGBLIGHT_SPLIT_SET_CHANGE_HSVS; - } -#endif rgblight_config.hue = hue; rgblight_config.sat = sat; rgblight_config.val = val; From 6f108642eb814e56d191db91cf0d0288914f53d7 Mon Sep 17 00:00:00 2001 From: Felix Jen Date: Wed, 28 Sep 2022 14:20:26 -0500 Subject: [PATCH 11/34] [Keyboard] Add KG60 and KG65 (#17565) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/keygem/kg60ansi/config.h | 112 ++++++++++++++++++ keyboards/keygem/kg60ansi/info.json | 82 +++++++++++++ .../keygem/kg60ansi/keymaps/default/keymap.c | 40 +++++++ .../keygem/kg60ansi/keymaps/via/keymap.c | 58 +++++++++ .../keygem/kg60ansi/keymaps/via/rules.mk | 1 + keyboards/keygem/kg60ansi/kg60ansi.c | 14 +++ keyboards/keygem/kg60ansi/kg60ansi.h | 32 +++++ keyboards/keygem/kg60ansi/readme.md | 26 ++++ keyboards/keygem/kg60ansi/rules.mk | 23 ++++ keyboards/keygem/kg65rgbv2/config.h | 112 ++++++++++++++++++ keyboards/keygem/kg65rgbv2/info.json | 89 ++++++++++++++ .../keygem/kg65rgbv2/keymaps/default/keymap.c | 40 +++++++ .../keygem/kg65rgbv2/keymaps/via/keymap.c | 58 +++++++++ .../keygem/kg65rgbv2/keymaps/via/rules.mk | 1 + keyboards/keygem/kg65rgbv2/kg65rgbv2.c | 14 +++ keyboards/keygem/kg65rgbv2/kg65rgbv2.h | 32 +++++ keyboards/keygem/kg65rgbv2/readme.md | 26 ++++ keyboards/keygem/kg65rgbv2/rules.mk | 24 ++++ 18 files changed, 784 insertions(+) create mode 100644 keyboards/keygem/kg60ansi/config.h create mode 100644 keyboards/keygem/kg60ansi/info.json create mode 100644 keyboards/keygem/kg60ansi/keymaps/default/keymap.c create mode 100644 keyboards/keygem/kg60ansi/keymaps/via/keymap.c create mode 100644 keyboards/keygem/kg60ansi/keymaps/via/rules.mk create mode 100644 keyboards/keygem/kg60ansi/kg60ansi.c create mode 100644 keyboards/keygem/kg60ansi/kg60ansi.h create mode 100644 keyboards/keygem/kg60ansi/readme.md create mode 100644 keyboards/keygem/kg60ansi/rules.mk create mode 100644 keyboards/keygem/kg65rgbv2/config.h create mode 100644 keyboards/keygem/kg65rgbv2/info.json create mode 100644 keyboards/keygem/kg65rgbv2/keymaps/default/keymap.c create mode 100644 keyboards/keygem/kg65rgbv2/keymaps/via/keymap.c create mode 100644 keyboards/keygem/kg65rgbv2/keymaps/via/rules.mk create mode 100644 keyboards/keygem/kg65rgbv2/kg65rgbv2.c create mode 100644 keyboards/keygem/kg65rgbv2/kg65rgbv2.h create mode 100644 keyboards/keygem/kg65rgbv2/readme.md create mode 100644 keyboards/keygem/kg65rgbv2/rules.mk diff --git a/keyboards/keygem/kg60ansi/config.h b/keyboards/keygem/kg60ansi/config.h new file mode 100644 index 00000000000..6c79d5571c0 --- /dev/null +++ b/keyboards/keygem/kg60ansi/config.h @@ -0,0 +1,112 @@ +/* +Copyright 2022 + +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" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 14 + +/* + * 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) + * +*/ + +// Checked with Eagle Schematic +#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6 } +#define MATRIX_COL_PINS { C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, B3, B2, B1 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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 + +/* Define RGB Underglow */ +#define RGB_DI_PIN F7 +#define RGBLED_NUM 64 +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#define RGBLIGHT_LIMIT_VAL 108 +#define RGB_VAL_STEP 12 +#define RGBLIGHT_DEFAULT_SPD 144 +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL +/* #define RGBLIGHT_LAYER_BLINK*/ + +/* Define less important options */ + +/* + * 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 + +/* + * 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/keygem/kg60ansi/info.json b/keyboards/keygem/kg60ansi/info.json new file mode 100644 index 00000000000..33f60df5049 --- /dev/null +++ b/keyboards/keygem/kg60ansi/info.json @@ -0,0 +1,82 @@ +{ + "keyboard_name": "KG60 ANSI", + "manufacturer": "FJLabs", + "url": "https://www.keygem.store/", + "maintainer": "Keygem", + "usb": { + "vid": "0x4B47", + "pid": "0x0001", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_60_ansi": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 2.75}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4, "w": 1.25}, + {"x": 11.25, "y": 4, "w": 1.25}, + {"x": 12.5, "y": 4, "w": 1.25}, + {"x": 13.75, "y": 4, "w": 1.25} + ] + } + } +} diff --git a/keyboards/keygem/kg60ansi/keymaps/default/keymap.c b/keyboards/keygem/kg60ansi/keymaps/default/keymap.c new file mode 100644 index 00000000000..86c75129432 --- /dev/null +++ b/keyboards/keygem/kg60ansi/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2022 +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 { + _LAYER0, + _LAYER1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_60_ansi( + KC_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, KC_RGUI, MO(1), KC_RCTRL + ), + + [_LAYER1] = LAYOUT_60_ansi( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, QK_BOOT, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) + +}; \ No newline at end of file diff --git a/keyboards/keygem/kg60ansi/keymaps/via/keymap.c b/keyboards/keygem/kg60ansi/keymaps/via/keymap.c new file mode 100644 index 00000000000..cc1cac96e9d --- /dev/null +++ b/keyboards/keygem/kg60ansi/keymaps/via/keymap.c @@ -0,0 +1,58 @@ +/* +Copyright 2022 +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 { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_60_ansi( + KC_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, KC_RGUI, MO(1), KC_RCTRL + ), + + [_LAYER1] = LAYOUT_60_ansi( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, QK_BOOT, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_LAYER2] = LAYOUT_60_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_LAYER3] = LAYOUT_60_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/keygem/kg60ansi/keymaps/via/rules.mk b/keyboards/keygem/kg60ansi/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/keygem/kg60ansi/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keygem/kg60ansi/kg60ansi.c b/keyboards/keygem/kg60ansi/kg60ansi.c new file mode 100644 index 00000000000..15a1f4ee312 --- /dev/null +++ b/keyboards/keygem/kg60ansi/kg60ansi.c @@ -0,0 +1,14 @@ +/* +Copyright 2022 +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 "kg60ansi.h" diff --git a/keyboards/keygem/kg60ansi/kg60ansi.h b/keyboards/keygem/kg60ansi/kg60ansi.h new file mode 100644 index 00000000000..96e78e8d6f4 --- /dev/null +++ b/keyboards/keygem/kg60ansi/kg60ansi.h @@ -0,0 +1,32 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +/* KG60 ANSI Keymap Definitions */ +#define LAYOUT_60_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, \ + K40, K41, K42, K45, K49, K4A, K4C, K4D \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, K3C, KC_NO }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D } \ +} diff --git a/keyboards/keygem/kg60ansi/readme.md b/keyboards/keygem/kg60ansi/readme.md new file mode 100644 index 00000000000..f24439855b2 --- /dev/null +++ b/keyboards/keygem/kg60ansi/readme.md @@ -0,0 +1,26 @@ +# Keygem KG60 ANSI + +The following is the QMK Firmware for the Keygem KG60 ANSI PCB, a universal tray mount 60% hotswap PCB with per key RGB LED's. + +The PCB will feature: +* Kailh Hotswap sockets +* QMK & VIA compatibility +* Per-Key RGB LED's + + +* Keyboard Maintainer: Keygem +* Hardware Supported: KG60 ANSI + +Make example for this keyboard (after setting up your build environment): + + make keygem/kg60ansi: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). + +## 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 `RESET` if it is available \ No newline at end of file diff --git a/keyboards/keygem/kg60ansi/rules.mk b/keyboards/keygem/kg60ansi/rules.mk new file mode 100644 index 00000000000..e64258fe9b5 --- /dev/null +++ b/keyboards/keygem/kg60ansi/rules.mk @@ -0,0 +1,23 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + +LAYOUTS = 60_ansi diff --git a/keyboards/keygem/kg65rgbv2/config.h b/keyboards/keygem/kg65rgbv2/config.h new file mode 100644 index 00000000000..e62df985c4e --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/config.h @@ -0,0 +1,112 @@ +/* +Copyright 2022 + +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" + +/* key matrix size */ +#define MATRIX_ROWS 5 +#define MATRIX_COLS 15 + +/* + * 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) + * +*/ + +// Checked with Eagle Schematic +#define MATRIX_ROW_PINS { F0, F1, F4, F5, F6 } +#define MATRIX_COL_PINS { C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, B3, B2, B1, D1 } +#define UNUSED_PINS + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ +#define DEBOUNCE 5 + +/* define if matrix has ghost (lacks anti-ghosting diodes) */ +//#define MATRIX_HAS_GHOST + +/* 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 + +/* Define RGB Underglow */ +#define RGB_DI_PIN F7 +#define RGBLED_NUM 68 +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING +#define RGBLIGHT_EFFECT_TWINKLE +#define RGBLIGHT_LIMIT_VAL 96 +#define RGB_VAL_STEP 12 +#define RGBLIGHT_DEFAULT_SPD 144 +#define RGBLIGHT_DEFAULT_MODE RGBLIGHT_MODE_RAINBOW_SWIRL +/* #define RGBLIGHT_LAYER_BLINK*/ + +/* Define less important options */ + +/* + * 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 + +/* + * 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/keygem/kg65rgbv2/info.json b/keyboards/keygem/kg65rgbv2/info.json new file mode 100644 index 00000000000..1693c683d39 --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/info.json @@ -0,0 +1,89 @@ +{ + "keyboard_name": "KG65 RGB V2", + "manufacturer": "FJLabs", + "url": "https://www.keygem.store/", + "maintainer": "Keygem", + "usb": { + "vid": "0x4B47", + "pid": "0x0002", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_65_ansi": { + "layout": [ + {"x": 0, "y": 0}, + {"x": 1, "y": 0}, + {"x": 2, "y": 0}, + {"x": 3, "y": 0}, + {"x": 4, "y": 0}, + {"x": 5, "y": 0}, + {"x": 6, "y": 0}, + {"x": 7, "y": 0}, + {"x": 8, "y": 0}, + {"x": 9, "y": 0}, + {"x": 10, "y": 0}, + {"x": 11, "y": 0}, + {"x": 12, "y": 0}, + {"x": 13, "y": 0, "w": 2}, + {"x": 15, "y": 0}, + + {"x": 0, "y": 1, "w": 1.5}, + {"x": 1.5, "y": 1}, + {"x": 2.5, "y": 1}, + {"x": 3.5, "y": 1}, + {"x": 4.5, "y": 1}, + {"x": 5.5, "y": 1}, + {"x": 6.5, "y": 1}, + {"x": 7.5, "y": 1}, + {"x": 8.5, "y": 1}, + {"x": 9.5, "y": 1}, + {"x": 10.5, "y": 1}, + {"x": 11.5, "y": 1}, + {"x": 12.5, "y": 1}, + {"x": 13.5, "y": 1, "w": 1.5}, + {"x": 15, "y": 1}, + + {"x": 0, "y": 2, "w": 1.75}, + {"x": 1.75, "y": 2}, + {"x": 2.75, "y": 2}, + {"x": 3.75, "y": 2}, + {"x": 4.75, "y": 2}, + {"x": 5.75, "y": 2}, + {"x": 6.75, "y": 2}, + {"x": 7.75, "y": 2}, + {"x": 8.75, "y": 2}, + {"x": 9.75, "y": 2}, + {"x": 10.75, "y": 2}, + {"x": 11.75, "y": 2}, + {"x": 12.75, "y": 2, "w": 2.25}, + {"x": 15, "y": 2}, + + {"x": 0, "y": 3, "w": 2.25}, + {"x": 2.25, "y": 3}, + {"x": 3.25, "y": 3}, + {"x": 4.25, "y": 3}, + {"x": 5.25, "y": 3}, + {"x": 6.25, "y": 3}, + {"x": 7.25, "y": 3}, + {"x": 8.25, "y": 3}, + {"x": 9.25, "y": 3}, + {"x": 10.25, "y": 3}, + {"x": 11.25, "y": 3}, + {"x": 12.25, "y": 3, "w": 1.75}, + {"x": 14, "y": 3}, + {"x": 15, "y": 3}, + + {"x": 0, "y": 4, "w": 1.25}, + {"x": 1.25, "y": 4, "w": 1.25}, + {"x": 2.5, "y": 4, "w": 1.25}, + {"x": 3.75, "y": 4, "w": 6.25}, + {"x": 10, "y": 4}, + {"x": 11, "y": 4}, + {"x": 12, "y": 4}, + {"x": 13, "y": 4}, + {"x": 14, "y": 4}, + {"x": 15, "y": 4} + ] + } + } +} diff --git a/keyboards/keygem/kg65rgbv2/keymaps/default/keymap.c b/keyboards/keygem/kg65rgbv2/keymaps/default/keymap.c new file mode 100644 index 00000000000..9d7c31fea20 --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/keymaps/default/keymap.c @@ -0,0 +1,40 @@ +/* +Copyright 2022 +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 { + _LAYER0, + _LAYER1, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_65_ansi( + KC_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_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_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_LAYER1] = LAYOUT_65_ansi( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, QK_BOOT, KC_TRNS, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ) + +}; \ No newline at end of file diff --git a/keyboards/keygem/kg65rgbv2/keymaps/via/keymap.c b/keyboards/keygem/kg65rgbv2/keymaps/via/keymap.c new file mode 100644 index 00000000000..21824528c1f --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/keymaps/via/keymap.c @@ -0,0 +1,58 @@ +/* +Copyright 2022 +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 { + _LAYER0, + _LAYER1, + _LAYER2, + _LAYER3, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [_LAYER0] = LAYOUT_65_ansi( + KC_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_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_DEL, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RIGHT + ), + + [_LAYER1] = LAYOUT_65_ansi( + KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_DEL, KC_TRNS, + KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_TRNS, KC_PSCR, KC_SLCK, KC_PAUSE, QK_BOOT, KC_TRNS, + KC_TRNS, RGB_SPI, RGB_SPD, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, NK_TOGG, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_LAYER2] = LAYOUT_65_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS + ), + + [_LAYER3] = LAYOUT_65_ansi( + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, + KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 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/keygem/kg65rgbv2/keymaps/via/rules.mk b/keyboards/keygem/kg65rgbv2/keymaps/via/rules.mk new file mode 100644 index 00000000000..1e5b99807cb --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/keygem/kg65rgbv2/kg65rgbv2.c b/keyboards/keygem/kg65rgbv2/kg65rgbv2.c new file mode 100644 index 00000000000..f714accbf4b --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/kg65rgbv2.c @@ -0,0 +1,14 @@ +/* +Copyright 2022 +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 "kg65rgbv2.h" diff --git a/keyboards/keygem/kg65rgbv2/kg65rgbv2.h b/keyboards/keygem/kg65rgbv2/kg65rgbv2.h new file mode 100644 index 00000000000..44415a1894f --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/kg65rgbv2.h @@ -0,0 +1,32 @@ +/* +Copyright 2022 +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +#pragma once + +#include "quantum.h" + +/* TF60 ANSI Keymap Definitions */ +#define LAYOUT_65_ansi( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, K3D, K3E, \ + K40, K41, K42, K45, K49, K4A, K4B, K4C, K4D, K4E \ +) { \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, K2E }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, K3C, K3D, K3E }, \ + { K40, K41, K42, KC_NO, KC_NO, K45, KC_NO, KC_NO, KC_NO, K49, K4A, K4B, K4C, K4D, K4E } \ +} diff --git a/keyboards/keygem/kg65rgbv2/readme.md b/keyboards/keygem/kg65rgbv2/readme.md new file mode 100644 index 00000000000..20900cb861a --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/readme.md @@ -0,0 +1,26 @@ +# Keygem KG65 RGB V2 + +The following is the QMK Firmware for the FJLabs TF65 RGB V2 PCB, a universal tray mount 65% hotswap PCB with per key RGB LED's. + +The PCB will feature: +* Kailh Hotswap sockets +* QMK & VIA compatibility +* Per-Key RGB LED's + + +* Keyboard Maintainer: Keygem +* Hardware Supported: KG65 RGB V2 + +Make example for this keyboard (after setting up your build environment): + + make keygem/kg65rgbv2: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). + +## 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 `RESET` if it is available \ No newline at end of file diff --git a/keyboards/keygem/kg65rgbv2/rules.mk b/keyboards/keygem/kg65rgbv2/rules.mk new file mode 100644 index 00000000000..14620e11afb --- /dev/null +++ b/keyboards/keygem/kg65rgbv2/rules.mk @@ -0,0 +1,24 @@ +# MCU name +MCU = atmega32u4 + +# Processor frequency +F_CPU = 8000000 + +# Bootloader selection +BOOTLOADER = atmel-dfu + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output + + +LAYOUTS = 65_ansi From 7b7255553ceb33fc77ac7bd691ce355097262207 Mon Sep 17 00:00:00 2001 From: Max Renner Date: Wed, 28 Sep 2022 14:21:16 -0500 Subject: [PATCH 12/34] [Keymap] Add rennerom planck layout (#17283) Co-authored-by: Drashna Jaelre Co-authored-by: Ryan --- keyboards/planck/keymaps/rennerom/config.h | 38 +++++ keyboards/planck/keymaps/rennerom/keymap.c | 174 ++++++++++++++++++++ keyboards/planck/keymaps/rennerom/readme.md | 2 + keyboards/planck/keymaps/rennerom/rules.mk | 1 + 4 files changed, 215 insertions(+) create mode 100644 keyboards/planck/keymaps/rennerom/config.h create mode 100644 keyboards/planck/keymaps/rennerom/keymap.c create mode 100644 keyboards/planck/keymaps/rennerom/readme.md create mode 100644 keyboards/planck/keymaps/rennerom/rules.mk diff --git a/keyboards/planck/keymaps/rennerom/config.h b/keyboards/planck/keymaps/rennerom/config.h new file mode 100644 index 00000000000..af93b5e2cec --- /dev/null +++ b/keyboards/planck/keymaps/rennerom/config.h @@ -0,0 +1,38 @@ +// Copyright 2022 Max Renner (@rennerom) +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#ifdef AUDIO_ENABLE + #define STARTUP_SONG SONG(PLANCK_SOUND) + // #define STARTUP_SONG SONG(NO_SOUND) +/* + #define DEFAULT_LAYER_SONGS { SONG(QWERTY_SOUND), \ + SONG(COLEMAK_SOUND), \ + SONG(DVORAK_SOUND) \ + } +*/ +#endif + +#define TAPPING_TERM 200 + +/* + * MIDI options + */ + +/* enable basic MIDI features: + - MIDI notes can be sent when in Music mode is on +*/ + +#define MIDI_BASIC + +/* enable advanced MIDI features: + - MIDI notes can be added to the keymap + - Octave shift and transpose + - Virtual sustain, portamento, and modulation wheel + - etc. +*/ +//#define MIDI_ADVANCED + +// Most tactile encoders have detents every 4 stages +//#define ENCODER_RESOLUTION 4 diff --git a/keyboards/planck/keymaps/rennerom/keymap.c b/keyboards/planck/keymaps/rennerom/keymap.c new file mode 100644 index 00000000000..0d98aac9c14 --- /dev/null +++ b/keyboards/planck/keymaps/rennerom/keymap.c @@ -0,0 +1,174 @@ +// Copyright 2022 Max Renner (@rennerom) +// SPDX-License-Identifier: GPL-2.0-or-later + +#include QMK_KEYBOARD_H +#include "muse.h" + + +enum planck_layers { + _QWERTY, + _LOWER, + _RAISE, + _ADJUST, + _FN, + _NAV +}; + + +#define LOWER MO(_LOWER) +#define RAISE MO(_RAISE) +#define ESCNAV LT(_NAV, KC_ESC) +#define WORDL LALT(KC_LEFT) +#define WORDR LALT(KC_RGHT) +#define EOL LGUI(KC_RIGHT) +#define BOL LGUI(KC_LEFT) +#define SPOTLT LGUI(KC_SPC) +#define VBA LSFT(LALT(KC_F11)) +#define UNDO LGUI(KC_Z) +#define CUT LGUI(KC_X) +#define COPY LGUI(KC_C) +#define PSTE LGUI(KC_V) +#define ALL LGUI(KC_A) +#define FIND LGUI(KC_F) +#define SAVE LGUI(KC_S) + + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +/* Qwerty + * ,-----------------------------------------------------------------------------------. + * | Tab | Q | W | E | R | T | Y | U | I | O | P | Bksp | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * |ESCNAV| A | S | D | F | G | H | J | K | L | ; | " | + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | Shift| Z | X | C | V | B | N | M | , | . | / |shfent| + * |------+------+------+------+------+------+------+------+------+------+------+------| + * | fn | Ctrl | Alt | GUI |Lower | Space |Raise | Left | Down | Up |Right | + * `-----------------------------------------------------------------------------------' + */ +[_QWERTY] = LAYOUT_planck_grid( + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_BSPC, + ESCNAV, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_SFTENT , + FN, KC_LCTL, KC_LALT, KC_LGUI, LOWER, KC_SPC, KC_SPC, RAISE, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT +), + +/* fn + * ,------------------------------------------------------------------------------------. + * | | f1 | f2 | f3 | f4 | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | f5 | f6 | f7 | f8 | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | f9 | f10 | f11 | f12 | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + */ + +[_FN] = LAYOUT_planck_grid( + _______, KC_F1, KC_F2, KC_F3, KC_F4, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F5, KC_F6, KC_F7, KC_F8, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* NAV + * ,------------------------------------------------------------------------------------. + * | | | WORDL| WORDR| | | | |Insert| | | Del | + * ,------------------------------------------------------------------------------------. + * | | | | | | | Left | Down | Up | Right| | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | |OpenSpotlight| | | | | | + * ,------------------------------------------------------------------------------------. + */ + +[_NAV] = LAYOUT_planck_grid( + _______, _______, WORDL, WORDR, _______, _______, _______, KC_INS , _______, _______, _______, KC_DEL, + _______, ALL, SAVE, _______, FIND, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, _______, _______, + _______, UNDO, CUT, COPY, PSTE, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, SPOTLT, SPOTLT, _______, _______, _______, _______, _______ +), + +/* Lower + * ,-----------------------------------------------------------------------------------. + * | ` ~ | 1 ! | 2 @ | 3 # | 4 $ | 5 % | 6 ^ | 7 & | 8 * | 9 ( | 0 ) | Bksp | + * ,------------------------------------------------------------------------------------. + * | Del | { [ | } ] | ( | ) | - _ | + | = | * | % | _ | \ | | + * ,------------------------------------------------------------------------------------. + * | | ! | @ | # | $ | % | ^ | & | * | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + */ + +[_LOWER] = LAYOUT_planck_grid( + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_BSPC, + KC_DEL, KC_LBRC, KC_RBRC, KC_LPRN, KC_RPRN, KC_MINS, KC_PLUS, KC_EQL, KC_ASTR, KC_PERC, KC_UNDS, KC_BSLS, + _______, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +), + +/* Raise + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | Del | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | |Brite-|Brite+| Vol- | Vol+ | + * ,------------------------------------------------------------------------------------. + */ + +[_RAISE] = LAYOUT_planck_grid( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + KC_DEL, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, VBA, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_VOLD, KC_VOLU +), + +/* Adjust (Lower + Raise) + * ,------------------------------------------------------------------------------------. + * | | f1 | f2 | f3 | f4 |RGBTOG| |HUE - |HUE + | |Debug |Reset | + * ,------------------------------------------------------------------------------------. + * | | f5 | f6 | f7 | f8 |RGBM -|RGBM +|SAT - |SAT + | | | | + * ,------------------------------------------------------------------------------------. + * | | f9 | f10 | f11 | f12 |RGBsp-|RGBsp+|VIB - |VIB + | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + */ + +[_ADJUST] = LAYOUT_planck_grid( + _______, KC_F1, KC_F2, KC_F3, KC_F4, RGB_TOG, _______, RGB_HUD, RGB_HUI, _______, DEBUG, RESET, + _______, KC_F5, KC_F6, KC_F7, KC_F8, RGB_RMOD, RGB_MOD, RGB_SAD, RGB_SAI, _______, _______, _______, + _______, KC_F9, KC_F10, KC_F11, KC_F12, RGB_SPD, RGB_SPI, RGB_VAD, RGB_VAI, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ +) + + +}; + +/* fn + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + * | | | | | | | | | | | | | + * ,------------------------------------------------------------------------------------. + */ + +//#ifdef AUDIO_ENABLE +// float plover_song[][2] = SONG(PLOVER_SOUND); +// float plover_gb_song[][2] = SONG(PLOVER_GOODBYE_SOUND); +//#endif + + +layer_state_t layer_state_set_user(layer_state_t state) { + return update_tri_layer_state(state, _LOWER, _RAISE, _ADJUST); +} diff --git a/keyboards/planck/keymaps/rennerom/readme.md b/keyboards/planck/keymaps/rennerom/readme.md new file mode 100644 index 00000000000..81d580bba30 --- /dev/null +++ b/keyboards/planck/keymaps/rennerom/readme.md @@ -0,0 +1,2 @@ +# A Modified Default Planck Layout + diff --git a/keyboards/planck/keymaps/rennerom/rules.mk b/keyboards/planck/keymaps/rennerom/rules.mk new file mode 100644 index 00000000000..acf0896a321 --- /dev/null +++ b/keyboards/planck/keymaps/rennerom/rules.mk @@ -0,0 +1 @@ +SRC += muse.c \ No newline at end of file From 269600f64072e79e7c248f7c2dd97bf310be2fcc Mon Sep 17 00:00:00 2001 From: Luis Carlos Date: Wed, 28 Sep 2022 13:22:59 -0600 Subject: [PATCH 13/34] Update feature_tap_dance.md (#18509) Fixed typo --- docs/feature_tap_dance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/feature_tap_dance.md b/docs/feature_tap_dance.md index f3c203232b7..cbee4d0c34b 100644 --- a/docs/feature_tap_dance.md +++ b/docs/feature_tap_dance.md @@ -42,7 +42,7 @@ For more complicated cases, like blink the LEDs, fiddle with the backlighting, a 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! -Let's go over the three functions mentioned in `ACTION_TAP_DANCE_FN_ADVANCED` in a little more detail. They all receive the same too arguments: a pointer to a structure that holds all dance related state information, and a pointer to a use case specific state variable. The three functions differ in when they are called. The first, `on_each_tap_fn()`, is called every time the tap dance key is *pressed*. Before it is called, the counter is incremented and the timer is reset. The second function, `on_dance_finished_fn()`, is called when the tap dance is interrupted or ends because `TAPPING_TERM` milliseconds have passed since the last tap. When the `finished` field of the dance state structure is set to `true`, the `on_dance_finished_fn()` is skipped. After `on_dance_finished_fn()` was called or would have been called, but no sooner than when the tap dance key is *released*, `on_dance_reset_fn()` is called. It is possible to end a tap dance immediately, skipping `on_dance_finished_fn()`, but not `on_dance_reset_fn`, by calling `reset_tap_dance(state)`. +Let's go over the three functions mentioned in `ACTION_TAP_DANCE_FN_ADVANCED` in a little more detail. They all receive the same two arguments: a pointer to a structure that holds all dance related state information, and a pointer to a use case specific state variable. The three functions differ in when they are called. The first, `on_each_tap_fn()`, is called every time the tap dance key is *pressed*. Before it is called, the counter is incremented and the timer is reset. The second function, `on_dance_finished_fn()`, is called when the tap dance is interrupted or ends because `TAPPING_TERM` milliseconds have passed since the last tap. When the `finished` field of the dance state structure is set to `true`, the `on_dance_finished_fn()` is skipped. After `on_dance_finished_fn()` was called or would have been called, but no sooner than when the tap dance key is *released*, `on_dance_reset_fn()` is called. It is possible to end a tap dance immediately, skipping `on_dance_finished_fn()`, but not `on_dance_reset_fn`, by calling `reset_tap_dance(state)`. To accomplish this logic, the tap dance mechanics use three entry points. The main entry point is `process_tap_dance()`, called from `process_record_quantum()` *after* `process_record_kb()` and `process_record_user()`. This function is responsible for calling `on_each_tap_fn()` and `on_dance_reset_fn()`. In order to handle interruptions of a tap dance, another entry point, `preprocess_tap_dance()` is run right at the beginning of `process_record_quantum()`. This function checks whether the key pressed is a tap-dance key. If it is not, and a tap-dance was in action, we handle that first, and enqueue the newly pressed key. If it is a tap-dance key, then we check if it is the same as the already active one (if there's one active, that is). If it is not, we fire off the old one first, then register the new one. Finally, `tap_dance_task()` periodically checks whether `TAPPING_TERM` has passed since the last key press and finishes a tap dance if that is the case. From d050e689f511ad3af4dfd2b9705a49f0f8d71d92 Mon Sep 17 00:00:00 2001 From: Alabahuy Date: Thu, 29 Sep 2022 02:23:17 +0700 Subject: [PATCH 14/34] [Keyboard] add rart80 (#18287) --- keyboards/rart/rart80/config.h | 63 ++++++++++ keyboards/rart/rart80/info.json | 113 ++++++++++++++++++ .../rart/rart80/keymaps/default/keymap.c | 55 +++++++++ keyboards/rart/rart80/keymaps/via/keymap.c | 55 +++++++++ keyboards/rart/rart80/keymaps/via/rules.mk | 2 + keyboards/rart/rart80/rart80.c | 15 +++ keyboards/rart/rart80/rart80.h | 36 ++++++ keyboards/rart/rart80/readme.md | 30 +++++ keyboards/rart/rart80/rules.mk | 22 ++++ 9 files changed, 391 insertions(+) create mode 100644 keyboards/rart/rart80/config.h create mode 100644 keyboards/rart/rart80/info.json create mode 100644 keyboards/rart/rart80/keymaps/default/keymap.c create mode 100644 keyboards/rart/rart80/keymaps/via/keymap.c create mode 100644 keyboards/rart/rart80/keymaps/via/rules.mk create mode 100644 keyboards/rart/rart80/rart80.c create mode 100644 keyboards/rart/rart80/rart80.h create mode 100644 keyboards/rart/rart80/readme.md create mode 100644 keyboards/rart/rart80/rules.mk diff --git a/keyboards/rart/rart80/config.h b/keyboards/rart/rart80/config.h new file mode 100644 index 00000000000..21c88a18cff --- /dev/null +++ b/keyboards/rart/rart80/config.h @@ -0,0 +1,63 @@ +/* +Copyright 2022 Alabahuy + +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" + +/* key matrix size */ +#define MATRIX_ROWS 6 +#define MATRIX_COLS 17 + +/* key matrix pins */ +#define MATRIX_ROW_PINS { B3, A1, B0, C3, D0, D1 } +#define MATRIX_COL_PINS { A2, A3, A4, A5, A6, A7, C7, C6, C5, C4, C2, C1, C0, D7, B4, B2, B1 } + +/* COL2ROW or ROW2COL */ +#define DIODE_DIRECTION COL2ROW + +/* Set 0 if debouncing isn't needed */ +#define DEBOUNCE 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 + +#define LED_CAPS_LOCK_PIN D5 +#define LED_PIN_ON_STATE 0 + +#define BOOTMAGIC_LITE_ROW 0 +#define BOOTMAGIC_LITE_COLUMN 1 + +#define RGB_DI_PIN C0 +#ifdef RGB_DI_PIN +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_TWINKLE +/* You can change the number of RGB strip */ +#define RGBLED_NUM 6 +#define RGBLIGHT_HUE_STEP 8 +#define RGBLIGHT_SAT_STEP 8 +#define RGBLIGHT_VAL_STEP 8 +#define RGBLIGHT_LIMIT_VAL 240 +#define RGBLIGHT_SLEEP +#endif diff --git a/keyboards/rart/rart80/info.json b/keyboards/rart/rart80/info.json new file mode 100644 index 00000000000..9c6c52f33cf --- /dev/null +++ b/keyboards/rart/rart80/info.json @@ -0,0 +1,113 @@ +{ + "keyboard_name": "RART80 Hotswap", + "manufacturer": "Alabahuy", + "url": "", + "maintainer": "Alabahuy", + "usb": { + "vid": "0x414C", + "pid": "0x0080", + "device_version": "0.0.1" + }, + "layouts": { + "LAYOUT_all": { + "layout": [ + {"x":0, "y":0}, + {"x":1.25, "y":0}, + {"x":2.25, "y":0}, + {"x":3.25, "y":0}, + {"x":4.25, "y":0}, + {"x":5.5, "y":0}, + {"x":6.5, "y":0}, + {"x":7.5, "y":0}, + {"x":8.5, "y":0}, + {"x":9.75, "y":0}, + {"x":10.75, "y":0}, + {"x":11.75, "y":0}, + {"x":12.75, "y":0}, + {"x":14, "y":0}, + {"x":15.25, "y":0}, + {"x":16.25, "y":0}, + {"x":17.25, "y":0}, + + {"x":0, "y":1.25}, + {"x":1, "y":1.25}, + {"x":2, "y":1.25}, + {"x":3, "y":1.25}, + {"x":4, "y":1.25}, + {"x":5, "y":1.25}, + {"x":6, "y":1.25}, + {"x":7, "y":1.25}, + {"x":8, "y":1.25}, + {"x":9, "y":1.25}, + {"x":10, "y":1.25}, + {"x":11, "y":1.25}, + {"x":12, "y":1.25}, + {"x":13, "y":1.25}, + {"x":14, "y":1.25}, + {"x":15.25, "y":1.25}, + {"x":16.25, "y":1.25}, + {"x":17.25, "y":1.25}, + + {"x":0, "y":2.25, "w":1.5}, + {"x":1.5, "y":2.25}, + {"x":2.5, "y":2.25}, + {"x":3.5, "y":2.25}, + {"x":4.5, "y":2.25}, + {"x":5.5, "y":2.25}, + {"x":6.5, "y":2.25}, + {"x":7.5, "y":2.25}, + {"x":8.5, "y":2.25}, + {"x":9.5, "y":2.25}, + {"x":10.5, "y":2.25}, + {"x":11.5, "y":2.25}, + {"x":12.5, "y":2.25}, + {"x":13.5, "y":2.25, "w":1.5}, + {"x":15.25, "y":2.25}, + {"x":16.25, "y":2.25}, + {"x":17.25, "y":2.25}, + + {"x":0, "y":3.25, "w":1.75}, + {"x":1.75, "y":3.25}, + {"x":2.75, "y":3.25}, + {"x":3.75, "y":3.25}, + {"x":4.75, "y":3.25}, + {"x":5.75, "y":3.25}, + {"x":6.75, "y":3.25}, + {"x":7.75, "y":3.25}, + {"x":8.75, "y":3.25}, + {"x":9.75, "y":3.25}, + {"x":10.75, "y":3.25}, + {"x":11.75, "y":3.25}, + {"x":12.75, "y":3.25, "w":2.25}, + + {"x":0, "y":4.25, "w":2.25}, + {"x":2.25, "y":4.25}, + {"x":3.25, "y":4.25}, + {"x":4.25, "y":4.25}, + {"x":5.25, "y":4.25}, + {"x":6.25, "y":4.25}, + {"x":7.25, "y":4.25}, + {"x":8.25, "y":4.25}, + {"x":9.25, "y":4.25}, + {"x":10.25, "y":4.25}, + {"x":11.25, "y":4.25}, + {"x":12.25, "y":4.25, "w":1.75}, + {"x":14, "y":4.25}, + {"x":15.25, "y":4.25}, + {"x":16.25, "y":4.25}, + {"x":17.25, "y":4.25}, + + {"x":0, "y":5.25, "w":1.5}, + {"x":1.5, "y":5.25}, + {"x":2.5, "y":5.25, "w":1.5}, + {"x":4, "y":5.25, "w":7}, + {"x":11, "y":5.25, "w":1.5 }, + {"x":12.5, "y":5.25}, + {"x":13.5, "y":5.25, "w":1.5}, + {"x":15.25, "y":5.25 }, + {"x":16.25, "y":5.25 }, + {"x":17.25, "y":5.25 } + ] + } + } +} diff --git a/keyboards/rart/rart80/keymaps/default/keymap.c b/keyboards/rart/rart80/keymaps/default/keymap.c new file mode 100644 index 00000000000..d3b42c56e5a --- /dev/null +++ b/keyboards/rart/rart80/keymaps/default/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2022 Alabahuy + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), _______, KC_UP, _______, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/rart/rart80/keymaps/via/keymap.c b/keyboards/rart/rart80/keymaps/via/keymap.c new file mode 100644 index 00000000000..8b49a8856c5 --- /dev/null +++ b/keyboards/rart/rart80/keymaps/via/keymap.c @@ -0,0 +1,55 @@ +/* Copyright 2022 Alabahuy + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + + [0] = LAYOUT_all( + KC_ESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), _______, KC_UP, _______, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + + [1] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, QK_BOOT, _______, _______, _______, _______, _______, + _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [2] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + + [3] = LAYOUT_all( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) + +}; diff --git a/keyboards/rart/rart80/keymaps/via/rules.mk b/keyboards/rart/rart80/keymaps/via/rules.mk new file mode 100644 index 00000000000..36b7ba9cbc9 --- /dev/null +++ b/keyboards/rart/rart80/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +LTO_ENABLE = yes diff --git a/keyboards/rart/rart80/rart80.c b/keyboards/rart/rart80/rart80.c new file mode 100644 index 00000000000..8eeb608a421 --- /dev/null +++ b/keyboards/rart/rart80/rart80.c @@ -0,0 +1,15 @@ +/* Copyright 2022 Alabahuy + * 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 "rart80.h" \ No newline at end of file diff --git a/keyboards/rart/rart80/rart80.h b/keyboards/rart/rart80/rart80.h new file mode 100644 index 00000000000..e50ef380cfb --- /dev/null +++ b/keyboards/rart/rart80/rart80.h @@ -0,0 +1,36 @@ +/* Copyright 2022 Alabahuy + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#pragma once + +#include "quantum.h" + +#define XXX KC_NO + +#define LAYOUT_all( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K2D, K1E, K1F, K1G, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K3D, K2E, K2F, K2G, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, \ + K40, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, K4G, \ + K50, K51, K52, K56, K5B, K5C, K5D, K5E, K5F, K5G \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, K0G }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F, K1G }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F, K2G }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX, XXX, XXX }, \ + { K40, XXX, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F, K4G }, \ + { K50, K51, K52, XXX, XXX, XXX, K56, XXX, XXX, XXX, XXX, K5B, K5C, K5D, K5E, K5F, K5G }, \ +} diff --git a/keyboards/rart/rart80/readme.md b/keyboards/rart/rart80/readme.md new file mode 100644 index 00000000000..f57c9131ad3 --- /dev/null +++ b/keyboards/rart/rart80/readme.md @@ -0,0 +1,30 @@ +# [RART 80 Hotswap] + +![RART 80](https://i.imgur.com/QCeTuBeh.png) + +PCB layout TKL, based on IMKG (Indonesia Mechanical Keyboard Group) + +* Keyboard Maintainer: [Alabahuy](https://github.com/alabahuy) +* Hardware Supported: RART80 PCB, Atmega32a, Type C +* Hardware Availability: Private GB + +Make example for this keyboard (after setting up your build environment): + + make rart/rart80:default + +Flashing example for this keyboard: + + make rart/rart80:default:flash + +## Bootloader + +Enter the bootloader in 3 ways: + +* To Enter the bootloader you can short and hold boot pin, short reset pin, release reset and boot pin. + +* Bootmagic reset, hold down the key at (0,0) in the matrix (ESC) and plug in the keyboard. + +* Bootloader reset on the matrix, hold down key at (0,1) and plug 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). diff --git a/keyboards/rart/rart80/rules.mk b/keyboards/rart/rart80/rules.mk new file mode 100644 index 00000000000..3f9d76149a8 --- /dev/null +++ b/keyboards/rart/rart80/rules.mk @@ -0,0 +1,22 @@ +# MCU name +MCU = atmega32a + +# Bootloader selection +BOOTLOADER = usbasploader + +# Processor frequency +F_CPU = 16000000 + +# Build Options +# change yes to no to disable +# +BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite +MOUSEKEY_ENABLE = yes # Mouse keys +EXTRAKEY_ENABLE = yes # Audio control and System control +CONSOLE_ENABLE = no # Console for debug +COMMAND_ENABLE = yes # Commands for debug and configuration +NKRO_ENABLE = yes # Enable N-Key Rollover +BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality +RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow +AUDIO_ENABLE = no # Audio output +ENCODER_ENABLE = no From d6f77637c5fe89cb70be4b33cc445a6c55a46d26 Mon Sep 17 00:00:00 2001 From: Mike Ryan Date: Wed, 28 Sep 2022 14:23:42 -0500 Subject: [PATCH 15/34] [Keyboard] dygma/raise: multiple fixes and improvements (#18361[) --- keyboards/handwired/dygma/raise/ansi/ansi.c | 14 ++--- keyboards/handwired/dygma/raise/config.h | 30 +++++++++++ keyboards/handwired/dygma/raise/iso/iso.c | 16 +++--- keyboards/handwired/dygma/raise/leds.c | 53 +++++++++---------- keyboards/handwired/dygma/raise/leds.h | 6 --- keyboards/handwired/dygma/raise/post_rules.mk | 3 ++ keyboards/handwired/dygma/raise/raise.c | 1 - keyboards/handwired/dygma/raise/rules.mk | 4 +- 8 files changed, 76 insertions(+), 51 deletions(-) create mode 100644 keyboards/handwired/dygma/raise/post_rules.mk diff --git a/keyboards/handwired/dygma/raise/ansi/ansi.c b/keyboards/handwired/dygma/raise/ansi/ansi.c index 652b6551d2f..8c88ced12fa 100644 --- a/keyboards/handwired/dygma/raise/ansi/ansi.c +++ b/keyboards/handwired/dygma/raise/ansi/ansi.c @@ -28,7 +28,7 @@ const uint8_t led_map[DRIVER_LED_TOTAL] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 0xff, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 68, 69, // right side - 36 keys includes LP - 0 + LPH, 1 + LPH, 2 + LPH, 3 + LPH, 4 + LPH, 5 + LPH, 6 + LPH, 15 + LPH, 8 + LPH, 9 + LPH, 10 + LPH, 11 + LPH, 12 + LPH, 13 + LPH, 14 + LPH, 7 + LPH, 16 + LPH, 17 + LPH, 18 + LPH, 19 + LPH, + 0 + LPH, 1 + LPH, 2 + LPH, 3 + LPH, 4 + LPH, 5 + LPH, 6 + LPH, 7 + LPH, 8 + LPH, 9 + LPH, 10 + LPH, 11 + LPH, 12 + LPH, 13 + LPH, 14 + LPH, 15 + LPH, 16 + LPH, 17 + LPH, 18 + LPH, 19 + LPH, 20 + LPH, 21 + LPH, 22 + LPH, 23 + LPH, 24 + LPH, 25 + LPH, 26 + LPH, 27 + LPH, 28 + LPH, 29 + LPH, 30 + LPH, 31 + LPH, 32 + LPH, 33 + LPH, 68 + LPH, 69 + LPH, // left under glow - 30 @@ -50,11 +50,11 @@ led_config_t g_led_config = { { { 26 , 27 , 28 , 29 , 30 , NO_LED , 31 , 32 } , // right hand - { NO_LED , 6 + LHK , 5 + LHK , 4 + LHK , 3 + LHK , 2 + LHK , 1 + LHK , 0 + LHK } , - { 14 + LHK , 13 + LHK , 12 + LHK , 11 + LHK , 10 + LHK , 9 + LHK , 8 + LHK , 7 + LHK } , - { NO_LED , 21 + LHK , 20 + LHK , 19 + LHK , 18 + LHK , 17 + LHK , 16 + LHK , 15 + LHK } , - { NO_LED , NO_LED , 27 + LHK , 26 + LHK , 25 + LHK , 24 + LHK , 23 + LHK , 22 + LHK } , - { 35 + LHK , 34 + LHK , 33 + LHK , 32 + LHK , 31 + LHK , 30 + LHK , 29 + LHK , 28 + LHK } + { 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}, @@ -72,7 +72,7 @@ led_config_t g_led_config = { { {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, + 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, diff --git a/keyboards/handwired/dygma/raise/config.h b/keyboards/handwired/dygma/raise/config.h index 64c6bad8e87..1596807ae35 100644 --- a/keyboards/handwired/dygma/raise/config.h +++ b/keyboards/handwired/dygma/raise/config.h @@ -25,3 +25,33 @@ #define DEBOUNCE 0 #define DRIVER_LED_TOTAL 132 + +#ifdef RGB_MATRIX_ENABLE +// At the default flush limit of 16ms (~62.5 fps), the matrix scan rate is approximately +// ~140 scans per second under full load (when changes are being made to the LED state). +// Such a low scan rate will have impact the keyboard's accuracy for faster typists. +// +// With RGB completely disabled, the matrix scan rate is ~660 scans per second, and typing +// accuracy feels on par with the Dygma Raise Neuron. +// +// At 100ms (10 fps), the matrix scan rate is ~355 scans per second under full load, and typing +// accuracy is reasonably good. +#define RGB_MATRIX_LED_FLUSH_LIMIT 100 +#define RGB_DISABLE_WHEN_USB_SUSPENDED // turn off effects when suspended + +#define RGB_MATRIX_KEYPRESSES +#define RGB_MATRIX_FRAMEBUFFER_EFFECTS + +// enabled only if RGB_MATRIX_FRAMEBUFFER_EFFECTS is defined +#define ENABLE_RGB_MATRIX_TYPING_HEATMAP +//# define ENABLE_RGB_MATRIX_DIGITAL_RAIN +// enabled only of RGB_MATRIX_KEYPRESSES or RGB_MATRIX_KEYRELEASES is defined +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_SIMPLE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_WIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTIWIDE +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_CROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTICROSS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_NEXUS +#define ENABLE_RGB_MATRIX_SOLID_REACTIVE_MULTINEXUS +#endif diff --git a/keyboards/handwired/dygma/raise/iso/iso.c b/keyboards/handwired/dygma/raise/iso/iso.c index ec2607d06ce..596b6786384 100644 --- a/keyboards/handwired/dygma/raise/iso/iso.c +++ b/keyboards/handwired/dygma/raise/iso/iso.c @@ -50,21 +50,21 @@ led_config_t g_led_config = { { { 26 , 27 , 28 , 29 , 30 , NO_LED , 31 , 32 } , // right hand - { NO_LED , 6 + LHK , 5 + LHK , 4 + LHK , 3 + LHK , 2 + LHK , 1 + LHK , 0 + LHK } , - { 14 + LHK , 13 + LHK , 12 + LHK , 11 + LHK , 10 + LHK , 9 + LHK , 8 + LHK , 7 + LHK } , - { NO_LED , 21 + LHK , 20 + LHK , 19 + LHK , 18 + LHK , 17 + LHK , 16 + LHK , 15 + LHK } , - { NO_LED , NO_LED , 27 + LHK , 26 + LHK , 25 + LHK , 24 + LHK , 23 + LHK , 22 + LHK } , - { 35 + LHK , 34 + LHK , 33 + LHK , 32 + LHK , 31 + LHK , 30 + LHK , 29 + LHK , 28 + LHK } + { 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}, + {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}, + {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}, + {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}, diff --git a/keyboards/handwired/dygma/raise/leds.c b/keyboards/handwired/dygma/raise/leds.c index 3f6037cbfae..64f03d722af 100644 --- a/keyboards/handwired/dygma/raise/leds.c +++ b/keyboards/handwired/dygma/raise/leds.c @@ -24,16 +24,17 @@ #include "print.h" #include "leds.h" -struct __attribute__((packed)) cRGB { +// Color order of LEDs is Green, Red, Blue. +typedef struct PACKED { uint8_t r; uint8_t g; uint8_t b; -}; +} raiseRGB; #define LEDS_PER_HAND 72 #define LED_BANKS 9 #define LEDS_PER_BANK 8 -#define LED_BYTES_PER_BANK (sizeof(cRGB) * LEDS_PER_BANK) +#define LED_BYTES_PER_BANK (sizeof(raiseRGB) * LEDS_PER_BANK) // shifting << 1 is because drivers/chibios/i2c_master.h expects the address // shifted. @@ -44,37 +45,28 @@ struct __attribute__((packed)) cRGB { #define LEFT 0 #define RIGHT 1 -static cRGB led_state[2 * LEDS_PER_HAND]; - -void set_all_leds_to(uint8_t r, uint8_t g, uint8_t b) { - uint8_t buf[] = {TWI_CMD_LED_SET_ALL_TO, b, g, r}; - i2c_transmit(I2C_ADDR(LEFT), buf, sizeof(buf), I2C_TIMEOUT); - wait_us(10); - i2c_transmit(I2C_ADDR(RIGHT), buf, sizeof(buf), I2C_TIMEOUT); - wait_us(10); -} - -void set_led_to(int led, uint8_t r, uint8_t g, uint8_t b) { - int sled = led_map[led]; - uint8_t buf[] = {TWI_CMD_LED_SET_ONE_TO, sled & 0x1f, b, g, r}; - int hand = (sled >= LEDS_PER_HAND) ? RIGHT : LEFT; - i2c_transmit(I2C_ADDR(hand), buf, sizeof(buf), I2C_TIMEOUT); - wait_us(10); -} +static raiseRGB led_pending[2 * LEDS_PER_HAND]; +static raiseRGB led_state[2 * LEDS_PER_HAND]; static void set_color(int index, uint8_t r, uint8_t g, uint8_t b) { int sled = led_map[index]; - - led_state[sled].r = r; - led_state[sled].g = g; - led_state[sled].b = b; + // The red component of the LED is apparently stronger than the others. + // From: https://github.com/keyboardio/Kaleidoscope/blob/aba8c9ee66bbb5ded15135618d2b2964ee82b2cc/plugins/Kaleidoscope-Hardware-Dygma-Raise/src/kaleidoscope/device/dygma/raise/RaiseSide.cpp#L235-L242 + if (r >= 26) { + r -= 26; + } + led_pending[sled].r = r; + led_pending[sled].g = g; + led_pending[sled].b = b; } static void set_color_all(uint8_t r, uint8_t g, uint8_t b) { for (int i = 0; i < DRIVER_LED_TOTAL; i++) set_color(i, r, g, b); } -static void init(void) {} +static void init(void) { + set_color_all(0,0,0); +} static void flush(void) { uint8_t command[1 + LED_BYTES_PER_BANK]; @@ -86,10 +78,17 @@ static void flush(void) { for (int hand = 0; hand < 2; hand++) { int addr = I2C_ADDR(hand); int i = (hand * LEDS_PER_HAND) + (bank * LEDS_PER_BANK); - uint8_t *bank_data = (uint8_t *)&led_state[i]; + + if (memcmp(&led_state[i], &led_pending[i], LED_BYTES_PER_BANK) == 0) { + // No change. + continue; + } + + // Update LED state + memcpy(&led_state[i], &led_pending[i], LED_BYTES_PER_BANK); command[0] = TWI_CMD_LED_BASE + bank; - memcpy(&command[1], bank_data, LED_BYTES_PER_BANK); + memcpy(&command[1], &led_pending[i], LED_BYTES_PER_BANK); i2c_transmit(addr, command, sizeof(command), I2C_TIMEOUT); // delay to prevent issues with the i2c bus diff --git a/keyboards/handwired/dygma/raise/leds.h b/keyboards/handwired/dygma/raise/leds.h index 8d70ed70b21..8964838aade 100644 --- a/keyboards/handwired/dygma/raise/leds.h +++ b/keyboards/handwired/dygma/raise/leds.h @@ -16,10 +16,4 @@ #pragma once -#include "quantum.h" -#include "rgb_matrix.h" - extern const uint8_t led_map[DRIVER_LED_TOTAL]; - -void set_all_leds_to(uint8_t r, uint8_t g, uint8_t b); -void set_led_to(int led, uint8_t r, uint8_t g, uint8_t b); diff --git a/keyboards/handwired/dygma/raise/post_rules.mk b/keyboards/handwired/dygma/raise/post_rules.mk new file mode 100644 index 00000000000..c6b77f75b31 --- /dev/null +++ b/keyboards/handwired/dygma/raise/post_rules.mk @@ -0,0 +1,3 @@ +ifeq ($(strip $(RGB_MATRIX_ENABLE)), yes) + SRC += leds.c +endif diff --git a/keyboards/handwired/dygma/raise/raise.c b/keyboards/handwired/dygma/raise/raise.c index d9023093b54..39e94e2e76f 100644 --- a/keyboards/handwired/dygma/raise/raise.c +++ b/keyboards/handwired/dygma/raise/raise.c @@ -17,6 +17,5 @@ #include "raise.h" void keyboard_post_init_kb(void) { - set_all_leds_to(0, 0, 0); keyboard_post_init_user(); } diff --git a/keyboards/handwired/dygma/raise/rules.mk b/keyboards/handwired/dygma/raise/rules.mk index b7ff577361a..ce7a89af8e0 100644 --- a/keyboards/handwired/dygma/raise/rules.mk +++ b/keyboards/handwired/dygma/raise/rules.mk @@ -10,7 +10,7 @@ BOOTLOADER = stm32-dfu # BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = no # Audio control and System control +EXTRAKEY_ENABLE = yes # Audio control and System control CONSOLE_ENABLE = no # Console for debug COMMAND_ENABLE = no # Commands for debug and configuration NKRO_ENABLE = no # Enable N-Key Rollover @@ -28,6 +28,6 @@ CUSTOM_MATRIX = lite RAW_ENABLE = yes QUANTUM_LIB_SRC += i2c_master.c -SRC += leds.c matrix.c +SRC += matrix.c DEFAULT_FOLDER = handwired/dygma/raise/ansi From c71bc77da16885e94c9ea26b411d44d2cb5a4c95 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 29 Sep 2022 11:02:36 +1000 Subject: [PATCH 16/34] Bump anothrNick/github-tag-action from 1.46.0 to 1.49.0 (#18515) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/auto_tag.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto_tag.yml b/.github/workflows/auto_tag.yml index 6205dbe11cc..904db4dcc9e 100644 --- a/.github/workflows/auto_tag.yml +++ b/.github/workflows/auto_tag.yml @@ -27,7 +27,7 @@ jobs: fetch-depth: 0 - name: Bump version and push tag - uses: anothrNick/github-tag-action@1.46.0 + uses: anothrNick/github-tag-action@1.49.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DEFAULT_BUMP: 'patch' From c705f0f85f0ef4ca3bdb110c810e7d4e8f395b46 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 28 Sep 2022 23:32:03 -0700 Subject: [PATCH 17/34] Mechlovin Zed65 Wearhaus66 Configurator Fixes (#18507) --- .../mechlovin/zed65/wearhaus66/info.json | 297 +++++++++++++----- .../mechlovin/zed65/wearhaus66/wearhaus66.h | 21 +- 2 files changed, 243 insertions(+), 75 deletions(-) diff --git a/keyboards/mechlovin/zed65/wearhaus66/info.json b/keyboards/mechlovin/zed65/wearhaus66/info.json index ac672ff1f65..4d71686d334 100644 --- a/keyboards/mechlovin/zed65/wearhaus66/info.json +++ b/keyboards/mechlovin/zed65/wearhaus66/info.json @@ -2,90 +2,241 @@ "keyboard_name": "Wearhaus66", "manufacturer": "Mechlovin Studio", "url": "", - "maintainer": "Mechlovin' Studio", + "maintainer": "mechlovin", "usb": { "vid": "0x4D4C", "pid": "0x6602", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_65_ansi_blocker": "LAYOUT_ansi_blocker", + "LAYOUT_65_iso_blocker": "LAYOUT_iso_blocker" + }, "layouts": { "LAYOUT_all": { "layout": [ - {"label":"0,0", "x":0, "y":0}, - {"label":"0,1", "x":1, "y":0}, - {"label":"0,2", "x":2, "y":0}, - {"label":"0,3", "x":3, "y":0}, - {"label":"0,4", "x":4, "y":0}, - {"label":"0,5", "x":5, "y":0}, - {"label":"0,6", "x":6, "y":0}, - {"label":"0,7", "x":7, "y":0}, - {"label":"0,8", "x":8, "y":0}, - {"label":"0,9", "x":9, "y":0}, - {"label":"0,10", "x":10, "y":0}, - {"label":"0,11", "x":11, "y":0}, - {"label":"0,12", "x":12, "y":0}, - {"label":"0,13", "x":13, "y":0}, - {"label":"1,13", "x":14, "y":0}, - {"label":"1,14", "x":15.25, "y":0.75}, - {"label":"1,0", "x":0, "y":1, "w":1.5}, - {"label":"1,1", "x":1.5, "y":1}, - {"label":"1,2", "x":2.5, "y":1}, - {"label":"1,3", "x":3.5, "y":1}, - {"label":"1,4", "x":4.5, "y":1}, - {"label":"1,5", "x":5.5, "y":1}, - {"label":"1,6", "x":6.5, "y":1}, - {"label":"1,7", "x":7.5, "y":1}, - {"label":"1,8", "x":8.5, "y":1}, - {"label":"1,9", "x":9.5, "y":1}, - {"label":"1,10", "x":10.5, "y":1}, - {"label":"1,11", "x":11.5, "y":1}, - {"label":"1,12", "x":12.5, "y":1}, - {"label":"2,12", "x":13.5, "y":1, "w":1.5}, - {"label":"2,14", "x":15.25, "y":1.75}, - {"label":"2,0", "x":0, "y":2, "w":1.75}, - {"label":"2,1", "x":1.75, "y":2}, - {"label":"2,2", "x":2.75, "y":2}, - {"label":"2,3", "x":3.75, "y":2}, - {"label":"2,4", "x":4.75, "y":2}, - {"label":"2,5", "x":5.75, "y":2}, - {"label":"2,6", "x":6.75, "y":2}, - {"label":"2,7", "x":7.75, "y":2}, - {"label":"2,8", "x":8.75, "y":2}, - {"label":"2,9", "x":9.75, "y":2}, - {"label":"2,10", "x":10.75, "y":2}, - {"label":"2,11", "x":11.75, "y":2}, - {"label":"2,13", "x":12.75, "y":2, "w":2.25}, - {"label":"3,14", "x":15.25, "y":2.75}, - {"label":"3,0", "x":0, "y":3, "w":1.25}, - {"label":"3,1", "x":1.25, "y":3}, - {"label":"3,2", "x":2.25, "y":3}, - {"label":"3,3", "x":3.25, "y":3}, - {"label":"3,4", "x":4.25, "y":3}, - {"label":"3,5", "x":5.25, "y":3}, - {"label":"3,6", "x":6.25, "y":3}, - {"label":"3,7", "x":7.25, "y":3}, - {"label":"3,8", "x":8.25, "y":3}, - {"label":"3,9", "x":9.25, "y":3}, - {"label":"3,10", "x":10.25, "y":3}, - {"label":"3,11", "x":11.25, "y":3}, - {"label":"3,12", "x":12.25, "y":3, "w":1.75}, - {"label":"3,13", "x":14, "y":3}, - {"label":"4,0", "x":0, "y":4, "w":1.25}, - {"label":"4,1", "x":1.25, "y":4, "w":1.25}, - {"label":"4,2", "x":2.5, "y":4, "w":1.25}, - {"label":"4,6", "x":3.75, "y":4, "w":6.25}, - {"label":"4,9", "x":10, "y":4, "w":1.25}, - {"label":"4,10", "x":11.25, "y":4, "w":1.25}, - {"label":"4,12", "x":13, "y":4}, - {"label":"4,13", "x":14, "y":4}, + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + {"label":"0,4", "x":4, "y":0}, + {"label":"0,5", "x":5, "y":0}, + {"label":"0,6", "x":6, "y":0}, + {"label":"0,7", "x":7, "y":0}, + {"label":"0,8", "x":8, "y":0}, + {"label":"0,9", "x":9, "y":0}, + {"label":"0,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0}, + {"label":"1,13", "x":14, "y":0}, + + {"label":"1,0", "x":0, "y":1, "w":1.5}, + {"label":"1,1", "x":1.5, "y":1}, + {"label":"1,2", "x":2.5, "y":1}, + {"label":"1,3", "x":3.5, "y":1}, + {"label":"1,4", "x":4.5, "y":1}, + {"label":"1,5", "x":5.5, "y":1}, + {"label":"1,6", "x":6.5, "y":1}, + {"label":"1,7", "x":7.5, "y":1}, + {"label":"1,8", "x":8.5, "y":1}, + {"label":"1,9", "x":9.5, "y":1}, + {"label":"1,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"2,12", "x":13.5, "y":1, "w":1.5}, + {"label":"1,14", "x":15.25, "y":0.75}, + + {"label":"2,0", "x":0, "y":2, "w":1.75}, + {"label":"2,1", "x":1.75, "y":2}, + {"label":"2,2", "x":2.75, "y":2}, + {"label":"2,3", "x":3.75, "y":2}, + {"label":"2,4", "x":4.75, "y":2}, + {"label":"2,5", "x":5.75, "y":2}, + {"label":"2,6", "x":6.75, "y":2}, + {"label":"2,7", "x":7.75, "y":2}, + {"label":"2,8", "x":8.75, "y":2}, + {"label":"2,9", "x":9.75, "y":2}, + {"label":"2,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,13", "x":12.75, "y":2, "w":2.25}, + {"label":"2,14", "x":15.25, "y":1.75}, + + {"label":"3,0", "x":0, "y":3, "w":1.25}, + {"label":"3,1", "x":1.25, "y":3}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":15.25, "y":2.75}, + + {"label":"4,0", "x":0, "y":4, "w":1.25}, + {"label":"4,1", "x":1.25, "y":4, "w":1.25}, + {"label":"4,2", "x":2.5, "y":4, "w":1.25}, + {"label":"4,6", "x":3.75, "y":4, "w":6.25}, + {"label":"4,9", "x":10, "y":4, "w":1.25}, + {"label":"4,10", "x":11.25, "y":4, "w":1.25}, + {"label":"4,12", "x":13, "y":4}, + {"label":"4,13", "x":14, "y":4}, {"label":"4,14", "x":15, "y":4} - ] + ] }, - "LAYOUT_65_ansi_blocker": { - "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"0,4", "x":4, "y":0}, {"label":"0,5", "x":5, "y":0}, {"label":"0,6", "x":6, "y":0}, {"label":"0,7", "x":7, "y":0}, {"label":"0,8", "x":8, "y":0}, {"label":"0,9", "x":9, "y":0}, {"label":"0,10", "x":10, "y":0}, {"label":"0,11", "x":11, "y":0}, {"label":"0,12", "x":12, "y":0}, {"label":"0,13", "x":13, "y":0, "w":2}, {"label":"1,14", "x":15.25, "y":0.75}, {"label":"1,0", "x":0, "y":1, "w":1.5}, {"label":"1,1", "x":1.5, "y":1}, {"label":"1,2", "x":2.5, "y":1}, {"label":"1,3", "x":3.5, "y":1}, {"label":"1,4", "x":4.5, "y":1}, {"label":"1,5", "x":5.5, "y":1}, {"label":"1,6", "x":6.5, "y":1}, {"label":"1,7", "x":7.5, "y":1}, {"label":"1,8", "x":8.5, "y":1}, {"label":"1,9", "x":9.5, "y":1}, {"label":"1,10", "x":10.5, "y":1}, {"label":"1,11", "x":11.5, "y":1}, {"label":"1,12", "x":12.5, "y":1}, {"label":"2,12", "x":13.5, "y":1, "w":1.5}, {"label":"2,14", "x":15.25, "y":1.75}, {"label":"2,0", "x":0, "y":2, "w":1.75}, {"label":"2,1", "x":1.75, "y":2}, {"label":"2,2", "x":2.75, "y":2}, {"label":"2,3", "x":3.75, "y":2}, {"label":"2,4", "x":4.75, "y":2}, {"label":"2,5", "x":5.75, "y":2}, {"label":"2,6", "x":6.75, "y":2}, {"label":"2,7", "x":7.75, "y":2}, {"label":"2,8", "x":8.75, "y":2}, {"label":"2,9", "x":9.75, "y":2}, {"label":"2,10", "x":10.75, "y":2}, {"label":"2,11", "x":11.75, "y":2}, {"label":"2,13", "x":12.75, "y":2, "w":2.25}, {"label":"3,14", "x":15.25, "y":2.75}, {"label":"3,0", "x":0, "y":3, "w":2.25}, {"label":"3,2", "x":2.25, "y":3}, {"label":"3,3", "x":3.25, "y":3}, {"label":"3,4", "x":4.25, "y":3}, {"label":"3,5", "x":5.25, "y":3}, {"label":"3,6", "x":6.25, "y":3}, {"label":"3,7", "x":7.25, "y":3}, {"label":"3,8", "x":8.25, "y":3}, {"label":"3,9", "x":9.25, "y":3}, {"label":"3,10", "x":10.25, "y":3}, {"label":"3,11", "x":11.25, "y":3}, {"label":"3,12", "x":12.25, "y":3, "w":1.75}, {"label":"3,13", "x":14, "y":3}, {"label":"4,0", "x":0, "y":4, "w":1.25}, {"label":"4,1", "x":1.25, "y":4, "w":1.25}, {"label":"4,2", "x":2.5, "y":4, "w":1.25}, {"label":"4,6", "x":3.75, "y":4, "w":6.25}, {"label":"4,9", "x":10, "y":4, "w":1.25}, {"label":"4,10", "x":11.25, "y":4, "w":1.25}, {"label":"4,12", "x":13, "y":4}, {"label":"4,13", "x":14, "y":4}, {"label":"4,14", "x":15, "y":4}] + "LAYOUT_ansi_blocker": { + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + {"label":"0,4", "x":4, "y":0}, + {"label":"0,5", "x":5, "y":0}, + {"label":"0,6", "x":6, "y":0}, + {"label":"0,7", "x":7, "y":0}, + {"label":"0,8", "x":8, "y":0}, + {"label":"0,9", "x":9, "y":0}, + {"label":"0,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0, "w":2}, + + {"label":"1,0", "x":0, "y":1, "w":1.5}, + {"label":"1,1", "x":1.5, "y":1}, + {"label":"1,2", "x":2.5, "y":1}, + {"label":"1,3", "x":3.5, "y":1}, + {"label":"1,4", "x":4.5, "y":1}, + {"label":"1,5", "x":5.5, "y":1}, + {"label":"1,6", "x":6.5, "y":1}, + {"label":"1,7", "x":7.5, "y":1}, + {"label":"1,8", "x":8.5, "y":1}, + {"label":"1,9", "x":9.5, "y":1}, + {"label":"1,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"2,12", "x":13.5, "y":1, "w":1.5}, + {"label":"1,14", "x":15.25, "y":0.75}, + + {"label":"2,0", "x":0, "y":2, "w":1.75}, + {"label":"2,1", "x":1.75, "y":2}, + {"label":"2,2", "x":2.75, "y":2}, + {"label":"2,3", "x":3.75, "y":2}, + {"label":"2,4", "x":4.75, "y":2}, + {"label":"2,5", "x":5.75, "y":2}, + {"label":"2,6", "x":6.75, "y":2}, + {"label":"2,7", "x":7.75, "y":2}, + {"label":"2,8", "x":8.75, "y":2}, + {"label":"2,9", "x":9.75, "y":2}, + {"label":"2,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,13", "x":12.75, "y":2, "w":2.25}, + {"label":"2,14", "x":15.25, "y":1.75}, + + {"label":"3,0", "x":0, "y":3, "w":2.25}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":15.25, "y":2.75}, + + {"label":"4,0", "x":0, "y":4, "w":1.25}, + {"label":"4,1", "x":1.25, "y":4, "w":1.25}, + {"label":"4,2", "x":2.5, "y":4, "w":1.25}, + {"label":"4,6", "x":3.75, "y":4, "w":6.25}, + {"label":"4,9", "x":10, "y":4, "w":1.25}, + {"label":"4,10", "x":11.25, "y":4, "w":1.25}, + {"label":"4,12", "x":13, "y":4}, + {"label":"4,13", "x":14, "y":4}, + {"label":"4,14", "x":15, "y":4} + ] }, - "LAYOUT_65_iso_blocker": { - "layout": [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"0,4", "x":4, "y":0}, {"label":"0,5", "x":5, "y":0}, {"label":"0,6", "x":6, "y":0}, {"label":"0,7", "x":7, "y":0}, {"label":"0,8", "x":8, "y":0}, {"label":"0,9", "x":9, "y":0}, {"label":"0,10", "x":10, "y":0}, {"label":"0,11", "x":11, "y":0}, {"label":"0,12", "x":12, "y":0}, {"label":"0,13", "x":13, "y":0, "w":2}, {"label":"1,14", "x":15.25, "y":0.75}, {"label":"1,0", "x":0, "y":1, "w":1.5}, {"label":"1,1", "x":1.5, "y":1}, {"label":"1,2", "x":2.5, "y":1}, {"label":"1,3", "x":3.5, "y":1}, {"label":"1,4", "x":4.5, "y":1}, {"label":"1,5", "x":5.5, "y":1}, {"label":"1,6", "x":6.5, "y":1}, {"label":"1,7", "x":7.5, "y":1}, {"label":"1,8", "x":8.5, "y":1}, {"label":"1,9", "x":9.5, "y":1}, {"label":"1,10", "x":10.5, "y":1}, {"label":"1,11", "x":11.5, "y":1}, {"label":"1,12", "x":12.5, "y":1}, {"label":"2,12", "x":13.5, "y":1, "w":1.5}, {"label":"2,14", "x":15.25, "y":1.75}, {"label":"2,0", "x":0, "y":2, "w":1.75}, {"label":"2,1", "x":1.75, "y":2}, {"label":"2,2", "x":2.75, "y":2}, {"label":"2,3", "x":3.75, "y":2}, {"label":"2,4", "x":4.75, "y":2}, {"label":"2,5", "x":5.75, "y":2}, {"label":"2,6", "x":6.75, "y":2}, {"label":"2,7", "x":7.75, "y":2}, {"label":"2,8", "x":8.75, "y":2}, {"label":"2,9", "x":9.75, "y":2}, {"label":"2,10", "x":10.75, "y":2}, {"label":"2,11", "x":11.75, "y":2}, {"label":"2,13", "x":12.75, "y":2, "w":2.25}, {"label":"3,14", "x":15.25, "y":2.75}, {"label":"3,0", "x":0, "y":3, "w":1.25}, {"label":"3,1", "x":1.25, "y":3}, {"label":"3,2", "x":2.25, "y":3}, {"label":"3,3", "x":3.25, "y":3}, {"label":"3,4", "x":4.25, "y":3}, {"label":"3,5", "x":5.25, "y":3}, {"label":"3,6", "x":6.25, "y":3}, {"label":"3,7", "x":7.25, "y":3}, {"label":"3,8", "x":8.25, "y":3}, {"label":"3,9", "x":9.25, "y":3}, {"label":"3,10", "x":10.25, "y":3}, {"label":"3,11", "x":11.25, "y":3}, {"label":"3,12", "x":12.25, "y":3, "w":1.75}, {"label":"3,13", "x":14, "y":3}, {"label":"4,0", "x":0, "y":4, "w":1.25}, {"label":"4,1", "x":1.25, "y":4, "w":1.25}, {"label":"4,2", "x":2.5, "y":4, "w":1.25}, {"label":"4,6", "x":3.75, "y":4, "w":6.25}, {"label":"4,9", "x":10, "y":4, "w":1.25}, {"label":"4,10", "x":11.25, "y":4, "w":1.25}, {"label":"4,12", "x":13, "y":4}, {"label":"4,13", "x":14, "y":4}, {"label":"4,14", "x":15, "y":4}] + "LAYOUT_iso_blocker": { + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + {"label":"0,4", "x":4, "y":0}, + {"label":"0,5", "x":5, "y":0}, + {"label":"0,6", "x":6, "y":0}, + {"label":"0,7", "x":7, "y":0}, + {"label":"0,8", "x":8, "y":0}, + {"label":"0,9", "x":9, "y":0}, + {"label":"0,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0, "w":2}, + + {"label":"1,0", "x":0, "y":1, "w":1.5}, + {"label":"1,1", "x":1.5, "y":1}, + {"label":"1,2", "x":2.5, "y":1}, + {"label":"1,3", "x":3.5, "y":1}, + {"label":"1,4", "x":4.5, "y":1}, + {"label":"1,5", "x":5.5, "y":1}, + {"label":"1,6", "x":6.5, "y":1}, + {"label":"1,7", "x":7.5, "y":1}, + {"label":"1,8", "x":8.5, "y":1}, + {"label":"1,9", "x":9.5, "y":1}, + {"label":"1,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,14", "x":15.25, "y":0.75}, + + {"label":"2,0", "x":0, "y":2, "w":1.75}, + {"label":"2,1", "x":1.75, "y":2}, + {"label":"2,2", "x":2.75, "y":2}, + {"label":"2,3", "x":3.75, "y":2}, + {"label":"2,4", "x":4.75, "y":2}, + {"label":"2,5", "x":5.75, "y":2}, + {"label":"2,6", "x":6.75, "y":2}, + {"label":"2,7", "x":7.75, "y":2}, + {"label":"2,8", "x":8.75, "y":2}, + {"label":"2,9", "x":9.75, "y":2}, + {"label":"2,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,12", "x":12.75, "y":2}, + {"label":"2,13", "x":13.75, "y":1, "w":1.25, "h":2}, + {"label":"2,14", "x":15.25, "y":1.75}, + + {"label":"3,0", "x":0, "y":3, "w":1.25}, + {"label":"3,1", "x":1.25, "y":3}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":15.25, "y":2.75}, + + {"label":"4,0", "x":0, "y":4, "w":1.25}, + {"label":"4,1", "x":1.25, "y":4, "w":1.25}, + {"label":"4,2", "x":2.5, "y":4, "w":1.25}, + {"label":"4,6", "x":3.75, "y":4, "w":6.25}, + {"label":"4,9", "x":10, "y":4, "w":1.25}, + {"label":"4,10", "x":11.25, "y":4, "w":1.25}, + {"label":"4,12", "x":13, "y":4}, + {"label":"4,13", "x":14, "y":4}, + {"label":"4,14", "x":15, "y":4} + ] } } } diff --git a/keyboards/mechlovin/zed65/wearhaus66/wearhaus66.h b/keyboards/mechlovin/zed65/wearhaus66/wearhaus66.h index 8c4a0ee79a3..561ceedb9a7 100644 --- a/keyboards/mechlovin/zed65/wearhaus66/wearhaus66.h +++ b/keyboards/mechlovin/zed65/wearhaus66/wearhaus66.h @@ -19,6 +19,23 @@ along with this program. If not, see . #include "quantum.h" +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │1D │┌───┐ │0D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤│1E │ └─┬─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │2C │├───┤ │ │ + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤│2E │ ┌──┴┐2D │ ISO Enter + * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │├───┤ │2C │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤│3E │ └───┴────┘ + * │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │└───┘ + * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┐ + * │40 │41 │42 │46 │49 │4A │ │4C │4D │4E │ + * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘ + * ┌─────┬───┬─────┬───────────────────────────┬─────┐ + * │40 │41 │42 │46 │4A │ Tsangan + * └─────┴───┴─────┴───────────────────────────┴─────┘ + */ + #define LAYOUT_all( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K1D, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, \ @@ -33,7 +50,7 @@ along with this program. If not, see . { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D, K4E }, \ } -#define LAYOUT_65_ansi_blocker( \ +#define LAYOUT_ansi_blocker( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K2C, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, K2E, \ @@ -47,7 +64,7 @@ along with this program. If not, see . { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, K49, K4A, KC_NO, K4C, K4D, K4E }, \ } -#define LAYOUT_65_iso_blocker( \ +#define LAYOUT_iso_blocker( \ K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, \ K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, \ K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \ From 6b8dfdfca5bf14a7877d165ff2e9de746f2da79a Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Wed, 28 Sep 2022 23:41:33 -0700 Subject: [PATCH 18/34] Mokey Ibis80 Refactor (#18514) --- keyboards/mokey/ibis80/ibis80.h | 59 +++++++++-------- keyboards/mokey/ibis80/info.json | 19 +++--- .../mokey/ibis80/keymaps/default/keymap.c | 14 ++-- keyboards/mokey/ibis80/keymaps/via/keymap.c | 64 +++++++++---------- 4 files changed, 79 insertions(+), 77 deletions(-) diff --git a/keyboards/mokey/ibis80/ibis80.h b/keyboards/mokey/ibis80/ibis80.h index ed2dbf71952..0f2c60a533a 100644 --- a/keyboards/mokey/ibis80/ibis80.h +++ b/keyboards/mokey/ibis80/ibis80.h @@ -31,46 +31,45 @@ * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐ │ ISO Enter * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │ │2D │ │ * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ └───┴────┘ - * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4D │ │4F │ - * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ + * │40 │41 │42 │43 │44 │45 │46 │47 │48 │49 │4A │4D │ │4F │ + * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤ ┌───┼───┼───┐ * │50 │51 │52 │56 │5A │5B │5D │ │5E │5F │5G │ - * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ + * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ └───┴───┴───┘ * ┌─────┐ ┌─────┬───────────────────────────┬─────┐ ┌─────┐ * │50 │ │52 │56 │5A │ │5D │ * └─────┘ └─────┴───────────────────────────┴─────┘ └─────┘ */ -#define LAYOUT(\ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4d, k4f, \ - k50, k51, k52, k56, k5a, k5b, k5d, k5e, k5f, k5g \ +#define LAYOUT_tkl_f13_ansi_tsangan(\ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4d, k4f, \ + k50, k51, k52, k56, k5a, k5b, k5d, k5e, k5f, k5g \ ) \ { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k3d, KC_NO, KC_NO, KC_NO }, \ - { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, KC_NO, KC_NO, k4d, KC_NO, k4f, KC_NO }, \ - { k50, k51, k52, KC_NO, KC_NO, KC_NO, k56, KC_NO, KC_NO, KC_NO, k5a, k5b, KC_NO, k5d, k5e, k5f, k5g } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX, XXX, XXX }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, XXX, XXX, k4d, XXX, k4f, XXX }, \ + { k50, k51, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, k5b, XXX, k5d, k5e, k5f, k5g } \ } -#define LAYOUT_all(\ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k3d, k2e, k2f, k2g, \ - k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k2d, \ - k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4d, k4f, \ - k50, k52, k56, k5a, k5d, k5e, k5f, k5g \ +#define LAYOUT_tkl_f13_ansi_wkl(\ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g, \ + k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3d, \ + k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, k4d, k4f, \ + k50, k52, k56, k5a, k5d, k5e, k5f, k5g \ ) \ { \ - { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ - { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ - { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k3d, k2e, k2f, k2g }, \ - { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, KC_NO, k2d, KC_NO, KC_NO, KC_NO }, \ - { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, KC_NO, KC_NO, k4d, KC_NO, k4f, KC_NO }, \ - { k50, KC_NO, k52, KC_NO, KC_NO, KC_NO, k56, KC_NO, KC_NO, KC_NO, k5a, KC_NO, KC_NO, k5d, k5e, k5f, k5g } \ + { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, k0f, k0g }, \ + { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, k1e, k1f, k1g }, \ + { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, k2e, k2f, k2g }, \ + { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, XXX, k3d, XXX, XXX, XXX }, \ + { k40, k41, k42, k43, k44, k45, k46, k47, k48, k49, k4a, XXX, XXX, k4d, XXX, k4f, XXX }, \ + { k50, XXX, k52, XXX, XXX, XXX, k56, XXX, XXX, XXX, k5a, XXX, XXX, k5d, k5e, k5f, k5g } \ } - diff --git a/keyboards/mokey/ibis80/info.json b/keyboards/mokey/ibis80/info.json index d236eabc711..8f906681fa4 100644 --- a/keyboards/mokey/ibis80/info.json +++ b/keyboards/mokey/ibis80/info.json @@ -2,14 +2,17 @@ "keyboard_name": "ibis 80", "manufacturer": "Mokey", "url": "", - "maintainer": "Mokey", + "maintainer": "Runheme", "usb": { "vid": "0x6653", "pid": "0x3380", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT": "LAYOUT_tkl_f13_ansi_tsangan" + }, "layouts": { - "LAYOUT": { + "LAYOUT_tkl_f13_ansi_tsangan": { "layout": [ {"label": "k00", "x": 0, "y": 0}, {"label": "k01", "x": 1.25, "y": 0}, @@ -48,7 +51,7 @@ {"label": "k1E", "x": 15.25, "y": 1.5}, {"label": "k1F", "x": 16.25, "y": 1.5}, {"label": "k1G", "x": 17.25, "y": 1.5}, - + {"label": "k20", "x": 0, "y": 2.5, "w": 1.5}, {"label": "k21", "x": 1.5, "y": 2.5}, {"label": "k22", "x": 2.5, "y": 2.5}, @@ -110,7 +113,7 @@ {"label": "k5G", "x": 17.25, "y": 5.5} ] }, - "LAYOUT_all": { + "LAYOUT_tkl_f13_ansi_wkl": { "layout": [ {"label": "k00", "x": 0, "y": 0}, {"label": "k01", "x": 1.25, "y": 0}, @@ -149,7 +152,7 @@ {"label": "k1E", "x": 15.25, "y": 1.5}, {"label": "k1F", "x": 16.25, "y": 1.5}, {"label": "k1G", "x": 17.25, "y": 1.5}, - + {"label": "k20", "x": 0, "y": 2.5, "w": 1.5}, {"label": "k21", "x": 1.5, "y": 2.5}, {"label": "k22", "x": 2.5, "y": 2.5}, @@ -163,7 +166,7 @@ {"label": "k2A", "x": 10.5, "y": 2.5}, {"label": "k2B", "x": 11.5, "y": 2.5}, {"label": "k2C", "x": 12.5, "y": 2.5}, - {"label": "k3D", "x": 13.75, "y": 2.5, "w": 1.25, "h": 2}, + {"label": "k2D", "x": 13.5, "y": 2.5}, {"label": "k2E", "x": 15.25, "y": 2.5}, {"label": "k2F", "x": 16.25, "y": 2.5}, @@ -181,7 +184,7 @@ {"label": "k39", "x": 9.75, "y": 3.5}, {"label": "k3A", "x": 10.75, "y": 3.5}, {"label": "k3B", "x": 11.75, "y": 3.5}, - {"label": "k2C", "x": 12.75, "y": 3.5}, + {"label": "k3D", "x": 12.75, "y": 3.5, "w": 2.25}, {"label": "k40", "x": 0, "y": 4.5, "w": 2.25}, {"label": "k41", "x": 2.25, "y": 4.5}, @@ -208,6 +211,6 @@ {"label": "k5F", "x": 16.25, "y": 5.5}, {"label": "k5G", "x": 17.25, "y": 5.5} ] - } + } } } diff --git a/keyboards/mokey/ibis80/keymaps/default/keymap.c b/keyboards/mokey/ibis80/keymaps/default/keymap.c index fefeede9660..3a96b96b166 100644 --- a/keyboards/mokey/ibis80/keymaps/default/keymap.c +++ b/keyboards/mokey/ibis80/keymaps/default/keymap.c @@ -16,12 +16,12 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT( - KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_BRMD, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INSERT, 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_DELETE, KC_END, KC_PGDOWN, - KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, - KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, - KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_LWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + [0] = LAYOUT_tkl_f13_ansi_tsangan( + QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_LWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT ) }; diff --git a/keyboards/mokey/ibis80/keymaps/via/keymap.c b/keyboards/mokey/ibis80/keymaps/via/keymap.c index 94678a8201e..b8660178f32 100644 --- a/keyboards/mokey/ibis80/keymaps/via/keymap.c +++ b/keyboards/mokey/ibis80/keymaps/via/keymap.c @@ -16,36 +16,36 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { - [0] = LAYOUT_all( - KC_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_BRMD, KC_PAUS, - KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INSERT, 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_DELETE, KC_END, KC_PGDOWN, - 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_LALT, KC_SPC, KC_RALT, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT - ), - [1] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ), - [2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ), - [3] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______ - ) + [0] = LAYOUT_tkl_f13_ansi_tsangan( + QK_GESC, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_F13, KC_PSCR, KC_SCRL, KC_PAUS, + KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LWIN, KC_LALT, KC_SPC, KC_RALT, KC_LWIN, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_tkl_f13_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [2] = LAYOUT_tkl_f13_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), + [3] = LAYOUT_tkl_f13_ansi_tsangan( + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; From eb55551e2d764ac48c48e02165589ab11f4c8005 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 29 Sep 2022 01:32:25 -0700 Subject: [PATCH 19/34] Monoflex 60 Layout Refactor and Touch-Up (#18517) --- keyboards/monoflex60/info.json | 8 ++++++-- .../keymaps/60_iso_tsangan/keymap.c | 18 ++++++++--------- .../keymaps/60_tsangan_hhkb/keymap.c | 12 +++++------ keyboards/monoflex60/keymaps/default/keymap.c | 12 +++++------ keyboards/monoflex60/keymaps/via/keymap.c | 20 +++++++++---------- keyboards/monoflex60/monoflex60.h | 12 +++++------ 6 files changed, 43 insertions(+), 39 deletions(-) diff --git a/keyboards/monoflex60/info.json b/keyboards/monoflex60/info.json index 64fc9f789a1..a724e5de75d 100644 --- a/keyboards/monoflex60/info.json +++ b/keyboards/monoflex60/info.json @@ -1,13 +1,17 @@ { "keyboard_name": "Monoflex 60", - "manufacturer": "SanitGo Customs", + "manufacturer": "SantiGo Customs", "url": "", - "maintainer": "keyten", + "maintainer": "key10iq", "usb": { "vid": "0xDEB4", "pid": "0x60EB", "device_version": "0.0.1" }, + "community_layouts": [ + "60_tsangan_hhkb", + "60_iso_tsangan" + ], "layouts": { "LAYOUT_all": { "layout": [ diff --git a/keyboards/monoflex60/keymaps/60_iso_tsangan/keymap.c b/keyboards/monoflex60/keymaps/60_iso_tsangan/keymap.c index deb9f95b228..f547250474a 100644 --- a/keyboards/monoflex60/keymaps/60_iso_tsangan/keymap.c +++ b/keyboards/monoflex60/keymaps/60_iso_tsangan/keymap.c @@ -19,16 +19,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_60_iso_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_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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, MO(1), - 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, KC_RGUI, KC_RCTL), + 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_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, MO(1), 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, KC_RGUI, KC_RCTL), [1] = LAYOUT_60_iso_tsangan( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/monoflex60/keymaps/60_tsangan_hhkb/keymap.c b/keyboards/monoflex60/keymaps/60_tsangan_hhkb/keymap.c index 8a5630554eb..cd308a9d0ca 100644 --- a/keyboards/monoflex60/keymaps/60_tsangan_hhkb/keymap.c +++ b/keyboards/monoflex60/keymaps/60_tsangan_hhkb/keymap.c @@ -19,16 +19,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_60_tsangan_hhkb( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_BSPC, - 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_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_tsangan_hhkb( - _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/monoflex60/keymaps/default/keymap.c b/keyboards/monoflex60/keymaps/default/keymap.c index 2572aad3554..ce97bc3b818 100644 --- a/keyboards/monoflex60/keymaps/default/keymap.c +++ b/keyboards/monoflex60/keymaps/default/keymap.c @@ -19,16 +19,16 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_BSPC, - 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, MO(1), + 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_BSLS, 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_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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/monoflex60/keymaps/via/keymap.c b/keyboards/monoflex60/keymaps/via/keymap.c index 92fee8dd1e9..540ce671ef4 100644 --- a/keyboards/monoflex60/keymaps/via/keymap.c +++ b/keyboards/monoflex60/keymaps/via/keymap.c @@ -19,30 +19,30 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, - KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_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_BSPC, - 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, MO(1), + 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_BSLS, 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_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_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [2] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______), [3] = LAYOUT_all( - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, - _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______) }; diff --git a/keyboards/monoflex60/monoflex60.h b/keyboards/monoflex60/monoflex60.h index cac93008636..49fd36d88f5 100644 --- a/keyboards/monoflex60/monoflex60.h +++ b/keyboards/monoflex60/monoflex60.h @@ -34,9 +34,9 @@ * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ */ #define LAYOUT_all( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2d, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ k40, k41, k43, k47, k4b, k4c, k4d \ ) { \ @@ -61,9 +61,9 @@ * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘ */ #define LAYOUT_60_tsangan_hhkb( \ - k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ + k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k2d, \ k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ k30, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \ k40, k41, k43, k47, k4b, k4c, k4d \ ) { \ @@ -89,8 +89,8 @@ */ #define LAYOUT_60_iso_tsangan( \ k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \ - k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \ - k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, \ + k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \ + k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k1d, \ k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \ k40, k41, k43, k47, k4b, k4c, k4d \ ) { \ From 51f2d27321eb791f97e1e32b277b370321019fac Mon Sep 17 00:00:00 2001 From: DeflateAwning <11021263+DeflateAwning@users.noreply.github.com> Date: Thu, 29 Sep 2022 04:50:32 -0600 Subject: [PATCH 20/34] Fix typo (#18526) --- docs/newbs_building_firmware.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/newbs_building_firmware.md b/docs/newbs_building_firmware.md index c4ce9fd9f3d..6163c6b02e5 100644 --- a/docs/newbs_building_firmware.md +++ b/docs/newbs_building_firmware.md @@ -40,7 +40,7 @@ Open your `keymap.c` file in your text editor. Inside this file you'll find the This line indicates where the list of Layers begins. Below that you'll find lines containing `LAYOUT`, and these lines indicate the start of a layer. Below that line is the list of keys that comprise a particular layer. -!> When editing your keymap file be careful not to add or remove any commas. If you do you will prevent your firmware from compiling and it may not be easy to figure out where the extra, or missing, comma is. +!> When editing your keymap file be careful not to add or remove any commas. If you do, you will prevent your firmware from compiling and it may not be easy to figure out where the extra, or missing, comma is. ## Customize The Layout To Your Liking From 961de3c20524ded55aa3778b15bedfa3f192905a Mon Sep 17 00:00:00 2001 From: Markus Knutsson Date: Thu, 29 Sep 2022 17:01:34 +0200 Subject: [PATCH 21/34] Update reference_info_json.md (#18518) * Update reference_info_json.md * Update docs/reference_info_json.md Co-authored-by: Ryan * Update docs/reference_info_json.md Co-authored-by: Ryan * Update docs/reference_info_json.md Co-authored-by: Ryan * Update docs/reference_info_json.md Co-authored-by: Ryan * Update docs/reference_info_json.md Co-authored-by: Ryan Co-authored-by: Ryan --- docs/reference_info_json.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 52f16b44012..34c536b3294 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -91,6 +91,8 @@ Direct pins are when you connect one side of the switch to GND and the other sid When specifying direct pins you need to arrange them in nested arrays. The outer array consists of rows, while the inner array uses text strings to identify the pins used in each row. You can use `null` to indicate an empty spot in the matrix. +Notice that when using direct pins, `diode_direction` is left undefined. + Example: ```json @@ -113,6 +115,14 @@ Example: This section controls basic 2-pin LEDs, which typically pass through keyswitches and are soldered into the PCB, or are placed in PCB sockets. ### Backlight +Enable by setting + +```json + "features": { + "backlight": true + } +``` + * `breathing` * Enable backlight breathing, if supported * `breathing_period` @@ -177,8 +187,9 @@ The following items can be set. Not every value is required. * Set to `true` to enable synchronization functionality between split halves * `split_count` * For split keyboards, the number of LEDs on each side + * Example `[ 10 , 10 ]` * `max_brightness` - * (0-255) What the maxmimum brightness (value) level is + * What the maximum brightness (value) level is (0-255) * `hue_steps` * How many steps of adjustment to have for hue * `saturation_steps` @@ -243,6 +254,14 @@ The device version is a BCD (binary coded decimal) value, in the format `MMmr`, This section controls the basic [rotary encoder](feature_encoders.md) support. +Enable by setting + +```json + "features": { + "encoder": true + } +``` + The following items can be set. Not every value is required. * `pin_a` From 84ef82423686d8e213083cc81040353435dfc680 Mon Sep 17 00:00:00 2001 From: jack <0x6A73@pm.me> Date: Thu, 29 Sep 2022 10:28:39 -0600 Subject: [PATCH 22/34] =?UTF-8?q?Gentoo=20install=20script=20=E2=80=94=20b?= =?UTF-8?q?uild=20newlib=20with=20nano=20USE=20flag=20(#18527)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- util/install/gentoo.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/install/gentoo.sh b/util/install/gentoo.sh index b031fc7629e..49e80490bec 100755 --- a/util/install/gentoo.sh +++ b/util/install/gentoo.sh @@ -19,7 +19,7 @@ _qmk_install() { sudo touch /etc/portage/package.use/qmkfirmware # tee is used here since sudo doesn't apply to >> - echo "sys-devel/gcc multilib" | sudo tee --append /etc/portage/package.use/qmkfirmware >/dev/null + echo "sys-devel/gcc multilib\ncross-arm-none-eabi/newlib nano" | sudo tee --append /etc/portage/package.use/qmkfirmware >/dev/null sudo emerge -auN sys-devel/gcc sudo emerge -au --noreplace \ app-arch/unzip app-arch/zip net-misc/wget sys-devel/clang \ From 14e18864056f836f359258521d63ddf7597d0dd7 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 29 Sep 2022 09:48:44 -0700 Subject: [PATCH 23/34] novelkeys/nk20: rename LAYOUT_all to LAYOUT (#18525) This board only supports one layout. --- keyboards/novelkeys/nk20/info.json | 5 ++++- keyboards/novelkeys/nk20/keymaps/default/keymap.c | 4 ++-- keyboards/novelkeys/nk20/keymaps/via/keymap.c | 8 ++++---- keyboards/novelkeys/nk20/nk20.h | 2 +- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/keyboards/novelkeys/nk20/info.json b/keyboards/novelkeys/nk20/info.json index d6a714ea0b5..f6da7d52daa 100644 --- a/keyboards/novelkeys/nk20/info.json +++ b/keyboards/novelkeys/nk20/info.json @@ -8,8 +8,11 @@ "pid": "0x4E4E", "device_version": "0.0.1" }, + "layout_aliases": { + "LAYOUT_all": "LAYOUT" + }, "layouts": { - "LAYOUT_all": { + "LAYOUT": { "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3, "y":1}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3, "y":2, "h":2}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":0, "y":4}, {"x":1, "y":4}, {"x":2, "y":4}, {"x":3, "y":4, "h":2}, {"x":0, "y":5, "w":2}, {"x":2, "y":5}] } } diff --git a/keyboards/novelkeys/nk20/keymaps/default/keymap.c b/keyboards/novelkeys/nk20/keymaps/default/keymap.c index 4bd3c48da11..63b6e6ac265 100644 --- a/keyboards/novelkeys/nk20/keymaps/default/keymap.c +++ b/keyboards/novelkeys/nk20/keymaps/default/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_all( /* Base */ +[0] = LAYOUT( /* Base */ KC_VOLD, KC_VOLU, KC_MUTE, MO(1), KC_PSLS, KC_PAST, KC_PMNS, KC_P7, KC_P8, KC_P9, KC_PPLS, @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P1, KC_P2, KC_P3, KC_PENT, KC_P0, KC_PDOT), -[1] = LAYOUT_all( /* FN */ +[1] = LAYOUT( /* FN */ KC_NLCK, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_SPI, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, KC_TRNS, diff --git a/keyboards/novelkeys/nk20/keymaps/via/keymap.c b/keyboards/novelkeys/nk20/keymaps/via/keymap.c index e647dad0165..71158863c4c 100644 --- a/keyboards/novelkeys/nk20/keymaps/via/keymap.c +++ b/keyboards/novelkeys/nk20/keymaps/via/keymap.c @@ -16,7 +16,7 @@ #include QMK_KEYBOARD_H const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -[0] = LAYOUT_all( /* Base */ +[0] = LAYOUT( /* Base */ KC_VOLD, KC_VOLU, KC_MUTE, MO(1), KC_PSLS, KC_PAST, KC_PMNS, KC_P7, KC_P8, KC_P9, KC_PPLS, @@ -24,7 +24,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_P1, KC_P2, KC_P3, KC_PENT, KC_P0, KC_PDOT), -[1] = LAYOUT_all( /* FN */ +[1] = LAYOUT( /* FN */ KC_NLCK, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SPD, RGB_SPI, KC_TRNS, RGB_TOG, RGB_MOD, RGB_HUD, KC_TRNS, @@ -32,7 +32,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { RGB_VAD, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -[2] = LAYOUT_all( /* Empty for dynamic keymaps */ +[2] = LAYOUT( /* Empty for dynamic keymaps */ KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, @@ -40,7 +40,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS), -[3] = LAYOUT_all( /* Empty for dynamic keymaps */ +[3] = LAYOUT( /* Empty for dynamic keymaps */ 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/novelkeys/nk20/nk20.h b/keyboards/novelkeys/nk20/nk20.h index 62aa0e69d30..a553a1af3ef 100644 --- a/keyboards/novelkeys/nk20/nk20.h +++ b/keyboards/novelkeys/nk20/nk20.h @@ -21,7 +21,7 @@ // This a shortcut to help you visually see your layout. -#define LAYOUT_all( \ +#define LAYOUT( \ K00, K01, K02, \ K10, K11, K12, K13, \ K20, K21, K22, K23, \ From bfcbcfe3c7efad948a026ad8c365007bb82d9b6a Mon Sep 17 00:00:00 2001 From: lalalademaxiya1 <66767061+lalalademaxiya1@users.noreply.github.com> Date: Fri, 30 Sep 2022 00:50:47 +0800 Subject: [PATCH 24/34] Update q0 for keychron (#18522) --- keyboards/keychron/q0/config.h | 10 +++++----- keyboards/keychron/q0/q0.c | 8 ++++---- keyboards/keychron/q0/rev_0130/rev_0130.c | 14 ++++++++------ 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/keyboards/keychron/q0/config.h b/keyboards/keychron/q0/config.h index 40f506fe808..a04d31d3a29 100644 --- a/keyboards/keychron/q0/config.h +++ b/keyboards/keychron/q0/config.h @@ -34,18 +34,18 @@ #define DRIVER_COUNT 1 #define DRIVER_ADDR_1 0b1110100 -#define CONSTANT_CURRENT_STEP \ +#define CKLED2001_CURRENT_TUNE \ { 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70, 0xFF, 0xFF, 0x70 } +#define RGB_MATRIX_CENTER \ + { 56, 16 } + /* NKRO */ #define FORCE_NKRO /* turn off effects when suspended */ #define RGB_DISABLE_WHEN_USB_SUSPENDED -/* We have 2KB EEPROM size on STM32L432 */ -#define DYNAMIC_KEYMAP_EEPROM_MAX_ADDR 2047 - /* EEPROM Driver Configuration */ #define WEAR_LEVELING_LOGICAL_SIZE 2048 #define WEAR_LEVELING_BACKING_SIZE (WEAR_LEVELING_LOGICAL_SIZE * 2) @@ -98,4 +98,4 @@ #define ENABLE_RGB_MATRIX_MULTISPLASH #define ENABLE_RGB_MATRIX_SOLID_SPLASH #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH -// #define RGB_MATRIX_KEYPRESSES \ No newline at end of file +// #define RGB_MATRIX_KEYPRESSES diff --git a/keyboards/keychron/q0/q0.c b/keyboards/keychron/q0/q0.c index c43157ac681..d17ab77f47b 100644 --- a/keyboards/keychron/q0/q0.c +++ b/keyboards/keychron/q0/q0.c @@ -16,7 +16,7 @@ #include "q0.h" -#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX) +#if defined(RGB_MATRIX_ENABLE) && defined(NUM_LOCK_LED_INDEX) bool process_record_kb(uint16_t keycode, keyrecord_t *record) { if (!process_record_user(keycode, record)) { @@ -45,11 +45,11 @@ bool process_record_kb(uint16_t keycode, keyrecord_t *record) { __attribute__((weak)) void rgb_matrix_indicators_advanced_user(uint8_t led_min, uint8_t led_max) { // RGB_MATRIX_INDICATOR_SET_COLOR(index, red, green, blue); - if (host_keyboard_led_state().caps_lock) { - RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 255, 255, 255); + if (host_keyboard_led_state().num_lock) { + RGB_MATRIX_INDICATOR_SET_COLOR(NUM_LOCK_LED_INDEX, 255, 255, 255); } else { if (!rgb_matrix_get_flags()) { - RGB_MATRIX_INDICATOR_SET_COLOR(CAPS_LOCK_LED_INDEX, 0, 0, 0); + RGB_MATRIX_INDICATOR_SET_COLOR(NUM_LOCK_LED_INDEX, 0, 0, 0); } } } diff --git a/keyboards/keychron/q0/rev_0130/rev_0130.c b/keyboards/keychron/q0/rev_0130/rev_0130.c index 468e3cf04f2..64c4842086d 100644 --- a/keyboards/keychron/q0/rev_0130/rev_0130.c +++ b/keyboards/keychron/q0/rev_0130/rev_0130.c @@ -18,6 +18,8 @@ #ifdef RGB_MATRIX_ENABLE +// clang-format off + const ckled2001_led PROGMEM g_ckled2001_leds[DRIVER_LED_TOTAL] = { /* Refer to CKLED manual for these locations * driver @@ -67,12 +69,12 @@ led_config_t g_led_config = { }, { // LED Index to Physical Position - {0,0}, {74,0}, {150,0}, {224,0}, - {0,13}, {74,13}, {150,13}, {224,13}, - {0,26}, {74,26}, {150,26}, - {0,38}, {74,38}, {150,38}, {224,32}, - {0,51}, {74,51}, {150,51}, - {36,64}, {150,64}, {224,58}, + {0,0}, {37,0}, {75,0}, {112,0}, + {0,6}, {37,6}, {75,6}, {112,6}, + {0,13}, {37,13}, {75,13}, + {0,19}, {37,19}, {75,19}, {112,16}, + {0,25}, {37,25}, {75,25}, + {18,32}, {75,32}, {112,29}, }, { // LED Index to Flag From 00dc764f7268bd2780645eb07ce59892faba0341 Mon Sep 17 00:00:00 2001 From: Less/Rikki <86894501+lesshonor@users.noreply.github.com> Date: Thu, 29 Sep 2022 13:08:45 -0400 Subject: [PATCH 25/34] [docs] Improve documentation regarding info.json (#18508) * docs: raise info.json awareness * docs: note that DD migration is WIP --- docs/config_options.md | 12 +++++++++++- docs/reference_info_json.md | 29 ++++++++++++++++++++--------- 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/docs/config_options.md b/docs/config_options.md index 3e011a5cc98..02cfe83c69a 100644 --- a/docs/config_options.md +++ b/docs/config_options.md @@ -2,7 +2,17 @@ QMK is nearly infinitely configurable. Wherever possible we err on the side of allowing users to customize their keyboard, even at the expense of code size. That level of flexibility makes for a daunting configuration experience, however. -There are two main types of configuration files in QMK- `config.h` and `rules.mk`. These files exist at various levels in QMK and all files of the same type are combined to build the final configuration. The levels, from lowest priority to highest priority, are: +There are three main types of configuration files in QMK: + +* `config.h`, which contains various preprocessor directives (`#define`, `#ifdef`) +* `rules.mk`, which contains additional variables +* `info.json`, which is utilized for [data-driven configuration](https://docs.qmk.fm/#/data_driven_config) + +This page will only discuss the first two types, `config.h` and `rules.mk`. + +?> While not all settings have data-driven equivalents yet, keyboard makers are encouraged to utilize the `info.json` file to set the metadata for their boards when possible. See the [`info.json` Format](https://docs.qmk.fm/#/reference_info_json) page for more details. + +These files exist at various levels in QMK and all files of the same type are combined to build the final configuration. The levels, from lowest priority to highest priority, are: * QMK Default * Keyboard diff --git a/docs/reference_info_json.md b/docs/reference_info_json.md index 34c536b3294..05d4ef11133 100644 --- a/docs/reference_info_json.md +++ b/docs/reference_info_json.md @@ -1,12 +1,12 @@ # `info.json` -This file is used by the [QMK API](https://github.com/qmk/qmk_api). It contains the information [QMK Configurator](https://config.qmk.fm/) needs to display a representation of your keyboard. You can also set metadata here. +The information contained in `info.json` is combined with the `config.h` and `rules.mk` files, dynamically generating the necessary configuration for your keyboard at compile time. It is also used by the [QMK API](https://github.com/qmk/qmk_api), and contains the information [QMK Configurator](https://config.qmk.fm/) needs to display a representation of your keyboard. -You can create `info.json` files at every level under `qmk_firmware/keyboards/` to specify this metadata. These files are combined, with more specific files overriding keys in less specific files. This means you do not need to duplicate your metadata information. For example, `qmk_firmware/keyboards/clueboard/info.json` specifies `manufacturer` and `maintainer`, while `qmk_firmware/keyboards/clueboard/66/info.json` specifies more specific information about Clueboard 66%. +You can create `info.json` files at every level under `qmk_firmware/keyboards/`. These files are combined, with more specific files overriding keys in less specific files. This means you do not need to duplicate your metadata information. For example, `qmk_firmware/keyboards/clueboard/info.json` specifies `manufacturer` and `maintainer`, while `qmk_firmware/keyboards/clueboard/66/info.json` specifies more specific information about Clueboard 66%. ## `info.json` Format -The `info.json` file is a JSON formatted dictionary with the following keys available to be set. You do not have to set all of them, merely the keys that apply to your keyboard. +The `info.json` file is a JSON formatted dictionary. The first six keys noted here must be defined in `info.json`, or your keyboard will not be accepted into the QMK repository. * `keyboard_name` * A free-form text string describing the keyboard. @@ -20,6 +20,11 @@ The `info.json` file is a JSON formatted dictionary with the following keys avai * `maintainer` * GitHub username of the maintainer, or `qmk` for community maintained boards. * Example: `skullydazed` +* `usb` + * Configure USB VID, PID, and device version. See the [USB](#USB) section for more detail. + +There are many more optional keys, some of which are described below. Others may be found by examining `data/schemas`. + * `debounce` * The amount of time in milliseconds to wait for debounce to happen. * Default: `5` @@ -33,8 +38,6 @@ The `info.json` file is a JSON formatted dictionary with the following keys avai * Configure the pins corresponding to columns and rows, or direct pins. See the [Matrix Pins](#matrix-pins) section for more detail. * `rgblight` * Configure the [RGB Lighting feature](feature_rgblight.md). See the [RGB Lighting](#rgb-lighting) section for more detail. -* `usb` - * Configure USB VID, PID, and other parameters. See the [USB](#USB) section for more detail. ### Layout Format @@ -45,7 +48,7 @@ Within our `info.json` file the `layouts` portion of the dictionary contains sev ### Key Dictionary Format -Each Key Dictionary in a layout describes the physical properties of a key. If you are familiar with the Raw Code for you will find many of the concepts the same. We re-use the same key names and layout choices wherever possible, but unlike keyboard-layout-editor each key is stateless, inheriting no properties from the keys that came before it. +Each Key Dictionary in a layout describes the physical properties of a key. If you are familiar with the Raw Data for you will find many of the concepts the same. We re-use the same key names and layout choices wherever possible, but unlike keyboard-layout-editor each key is stateless, inheriting no properties from the keys that came before it. All key positions and rotations are specified in relation to the top-left corner of the keyboard, and the top-left corner of each key. @@ -115,7 +118,7 @@ Example: This section controls basic 2-pin LEDs, which typically pass through keyswitches and are soldered into the PCB, or are placed in PCB sockets. ### Backlight -Enable by setting +Enable by setting ```json "features": { @@ -155,6 +158,13 @@ Used for indicating Num Lock, Caps Lock, and Scroll Lock. May be soldered in-swi * The pin that controls the `Caps Lock` LED * `scroll_lock` * The pin that controls the `Scroll Lock` LED +* `compose` + * The pin that controls the `Compose` LED +* `kana` + * The pin that controls the `Kana` LED +* `on_state` + * The state of the indicator pins when the LED is "on" - `1` for high, `0` for low + * Default: `1` Example: @@ -208,7 +218,8 @@ Example: "saturation_steps": 17, "brightness_steps": 17, "animations": { - "all": true + "knight": true, + "rainbow_swirl": true } } } @@ -254,7 +265,7 @@ The device version is a BCD (binary coded decimal) value, in the format `MMmr`, This section controls the basic [rotary encoder](feature_encoders.md) support. -Enable by setting +Enable by setting ```json "features": { From b51b3681b7d38f86d8c5b2df152c44ad5d7a1bff Mon Sep 17 00:00:00 2001 From: Daniel Bast <2790401+dbast@users.noreply.github.com> Date: Thu, 29 Sep 2022 19:15:00 +0200 Subject: [PATCH 26/34] Fix keychron q2 iso default keymaps (#18501) --- keyboards/keychron/q2/rev_0112/keymaps/default/keymap.c | 2 +- keyboards/keychron/q2/rev_0112/keymaps/via/keymap.c | 2 +- keyboards/keychron/q2/rev_0113/keymaps/default/keymap.c | 2 +- keyboards/keychron/q2/rev_0113/keymaps/via/keymap.c | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/keyboards/keychron/q2/rev_0112/keymaps/default/keymap.c b/keyboards/keychron/q2/rev_0112/keymaps/default/keymap.c index 75667b44c83..21a837c1a0c 100644 --- a/keyboards/keychron/q2/rev_0112/keymaps/default/keymap.c +++ b/keyboards/keychron/q2/rev_0112/keymaps/default/keymap.c @@ -37,7 +37,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_68( - KC_ESC, KC_1, KC_2, KC_F3, KC_F4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, + 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_INS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, 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, diff --git a/keyboards/keychron/q2/rev_0112/keymaps/via/keymap.c b/keyboards/keychron/q2/rev_0112/keymaps/via/keymap.c index 0a91857f1e4..9eb7288dc18 100644 --- a/keyboards/keychron/q2/rev_0112/keymaps/via/keymap.c +++ b/keyboards/keychron/q2/rev_0112/keymaps/via/keymap.c @@ -37,7 +37,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_68( - KC_ESC, KC_1, KC_2, KC_F3, KC_F4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_INS, + 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_INS, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, 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, diff --git a/keyboards/keychron/q2/rev_0113/keymaps/default/keymap.c b/keyboards/keychron/q2/rev_0113/keymaps/default/keymap.c index e3e6cf73768..a44e7e4cc9a 100644 --- a/keyboards/keychron/q2/rev_0113/keymaps/default/keymap.c +++ b/keyboards/keychron/q2/rev_0113/keymaps/default/keymap.c @@ -37,7 +37,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_iso_68( - KC_ESC, KC_1, KC_2, KC_F3, KC_F4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_MUTE, + 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_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_DEL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, 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, diff --git a/keyboards/keychron/q2/rev_0113/keymaps/via/keymap.c b/keyboards/keychron/q2/rev_0113/keymaps/via/keymap.c index 4e3b431bdf3..268173b0602 100644 --- a/keyboards/keychron/q2/rev_0113/keymaps/via/keymap.c +++ b/keyboards/keychron/q2/rev_0113/keymaps/via/keymap.c @@ -37,7 +37,7 @@ enum custom_keycodes { const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [MAC_BASE] = LAYOUT_all( - KC_ESC, KC_1, KC_2, KC_F3, KC_F4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_VOLD, KC_MUTE, KC_VOLU, + 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_VOLD, KC_MUTE, KC_VOLU, 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_DEL, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_HOME, 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, From cbbb45c13f3de5ec28f62b6cd4a8b77143026500 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Fri, 30 Sep 2022 03:25:55 +1000 Subject: [PATCH 27/34] Start moving towards introspection-based data retrieval (#18441) --- builddefs/build_full_test.mk | 4 ++-- quantum/dynamic_keymap.c | 29 +++++++++++++++-------------- quantum/keyboard.c | 5 ++--- quantum/keymap.h | 2 -- quantum/keymap_common.c | 6 +++--- quantum/keymap_introspection.c | 22 ++++++++++++++++++++++ quantum/keymap_introspection.h | 10 ++++++++++ 7 files changed, 54 insertions(+), 24 deletions(-) diff --git a/builddefs/build_full_test.mk b/builddefs/build_full_test.mk index 4e4b4e4bfd6..35f0a05b993 100644 --- a/builddefs/build_full_test.mk +++ b/builddefs/build_full_test.mk @@ -20,7 +20,7 @@ $(TEST)_SRC := \ $(TMK_COMMON_SRC) \ $(QUANTUM_SRC) \ $(SRC) \ - tests/test_common/keymap.c \ + $(QUANTUM_PATH)/keymap_introspection.c \ tests/test_common/matrix.c \ tests/test_common/test_driver.cpp \ tests/test_common/keyboard_report_util.cpp \ @@ -29,7 +29,7 @@ $(TEST)_SRC := \ tests/test_common/test_logger.cpp \ $(patsubst $(ROOTDIR)/%,%,$(wildcard $(TEST_PATH)/*.cpp)) -$(TEST)_DEFS := $(TMK_COMMON_DEFS) $(OPT_DEFS) +$(TEST)_DEFS := $(TMK_COMMON_DEFS) $(OPT_DEFS) "-DKEYMAP_C=\"keymap.c\"" $(TEST)_CONFIG := $(TEST_PATH)/config.h diff --git a/quantum/dynamic_keymap.c b/quantum/dynamic_keymap.c index 01be9806e47..e9529ed14ef 100644 --- a/quantum/dynamic_keymap.c +++ b/quantum/dynamic_keymap.c @@ -153,7 +153,7 @@ void dynamic_keymap_reset(void) { for (int row = 0; row < MATRIX_ROWS; row++) { for (int column = 0; column < MATRIX_COLS; column++) { if (layer < keymap_layer_count()) { - dynamic_keymap_set_keycode(layer, row, column, pgm_read_word(&keymaps[layer][row][column])); + dynamic_keymap_set_keycode(layer, row, column, keycode_at_keymap_location_raw(layer, row, column)); } else { dynamic_keymap_set_keycode(layer, row, column, KC_TRANSPARENT); } @@ -162,8 +162,8 @@ void dynamic_keymap_reset(void) { #ifdef ENCODER_MAP_ENABLE for (int encoder = 0; encoder < NUM_ENCODERS; encoder++) { if (layer < encodermap_layer_count()) { - dynamic_keymap_set_encoder(layer, encoder, true, pgm_read_word(&encoder_map[layer][encoder][0])); - dynamic_keymap_set_encoder(layer, encoder, false, pgm_read_word(&encoder_map[layer][encoder][1])); + dynamic_keymap_set_encoder(layer, encoder, true, keycode_at_encodermap_location_raw(layer, encoder, true)); + dynamic_keymap_set_encoder(layer, encoder, false, keycode_at_encodermap_location_raw(layer, encoder, false)); } else { dynamic_keymap_set_encoder(layer, encoder, true, KC_TRANSPARENT); dynamic_keymap_set_encoder(layer, encoder, false, KC_TRANSPARENT); @@ -201,21 +201,22 @@ void dynamic_keymap_set_buffer(uint16_t offset, uint16_t size, uint8_t *data) { } } -// This overrides the one in quantum/keymap_common.c -uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key) { - if (layer < DYNAMIC_KEYMAP_LAYER_COUNT && key.row < MATRIX_ROWS && key.col < MATRIX_COLS) { - return dynamic_keymap_get_keycode(layer, key.row, key.col); +uint16_t keycode_at_keymap_location(uint8_t layer_num, uint8_t row, uint8_t column) { + if (layer_num < DYNAMIC_KEYMAP_LAYER_COUNT && row < MATRIX_ROWS && column < MATRIX_COLS) { + return dynamic_keymap_get_keycode(layer_num, row, column); } -#ifdef ENCODER_MAP_ENABLE - else if (layer < DYNAMIC_KEYMAP_LAYER_COUNT && key.row == KEYLOC_ENCODER_CW && key.col < NUM_ENCODERS) { - return dynamic_keymap_get_encoder(layer, key.col, true); - } else if (layer < DYNAMIC_KEYMAP_LAYER_COUNT && key.row == KEYLOC_ENCODER_CCW && key.col < NUM_ENCODERS) { - return dynamic_keymap_get_encoder(layer, key.col, false); - } -#endif // ENCODER_MAP_ENABLE return KC_NO; } +#ifdef ENCODER_MAP_ENABLE +uint16_t keycode_at_encodermap_location(uint8_t layer_num, uint8_t encoder_idx, bool clockwise) { + if (layer_num < DYNAMIC_KEYMAP_LAYER_COUNT && encoder_idx < NUM_ENCODERS) { + return dynamic_keymap_get_encoder(layer_num, encoder_idx, clockwise); + } + return KC_NO; +} +#endif // ENCODER_MAP_ENABLE + uint8_t dynamic_keymap_macro_get_count(void) { return DYNAMIC_KEYMAP_MACRO_COUNT; } diff --git a/quantum/keyboard.c b/quantum/keyboard.c index 3b5e9b02005..c8025d059b7 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -175,12 +175,11 @@ uint32_t get_matrix_scan_rate(void) { #endif #ifdef MATRIX_HAS_GHOST -extern const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; -static matrix_row_t get_real_keys(uint8_t row, matrix_row_t rowdata) { +static matrix_row_t get_real_keys(uint8_t row, matrix_row_t rowdata) { matrix_row_t out = 0; for (uint8_t col = 0; col < MATRIX_COLS; col++) { // read each key in the row data and check if the keymap defines it as a real key - if (pgm_read_byte(&keymaps[0][row][col]) && (rowdata & (1 << col))) { + if (keycode_at_keymap_location(0, row, col) && (rowdata & (1 << col))) { // this creates new row data, if a key is defined in the keymap, it will be set here out |= 1 << col; } diff --git a/quantum/keymap.h b/quantum/keymap.h index 67e35c4e2f0..0225f533626 100644 --- a/quantum/keymap.h +++ b/quantum/keymap.h @@ -33,8 +33,6 @@ along with this program. If not, see . // translates key to keycode uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key); -extern const uint16_t keymaps[][MATRIX_ROWS][MATRIX_COLS]; - #ifdef ENCODER_MAP_ENABLE // Ensure we have a forward declaration for the encoder map # include "encoder.h" diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 1d5ef9b403e..5e8a0434705 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -147,13 +147,13 @@ action_t action_for_keycode(uint16_t keycode) { // translates key to keycode __attribute__((weak)) uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key) { if (key.row < MATRIX_ROWS && key.col < MATRIX_COLS) { - return pgm_read_word(&keymaps[layer][key.row][key.col]); + return keycode_at_keymap_location(layer, key.row, key.col); } #ifdef ENCODER_MAP_ENABLE else if (key.row == KEYLOC_ENCODER_CW && key.col < NUM_ENCODERS) { - return pgm_read_word(&encoder_map[layer][key.col][0]); + return keycode_at_encodermap_location(layer, key.col, true); } else if (key.row == KEYLOC_ENCODER_CCW && key.col < NUM_ENCODERS) { - return pgm_read_word(&encoder_map[layer][key.col][1]); + return keycode_at_encodermap_location(layer, key.col, false); } #endif // ENCODER_MAP_ENABLE return KC_NO; diff --git a/quantum/keymap_introspection.c b/quantum/keymap_introspection.c index 179b5eb0376..93aab82fccc 100644 --- a/quantum/keymap_introspection.c +++ b/quantum/keymap_introspection.c @@ -19,6 +19,17 @@ uint8_t keymap_layer_count(void) { _Static_assert(NUM_KEYMAP_LAYERS <= MAX_LAYER, "Number of keymap layers exceeds maximum set by LAYER_STATE_(8|16|32)BIT"); +uint16_t keycode_at_keymap_location_raw(uint8_t layer_num, uint8_t row, uint8_t column) { + if (layer_num < NUM_KEYMAP_LAYERS && row < MATRIX_ROWS && column < MATRIX_COLS) { + return pgm_read_word(&keymaps[layer_num][row][column]); + } + return KC_NO; +} + +__attribute__((weak)) uint16_t keycode_at_keymap_location(uint8_t layer_num, uint8_t row, uint8_t column) { + return keycode_at_keymap_location_raw(layer_num, row, column); +} + #if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) # define NUM_ENCODERMAP_LAYERS ((uint8_t)(sizeof(encoder_map) / ((NUM_ENCODERS) * (2) * sizeof(uint16_t)))) @@ -29,4 +40,15 @@ uint8_t encodermap_layer_count(void) { _Static_assert(NUM_KEYMAP_LAYERS == NUM_ENCODERMAP_LAYERS, "Number of encoder_map layers doesn't match the number of keymap layers"); +uint16_t keycode_at_encodermap_location_raw(uint8_t layer_num, uint8_t encoder_idx, bool clockwise) { + if (layer_num < NUM_ENCODERMAP_LAYERS && encoder_idx < NUM_ENCODERS) { + return pgm_read_word(&encoder_map[layer_num][encoder_idx][clockwise ? 0 : 1]); + } + return KC_NO; +} + +__attribute__((weak)) uint16_t keycode_at_encodermap_location(uint8_t layer_num, uint8_t encoder_idx, bool clockwise) { + return keycode_at_encodermap_location_raw(layer_num, encoder_idx, clockwise); +} + #endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) diff --git a/quantum/keymap_introspection.h b/quantum/keymap_introspection.h index 23f6f2016fa..9de706a0219 100644 --- a/quantum/keymap_introspection.h +++ b/quantum/keymap_introspection.h @@ -7,9 +7,19 @@ // Get the number of layers defined in the keymap uint8_t keymap_layer_count(void); +// Get the keycode for the keymap location, stored in firmware rather than any other persistent storage +uint16_t keycode_at_keymap_location_raw(uint8_t layer_num, uint8_t row, uint8_t column); +// Get the keycode for the keymap location, potentially stored dynamically +uint16_t keycode_at_keymap_location(uint8_t layer_num, uint8_t row, uint8_t column); + #if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) // Get the number of layers defined in the encoder map uint8_t encodermap_layer_count(void); +// Get the keycode for the encoder mapping location, stored in firmware rather than any other persistent storage +uint16_t keycode_at_encodermap_location_raw(uint8_t layer_num, uint8_t encoder_idx, bool clockwise); +// Get the keycode for the encoder mapping location, potentially stored dynamically +uint16_t keycode_at_encodermap_location(uint8_t layer_num, uint8_t encoder_idx, bool clockwise); + #endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) From 49128d6b8534a8b1b234e75ade8a1f8a2b8390f8 Mon Sep 17 00:00:00 2001 From: syntax-magic Date: Thu, 29 Sep 2022 10:33:23 -0700 Subject: [PATCH 28/34] Updated documentations. No changes to keymap.c functions. (#18530) --- .../kprepublic/bm40hsrgb/keymaps/dan/keymap.c | 4 +- .../bm40hsrgb/keymaps/dan/readme.md | 83 ++++++++++++++++++- 2 files changed, 83 insertions(+), 4 deletions(-) diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/dan/keymap.c b/keyboards/kprepublic/bm40hsrgb/keymaps/dan/keymap.c index 495e664e363..29e359b94ab 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/dan/keymap.c +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/dan/keymap.c @@ -81,9 +81,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { /* RIGHTFN * ,-----------------------------------------------------------------------------------. - * | | | | | | | | F12 | F11 | F10 | F9 |Scllck| + * | | | | | | | | F12 | F11 | F10 | F9 | Pause| * |------+------+------+------+------+------+------+------+------+------+------+------| - * | Ctrl | | | | | | | F8 | F7 | F6 | F5 | Pause| + * | Ctrl | | | | | | | F8 | F7 | F6 | F5 |Scllck| * |------+------+------+------+------+------+------+------+------+------+------+------| * | Shift| | | | | | | F4 | F3 | F2 | F1 | | * |------+------+------+------+------+------+------+------+------+------+------+------| diff --git a/keyboards/kprepublic/bm40hsrgb/keymaps/dan/readme.md b/keyboards/kprepublic/bm40hsrgb/keymaps/dan/readme.md index 4a706c73151..cc59c816f09 100644 --- a/keyboards/kprepublic/bm40hsrgb/keymaps/dan/readme.md +++ b/keyboards/kprepublic/bm40hsrgb/keymaps/dan/readme.md @@ -1,3 +1,82 @@ -# Dan's kprepublic bm40 layout +# Dan's KPrepublic BM40 Keymap -Dan's personal keymap with LED indicator support. +>This is my personal keymap with an LED indicator support for num lock, caps lock and scroll lock. + +![](https://i.imgur.com/2yclc1B.jpg) +> * Case: Poseidon PSD40 Case +> * Plate: Brass +> * Keycaps: WOB ABS Cherry Profile +> * Switches: Gazzew Boba u4t (62g 2 stage long spring) + +### BM40 LED INDEX +**_Numlock (11) Capslock (12) Scroll lock (23)_** + +| | _A_ | _B_ | _C_ | _D_ | _E_ | _F_ | _G_ | _H_ | _I_ | _J_ | _K_ | _L_ | +|---------|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:|---:| +| **_1_** | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | +| **_2_** | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | +| **_3_** | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | +| **_4_** |    36 |    37 |    38 |     39 |     40 |    41 |        |    42 |    43 |    44 |    45 |    46 | + +## LED INDICATOR EXAMPLES +![](https://i.imgur.com/qpkRNio.jpg) +![](https://i.imgur.com/GfG252J.jpg) +> * Case: SM Keyboards Planck/Niu Mini Acrylic Case +> * Plate: Acrylic +> * Keycaps: Drop + biip MT3 Extended 2048 Katakana +> * Switches: Everglide Aqua King V3 (62g 2 stage long spring) + + +

+ +## KEYMAP LAYOUT EXAMPLES +### ALPHA + +| | _A_ | _B_ | _C_ | _D_ | _E_ | _F_ | _G_ | _H_ | _I_ | _J_ | _K_ | _L_ | +|---------|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:| +| **_1_** | TAB | Q | W | E | R | T | Y | U | I | O | P | BSP | +| **_2_** | CTL | A | S | D | F | G | H | J | K | L | ; | ' | +| **_3_** | SFT | Z | X | C | V | B | N | M | , | . | / | RET | +| **_4_** |  ESC | KOR | WIN |   ALT |    FN |  SPC |          |        - |     = | DEL |      \ | ENT | +>This is a base layer for typing. + +
+ +### LEFTFN MO(FN) + +| | _A_ | _B_ | _C_ | _D_ | _E_ | _F_ | _G_ | _H_ | _I_ | _J_ | _K_ | _L_ | +|---------|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:| +| **_1_** | \` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | BSP | +| **_2_** | CTL | LFT | DN | UP | RHT | C+/ | HAN | [ | ] | ) | : | " | +| **_3_** | SFT | PGU | PGD | HOM | END | CAP | PRN | ( | , | . | / | RET | +| **_4_** | RGB | [ | ] |  ALT | TRN |  SPC ||       _ |     + |  INS |         | ENT | +>This is the layer dedicated to number, symbol and navigation keys. ie) arrow keys + +
+ +### RIGHTFN MO(-) + +| | _A_ | _B_ | _C_ | _D_ | _E_ | _F_ | _G_ | _H_ | _I_ | _J_ | _K_ | _L_ | +|---------|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:| +| **_1_** | | | | | | | | F12 | F11 | F10 | F9 | PAU | +| **_2_** | CTL | | | | | | | F8 | F7 | F6 | F5 | SCL | +| **_3_** | SFT | | | | | | | F4 | F3 | F2 | F1 | | +| **_4_** |         |         |         |   ALT  |         |  SPC |         |  TRN |        |        |        |      | +>This layer contains function rows. + +
+ +### NUMPAD MO(ESC) + +| | _A_ | _B_ | _C_ | _D_ | _E_ | _F_ | _G_ | _H_ | _I_ | _J_ | _K_ | _L_ | +|---------|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:|----:| +| **_1_** | * | 7 | 8 | 9 | NUM | | | | | | | BSP | +| **_2_** | ALT | 4 | 5 | 6 | RET | | | | | | | | +| **_3_** | - | 1 | 2 | 3 | BSP | | | | | | | RET | +| **_4_** | TRN |        , |      + |        . |    0 | SPC |         |   LY1 |  LY2 |  LY3 |  LY4 |  LY5 | +>This layer is the numpad. + +
+ +There are other dedicated layers for gaming that are not included here. +If you are interested, check out keymap.c! From f80058d96e2f1606f648166d320cda15986ced4c Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 30 Sep 2022 03:38:09 +1000 Subject: [PATCH 29/34] Start Bluetooth API (#18366) --- builddefs/common_features.mk | 2 +- drivers/bluetooth/bluefruit_le.cpp | 58 ++++++++++------------------ drivers/bluetooth/bluefruit_le.h | 12 +++--- drivers/bluetooth/bluetooth.c | 62 ++++++++++++++++++++++++++++++ drivers/bluetooth/bluetooth.h | 52 +++++++++++++++++++++++++ quantum/keyboard.c | 15 +++----- tmk_core/protocol/host.c | 25 ++---------- 7 files changed, 150 insertions(+), 76 deletions(-) create mode 100644 drivers/bluetooth/bluetooth.c create mode 100644 drivers/bluetooth/bluetooth.h diff --git a/builddefs/common_features.mk b/builddefs/common_features.mk index 0e9e45220fe..951932ade94 100644 --- a/builddefs/common_features.mk +++ b/builddefs/common_features.mk @@ -882,7 +882,7 @@ ifeq ($(strip $(BLUETOOTH_ENABLE)), yes) OPT_DEFS += -DBLUETOOTH_ENABLE NO_USB_STARTUP_CHECK := yes COMMON_VPATH += $(DRIVER_PATH)/bluetooth - SRC += outputselect.c + SRC += outputselect.c bluetooth.c ifeq ($(strip $(BLUETOOTH_DRIVER)), BluefruitLE) OPT_DEFS += -DBLUETOOTH_BLUEFRUIT_LE -DHAL_USE_SPI=TRUE diff --git a/drivers/bluetooth/bluefruit_le.cpp b/drivers/bluetooth/bluefruit_le.cpp index 50170b83fe8..39c14ddd13c 100644 --- a/drivers/bluetooth/bluefruit_le.cpp +++ b/drivers/bluetooth/bluefruit_le.cpp @@ -5,7 +5,7 @@ #include #include "debug.h" #include "timer.h" -#include "action_util.h" +#include "gpio.h" #include "ringbuffer.hpp" #include #include "spi_master.h" @@ -288,7 +288,7 @@ static void resp_buf_wait(const char *cmd) { } } -static bool ble_init(void) { +void bluefruit_le_init(void) { state.initialized = false; state.configured = false; state.is_connected = false; @@ -307,7 +307,6 @@ static bool ble_init(void) { wait_ms(1000); // Give it a second to initialize state.initialized = true; - return state.initialized; } static inline uint8_t min(uint8_t a, uint8_t b) { @@ -431,7 +430,7 @@ bool bluefruit_le_is_connected(void) { bool bluefruit_le_enable_keyboard(void) { char resbuf[128]; - if (!state.initialized && !ble_init()) { + if (!state.initialized) { return false; } @@ -613,41 +612,24 @@ static bool process_queue_item(struct queue_item *item, uint16_t timeout) { } } -void bluefruit_le_send_keys(uint8_t hid_modifier_mask, uint8_t *keys, uint8_t nkeys) { +void bluefruit_le_send_keyboard(report_keyboard_t *report) { struct queue_item item; - bool didWait = false; item.queue_type = QTKeyReport; - item.key.modifier = hid_modifier_mask; - item.added = timer_read(); + item.key.modifier = report->mods; + item.key.keys[0] = report->keys[0]; + item.key.keys[1] = report->keys[1]; + item.key.keys[2] = report->keys[2]; + item.key.keys[3] = report->keys[3]; + item.key.keys[4] = report->keys[4]; + item.key.keys[5] = report->keys[5]; - while (nkeys >= 0) { - item.key.keys[0] = keys[0]; - item.key.keys[1] = nkeys >= 1 ? keys[1] : 0; - item.key.keys[2] = nkeys >= 2 ? keys[2] : 0; - item.key.keys[3] = nkeys >= 3 ? keys[3] : 0; - item.key.keys[4] = nkeys >= 4 ? keys[4] : 0; - item.key.keys[5] = nkeys >= 5 ? keys[5] : 0; - - if (!send_buf.enqueue(item)) { - if (!didWait) { - dprint("wait for buf space\n"); - didWait = true; - } - send_buf_send_one(); - continue; - } - - if (nkeys <= 6) { - return; - } - - nkeys -= 6; - keys += 6; + while (!send_buf.enqueue(item)) { + send_buf_send_one(); } } -void bluefruit_le_send_consumer_key(uint16_t usage) { +void bluefruit_le_send_consumer(uint16_t usage) { struct queue_item item; item.queue_type = QTConsumer; @@ -658,15 +640,15 @@ void bluefruit_le_send_consumer_key(uint16_t usage) { } } -void bluefruit_le_send_mouse_move(int8_t x, int8_t y, int8_t scroll, int8_t pan, uint8_t buttons) { +void bluefruit_le_send_mouse(report_mouse_t *report) { struct queue_item item; item.queue_type = QTMouseMove; - item.mousemove.x = x; - item.mousemove.y = y; - item.mousemove.scroll = scroll; - item.mousemove.pan = pan; - item.mousemove.buttons = buttons; + item.mousemove.x = report->x; + item.mousemove.y = report->y; + item.mousemove.scroll = report->v; + item.mousemove.pan = report->h; + item.mousemove.buttons = report->buttons; while (!send_buf.enqueue(item)) { send_buf_send_one(); diff --git a/drivers/bluetooth/bluefruit_le.h b/drivers/bluetooth/bluefruit_le.h index 731ba2e3704..a3de03c35c3 100644 --- a/drivers/bluetooth/bluefruit_le.h +++ b/drivers/bluetooth/bluefruit_le.h @@ -7,9 +7,7 @@ #include #include -#include - -#include "config_common.h" +#include "report.h" #ifdef __cplusplus extern "C" { @@ -26,6 +24,8 @@ extern bool bluefruit_le_query_is_connected(void); * calling ble_task() periodically. */ extern bool bluefruit_le_is_connected(void); +extern void bluefruit_le_init(void); + /* Call this periodically to process BLE-originated things */ extern void bluefruit_le_task(void); @@ -34,16 +34,16 @@ extern void bluefruit_le_task(void); * this set of keys. * Also sends a key release indicator, so that the keys do not remain * held down. */ -extern void bluefruit_le_send_keys(uint8_t hid_modifier_mask, uint8_t *keys, uint8_t nkeys); +extern void bluefruit_le_send_keyboard(report_keyboard_t *report); /* Send a consumer usage. * (milliseconds) */ -extern void bluefruit_le_send_consumer_key(uint16_t usage); +extern void bluefruit_le_send_consumer(uint16_t usage); /* Send a mouse/wheel movement report. * The parameters are signed and indicate positive or negative direction * change. */ -extern void bluefruit_le_send_mouse_move(int8_t x, int8_t y, int8_t scroll, int8_t pan, uint8_t buttons); +extern void bluefruit_le_send_mouse(report_mouse_t *report); /* Compute battery voltage by reading an analog pin. * Returns the integer number of millivolts */ diff --git a/drivers/bluetooth/bluetooth.c b/drivers/bluetooth/bluetooth.c new file mode 100644 index 00000000000..d5382401e7e --- /dev/null +++ b/drivers/bluetooth/bluetooth.c @@ -0,0 +1,62 @@ +/* + * Copyright 2022 + * + * 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 "bluetooth.h" + +#if defined(BLUETOOTH_BLUEFRUIT_LE) +# include "bluefruit_le.h" +#elif defined(BLUETOOTH_RN42) +# include "rn42.h" +#endif + +void bluetooth_init(void) { +#if defined(BLUETOOTH_BLUEFRUIT_LE) + bluefruit_le_init(); +#elif defined(BLUETOOTH_RN42) + rn42_init(); +#endif +} + +void bluetooth_task(void) { +#if defined(BLUETOOTH_BLUEFRUIT_LE) + bluefruit_le_task(); +#endif +} + +void bluetooth_send_keyboard(report_keyboard_t *report) { +#if defined(BLUETOOTH_BLUEFRUIT_LE) + bluefruit_le_send_keyboard(report); +#elif defined(BLUETOOTH_RN42) + rn42_send_keyboard(report); +#endif +} + +void bluetooth_send_mouse(report_mouse_t *report) { +#if defined(BLUETOOTH_BLUEFRUIT_LE) + bluefruit_le_send_mouse(report); +#elif defined(BLUETOOTH_RN42) + rn42_send_mouse(report); +#endif +} + +void bluetooth_send_consumer(uint16_t usage) { +#if defined(BLUETOOTH_BLUEFRUIT_LE) + bluefruit_le_send_consumer(usage); +#elif defined(BLUETOOTH_RN42) + rn42_send_consumer(usage); +#endif +} diff --git a/drivers/bluetooth/bluetooth.h b/drivers/bluetooth/bluetooth.h new file mode 100644 index 00000000000..a923dfe60c0 --- /dev/null +++ b/drivers/bluetooth/bluetooth.h @@ -0,0 +1,52 @@ +/* + * Copyright 2022 + * + * 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 "report.h" + +/** + * \brief Initialize the Bluetooth system. + */ +void bluetooth_init(void); + +/** + * \brief Perform housekeeping tasks. + */ +void bluetooth_task(void); + +/** + * \brief Send a keyboard report. + * + * \param report The keyboard report to send. + */ +void bluetooth_send_keyboard(report_keyboard_t *report); + +/** + * \brief Send a mouse report. + * + * \param report The mouse report to send. + */ +void bluetooth_send_mouse(report_mouse_t *report); + +/** + * \brief Send a consumer usage. + * + * \param usage The consumer usage to send. + */ +void bluetooth_send_consumer(uint16_t usage); diff --git a/quantum/keyboard.c b/quantum/keyboard.c index c8025d059b7..626e0a7ee1e 100644 --- a/quantum/keyboard.c +++ b/quantum/keyboard.c @@ -106,12 +106,7 @@ along with this program. If not, see . # include "split_util.h" #endif #ifdef BLUETOOTH_ENABLE -# include "outputselect.h" -# ifdef BLUETOOTH_BLUEFRUIT_LE -# include "bluefruit_le.h" -# elif BLUETOOTH_RN42 -# include "rn42.h" -# endif +# include "bluetooth.h" #endif #ifdef CAPS_WORD_ENABLE # include "caps_word.h" @@ -411,8 +406,8 @@ void keyboard_init(void) { // init after split init pointing_device_init(); #endif -#if defined(BLUETOOTH_RN42) - rn42_init(); +#ifdef BLUETOOTH_ENABLE + bluetooth_init(); #endif #if defined(DEBUG_MATRIX_SCAN_RATE) && defined(CONSOLE_ENABLE) @@ -674,8 +669,8 @@ void keyboard_task(void) { programmable_button_send(); #endif -#ifdef BLUETOOTH_BLUEFRUIT_LE - bluefruit_le_task(); +#ifdef BLUETOOTH_ENABLE + bluetooth_task(); #endif led_task(); diff --git a/tmk_core/protocol/host.c b/tmk_core/protocol/host.c index 99298ad6d68..7b051a881b9 100644 --- a/tmk_core/protocol/host.c +++ b/tmk_core/protocol/host.c @@ -29,12 +29,8 @@ along with this program. If not, see . #endif #ifdef BLUETOOTH_ENABLE +# include "bluetooth.h" # include "outputselect.h" -# ifdef BLUETOOTH_BLUEFRUIT_LE -# include "bluefruit_le.h" -# elif BLUETOOTH_RN42 -# include "rn42.h" -# endif #endif #ifdef NKRO_ENABLE @@ -78,11 +74,7 @@ led_t host_keyboard_led_state(void) { void host_keyboard_send(report_keyboard_t *report) { #ifdef BLUETOOTH_ENABLE if (where_to_send() == OUTPUT_BLUETOOTH) { -# ifdef BLUETOOTH_BLUEFRUIT_LE - bluefruit_le_send_keys(report->mods, report->keys, sizeof(report->keys)); -# elif BLUETOOTH_RN42 - rn42_send_keyboard(report); -# endif + bluetooth_send_keyboard(report); return; } #endif @@ -116,12 +108,7 @@ void host_keyboard_send(report_keyboard_t *report) { void host_mouse_send(report_mouse_t *report) { #ifdef BLUETOOTH_ENABLE if (where_to_send() == OUTPUT_BLUETOOTH) { -# ifdef BLUETOOTH_BLUEFRUIT_LE - // FIXME: mouse buttons - bluefruit_le_send_mouse_move(report->x, report->y, report->v, report->h, report->buttons); -# elif BLUETOOTH_RN42 - rn42_send_mouse(report); -# endif + bluetooth_send_mouse(report); return; } #endif @@ -152,11 +139,7 @@ void host_consumer_send(uint16_t report) { #ifdef BLUETOOTH_ENABLE if (where_to_send() == OUTPUT_BLUETOOTH) { -# ifdef BLUETOOTH_BLUEFRUIT_LE - bluefruit_le_send_consumer_key(report); -# elif BLUETOOTH_RN42 - rn42_send_consumer(report); -# endif + bluetooth_send_consumer(report); return; } #endif From bad8c6718901603b8a64d371b003ae4ab6a24044 Mon Sep 17 00:00:00 2001 From: James Young <18669334+noroadsleft@users.noreply.github.com> Date: Thu, 29 Sep 2022 10:45:36 -0700 Subject: [PATCH 30/34] Neson Design 700E Refactor (#18524) --- keyboards/neson_design/700e/700e.h | 58 ++++- keyboards/neson_design/700e/config.h | 10 +- keyboards/neson_design/700e/info.json | 241 +++++++++++++++++- .../700e/keymaps/default/keymap.c | 25 +- .../keymaps/default_ansi_tsangan/keymap.c | 35 +++ .../700e/keymaps/default_iso_tsangan/keymap.c | 35 +++ .../neson_design/700e/keymaps/via/keymap.c | 37 +-- 7 files changed, 402 insertions(+), 39 deletions(-) create mode 100644 keyboards/neson_design/700e/keymaps/default_ansi_tsangan/keymap.c create mode 100644 keyboards/neson_design/700e/keymaps/default_iso_tsangan/keymap.c diff --git a/keyboards/neson_design/700e/700e.h b/keyboards/neson_design/700e/700e.h index f096868d321..c9667eefe24 100644 --- a/keyboards/neson_design/700e/700e.h +++ b/keyboards/neson_design/700e/700e.h @@ -22,12 +22,30 @@ #define ___ KC_NO +/* + * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───────┐ + * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │4D │ │0E │0F │1F │ │4D │ 2u Backspace + * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ ├───┼───┼───┤ └─┬─────┤ + * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ │1E │2E │2F │ │ │ + * 2.25u ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ┌──┴┐2D │ ISO Enter + * LShift │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │ │2C │ │ + * ┌────────┐ ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤ ┌───┐ ┌─┴───┴────┤ + * │30 │ │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │ │3E │ │3C │ 2.75u RShift + * └────────┘ ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴───┴───┼───┴┬────┬┴───┤ ┌───┼───┼───┐ └──────────┘ + * │40 │41 │42 │┌───────────────────────────┐│49 │4B │4C │ │3F │4E │4F │ + * └────┴────┴────┘│4A │└────┴────┴────┘ └───┴───┴───┘ + * └───────────────────────────┘ + * ┌───┬─────┐ ┌─────┬───┐ + * │41 │42 │ │49 │4B │ + * └───┴─────┘ └─────┴───┘ + */ + #define LAYOUT_all( \ - K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4D, K0E, K0F, K1F, \ - K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K2E, K2F,\ - K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ - K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ - K40, K41, K42, K4A, K49, K4B, K4C, K3F, K4E, K4F\ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4D, K0E, K0F, K1F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K2E, K2F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \ + K40, K41, K42, K4A, K49, K4B, K4C, K3F, K4E, K4F \ ) \ { \ { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \ @@ -36,3 +54,33 @@ { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \ { K40, K41, K42, ___, ___, ___, ___, ___, ___, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \ } + +#define LAYOUT_ansi_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K4D, K0E, K0F, K1F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K2E, K2F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \ + K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, \ + K40, K41, K42, K4A, K49, K4B, K4C, K3F, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, ___, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, ___, K2D, K2E, K2F }, \ + { K30, ___, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, K3E, K3F }, \ + { K40, K41, K42, ___, ___, ___, ___, ___, ___, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \ +} + +#define LAYOUT_iso_tsangan( \ + K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K4D, K0E, K0F, K1F, \ + K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1E, K2E, K2F, \ + K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \ + K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3E, \ + K40, K41, K42, K4A, K49, K4B, K4C, K3F, K4E, K4F \ +) \ +{ \ + { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, ___, K0E, K0F }, \ + { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, ___, K1E, K1F }, \ + { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, K2F }, \ + { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, ___, K3E, K3F }, \ + { K40, K41, K42, ___, ___, ___, ___, ___, ___, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \ +} diff --git a/keyboards/neson_design/700e/config.h b/keyboards/neson_design/700e/config.h index 83cc780d80c..c084a643105 100644 --- a/keyboards/neson_design/700e/config.h +++ b/keyboards/neson_design/700e/config.h @@ -54,7 +54,15 @@ //rgb light setting #define RGBLED_NUM 68 #define RGB_DI_PIN D5 -#define RGBLIGHT_ANIMATIONS +#define RGBLIGHT_EFFECT_BREATHING +#define RGBLIGHT_EFFECT_RAINBOW_MOOD +#define RGBLIGHT_EFFECT_RAINBOW_SWIRL +#define RGBLIGHT_EFFECT_SNAKE +#define RGBLIGHT_EFFECT_KNIGHT +#define RGBLIGHT_EFFECT_CHRISTMAS +#define RGBLIGHT_EFFECT_STATIC_GRADIENT +#define RGBLIGHT_EFFECT_RGB_TEST +#define RGBLIGHT_EFFECT_ALTERNATING #define RGBLIGHT_HUE_STEP 8 #define RGBLIGHT_SAT_STEP 8 #define RGBLIGHT_VAL_STEP 8 diff --git a/keyboards/neson_design/700e/info.json b/keyboards/neson_design/700e/info.json index 4d4d4270970..43b5382d7ef 100644 --- a/keyboards/neson_design/700e/info.json +++ b/keyboards/neson_design/700e/info.json @@ -2,7 +2,7 @@ "keyboard_name": "700E", "manufacturer": "Neson Design", "url": "", - "maintainer": "qmk", + "maintainer": "yulei", "usb": { "vid": "0x4E65", "pid": "0x700E", @@ -10,8 +10,243 @@ }, "layouts": { "LAYOUT_all": { - "layout": - [{"label":"0,0", "x":0, "y":0}, {"label":"0,1", "x":1, "y":0}, {"label":"0,2", "x":2, "y":0}, {"label":"0,3", "x":3, "y":0}, {"label":"0,4", "x":4, "y":0}, {"label":"0,5", "x":5, "y":0}, {"label":"0,6", "x":6, "y":0}, {"label":"0,7", "x":7, "y":0}, {"label":"0,8", "x":8, "y":0}, {"label":"0,9", "x":9, "y":0}, {"label":"0,10", "x":10, "y":0}, {"label":"0,11", "x":11, "y":0}, {"label":"0,12", "x":12, "y":0}, {"label":"0,13", "x":13, "y":0}, {"label":"4,13", "x":14, "y":0}, {"label":"0,14", "x":15.5, "y":0}, {"label":"0,15", "x":16.5, "y":0}, {"label":"1,15", "x":17.5, "y":0}, {"label":"1,0", "x":0, "y":1, "w":1.5}, {"label":"1,1", "x":1.5, "y":1}, {"label":"1,2", "x":2.5, "y":1}, {"label":"1,3", "x":3.5, "y":1}, {"label":"1,4", "x":4.5, "y":1}, {"label":"1,5", "x":5.5, "y":1}, {"label":"1,6", "x":6.5, "y":1}, {"label":"1,7", "x":7.5, "y":1}, {"label":"1,8", "x":8.5, "y":1}, {"label":"1,9", "x":9.5, "y":1}, {"label":"1,10", "x":10.5, "y":1}, {"label":"1,11", "x":11.5, "y":1}, {"label":"1,12", "x":12.5, "y":1}, {"label":"1,13", "x":13.5, "y":1, "w":1.5}, {"label":"1,14", "x":15.5, "y":1}, {"label":"2,14", "x":16.5, "y":1}, {"label":"2,15", "x":17.5, "y":1}, {"label":"2,0", "x":0, "y":2, "w":1.75}, {"label":"2,1", "x":1.75, "y":2}, {"label":"2,2", "x":2.75, "y":2}, {"label":"2,3", "x":3.75, "y":2}, {"label":"2,4", "x":4.75, "y":2}, {"label":"2,5", "x":5.75, "y":2}, {"label":"2,6", "x":6.75, "y":2}, {"label":"2,7", "x":7.75, "y":2}, {"label":"2,8", "x":8.75, "y":2}, {"label":"2,9", "x":9.75, "y":2}, {"label":"2,10", "x":10.75, "y":2}, {"label":"2,11", "x":11.75, "y":2}, {"label":"2,12", "x":12.75, "y":2}, {"label":"2,13", "x":13.75, "y":2}, {"label":"3,0", "x":0, "y":3, "w":1.25}, {"label":"3,1", "x":1.25, "y":3}, {"label":"3,2", "x":2.25, "y":3}, {"label":"3,3", "x":3.25, "y":3}, {"label":"3,4", "x":4.25, "y":3}, {"label":"3,5", "x":5.25, "y":3}, {"label":"3,6", "x":6.25, "y":3}, {"label":"3,7", "x":7.25, "y":3}, {"label":"3,8", "x":8.25, "y":3}, {"label":"3,9", "x":9.25, "y":3}, {"label":"3,10", "x":10.25, "y":3}, {"label":"3,11", "x":11.25, "y":3}, {"label":"3,12", "x":12.25, "y":3, "w":1.75}, {"label":"3,13", "x":14, "y":3}, {"label":"3,14", "x":16.5, "y":3}, {"label":"4,0", "x":0, "y":4, "w":1.25}, {"label":"4,1", "x":1.25, "y":4, "w":1.25}, {"label":"4,2", "x":2.5, "y":4, "w":1.25}, {"label":"4,9", "x":11.25, "y":4, "w":1.25}, {"label":"4,11", "x":12.5, "y":4, "w":1.25}, {"label":"4,12", "x":13.75, "y":4, "w":1.25}, {"label":"3,15", "x":15.5, "y":4}, {"label":"4,14", "x":16.5, "y":4}, {"label":"4,15", "x":17.5, "y":4}, {"label":"4,10", "x":4, "y":4.25, "w":7}] + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + {"label":"0,4", "x":4, "y":0}, + {"label":"0,5", "x":5, "y":0}, + {"label":"0,6", "x":6, "y":0}, + {"label":"0,7", "x":7, "y":0}, + {"label":"0,8", "x":8, "y":0}, + {"label":"0,9", "x":9, "y":0}, + {"label":"0,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"0,13", "x":13, "y":0}, + {"label":"4,13", "x":14, "y":0}, + {"label":"0,14", "x":15.5, "y":0}, + {"label":"0,15", "x":16.5, "y":0}, + {"label":"1,15", "x":17.5, "y":0}, + + {"label":"1,0", "x":0, "y":1, "w":1.5}, + {"label":"1,1", "x":1.5, "y":1}, + {"label":"1,2", "x":2.5, "y":1}, + {"label":"1,3", "x":3.5, "y":1}, + {"label":"1,4", "x":4.5, "y":1}, + {"label":"1,5", "x":5.5, "y":1}, + {"label":"1,6", "x":6.5, "y":1}, + {"label":"1,7", "x":7.5, "y":1}, + {"label":"1,8", "x":8.5, "y":1}, + {"label":"1,9", "x":9.5, "y":1}, + {"label":"1,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,13", "x":13.5, "y":1, "w":1.5}, + {"label":"1,14", "x":15.5, "y":1}, + {"label":"2,14", "x":16.5, "y":1}, + {"label":"2,15", "x":17.5, "y":1}, + + {"label":"2,0", "x":0, "y":2, "w":1.75}, + {"label":"2,1", "x":1.75, "y":2}, + {"label":"2,2", "x":2.75, "y":2}, + {"label":"2,3", "x":3.75, "y":2}, + {"label":"2,4", "x":4.75, "y":2}, + {"label":"2,5", "x":5.75, "y":2}, + {"label":"2,6", "x":6.75, "y":2}, + {"label":"2,7", "x":7.75, "y":2}, + {"label":"2,8", "x":8.75, "y":2}, + {"label":"2,9", "x":9.75, "y":2}, + {"label":"2,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,12", "x":12.75, "y":2}, + {"label":"2,13", "x":13.75, "y":2, "w":1.25}, + + {"label":"3,0", "x":0, "y":3, "w":1.25}, + {"label":"3,1", "x":1.25, "y":3}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":1.75}, + {"label":"3,13", "x":14, "y":3}, + {"label":"3,14", "x":16.5, "y":3}, + + {"label":"4,0", "x":0, "y":4, "w":1.25}, + {"label":"4,1", "x":1.25, "y":4, "w":1.25}, + {"label":"4,2", "x":2.5, "y":4, "w":1.25}, + {"label":"4,10", "x":4, "y":4.25, "w":7}, + {"label":"4,9", "x":11.25, "y":4, "w":1.25}, + {"label":"4,11", "x":12.5, "y":4, "w":1.25}, + {"label":"4,12", "x":13.75, "y":4, "w":1.25}, + {"label":"3,15", "x":15.5, "y":4}, + {"label":"4,14", "x":16.5, "y":4}, + {"label":"4,15", "x":17.5, "y":4} + ] + }, + "LAYOUT_ansi_tsangan": { + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + {"label":"0,4", "x":4, "y":0}, + {"label":"0,5", "x":5, "y":0}, + {"label":"0,6", "x":6, "y":0}, + {"label":"0,7", "x":7, "y":0}, + {"label":"0,8", "x":8, "y":0}, + {"label":"0,9", "x":9, "y":0}, + {"label":"0,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"4,13", "x":13, "y":0, "w":2}, + {"label":"0,14", "x":15.5, "y":0}, + {"label":"0,15", "x":16.5, "y":0}, + {"label":"1,15", "x":17.5, "y":0}, + + {"label":"1,0", "x":0, "y":1, "w":1.5}, + {"label":"1,1", "x":1.5, "y":1}, + {"label":"1,2", "x":2.5, "y":1}, + {"label":"1,3", "x":3.5, "y":1}, + {"label":"1,4", "x":4.5, "y":1}, + {"label":"1,5", "x":5.5, "y":1}, + {"label":"1,6", "x":6.5, "y":1}, + {"label":"1,7", "x":7.5, "y":1}, + {"label":"1,8", "x":8.5, "y":1}, + {"label":"1,9", "x":9.5, "y":1}, + {"label":"1,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,13", "x":13.5, "y":1, "w":1.5}, + {"label":"1,14", "x":15.5, "y":1}, + {"label":"2,14", "x":16.5, "y":1}, + {"label":"2,15", "x":17.5, "y":1}, + + {"label":"2,0", "x":0, "y":2, "w":1.75}, + {"label":"2,1", "x":1.75, "y":2}, + {"label":"2,2", "x":2.75, "y":2}, + {"label":"2,3", "x":3.75, "y":2}, + {"label":"2,4", "x":4.75, "y":2}, + {"label":"2,5", "x":5.75, "y":2}, + {"label":"2,6", "x":6.75, "y":2}, + {"label":"2,7", "x":7.75, "y":2}, + {"label":"2,8", "x":8.75, "y":2}, + {"label":"2,9", "x":9.75, "y":2}, + {"label":"2,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,13", "x":12.75, "y":2, "w":2.25}, + + {"label":"3,0", "x":0, "y":3, "w":2.25}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":2.75}, + {"label":"3,14", "x":16.5, "y":3}, + + {"label":"4,0", "x":0, "y":4, "w":1.25}, + {"label":"4,1", "x":1.25, "y":4, "w":1.25}, + {"label":"4,2", "x":2.5, "y":4, "w":1.25}, + {"label":"4,10", "x":4, "y":4.25, "w":7}, + {"label":"4,9", "x":11.25, "y":4, "w":1.25}, + {"label":"4,11", "x":12.5, "y":4, "w":1.25}, + {"label":"4,12", "x":13.75, "y":4, "w":1.25}, + {"label":"3,15", "x":15.5, "y":4}, + {"label":"4,14", "x":16.5, "y":4}, + {"label":"4,15", "x":17.5, "y":4} + ] + }, + "LAYOUT_iso_tsangan": { + "layout": [ + {"label":"0,0", "x":0, "y":0}, + {"label":"0,1", "x":1, "y":0}, + {"label":"0,2", "x":2, "y":0}, + {"label":"0,3", "x":3, "y":0}, + {"label":"0,4", "x":4, "y":0}, + {"label":"0,5", "x":5, "y":0}, + {"label":"0,6", "x":6, "y":0}, + {"label":"0,7", "x":7, "y":0}, + {"label":"0,8", "x":8, "y":0}, + {"label":"0,9", "x":9, "y":0}, + {"label":"0,10", "x":10, "y":0}, + {"label":"0,11", "x":11, "y":0}, + {"label":"0,12", "x":12, "y":0}, + {"label":"4,13", "x":13, "y":0, "w":2}, + {"label":"0,14", "x":15.5, "y":0}, + {"label":"0,15", "x":16.5, "y":0}, + {"label":"1,15", "x":17.5, "y":0}, + + {"label":"1,0", "x":0, "y":1, "w":1.5}, + {"label":"1,1", "x":1.5, "y":1}, + {"label":"1,2", "x":2.5, "y":1}, + {"label":"1,3", "x":3.5, "y":1}, + {"label":"1,4", "x":4.5, "y":1}, + {"label":"1,5", "x":5.5, "y":1}, + {"label":"1,6", "x":6.5, "y":1}, + {"label":"1,7", "x":7.5, "y":1}, + {"label":"1,8", "x":8.5, "y":1}, + {"label":"1,9", "x":9.5, "y":1}, + {"label":"1,10", "x":10.5, "y":1}, + {"label":"1,11", "x":11.5, "y":1}, + {"label":"1,12", "x":12.5, "y":1}, + {"label":"1,14", "x":15.5, "y":1}, + {"label":"2,14", "x":16.5, "y":1}, + {"label":"2,15", "x":17.5, "y":1}, + + {"label":"2,0", "x":0, "y":2, "w":1.75}, + {"label":"2,1", "x":1.75, "y":2}, + {"label":"2,2", "x":2.75, "y":2}, + {"label":"2,3", "x":3.75, "y":2}, + {"label":"2,4", "x":4.75, "y":2}, + {"label":"2,5", "x":5.75, "y":2}, + {"label":"2,6", "x":6.75, "y":2}, + {"label":"2,7", "x":7.75, "y":2}, + {"label":"2,8", "x":8.75, "y":2}, + {"label":"2,9", "x":9.75, "y":2}, + {"label":"2,10", "x":10.75, "y":2}, + {"label":"2,11", "x":11.75, "y":2}, + {"label":"2,12", "x":12.75, "y":2}, + {"label":"2,13", "x":13.75, "y":1, "w":1.25, "h":2}, + + {"label":"3,0", "x":0, "y":3, "w":1.25}, + {"label":"3,1", "x":1.25, "y":3}, + {"label":"3,2", "x":2.25, "y":3}, + {"label":"3,3", "x":3.25, "y":3}, + {"label":"3,4", "x":4.25, "y":3}, + {"label":"3,5", "x":5.25, "y":3}, + {"label":"3,6", "x":6.25, "y":3}, + {"label":"3,7", "x":7.25, "y":3}, + {"label":"3,8", "x":8.25, "y":3}, + {"label":"3,9", "x":9.25, "y":3}, + {"label":"3,10", "x":10.25, "y":3}, + {"label":"3,11", "x":11.25, "y":3}, + {"label":"3,12", "x":12.25, "y":3, "w":2.75}, + {"label":"3,14", "x":16.5, "y":3}, + + {"label":"4,0", "x":0, "y":4, "w":1.25}, + {"label":"4,1", "x":1.25, "y":4, "w":1.25}, + {"label":"4,2", "x":2.5, "y":4, "w":1.25}, + {"label":"4,10", "x":4, "y":4.25, "w":7}, + {"label":"4,9", "x":11.25, "y":4, "w":1.25}, + {"label":"4,11", "x":12.5, "y":4, "w":1.25}, + {"label":"4,12", "x":13.75, "y":4, "w":1.25}, + {"label":"3,15", "x":15.5, "y":4}, + {"label":"4,14", "x":16.5, "y":4}, + {"label":"4,15", "x":17.5, "y":4} + ] } } } diff --git a/keyboards/neson_design/700e/keymaps/default/keymap.c b/keyboards/neson_design/700e/keymaps/default/keymap.c index cf80983ff3b..65f6f2f756e 100644 --- a/keyboards/neson_design/700e/keymaps/default/keymap.c +++ b/keyboards/neson_design/700e/keymaps/default/keymap.c @@ -1,5 +1,5 @@ /** - Copyright 2022 astro + Copyright 2022 astro 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 @@ -19,16 +19,17 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_DEL,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_LGUI, 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_RIGHT), - + 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_DEL, 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_LGUI, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), [1] = LAYOUT_all( - _______, 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,_______,_______,_______, - QK_BOOT, RGB_TOG,RGB_MOD,RGB_RMOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,KC_MUTE,KC_VOLU,KC_VOLD,_______,_______,_______,_______, - _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME, KC_END,_______, - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, - _______,_______,_______, _______, _______,_______,_______,_______,_______,_______), + _______, 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, _______, _______, _______, + QK_BOOT, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_MUTE, KC_VOLU, KC_VOLD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_END, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) }; diff --git a/keyboards/neson_design/700e/keymaps/default_ansi_tsangan/keymap.c b/keyboards/neson_design/700e/keymaps/default_ansi_tsangan/keymap.c new file mode 100644 index 00000000000..1ea530e088a --- /dev/null +++ b/keyboards/neson_design/700e/keymaps/default_ansi_tsangan/keymap.c @@ -0,0 +1,35 @@ +/** + Copyright 2022 astro + + 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_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_INS, KC_HOME, KC_PGUP, + KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT, + KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_ansi_tsangan( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, _______, _______, _______, + QK_BOOT, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_MUTE, KC_VOLU, KC_VOLD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_END, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/neson_design/700e/keymaps/default_iso_tsangan/keymap.c b/keyboards/neson_design/700e/keymaps/default_iso_tsangan/keymap.c new file mode 100644 index 00000000000..b42a7fe7040 --- /dev/null +++ b/keyboards/neson_design/700e/keymaps/default_iso_tsangan/keymap.c @@ -0,0 +1,35 @@ +/** + Copyright 2022 astro + + 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_iso_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_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_DEL, KC_END, KC_PGDN, + KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, + KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), + [1] = LAYOUT_iso_tsangan( + _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_PSCR, _______, _______, _______, + QK_BOOT, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_MUTE, KC_VOLU, KC_VOLD, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_END, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ) +}; diff --git a/keyboards/neson_design/700e/keymaps/via/keymap.c b/keyboards/neson_design/700e/keymaps/via/keymap.c index f3d553e9dfe..b97e77fbd5b 100644 --- a/keyboards/neson_design/700e/keymaps/via/keymap.c +++ b/keyboards/neson_design/700e/keymaps/via/keymap.c @@ -1,5 +1,5 @@ /** - Copyright 2022 astro + Copyright 2022 astro 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 @@ -19,23 +19,24 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { [0] = LAYOUT_all( - KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS,KC_EQL, KC_DEL,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_LGUI, 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_RIGHT), - + 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_DEL, 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_LGUI, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1), KC_UP, + KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT + ), [1] = LAYOUT_all( - _______, 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,_______,_______,_______, - QK_BOOT, RGB_TOG,RGB_MOD,RGB_RMOD,RGB_HUI,RGB_HUD,RGB_SAI,RGB_SAD,RGB_VAI,RGB_VAD,KC_MUTE,KC_VOLU,KC_VOLD,_______,_______,_______,_______, - _______, _______,_______,_______,_______,_______,KC_LEFT,KC_DOWN, KC_UP,KC_RIGHT,KC_HOME, KC_END,_______, - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, - _______,_______,_______, _______, _______,_______,_______,_______,_______,_______), - + _______, 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, _______, _______, _______, + QK_BOOT, RGB_TOG, RGB_MOD, RGB_RMOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_MUTE, KC_VOLU, KC_VOLD, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, KC_HOME, KC_END, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), [2] = LAYOUT_all( - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, - _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, - _______, _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, - _______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______,_______, _______, - _______,_______,_______, _______, _______,_______,_______,_______,_______,_______), + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, + _______, _______, _______, _______, _______, _______, _______, _______, _______, _______ + ), }; From b53918fbe9122ef7995dce194951717ac65f7817 Mon Sep 17 00:00:00 2001 From: QMK Bot Date: Thu, 29 Sep 2022 10:47:17 -0700 Subject: [PATCH 31/34] Format code according to conventions (#18533) --- drivers/bluetooth/bluetooth.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/bluetooth/bluetooth.h b/drivers/bluetooth/bluetooth.h index a923dfe60c0..2e4d0df5381 100644 --- a/drivers/bluetooth/bluetooth.h +++ b/drivers/bluetooth/bluetooth.h @@ -32,21 +32,21 @@ void bluetooth_task(void); /** * \brief Send a keyboard report. - * + * * \param report The keyboard report to send. */ void bluetooth_send_keyboard(report_keyboard_t *report); /** * \brief Send a mouse report. - * + * * \param report The mouse report to send. */ void bluetooth_send_mouse(report_mouse_t *report); /** * \brief Send a consumer usage. - * + * * \param usage The consumer usage to send. */ void bluetooth_send_consumer(uint16_t usage); From dbe214c3268d9a316a137471a7679f7e45046e49 Mon Sep 17 00:00:00 2001 From: Drashna Jaelre Date: Thu, 29 Sep 2022 10:50:47 -0700 Subject: [PATCH 32/34] Handle mouse keys more consistently (#18513) --- quantum/action.c | 100 ++++++++++++++++++++-------------------- quantum/keymap_common.c | 2 - 2 files changed, 51 insertions(+), 51 deletions(-) diff --git a/quantum/action.c b/quantum/action.c index 4f01acb96e9..259c4349c3f 100644 --- a/quantum/action.c +++ b/quantum/action.c @@ -293,19 +293,56 @@ void process_record_handler(keyrecord_t *record) { process_action(record, action); } -#if defined(PS2_MOUSE_ENABLE) || defined(POINTING_DEVICE_ENABLE) -void register_button(bool pressed, enum mouse_buttons button) { -# ifdef PS2_MOUSE_ENABLE - tp_buttons = pressed ? tp_buttons | button : tp_buttons & ~button; +/** + * @brief handles all the messy mouse stuff + * + * Handles all the edgecases and special stuff that is needed for coexistense + * of the multiple mouse subsystems. + * + * @param mouse_keycode[in] uint8_t mouse keycode + * @param pressed[in] bool + */ + +void register_mouse(uint8_t mouse_keycode, bool pressed) { +#ifdef MOUSEKEY_ENABLE + // if mousekeys is enabled, let it do the brunt of the work + if (pressed) { + mousekey_on(mouse_keycode); + } else { + mousekey_off(mouse_keycode); + } + // should mousekeys send report, or does something else handle this? + switch (mouse_keycode) { +# if defined(PS2_MOUSE_ENABLE) || defined(POINTING_DEVICE_ENABLE) + case KC_MS_BTN1 ... KC_MS_BTN8: + // let pointing device handle the buttons + // expand if/when it handles more of the code +# if defined(POINTING_DEVICE_ENABLE) + pointing_device_keycode_handler(mouse_keycode, pressed); +# endif + break; # endif -# ifdef POINTING_DEVICE_ENABLE - report_mouse_t currentReport = pointing_device_get_report(); - currentReport.buttons = pressed ? currentReport.buttons | button : currentReport.buttons & ~button; - pointing_device_set_report(currentReport); -# endif -} + default: + mousekey_send(); + break; + } +#elif defined(POINTING_DEVICE_ENABLE) + // if mousekeys isn't enabled, and pointing device is enabled, then + // let pointing device do all the heavy lifting, then + if IS_MOUSEKEY (mouse_keycode) { + pointing_device_keycode_handler(mouse_keycode, pressed); + } #endif +#ifdef PS2_MOUSE_ENABLE + // make sure that ps2 mouse has button report synced + if (KC_MS_BTN1 <= mouse_keycode && mouse_keycode <= KC_MS_BTN3) { + uint8_t tmp_button_msk = MOUSE_BTN_MASK(mouse_keycode - KC_MS_BTN1); + tp_buttons = pressed ? tp_buttons | tmp_button_msk : tp_buttons & ~tmp_button_msk; + } +#endif +} + /** \brief Take an action and processes it. * * FIXME: Needs documentation. @@ -506,30 +543,10 @@ void process_action(keyrecord_t *record, action_t action) { } break; #endif -#ifdef MOUSEKEY_ENABLE /* Mouse key */ case ACT_MOUSEKEY: - if (event.pressed) { - mousekey_on(action.key.code); - } else { - mousekey_off(action.key.code); - } - switch (action.key.code) { -# if defined(PS2_MOUSE_ENABLE) || defined(POINTING_DEVICE_ENABLE) -# ifdef POINTING_DEVICE_ENABLE - case KC_MS_BTN1 ... KC_MS_BTN8: -# else - case KC_MS_BTN1 ... KC_MS_BTN3: -# endif - register_button(event.pressed, MOUSE_BTN_MASK(action.key.code - KC_MS_BTN1)); - break; -# endif - default: - mousekey_send(); - break; - } + register_mouse(action.key.code, event.pressed); break; -#endif #ifndef NO_ACTION_LAYER case ACT_LAYER: if (action.layer_bitop.on == 0) { @@ -913,16 +930,9 @@ __attribute__((weak)) void register_code(uint8_t code) { host_consumer_send(KEYCODE2CONSUMER(code)); } #endif -#ifdef MOUSEKEY_ENABLE else if IS_MOUSEKEY (code) { - mousekey_on(code); - mousekey_send(); + register_mouse(code, true); } -#elif defined(POINTING_DEVICE_ENABLE) - else if IS_MOUSEKEY (code) { - pointing_device_keycode_handler(code, true); - } -#endif } /** \brief Utilities for actions. (FIXME: Needs better description) @@ -976,17 +986,9 @@ __attribute__((weak)) void unregister_code(uint8_t code) { host_system_send(0); } else if IS_CONSUMER (code) { host_consumer_send(0); + } else if IS_MOUSEKEY (code) { + register_mouse(code, false); } -#ifdef MOUSEKEY_ENABLE - else if IS_MOUSEKEY (code) { - mousekey_off(code); - mousekey_send(); - } -#elif defined(POINTING_DEVICE_ENABLE) - else if IS_MOUSEKEY (code) { - pointing_device_keycode_handler(code, false); - } -#endif } /** \brief Tap a keycode with a delay. diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index 5e8a0434705..50e581cd87e 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -65,11 +65,9 @@ action_t action_for_keycode(uint16_t keycode) { action.code = ACTION_USAGE_CONSUMER(KEYCODE2CONSUMER(keycode)); break; #endif -#ifdef MOUSEKEY_ENABLE case KC_MS_UP ... KC_MS_ACCEL2: action.code = ACTION_MOUSEKEY(keycode); break; -#endif case KC_TRANSPARENT: action.code = ACTION_TRANSPARENT; break; From 45b5ed5c6e1ecdf95e9ce0523a8ff49d45b8822f Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 30 Sep 2022 04:23:11 +1000 Subject: [PATCH 33/34] Onekey: migrate some stuff to data driven (#18502) --- .../handwired/onekey/blackpill_f401/config.h | 8 ++---- .../handwired/onekey/blackpill_f401/info.json | 13 +++++++++- .../handwired/onekey/blackpill_f401/rules.mk | 7 ------ .../handwired/onekey/blackpill_f411/config.h | 8 ++---- .../handwired/onekey/blackpill_f411/info.json | 13 +++++++++- .../handwired/onekey/blackpill_f411/rules.mk | 7 ------ .../onekey/blackpill_f411_tinyuf2/config.h | 8 ++---- .../onekey/blackpill_f411_tinyuf2/info.json | 15 ++++++++++- .../onekey/blackpill_f411_tinyuf2/rules.mk | 7 ------ keyboards/handwired/onekey/bluepill/config.h | 8 ++---- keyboards/handwired/onekey/bluepill/info.json | 13 +++++++++- keyboards/handwired/onekey/bluepill/rules.mk | 6 ----- .../handwired/onekey/bluepill_f103c6/config.h | 9 ++----- .../onekey/bluepill_f103c6/info.json | 14 ++++++++++- .../handwired/onekey/bluepill_f103c6/rules.mk | 4 --- keyboards/handwired/onekey/config.h | 10 -------- keyboards/handwired/onekey/elite_c/config.h | 6 ----- keyboards/handwired/onekey/elite_c/info.json | 13 +++++++++- keyboards/handwired/onekey/elite_c/rules.mk | 5 ---- .../handwired/onekey/evb_wb32f3g71/config.h | 8 ------ .../handwired/onekey/evb_wb32f3g71/info.json | 8 +++++- .../handwired/onekey/evb_wb32f3g71/rules.mk | 6 ----- .../handwired/onekey/evb_wb32fq95/config.h | 8 ------ .../handwired/onekey/evb_wb32fq95/info.json | 8 +++++- .../handwired/onekey/evb_wb32fq95/rules.mk | 6 ----- keyboards/handwired/onekey/info.json | 15 ++++++++++- keyboards/handwired/onekey/kb2040/config.h | 6 ----- keyboards/handwired/onekey/kb2040/info.json | 10 +++++++- keyboards/handwired/onekey/kb2040/rules.mk | 5 ---- .../handwired/onekey/keymaps/quine/keymap.c | 4 +-- .../handwired/onekey/nucleo_l432kc/config.h | 5 ---- .../handwired/onekey/nucleo_l432kc/info.json | 14 ++++++++++- .../handwired/onekey/nucleo_l432kc/rules.mk | 5 ---- keyboards/handwired/onekey/onekey.c | 2 +- keyboards/handwired/onekey/onekey.h | 25 ------------------- keyboards/handwired/onekey/promicro/config.h | 6 ----- keyboards/handwired/onekey/promicro/info.json | 13 +++++++++- keyboards/handwired/onekey/promicro/rules.mk | 5 ---- keyboards/handwired/onekey/proton_c/config.h | 5 ---- keyboards/handwired/onekey/proton_c/info.json | 13 +++++++++- keyboards/handwired/onekey/proton_c/rules.mk | 6 ----- keyboards/handwired/onekey/rp2040/config.h | 6 ----- keyboards/handwired/onekey/rp2040/info.json | 11 +++++++- keyboards/handwired/onekey/rp2040/rules.mk | 3 --- keyboards/handwired/onekey/rules.mk | 15 ----------- .../onekey/sipeed_longan_nano/config.h | 7 ------ .../onekey/sipeed_longan_nano/info.json | 15 ++++++++++- .../onekey/sipeed_longan_nano/rules.mk | 10 -------- .../handwired/onekey/stm32f0_disco/config.h | 8 ++---- .../handwired/onekey/stm32f0_disco/info.json | 14 ++++++++++- .../handwired/onekey/stm32f0_disco/rules.mk | 6 ----- .../onekey/stm32f405_feather/config.h | 22 ---------------- .../onekey/stm32f405_feather/info.json | 8 +++++- .../onekey/stm32f405_feather/rules.mk | 6 ----- keyboards/handwired/onekey/teensy_2/config.h | 9 ++----- keyboards/handwired/onekey/teensy_2/info.json | 14 ++++++++++- keyboards/handwired/onekey/teensy_2/rules.mk | 5 ---- .../handwired/onekey/teensy_2pp/config.h | 9 ++----- .../handwired/onekey/teensy_2pp/info.json | 14 ++++++++++- .../handwired/onekey/teensy_2pp/rules.mk | 5 ---- keyboards/handwired/onekey/teensy_32/config.h | 3 --- .../handwired/onekey/teensy_32/info.json | 8 +++++- keyboards/handwired/onekey/teensy_32/rules.mk | 6 ----- keyboards/handwired/onekey/teensy_35/config.h | 3 --- .../handwired/onekey/teensy_35/info.json | 8 +++++- keyboards/handwired/onekey/teensy_35/rules.mk | 6 ----- keyboards/handwired/onekey/teensy_lc/config.h | 3 --- .../handwired/onekey/teensy_lc/info.json | 8 +++++- keyboards/handwired/onekey/teensy_lc/rules.mk | 5 ---- 69 files changed, 259 insertions(+), 335 deletions(-) delete mode 100644 keyboards/handwired/onekey/evb_wb32f3g71/config.h delete mode 100644 keyboards/handwired/onekey/evb_wb32fq95/config.h delete mode 100644 keyboards/handwired/onekey/onekey.h delete mode 100644 keyboards/handwired/onekey/stm32f405_feather/config.h diff --git a/keyboards/handwired/onekey/blackpill_f401/config.h b/keyboards/handwired/onekey/blackpill_f401/config.h index 2554e2207c2..4e9552480f8 100644 --- a/keyboards/handwired/onekey/blackpill_f401/config.h +++ b/keyboards/handwired/onekey/blackpill_f401/config.h @@ -18,13 +18,9 @@ #include "config_common.h" -#define MATRIX_COL_PINS { B0 } -#define MATRIX_ROW_PINS { A7 } - -#define BACKLIGHT_PIN A0 #define BACKLIGHT_PWM_DRIVER PWMD5 #define BACKLIGHT_PWM_CHANNEL 1 -#define RGB_DI_PIN A1 - #define ADC_PIN A0 + +#define RGB_CI_PIN A2 diff --git a/keyboards/handwired/onekey/blackpill_f401/info.json b/keyboards/handwired/onekey/blackpill_f401/info.json index 50afb4b9b0a..b79b17b0009 100644 --- a/keyboards/handwired/onekey/blackpill_f401/info.json +++ b/keyboards/handwired/onekey/blackpill_f401/info.json @@ -1,3 +1,14 @@ { - "keyboard_name": "Onekey Blackpill STM32F401" + "keyboard_name": "Onekey Blackpill STM32F401", + "development_board": "blackpill_f401", + "matrix_pins": { + "cols": ["B0"], + "rows": ["A7"] + }, + "backlight": { + "pin": "A0" + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/blackpill_f401/rules.mk b/keyboards/handwired/onekey/blackpill_f401/rules.mk index 1fec226e9b3..1071cf62ee3 100644 --- a/keyboards/handwired/onekey/blackpill_f401/rules.mk +++ b/keyboards/handwired/onekey/blackpill_f401/rules.mk @@ -1,8 +1 @@ -# MCU name -MCU = STM32F401 -BOARD = BLACKPILL_STM32_F401 - -# Bootloader selection -BOOTLOADER = stm32-dfu - KEYBOARD_SHARED_EP = yes diff --git a/keyboards/handwired/onekey/blackpill_f411/config.h b/keyboards/handwired/onekey/blackpill_f411/config.h index 9e9737fbf5e..b97df0c6660 100644 --- a/keyboards/handwired/onekey/blackpill_f411/config.h +++ b/keyboards/handwired/onekey/blackpill_f411/config.h @@ -18,17 +18,13 @@ #include "config_common.h" -#define MATRIX_COL_PINS { B0 } -#define MATRIX_ROW_PINS { A7 } - -#define BACKLIGHT_PIN A0 #define BACKLIGHT_PWM_DRIVER PWMD5 #define BACKLIGHT_PWM_CHANNEL 1 -#define RGB_DI_PIN A1 - #define ADC_PIN A0 +#define RGB_CI_PIN A2 + #define SOLENOID_PIN B12 #define SOLENOID_PINS { B12, B13, B14, B15 } #define SOLENOID_PINS_ACTIVE_STATE { high, high, low } diff --git a/keyboards/handwired/onekey/blackpill_f411/info.json b/keyboards/handwired/onekey/blackpill_f411/info.json index 0b2c14d5b98..19c6cbfed97 100644 --- a/keyboards/handwired/onekey/blackpill_f411/info.json +++ b/keyboards/handwired/onekey/blackpill_f411/info.json @@ -1,3 +1,14 @@ { - "keyboard_name": "Onekey Blackpill STM32F411" + "keyboard_name": "Onekey Blackpill STM32F411", + "development_board": "blackpill_f411", + "matrix_pins": { + "cols": ["B0"], + "rows": ["A7"] + }, + "backlight": { + "pin": "A0" + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/blackpill_f411/rules.mk b/keyboards/handwired/onekey/blackpill_f411/rules.mk index cd1657335d9..1071cf62ee3 100644 --- a/keyboards/handwired/onekey/blackpill_f411/rules.mk +++ b/keyboards/handwired/onekey/blackpill_f411/rules.mk @@ -1,8 +1 @@ -# MCU name -MCU = STM32F411 -BOARD = BLACKPILL_STM32_F411 - -# Bootloader selection -BOOTLOADER = stm32-dfu - KEYBOARD_SHARED_EP = yes diff --git a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h index f4b589c6d29..c8800fa1635 100755 --- a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h +++ b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/config.h @@ -18,13 +18,9 @@ #include "config_common.h" -#define MATRIX_COL_PINS { B0 } -#define MATRIX_ROW_PINS { A7 } - -#define BACKLIGHT_PIN A0 #define BACKLIGHT_PWM_DRIVER PWMD5 #define BACKLIGHT_PWM_CHANNEL 1 -#define RGB_DI_PIN A1 - #define ADC_PIN A0 + +#define RGB_CI_PIN A2 diff --git a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/info.json b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/info.json index 59cdec59f7e..3acccb7148e 100644 --- a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/info.json +++ b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/info.json @@ -1,3 +1,16 @@ { - "keyboard_name": "Onekey Blackpill STM32F411 TinyUF2" + "keyboard_name": "Onekey Blackpill STM32F411 TinyUF2", + "processor": "STM32F411", + "bootloader": "tinyuf2", + "board": "BLACKPILL_STM32_F411", + "matrix_pins": { + "cols": ["B0"], + "rows": ["A7"] + }, + "backlight": { + "pin": "A0" + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/rules.mk b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/rules.mk index 2c38e9b580b..1071cf62ee3 100755 --- a/keyboards/handwired/onekey/blackpill_f411_tinyuf2/rules.mk +++ b/keyboards/handwired/onekey/blackpill_f411_tinyuf2/rules.mk @@ -1,8 +1 @@ -# MCU name -MCU = STM32F411 -BOARD = BLACKPILL_STM32_F411 - -# Bootloader selection -BOOTLOADER = tinyuf2 - KEYBOARD_SHARED_EP = yes diff --git a/keyboards/handwired/onekey/bluepill/config.h b/keyboards/handwired/onekey/bluepill/config.h index 0f85ad91c75..79fa79595a4 100644 --- a/keyboards/handwired/onekey/bluepill/config.h +++ b/keyboards/handwired/onekey/bluepill/config.h @@ -18,13 +18,9 @@ #include "config_common.h" -#define MATRIX_COL_PINS { B0 } -#define MATRIX_ROW_PINS { A7 } - -#define BACKLIGHT_PIN A0 #define BACKLIGHT_PWM_DRIVER PWMD2 #define BACKLIGHT_PWM_CHANNEL 1 -#define RGB_DI_PIN A1 - #define ADC_PIN A0 + +#define RGB_CI_PIN A2 diff --git a/keyboards/handwired/onekey/bluepill/info.json b/keyboards/handwired/onekey/bluepill/info.json index 2126c62b053..7bef2db1708 100644 --- a/keyboards/handwired/onekey/bluepill/info.json +++ b/keyboards/handwired/onekey/bluepill/info.json @@ -1,3 +1,14 @@ { - "keyboard_name": "Onekey Bluepill STM32F103" + "keyboard_name": "Onekey Bluepill STM32F103", + "development_board": "bluepill", + "matrix_pins": { + "cols": ["B0"], + "rows": ["A7"] + }, + "backlight": { + "pin": "A0" + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/bluepill/rules.mk b/keyboards/handwired/onekey/bluepill/rules.mk index 019b1130d99..a92b0993283 100644 --- a/keyboards/handwired/onekey/bluepill/rules.mk +++ b/keyboards/handwired/onekey/bluepill/rules.mk @@ -1,8 +1,2 @@ -# MCU name -MCU = STM32F103 - -# Bootloader selection -BOOTLOADER = stm32duino - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/onekey/bluepill_f103c6/config.h b/keyboards/handwired/onekey/bluepill_f103c6/config.h index 903277bd3bb..8b62ed86f23 100644 --- a/keyboards/handwired/onekey/bluepill_f103c6/config.h +++ b/keyboards/handwired/onekey/bluepill_f103c6/config.h @@ -18,18 +18,13 @@ #include "config_common.h" -#define MATRIX_COL_PINS { B0 } -#define MATRIX_ROW_PINS { A7 } -#define UNUSED_PINS - -#define BACKLIGHT_PIN A0 #define BACKLIGHT_PWM_DRIVER PWMD2 #define BACKLIGHT_PWM_CHANNEL 1 -#define RGB_DI_PIN A1 - #define ADC_PIN A0 +#define RGB_CI_PIN A2 + // This code does not fit into the really small flash of STM32F103x6 together // with CONSOLE_ENABLE=yes, and the debugging console is probably more // important for the "okeney" testing firmware. In a real firmware you may be diff --git a/keyboards/handwired/onekey/bluepill_f103c6/info.json b/keyboards/handwired/onekey/bluepill_f103c6/info.json index 0ef180f6ec0..353f074d922 100644 --- a/keyboards/handwired/onekey/bluepill_f103c6/info.json +++ b/keyboards/handwired/onekey/bluepill_f103c6/info.json @@ -1,3 +1,15 @@ { - "keyboard_name": "Onekey Bluepill STM32F103C6" + "keyboard_name": "Onekey Bluepill STM32F103C6", + "processor": "STM32F103", + "board": "STM32_F103_STM32DUINO", + "matrix_pins": { + "cols": ["B0"], + "rows": ["A7"] + }, + "backlight": { + "pin": "A0" + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/bluepill_f103c6/rules.mk b/keyboards/handwired/onekey/bluepill_f103c6/rules.mk index f2280a1a597..c76a8ebe6ec 100644 --- a/keyboards/handwired/onekey/bluepill_f103c6/rules.mk +++ b/keyboards/handwired/onekey/bluepill_f103c6/rules.mk @@ -1,12 +1,8 @@ -# MCU name -MCU = STM32F103 - # Bootloader selection # Cannot use `BOOTLOADER = stm32duino` due to the need to override # `MCU_LDSCRIPT`, therefore all parameters need to be specified here manually. OPT_DEFS += -DBOOTLOADER_STM32DUINO MCU_LDSCRIPT = STM32F103x6_stm32duino_bootloader -BOARD = STM32_F103_STM32DUINO BOOTLOADER_TYPE = stm32duino DFU_ARGS = -d 1EAF:0003 -a 2 -R DFU_SUFFIX_ARGS = -v 1EAF -p 0003 diff --git a/keyboards/handwired/onekey/config.h b/keyboards/handwired/onekey/config.h index f1ce6d94914..9fcd881321f 100644 --- a/keyboards/handwired/onekey/config.h +++ b/keyboards/handwired/onekey/config.h @@ -17,16 +17,6 @@ along with this program. If not, see . #pragma once -/* key matrix size */ -#define MATRIX_ROWS 1 -#define MATRIX_COLS 1 - -/* COL2ROW, ROW2COL */ -#define DIODE_DIRECTION COL2ROW - -/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */ -#define DEBOUNCE 5 - /* define if matrix has ghost (lacks anti-ghosting diodes) */ //#define MATRIX_HAS_GHOST diff --git a/keyboards/handwired/onekey/elite_c/config.h b/keyboards/handwired/onekey/elite_c/config.h index 83eded68de6..473cfdfbda8 100644 --- a/keyboards/handwired/onekey/elite_c/config.h +++ b/keyboards/handwired/onekey/elite_c/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -#define MATRIX_COL_PINS { F4 } -#define MATRIX_ROW_PINS { F5 } - -#define BACKLIGHT_PIN B6 - -#define RGB_DI_PIN F6 #define RGB_CI_PIN B1 #define ADC_PIN F6 diff --git a/keyboards/handwired/onekey/elite_c/info.json b/keyboards/handwired/onekey/elite_c/info.json index d86f8b43954..15485610416 100644 --- a/keyboards/handwired/onekey/elite_c/info.json +++ b/keyboards/handwired/onekey/elite_c/info.json @@ -1,3 +1,14 @@ { - "keyboard_name": "Onekey Elite-C" + "keyboard_name": "Onekey Elite-C", + "development_board": "elite_c", + "matrix_pins": { + "cols": ["F4"], + "rows": ["F5"] + }, + "backlight": { + "pin": "B6" + }, + "rgblight": { + "pin": "F6" + } } diff --git a/keyboards/handwired/onekey/elite_c/rules.mk b/keyboards/handwired/onekey/elite_c/rules.mk index e8326bcf099..e69de29bb2d 100644 --- a/keyboards/handwired/onekey/elite_c/rules.mk +++ b/keyboards/handwired/onekey/elite_c/rules.mk @@ -1,5 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = atmel-dfu diff --git a/keyboards/handwired/onekey/evb_wb32f3g71/config.h b/keyboards/handwired/onekey/evb_wb32f3g71/config.h deleted file mode 100644 index 722aa598217..00000000000 --- a/keyboards/handwired/onekey/evb_wb32f3g71/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2021 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include "config_common.h" - -#define MATRIX_COL_PINS { B12 } -#define MATRIX_ROW_PINS { B13 } diff --git a/keyboards/handwired/onekey/evb_wb32f3g71/info.json b/keyboards/handwired/onekey/evb_wb32f3g71/info.json index c4d9d317e54..6287cdc34a3 100644 --- a/keyboards/handwired/onekey/evb_wb32f3g71/info.json +++ b/keyboards/handwired/onekey/evb_wb32f3g71/info.json @@ -1,3 +1,9 @@ { - "keyboard_name": "Onekey WB32F3G71 Eval" + "keyboard_name": "Onekey WB32F3G71 Eval", + "processor": "WB32F3G71", + "bootloader": "wb32-dfu", + "matrix_pins": { + "cols": ["B12"], + "rows": ["B13"] + } } diff --git a/keyboards/handwired/onekey/evb_wb32f3g71/rules.mk b/keyboards/handwired/onekey/evb_wb32f3g71/rules.mk index 9f64c6683f5..033dd66aa4a 100644 --- a/keyboards/handwired/onekey/evb_wb32f3g71/rules.mk +++ b/keyboards/handwired/onekey/evb_wb32f3g71/rules.mk @@ -1,9 +1,3 @@ -# MCU name -MCU = WB32F3G71 - -# Bootloader selection -BOOTLOADER = wb32-dfu - MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = no # Audio control and System control NKRO_ENABLE = no # Enable N-Key Rollover diff --git a/keyboards/handwired/onekey/evb_wb32fq95/config.h b/keyboards/handwired/onekey/evb_wb32fq95/config.h deleted file mode 100644 index 722aa598217..00000000000 --- a/keyboards/handwired/onekey/evb_wb32fq95/config.h +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2021 Nick Brassel (@tzarc) -// SPDX-License-Identifier: GPL-2.0-or-later -#pragma once - -#include "config_common.h" - -#define MATRIX_COL_PINS { B12 } -#define MATRIX_ROW_PINS { B13 } diff --git a/keyboards/handwired/onekey/evb_wb32fq95/info.json b/keyboards/handwired/onekey/evb_wb32fq95/info.json index ccc65b2e703..3fc1c886572 100644 --- a/keyboards/handwired/onekey/evb_wb32fq95/info.json +++ b/keyboards/handwired/onekey/evb_wb32fq95/info.json @@ -1,3 +1,9 @@ { - "keyboard_name": "Onekey WB32FQ95 Eval" + "keyboard_name": "Onekey WB32FQ95 Eval", + "processor": "WB32FQ95", + "bootloader": "wb32-dfu", + "matrix_pins": { + "cols": ["B12"], + "rows": ["B13"] + } } diff --git a/keyboards/handwired/onekey/evb_wb32fq95/rules.mk b/keyboards/handwired/onekey/evb_wb32fq95/rules.mk index d0dcd16292e..033dd66aa4a 100644 --- a/keyboards/handwired/onekey/evb_wb32fq95/rules.mk +++ b/keyboards/handwired/onekey/evb_wb32fq95/rules.mk @@ -1,9 +1,3 @@ -# MCU name -MCU = WB32FQ95 - -# Bootloader selection -BOOTLOADER = wb32-dfu - MOUSEKEY_ENABLE = no # Mouse keys EXTRAKEY_ENABLE = no # Audio control and System control NKRO_ENABLE = no # Enable N-Key Rollover diff --git a/keyboards/handwired/onekey/info.json b/keyboards/handwired/onekey/info.json index 46cdc828274..605e73e7260 100644 --- a/keyboards/handwired/onekey/info.json +++ b/keyboards/handwired/onekey/info.json @@ -7,10 +7,23 @@ "pid": "0x6465", "device_version": "0.0.1" }, + "diode_direction": "COL2ROW", + "features": { + "bootmagic": false, + "mousekey": true, + "extrakey": true, + "console": true, + "command": false, + "nkro": true, + "backlight": false, + "rgblight": false, + "audio": false + }, + "community_layouts": ["ortho_1x1"], "layouts": { "LAYOUT_ortho_1x1": { "layout": [ - {"x": 0, "y": 0} + {"x": 0, "y": 0, "matrix": [0, 0]} ] } } diff --git a/keyboards/handwired/onekey/kb2040/config.h b/keyboards/handwired/onekey/kb2040/config.h index 0bf7adf37f4..c6c6dbe2cf8 100644 --- a/keyboards/handwired/onekey/kb2040/config.h +++ b/keyboards/handwired/onekey/kb2040/config.h @@ -5,10 +5,6 @@ #include "config_common.h" -#define MATRIX_COL_PINS \ - { GP4 } -#define MATRIX_ROW_PINS \ - { GP5 } #define DEBUG_MATRIX_SCAN_RATE #define QMK_WAITING_TEST_BUSY_PIN GP8 @@ -18,8 +14,6 @@ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP25 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U -#define RGB_DI_PIN A1 - // settings for the oled keyboard demo with Adafruit 0.91" OLED display on the Stemma QT port #define OLED_DISPLAY_128X32 #define I2C_DRIVER I2CD1 diff --git a/keyboards/handwired/onekey/kb2040/info.json b/keyboards/handwired/onekey/kb2040/info.json index 696b772142c..7982db46782 100644 --- a/keyboards/handwired/onekey/kb2040/info.json +++ b/keyboards/handwired/onekey/kb2040/info.json @@ -1,3 +1,11 @@ { - "keyboard_name": "Onekey KB2040" + "keyboard_name": "Onekey KB2040", + "development_board": "kb2040", + "matrix_pins": { + "cols": ["GP4"], + "rows": ["GP5"] + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/kb2040/rules.mk b/keyboards/handwired/onekey/kb2040/rules.mk index 624b331bf87..a5429ba9935 100644 --- a/keyboards/handwired/onekey/kb2040/rules.mk +++ b/keyboards/handwired/onekey/kb2040/rules.mk @@ -1,9 +1,4 @@ -# MCU name -MCU = RP2040 -BOOTLOADER = rp2040 - OLED_ENABLE = yes OLED_DRIVER = SSD1306 OPT_DEFS += -DHAL_USE_I2C=TRUE - diff --git a/keyboards/handwired/onekey/keymaps/quine/keymap.c b/keyboards/handwired/onekey/keymaps/quine/keymap.c index e7c1e6d0644..f440bba83ae 100644 --- a/keyboards/handwired/onekey/keymaps/quine/keymap.c +++ b/keyboards/handwired/onekey/keymaps/quine/keymap.c @@ -1,7 +1,7 @@ -#include +#include const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT_ortho_1x1(KC_A) }; const char *buf[30] = { -"#include ", +"#include ", "const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { LAYOUT_ortho_1x1(KC_A) };", "const char *buf[30] = {", "", diff --git a/keyboards/handwired/onekey/nucleo_l432kc/config.h b/keyboards/handwired/onekey/nucleo_l432kc/config.h index b6b36c4cee5..24b136fe2ad 100644 --- a/keyboards/handwired/onekey/nucleo_l432kc/config.h +++ b/keyboards/handwired/onekey/nucleo_l432kc/config.h @@ -4,15 +4,10 @@ #include "config_common.h" -#define MATRIX_COL_PINS { A2 } -#define MATRIX_ROW_PINS { A1 } - -#define BACKLIGHT_PIN B8 #define BACKLIGHT_PWM_DRIVER PWMD4 #define BACKLIGHT_PWM_CHANNEL 3 #define BACKLIGHT_PAL_MODE 2 -#define RGB_DI_PIN A0 #define RGB_CI_PIN B13 #define ADC_PIN A0 diff --git a/keyboards/handwired/onekey/nucleo_l432kc/info.json b/keyboards/handwired/onekey/nucleo_l432kc/info.json index 3f497fc80ab..a6e65110400 100644 --- a/keyboards/handwired/onekey/nucleo_l432kc/info.json +++ b/keyboards/handwired/onekey/nucleo_l432kc/info.json @@ -1,3 +1,15 @@ { - "keyboard_name": "Onekey Nucleo L432KC" + "keyboard_name": "Onekey Nucleo L432KC", + "processor": "STM32L432", + "bootloader": "stm32-dfu", + "matrix_pins": { + "cols": ["A2"], + "rows": ["A1"] + }, + "backlight": { + "pin": "B8" + }, + "rgblight": { + "pin": "A0" + } } diff --git a/keyboards/handwired/onekey/nucleo_l432kc/rules.mk b/keyboards/handwired/onekey/nucleo_l432kc/rules.mk index 64dae7746ed..e69de29bb2d 100644 --- a/keyboards/handwired/onekey/nucleo_l432kc/rules.mk +++ b/keyboards/handwired/onekey/nucleo_l432kc/rules.mk @@ -1,5 +0,0 @@ -# MCU name -MCU = STM32L432 - -# Bootloader selection -BOOTLOADER = stm32-dfu diff --git a/keyboards/handwired/onekey/onekey.c b/keyboards/handwired/onekey/onekey.c index a29f9ea6d0f..14c7697328c 100644 --- a/keyboards/handwired/onekey/onekey.c +++ b/keyboards/handwired/onekey/onekey.c @@ -1,7 +1,7 @@ // Copyright 2022 QMK // SPDX-License-Identifier: GPL-2.0-or-later -#include "onekey.h" +#include "quantum.h" void keyboard_post_init_kb(void) { debug_enable = true; diff --git a/keyboards/handwired/onekey/onekey.h b/keyboards/handwired/onekey/onekey.h deleted file mode 100644 index 72cab45be50..00000000000 --- a/keyboards/handwired/onekey/onekey.h +++ /dev/null @@ -1,25 +0,0 @@ -/* Copyright 2019 - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#pragma once - -#include "quantum.h" - -#define LAYOUT_ortho_1x1( \ - k00 \ -) { \ - { k00 } \ -} diff --git a/keyboards/handwired/onekey/promicro/config.h b/keyboards/handwired/onekey/promicro/config.h index 83eded68de6..473cfdfbda8 100644 --- a/keyboards/handwired/onekey/promicro/config.h +++ b/keyboards/handwired/onekey/promicro/config.h @@ -18,12 +18,6 @@ #include "config_common.h" -#define MATRIX_COL_PINS { F4 } -#define MATRIX_ROW_PINS { F5 } - -#define BACKLIGHT_PIN B6 - -#define RGB_DI_PIN F6 #define RGB_CI_PIN B1 #define ADC_PIN F6 diff --git a/keyboards/handwired/onekey/promicro/info.json b/keyboards/handwired/onekey/promicro/info.json index 6b35da4d750..efefd8d45c0 100644 --- a/keyboards/handwired/onekey/promicro/info.json +++ b/keyboards/handwired/onekey/promicro/info.json @@ -1,3 +1,14 @@ { - "keyboard_name": "Onekey Pro Micro" + "keyboard_name": "Onekey Pro Micro", + "development_board": "promicro", + "matrix_pins": { + "cols": ["F4"], + "rows": ["F5"] + }, + "backlight": { + "pin": "B6" + }, + "rgblight": { + "pin": "F6" + } } diff --git a/keyboards/handwired/onekey/promicro/rules.mk b/keyboards/handwired/onekey/promicro/rules.mk index cf663a7ed6a..e69de29bb2d 100644 --- a/keyboards/handwired/onekey/promicro/rules.mk +++ b/keyboards/handwired/onekey/promicro/rules.mk @@ -1,5 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = caterina diff --git a/keyboards/handwired/onekey/proton_c/config.h b/keyboards/handwired/onekey/proton_c/config.h index 6e8e28edb45..776c4223984 100644 --- a/keyboards/handwired/onekey/proton_c/config.h +++ b/keyboards/handwired/onekey/proton_c/config.h @@ -18,15 +18,10 @@ #include "config_common.h" -#define MATRIX_COL_PINS { A2 } -#define MATRIX_ROW_PINS { A1 } - -#define BACKLIGHT_PIN B8 #define BACKLIGHT_PWM_DRIVER PWMD4 #define BACKLIGHT_PWM_CHANNEL 3 #define BACKLIGHT_PAL_MODE 2 -#define RGB_DI_PIN A0 #define RGB_CI_PIN B13 #define ADC_PIN A0 diff --git a/keyboards/handwired/onekey/proton_c/info.json b/keyboards/handwired/onekey/proton_c/info.json index 47ac089f7a3..5292d025678 100644 --- a/keyboards/handwired/onekey/proton_c/info.json +++ b/keyboards/handwired/onekey/proton_c/info.json @@ -1,3 +1,14 @@ { - "keyboard_name": "Onekey Proton-C" + "keyboard_name": "Onekey Proton-C", + "development_board": "proton_c", + "matrix_pins": { + "cols": ["A2"], + "rows": ["A1"] + }, + "backlight": { + "pin": "B8" + }, + "rgblight": { + "pin": "A0" + } } diff --git a/keyboards/handwired/onekey/proton_c/rules.mk b/keyboards/handwired/onekey/proton_c/rules.mk index 7a846816d1b..e69de29bb2d 100644 --- a/keyboards/handwired/onekey/proton_c/rules.mk +++ b/keyboards/handwired/onekey/proton_c/rules.mk @@ -1,6 +0,0 @@ -# MCU name -MCU = STM32F303 -BOARD = QMK_PROTON_C - -# Bootloader selection -BOOTLOADER = stm32-dfu diff --git a/keyboards/handwired/onekey/rp2040/config.h b/keyboards/handwired/onekey/rp2040/config.h index c0ef468aa9f..bcf4047a4f0 100644 --- a/keyboards/handwired/onekey/rp2040/config.h +++ b/keyboards/handwired/onekey/rp2040/config.h @@ -5,10 +5,6 @@ #include "config_common.h" -#define MATRIX_COL_PINS \ - { GP4 } -#define MATRIX_ROW_PINS \ - { GP5 } #define DEBUG_MATRIX_SCAN_RATE #define QMK_WAITING_TEST_BUSY_PIN GP8 @@ -17,5 +13,3 @@ #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_LED GP25 #define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U - -#define RGB_DI_PIN A1 diff --git a/keyboards/handwired/onekey/rp2040/info.json b/keyboards/handwired/onekey/rp2040/info.json index 696b021dc17..b34a1cc206a 100644 --- a/keyboards/handwired/onekey/rp2040/info.json +++ b/keyboards/handwired/onekey/rp2040/info.json @@ -1,3 +1,12 @@ { - "keyboard_name": "Onekey RP2040" + "keyboard_name": "Onekey RP2040", + "processor": "RP2040", + "bootloader": "rp2040", + "matrix_pins": { + "cols": ["GP4"], + "rows": ["GP5"] + }, + "rgblight": { + "pin": "A1" + } } diff --git a/keyboards/handwired/onekey/rp2040/rules.mk b/keyboards/handwired/onekey/rp2040/rules.mk index 646402d0bb5..e69de29bb2d 100644 --- a/keyboards/handwired/onekey/rp2040/rules.mk +++ b/keyboards/handwired/onekey/rp2040/rules.mk @@ -1,3 +0,0 @@ -# MCU name -MCU = RP2040 -BOOTLOADER = rp2040 diff --git a/keyboards/handwired/onekey/rules.mk b/keyboards/handwired/onekey/rules.mk index 98a145f714d..2094801ed91 100644 --- a/keyboards/handwired/onekey/rules.mk +++ b/keyboards/handwired/onekey/rules.mk @@ -1,16 +1 @@ -# Build Options -# change yes to no to disable -# -BOOTMAGIC_ENABLE = no # Enable Bootmagic Lite -MOUSEKEY_ENABLE = yes # Mouse keys -EXTRAKEY_ENABLE = yes # Audio control and System control -CONSOLE_ENABLE = yes # Console for debug -COMMAND_ENABLE = no # Commands for debug and configuration -NKRO_ENABLE = yes # Enable N-Key Rollover -BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality -RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow -AUDIO_ENABLE = no # Audio output - DEFAULT_FOLDER = handwired/onekey/promicro - -LAYOUTS = ortho_1x1 diff --git a/keyboards/handwired/onekey/sipeed_longan_nano/config.h b/keyboards/handwired/onekey/sipeed_longan_nano/config.h index 6f97baf57f2..74ae76f594d 100644 --- a/keyboards/handwired/onekey/sipeed_longan_nano/config.h +++ b/keyboards/handwired/onekey/sipeed_longan_nano/config.h @@ -18,16 +18,9 @@ #include "config_common.h" -#define MATRIX_COL_PINS \ - { B0 } -#define MATRIX_ROW_PINS \ - { A7 } - -#define BACKLIGHT_PIN A1 /* Green LED. */ #define BACKLIGHT_PWM_DRIVER PWMD5 /* GD32 numbering scheme starts from 0, TIMER4 on GD32 boards is TIMER5 on STM32 boards. */ #define BACKLIGHT_PWM_CHANNEL 2 /* GD32 numbering scheme starts from 0, Channel 1 on GD32 boards is Channel 2 on STM32 boards. */ -#define RGB_DI_PIN A2 #define RGB_CI_PIN B13 #define ADC_PIN A0 diff --git a/keyboards/handwired/onekey/sipeed_longan_nano/info.json b/keyboards/handwired/onekey/sipeed_longan_nano/info.json index 10f661c3d97..d14928139ba 100644 --- a/keyboards/handwired/onekey/sipeed_longan_nano/info.json +++ b/keyboards/handwired/onekey/sipeed_longan_nano/info.json @@ -1,3 +1,16 @@ { - "keyboard_name": "Onekey Sipeed Longan Nano" + "keyboard_name": "Onekey Sipeed Longan Nano", + "processor": "GD32VF103", + "bootloader": "gd32v-dfu", + "board": "SIPEED_LONGAN_NANO", + "matrix_pins": { + "cols": ["B0"], + "rows": ["A7"] + }, + "backlight": { + "pin": "A1" + }, + "rgblight": { + "pin": "A2" + } } diff --git a/keyboards/handwired/onekey/sipeed_longan_nano/rules.mk b/keyboards/handwired/onekey/sipeed_longan_nano/rules.mk index aef4fee6b22..1071cf62ee3 100644 --- a/keyboards/handwired/onekey/sipeed_longan_nano/rules.mk +++ b/keyboards/handwired/onekey/sipeed_longan_nano/rules.mk @@ -1,11 +1 @@ -# MCU name -MCU = GD32VF103 -BOARD = SIPEED_LONGAN_NANO - -# Bootloader selection -BOOTLOADER = gd32v-dfu - -# Build Options -# change yes to no to disable -# KEYBOARD_SHARED_EP = yes diff --git a/keyboards/handwired/onekey/stm32f0_disco/config.h b/keyboards/handwired/onekey/stm32f0_disco/config.h index 373f1c943a9..7d23fb9307e 100644 --- a/keyboards/handwired/onekey/stm32f0_disco/config.h +++ b/keyboards/handwired/onekey/stm32f0_disco/config.h @@ -18,14 +18,10 @@ #include "config_common.h" -#define MATRIX_COL_PINS { B4 } -#define MATRIX_ROW_PINS { B5 } - -#define BACKLIGHT_PIN C8 #define BACKLIGHT_PWM_DRIVER PWMD3 #define BACKLIGHT_PWM_CHANNEL 3 #define BACKLIGHT_PAL_MODE 0 -#define RGB_DI_PIN B15 - #define ADC_PIN A0 + +#define RGB_CI_PIN B13 diff --git a/keyboards/handwired/onekey/stm32f0_disco/info.json b/keyboards/handwired/onekey/stm32f0_disco/info.json index ef4312059b8..c76bd731732 100644 --- a/keyboards/handwired/onekey/stm32f0_disco/info.json +++ b/keyboards/handwired/onekey/stm32f0_disco/info.json @@ -1,3 +1,15 @@ { - "keyboard_name": "Onekey STM32F072 Discovery" + "keyboard_name": "Onekey STM32F072 Discovery", + "processor": "STM32F072", + "bootloader": "stm32-dfu", + "matrix_pins": { + "cols": ["B4"], + "rows": ["B5"] + }, + "backlight": { + "pin": "C8" + }, + "rgblight": { + "pin": "B15" + } } diff --git a/keyboards/handwired/onekey/stm32f0_disco/rules.mk b/keyboards/handwired/onekey/stm32f0_disco/rules.mk index 6b379283278..a92b0993283 100644 --- a/keyboards/handwired/onekey/stm32f0_disco/rules.mk +++ b/keyboards/handwired/onekey/stm32f0_disco/rules.mk @@ -1,8 +1,2 @@ -# MCU name -MCU = STM32F072 - -# Bootloader selection -BOOTLOADER = stm32-dfu - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/onekey/stm32f405_feather/config.h b/keyboards/handwired/onekey/stm32f405_feather/config.h deleted file mode 100644 index ea9f4096409..00000000000 --- a/keyboards/handwired/onekey/stm32f405_feather/config.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Copyright 2019 - * - * 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" - -#define MATRIX_COL_PINS { C2 } -#define MATRIX_ROW_PINS { C3 } diff --git a/keyboards/handwired/onekey/stm32f405_feather/info.json b/keyboards/handwired/onekey/stm32f405_feather/info.json index 410ddbdd323..51358735761 100644 --- a/keyboards/handwired/onekey/stm32f405_feather/info.json +++ b/keyboards/handwired/onekey/stm32f405_feather/info.json @@ -1,3 +1,9 @@ { - "keyboard_name": "Onekey Adafruit Feather STM32F405" + "keyboard_name": "Onekey Adafruit Feather STM32F405", + "processor": "STM32F405", + "bootloader": "stm32-dfu", + "matrix_pins": { + "cols": ["C2"], + "rows": ["C3"], + } } diff --git a/keyboards/handwired/onekey/stm32f405_feather/rules.mk b/keyboards/handwired/onekey/stm32f405_feather/rules.mk index bff7a7e2973..a92b0993283 100644 --- a/keyboards/handwired/onekey/stm32f405_feather/rules.mk +++ b/keyboards/handwired/onekey/stm32f405_feather/rules.mk @@ -1,8 +1,2 @@ -# MCU name -MCU = STM32F405 - -# Bootloader selection -BOOTLOADER = stm32-dfu - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/onekey/teensy_2/config.h b/keyboards/handwired/onekey/teensy_2/config.h index fb775a06b01..a2a2a648354 100644 --- a/keyboards/handwired/onekey/teensy_2/config.h +++ b/keyboards/handwired/onekey/teensy_2/config.h @@ -18,14 +18,9 @@ #include "config_common.h" -#define MATRIX_COL_PINS { F4 } -#define MATRIX_ROW_PINS { F5 } - -#define BACKLIGHT_PIN B6 - -#define RGB_DI_PIN F6 - #define ADC_PIN F6 +#define RGB_CI_PIN F7 + #define QMK_WAITING_TEST_BUSY_PIN F6 #define QMK_WAITING_TEST_YIELD_PIN F7 diff --git a/keyboards/handwired/onekey/teensy_2/info.json b/keyboards/handwired/onekey/teensy_2/info.json index f081d3a25c4..24251684622 100644 --- a/keyboards/handwired/onekey/teensy_2/info.json +++ b/keyboards/handwired/onekey/teensy_2/info.json @@ -1,3 +1,15 @@ { - "keyboard_name": "Onekey Teensy 2.0" + "keyboard_name": "Onekey Teensy 2.0", + "processor": "atmega32u4", + "bootloader": "halfkay", + "matrix_pins": { + "cols": ["F4"], + "rows": ["F5"] + }, + "backlight": { + "pin": "B6" + }, + "rgblight": { + "pin": "F6" + } } diff --git a/keyboards/handwired/onekey/teensy_2/rules.mk b/keyboards/handwired/onekey/teensy_2/rules.mk index 320633f80f3..e69de29bb2d 100644 --- a/keyboards/handwired/onekey/teensy_2/rules.mk +++ b/keyboards/handwired/onekey/teensy_2/rules.mk @@ -1,5 +0,0 @@ -# MCU name -MCU = atmega32u4 - -# Bootloader selection -BOOTLOADER = halfkay diff --git a/keyboards/handwired/onekey/teensy_2pp/config.h b/keyboards/handwired/onekey/teensy_2pp/config.h index fb775a06b01..a2a2a648354 100644 --- a/keyboards/handwired/onekey/teensy_2pp/config.h +++ b/keyboards/handwired/onekey/teensy_2pp/config.h @@ -18,14 +18,9 @@ #include "config_common.h" -#define MATRIX_COL_PINS { F4 } -#define MATRIX_ROW_PINS { F5 } - -#define BACKLIGHT_PIN B6 - -#define RGB_DI_PIN F6 - #define ADC_PIN F6 +#define RGB_CI_PIN F7 + #define QMK_WAITING_TEST_BUSY_PIN F6 #define QMK_WAITING_TEST_YIELD_PIN F7 diff --git a/keyboards/handwired/onekey/teensy_2pp/info.json b/keyboards/handwired/onekey/teensy_2pp/info.json index bec94fa3dcc..ba7281ce1bd 100644 --- a/keyboards/handwired/onekey/teensy_2pp/info.json +++ b/keyboards/handwired/onekey/teensy_2pp/info.json @@ -1,3 +1,15 @@ { - "keyboard_name": "Onekey Teensy 2.0++" + "keyboard_name": "Onekey Teensy 2.0++", + "processor": "at90usb1286", + "bootloader": "halfkay", + "matrix_pins": { + "cols": ["F4"], + "rows": ["F5"] + }, + "backlight": { + "pin": "B6" + }, + "rgblight": { + "pin": "F6" + } } diff --git a/keyboards/handwired/onekey/teensy_2pp/rules.mk b/keyboards/handwired/onekey/teensy_2pp/rules.mk index 149471682df..e69de29bb2d 100644 --- a/keyboards/handwired/onekey/teensy_2pp/rules.mk +++ b/keyboards/handwired/onekey/teensy_2pp/rules.mk @@ -1,5 +0,0 @@ -# MCU name -MCU = at90usb1286 - -# Bootloader selection -BOOTLOADER = halfkay diff --git a/keyboards/handwired/onekey/teensy_32/config.h b/keyboards/handwired/onekey/teensy_32/config.h index 3444cca67f1..e01cfa3c8c3 100644 --- a/keyboards/handwired/onekey/teensy_32/config.h +++ b/keyboards/handwired/onekey/teensy_32/config.h @@ -19,9 +19,6 @@ // TODO: including this causes "error: expected identifier before '(' token" errors //#include "config_common.h" -#define MATRIX_COL_PINS { D5 } -#define MATRIX_ROW_PINS { B2 } - // i2c_master defines #define I2C1_SCL_PIN B0 // A2 on pinout = B0 #define I2C1_SDA_PIN B1 // A3 on pinout = B1 diff --git a/keyboards/handwired/onekey/teensy_32/info.json b/keyboards/handwired/onekey/teensy_32/info.json index 213b4ea153a..6d82d300ba2 100644 --- a/keyboards/handwired/onekey/teensy_32/info.json +++ b/keyboards/handwired/onekey/teensy_32/info.json @@ -1,3 +1,9 @@ { - "keyboard_name": "Onekey Teensy 3.2" + "keyboard_name": "Onekey Teensy 3.2", + "processor": "MK20DX256", + "bootloader": "halfkay", + "matrix_pins": { + "cols": ["D5"], + "rows": ["B2"] + } } diff --git a/keyboards/handwired/onekey/teensy_32/rules.mk b/keyboards/handwired/onekey/teensy_32/rules.mk index 937c9d5103a..a92b0993283 100644 --- a/keyboards/handwired/onekey/teensy_32/rules.mk +++ b/keyboards/handwired/onekey/teensy_32/rules.mk @@ -1,8 +1,2 @@ -# MCU name -MCU = MK20DX256 - -# Bootloader selection -BOOTLOADER = halfkay - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/onekey/teensy_35/config.h b/keyboards/handwired/onekey/teensy_35/config.h index 13eaf1a4f67..0f15fc87d88 100644 --- a/keyboards/handwired/onekey/teensy_35/config.h +++ b/keyboards/handwired/onekey/teensy_35/config.h @@ -19,9 +19,6 @@ // TODO: including this causes "error: expected identifier before '(' token" errors //#include "config_common.h" -#define MATRIX_COL_PINS { D5 } // 20/A6 -#define MATRIX_ROW_PINS { B2 } // 19/A5 - // i2c_master defines #define I2C1_SCL_PIN B0 // 16/A2 on pinout #define I2C1_SDA_PIN B1 // 17/A3 on pinout diff --git a/keyboards/handwired/onekey/teensy_35/info.json b/keyboards/handwired/onekey/teensy_35/info.json index 99b6a236c5e..59cc1decdc2 100644 --- a/keyboards/handwired/onekey/teensy_35/info.json +++ b/keyboards/handwired/onekey/teensy_35/info.json @@ -1,3 +1,9 @@ { - "keyboard_name": "Onekey Teensy 3.5" + "keyboard_name": "Onekey Teensy 3.5", + "processor": "MK64FX512", + "bootloader": "halfkay", + "matrix_pins": { + "cols": ["D5"], // 20/A6 + "rows": ["B2"] // 19/A5 + } } diff --git a/keyboards/handwired/onekey/teensy_35/rules.mk b/keyboards/handwired/onekey/teensy_35/rules.mk index 8ebefd03f50..a92b0993283 100644 --- a/keyboards/handwired/onekey/teensy_35/rules.mk +++ b/keyboards/handwired/onekey/teensy_35/rules.mk @@ -1,8 +1,2 @@ -# MCU name -MCU = MK64FX512 - -# Bootloader selection -BOOTLOADER = halfkay - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE diff --git a/keyboards/handwired/onekey/teensy_lc/config.h b/keyboards/handwired/onekey/teensy_lc/config.h index 3444cca67f1..e01cfa3c8c3 100644 --- a/keyboards/handwired/onekey/teensy_lc/config.h +++ b/keyboards/handwired/onekey/teensy_lc/config.h @@ -19,9 +19,6 @@ // TODO: including this causes "error: expected identifier before '(' token" errors //#include "config_common.h" -#define MATRIX_COL_PINS { D5 } -#define MATRIX_ROW_PINS { B2 } - // i2c_master defines #define I2C1_SCL_PIN B0 // A2 on pinout = B0 #define I2C1_SDA_PIN B1 // A3 on pinout = B1 diff --git a/keyboards/handwired/onekey/teensy_lc/info.json b/keyboards/handwired/onekey/teensy_lc/info.json index 68eea922350..a81b90fa8a5 100644 --- a/keyboards/handwired/onekey/teensy_lc/info.json +++ b/keyboards/handwired/onekey/teensy_lc/info.json @@ -1,3 +1,9 @@ { - "keyboard_name": "Onekey Teensy LC" + "keyboard_name": "Onekey Teensy LC", + "processor": "MKL26Z64", + "bootloader": "halfkay", + "matrix_pins": { + "cols": ["D5"], + "rows": ["B2"] + } } diff --git a/keyboards/handwired/onekey/teensy_lc/rules.mk b/keyboards/handwired/onekey/teensy_lc/rules.mk index 0e3c7edf7a0..9803d8cc703 100644 --- a/keyboards/handwired/onekey/teensy_lc/rules.mk +++ b/keyboards/handwired/onekey/teensy_lc/rules.mk @@ -1,9 +1,4 @@ -# MCU name -MCU = MKL26Z64 USE_CHIBIOS_CONTRIB = yes -# Bootloader selection -BOOTLOADER = halfkay - # Enter lower-power sleep mode when on the ChibiOS idle thread OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE From 94ec64f91b9914d6b1a45485607cd1d494decc1f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 30 Sep 2022 05:34:02 +1000 Subject: [PATCH 34/34] Bump anothrNick/github-tag-action from 1.49.0 to 1.50.0 (#18536) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/auto_tag.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/auto_tag.yml b/.github/workflows/auto_tag.yml index 904db4dcc9e..b85cd23146a 100644 --- a/.github/workflows/auto_tag.yml +++ b/.github/workflows/auto_tag.yml @@ -27,7 +27,7 @@ jobs: fetch-depth: 0 - name: Bump version and push tag - uses: anothrNick/github-tag-action@1.49.0 + uses: anothrNick/github-tag-action@1.50.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DEFAULT_BUMP: 'patch'