diff options
35 files changed, 1302 insertions, 351 deletions
| diff --git a/keyboards/dnworks/frltkl/config.h b/keyboards/dnworks/frltkl/config.h new file mode 100644 index 0000000000..77970ce4d3 --- /dev/null +++ b/keyboards/dnworks/frltkl/config.h @@ -0,0 +1,20 @@ +/* +Copyright 2023 zeix (@itsme-zeix) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program.  If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET +#define RP2040_BOOTLOADER_DOUBLE_TAP_RESET_TIMEOUT 500U diff --git a/keyboards/dnworks/frltkl/info.json b/keyboards/dnworks/frltkl/info.json new file mode 100644 index 0000000000..dda394649b --- /dev/null +++ b/keyboards/dnworks/frltkl/info.json @@ -0,0 +1,113 @@ +{ +    "keyboard_name": "DN FRLTKL", +    "maintainer": "itsme-zeix", +    "manufacturer": "dnworks", +    "processor": "RP2040", +    "bootloader": "rp2040", +    "usb": { +        "vid": "0x4C23", +        "pid": "0x2935", +        "device_version": "0.0.1" +    }, +    "features": { +        "bootmagic": true, +        "mousekey": true, +        "extrakey": true, +        "console": false, +        "command": false, +        "nkro": true     +    }, +    "indicators": { +        "caps_lock": "GP27", +        "on_state": 1 +    }, +    "diode_direction": "COL2ROW", +    "matrix_pins": { +        "rows": ["GP4","GP3","GP2","GP1","GP29","GP28","GP19","GP20","GP10","GP11"], +        "cols": ["GP26","GP25","GP24","GP23","GP22","GP21","GP6","GP5","GP0"] +    }, +    "layouts": { +        "LAYOUT": { +            "layout": [ +                { "matrix": [1, 0], "x": 0, "y": 0 }, +                { "matrix": [0, 0], "x": 1, "y": 0 }, +                { "matrix": [1, 1], "x": 2, "y": 0 }, +                { "matrix": [0, 1], "x": 3, "y": 0 }, +                { "matrix": [1, 2], "x": 4, "y": 0 }, +                { "matrix": [0, 2], "x": 5, "y": 0 }, +                { "matrix": [1, 3], "x": 6, "y": 0 }, +                { "matrix": [0, 3], "x": 7, "y": 0 }, +                { "matrix": [1, 4], "x": 8, "y": 0 }, +                { "matrix": [0, 4], "x": 9, "y": 0 }, +                { "matrix": [1, 5], "x": 10, "y": 0 }, +                { "matrix": [0, 5], "x": 11, "y": 0 }, +                { "matrix": [1, 6], "x": 12, "y": 0 }, +                { "matrix": [0, 6], "x": 13, "y": 0 }, +                { "matrix": [1, 7], "x": 14, "y": 0 }, +                { "matrix": [0, 7], "x": 15.25, "y": 0 }, +                { "matrix": [1, 8], "x": 16.25, "y": 0 }, +                { "matrix": [0, 8], "x": 17.25, "y": 0 }, + +                { "matrix": [2, 0], "w": 1.5, "x": 0, "y": 1 }, +                { "matrix": [3, 0], "x": 1.5, "y": 1 }, +                { "matrix": [2, 1], "x": 2.5, "y": 1 }, +                { "matrix": [3, 1], "x": 3.5, "y": 1 }, +                { "matrix": [2, 2], "x": 4.5, "y": 1 }, +                { "matrix": [3, 2], "x": 5.5, "y": 1 }, +                { "matrix": [2, 3], "x": 6.5, "y": 1 }, +                { "matrix": [3, 3], "x": 7.5, "y": 1 }, +                { "matrix": [2, 4], "x": 8.5, "y": 1 }, +                { "matrix": [3, 4], "x": 9.5, "y": 1 }, +                { "matrix": [2, 5], "x": 10.5, "y": 1 }, +                { "matrix": [3, 5], "x": 11.5, "y": 1 }, +                { "matrix": [2, 6], "x": 12.5, "y": 1 }, +                { "matrix": [3, 7], "w": 1.5, "x": 13.5, "y": 1 }, +                { "matrix": [2, 7], "x": 15.25, "y": 1 }, +                { "matrix": [3, 8], "x": 16.25, "y": 1 }, +                { "matrix": [2, 8], "x": 17.25, "y": 1 }, + +                { "matrix": [4, 0], "w": 1.75, "x": 0, "y": 2 }, +                { "matrix": [5, 0], "x": 1.75, "y": 2 }, +                { "matrix": [4, 1], "x": 2.75, "y": 2 }, +                { "matrix": [5, 1], "x": 3.75, "y": 2 }, +                { "matrix": [4, 2], "x": 4.75, "y": 2 }, +                { "matrix": [5, 2], "x": 5.75, "y": 2 }, +                { "matrix": [4, 3], "x": 6.75, "y": 2 }, +                { "matrix": [5, 3], "x": 7.75, "y": 2 }, +                { "matrix": [4, 4], "x": 8.75, "y": 2 }, +                { "matrix": [5, 4], "x": 9.75, "y": 2 }, +                { "matrix": [4, 5], "x": 10.75, "y": 2 }, +                { "matrix": [5, 5], "x": 11.75, "y": 2 }, +                { "matrix": [4, 6], "w": 2.25, "x": 12.75, "y": 2 }, + +                { "matrix": [6, 0], "w": 1.25, "x": 0, "y": 3 }, +                { "matrix": [7, 0], "x": 1.25, "y": 3 }, +                { "matrix": [6, 1], "x": 2.25, "y": 3 }, +                { "matrix": [7, 1], "x": 3.25, "y": 3 }, +                { "matrix": [6, 2], "x": 4.25, "y": 3 }, +                { "matrix": [7, 2], "x": 5.25, "y": 3 }, +                { "matrix": [6, 3], "x": 6.25, "y": 3 }, +                { "matrix": [7, 3], "x": 7.25, "y": 3 }, +                { "matrix": [6, 4], "x": 8.25, "y": 3 }, +                { "matrix": [7, 4], "x": 9.25, "y": 3 }, +                { "matrix": [6, 5], "x": 10.25, "y": 3 }, +                { "matrix": [7, 5], "x": 11.25, "y": 3 }, +                { "matrix": [6, 6], "w": 1.75, "x": 12.25, "y": 3 }, + +                { "matrix": [7, 7], "x": 14, "y": 3 }, +                { "matrix": [6, 8], "x": 16.25, "y": 3 }, +                { "matrix": [8, 0], "w": 1.25, "x": 0, "y": 4 }, +                { "matrix": [9, 0], "w": 1.25, "x": 1.25, "y": 4 }, +                { "matrix": [8, 1], "w": 1.25, "x": 2.5, "y": 4 }, +                { "matrix": [9, 3], "w": 6.25, "x": 3.75, "y": 4 }, +                { "matrix": [8, 5], "w": 1.25, "x": 10, "y": 4 }, +                { "matrix": [9, 5], "w": 1.25, "x": 11.25, "y": 4 }, +                { "matrix": [8, 6], "w": 1.25, "x": 12.5, "y": 4 }, +                { "matrix": [9, 7], "w": 1.25, "x": 13.75, "y": 4 }, +                { "matrix": [8, 7], "x": 15.25, "y": 4 }, +                { "matrix": [9, 8], "x": 16.25, "y": 4 }, +                { "matrix": [8, 8], "x": 17.25, "y": 4 } +            ] +        }         +    } +} diff --git a/keyboards/dnworks/frltkl/keymaps/default/keymap.c b/keyboards/dnworks/frltkl/keymaps/default/keymap.c new file mode 100644 index 0000000000..295066696d --- /dev/null +++ b/keyboards/dnworks/frltkl/keymaps/default/keymap.c @@ -0,0 +1,33 @@ +/* +Copyright 2023 zeix (@itsme-zeix) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program.  If not, see <http://www.gnu.org/licenses/>. +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT( +  KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_BSLS, 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_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, MO(1),                     KC_UP,  +  KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, KC_RGUI, MO(1),   KC_RCTL,          KC_LEFT, KC_DOWN, KC_RIGHT), +   +[1] = LAYOUT( +  KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_TRNS, KC_DEL,  KC_TRNS, KC_TRNS, KC_TRNS, +  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS, +  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,          +  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   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/dnworks/frltkl/keymaps/via/keymap.c b/keyboards/dnworks/frltkl/keymaps/via/keymap.c new file mode 100644 index 0000000000..295066696d --- /dev/null +++ b/keyboards/dnworks/frltkl/keymaps/via/keymap.c @@ -0,0 +1,33 @@ +/* +Copyright 2023 zeix (@itsme-zeix) + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program.  If not, see <http://www.gnu.org/licenses/>. +*/ +#include QMK_KEYBOARD_H + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { + +[0] = LAYOUT( +  KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_BSLS, 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_NUBS, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, MO(1),                     KC_UP,  +  KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, KC_RGUI, MO(1),   KC_RCTL,          KC_LEFT, KC_DOWN, KC_RIGHT), +   +[1] = LAYOUT( +  KC_TRNS, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  KC_TRNS, KC_DEL,  KC_TRNS, KC_TRNS, KC_TRNS, +  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS, KC_TRNS, KC_TRNS, +  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,          KC_TRNS,          +  KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,                   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/dnworks/frltkl/keymaps/via/rules.mk b/keyboards/dnworks/frltkl/keymaps/via/rules.mk new file mode 100644 index 0000000000..1e5b99807c --- /dev/null +++ b/keyboards/dnworks/frltkl/keymaps/via/rules.mk @@ -0,0 +1 @@ +VIA_ENABLE = yes diff --git a/keyboards/dnworks/frltkl/readme.md b/keyboards/dnworks/frltkl/readme.md new file mode 100644 index 0000000000..cc9946284a --- /dev/null +++ b/keyboards/dnworks/frltkl/readme.md @@ -0,0 +1,25 @@ +# FRLTKL + +PCB that supports FRLTKLs designed by dnworks, such as DNDD and HITC. + +* Keyboard Maintainer: [Zeix](https://github.com/itsme-zeix) +* Hardware Supported: DNDD Solder PCB rev1 & HITC Solder PCB rev1 +* Hardware Availability: [dnworks.co](https://dnworks.co/) + +Make example for this keyboard (after setting up your build environment): + +    make dnworks/frltkl:default + +Flashing example for this keyboard: + +    make dnworks/frltkl: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 `RESET` button twice or short the `USB_BOOT` and `GND` pads and plug in the keyboard +* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
\ No newline at end of file diff --git a/keyboards/dnworks/frltkl/rules.mk b/keyboards/dnworks/frltkl/rules.mk new file mode 100644 index 0000000000..7ff128fa69 --- /dev/null +++ b/keyboards/dnworks/frltkl/rules.mk @@ -0,0 +1 @@ +# This file intentionally left blank
\ No newline at end of file diff --git a/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c b/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c index 0d4fd2cd98..0585ae9c96 100755 --- a/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c +++ b/keyboards/keychron/q11/ansi_encoder/ansi_encoder.c @@ -17,9 +17,6 @@  #include "quantum.h"  #ifdef RGB_MATRIX_ENABLE - -// clang-format off -  const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {  /* Refer to IS31 manual for these locations   *   driver @@ -128,117 +125,4 @@ const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = {      {0, G_1,  I_1,  H_1},  // Down      {0, G_7,  I_7,  H_7},  // Right  }; - -#define __ NO_LED - -led_config_t g_led_config = { -    { -        // Key Matrix to LED Index -        { __,  0,  1,  2,  3,  4,  5,  6, __ }, -        {  7,  8,  9, 10, 11, 12, 13, 14, __ }, -        { 15, 16, 17, 18, 19, __, 20, 21, __ }, -        { 22, 23, 24, 25, 26, 27, 28, __, __ }, -        { 29, __, 30, 31, 32, 33, 34, 35, __ }, -        { 36, 37, 38, 39, 40, __, 41, __, __ }, -        { 42, 43, 44, 45, 46, 47, 48, 49, __ }, -        { 50, 51, 52, 53, 54, 55, 56, __, 57 }, -        { 58, 59, 60, 61, 62, 63, 64, 65, 66 }, -        { 67, 68, 69, 70, 71, 72, __, 73, 74 }, -        { 75, 76, 77, 78, 79, 80, __, 81, __ }, -        { __, 82, 83, 84, 85, __, 86, 87, 88 }, -    }, -    { -        // LED Index to Physical Position -                {17,0},  {31,0},  {45,0},  {59,0},  {72,0},  {86,0},  {100,0}, -        {0,15}, {17,15}, {31,15}, {45,15}, {59,15}, {72,15}, {86,15}, {100,15}, -        {0,27}, {21,27}, {38,27}, {52,27}, {66,27}, {79,27}, {93,27}, -        {0,40}, {22,40}, {41,40}, {55,40}, {69,40}, {83,40}, {97,40}, -        {0,52}, {26,52},          {48,52}, {61,52}, {76,52}, {90,52}, {102,52}, -        {0,64}, {19,64}, {36,64}, {53,64}, {70,64},          {94,64}, -                  {110,0},  {124,0},  {138,0},  {152,0},  {165,0},  {179,0},  {193,0},  {207,0}, -                  {110,15}, {124,15}, {138,15}, {152,15}, {165,15}, {179,15}, {200,15},           {224,15}, -        {104,27}, {117,27}, {131,27}, {145,27}, {158,27}, {172,27}, {186,27}, {203,27},           {224,27}, -        {107,40}, {121,40}, {134,40}, {148,40}, {162,40}, {176,40},           {198,40},           {224,40}, -                  {114,52}, {127,52}, {141,52}, {155,52}, {169,52},           {188,52}, {210,52}, -                            {126,64},           {152,64}, {166,64}, {180,64}, {196,64}, {210,64}, {224,64}, -    }, -    { -        // RGB LED Index to Flag -        1, 1, 1, 1, 1, 1, 1, -        1, 1, 4, 4, 4, 4, 4, 4, -        1, 1, 4, 4, 4, 4, 4, -        1, 8, 4, 4, 4, 4, 4, -        1, 1,    4, 4, 4, 4, 4, -        1, 1, 1, 1, 1,    4, -           1, 1, 1, 1, 1, 1, 1, 1, -           4, 4, 4, 4, 4, 4, 1,    1, -        4, 4, 4, 4, 4, 4, 4, 4,    1, -        4, 4, 4, 4, 4, 4,    1,    1, -           4, 4, 4, 4, 4,    1, 1, -              4,    1, 1, 1, 1, 1, 1, -    } -}; - -// clang-format on -  #endif - -#define ADC_BUFFER_DEPTH 1 -#define ADC_NUM_CHANNELS 1 -#define ADC_SAMPLING_RATE ADC_SMPR_SMP_12P5 -#define ADC_RESOLUTION ADC_CFGR_RES_10BITS - -static int16_t analogReadPin_my(pin_t pin) { -    ADCConfig adcCfg = {}; -    adcsample_t sampleBuffer[ADC_NUM_CHANNELS*ADC_BUFFER_DEPTH]; -    ADCDriver* targetDriver = &ADCD1; -    ADCConversionGroup adcConversionGroup = { -        .circular = FALSE, -        .num_channels = (uint16_t)(ADC_NUM_CHANNELS), -        .cfgr = ADC_RESOLUTION, -    }; - -    palSetLineMode(pin, PAL_MODE_INPUT_ANALOG); -    switch (pin) { -        case B0: -            adcConversionGroup.smpr[2] = ADC_SMPR2_SMP_AN15(ADC_SAMPLING_RATE); -            adcConversionGroup.sqr[0] = ADC_SQR1_SQ1_N(ADC_CHANNEL_IN15); -            sampleBuffer[0] = 0; -            break; -        case B1: -            adcConversionGroup.smpr[2] = ADC_SMPR2_SMP_AN16(ADC_SAMPLING_RATE); -            adcConversionGroup.sqr[0] = ADC_SQR1_SQ1_N(ADC_CHANNEL_IN16); -            sampleBuffer[0] = 0; -            break; -        default: -             return 0; -    } -    adcStart(targetDriver, &adcCfg); -    if (adcConvert(targetDriver, &adcConversionGroup, &sampleBuffer[0], ADC_BUFFER_DEPTH) != MSG_OK) { -        return 0; -    } - -    return *sampleBuffer; -} - -void keyboard_post_init_kb(void) { -    // 1. The pin A5/B5 of the USB C interface in the left hand is connected to the pin A0 of MCU, -    // A0 will be set to output and write high when keyboard initial. -    // 2. The same pin in the right hand is connected to the pin B0 and B1 of MCU respectively, -    // and the ADC function of B0 and B1 will be enabled when keyboard initial. -    // 3. because the serial usart RXD and TXD is multiplexed on USB's D+ and D- in the right hand. -    // So detect the voltage on the pin A5/B5 of the USB C interface by ADC, -    // and disable USB connectivity when the ADC value exceeds 1000, -    // to avoid affecting the serial usart communication between the left hand and the right hand. -    if (is_keyboard_left()) { -        setPinOutput(A0); -        writePinHigh(A0); -    } else { -        if ((analogReadPin_my(B0) > 1000) || (analogReadPin_my(B1) > 1000)) { -            setPinInput(A11); -            setPinInput(A12); -        } -    } - -    keyboard_post_init_user(); -} diff --git a/keyboards/keychron/q11/ansi_encoder/config.h b/keyboards/keychron/q11/ansi_encoder/config.h index 08632f0ce7..60bdc493de 100755 --- a/keyboards/keychron/q11/ansi_encoder/config.h +++ b/keyboards/keychron/q11/ansi_encoder/config.h @@ -16,5 +16,8 @@  #pragma once +/* RGB Matrix Configuration */ +#define RGB_MATRIX_LED_COUNT 89 +  /* Enable caps-lock LED */  #define CAPS_LOCK_LED_INDEX 23 diff --git a/keyboards/keychron/q11/ansi_encoder/info.json b/keyboards/keychron/q11/ansi_encoder/info.json index da10fe5166..01a81619ba 100755 --- a/keyboards/keychron/q11/ansi_encoder/info.json +++ b/keyboards/keychron/q11/ansi_encoder/info.json @@ -1,166 +1,105 @@  { -    "keyboard_name": "Keychron Q11", -    "manufacturer": "Keychron", -    "url": "https://github.com/Keychron", -    "maintainer": "lalalademaxiya1", -    "bootloader": "stm32-dfu", -    "bootmagic": { -        "matrix": [0, 1] -    }, -    "features": { -        "audio": false, -        "backlight": false, -        "bootmagic": true, -        "command": false, -        "console": false, -        "dip_switch": true, -        "encoder": true, -        "extrakey": true, -        "mousekey": true, -        "nkro": true, -        "rgb_matrix": true, -        "rgblight": false -    }, -    "diode_direction": "ROW2COL", -    "encoder": { -        "rotary": [ -            {"pin_a": "B0", "pin_b": "B1"} -        ] -    }, -    "matrix_pins": { -        "cols": ["A7", "A6", "A5", "A4", "A3", "A2", "A1", "C15", null], -        "rows": ["A13", "A14", "A15", "B3", "B4", "B5"] -    }, -    "processor": "STM32L432", -    "rgb_matrix": { -        "driver": "CKLED2001", -        "split_count": [42, 47] -    }, -    "split": { -        "enabled": true, -        "encoder": { -            "right": { -                "rotary": [ -                    {"pin_a": "C14", "pin_b": "C15"} -                ] -            } -        }, -        "matrix_pins": { -            "right": { -                "cols": ["A8", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0"], -                "rows": ["B5", "B4", "B3", "A15", "A14", "A13"] -            } -        }, -        "transport": { -            "protocol": "serial_usart", -            "sync_matrix_state": false -        } -    },      "usb": { -        "vid": "0x3434",          "pid": "0x01E0",          "device_version": "1.0.0"      }, -    "layouts": { -        "LAYOUT_ansi_91": { -            "layout": [ -                {"matrix": [0, 0], "x": 0, "y": 0}, -                {"matrix": [0, 1], "x": 1.25, "y": 0}, -                {"matrix": [0, 2], "x": 2.25, "y": 0}, -                {"matrix": [0, 3], "x": 3.25, "y": 0}, -                {"matrix": [0, 4], "x": 4.25, "y": 0}, -                {"matrix": [0, 5], "x": 5.25, "y": 0}, -                {"matrix": [0, 6], "x": 6.25, "y": 0}, -                {"matrix": [0, 7], "x": 7.25, "y": 0}, -                {"matrix": [6, 0], "x": 8.25, "y": 0}, -                {"matrix": [6, 1], "x": 9.25, "y": 0}, -                {"matrix": [6, 2], "x": 10.25, "y": 0}, -                {"matrix": [6, 3], "x": 11.25, "y": 0}, -                {"matrix": [6, 4], "x": 12.25, "y": 0}, -                {"matrix": [6, 5], "x": 13.25, "y": 0}, -                {"matrix": [6, 6], "x": 14.25, "y": 0}, -                {"matrix": [6, 7], "x": 15.25, "y": 0}, -                {"matrix": [6, 8], "x": 16.5, "y": 0}, +    "rgb_matrix": { +        "split_count": [42, 47], +        "layout": [ +            {"matrix":[0, 1], "flags":1, "x":17,  "y":0}, +            {"matrix":[0, 2], "flags":1, "x":31,  "y":0}, +            {"matrix":[0, 3], "flags":1, "x":45,  "y":0}, +            {"matrix":[0, 4], "flags":1, "x":59,  "y":0}, +            {"matrix":[0, 5], "flags":1, "x":72,  "y":0}, +            {"matrix":[0, 6], "flags":1, "x":86,  "y":0}, +            {"matrix":[0, 7], "flags":1, "x":100, "y":0}, +            {"matrix":[1, 0], "flags":1, "x":0,   "y":15}, +            {"matrix":[1, 1], "flags":1, "x":17,  "y":15}, +            {"matrix":[1, 2], "flags":4, "x":31,  "y":15}, +            {"matrix":[1, 3], "flags":4, "x":45,  "y":15}, +            {"matrix":[1, 4], "flags":4, "x":59,  "y":15}, +            {"matrix":[1, 5], "flags":4, "x":72,  "y":15}, +            {"matrix":[1, 6], "flags":4, "x":86,  "y":15}, +            {"matrix":[1, 7], "flags":4, "x":100, "y":15}, -                {"matrix": [1, 0], "x": 0, "y": 1.25}, -                {"matrix": [1, 1], "x": 1.25, "y": 1.25}, -                {"matrix": [1, 2], "x": 2.25, "y": 1.25}, -                {"matrix": [1, 3], "x": 3.25, "y": 1.25}, -                {"matrix": [1, 4], "x": 4.25, "y": 1.25}, -                {"matrix": [1, 5], "x": 5.25, "y": 1.25}, -                {"matrix": [1, 6], "x": 6.25, "y": 1.25}, -                {"matrix": [1, 7], "x": 7.25, "y": 1.25}, -                {"matrix": [7, 0], "x": 8.25, "y": 1.25}, -                {"matrix": [7, 1], "x": 9.25, "y": 1.25}, -                {"matrix": [7, 2], "x": 10.25, "y": 1.25}, -                {"matrix": [7, 3], "x": 11.25, "y": 1.25}, -                {"matrix": [7, 4], "x": 12.25, "y": 1.25}, -                {"matrix": [7, 5], "x": 13.25, "y": 1.25}, -                {"matrix": [7, 6], "x": 14.25, "y": 1.25, "w": 2}, -                {"matrix": [7, 8], "x": 16.5, "y": 1.25}, +            {"matrix":[2, 0], "flags":1, "x":0,   "y":27}, +            {"matrix":[2, 1], "flags":1, "x":21,  "y":27}, +            {"matrix":[2, 2], "flags":4, "x":38,  "y":27}, +            {"matrix":[2, 3], "flags":4, "x":52,  "y":27}, +            {"matrix":[2, 4], "flags":4, "x":66,  "y":27}, +            {"matrix":[2, 6], "flags":4, "x":79,  "y":27}, +            {"matrix":[2, 7], "flags":4, "x":93,  "y":27}, +            {"matrix":[3, 0], "flags":1, "x":0,   "y":40}, +            {"matrix":[3, 1], "flags":8, "x":22,  "y":40}, +            {"matrix":[3, 2], "flags":4, "x":41,  "y":40}, +            {"matrix":[3, 3], "flags":4, "x":55,  "y":40}, +            {"matrix":[3, 4], "flags":4, "x":69,  "y":40}, +            {"matrix":[3, 5], "flags":4, "x":83,  "y":40}, +            {"matrix":[3, 6], "flags":4, "x":97,  "y":40}, -                {"matrix": [2, 0], "x": 0, "y": 2.25}, -                {"matrix": [2, 1], "x": 1.25, "y": 2.25, "w": 1.5}, -                {"matrix": [2, 2], "x": 2.75, "y": 2.25}, -                {"matrix": [2, 3], "x": 3.75, "y": 2.25}, -                {"matrix": [2, 4], "x": 4.75, "y": 2.25}, -                {"matrix": [2, 6], "x": 5.75, "y": 2.25}, -                {"matrix": [2, 7], "x": 6.75, "y": 2.25}, -                {"matrix": [8, 0], "x": 7.75, "y": 2.25}, -                {"matrix": [8, 1], "x": 8.75, "y": 2.25}, -                {"matrix": [8, 2], "x": 9.75, "y": 2.25}, -                {"matrix": [8, 3], "x": 10.75, "y": 2.25}, -                {"matrix": [8, 4], "x": 11.75, "y": 2.25}, -                {"matrix": [8, 5], "x": 12.75, "y": 2.25}, -                {"matrix": [8, 6], "x": 13.75, "y": 2.25}, -                {"matrix": [8, 7], "x": 14.75, "y": 2.25, "w": 1.5}, -                {"matrix": [8, 8], "x": 16.5, "y": 2.25}, +            {"matrix":[4, 0],  "flags":1, "x":0,   "y":52}, +            {"matrix":[4, 2],  "flags":1, "x":34,  "y":52}, +            {"matrix":[4, 3],  "flags":4, "x":48,  "y":52}, +            {"matrix":[4, 4],  "flags":4, "x":61,  "y":52}, +            {"matrix":[4, 5],  "flags":4, "x":76,  "y":52}, +            {"matrix":[4, 6],  "flags":4, "x":90,  "y":52}, +            {"matrix":[4, 7],  "flags":4, "x":102, "y":52}, +            {"matrix":[5, 0],  "flags":1, "x":0,   "y":64}, +            {"matrix":[5, 1],  "flags":1, "x":19,  "y":64}, +            {"matrix":[5, 2],  "flags":1, "x":36,  "y":64}, +            {"matrix":[5, 3],  "flags":1, "x":53,  "y":64}, +            {"matrix":[5, 4],  "flags":1, "x":70,  "y":64}, +            {"matrix":[5, 6],  "flags":4, "x":94,  "y":64}, -                {"matrix": [3, 0], "x": 0, "y": 3.25}, -                {"matrix": [3, 1], "x": 1.25, "y": 3.25, "w": 1.75}, -                {"matrix": [3, 2], "x": 3, "y": 3.25}, -                {"matrix": [3, 3], "x": 4, "y": 3.25}, -                {"matrix": [3, 4], "x": 5, "y": 3.25}, -                {"matrix": [3, 5], "x": 6, "y": 3.25}, -                {"matrix": [3, 6], "x": 7, "y": 3.25}, -                {"matrix": [9, 0], "x": 8, "y": 3.25}, -                {"matrix": [9, 1], "x": 9, "y": 3.25}, -                {"matrix": [9, 2], "x": 10, "y": 3.25}, -                {"matrix": [9, 3], "x": 11, "y": 3.25}, -                {"matrix": [9, 4], "x": 12, "y": 3.25}, -                {"matrix": [9, 5], "x": 13, "y": 3.25}, -                {"matrix": [9, 7], "x": 14, "y": 3.25, "w": 2.25}, -                {"matrix": [9, 8], "x": 16.5, "y": 3.25}, +            {"matrix":[6, 0], "flags":1, "x":110, "y":0}, +            {"matrix":[6, 1], "flags":1, "x":124, "y":0}, +            {"matrix":[6, 2], "flags":1, "x":138, "y":0}, +            {"matrix":[6, 3], "flags":1, "x":152, "y":0}, +            {"matrix":[6, 4], "flags":1, "x":165, "y":0}, +            {"matrix":[6, 5], "flags":1, "x":179, "y":0}, +            {"matrix":[6, 6], "flags":1, "x":193, "y":0}, +            {"matrix":[6, 7], "flags":1, "x":207, "y":0}, +            {"matrix":[7, 0], "flags":4, "x":110, "y":15}, +            {"matrix":[7, 1], "flags":4, "x":124, "y":15}, +            {"matrix":[7, 2], "flags":4, "x":138, "y":15}, +            {"matrix":[7, 3], "flags":4, "x":152, "y":15}, +            {"matrix":[7, 4], "flags":4, "x":165, "y":15}, +            {"matrix":[7, 5], "flags":4, "x":179, "y":15}, +            {"matrix":[7, 6], "flags":1, "x":200, "y":15}, +            {"matrix":[7, 8], "flags":1, "x":224, "y":15}, -                {"matrix": [4, 0], "x": 0, "y": 4.25}, -                {"matrix": [4, 2], "x": 1.25, "y": 4.25, "w": 2.25}, -                {"matrix": [4, 3], "x": 3.5, "y": 4.25}, -                {"matrix": [4, 4], "x": 4.5, "y": 4.25}, -                {"matrix": [4, 5], "x": 5.5, "y": 4.25}, -                {"matrix": [4, 6], "x": 6.5, "y": 4.25}, -                {"matrix": [4, 7], "x": 7.5, "y": 4.25}, -                {"matrix": [10, 0], "x": 8.5, "y": 4.25}, -                {"matrix": [10, 1], "x": 9.5, "y": 4.25}, -                {"matrix": [10, 2], "x": 10.5, "y": 4.25}, -                {"matrix": [10, 3], "x": 11.5, "y": 4.25}, -                {"matrix": [10, 4], "x": 12.5, "y": 4.25}, -                {"matrix": [10, 5], "x": 13.5, "y": 4.25, "w": 1.75}, -                {"matrix": [10, 7], "x": 15.5, "y": 4.25}, +            {"matrix":[8, 0], "flags":4, "x":104, "y":27}, +            {"matrix":[8, 1], "flags":4, "x":117, "y":27}, +            {"matrix":[8, 2], "flags":4, "x":131, "y":27}, +            {"matrix":[8, 3], "flags":4, "x":145, "y":27}, +            {"matrix":[8, 4], "flags":4, "x":158, "y":27}, +            {"matrix":[8, 5], "flags":4, "x":172, "y":27}, +            {"matrix":[8, 6], "flags":4, "x":186, "y":27}, +            {"matrix":[8, 7], "flags":4, "x":203, "y":27}, +            {"matrix":[8, 8], "flags":1, "x":224, "y":27}, +            {"matrix":[9, 0], "flags":4, "x":107, "y":40}, +            {"matrix":[9, 1], "flags":4, "x":121, "y":40}, +            {"matrix":[9, 2], "flags":4, "x":134, "y":40}, +            {"matrix":[9, 3], "flags":4, "x":148, "y":40}, +            {"matrix":[9, 4], "flags":4, "x":162, "y":40}, +            {"matrix":[9, 5], "flags":4, "x":176, "y":40}, +            {"matrix":[9, 7], "flags":1, "x":198, "y":40}, +            {"matrix":[9, 8], "flags":1, "x":224, "y":40}, -                {"matrix": [5, 0], "x": 0, "y": 5.25}, -                {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, -                {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, -                {"matrix": [5, 3], "x": 3.75, "y": 5.25, "w": 1.25}, -                {"matrix": [5, 4], "x": 5, "y": 5.25, "w": 1.25}, -                {"matrix": [5, 6], "x": 6.25, "y": 5.25, "w": 2.25}, -                {"matrix": [11, 1], "x": 8.5, "y": 5.25, "w": 2.75}, -                {"matrix": [11, 2], "x": 11.25, "y": 5.25}, -                {"matrix": [11, 3], "x": 12.25, "y": 5.25}, -                {"matrix": [11, 4], "x": 13.25, "y": 5.25}, -                {"matrix": [11, 6], "x": 14.5, "y": 5.25}, -                {"matrix": [11, 7], "x": 15.5, "y": 5.25}, -                {"matrix": [11, 8], "x": 16.5, "y": 5.25} -            ] -        } +            {"matrix":[10, 0], "flags":4, "x":114, "y":52}, +            {"matrix":[10, 1], "flags":4, "x":127, "y":52}, +            {"matrix":[10, 2], "flags":4, "x":141, "y":52}, +            {"matrix":[10, 3], "flags":4, "x":155, "y":52}, +            {"matrix":[10, 4], "flags":4, "x":169, "y":52}, +            {"matrix":[10, 5], "flags":1, "x":188, "y":52}, +            {"matrix":[10, 7], "flags":1, "x":210, "y":52}, +            {"matrix":[11, 1], "flags":4, "x":126, "y":64}, +            {"matrix":[11, 2], "flags":1, "x":152, "y":64}, +            {"matrix":[11, 3], "flags":1, "x":166, "y":64}, +            {"matrix":[11, 4], "flags":1, "x":180, "y":64}, +            {"matrix":[11, 6], "flags":1, "x":196, "y":64}, +            {"matrix":[11, 7], "flags":1, "x":210, "y":64}, +            {"matrix":[11, 8], "flags":1, "x":224, "y":64} +        ]      }  } diff --git a/keyboards/keychron/q11/ansi_encoder/keymaps/default/keymap.c b/keyboards/keychron/q11/ansi_encoder/keymaps/default/keymap.c index 3378ce7df9..7334ad8520 100755 --- a/keyboards/keychron/q11/ansi_encoder/keymaps/default/keymap.c +++ b/keyboards/keychron/q11/ansi_encoder/keymaps/default/keymap.c @@ -15,20 +15,18 @@   */  #include QMK_KEYBOARD_H -// clang-format off -  enum layers{      MAC_BASE,      MAC_FN,      WIN_BASE, -    WIN_FN +    WIN_FN,  };  #define KC_TASK LGUI(KC_TAB)  #define KC_FLXP LGUI(KC_E)  const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -    [MAC_BASE] = LAYOUT_ansi_91( +    [MAC_BASE] = LAYOUT_91_ansi(          KC_MUTE,  KC_ESC,   KC_BRID,  KC_BRIU,  KC_MCTL,  KC_LPAD,  RGB_VAD,   RGB_VAI,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_MUTE,  KC_VOLD,    KC_VOLU,  KC_INS,   KC_DEL,   KC_MUTE,          _______,  KC_GRV,   KC_1,     KC_2,     KC_3,     KC_4,     KC_5,      KC_6,     KC_7,     KC_8,     KC_9,     KC_0,     KC_MINS,    KC_EQL,   KC_BSPC,            KC_PGUP,          _______,  KC_TAB,   KC_Q,     KC_W,     KC_E,     KC_R,     KC_T,      KC_Y,     KC_U,     KC_I,     KC_O,     KC_P,     KC_LBRC,    KC_RBRC,  KC_BSLS,            KC_PGDN, @@ -36,7 +34,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {          _______,  KC_LSFT,            KC_Z,     KC_X,     KC_C,     KC_V,      KC_B,     KC_N,     KC_M,     KC_COMM,  KC_DOT,   KC_SLSH,              KC_RSFT,  KC_UP,          _______,  KC_LCTL,  KC_LOPT,  KC_LCMD,  MO(MAC_FN),         KC_SPC,                        KC_SPC,             KC_RCMD,  MO(MAC_FN), KC_RCTL,  KC_LEFT,  KC_DOWN,  KC_RGHT), -    [MAC_FN] = LAYOUT_ansi_91( +    [MAC_FN] = LAYOUT_91_ansi(          RGB_TOG,  _______,  KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,     KC_F6,    KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,     KC_F12,   _______,  _______,  RGB_TOG,          _______,  _______,  _______,  _______,  _______,  _______,  _______,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______,          _______,  RGB_TOG,  RGB_MOD,  RGB_VAI,  RGB_HUI,  RGB_SAI,  RGB_SPI,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______, @@ -44,7 +42,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {          _______,  _______,            _______,  _______,  _______,  _______,   _______,  NK_TOGG,  _______,  _______,  _______,  _______,              _______,  _______,          _______,  _______,  _______,  _______,  _______,            _______,                       _______,            _______,  _______,    _______,  _______,  _______,  _______), -    [WIN_BASE] = LAYOUT_ansi_91( +    [WIN_BASE] = LAYOUT_91_ansi(          KC_MUTE,  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_INS,   KC_DEL,   KC_MUTE,          _______,  KC_GRV,   KC_1,     KC_2,     KC_3,     KC_4,     KC_5,      KC_6,     KC_7,     KC_8,     KC_9,     KC_0,     KC_MINS,    KC_EQL,   KC_BSPC,            KC_PGUP,          _______,  KC_TAB,   KC_Q,     KC_W,     KC_E,     KC_R,     KC_T,      KC_Y,     KC_U,     KC_I,     KC_O,     KC_P,     KC_LBRC,    KC_RBRC,  KC_BSLS,            KC_PGDN, @@ -52,7 +50,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {          _______,  KC_LSFT,            KC_Z,     KC_X,     KC_C,     KC_V,      KC_B,     KC_N,     KC_M,     KC_COMM,  KC_DOT,   KC_SLSH,              KC_RSFT,  KC_UP,          _______,  KC_LCTL,  KC_LWIN,  KC_LALT,  MO(WIN_FN),         KC_SPC,                        KC_SPC,             KC_RALT,  MO(WIN_FN), KC_RCTL,  KC_LEFT,  KC_DOWN,  KC_RGHT), -    [WIN_FN] = LAYOUT_ansi_91( +    [WIN_FN] = LAYOUT_91_ansi(          RGB_TOG,  _______,  KC_BRID,  KC_BRIU,  KC_TASK,  KC_FLXP,  RGB_VAD,   RGB_VAI,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_MUTE,  KC_VOLD,    KC_VOLU,  _______,  _______,  RGB_TOG,          _______,  _______,  _______,  _______,  _______,  _______,  _______,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______,          _______,  RGB_TOG,  RGB_MOD,  RGB_VAI,  RGB_HUI,  RGB_SAI,  RGB_SPI,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______, diff --git a/keyboards/keychron/q11/ansi_encoder/keymaps/keychron/keymap.c b/keyboards/keychron/q11/ansi_encoder/keymaps/keychron/keymap.c index 852f34def9..d5f87b7a39 100755 --- a/keyboards/keychron/q11/ansi_encoder/keymaps/keychron/keymap.c +++ b/keyboards/keychron/q11/ansi_encoder/keymaps/keychron/keymap.c @@ -17,17 +17,15 @@  #include QMK_KEYBOARD_H  #include "keychron_common.h" -// clang-format off -  enum layers{      MAC_BASE,      MAC_FN,      WIN_BASE, -    WIN_FN +    WIN_FN,  };  const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -    [MAC_BASE] = LAYOUT_ansi_91( +    [MAC_BASE] = LAYOUT_91_ansi(          KC_MUTE,  KC_ESC,   KC_BRID,  KC_BRIU,  KC_MCTL,  KC_LPAD,  RGB_VAD,   RGB_VAI,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_MUTE,  KC_VOLD,    KC_VOLU,  KC_INS,   KC_DEL,   KC_MUTE,          MC_1,     KC_GRV,   KC_1,     KC_2,     KC_3,     KC_4,     KC_5,      KC_6,     KC_7,     KC_8,     KC_9,     KC_0,     KC_MINS,    KC_EQL,   KC_BSPC,            KC_PGUP,          MC_2,     KC_TAB,   KC_Q,     KC_W,     KC_E,     KC_R,     KC_T,      KC_Y,     KC_U,     KC_I,     KC_O,     KC_P,     KC_LBRC,    KC_RBRC,  KC_BSLS,            KC_PGDN, @@ -35,7 +33,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {          MC_4,     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,          MC_5,     KC_LCTL,  KC_LOPTN, KC_LCMMD, MO(MAC_FN),         KC_SPC,                        KC_SPC,             KC_RCMMD, MO(MAC_FN), KC_RCTL,  KC_LEFT,  KC_DOWN,  KC_RGHT), -    [MAC_FN] = LAYOUT_ansi_91( +    [MAC_FN] = LAYOUT_91_ansi(          RGB_TOG,  _______,  KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,     KC_F6,    KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,     KC_F12,   _______,  _______,  RGB_TOG,          _______,  _______,  _______,  _______,  _______,  _______,  _______,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______,          _______,  RGB_TOG,  RGB_MOD,  RGB_VAI,  RGB_HUI,  RGB_SAI,  RGB_SPI,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______, @@ -43,7 +41,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {          _______,  _______,            _______,  _______,  _______,  _______,   _______,  NK_TOGG,  _______,  _______,  _______,  _______,              _______,  _______,          _______,  _______,  _______,  _______,  _______,            _______,                       _______,            _______,  _______,    _______,  _______,  _______,  _______), -    [WIN_BASE] = LAYOUT_ansi_91( +    [WIN_BASE] = LAYOUT_91_ansi(          KC_MUTE,  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_INS,   KC_DEL,   KC_MUTE,          MC_1,     KC_GRV,   KC_1,     KC_2,     KC_3,     KC_4,     KC_5,      KC_6,     KC_7,     KC_8,     KC_9,     KC_0,     KC_MINS,    KC_EQL,   KC_BSPC,            KC_PGUP,          MC_2,     KC_TAB,   KC_Q,     KC_W,     KC_E,     KC_R,     KC_T,      KC_Y,     KC_U,     KC_I,     KC_O,     KC_P,     KC_LBRC,    KC_RBRC,  KC_BSLS,            KC_PGDN, @@ -51,7 +49,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {          MC_4,     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,          MC_5,     KC_LCTL,  KC_LWIN,  KC_LALT,  MO(WIN_FN),         KC_SPC,                        KC_SPC,             KC_RALT,  MO(WIN_FN), KC_RCTL,  KC_LEFT,  KC_DOWN,  KC_RGHT), -    [WIN_FN] = LAYOUT_ansi_91( +    [WIN_FN] = LAYOUT_91_ansi(          RGB_TOG,  _______,  KC_BRID,  KC_BRIU,  KC_TASK,  KC_FLXP,  RGB_VAD,   RGB_VAI,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_MUTE,  KC_VOLD,    KC_VOLU,  _______,  _______,  RGB_TOG,          _______,  _______,  _______,  _______,  _______,  _______,  _______,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______,          _______,  RGB_TOG,  RGB_MOD,  RGB_VAI,  RGB_HUI,  RGB_SAI,  RGB_SPI,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______, diff --git a/keyboards/keychron/q11/ansi_encoder/keymaps/via/keymap.c b/keyboards/keychron/q11/ansi_encoder/keymaps/via/keymap.c index 0452eccec2..29fe3d488d 100755 --- a/keyboards/keychron/q11/ansi_encoder/keymaps/via/keymap.c +++ b/keyboards/keychron/q11/ansi_encoder/keymaps/via/keymap.c @@ -16,8 +16,6 @@  #include QMK_KEYBOARD_H -// clang-format off -  enum layers{      MAC_BASE,      MAC_FN, @@ -29,7 +27,7 @@ enum layers{  #define KC_FLXP LGUI(KC_E)  const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { -    [MAC_BASE] = LAYOUT_ansi_91( +    [MAC_BASE] = LAYOUT_91_ansi(          KC_MUTE,  KC_ESC,   KC_BRID,  KC_BRIU,  KC_MCTL,  KC_LPAD,  RGB_VAD,   RGB_VAI,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_MUTE,  KC_VOLD,    KC_VOLU,  KC_INS,   KC_DEL,   KC_MUTE,          MC_1,     KC_GRV,   KC_1,     KC_2,     KC_3,     KC_4,     KC_5,      KC_6,     KC_7,     KC_8,     KC_9,     KC_0,     KC_MINS,    KC_EQL,   KC_BSPC,            KC_PGUP,          MC_2,     KC_TAB,   KC_Q,     KC_W,     KC_E,     KC_R,     KC_T,      KC_Y,     KC_U,     KC_I,     KC_O,     KC_P,     KC_LBRC,    KC_RBRC,  KC_BSLS,            KC_PGDN, @@ -37,7 +35,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {          MC_4,     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,          MC_5,     KC_LCTL,  KC_LOPT,  KC_LCMD,  MO(MAC_FN),         KC_SPC,                        KC_SPC,             KC_RCMD,  MO(MAC_FN), KC_RCTL,  KC_LEFT,  KC_DOWN,  KC_RGHT), -    [MAC_FN] = LAYOUT_ansi_91( +    [MAC_FN] = LAYOUT_91_ansi(          RGB_TOG,  _______,  KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,     KC_F6,    KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,     KC_F12,   _______,  _______,  RGB_TOG,          _______,  _______,  _______,  _______,  _______,  _______,  _______,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______,          _______,  RGB_TOG,  RGB_MOD,  RGB_VAI,  RGB_HUI,  RGB_SAI,  RGB_SPI,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______, @@ -45,7 +43,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {          _______,  _______,            _______,  _______,  _______,  _______,   _______,  NK_TOGG,  _______,  _______,  _______,  _______,              _______,  _______,          _______,  _______,  _______,  _______,  _______,            _______,                       _______,            _______,  _______,    _______,  _______,  _______,  _______), -    [WIN_BASE] = LAYOUT_ansi_91( +    [WIN_BASE] = LAYOUT_91_ansi(          KC_MUTE,  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_INS,   KC_DEL,   KC_MUTE,          MC_1,     KC_GRV,   KC_1,     KC_2,     KC_3,     KC_4,     KC_5,      KC_6,     KC_7,     KC_8,     KC_9,     KC_0,     KC_MINS,    KC_EQL,   KC_BSPC,            KC_PGUP,          MC_2,     KC_TAB,   KC_Q,     KC_W,     KC_E,     KC_R,     KC_T,      KC_Y,     KC_U,     KC_I,     KC_O,     KC_P,     KC_LBRC,    KC_RBRC,  KC_BSLS,            KC_PGDN, @@ -53,7 +51,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {          MC_4,     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,          MC_5,     KC_LCTL,  KC_LWIN,  KC_LALT,  MO(WIN_FN),         KC_SPC,                        KC_SPC,             KC_RALT,  MO(WIN_FN), KC_RCTL,  KC_LEFT,  KC_DOWN,  KC_RGHT), -    [WIN_FN] = LAYOUT_ansi_91( +    [WIN_FN] = LAYOUT_91_ansi(          RGB_TOG,  _______,  KC_BRID,  KC_BRIU,  KC_TASK,  KC_FLXP,  RGB_VAD,   RGB_VAI,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_MUTE,  KC_VOLD,    KC_VOLU,  _______,  _______,  RGB_TOG,          _______,  _______,  _______,  _______,  _______,  _______,  _______,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______,          _______,  RGB_TOG,  RGB_MOD,  RGB_VAI,  RGB_HUI,  RGB_SAI,  RGB_SPI,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______, diff --git a/keyboards/keychron/q11/ansi_encoder/rules.mk b/keyboards/keychron/q11/ansi_encoder/rules.mk index 5c9d4e8cf8..60d5c6bea2 100644 --- a/keyboards/keychron/q11/ansi_encoder/rules.mk +++ b/keyboards/keychron/q11/ansi_encoder/rules.mk @@ -4,4 +4,3 @@  EEPROM_DRIVER = wear_leveling  WEAR_LEVELING_DRIVER = embedded_flash  SERIAL_DRIVER = usart - diff --git a/keyboards/keychron/q11/config.h b/keyboards/keychron/q11/config.h index 604ec142b8..d2c7ad4a96 100755 --- a/keyboards/keychron/q11/config.h +++ b/keyboards/keychron/q11/config.h @@ -26,12 +26,9 @@  #define MATRIX_MASKED // actual mask is defined by `matrix_mask` in `q11.c` -/* RGB Matrix Configuration */ +/* RGB Matrix Driver Configuration */  #define DRIVER_COUNT 1  #define DRIVER_ADDR_1 0b1110100 -#define DRIVER_1_LED_TOTAL 89 -#define RGB_MATRIX_LED_COUNT DRIVER_1_LED_TOTAL -#define SPLIT_TRANSPORT_MIRROR  /* Increase I2C speed to 1000 KHz */  #define I2C1_TIMINGR_PRESC 0U @@ -59,52 +56,5 @@  // RGB Matrix Animation modes. Explicitly enabled  // For full list of effects, see:  // https://docs.qmk.fm/#/feature_rgb_matrix?id=rgb-matrix-effects -// #define ENABLE_RGB_MATRIX_ALPHAS_MODS -// #define ENABLE_RGB_MATRIX_GRADIENT_UP_DOWN -// #define ENABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT -#define ENABLE_RGB_MATRIX_BREATHING -// #define ENABLE_RGB_MATRIX_BAND_SAT -// #define ENABLE_RGB_MATRIX_BAND_VAL -// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_SAT -// #define ENABLE_RGB_MATRIX_BAND_PINWHEEL_VAL -// #define ENABLE_RGB_MATRIX_BAND_SPIRAL_SAT -#define ENABLE_RGB_MATRIX_BAND_SPIRAL_VAL -#define ENABLE_RGB_MATRIX_CYCLE_ALL -#define ENABLE_RGB_MATRIX_CYCLE_LEFT_RIGHT -#define ENABLE_RGB_MATRIX_CYCLE_UP_DOWN -#define ENABLE_RGB_MATRIX_RAINBOW_MOVING_CHEVRON -#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN -#define ENABLE_RGB_MATRIX_CYCLE_OUT_IN_DUAL -#define ENABLE_RGB_MATRIX_CYCLE_PINWHEEL -#define ENABLE_RGB_MATRIX_CYCLE_SPIRAL -#define ENABLE_RGB_MATRIX_DUAL_BEACON -#define ENABLE_RGB_MATRIX_RAINBOW_BEACON -// #define ENABLE_RGB_MATRIX_RAINBOW_PINWHEELS -// #define ENABLE_RGB_MATRIX_RAINDROPS -#define ENABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS -// #define ENABLE_RGB_MATRIX_HUE_BREATHING -// #define ENABLE_RGB_MATRIX_HUE_PENDULUM -// #define ENABLE_RGB_MATRIX_HUE_WAVE -#define ENABLE_RGB_MATRIX_PIXEL_RAIN -// #define ENABLE_RGB_MATRIX_PIXEL_FLOW -// #define ENABLE_RGB_MATRIX_PIXEL_FRACTAL -  #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 -  #define RGB_MATRIX_KEYPRESSES -// 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 -#define ENABLE_RGB_MATRIX_SPLASH -// #define ENABLE_RGB_MATRIX_MULTISPLASH -#define ENABLE_RGB_MATRIX_SOLID_SPLASH -// #define ENABLE_RGB_MATRIX_SOLID_MULTISPLASH diff --git a/keyboards/keychron/q11/info.json b/keyboards/keychron/q11/info.json new file mode 100755 index 0000000000..43029ebbc3 --- /dev/null +++ b/keyboards/keychron/q11/info.json @@ -0,0 +1,290 @@ +{ +    "keyboard_name": "Keychron Q11", +    "manufacturer": "Keychron", +    "url": "https://github.com/Keychron", +    "maintainer": "lalalademaxiya1", +    "processor": "STM32L432", +    "bootloader": "stm32-dfu", +    "usb": { +        "vid": "0x3434" +    }, +    "bootmagic": { +        "matrix": [0, 1] +    }, +    "features": { +        "bootmagic": true, +        "command": false, +        "console": false, +        "dip_switch": true, +        "extrakey": true, +        "mousekey": true, +        "encoder": true, +        "nkro": true, +        "rgb_matrix": true +    }, +    "matrix_pins": { +        "cols": ["A7", "A6", "A5", "A4", "A3", "A2", "A1", "C15", null], +        "rows": ["A13", "A14", "A15", "B3", "B4", "B5"] +    }, +    "diode_direction": "ROW2COL", +    "split": { +        "enabled": true, +        "encoder": { +            "right": { +                "rotary": [ +                    {"pin_a": "C14", "pin_b": "C15"} +                ] +            } +        }, +        "matrix_pins": { +            "right": { +                "cols": ["A8", "A7", "A6", "A5", "A4", "A3", "A2", "A1", "A0"], +                "rows": ["B5", "B4", "B3", "A15", "A14", "A13"] +            } +        }, +        "transport": { +            "protocol": "serial_usart", +            "sync_matrix_state": true +        }, +        "bootmagic": { +            "matrix": [6, 7] +        } +    }, +    "encoder": { +        "rotary": [ +            { +                "pin_a": "B0", +                "pin_b": "B1" +            } +        ] +    }, +    "rgb_matrix": { +        "driver": "CKLED2001", +        "animations": { +            "breathing": true, +            "band_spiral_val": true, +            "cycle_all": true, +            "cycle_left_right": true, +            "cycle_up_down": true, +            "rainbow_moving_chevron": true, +            "cycle_out_in": true, +            "cycle_out_in_dual": true, +            "cycle_pinwheel": true, +            "cycle_spiral": true, +            "dual_beacon": true, +            "rainbow_beacon": true, +            "jellybean_raindrops": true, +            "pixel_rain": true, +            "typing_heatmap": true, +            "digital_rain": true, +            "solid_reactive_simple": true, +            "solid_reactive_multiwide": true, +            "solid_reactive_multinexus": true, +            "splash": true, +            "solid_splash": true +        } +    }, +    "layouts": { +        "LAYOUT_91_ansi": { +            "layout": [ +                {"matrix": [0, 0], "x": 0, "y": 0}, +                {"matrix": [0, 1], "x": 1.25, "y": 0}, +                {"matrix": [0, 2], "x": 2.25, "y": 0}, +                {"matrix": [0, 3], "x": 3.25, "y": 0}, +                {"matrix": [0, 4], "x": 4.25, "y": 0}, +                {"matrix": [0, 5], "x": 5.25, "y": 0}, +                {"matrix": [0, 6], "x": 6.25, "y": 0}, +                {"matrix": [0, 7], "x": 7.25, "y": 0}, +                {"matrix": [6, 0], "x": 8.25, "y": 0}, +                {"matrix": [6, 1], "x": 9.25, "y": 0}, +                {"matrix": [6, 2], "x": 10.25, "y": 0}, +                {"matrix": [6, 3], "x": 11.25, "y": 0}, +                {"matrix": [6, 4], "x": 12.25, "y": 0}, +                {"matrix": [6, 5], "x": 13.25, "y": 0}, +                {"matrix": [6, 6], "x": 14.25, "y": 0}, +                {"matrix": [6, 7], "x": 15.25, "y": 0}, +                {"matrix": [6, 8], "x": 16.5, "y": 0}, + +                {"matrix": [1, 0], "x": 0, "y": 1.25}, +                {"matrix": [1, 1], "x": 1.25, "y": 1.25}, +                {"matrix": [1, 2], "x": 2.25, "y": 1.25}, +                {"matrix": [1, 3], "x": 3.25, "y": 1.25}, +                {"matrix": [1, 4], "x": 4.25, "y": 1.25}, +                {"matrix": [1, 5], "x": 5.25, "y": 1.25}, +                {"matrix": [1, 6], "x": 6.25, "y": 1.25}, +                {"matrix": [1, 7], "x": 7.25, "y": 1.25}, +                {"matrix": [7, 0], "x": 8.25, "y": 1.25}, +                {"matrix": [7, 1], "x": 9.25, "y": 1.25}, +                {"matrix": [7, 2], "x": 10.25, "y": 1.25}, +                {"matrix": [7, 3], "x": 11.25, "y": 1.25}, +                {"matrix": [7, 4], "x": 12.25, "y": 1.25}, +                {"matrix": [7, 5], "x": 13.25, "y": 1.25}, +                {"matrix": [7, 6], "x": 14.25, "y": 1.25, "w": 2}, +                {"matrix": [7, 8], "x": 16.5, "y": 1.25}, + +                {"matrix": [2, 0], "x": 0, "y": 2.25}, +                {"matrix": [2, 1], "x": 1.25, "y": 2.25, "w": 1.5}, +                {"matrix": [2, 2], "x": 2.75, "y": 2.25}, +                {"matrix": [2, 3], "x": 3.75, "y": 2.25}, +                {"matrix": [2, 4], "x": 4.75, "y": 2.25}, +                {"matrix": [2, 6], "x": 5.75, "y": 2.25}, +                {"matrix": [2, 7], "x": 6.75, "y": 2.25}, +                {"matrix": [8, 0], "x": 7.75, "y": 2.25}, +                {"matrix": [8, 1], "x": 8.75, "y": 2.25}, +                {"matrix": [8, 2], "x": 9.75, "y": 2.25}, +                {"matrix": [8, 3], "x": 10.75, "y": 2.25}, +                {"matrix": [8, 4], "x": 11.75, "y": 2.25}, +                {"matrix": [8, 5], "x": 12.75, "y": 2.25}, +                {"matrix": [8, 6], "x": 13.75, "y": 2.25}, +                {"matrix": [8, 7], "x": 14.75, "y": 2.25, "w": 1.5}, +                {"matrix": [8, 8], "x": 16.5, "y": 2.25}, + +                {"matrix": [3, 0], "x": 0, "y": 3.25}, +                {"matrix": [3, 1], "x": 1.25, "y": 3.25, "w": 1.75}, +                {"matrix": [3, 2], "x": 3, "y": 3.25}, +                {"matrix": [3, 3], "x": 4, "y": 3.25}, +                {"matrix": [3, 4], "x": 5, "y": 3.25}, +                {"matrix": [3, 5], "x": 6, "y": 3.25}, +                {"matrix": [3, 6], "x": 7, "y": 3.25}, +                {"matrix": [9, 0], "x": 8, "y": 3.25}, +                {"matrix": [9, 1], "x": 9, "y": 3.25}, +                {"matrix": [9, 2], "x": 10, "y": 3.25}, +                {"matrix": [9, 3], "x": 11, "y": 3.25}, +                {"matrix": [9, 4], "x": 12, "y": 3.25}, +                {"matrix": [9, 5], "x": 13, "y": 3.25}, +                {"matrix": [9, 7], "x": 14, "y": 3.25, "w": 2.25}, +                {"matrix": [9, 8], "x": 16.5, "y": 3.25}, + +                {"matrix": [4, 0], "x": 0, "y": 4.25}, +                {"matrix": [4, 2], "x": 1.25, "y": 4.25, "w": 2.25}, +                {"matrix": [4, 3], "x": 3.5, "y": 4.25}, +                {"matrix": [4, 4], "x": 4.5, "y": 4.25}, +                {"matrix": [4, 5], "x": 5.5, "y": 4.25}, +                {"matrix": [4, 6], "x": 6.5, "y": 4.25}, +                {"matrix": [4, 7], "x": 7.5, "y": 4.25}, +                {"matrix": [10, 0], "x": 8.5, "y": 4.25}, +                {"matrix": [10, 1], "x": 9.5, "y": 4.25}, +                {"matrix": [10, 2], "x": 10.5, "y": 4.25}, +                {"matrix": [10, 3], "x": 11.5, "y": 4.25}, +                {"matrix": [10, 4], "x": 12.5, "y": 4.25}, +                {"matrix": [10, 5], "x": 13.5, "y": 4.25, "w": 1.75}, +                {"matrix": [10, 7], "x": 15.5, "y": 4.25}, + +                {"matrix": [5, 0], "x": 0, "y": 5.25}, +                {"matrix": [5, 1], "x": 1.25, "y": 5.25, "w": 1.25}, +                {"matrix": [5, 2], "x": 2.5, "y": 5.25, "w": 1.25}, +                {"matrix": [5, 3], "x": 3.75, "y": 5.25, "w": 1.25}, +                {"matrix": [5, 4], "x": 5, "y": 5.25, "w": 1.25}, +                {"matrix": [5, 6], "x": 6.25, "y": 5.25, "w": 2.25}, +                {"matrix": [11, 1], "x": 8.5, "y": 5.25, "w": 2.75}, +                {"matrix": [11, 2], "x": 11.25, "y": 5.25}, +                {"matrix": [11, 3], "x": 12.25, "y": 5.25}, +                {"matrix": [11, 4], "x": 13.25, "y": 5.25}, +                {"matrix": [11, 6], "x": 14.5, "y": 5.25}, +                {"matrix": [11, 7], "x": 15.5, "y": 5.25}, +                {"matrix": [11, 8], "x": 16.5, "y": 5.25} +            ] +        }, +        "LAYOUT_92_iso": { +            "layout": [ +                {"matrix":[0,0], "x":0, "y":0 }, +                {"matrix":[0,1], "x":1.25, "y":0 }, +                {"matrix":[0,2], "x":2.25, "y":0 }, +                {"matrix":[0,3], "x":3.25, "y":0 }, +                {"matrix":[0,4], "x":4.25, "y":0 }, +                {"matrix":[0,5], "x":5.25, "y":0 }, +                {"matrix":[0,6], "x":6.25, "y":0 }, +                {"matrix":[0,7], "x":7.25, "y":0 }, +                {"matrix":[6,0], "x":9, "y":0 }, +                {"matrix":[6,1], "x":10, "y":0 }, +                {"matrix":[6,2], "x":11, "y":0 }, +                {"matrix":[6,3], "x":12, "y":0 }, +                {"matrix":[6,4], "x":13, "y":0 }, +                {"matrix":[6,5], "x":14, "y":0 }, +                {"matrix":[6,6], "x":15, "y":0 }, +                {"matrix":[6,7], "x":16, "y":0 }, +                {"matrix":[6,8], "x":17.25, "y":0 }, + +                {"matrix":[1,0], "x":0, "y":1.25 }, +                {"matrix":[1,1], "x":1.25, "y":1.25 }, +                {"matrix":[1,2], "x":2.25, "y":1.25 }, +                {"matrix":[1,3], "x":3.25, "y":1.25 }, +                {"matrix":[1,4], "x":4.25, "y":1.25 }, +                {"matrix":[1,5], "x":5.25, "y":1.25 }, +                {"matrix":[1,6], "x":6.25, "y":1.25 }, +                {"matrix":[1,7], "x":7.25, "y":1.25 }, +                {"matrix":[7,0], "x":9, "y":1.25 }, +                {"matrix":[7,1], "x":10, "y":1.25 }, +                {"matrix":[7,2], "x":11, "y":1.25 }, +                {"matrix":[7,3], "x":12, "y":1.25 }, +                {"matrix":[7,4], "x":13, "y":1.25 }, +                {"matrix":[7,5], "x":14, "y":1.25 }, +                {"matrix":[7,6], "x":15, "y":1.25, "w":2 }, +                {"matrix":[7,8], "x":17.25, "y":1.25 }, + +                {"matrix":[2,0], "x":0, "y":2.25 }, +                {"matrix":[2,1], "x":1.25, "y":2.25, "w":1.5 }, +                {"matrix":[2,2], "x":2.75, "y":2.25 }, +                {"matrix":[2,3], "x":3.75, "y":2.25 }, +                {"matrix":[2,4], "x":4.75, "y":2.25 }, +                {"matrix":[2,6], "x":5.75, "y":2.25 }, +                {"matrix":[2,7], "x":6.75, "y":2.25 }, +                {"matrix":[8,0], "x":8.5, "y":2.25 }, +                {"matrix":[8,1], "x":9.5, "y":2.25 }, +                {"matrix":[8,2], "x":10.5, "y":2.25 }, +                {"matrix":[8,3], "x":11.5, "y":2.25 }, +                {"matrix":[8,4], "x":12.5, "y":2.25 }, +                {"matrix":[8,5], "x":13.5, "y":2.25 }, +                {"matrix":[8,6], "x":14.5, "y":2.25 }, +                {"matrix":[8,8], "x":17.25, "y":2.25 }, + +                {"matrix":[3,0], "x":0, "y":3.25 }, +                {"matrix":[3,1], "x":1.25, "y":3.25, "w":1.75 }, +                {"matrix":[3,2], "x":3, "y":3.25 }, +                {"matrix":[3,3], "x":4, "y":3.25 }, +                {"matrix":[3,4], "x":5, "y":3.25 }, +                {"matrix":[3,5], "x":6, "y":3.25 }, +                {"matrix":[3,6], "x":7, "y":3.25 }, +                {"matrix":[9,0], "x":8.75, "y":3.25 }, +                {"matrix":[9,1], "x":9.75, "y":3.25 }, +                {"matrix":[9,2], "x":10.75, "y":3.25 }, +                {"matrix":[9,3], "x":11.75, "y":3.25 }, +                {"matrix":[9,4], "x":12.75, "y":3.25 }, +                {"matrix":[9,5], "x":13.75, "y":3.25 }, +                {"matrix":[9,7], "x":14.75, "y":3.25 }, +                {"matrix":[8,7], "x":15.75, "y":2.25, "w":1.25, "h":2 }, +                {"matrix":[9,8], "x":17.25, "y":3.25 }, + +                {"matrix":[4,0], "x":0, "y":4.25 }, +                {"matrix":[4,1], "x":1.25, "y":4.25, "w":1.25 }, +                {"matrix":[4,2], "x":2.5, "y":4.25 }, +                {"matrix":[4,3], "x":3.5, "y":4.25 }, +                {"matrix":[4,4], "x":4.5, "y":4.25 }, +                {"matrix":[4,5], "x":5.5, "y":4.25 }, +                {"matrix":[4,6], "x":6.5, "y":4.25 }, +                {"matrix":[4,7], "x":7.5, "y":4.25 }, +                {"matrix":[10,0], "x":9.25, "y":4.25 }, +                {"matrix":[10,1], "x":10.25, "y":4.25 }, +                {"matrix":[10,2], "x":11.25, "y":4.25 }, +                {"matrix":[10,3], "x":12.25, "y":4.25 }, +                {"matrix":[10,4], "x":13.25, "y":4.25 }, +                {"matrix":[10,5], "x":14.25, "y":4.25, "w":1.75 }, +                {"matrix":[10,7], "x":16.25, "y":4.25 }, + +                {"matrix":[5,0], "x":0, "y":5.25 }, +                {"matrix":[5,1], "x":1.25, "y":5.25, "w":1.25 }, +                {"matrix":[5,2], "x":2.5, "y":5.25, "w":1.25 }, +                {"matrix":[5,3], "x":3.75, "y":5.25, "w":1.25 }, +                {"matrix":[5,4], "x":5, "y":5.25, "w":1.25 }, +                {"matrix":[5,6], "x":6.25, "y":5.25, "w":2.25 }, +                {"matrix":[11,1], "x":9.25, "y":5.25, "w":2.75 }, +                {"matrix":[11,2], "x":12, "y":5.25 }, +                {"matrix":[11,3], "x":13, "y":5.25 }, +                {"matrix":[11,4], "x":14, "y":5.25 }, +                {"matrix":[11,6], "x":15.25, "y":5.25 }, +                {"matrix":[11,7], "x":16.25, "y":5.25 }, +                {"matrix":[11,8], "x":17.25, "y":5.25} +            ] +        } +    } +} diff --git a/keyboards/keychron/q11/iso_encoder/config.h b/keyboards/keychron/q11/iso_encoder/config.h new file mode 100755 index 0000000000..57baea4c69 --- /dev/null +++ b/keyboards/keychron/q11/iso_encoder/config.h @@ -0,0 +1,23 @@ +/* Copyright 2023 @ Keychron(https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#pragma once + +/* RGB Matrix Configuration */ +#define RGB_MATRIX_LED_COUNT 90 + +/* Enable caps-lock LED */ +#define CAPS_LOCK_LED_INDEX 23 diff --git a/keyboards/keychron/q11/iso_encoder/info.json b/keyboards/keychron/q11/iso_encoder/info.json new file mode 100755 index 0000000000..0529ccb291 --- /dev/null +++ b/keyboards/keychron/q11/iso_encoder/info.json @@ -0,0 +1,106 @@ +{ +    "usb": { +        "pid": "0x01E1", +        "device_version": "1.0.0" +    }, +    "rgb_matrix": { +        "split_count": [43, 47], +        "layout": [ +            {"matrix":[0, 1], "flags":1, "x":17,  "y":0}, +            {"matrix":[0, 2], "flags":1, "x":31,  "y":0}, +            {"matrix":[0, 3], "flags":1, "x":45,  "y":0}, +            {"matrix":[0, 4], "flags":1, "x":59,  "y":0}, +            {"matrix":[0, 5], "flags":1, "x":72,  "y":0}, +            {"matrix":[0, 6], "flags":1, "x":86,  "y":0}, +            {"matrix":[0, 7], "flags":1, "x":100, "y":0}, +            {"matrix":[1, 0], "flags":1, "x":0,   "y":15}, +            {"matrix":[1, 1], "flags":1, "x":17,  "y":15}, +            {"matrix":[1, 2], "flags":4, "x":31,  "y":15}, +            {"matrix":[1, 3], "flags":4, "x":45,  "y":15}, +            {"matrix":[1, 4], "flags":4, "x":59,  "y":15}, +            {"matrix":[1, 5], "flags":4, "x":72,  "y":15}, +            {"matrix":[1, 6], "flags":4, "x":86,  "y":15}, +            {"matrix":[1, 7], "flags":4, "x":100, "y":15}, + +            {"matrix":[2, 0], "flags":1, "x":0,   "y":27}, +            {"matrix":[2, 1], "flags":1, "x":21,  "y":27}, +            {"matrix":[2, 2], "flags":4, "x":38,  "y":27}, +            {"matrix":[2, 3], "flags":4, "x":52,  "y":27}, +            {"matrix":[2, 4], "flags":4, "x":66,  "y":27}, +            {"matrix":[2, 6], "flags":4, "x":79,  "y":27}, +            {"matrix":[2, 7], "flags":4, "x":93,  "y":27}, +            {"matrix":[3, 0], "flags":1, "x":0,   "y":40}, +            {"matrix":[3, 1], "flags":8, "x":22,  "y":40}, +            {"matrix":[3, 2], "flags":4, "x":41,  "y":40}, +            {"matrix":[3, 3], "flags":4, "x":55,  "y":40}, +            {"matrix":[3, 4], "flags":4, "x":69,  "y":40}, +            {"matrix":[3, 5], "flags":4, "x":83,  "y":40}, +            {"matrix":[3, 6], "flags":4, "x":97,  "y":40}, + +            {"matrix":[4, 0],  "flags":1, "x":0,   "y":52}, +            {"matrix":[4, 1],  "flags":1, "x":19,  "y":52}, +            {"matrix":[4, 2],  "flags":1, "x":34,  "y":52}, +            {"matrix":[4, 3],  "flags":4, "x":48,  "y":52}, +            {"matrix":[4, 4],  "flags":4, "x":62,  "y":52}, +            {"matrix":[4, 5],  "flags":4, "x":76,  "y":52}, +            {"matrix":[4, 6],  "flags":4, "x":90,  "y":52}, +            {"matrix":[4, 7],  "flags":4, "x":103, "y":52}, +            {"matrix":[5, 0],  "flags":1, "x":0,   "y":64}, +            {"matrix":[5, 1],  "flags":1, "x":19,  "y":64}, +            {"matrix":[5, 2],  "flags":1, "x":36,  "y":64}, +            {"matrix":[5, 3],  "flags":1, "x":53,  "y":64}, +            {"matrix":[5, 4],  "flags":1, "x":71,  "y":64}, +            {"matrix":[5, 6],  "flags":4, "x":95,  "y":64}, + +            {"matrix":[6, 0], "flags":1, "x":110, "y":0}, +            {"matrix":[6, 1], "flags":1, "x":124, "y":0}, +            {"matrix":[6, 2], "flags":1, "x":138, "y":0}, +            {"matrix":[6, 3], "flags":1, "x":152, "y":0}, +            {"matrix":[6, 4], "flags":1, "x":165, "y":0}, +            {"matrix":[6, 5], "flags":1, "x":179, "y":0}, +            {"matrix":[6, 6], "flags":1, "x":193, "y":0}, +            {"matrix":[6, 7], "flags":1, "x":207, "y":0}, +            {"matrix":[7, 0], "flags":4, "x":110, "y":15}, +            {"matrix":[7, 1], "flags":4, "x":124, "y":15}, +            {"matrix":[7, 2], "flags":4, "x":138, "y":15}, +            {"matrix":[7, 3], "flags":4, "x":152, "y":15}, +            {"matrix":[7, 4], "flags":4, "x":165, "y":15}, +            {"matrix":[7, 5], "flags":4, "x":179, "y":15}, +            {"matrix":[7, 6], "flags":1, "x":200, "y":15}, +            {"matrix":[7, 8], "flags":1, "x":224, "y":15}, + +            {"matrix":[8, 0], "flags":4, "x":103, "y":27}, +            {"matrix":[8, 1], "flags":4, "x":117, "y":27}, +            {"matrix":[8, 2], "flags":4, "x":131, "y":27}, +            {"matrix":[8, 3], "flags":4, "x":145, "y":27}, +            {"matrix":[8, 4], "flags":4, "x":158, "y":27}, +            {"matrix":[8, 5], "flags":4, "x":172, "y":27}, +            {"matrix":[8, 6], "flags":4, "x":186, "y":27}, +            {"matrix":[8, 8], "flags":1, "x":224, "y":27}, +            {"matrix":[9, 0], "flags":4, "x":107, "y":40}, +            {"matrix":[9, 1], "flags":4, "x":121, "y":40}, +            {"matrix":[9, 2], "flags":4, "x":134, "y":40}, +            {"matrix":[9, 3], "flags":4, "x":148, "y":40}, +            {"matrix":[9, 4], "flags":4, "x":162, "y":40}, +            {"matrix":[9, 5], "flags":4, "x":176, "y":40}, +            {"matrix":[9, 7], "flags":1, "x":190, "y":40}, +            {"matrix":[8, 7], "flags":1, "x":208, "y":36}, +            {"matrix":[9, 8], "flags":1, "x":224, "y":40}, + +            {"matrix":[10, 0], "flags":4, "x":114, "y":52}, +            {"matrix":[10, 1], "flags":4, "x":127, "y":52}, +            {"matrix":[10, 2], "flags":4, "x":141, "y":52}, +            {"matrix":[10, 3], "flags":4, "x":155, "y":52}, +            {"matrix":[10, 4], "flags":4, "x":169, "y":52}, +            {"matrix":[10, 5], "flags":1, "x":188, "y":52}, +            {"matrix":[10, 7], "flags":1, "x":210, "y":52}, +            {"matrix":[11, 1], "flags":4, "x":126, "y":64}, +            {"matrix":[11, 2], "flags":1, "x":152, "y":64}, +            {"matrix":[11, 3], "flags":1, "x":166, "y":64}, +            {"matrix":[11, 4], "flags":1, "x":180, "y":64}, +            {"matrix":[11, 6], "flags":1, "x":196, "y":64}, +            {"matrix":[11, 7], "flags":1, "x":210, "y":64}, +            {"matrix":[11, 8], "flags":1, "x":224, "y":64} +        ] +    } +} diff --git a/keyboards/keychron/q11/iso_encoder/iso_encoder.c b/keyboards/keychron/q11/iso_encoder/iso_encoder.c new file mode 100755 index 0000000000..08858d9b79 --- /dev/null +++ b/keyboards/keychron/q11/iso_encoder/iso_encoder.c @@ -0,0 +1,129 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#include "quantum.h" + +#ifdef RGB_MATRIX_ENABLE +const ckled2001_led PROGMEM g_ckled2001_leds[RGB_MATRIX_LED_COUNT] = { +/* Refer to CKLED2001 manual for these locations + *   driver + *   |  R location + *   |  |     G location + *   |  |     |     B location + *   |  |     |     | */ +    {0, A_2,  C_2,  B_2},  // ESC +    {0, A_3,  C_3,  B_3},  // F1 +    {0, A_4,  C_4,  B_4},  // F2 +    {0, A_5,  C_5,  B_5},  // F3 +    {0, A_6,  C_6,  B_6},  // F4 +    {0, A_7,  C_7,  B_7},  // F5 +    {0, A_8,  C_8,  B_8},  // F6 + +    {0, D_1,  F_1,  E_1},  // M1 +    {0, D_2,  F_2,  E_2},  // `~ +    {0, D_3,  F_3,  E_3},  // 1! +    {0, D_4,  F_4,  E_4},  // 2@ +    {0, D_5,  F_5,  E_5},  // 3# +    {0, D_6,  F_6,  E_6},  // 4$ +    {0, D_7,  F_7,  E_7},  // 5% +    {0, D_8,  F_8,  E_8},  // 6^ + +    {0, G_1,  I_1,  H_1},  // M2 +    {0, G_2,  I_2,  H_2},  // TAB +    {0, G_3,  I_3,  H_3},  // Q +    {0, G_4,  I_4,  H_4},  // W +    {0, G_5,  I_5,  H_5},  // E +    {0, G_6,  I_6,  H_6},  // R +    {0, G_7,  I_7,  H_7},  // T + +    {0, J_1,  L_1,  K_1},  // M3 +    {0, J_2,  L_2,  K_2},  // CapsJock +    {0, J_3,  L_3,  K_3},  // A +    {0, J_4,  L_4,  K_4},  // S +    {0, J_5,  L_5,  K_5},  // D +    {0, J_6,  L_6,  K_6},  // F +    {0, J_7,  L_7,  K_7},  // G + +    {0, J_9,  L_9,  K_9},  // M4 +    {0, J_10, L_10, K_10}, // Shift_L +    {0, J_11, L_11, K_11}, // NUBS +    {0, J_12, L_12, K_12}, // Z +    {0, J_13, L_13, K_13}, // X +    {0, J_14, L_14, K_14}, // C +    {0, J_15, L_15, K_15}, // V +    {0, J_16, L_16, K_16}, // B + +    {0, G_9,  I_9,  H_9},  // M5 +    {0, G_10, I_10, H_10}, // Ctrl_L +    {0, G_11, I_11, H_11}, // WGn_L +    {0, G_12, I_12, H_12}, // Alt_L +    {0, G_13, I_13, H_13}, // Fn +    {0, G_15, I_15, H_15}, // Space + +    {0, A_16, C_16, B_16}, // F7 +    {0, A_15, C_15, B_15}, // F8 +    {0, A_14, C_14, B_14}, // F9 +    {0, A_13, C_13, B_13}, // F11 +    {0, A_12, C_12, B_12}, // F11 +    {0, A_11, C_11, B_11}, // F12 +    {0, A_10, C_10, B_10}, // INS +    {0, A_9,  C_9,  B_9},  // DEL + +    {0, D_16, F_16, E_16}, // 7& +    {0, D_15, F_15, E_15}, // 8* +    {0, D_14, F_14, E_14}, // 9( +    {0, D_13, F_13, E_13}, // 1) +    {0, D_12, F_12, E_12}, // -_ +    {0, D_11, F_11, E_11}, // =+ +    {0, D_10, F_10, E_10}, // BackSpace +    {0, D_8,  F_8,  E_8},  // PgUp + +    {0, G_16, I_16, H_16}, // Y +    {0, G_15, I_15, H_15}, // U +    {0, G_14, I_14, H_14}, // G +    {0, G_13, I_13, H_13}, // O +    {0, G_12, I_12, H_12}, // P +    {0, G_11, I_11, H_11}, // [ +    {0, G_10, I_10, H_10}, // ] +    {0, G_8,  I_8,  H_8},  // PgDn + +    {0, J_16, L_16, K_16}, // H +    {0, J_15, L_15, K_15}, // J +    {0, J_14, L_14, K_14}, // KKEY_PRESS_HOME +    {0, J_13, L_13, K_13}, // J +    {0, J_12, L_12, K_12}, // ;: +    {0, J_11, L_11, K_11}, // '" +    {0, J_9,  L_9,  K_9},  // NUHS +    {0, G_9,  I_9,  H_9},  // Enter +    {0, J_8,  L_8,  K_8},  // Home + +    {0, J_7,  L_7,  K_7},  // N +    {0, J_6,  L_6,  K_6},  // M +    {0, J_5,  L_5,  K_5},  // ,< +    {0, J_4,  L_4,  K_4},  // .> +    {0, J_3,  L_3,  K_3},  // ?/ +    {0, J_2,  L_2,  K_2},  // Shift_R +    {0, J_1,  L_1,  K_1},  // Up + +    {0, G_6,  I_6,  H_6},  // Space +    {0, G_5,  I_5,  H_5},  // Win_R +    {0, G_4,  I_4,  H_4},  // Fn +    {0, G_3,  I_3,  H_3},  // Ctrl_R +    {0, G_2,  I_2,  H_2},  // Left +    {0, G_1,  I_1,  H_1},  // Down +    {0, G_7,  I_7,  H_7},  // Right +}; +#endif diff --git a/keyboards/keychron/q11/iso_encoder/keymaps/default/keymap.c b/keyboards/keychron/q11/iso_encoder/keymaps/default/keymap.c new file mode 100755 index 0000000000..2c494c08d5 --- /dev/null +++ b/keyboards/keychron/q11/iso_encoder/keymaps/default/keymap.c @@ -0,0 +1,69 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ +#include QMK_KEYBOARD_H + +enum layers{ +    MAC_BASE, +    MAC_FN, +    WIN_BASE, +    WIN_FN, +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +    [MAC_BASE] = LAYOUT_92_iso( +        KC_MUTE,  KC_ESC,   KC_BRID,  KC_BRIU,  KC_MCTL,  KC_LPAD,  RGB_VAD,   RGB_VAI,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_MUTE,  KC_VOLD,    KC_VOLU,  KC_INS,   KC_DEL,   KC_MUTE, +        _______,  KC_GRV,   KC_1,     KC_2,     KC_3,     KC_4,     KC_5,      KC_6,     KC_7,     KC_8,     KC_9,     KC_0,     KC_MINS,    KC_EQL,   KC_BSPC,            KC_PGUP, +        _______,  KC_TAB,   KC_Q,     KC_W,     KC_E,     KC_R,     KC_T,      KC_Y,     KC_U,     KC_I,     KC_O,     KC_P,     KC_LBRC,    KC_RBRC,                      KC_PGDN, +        _______,  KC_CAPS,  KC_A,     KC_S,     KC_D,     KC_F,     KC_G,      KC_H,     KC_J,     KC_K,     KC_L,     KC_SCLN,  KC_QUOT,    KC_NUHS,  KC_ENT,             KC_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, +        _______,  KC_LCTL,  KC_LOPT,  KC_LCMD,  MO(MAC_FN),         KC_SPC,                        KC_SPC,             KC_RCMD,  MO(MAC_FN), KC_RCTL,  KC_LEFT,  KC_DOWN,  KC_RGHT), + +    [MAC_FN] = LAYOUT_92_iso( +        RGB_TOG,  _______,  KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,     KC_F6,    KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,     KC_F12,   _______,  _______,  RGB_TOG, +        _______,  _______,  _______,  _______,  _______,  _______,  _______,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______, +        _______,  RGB_TOG,  RGB_MOD,  RGB_VAI,  RGB_HUI,  RGB_SAI,  RGB_SPI,   _______,  _______,  _______,  _______,  _______,  _______,    _______,                      _______, +        _______,  _______,  RGB_RMOD, RGB_VAD,  RGB_HUD,  RGB_SAD,  RGB_SPD,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______, +        _______,  _______,  _______,  _______,  _______,  _______,  _______,   _______,  NK_TOGG,  _______,  _______,  _______,  _______,              _______,  _______, +        _______,  _______,  _______,  _______,  _______,            _______,                       _______,            _______,  _______,    _______,  _______,  _______,  _______), + +    [WIN_BASE] = LAYOUT_92_iso( +        KC_MUTE,  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_INS,   KC_DEL,   KC_MUTE, +        _______,  KC_GRV,   KC_1,     KC_2,     KC_3,     KC_4,     KC_5,      KC_6,     KC_7,     KC_8,     KC_9,     KC_0,     KC_MINS,    KC_EQL,   KC_BSPC,            KC_PGUP, +        _______,  KC_TAB,   KC_Q,     KC_W,     KC_E,     KC_R,     KC_T,      KC_Y,     KC_U,     KC_I,     KC_O,     KC_P,     KC_LBRC,    KC_RBRC,                      KC_PGDN, +        _______,  KC_CAPS,  KC_A,     KC_S,     KC_D,     KC_F,     KC_G,      KC_H,     KC_J,     KC_K,     KC_L,     KC_SCLN,  KC_QUOT,    KC_NUHS,  KC_ENT,             KC_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, +        _______,  KC_LCTL,  KC_LWIN,  KC_LALT,  MO(WIN_FN),         KC_SPC,                        KC_SPC,             KC_RALT,  MO(WIN_FN), KC_RCTL,  KC_LEFT,  KC_DOWN,  KC_RGHT), + +    [WIN_FN] = LAYOUT_92_iso( +        RGB_TOG,  _______,  KC_BRID,  KC_BRIU,  KC_TASK,  KC_FLXP,  RGB_VAD,   RGB_VAI,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_MUTE,  KC_VOLD,    KC_VOLU,  _______,  _______,  RGB_TOG, +        _______,  _______,  _______,  _______,  _______,  _______,  _______,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______, +        _______,  RGB_TOG,  RGB_MOD,  RGB_VAI,  RGB_HUI,  RGB_SAI,  RGB_SPI,   _______,  _______,  _______,  _______,  _______,  _______,    _______,                      _______, +        _______,  _______,  RGB_RMOD, RGB_VAD,  RGB_HUD,  RGB_SAD,  RGB_SPD,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______, +        _______,  _______,  _______,  _______,  _______,  _______,  _______,   _______,  NK_TOGG,  _______,  _______,  _______,  _______,              _______,  _______, +        _______,  _______,  _______,  _______,  _______,            _______,                       _______,            _______,  _______,    _______,  _______,  _______,  _______), +}; + +#if defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { +    [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, +    [MAC_FN]   = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, +    [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, +    [WIN_FN]   = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } +}; +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q11/iso_encoder/keymaps/default/rules.mk b/keyboards/keychron/q11/iso_encoder/keymaps/default/rules.mk new file mode 100755 index 0000000000..ee32568148 --- /dev/null +++ b/keyboards/keychron/q11/iso_encoder/keymaps/default/rules.mk @@ -0,0 +1 @@ +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q11/iso_encoder/keymaps/keychron/keymap.c b/keyboards/keychron/q11/iso_encoder/keymaps/keychron/keymap.c new file mode 100755 index 0000000000..8269bf1a88 --- /dev/null +++ b/keyboards/keychron/q11/iso_encoder/keymaps/keychron/keymap.c @@ -0,0 +1,82 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#include QMK_KEYBOARD_H +#include "keychron_common.h" + +enum layers{ +    MAC_BASE, +    MAC_FN, +    WIN_BASE, +    WIN_FN, +}; + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +    [MAC_BASE] = LAYOUT_92_iso( +        KC_MUTE,  KC_ESC,   KC_BRID,  KC_BRIU,  KC_MCTL,  KC_LPAD,  RGB_VAD,   RGB_VAI,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_MUTE,  KC_VOLD,    KC_VOLU,  KC_INS,   KC_DEL,   KC_MUTE, +        MC_1,     KC_GRV,   KC_1,     KC_2,     KC_3,     KC_4,     KC_5,      KC_6,     KC_7,     KC_8,     KC_9,     KC_0,     KC_MINS,    KC_EQL,   KC_BSPC,            KC_PGUP, +        MC_2,     KC_TAB,   KC_Q,     KC_W,     KC_E,     KC_R,     KC_T,      KC_Y,     KC_U,     KC_I,     KC_O,     KC_P,     KC_LBRC,    KC_RBRC,                      KC_PGDN, +        MC_3,     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, +        MC_4,     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, +        MC_5,     KC_LCTL,  KC_LOPT,  KC_LCMD,  MO(MAC_FN),         KC_SPC,                        KC_SPC,             KC_RCMD,  MO(MAC_FN), KC_RCTL,  KC_LEFT,  KC_DOWN,  KC_RGHT), + +    [MAC_FN] = LAYOUT_92_iso( +        RGB_TOG,  _______,  KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,     KC_F6,    KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,     KC_F12,   _______,  _______,  RGB_TOG, +        _______,  _______,  _______,  _______,  _______,  _______,  _______,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______, +        _______,  RGB_TOG,  RGB_MOD,  RGB_VAI,  RGB_HUI,  RGB_SAI,  RGB_SPI,   _______,  _______,  _______,  _______,  _______,  _______,    _______,                      _______, +        _______,  _______,  RGB_RMOD, RGB_VAD,  RGB_HUD,  RGB_SAD,  RGB_SPD,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______, +        _______,  _______,  _______,  _______,  _______,  _______,  _______,   _______,  NK_TOGG,  _______,  _______,  _______,  _______,              _______,  _______, +        _______,  _______,  _______,  _______,  _______,            _______,                       _______,            _______,  _______,    _______,  _______,  _______,  _______), + +    [WIN_BASE] = LAYOUT_92_iso( +        KC_MUTE,  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_INS,   KC_DEL,   KC_MUTE, +        MC_1,     KC_GRV,   KC_1,     KC_2,     KC_3,     KC_4,     KC_5,      KC_6,     KC_7,     KC_8,     KC_9,     KC_0,     KC_MINS,    KC_EQL,   KC_BSPC,            KC_PGUP, +        MC_2,     KC_TAB,   KC_Q,     KC_W,     KC_E,     KC_R,     KC_T,      KC_Y,     KC_U,     KC_I,     KC_O,     KC_P,     KC_LBRC,    KC_RBRC,                      KC_PGDN, +        MC_3,     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, +        MC_4,     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, +        MC_5,     KC_LCTL,  KC_LWIN,  KC_LALT,  MO(WIN_FN),         KC_SPC,                        KC_SPC,             KC_RALT,  MO(WIN_FN), KC_RCTL,  KC_LEFT,  KC_DOWN,  KC_RGHT), + +    [WIN_FN] = LAYOUT_92_iso( +        RGB_TOG,  _______,  KC_BRID,  KC_BRIU,  KC_TASK,  KC_FLXP,  RGB_VAD,   RGB_VAI,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_MUTE,  KC_VOLD,    KC_VOLU,  _______,  _______,  RGB_TOG, +        _______,  _______,  _______,  _______,  _______,  _______,  _______,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______, +        _______,  RGB_TOG,  RGB_MOD,  RGB_VAI,  RGB_HUI,  RGB_SAI,  RGB_SPI,   _______,  _______,  _______,  _______,  _______,  _______,    _______,                      _______, +        _______,  _______,  RGB_RMOD, RGB_VAD,  RGB_HUD,  RGB_SAD,  RGB_SPD,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______, +        _______,  _______,  _______,  _______,  _______,  _______,  _______,   _______,  NK_TOGG,  _______,  _______,  _______,  _______,              _______,  _______, +        _______,  _______,  _______,  _______,  _______,            _______,                       _______,            _______,  _______,    _______,  _______,  _______,  _______), +}; + +#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_DIRECTIONS][NUM_DIRECTIONS] = { +    [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, +    [MAC_FN]   = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI)}, +    [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU)}, +    [WIN_FN]   = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI)} +}; +#endif // ENCODER_MAP_ENABLE + +// clang-format on + +void housekeeping_task_user(void) { +    housekeeping_task_keychron(); +} + +bool process_record_user(uint16_t keycode, keyrecord_t *record) { +    if (!process_record_keychron(keycode, record)) { +        return false; +    } + +    return true; +} diff --git a/keyboards/keychron/q11/iso_encoder/keymaps/keychron/rules.mk b/keyboards/keychron/q11/iso_encoder/keymaps/keychron/rules.mk new file mode 100755 index 0000000000..9cf1a9b56c --- /dev/null +++ b/keyboards/keychron/q11/iso_encoder/keymaps/keychron/rules.mk @@ -0,0 +1,5 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes + +VPATH += keyboards/keychron/common +SRC += keychron_common.c diff --git a/keyboards/keychron/q11/iso_encoder/keymaps/via/keymap.c b/keyboards/keychron/q11/iso_encoder/keymaps/via/keymap.c new file mode 100755 index 0000000000..8e969a8f81 --- /dev/null +++ b/keyboards/keychron/q11/iso_encoder/keymaps/via/keymap.c @@ -0,0 +1,70 @@ +/* Copyright 2023 @ Keychron (https://www.keychron.com) + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <http://www.gnu.org/licenses/>. + */ + +#include QMK_KEYBOARD_H + +enum layers{ +    MAC_BASE, +    MAC_FN, +    WIN_BASE, +    WIN_FN, +}; + +#define KC_TASK LGUI(KC_TAB) +#define KC_FLXP LGUI(KC_E) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +    [MAC_BASE] = LAYOUT_92_iso( +        KC_MUTE,  KC_ESC,   KC_BRID,  KC_BRIU,  KC_MCTL,  KC_LPAD,  RGB_VAD,   RGB_VAI,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_MUTE,  KC_VOLD,    KC_VOLU,  KC_INS,   KC_DEL,   KC_MUTE, +        MC_1,     KC_GRV,   KC_1,     KC_2,     KC_3,     KC_4,     KC_5,      KC_6,     KC_7,     KC_8,     KC_9,     KC_0,     KC_MINS,    KC_EQL,   KC_BSPC,            KC_PGUP, +        MC_2,     KC_TAB,   KC_Q,     KC_W,     KC_E,     KC_R,     KC_T,      KC_Y,     KC_U,     KC_I,     KC_O,     KC_P,     KC_LBRC,    KC_RBRC,                      KC_PGDN, +        MC_3,     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, +        MC_4,     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, +        MC_5,     KC_LCTL,  KC_LOPT,  KC_LCMD,  MO(MAC_FN),         KC_SPC,                        KC_SPC,             KC_RCMD,  MO(MAC_FN), KC_RCTL,  KC_LEFT,  KC_DOWN,  KC_RGHT), + +    [MAC_FN] = LAYOUT_92_iso( +        RGB_TOG,  _______,  KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,     KC_F6,    KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,     KC_F12,   _______,  _______,  RGB_TOG, +        _______,  _______,  _______,  _______,  _______,  _______,  _______,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______, +        _______,  RGB_TOG,  RGB_MOD,  RGB_VAI,  RGB_HUI,  RGB_SAI,  RGB_SPI,   _______,  _______,  _______,  _______,  _______,  _______,    _______,                      _______, +        _______,  _______,  RGB_RMOD, RGB_VAD,  RGB_HUD,  RGB_SAD,  RGB_SPD,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______, +        _______,  _______,  _______,  _______,  _______,  _______,  _______,   _______,  NK_TOGG,  _______,  _______,  _______,  _______,              _______,  _______, +        _______,  _______,  _______,  _______,  _______,            _______,                       _______,            _______,  _______,    _______,  _______,  _______,  _______), + +    [WIN_BASE] = LAYOUT_92_iso( +        KC_MUTE,  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_INS,   KC_DEL,   KC_MUTE, +        MC_1,     KC_GRV,   KC_1,     KC_2,     KC_3,     KC_4,     KC_5,      KC_6,     KC_7,     KC_8,     KC_9,     KC_0,     KC_MINS,    KC_EQL,   KC_BSPC,            KC_PGUP, +        MC_2,     KC_TAB,   KC_Q,     KC_W,     KC_E,     KC_R,     KC_T,      KC_Y,     KC_U,     KC_I,     KC_O,     KC_P,     KC_LBRC,    KC_RBRC,                      KC_PGDN, +        MC_3,     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, +        MC_4,     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, +        MC_5,     KC_LCTL,  KC_LWIN,  KC_LALT,  MO(WIN_FN),         KC_SPC,                        KC_SPC,             KC_RALT,  MO(WIN_FN), KC_RCTL,  KC_LEFT,  KC_DOWN,  KC_RGHT), + +    [WIN_FN] = LAYOUT_92_iso( +        RGB_TOG,  _______,  KC_BRID,  KC_BRIU,  KC_TASK,  KC_FLXP,  RGB_VAD,   RGB_VAI,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_MUTE,  KC_VOLD,    KC_VOLU,  _______,  _______,  RGB_TOG, +        _______,  _______,  _______,  _______,  _______,  _______,  _______,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______, +        _______,  RGB_TOG,  RGB_MOD,  RGB_VAI,  RGB_HUI,  RGB_SAI,  RGB_SPI,   _______,  _______,  _______,  _______,  _______,  _______,    _______,                      _______, +        _______,  _______,  RGB_RMOD, RGB_VAD,  RGB_HUD,  RGB_SAD,  RGB_SPD,   _______,  _______,  _______,  _______,  _______,  _______,    _______,  _______,            _______, +        _______,  _______,  _______,  _______,  _______,  _______,  _______,   _______,  NK_TOGG,  _______,  _______,  _______,  _______,              _______,  _______, +        _______,  _______,  _______,  _______,  _______,            _______,                       _______,            _______,  _______,    _______,  _______,  _______,  _______), +}; + +#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE) +const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][NUM_DIRECTIONS] = { +    [MAC_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, +    [MAC_FN]   = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) }, +    [WIN_BASE] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(KC_VOLD, KC_VOLU) }, +    [WIN_FN]   = { ENCODER_CCW_CW(RGB_VAD, RGB_VAI), ENCODER_CCW_CW(RGB_VAD, RGB_VAI) } +}; +#endif // ENCODER_MAP_ENABLE diff --git a/keyboards/keychron/q11/iso_encoder/keymaps/via/rules.mk b/keyboards/keychron/q11/iso_encoder/keymaps/via/rules.mk new file mode 100755 index 0000000000..f1adcab005 --- /dev/null +++ b/keyboards/keychron/q11/iso_encoder/keymaps/via/rules.mk @@ -0,0 +1,2 @@ +VIA_ENABLE = yes +ENCODER_MAP_ENABLE = yes diff --git a/keyboards/keychron/q11/iso_encoder/rules.mk b/keyboards/keychron/q11/iso_encoder/rules.mk new file mode 100755 index 0000000000..ac78b227d6 --- /dev/null +++ b/keyboards/keychron/q11/iso_encoder/rules.mk @@ -0,0 +1,4 @@ +# Enter lower-power sleep mode when on the ChibiOS idle thread +OPT_DEFS += -DCORTEX_ENABLE_WFI_IDLE=TRUE + +SERIAL_DRIVER = usart diff --git a/keyboards/keychron/q11/q11.c b/keyboards/keychron/q11/q11.c index 8cfbb38fff..eccb5473e1 100755 --- a/keyboards/keychron/q11/q11.c +++ b/keyboards/keychron/q11/q11.c @@ -47,7 +47,7 @@ bool dip_switch_update_kb(uint8_t index, bool active) {  }  #endif -#if defined(RGB_MATRIX_ENABLE) && (defined(CAPS_LOCK_LED_INDEX) || defined(NUM_LOCK_LED_INDEX)) +#if defined(RGB_MATRIX_ENABLE) && defined(CAPS_LOCK_LED_INDEX)  bool process_record_kb(uint16_t keycode, keyrecord_t *record) {      if (!process_record_user(keycode, record)) {          return false; @@ -100,3 +100,63 @@ bool rgb_matrix_indicators_advanced_kb(uint8_t led_min, uint8_t led_max) {      return true;  }  #endif + +#define ADC_BUFFER_DEPTH 1 +#define ADC_NUM_CHANNELS 1 +#define ADC_SAMPLING_RATE ADC_SMPR_SMP_12P5 +#define ADC_RESOLUTION ADC_CFGR_RES_10BITS + +static int16_t analogReadPin_my(pin_t pin) { +    ADCConfig          adcCfg = {}; +    adcsample_t        sampleBuffer[ADC_NUM_CHANNELS * ADC_BUFFER_DEPTH]; +    ADCDriver         *targetDriver       = &ADCD1; +    ADCConversionGroup adcConversionGroup = { +        .circular     = FALSE, +        .num_channels = (uint16_t)(ADC_NUM_CHANNELS), +        .cfgr         = ADC_RESOLUTION, +    }; + +    palSetLineMode(pin, PAL_MODE_INPUT_ANALOG); +    switch (pin) { +        case B0: +            adcConversionGroup.smpr[2] = ADC_SMPR2_SMP_AN15(ADC_SAMPLING_RATE); +            adcConversionGroup.sqr[0]  = ADC_SQR1_SQ1_N(ADC_CHANNEL_IN15); +            sampleBuffer[0]            = 0; +            break; +        case B1: +            adcConversionGroup.smpr[2] = ADC_SMPR2_SMP_AN16(ADC_SAMPLING_RATE); +            adcConversionGroup.sqr[0]  = ADC_SQR1_SQ1_N(ADC_CHANNEL_IN16); +            sampleBuffer[0]            = 0; +            break; +        default: +            return 0; +    } +    adcStart(targetDriver, &adcCfg); +    if (adcConvert(targetDriver, &adcConversionGroup, &sampleBuffer[0], ADC_BUFFER_DEPTH) != MSG_OK) { +        return 0; +    } + +    return *sampleBuffer; +} + +void keyboard_post_init_kb(void) { +    // 1. The pin A5/B5 of the USB C interface in the left hand is connected to the pin A0 of MCU, +    // A0 will be set to output and write high when keyboard initial. +    // 2. The same pin in the right hand is connected to the pin B0 and B1 of MCU respectively, +    // and the ADC function of B0 and B1 will be enabled when keyboard initial. +    // 3. because the serial usart RXD and TXD is multiplexed on USB's D+ and D- in the right hand. +    // So detect the voltage on the pin A5/B5 of the USB C interface by ADC, +    // and disable USB connectivity when the ADC value exceeds 1000, +    // to avoid affecting the serial usart communication between the left hand and the right hand. +    if (is_keyboard_left()) { +        setPinOutput(A0); +        writePinHigh(A0); +    } else { +        if ((analogReadPin_my(B0) > 1000) || (analogReadPin_my(B1) > 1000)) { +            setPinInput(A11); +            setPinInput(A12); +        } +    } + +    keyboard_post_init_user(); +} diff --git a/keyboards/keychron/q11/readme.md b/keyboards/keychron/q11/readme.md index 3dad920e04..e6ed2afb75 100644 --- a/keyboards/keychron/q11/readme.md +++ b/keyboards/keychron/q11/readme.md @@ -11,11 +11,13 @@ A customizable 75% split keyboard.  Make example for this keyboard (after setting up your build environment):      make keychron/q11/ansi_encoder:default +    make keychron/q11/iso_encoder:default  Flashing example for this keyboard:      make keychron/q11/ansi_encoder:default:flash +    make keychron/q11/iso_encoder:default:flash -**Reset Key**: Hold down the key located at *K01*, which programmed as *Esc* while plugging in the keyboard. +**Reset Key**: The master and slave side should be flashed individually, to enter flashing mode, hold down the key located at *K01*, which programmed as *Esc* while plugging in the keyboard for the master side and hold down the key located at *K67*, which programmed as *Del* while plugging in the keyboard for the slave side.  See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.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/rmkeebs/rm_fullsize/keymaps/default/keymap.c b/keyboards/rmkeebs/rm_fullsize/keymaps/default/keymap.c index 94c66c0d96..c94cc2e526 100644 --- a/keyboards/rmkeebs/rm_fullsize/keymaps/default/keymap.c +++ b/keyboards/rmkeebs/rm_fullsize/keymaps/default/keymap.c @@ -30,8 +30,8 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {          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,  C(KC_Z), KC_BSPC,    KC_INS,  KC_HOME, KC_PGUP,    KC_NUM,  KC_PSLS, KC_PAST, KC_PMNS,          KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS,             KC_DEL,  KC_END,  KC_PGDN,    KC_P7,   KC_P8,   KC_P9,   KC_PEQL,          KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,          KC_ENT,                                            KC_P4,   KC_P5,   KC_P6,   KC_PPLS, -        KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,          KC_RSFT,                      KC_UP,               KC_P1,   KC_P2,   KC_P3,   KC_PENT, -        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, KC_RGUI, KC_APP,  KC_RCTL,             KC_LEFT, KC_DOWN, KC_RGHT,    KC_P0,   KC_00,   KC_PDOT, 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,               KC_P1,   KC_P2,   KC_P3,   KC_DEL, +        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, KC_RGUI, KC_APP,  KC_RCTL,             KC_LEFT, KC_DOWN, KC_RGHT,    KC_P0,   KC_00,   KC_PDOT, KC_PENT      )  }; diff --git a/keyboards/xiudi/xd75/keymaps/zigotica/config.h b/keyboards/xiudi/xd75/keymaps/zigotica/config.h new file mode 100644 index 0000000000..23e276cf6e --- /dev/null +++ b/keyboards/xiudi/xd75/keymaps/zigotica/config.h @@ -0,0 +1,27 @@ +/* Copyright 2023 Sergi Meseguer <zigotica@gmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program.  If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +// these should work better for homerow modifiers +#define TAPPING_TERM 350 +#define PERMISSIVE_HOLD +#define QUICK_TAP_TERM 0 + +// needed to get same layers as split keyboards +// see users/zigotica/zigotica.h +#define ORTHOLINEAR_KEYBOARD + diff --git a/keyboards/xiudi/xd75/keymaps/zigotica/keymap.c b/keyboards/xiudi/xd75/keymaps/zigotica/keymap.c new file mode 100644 index 0000000000..4133b57e72 --- /dev/null +++ b/keyboards/xiudi/xd75/keymaps/zigotica/keymap.c @@ -0,0 +1,63 @@ +/* Copyright 2023 Sergi Meseguer <zigotica@gmail.com> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program.  If not, see <http://www.gnu.org/licenses/>. +*/ + +#include "zigotica.h" + +#define LAYOUT_wrapper(...) LAYOUT(__VA_ARGS__) + +const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { +    [BASE] = LAYOUT_wrapper( +       KC_ESC,    ____NUM15,     _BLANK_3,    ____NUM60,     KC_DEL,  +       KC_TAB,    _STENAI_L1,    _BLANK_3,    _STENAI_R1,    _______, +       KC_EQL,    _STENAI_L2,    _BLANK_3,    _STENAI_R2,    KC_ENT, +       KC_LSFT,   _STENAI_L3,    ____TARRS,   _STENAI_R3,    KC_RSFT, +       ____LORTH, _STENAI_LT,    ____BARRS,   _STENAI_RT,    ____RORTH +    ), + +    [_NUM] = LAYOUT_wrapper( +      QK_MAKE,    _BLANK_ROW,    _BLANK_3,    _BLANK_ROW,    _______, +      _______,    ____NUM_L1,    _BLANK_3,    ____NUM_R1,    _______, +      _______,    ____NUM_L2,    _BLANK_3,    ____NUM_R2,    _______, +      _______,    ____NUM_L3,    _BLANK_3,    ____NUM_R3,    _______, +      _BLANK_4,   ____NUM_LT,    _BLANK_3,    ____NUM_RT,    _BLANK_4 +    ), + +    [_NAV] = LAYOUT_wrapper( +      QK_MAKE,    _BLANK_ROW,    _BLANK_3,    _BLANK_ROW,    _______, +      _______,    ____NAV_L1,    _BLANK_3,    ____NAV_R1,    _______, +      _______,    ____NAV_L2,    _BLANK_3,    ____NAV_R2,    _______, +      _______,    ____NAV_L3,    _BLANK_3,    ____NAV_R3,    _______, +      _BLANK_4,   ____NAV_LT,    _BLANK_3,    ____NAV_RT,    _BLANK_4 +    ), + +    [_SYM] = LAYOUT_wrapper( +      QK_MAKE,    _BLANK_ROW,    _BLANK_3,    _BLANK_ROW,    _______, +      _______,    ____SYM_L1,    _BLANK_3,    ____SYM_R1,    _______, +      _______,    ____SYM_L2,    _BLANK_3,    ____SYM_R2,    _______, +      _______,    ____SYM_L3,    _BLANK_3,    ____SYM_R3,    _______, +      _BLANK_4,   ____SYM_LT,    _BLANK_3,    ____SYM_RT,    _BLANK_4 +    ), + +    [_FN] = LAYOUT_wrapper( +      QK_MAKE,    ____FN_15,     _BLANK_3,    ____FN_60,     _______, +      _______,    ____FN_L1,     _BLANK_3,    ____FN_R1,     _______, +      _______,    ____FN_L2,     _BLANK_3,    ____FN_R2,     _______, +      _______,    ____FN_L3,     _BLANK_3,    ____FN_R3,     _______, +      _BLANK_4,   ____FN_LT,     _BLANK_3,    ____FN_RT,     _BLANK_4 +    ), +}; + + diff --git a/keyboards/xiudi/xd75/keymaps/zigotica/rules.mk b/keyboards/xiudi/xd75/keymaps/zigotica/rules.mk new file mode 100644 index 0000000000..c41232e8f9 --- /dev/null +++ b/keyboards/xiudi/xd75/keymaps/zigotica/rules.mk @@ -0,0 +1,6 @@ +OLED_SUPPORTED = no +ENCODER_SUPPORTED = no + +MOUSEKEY_ENABLE = yes +COMBO_ENABLE = yes +TAP_DANCE_ENABLE = yes diff --git a/users/zigotica/rows.h b/users/zigotica/rows.h index 18f08ccb0b..575b32186e 100644 --- a/users/zigotica/rows.h +++ b/users/zigotica/rows.h @@ -15,8 +15,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #include "zigotica.h"  // clang-format off -#define _BLANK_ROW      _______, _______, _______, _______, _______  #define _BLANK_THUMB    _______, _______ +#define _BLANK_3        _______, _______, _______ +#define _BLANK_4        _______, _______, _______, _______ +#define _BLANK_ROW      _______, _______, _______, _______, _______  /*   * STENAI Layer @@ -60,12 +62,14 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #define _COLEMAK_R3     KC_K,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH  #define _QWERTY_L1      KC_Q,    KC_W,    KC_E,    KC_R,    KC_T -#define _QWERTY_L2      KC_A,    KC_S,    KC_D,    KC_F,    KC_G +#define _QWERTY_L2      LALT_T(KC_A),     LCTL_T(KC_S),    LSFT_T(KC_D),  LGUI_T(KC_F),     KC_G  #define _QWERTY_L3      KC_Z,    KC_X,    KC_C,    KC_V,    KC_B +#define _QWERTY_LT      LT(_NUM, KC_TAB), LT(_NAV, KC_SPC)  #define _QWERTY_R1      KC_Y,    KC_U,    KC_I,    KC_O,    KC_P -#define _QWERTY_R2      KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT +#define _QWERTY_R2      KC_H,    RGUI_T(KC_J),    RSFT_T(KC_K),  RCTL_T(KC_L), RALT_T(KC_SCLN)  #define _QWERTY_R3      KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH +#define _QWERTY_RT      LT(_SYM, KC_SPC), LT(_FN, KC_ENT)  /*   * NUM Layer @@ -191,4 +195,17 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #define ____FN_R2       _______,  KC_F1,  KC_F2,  KC_F3,  KC_F11  #define ____FN_R3       _______,  KC_F4,  KC_F5,  KC_F6,  KC_F12  #define ____FN_RT       _BLANK_THUMB + + +// Ortho short rows +#define ____NUM15      KC_1,    KC_2,    KC_3,   KC_4,   KC_5 +#define ____NUM60      KC_6,    KC_7,    KC_8,   KC_9,   KC_0 +#define ____FN_15      KC_F1,   KC_F2,   KC_F3,  KC_F4,  KC_F5 +#define ____FN_60      KC_F6,   KC_F7,   KC_F8,  KC_F9,  KC_F10 +#define ____LMODS      KC_LCTL, KC_LALT, KC_LGUI +#define ____TARRS      _______, KC_UP,   _______ +#define ____BARRS      KC_LEFT, KC_DOWN, KC_RIGHT +#define ____LORTH      ____LMODS, KC_MINS +#define ____RORTH      KC_BSPC, KC_SCLN, KC_BSLS, KC_SLSH +  // clang-format on diff --git a/users/zigotica/rules.mk b/users/zigotica/rules.mk index 019e6f6dda..93b0b5704d 100644 --- a/users/zigotica/rules.mk +++ b/users/zigotica/rules.mk @@ -5,7 +5,7 @@ ifeq ($(strip $(TAP_DANCE_ENABLE)), yes)  endif  ifeq ($(strip $(COMBO_ENABLE)), yes) -    SRC += combos.c +	INTROSPECTION_KEYMAP_C = combos.c  endif  ifeq ($(strip $(OLED_ENABLE)), yes) diff --git a/users/zigotica/zigotica.h b/users/zigotica/zigotica.h index e85a04edbe..e7ac83e0dc 100644 --- a/users/zigotica/zigotica.h +++ b/users/zigotica/zigotica.h @@ -16,7 +16,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.  #include "rows.h" -#ifdef SPLIT_KEYBOARD +#if defined(SPLIT_KEYBOARD) || defined(ORTHOLINEAR_KEYBOARD)  enum userspace_layers {      BASE = 0,      _NUM, | 
