Merge remote-tracking branch 'origin/master' into develop
This commit is contained in:
		@@ -1,24 +0,0 @@
 | 
			
		||||
# Code Of Conduct
 | 
			
		||||
 | 
			
		||||
QMK strives to be an inclusive, tolerant, and welcoming community. We encourage participation from anyone regardless of age, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, political belief, race, religion, or sexual identity and orientation.
 | 
			
		||||
 | 
			
		||||
> “A gentle word turns away wrath, but a harsh word stirs up anger."
 | 
			
		||||
 | 
			
		||||
Our users, contributors, and collaborators are expected to treat each other with kindness and respect, to assume good intentions, and to gently correct, where possible, rather than react with escalation. While our goal is to be as accurate as possible, kindness and understanding are more valuable than correctness. Some examples of behavior we will not tolerate include, but is not limited to:
 | 
			
		||||
 | 
			
		||||
* The use of sexualized language or imagery
 | 
			
		||||
* Unwelcome advances, sexual or otherwise
 | 
			
		||||
* Deliberate intimidation, stalking, or following
 | 
			
		||||
* Insults or derogatory comments, or personal or political attacks
 | 
			
		||||
* Publishing others’ private information without explicit permission
 | 
			
		||||
* Sustained disruption of talks or other events
 | 
			
		||||
* Other conduct which could reasonably be considered inappropriate in a professional setting
 | 
			
		||||
* Advocating for, or encouraging, any of the above behaviour
 | 
			
		||||
 | 
			
		||||
# Reporting
 | 
			
		||||
 | 
			
		||||
If someone is violating this Code of Conduct, please email hello@qmk.fm or reach out to one of the Collaborators to bring it to our attention. All complaints will be reviewed and investigated.
 | 
			
		||||
 | 
			
		||||
QMK will seek to use the least punitive means available to resolve an issue. If the circumstances require asking an offender to leave, we will do that.
 | 
			
		||||
 | 
			
		||||
Reports will be taken and kept in strict confidence. You will not be required to confront an offender directly.
 | 
			
		||||
@@ -17,22 +17,22 @@
 | 
			
		||||
#include "technik_s.h"
 | 
			
		||||
#ifdef RGB_MATRIX_ENABLE
 | 
			
		||||
led_config_t g_led_config = { {
 | 
			
		||||
  {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}
 | 
			
		||||
    {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}
 | 
			
		||||
}, {
 | 
			
		||||
  {11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0},
 | 
			
		||||
  {10.5, 1}, {9.5, 1}, {8.5, 1}, {7.5, 1}, {6.5, 1}, {5.5, 1}, {4.5, 1}, {3.5, 1}, {2.5, 1}, {1.5, 1}, {0.5, 1},
 | 
			
		||||
  {11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2},
 | 
			
		||||
  {11, 3}, {10, 3}, {9, 3}, {8, 3}, {6.5, 3}, {5, 3}, {3.5, 3}, {2, 3}, {1, 3}, {0, 3},
 | 
			
		||||
    {220, 17}, {172, 17}, {112, 17}, { 50, 17}, {  4, 17}, {  4, 56}, { 50, 56}, {112, 56}, {172, 56}, {220, 56},
 | 
			
		||||
    {  0,  0}, { 20,  0}, { 40,  0}, { 61,  0}, { 81,  0}, {101,  0}, {122,  0}, {142,  0}, {162,  0}, {183,  0}, {203,  0}, {224,  0},
 | 
			
		||||
         { 10, 21}, { 30, 21}, { 51, 21}, { 71, 21}, { 91, 21}, {112, 21}, {132, 21}, {152, 21}, {173, 21}, {193, 21}, {214, 21},
 | 
			
		||||
    {  0, 42}, { 20, 42}, { 40, 42}, { 61, 42}, { 81, 42}, {101, 42}, {122, 42}, {142, 42}, {162, 42}, {183, 42}, {203, 42}, {224, 42},
 | 
			
		||||
    {  0, 64}, { 20, 64}, { 40, 64},      { 68, 64}, { 97, 64},            {126, 64}, {154, 64},       {183, 64}, {203, 64}, {224, 64}
 | 
			
		||||
}, {
 | 
			
		||||
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
 | 
			
		||||
    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
 | 
			
		||||
    1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
 | 
			
		||||
    1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
 | 
			
		||||
    1, 1, 1, 1, 4, 4, 1, 1, 1, 1
 | 
			
		||||
 | 
			
		||||
} };
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										44
									
								
								keyboards/kb_elmo/qez/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										44
									
								
								keyboards/kb_elmo/qez/config.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,44 @@
 | 
			
		||||
/*
 | 
			
		||||
Copyright 2021 kb-elmo<mail@elmo.space>
 | 
			
		||||
 | 
			
		||||
This program is free software: you can redistribute it and/or modify
 | 
			
		||||
it under the terms of the GNU General Public License as published by
 | 
			
		||||
the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
(at your option) any later version.
 | 
			
		||||
 | 
			
		||||
This program is distributed in the hope that it will be useful,
 | 
			
		||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
You should have received a copy of the GNU General Public License
 | 
			
		||||
along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "config_common.h"
 | 
			
		||||
 | 
			
		||||
/* USB Device descriptor parameter */
 | 
			
		||||
#define VENDOR_ID    0xA68C
 | 
			
		||||
#define PRODUCT_ID   0x675F
 | 
			
		||||
#define DEVICE_VER   0x0001
 | 
			
		||||
#define MANUFACTURER kb_elmo
 | 
			
		||||
#define PRODUCT      QEZ
 | 
			
		||||
 | 
			
		||||
/* key matrix size */
 | 
			
		||||
#define MATRIX_ROWS 4
 | 
			
		||||
#define MATRIX_COLS 10
 | 
			
		||||
 | 
			
		||||
/* Keyboard Matrix Assignments */
 | 
			
		||||
#define MATRIX_ROW_PINS { C6, C4, B1, B0 }
 | 
			
		||||
#define MATRIX_COL_PINS { C7, B7, B6, B5, B4, B3, D6, D5, D4, D3 }
 | 
			
		||||
 | 
			
		||||
/* COL2ROW, ROW2COL */
 | 
			
		||||
#define DIODE_DIRECTION COL2ROW
 | 
			
		||||
 | 
			
		||||
/* Debounce reduces chatter */
 | 
			
		||||
#define DEBOUNCE 5
 | 
			
		||||
 | 
			
		||||
/* Indicator LEDs */
 | 
			
		||||
#define LED_CAPS_LOCK_PIN C5
 | 
			
		||||
							
								
								
									
										128
									
								
								keyboards/kb_elmo/qez/info.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										128
									
								
								keyboards/kb_elmo/qez/info.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,128 @@
 | 
			
		||||
{
 | 
			
		||||
    "keyboard_name": "qez",
 | 
			
		||||
    "url": "",
 | 
			
		||||
    "maintainer": "kb-elmo<mail@elmo.space>",
 | 
			
		||||
    "width": 10.25, 
 | 
			
		||||
    "height": 4, 
 | 
			
		||||
    "layouts": {
 | 
			
		||||
        "LAYOUT_split_space": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                {"x":0, "y":0},
 | 
			
		||||
                {"x":1, "y":0},
 | 
			
		||||
                {"x":2, "y":0},
 | 
			
		||||
                {"x":3, "y":0},
 | 
			
		||||
                {"x":4, "y":0},
 | 
			
		||||
                {"x":5, "y":0},
 | 
			
		||||
                {"x":6, "y":0},
 | 
			
		||||
                {"x":7, "y":0},
 | 
			
		||||
                {"x":8, "y":0},
 | 
			
		||||
                {"x":9, "y":0, "w":1.25},
 | 
			
		||||
                {"x":0, "y":1, "w":1.25},
 | 
			
		||||
                {"x":1.25, "y":1},
 | 
			
		||||
                {"x":2.25, "y":1},
 | 
			
		||||
                {"x":3.25, "y":1},
 | 
			
		||||
                {"x":4.25, "y":1},
 | 
			
		||||
                {"x":5.25, "y":1},
 | 
			
		||||
                {"x":6.25, "y":1},
 | 
			
		||||
                {"x":7.25, "y":1},
 | 
			
		||||
                {"x":8.25, "y":1},
 | 
			
		||||
                {"x":9.25, "y":1},
 | 
			
		||||
                {"x":0, "y":2, "w":1.75},
 | 
			
		||||
                {"x":1.75, "y":2},
 | 
			
		||||
                {"x":2.75, "y":2},
 | 
			
		||||
                {"x":3.75, "y":2},
 | 
			
		||||
                {"x":4.75, "y":2},
 | 
			
		||||
                {"x":5.75, "y":2},
 | 
			
		||||
                {"x":6.75, "y":2},
 | 
			
		||||
                {"x":7.75, "y":2},
 | 
			
		||||
                {"x":8.75, "y":2, "w":1.5},
 | 
			
		||||
                {"x":0, "y":3},
 | 
			
		||||
                {"x":1, "y":3},
 | 
			
		||||
                {"x":2, "y":3},
 | 
			
		||||
                {"x":3, "y":3, "w":2.25},
 | 
			
		||||
                {"x":5.25, "y":3, "w":2},
 | 
			
		||||
                {"x":7.25, "y":3},
 | 
			
		||||
                {"x":8.25, "y":3},
 | 
			
		||||
                {"x":9.25, "y":3}
 | 
			
		||||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "LAYOUT_triple_space": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                {"x":0, "y":0},
 | 
			
		||||
                {"x":1, "y":0},
 | 
			
		||||
                {"x":2, "y":0},
 | 
			
		||||
                {"x":3, "y":0},
 | 
			
		||||
                {"x":4, "y":0},
 | 
			
		||||
                {"x":5, "y":0},
 | 
			
		||||
                {"x":6, "y":0},
 | 
			
		||||
                {"x":7, "y":0},
 | 
			
		||||
                {"x":8, "y":0},
 | 
			
		||||
                {"x":9, "y":0, "w":1.25},
 | 
			
		||||
                {"x":0, "y":1, "w":1.25},
 | 
			
		||||
                {"x":1.25, "y":1},
 | 
			
		||||
                {"x":2.25, "y":1},
 | 
			
		||||
                {"x":3.25, "y":1},
 | 
			
		||||
                {"x":4.25, "y":1},
 | 
			
		||||
                {"x":5.25, "y":1},
 | 
			
		||||
                {"x":6.25, "y":1},
 | 
			
		||||
                {"x":7.25, "y":1},
 | 
			
		||||
                {"x":8.25, "y":1},
 | 
			
		||||
                {"x":9.25, "y":1},
 | 
			
		||||
                {"x":0, "y":2, "w":1.75},
 | 
			
		||||
                {"x":1.75, "y":2},
 | 
			
		||||
                {"x":2.75, "y":2},
 | 
			
		||||
                {"x":3.75, "y":2},
 | 
			
		||||
                {"x":4.75, "y":2},
 | 
			
		||||
                {"x":5.75, "y":2},
 | 
			
		||||
                {"x":6.75, "y":2},
 | 
			
		||||
                {"x":7.75, "y":2},
 | 
			
		||||
                {"x":8.75, "y":2, "w":1.5},
 | 
			
		||||
                {"x":0, "y":3},
 | 
			
		||||
                {"x":1, "y":3},
 | 
			
		||||
                {"x":2, "y":3, "w":2.5},
 | 
			
		||||
                {"x":4.5, "y":3, "w":1.5},
 | 
			
		||||
                {"x":6, "y":3, "w":2.25},
 | 
			
		||||
                {"x":8.25, "y":3},
 | 
			
		||||
                {"x":9.25, "y":3}
 | 
			
		||||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "LAYOUT_full_space": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                {"x":0, "y":0},
 | 
			
		||||
                {"x":1, "y":0},
 | 
			
		||||
                {"x":2, "y":0},
 | 
			
		||||
                {"x":3, "y":0},
 | 
			
		||||
                {"x":4, "y":0},
 | 
			
		||||
                {"x":5, "y":0},
 | 
			
		||||
                {"x":6, "y":0},
 | 
			
		||||
                {"x":7, "y":0},
 | 
			
		||||
                {"x":8, "y":0},
 | 
			
		||||
                {"x":9, "y":0, "w":1.25},
 | 
			
		||||
                {"x":0, "y":1, "w":1.25},
 | 
			
		||||
                {"x":1.25, "y":1},
 | 
			
		||||
                {"x":2.25, "y":1},
 | 
			
		||||
                {"x":3.25, "y":1},
 | 
			
		||||
                {"x":4.25, "y":1},
 | 
			
		||||
                {"x":5.25, "y":1},
 | 
			
		||||
                {"x":6.25, "y":1},
 | 
			
		||||
                {"x":7.25, "y":1},
 | 
			
		||||
                {"x":8.25, "y":1},
 | 
			
		||||
                {"x":9.25, "y":1},
 | 
			
		||||
                {"x":0, "y":2, "w":1.75},
 | 
			
		||||
                {"x":1.75, "y":2},
 | 
			
		||||
                {"x":2.75, "y":2},
 | 
			
		||||
                {"x":3.75, "y":2},
 | 
			
		||||
                {"x":4.75, "y":2},
 | 
			
		||||
                {"x":5.75, "y":2},
 | 
			
		||||
                {"x":6.75, "y":2},
 | 
			
		||||
                {"x":7.75, "y":2},
 | 
			
		||||
                {"x":8.75, "y":2, "w":1.5},
 | 
			
		||||
                {"x":0, "y":3},
 | 
			
		||||
                {"x":1, "y":3},
 | 
			
		||||
                {"x":2, "y":3, "w":6.25},
 | 
			
		||||
                {"x":8.25, "y":3},
 | 
			
		||||
                {"x":9.25, "y":3}
 | 
			
		||||
            ]
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										37
									
								
								keyboards/kb_elmo/qez/keymaps/default/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								keyboards/kb_elmo/qez/keymaps/default/keymap.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
			
		||||
/* Copyright 2021 kb-elmo<mail@elmo.space>
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can 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_split_space(
 | 
			
		||||
        KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,
 | 
			
		||||
        KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_ENT,
 | 
			
		||||
        LT(1,KC_Z),    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM,    LT(2,KC_DOT),
 | 
			
		||||
        KC_LCTL, KC_LGUI, KC_LALT,    LSFT_T(KC_SPC),    KC_BSPC,      KC_RALT, MO(1),   MO(2)
 | 
			
		||||
    ),
 | 
			
		||||
    [1] = LAYOUT_split_space(
 | 
			
		||||
        KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,
 | 
			
		||||
        KC_TAB,  KC_ESC,  KC_MINS, KC_EQL,  KC_TRNS, KC_SCLN, KC_QUOT, KC_LBRC, KC_RBRC, KC_BSLS,
 | 
			
		||||
        KC_CAPS,     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,      KC_SLSH,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS,        KC_TRNS,       KC_DEL,       KC_TRNS, KC_TRNS, KC_TRNS
 | 
			
		||||
    ),
 | 
			
		||||
    [2] = LAYOUT_split_space(
 | 
			
		||||
        KC_HOME, KC_UP,   KC_END,  KC_PGUP, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,
 | 
			
		||||
        KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,
 | 
			
		||||
        KC_TRNS,     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,      KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS,        KC_TRNS,       KC_TRNS,      KC_TRNS, KC_TRNS, KC_TRNS
 | 
			
		||||
    )
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										43
									
								
								keyboards/kb_elmo/qez/keymaps/via/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								keyboards/kb_elmo/qez/keymaps/via/keymap.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
/* Copyright 2021 kb-elmo<mail@elmo.space>
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can 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_split_space(
 | 
			
		||||
        KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,
 | 
			
		||||
        KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_ENT,
 | 
			
		||||
        LT(1,KC_Z),    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM,    LT(2,KC_DOT),
 | 
			
		||||
        KC_LCTL, KC_LGUI, KC_LALT,    LSFT_T(KC_SPC),    KC_BSPC,      KC_RALT, MO(1),   MO(2)
 | 
			
		||||
    ),
 | 
			
		||||
    [1] = LAYOUT_split_space(
 | 
			
		||||
        KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,
 | 
			
		||||
        KC_TAB,  KC_ESC,  KC_MINS, KC_EQL,  KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_BSLS,
 | 
			
		||||
        KC_CAPS,     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,      KC_SLSH,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS,        KC_TRNS,       KC_DEL,       KC_TRNS, KC_TRNS, KC_TRNS
 | 
			
		||||
    ),
 | 
			
		||||
    [2] = LAYOUT_split_space(
 | 
			
		||||
        KC_HOME, KC_UP,   KC_END,  KC_PGUP, KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,
 | 
			
		||||
        KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,
 | 
			
		||||
        KC_TRNS,     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,      KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS,        KC_TRNS,       KC_TRNS,      KC_TRNS, KC_TRNS, KC_TRNS
 | 
			
		||||
    ),
 | 
			
		||||
    [3] = LAYOUT_split_space(
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
 | 
			
		||||
        KC_TRNS,     KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,      KC_TRNS,
 | 
			
		||||
        KC_TRNS, KC_TRNS, KC_TRNS,        KC_TRNS,       KC_TRNS,      KC_TRNS, KC_TRNS, KC_TRNS
 | 
			
		||||
    )
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										2
									
								
								keyboards/kb_elmo/qez/keymaps/via/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								keyboards/kb_elmo/qez/keymaps/via/rules.mk
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
VIA_ENABLE = yes
 | 
			
		||||
LTO_ENABLE = yes
 | 
			
		||||
							
								
								
									
										17
									
								
								keyboards/kb_elmo/qez/qez.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								keyboards/kb_elmo/qez/qez.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
/* Copyright 2021 kb-elmo<mail@elmo.space>
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can 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 "qez.h"
 | 
			
		||||
							
								
								
									
										57
									
								
								keyboards/kb_elmo/qez/qez.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								keyboards/kb_elmo/qez/qez.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,57 @@
 | 
			
		||||
/* Copyright 2021 kb-elmo<mail@elmo.space>
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can redistribute it and/or modify
 | 
			
		||||
 * it under the terms of the GNU General Public License as published by
 | 
			
		||||
 * the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
 * (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 * GNU General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU General Public License
 | 
			
		||||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "quantum.h"
 | 
			
		||||
 | 
			
		||||
#define ___ KC_NO
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_split_space( \
 | 
			
		||||
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
 | 
			
		||||
    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
 | 
			
		||||
    k20,    k22, k23, k24, k25, k26, k27, k28,   k29, \
 | 
			
		||||
    k21, k31, k32,    k33,     k36,    k37, k38, k39  \
 | 
			
		||||
) { \
 | 
			
		||||
    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \
 | 
			
		||||
    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \
 | 
			
		||||
    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
 | 
			
		||||
    { ___, k31, k32, k33, ___, ___, k36, k37, k38, k39 }  \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_triple_space( \
 | 
			
		||||
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
 | 
			
		||||
    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
 | 
			
		||||
    k20,    k22, k23, k24, k25, k26, k27, k28,   k29, \
 | 
			
		||||
    k21, k31,     k33,     k35,    k36,     k38, k39  \
 | 
			
		||||
) { \
 | 
			
		||||
    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \
 | 
			
		||||
    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \
 | 
			
		||||
    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
 | 
			
		||||
    { ___, k31, ___, k33, ___, k35, k36, ___, k38, k39 }  \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_full_space( \
 | 
			
		||||
    k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
 | 
			
		||||
    k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
 | 
			
		||||
    k20,    k22, k23, k24, k25, k26, k27, k28,   k29, \
 | 
			
		||||
    k21, k31,              k35,             k38, k39  \
 | 
			
		||||
) { \
 | 
			
		||||
    { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \
 | 
			
		||||
    { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \
 | 
			
		||||
    { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
 | 
			
		||||
    { ___, k31, k32, ___, ___, k35, ___, k37, k38, k39 }  \
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										24
									
								
								keyboards/kb_elmo/qez/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								keyboards/kb_elmo/qez/readme.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
# QEZ
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
A seamless gasketmounted QAZ-like 40% keyboard
 | 
			
		||||
 | 
			
		||||
* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo)
 | 
			
		||||
* Hardware Supported: QEZ rev.1 PCB
 | 
			
		||||
* Hardware Availability: [Open source project](https://github.com/kb-elmo/QEZ)
 | 
			
		||||
 | 
			
		||||
Make example for this keyboard (after setting up your build environment):
 | 
			
		||||
 | 
			
		||||
    make kb_elmo/qez:default
 | 
			
		||||
 | 
			
		||||
Flashing example for this keyboard:
 | 
			
		||||
 | 
			
		||||
    make kb_elmo/qez:default:flash
 | 
			
		||||
 | 
			
		||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
 | 
			
		||||
 | 
			
		||||
## Bootloader
 | 
			
		||||
 | 
			
		||||
* **Bootmagic reset**: Hold down the top left key and plug in the keyboard
 | 
			
		||||
* **Physical reset button**: Briefly press the button labeled "RESET" on the back of the PCB
 | 
			
		||||
							
								
								
									
										22
									
								
								keyboards/kb_elmo/qez/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								keyboards/kb_elmo/qez/rules.mk
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
# MCU name
 | 
			
		||||
MCU = atmega32u2
 | 
			
		||||
 | 
			
		||||
# Bootloader selection
 | 
			
		||||
BOOTLOADER = atmel-dfu
 | 
			
		||||
 | 
			
		||||
# Build Options
 | 
			
		||||
#   change yes to no to disable
 | 
			
		||||
#
 | 
			
		||||
BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
 | 
			
		||||
MOUSEKEY_ENABLE = no        # Mouse keys
 | 
			
		||||
EXTRAKEY_ENABLE = yes       # Audio control and System control
 | 
			
		||||
CONSOLE_ENABLE = no         # Console for debug
 | 
			
		||||
COMMAND_ENABLE = no         # Commands for debug and configuration
 | 
			
		||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | 
			
		||||
SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 | 
			
		||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | 
			
		||||
NKRO_ENABLE = no            # USB Nkey Rollover
 | 
			
		||||
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 | 
			
		||||
RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
 | 
			
		||||
BLUETOOTH_ENABLE = no       # Enable Bluetooth
 | 
			
		||||
AUDIO_ENABLE = no           # Audio output
 | 
			
		||||
@@ -32,15 +32,11 @@
 | 
			
		||||
/* Set 0 if debouncing isn't needed */
 | 
			
		||||
#define DEBOUNCE 5
 | 
			
		||||
 | 
			
		||||
/* RGB LED Matrix Configuration */
 | 
			
		||||
/* RGB Matrix Driver Configuration */
 | 
			
		||||
#define DRIVER_COUNT 2
 | 
			
		||||
#define DRIVER_ADDR_1 0b1010000
 | 
			
		||||
#define DRIVER_ADDR_2 0b1011111
 | 
			
		||||
 | 
			
		||||
#define DRIVER_1_LED_TOTAL 59
 | 
			
		||||
#define DRIVER_2_LED_TOTAL 23
 | 
			
		||||
#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
 | 
			
		||||
 | 
			
		||||
/* DIP switch */
 | 
			
		||||
#define DIP_SWITCH_MATRIX_GRID  { {0,1} }
 | 
			
		||||
 | 
			
		||||
@@ -49,3 +45,19 @@
 | 
			
		||||
 | 
			
		||||
/* NKRO */
 | 
			
		||||
#define FORCE_NKRO
 | 
			
		||||
 | 
			
		||||
/* Disable a single effect */
 | 
			
		||||
#define DISABLE_RGB_MATRIX_ALPHAS_MODS
 | 
			
		||||
#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
 | 
			
		||||
#define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
 | 
			
		||||
#define DISABLE_RGB_MATRIX_BAND_SAT
 | 
			
		||||
#define DISABLE_RGB_MATRIX_BAND_VAL
 | 
			
		||||
#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
 | 
			
		||||
#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
 | 
			
		||||
#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
 | 
			
		||||
#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
 | 
			
		||||
#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
 | 
			
		||||
#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
 | 
			
		||||
#define DISABLE_RGB_MATRIX_HUE_BREATHING
 | 
			
		||||
#define DISABLE_RGB_MATRIX_HUE_PENDULUM
 | 
			
		||||
#define DISABLE_RGB_MATRIX_HUE_WAVE
 | 
			
		||||
@@ -16,6 +16,7 @@
 | 
			
		||||
 | 
			
		||||
#include "q1.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const matrix_row_t matrix_mask[] = {
 | 
			
		||||
    0b0111111111111101,
 | 
			
		||||
    0b0111111111111111,
 | 
			
		||||
@@ -32,129 +33,3 @@ bool dip_switch_update_kb(uint8_t index, bool active) {
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
 | 
			
		||||
/* Refer to IS31 manual for these locations
 | 
			
		||||
 *   driver
 | 
			
		||||
 *   |  R location
 | 
			
		||||
 *   |  |       G location
 | 
			
		||||
 *   |  |       |       B location
 | 
			
		||||
 *   |  |       |       | */
 | 
			
		||||
 | 
			
		||||
    {0, A_1,    C_1,    B_1},
 | 
			
		||||
    {0, A_3,    C_3,    B_3},
 | 
			
		||||
    {0, A_4,    C_4,    B_4},
 | 
			
		||||
    {0, A_5,    C_5,    B_5},
 | 
			
		||||
    {0, A_6,    C_6,    B_6},
 | 
			
		||||
    {0, A_7,    C_7,    B_7},
 | 
			
		||||
    {0, A_8,    C_8,    B_8},
 | 
			
		||||
    {0, A_9,    C_9,    B_9},
 | 
			
		||||
    {0, A_10,   C_10,   B_10},
 | 
			
		||||
    {0, A_11,   C_11,   B_11},
 | 
			
		||||
    {0, A_12,   C_12,   B_12},
 | 
			
		||||
    {0, A_13,   C_13,   B_13},
 | 
			
		||||
    {0, A_14,   C_14,   B_14},
 | 
			
		||||
    {0, A_15,   C_15,   B_15},
 | 
			
		||||
    {0, A_16,   C_16,   B_16},
 | 
			
		||||
 | 
			
		||||
    {0, D_1,    F_1,    E_1},
 | 
			
		||||
    {0, D_2,    F_2,    E_2},
 | 
			
		||||
    {0, D_3,    F_3,    E_3},
 | 
			
		||||
    {0, D_4,    F_4,    E_4},
 | 
			
		||||
    {0, D_5,    F_5,    E_5},
 | 
			
		||||
    {0, D_6,    F_6,    E_6},
 | 
			
		||||
    {0, D_7,    F_7,    E_7},
 | 
			
		||||
    {0, D_8,    F_8,    E_8},
 | 
			
		||||
    {0, D_9,    F_9,    E_9},
 | 
			
		||||
    {0, D_10,   F_10,   E_10},
 | 
			
		||||
    {0, D_11,   F_11,   E_11},
 | 
			
		||||
    {0, D_12,   F_12,   E_12},
 | 
			
		||||
    {0, D_13,   F_13,   E_13},
 | 
			
		||||
    {0, D_14,   F_14,   E_14},
 | 
			
		||||
    {0, D_16,   F_16,   E_16},
 | 
			
		||||
 | 
			
		||||
    {0, G_1,    I_1,    H_1},
 | 
			
		||||
    {0, G_2,    I_2,    H_2},
 | 
			
		||||
    {0, G_3,    I_3,    H_3},
 | 
			
		||||
    {0, G_4,    I_4,    H_4},
 | 
			
		||||
    {0, G_5,    I_5,    H_5},
 | 
			
		||||
    {0, G_6,    I_6,    H_6},
 | 
			
		||||
    {0, G_7,    I_7,    H_7},
 | 
			
		||||
    {0, G_8,    I_8,    H_8},
 | 
			
		||||
    {0, G_9,    I_9,    H_9},
 | 
			
		||||
    {0, G_10,   I_10,   H_10},
 | 
			
		||||
    {0, G_11,   I_11,   H_11},
 | 
			
		||||
    {0, G_12,   I_12,   H_12},
 | 
			
		||||
    {0, G_13,   I_13,   H_13},
 | 
			
		||||
    {0, G_14,   I_14,   H_14},
 | 
			
		||||
    {0, G_16,   I_16,   H_16},
 | 
			
		||||
 | 
			
		||||
    {0, J_1,    L_1,    K_1},
 | 
			
		||||
    {0, J_2,    L_2,    K_2},
 | 
			
		||||
    {0, J_3,    L_3,    K_3},
 | 
			
		||||
    {0, J_4,    L_4,    K_4},
 | 
			
		||||
    {0, J_5,    L_5,    K_5},
 | 
			
		||||
    {0, J_6,    L_6,    K_6},
 | 
			
		||||
    {0, J_7,    L_7,    K_7},
 | 
			
		||||
    {0, J_8,    L_8,    K_8},
 | 
			
		||||
    {0, J_9,    L_9,    K_9},
 | 
			
		||||
    {0, J_10,   L_10,   K_10},
 | 
			
		||||
    {0, J_11,   L_11,   K_11},
 | 
			
		||||
    {0, J_12,   L_12,   K_12},
 | 
			
		||||
    {0, J_14,   L_14,   K_14},
 | 
			
		||||
    {0, J_16,   L_16,   K_16},
 | 
			
		||||
    {1, A_1,    C_1,    B_1},
 | 
			
		||||
 | 
			
		||||
    {1, A_3,    C_3,    B_3},
 | 
			
		||||
    {1, A_4,    C_4,    B_4},
 | 
			
		||||
    {1, A_5,    C_5,    B_5},
 | 
			
		||||
    {1, A_6,    C_6,    B_6},
 | 
			
		||||
    {1, A_7,    C_7,    B_7},
 | 
			
		||||
    {1, A_8,    C_8,    B_8},
 | 
			
		||||
    {1, A_9,    C_9,    B_9},
 | 
			
		||||
    {1, A_10,   C_10,   B_10},
 | 
			
		||||
    {1, A_11,   C_11,   B_11},
 | 
			
		||||
    {1, A_12,   C_12,   B_12},
 | 
			
		||||
    {1, A_14,   C_14,   B_14},
 | 
			
		||||
    {1, A_15,   C_15,   B_15},
 | 
			
		||||
 | 
			
		||||
    {1, D_1,    F_1,    E_1},
 | 
			
		||||
    {1, D_2,    F_2,    E_2},
 | 
			
		||||
    {1, D_3,    F_3,    E_3},
 | 
			
		||||
    {1, D_7,    F_7,    E_7},
 | 
			
		||||
    {1, D_11,   F_11,   E_11},
 | 
			
		||||
    {1, D_12,   F_12,   E_12},
 | 
			
		||||
    {1, D_13,   F_13,   E_13},
 | 
			
		||||
    {1, D_14,   F_14,   E_14},
 | 
			
		||||
    {1, D_15,   F_15,   E_15},
 | 
			
		||||
    {1, D_16,   F_16,   E_16}
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
led_config_t g_led_config = {
 | 
			
		||||
	{
 | 
			
		||||
		{   0,     NO_LED,  1,      2,      3,      4,     5,      6,      7,      8,      9,     10,     11,      12,     14   },
 | 
			
		||||
		{  15,     16,     17,     18,     19,     20,    21,     22,     23,     24,     25,     26,     27,      28,     29   },
 | 
			
		||||
		{  30,     31,     32,     33,     34,     35,    36,     37,     38,     39,     40,     41,     42,      43,     44   },
 | 
			
		||||
		{  45,     46,     47,     48,     49,     50,    51,     52,     53,     54,     55,     56,     71,      57,     58   },
 | 
			
		||||
		{  59,     NO_LED, 60,     61,     62,     63,    64,     65,     66,     67,     68,     69,     80,      70,     13   },
 | 
			
		||||
		{  72,     73,     74,     NO_LED, NO_LED, NO_LED,75,     NO_LED, NO_LED, NO_LED, 76,     77,     78,      79,     81   }
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		{0,0},           {30, 0}, {45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {195, 0}, {210, 0}, {224, 0},
 | 
			
		||||
	    {0,13}, {15,13}, {30,13}, {45,13}, {60,13}, {75,13}, {90,13}, {105,13}, {120,13}, {135,13}, {150,13}, {165,13}, {180,13}, {195,13},           {224,13},
 | 
			
		||||
	    {0,26}, {15,26}, {30,26}, {45,26}, {60,26}, {75,26}, {90,26}, {105,26}, {120,26}, {135,26}, {150,26}, {165,26}, {180,26}, {195,26},           {224,26},
 | 
			
		||||
	    {0,39}, {15,39}, {30,39}, {45,39}, {60,39}, {75,39}, {90,39}, {105,39}, {120,39}, {135,39}, {150,39}, {165,39},           {195,39},           {224,39},
 | 
			
		||||
	    {0,52},          {30,52}, {45,52}, {60,52}, {75,52}, {90,52}, {105,52}, {120,52}, {135,52}, {150,52}, {165,52},           {195,52}, {210,52},
 | 
			
		||||
	    {0,64}, {15,64}, {30,64},                            {90,64},                               {150,64}, {165,64}, {180,64}, {195,64}, {210,64}, {224,64},
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		4,			4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,
 | 
			
		||||
		4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,		  4,
 | 
			
		||||
		4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,		  4,
 | 
			
		||||
		4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,		  4,		  4,
 | 
			
		||||
		4,			4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,		  4,	4,
 | 
			
		||||
		4,	  4,	4,						4,						4,	  4,	4,	  4,	4,	  4
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,9 @@
 | 
			
		||||
 | 
			
		||||
#include "quantum.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#if   defined(KEYBOARD_keychron_q1_rev_0100)
 | 
			
		||||
#    include "rev_0100.h"
 | 
			
		||||
#elif defined(KEYBOARD_keychron_q1_rev_0102)
 | 
			
		||||
#    include "rev_0102.h"
 | 
			
		||||
#endif
 | 
			
		||||
@@ -19,8 +19,13 @@
 | 
			
		||||
 | 
			
		||||
/* USB Device descriptor parameter */
 | 
			
		||||
#define PRODUCT_ID      0x0100
 | 
			
		||||
#define DEVICE_VER      0x0001
 | 
			
		||||
#define DEVICE_VER      0x0100
 | 
			
		||||
 | 
			
		||||
/* key matrix pins */
 | 
			
		||||
#define MATRIX_ROW_PINS { D3, D2, B3, B2, B1, B0 }
 | 
			
		||||
#define MATRIX_COL_PINS { D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, F1, F0 }
 | 
			
		||||
 | 
			
		||||
/* RGB Matrix Configuration */
 | 
			
		||||
#define DRIVER_1_LED_TOTAL 59
 | 
			
		||||
#define DRIVER_2_LED_TOTAL 23
 | 
			
		||||
#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
{
 | 
			
		||||
    "keyboard_name": "Keychron Q1", 
 | 
			
		||||
    "url": "https://github.com/Keychron", 
 | 
			
		||||
    "maintainer": "lokher", 
 | 
			
		||||
    "maintainer": "lalalademaxiya1", 
 | 
			
		||||
    "width": 16.25, 
 | 
			
		||||
    "height": 6.25, 
 | 
			
		||||
    "layouts": {
 | 
			
		||||
 
 | 
			
		||||
@@ -24,11 +24,9 @@ enum layers{
 | 
			
		||||
  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_82( 
 | 
			
		||||
 
 | 
			
		||||
@@ -24,11 +24,9 @@ enum layers{
 | 
			
		||||
  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_82( 
 | 
			
		||||
 
 | 
			
		||||
@@ -1,21 +1 @@
 | 
			
		||||
# Keychron Q1
 | 
			
		||||
 | 
			
		||||

 | 
			
		||||
 | 
			
		||||
A customizable 75% keyboard.
 | 
			
		||||
 | 
			
		||||
* Keyboard Maintainer: [Keychron](https://github.com/keychron)
 | 
			
		||||
* Hardware Supported: Keychron Q1, Atmega32u4
 | 
			
		||||
* Hardware Availability: [Keychron](https://www.keychron.com)
 | 
			
		||||
 | 
			
		||||
Make example for this keyboard (after setting up your build environment):
 | 
			
		||||
 | 
			
		||||
    make keychron/q1/rev_0100:default
 | 
			
		||||
 | 
			
		||||
Flashing example for this keyboard:
 | 
			
		||||
 | 
			
		||||
    make keychron/q1/rev_0100:default:flash
 | 
			
		||||
 | 
			
		||||
**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard.
 | 
			
		||||
 | 
			
		||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
 | 
			
		||||
# The ANSI variant of the Keychron Q1
 | 
			
		||||
							
								
								
									
										143
									
								
								keyboards/keychron/q1/rev_0100/rev_0100.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										143
									
								
								keyboards/keychron/q1/rev_0100/rev_0100.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,143 @@
 | 
			
		||||
/* Copyright 2021 @ 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"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
 | 
			
		||||
/* Refer to IS31 manual for these locations
 | 
			
		||||
 *   driver
 | 
			
		||||
 *   |  R location
 | 
			
		||||
 *   |  |       G location
 | 
			
		||||
 *   |  |       |       B location
 | 
			
		||||
 *   |  |       |       | */
 | 
			
		||||
    {0, C_1,    A_1,    B_1},
 | 
			
		||||
    {0, C_3,    A_3,    B_3},
 | 
			
		||||
    {0, C_4,    A_4,    B_4},
 | 
			
		||||
    {0, C_5,    A_5,    B_5},
 | 
			
		||||
    {0, C_6,    A_6,    B_6},
 | 
			
		||||
    {0, C_7,    A_7,    B_7},
 | 
			
		||||
    {0, C_8,    A_8,    B_8},
 | 
			
		||||
    {0, C_9,    A_9,    B_9},
 | 
			
		||||
    {0, C_10,   A_10,   B_10},
 | 
			
		||||
    {0, C_11,   A_11,   B_11},
 | 
			
		||||
    {0, C_12,   A_12,   B_12},
 | 
			
		||||
    {0, C_13,   A_13,   B_13},
 | 
			
		||||
    {0, C_14,   A_14,   B_14},
 | 
			
		||||
    {0, C_15,   A_15,   B_15},
 | 
			
		||||
    {0, C_16,   A_16,   B_16},
 | 
			
		||||
 | 
			
		||||
    {0, F_1,    D_1,    E_1},
 | 
			
		||||
    {0, F_2,    D_2,    E_2},
 | 
			
		||||
    {0, F_3,    D_3,    E_3},
 | 
			
		||||
    {0, F_4,    D_4,    E_4},
 | 
			
		||||
    {0, F_5,    D_5,    E_5},
 | 
			
		||||
    {0, F_6,    D_6,    E_6},
 | 
			
		||||
    {0, F_7,    D_7,    E_7},
 | 
			
		||||
    {0, F_8,    D_8,    E_8},
 | 
			
		||||
    {0, F_9,    D_9,    E_9},
 | 
			
		||||
    {0, F_10,   D_10,   E_10},
 | 
			
		||||
    {0, F_11,   D_11,   E_11},
 | 
			
		||||
    {0, F_12,   D_12,   E_12},
 | 
			
		||||
    {0, F_13,   D_13,   E_13},
 | 
			
		||||
    {0, F_14,   D_14,   E_14},
 | 
			
		||||
    {0, F_16,   D_16,   E_16},
 | 
			
		||||
 | 
			
		||||
    {0, I_1,    G_1,    H_1},
 | 
			
		||||
    {0, I_2,    G_2,    H_2},
 | 
			
		||||
    {0, I_3,    G_3,    H_3},
 | 
			
		||||
    {0, I_4,    G_4,    H_4},
 | 
			
		||||
    {0, I_5,    G_5,    H_5},
 | 
			
		||||
    {0, I_6,    G_6,    H_6},
 | 
			
		||||
    {0, I_7,    G_7,    H_7},
 | 
			
		||||
    {0, I_8,    G_8,    H_8},
 | 
			
		||||
    {0, I_9,    G_9,    H_9},
 | 
			
		||||
    {0, I_10,   G_10,   H_10},
 | 
			
		||||
    {0, I_11,   G_11,   H_11},
 | 
			
		||||
    {0, I_12,   G_12,   H_12},
 | 
			
		||||
    {0, I_13,   G_13,   H_13},
 | 
			
		||||
    {0, I_14,   G_14,   H_14},
 | 
			
		||||
    {0, I_16,   G_16,   H_16},
 | 
			
		||||
 | 
			
		||||
    {0, L_1,    J_1,    K_1},
 | 
			
		||||
    {0, L_2,    J_2,    K_2},
 | 
			
		||||
    {0, L_3,    J_3,    K_3},
 | 
			
		||||
    {0, L_4,    J_4,    K_4},
 | 
			
		||||
    {0, L_5,    J_5,    K_5},
 | 
			
		||||
    {0, L_6,    J_6,    K_6},
 | 
			
		||||
    {0, L_7,    J_7,    K_7},
 | 
			
		||||
    {0, L_8,    J_8,    K_8},
 | 
			
		||||
    {0, L_9,    J_9,    K_9},
 | 
			
		||||
    {0, L_10,   J_10,   K_10},
 | 
			
		||||
    {0, L_11,   J_11,   K_11},
 | 
			
		||||
    {0, L_12,   J_12,   K_12},
 | 
			
		||||
    {0, L_14,   J_14,   K_14},
 | 
			
		||||
    {0, L_16,   J_16,   K_16},
 | 
			
		||||
 | 
			
		||||
    {1, C_1,    A_1,    B_1},
 | 
			
		||||
    {1, C_3,    A_3,    B_3},
 | 
			
		||||
    {1, C_4,    A_4,    B_4},
 | 
			
		||||
    {1, C_5,    A_5,    B_5},
 | 
			
		||||
    {1, C_6,    A_6,    B_6},
 | 
			
		||||
    {1, C_7,    A_7,    B_7},
 | 
			
		||||
    {1, C_8,    A_8,    B_8},
 | 
			
		||||
    {1, C_9,    A_9,    B_9},
 | 
			
		||||
    {1, C_10,   A_10,   B_10},
 | 
			
		||||
    {1, C_11,   A_11,   B_11},
 | 
			
		||||
    {1, C_12,   A_12,   B_12},
 | 
			
		||||
    {1, C_14,   A_14,   B_14},
 | 
			
		||||
    {1, C_15,   A_15,   B_15},
 | 
			
		||||
 | 
			
		||||
    {1, F_1,    D_1,    E_1},
 | 
			
		||||
    {1, F_2,    D_2,    E_2},
 | 
			
		||||
    {1, F_3,    D_3,    E_3},
 | 
			
		||||
    {1, F_7,    D_7,    E_7},
 | 
			
		||||
    {1, F_11,   D_11,   E_11},
 | 
			
		||||
    {1, F_12,   D_12,   E_12},
 | 
			
		||||
    {1, F_13,   D_13,   E_13},
 | 
			
		||||
    {1, F_14,   D_14,   E_14},
 | 
			
		||||
    {1, F_15,   D_15,   E_15},
 | 
			
		||||
    {1, F_16,   D_16,   E_16}
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
led_config_t g_led_config = {
 | 
			
		||||
	{
 | 
			
		||||
		{   0,     NO_LED,  1,      2,      3,      4,      5,      6,      7,      8,      9,     10,     11,      12,     14   },
 | 
			
		||||
		{  15,     16,     17,     18,     19,     20,     21,     22,     23,     24,     25,     26,     27,      28,     29   },
 | 
			
		||||
		{  30,     31,     32,     33,     34,     35,     36,     37,     38,     39,     40,     41,     42,      43,     44   },
 | 
			
		||||
		{  45,     46,     47,     48,     49,     50,     51,     52,     53,     54,     55,     56,     71,      57,     58   },
 | 
			
		||||
		{  59,     NO_LED, 60,     61,     62,     63,     64,     65,     66,     67,     68,     69,     80,      70,     13   },
 | 
			
		||||
		{  72,     73,     74,     NO_LED, NO_LED, NO_LED, 75,     NO_LED, NO_LED, NO_LED, 76,     77,     78,      79,     81   }
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		{0,0},           {30, 0}, {45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {195, 0}, {210, 0}, {224, 0},
 | 
			
		||||
	    {0,13}, {15,13}, {30,13}, {45,13}, {60,13}, {75,13}, {90,13}, {105,13}, {120,13}, {135,13}, {150,13}, {165,13}, {180,13}, {195,13},           {224,13},
 | 
			
		||||
	    {0,26}, {15,26}, {30,26}, {45,26}, {60,26}, {75,26}, {90,26}, {105,26}, {120,26}, {135,26}, {150,26}, {165,26}, {180,26}, {195,26},           {224,26},
 | 
			
		||||
	    {0,39}, {15,39}, {30,39}, {45,39}, {60,39}, {75,39}, {90,39}, {105,39}, {120,39}, {135,39}, {150,39}, {165,39},           {195,39},           {224,39},
 | 
			
		||||
	    {0,52},          {30,52}, {45,52}, {60,52}, {75,52}, {90,52}, {105,52}, {120,52}, {135,52}, {150,52}, {165,52},           {195,52}, {210,52},
 | 
			
		||||
	    {0,64}, {15,64}, {30,64},                            {90,64},                               {150,64}, {165,64}, {180,64}, {195,64}, {210,64}, {224,64},
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		4,			4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,
 | 
			
		||||
		4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,		  4,
 | 
			
		||||
		4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,		  4,
 | 
			
		||||
		4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,		  4,		  4,
 | 
			
		||||
		4,			4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,		  4,	4,
 | 
			
		||||
		4,	  4,	4,						4,						4,	  4,	4,	  4,	4,	  4
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										31
									
								
								keyboards/keychron/q1/rev_0102/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								keyboards/keychron/q1/rev_0102/config.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
/* Copyright 2021 @ 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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* USB Device descriptor parameter */
 | 
			
		||||
#define PRODUCT_ID      0x0102
 | 
			
		||||
#define DEVICE_VER      0x0100
 | 
			
		||||
 | 
			
		||||
/* key matrix pins */
 | 
			
		||||
#define MATRIX_ROW_PINS { D3, D2, B3, B2, B1, B0 }
 | 
			
		||||
#define MATRIX_COL_PINS { D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, F1, F0 }
 | 
			
		||||
 | 
			
		||||
/* RGB Matrix Configuration */
 | 
			
		||||
#define DRIVER_1_LED_TOTAL 59
 | 
			
		||||
#define DRIVER_2_LED_TOTAL 24
 | 
			
		||||
#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
 | 
			
		||||
							
								
								
									
										101
									
								
								keyboards/keychron/q1/rev_0102/info.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										101
									
								
								keyboards/keychron/q1/rev_0102/info.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,101 @@
 | 
			
		||||
{
 | 
			
		||||
    "keyboard_name": "Keychron Q1", 
 | 
			
		||||
    "url": "https://github.com/Keychron", 
 | 
			
		||||
    "maintainer": "lalalademaxiya1", 
 | 
			
		||||
    "width": 16.25, 
 | 
			
		||||
    "height": 6.5, 
 | 
			
		||||
    "layouts": {
 | 
			
		||||
        "LAYOUT_iso_83": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                {"label":"Esc", "x":0, "y":0},
 | 
			
		||||
                {"label":"F1", "x":1.25, "y":0},
 | 
			
		||||
                {"label":"F2", "x":2.25, "y":0},
 | 
			
		||||
                {"label":"F3", "x":3.25, "y":0},
 | 
			
		||||
                {"label":"F4", "x":4.25, "y":0},
 | 
			
		||||
                {"label":"F5", "x":5.5, "y":0},
 | 
			
		||||
                {"label":"F6", "x":6.5, "y":0},
 | 
			
		||||
                {"label":"F7", "x":7.5, "y":0},
 | 
			
		||||
                {"label":"F8", "x":8.5, "y":0},
 | 
			
		||||
                {"label":"F9", "x":9.75, "y":0},
 | 
			
		||||
                {"label":"F10", "x":10.75, "y":0},
 | 
			
		||||
                {"label":"F11", "x":11.75, "y":0},
 | 
			
		||||
                {"label":"F12", "x":12.75, "y":0},
 | 
			
		||||
                {"label":"Delete", "x":14, "y":0},
 | 
			
		||||
                {"label":"Insert", "x":15.25, "y":0},
 | 
			
		||||
 | 
			
		||||
                {"label":"~", "x":0, "y":1.25},
 | 
			
		||||
                {"label":"!", "x":1, "y":1.25},
 | 
			
		||||
                {"label":"@", "x":2, "y":1.25},
 | 
			
		||||
                {"label":"#", "x":3, "y":1.25},
 | 
			
		||||
                {"label":"$", "x":4, "y":1.25},
 | 
			
		||||
                {"label":"%", "x":5, "y":1.25},
 | 
			
		||||
                {"label":"^", "x":6, "y":1.25},
 | 
			
		||||
                {"label":"&", "x":7, "y":1.25},
 | 
			
		||||
                {"label":"*", "x":8, "y":1.25},
 | 
			
		||||
                {"label":"(", "x":9, "y":1.25},
 | 
			
		||||
                {"label":")", "x":10, "y":1.25},
 | 
			
		||||
                {"label":"_", "x":11, "y":1.25},
 | 
			
		||||
                {"label":"+", "x":12, "y":1.25},
 | 
			
		||||
                {"label":"Backspace", "x":13, "y":1.25, "w":2},
 | 
			
		||||
                {"label":"Page Up", "x":15.25, "y":1.25},
 | 
			
		||||
 | 
			
		||||
                {"label":"Tab", "x":0, "y":2.25, "w":1.5},
 | 
			
		||||
                {"label":"Q", "x":1.5, "y":2.25},
 | 
			
		||||
                {"label":"W", "x":2.5, "y":2.25},
 | 
			
		||||
                {"label":"E", "x":3.5, "y":2.25},
 | 
			
		||||
                {"label":"R", "x":4.5, "y":2.25},
 | 
			
		||||
                {"label":"T", "x":5.5, "y":2.25},
 | 
			
		||||
                {"label":"Y", "x":6.5, "y":2.25},
 | 
			
		||||
                {"label":"U", "x":7.5, "y":2.25},
 | 
			
		||||
                {"label":"I", "x":8.5, "y":2.25},
 | 
			
		||||
                {"label":"O", "x":9.5, "y":2.25},
 | 
			
		||||
                {"label":"P", "x":10.5, "y":2.25},
 | 
			
		||||
                {"label":"{", "x":11.5, "y":2.25},
 | 
			
		||||
                {"label":"}", "x":12.5, "y":2.25},
 | 
			
		||||
                {"label":"Page Down", "x":15.25, "y":2.25},
 | 
			
		||||
 | 
			
		||||
                {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75},
 | 
			
		||||
                {"label":"A", "x":1.75, "y":3.25},
 | 
			
		||||
                {"label":"S", "x":2.75, "y":3.25},
 | 
			
		||||
                {"label":"D", "x":3.75, "y":3.25},
 | 
			
		||||
                {"label":"F", "x":4.75, "y":3.25},
 | 
			
		||||
                {"label":"G", "x":5.75, "y":3.25},
 | 
			
		||||
                {"label":"H", "x":6.75, "y":3.25},
 | 
			
		||||
                {"label":"J", "x":7.75, "y":3.25},
 | 
			
		||||
                {"label":"K", "x":8.75, "y":3.25},
 | 
			
		||||
                {"label":"L", "x":9.75, "y":3.25},
 | 
			
		||||
                {"label":":", "x":10.75, "y":3.25},
 | 
			
		||||
                {"label":"\"", "x":11.75, "y":3.25},
 | 
			
		||||
                {"label":"#~", "x":12.75, "y":3.25},
 | 
			
		||||
                {"label":"Enter", "x":13.75, "y":2.25, "w":1.25, "h":2},
 | 
			
		||||
                {"label":"Home", "x":15.25, "y":3.25},
 | 
			
		||||
 | 
			
		||||
                {"label":"Shift", "x":0, "y":4.25, "w":1.25},
 | 
			
		||||
                {"label":"\\|", "x":1.25, "y":4.25},
 | 
			
		||||
                {"label":"Z", "x":2.25, "y":4.25},
 | 
			
		||||
                {"label":"X", "x":3.25, "y":4.25},
 | 
			
		||||
                {"label":"C", "x":4.25, "y":4.25},
 | 
			
		||||
                {"label":"V", "x":5.25, "y":4.25},
 | 
			
		||||
                {"label":"B", "x":6.25, "y":4.25},
 | 
			
		||||
                {"label":"N", "x":7.25, "y":4.25},
 | 
			
		||||
                {"label":"M", "x":8.25, "y":4.25},
 | 
			
		||||
                {"label":"<", "x":9.25, "y":4.25},
 | 
			
		||||
                {"label":">", "x":10.25, "y":4.25},
 | 
			
		||||
                {"label":"?", "x":11.25, "y":4.25},
 | 
			
		||||
                {"label":"Shift", "x":12.25, "y":4.25, "w":1.75},
 | 
			
		||||
                {"label":"\u2191", "x":14.25, "y":4.5},
 | 
			
		||||
 | 
			
		||||
                {"label":"Ctrl", "x":0, "y":5.25, "w":1.25},
 | 
			
		||||
                {"label":"Win", "x":1.25, "y":5.25, "w":1.25},
 | 
			
		||||
                {"label":"Alt", "x":2.5, "y":5.25, "w":1.25},
 | 
			
		||||
                {"label":"Space", "x":3.75, "y":5.25, "w":6.25},
 | 
			
		||||
                {"label":"Alt", "x":10, "y":5.25},
 | 
			
		||||
                {"label":"Fn", "x":11, "y":5.25},
 | 
			
		||||
                {"label":"Ctrl", "x":12, "y":5.25},
 | 
			
		||||
                {"label":"\u2190", "x":13.25, "y":5.5},
 | 
			
		||||
                {"label":"\u2193", "x":14.25, "y":5.5},
 | 
			
		||||
                {"label":"\u2192", "x":15.25, "y":5.5}
 | 
			
		||||
            ]
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										64
									
								
								keyboards/keychron/q1/rev_0102/keymaps/default/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								keyboards/keychron/q1/rev_0102/keymaps/default/keymap.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
			
		||||
/* Copyright 2021 @ 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_iso_83( 
 | 
			
		||||
     KC_ESC,             KC_BRID,  KC_BRIU,  KC_F3,    KC_F4,    RGB_VAD,  RGB_VAI,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_MUTE,  KC_VOLD,  KC_VOLU,  KC_DEL,   KC_INS,
 | 
			
		||||
     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_LALT,  KC_LGUI,                                KC_SPC,                                 KC_RGUI, MO(MAC_FN),KC_RCTL,  KC_LEFT,  KC_DOWN,  KC_RGHT),
 | 
			
		||||
 | 
			
		||||
[MAC_FN] = LAYOUT_iso_83( 
 | 
			
		||||
     KC_TRNS,            KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,    KC_F6,    KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,   KC_F12,   KC_TRNS,  KC_TRNS,
 | 
			
		||||
     KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,            KC_TRNS,
 | 
			
		||||
     RGB_TOG,  RGB_MOD,  RGB_VAI,  RGB_HUI,  RGB_SAI,  RGB_SPI,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,                      KC_TRNS,
 | 
			
		||||
     KC_TRNS,  RGB_RMOD, RGB_VAD,  RGB_HUD,  RGB_SAD,  RGB_SPD,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,            KC_TRNS,
 | 
			
		||||
     KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,            KC_TRNS,  KC_TRNS, 
 | 
			
		||||
     KC_TRNS,  KC_TRNS,  KC_TRNS,                                KC_TRNS,                                KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS),
 | 
			
		||||
 | 
			
		||||
[WIN_BASE] = LAYOUT_iso_83( 
 | 
			
		||||
     KC_ESC,             KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,    KC_F6,    KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,   KC_F12,   KC_DEL,   KC_INS,
 | 
			
		||||
     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_LGUI,  KC_LALT,                                KC_SPC,                                 KC_RALT, MO(WIN_FN),KC_RCTL,  KC_LEFT,  KC_DOWN,  KC_RGHT),
 | 
			
		||||
 | 
			
		||||
[WIN_FN] = LAYOUT_iso_83( 
 | 
			
		||||
     KC_TRNS,            KC_BRID,  KC_BRIU,  KC_TASK,  KC_FLXP,  RGB_VAD,  RGB_VAI,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_MUTE,  KC_VOLD,  KC_VOLU,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
     KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,            KC_TRNS,
 | 
			
		||||
     RGB_TOG,  RGB_MOD,  RGB_VAI,  RGB_HUI,  RGB_SAI,  RGB_SPI,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,                      KC_TRNS,
 | 
			
		||||
     KC_TRNS,  RGB_RMOD, RGB_VAD,  RGB_HUD,  RGB_SAD,  RGB_SPD,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,            KC_TRNS,
 | 
			
		||||
     KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,            KC_TRNS,  KC_TRNS, 
 | 
			
		||||
     KC_TRNS,  KC_TRNS,  KC_TRNS,                                KC_TRNS,                                KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS)
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										64
									
								
								keyboards/keychron/q1/rev_0102/keymaps/via/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								keyboards/keychron/q1/rev_0102/keymaps/via/keymap.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
			
		||||
/* Copyright 2021 @ 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_iso_83( 
 | 
			
		||||
     KC_ESC,             KC_BRID,  KC_BRIU,  KC_F3,    KC_F4,    RGB_VAD,  RGB_VAI,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_MUTE,  KC_VOLD,  KC_VOLU,  KC_DEL,   KC_INS,
 | 
			
		||||
     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_LALT,  KC_LGUI,                                KC_SPC,                                 KC_RGUI, MO(MAC_FN),KC_RCTL,  KC_LEFT,  KC_DOWN,  KC_RGHT),
 | 
			
		||||
 | 
			
		||||
[MAC_FN] = LAYOUT_iso_83( 
 | 
			
		||||
     KC_TRNS,            KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,    KC_F6,    KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,   KC_F12,   KC_TRNS,  KC_TRNS,
 | 
			
		||||
     KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,            KC_TRNS,
 | 
			
		||||
     RGB_TOG,  RGB_MOD,  RGB_VAI,  RGB_HUI,  RGB_SAI,  RGB_SPI,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,                      KC_TRNS,
 | 
			
		||||
     KC_TRNS,  RGB_RMOD, RGB_VAD,  RGB_HUD,  RGB_SAD,  RGB_SPD,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,            KC_TRNS,
 | 
			
		||||
     KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,            KC_TRNS,  KC_TRNS, 
 | 
			
		||||
     KC_TRNS,  KC_TRNS,  KC_TRNS,                                KC_TRNS,                                KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS),
 | 
			
		||||
 | 
			
		||||
[WIN_BASE] = LAYOUT_iso_83( 
 | 
			
		||||
     KC_ESC,             KC_F1,    KC_F2,    KC_F3,    KC_F4,    KC_F5,    KC_F6,    KC_F7,    KC_F8,    KC_F9,    KC_F10,   KC_F11,   KC_F12,   KC_DEL,   KC_INS,
 | 
			
		||||
     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_LGUI,  KC_LALT,                                KC_SPC,                                 KC_RALT, MO(WIN_FN),KC_RCTL,  KC_LEFT,  KC_DOWN,  KC_RGHT),
 | 
			
		||||
 | 
			
		||||
[WIN_FN] = LAYOUT_iso_83( 
 | 
			
		||||
     KC_TRNS,            KC_BRID,  KC_BRIU,  KC_TASK,  KC_FLXP,  RGB_VAD,  RGB_VAI,  KC_MPRV,  KC_MPLY,  KC_MNXT,  KC_MUTE,  KC_VOLD,  KC_VOLU,  KC_TRNS,  KC_TRNS,
 | 
			
		||||
     KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,            KC_TRNS,
 | 
			
		||||
     RGB_TOG,  RGB_MOD,  RGB_VAI,  RGB_HUI,  RGB_SAI,  RGB_SPI,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,                      KC_TRNS,
 | 
			
		||||
     KC_TRNS,  RGB_RMOD, RGB_VAD,  RGB_HUD,  RGB_SAD,  RGB_SPD,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,            KC_TRNS,
 | 
			
		||||
     KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,            KC_TRNS,  KC_TRNS, 
 | 
			
		||||
     KC_TRNS,  KC_TRNS,  KC_TRNS,                                KC_TRNS,                                KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS,  KC_TRNS)
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										2
									
								
								keyboards/keychron/q1/rev_0102/keymaps/via/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								keyboards/keychron/q1/rev_0102/keymaps/via/rules.mk
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
VIA_ENABLE = yes
 | 
			
		||||
MOUSEKEY_ENABLE = no
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/keychron/q1/rev_0102/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/keychron/q1/rev_0102/readme.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
# The ISO variant of the Keychron Q1
 | 
			
		||||
							
								
								
									
										143
									
								
								keyboards/keychron/q1/rev_0102/rev_0102.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										143
									
								
								keyboards/keychron/q1/rev_0102/rev_0102.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,143 @@
 | 
			
		||||
/* Copyright 2021 @ 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"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
 | 
			
		||||
/* Refer to IS31 manual for these locations
 | 
			
		||||
 *   driver
 | 
			
		||||
 *   |  R location
 | 
			
		||||
 *   |  |       G location
 | 
			
		||||
 *   |  |       |       B location
 | 
			
		||||
 *   |  |       |       | */
 | 
			
		||||
    {0, C_1,    A_1,    B_1},
 | 
			
		||||
    {0, C_3,    A_3,    B_3},
 | 
			
		||||
    {0, C_4,    A_4,    B_4},
 | 
			
		||||
    {0, C_5,    A_5,    B_5},
 | 
			
		||||
    {0, C_6,    A_6,    B_6},
 | 
			
		||||
    {0, C_7,    A_7,    B_7},
 | 
			
		||||
    {0, C_8,    A_8,    B_8},
 | 
			
		||||
    {0, C_9,    A_9,    B_9},
 | 
			
		||||
    {0, C_10,   A_10,   B_10},
 | 
			
		||||
    {0, C_11,   A_11,   B_11},
 | 
			
		||||
    {0, C_12,   A_12,   B_12},
 | 
			
		||||
    {0, C_13,   A_13,   B_13},
 | 
			
		||||
    {0, C_14,   A_14,   B_14},
 | 
			
		||||
    {0, C_15,   A_15,   B_15},
 | 
			
		||||
    {0, C_16,   A_16,   B_16},
 | 
			
		||||
 | 
			
		||||
    {0, F_1,    D_1,    E_1},
 | 
			
		||||
    {0, F_2,    D_2,    E_2},
 | 
			
		||||
    {0, F_3,    D_3,    E_3},
 | 
			
		||||
    {0, F_4,    D_4,    E_4},
 | 
			
		||||
    {0, F_5,    D_5,    E_5},
 | 
			
		||||
    {0, F_6,    D_6,    E_6},
 | 
			
		||||
    {0, F_7,    D_7,    E_7},
 | 
			
		||||
    {0, F_8,    D_8,    E_8},
 | 
			
		||||
    {0, F_9,    D_9,    E_9},
 | 
			
		||||
    {0, F_10,   D_10,   E_10},
 | 
			
		||||
    {0, F_11,   D_11,   E_11},
 | 
			
		||||
    {0, F_12,   D_12,   E_12},
 | 
			
		||||
    {0, F_13,   D_13,   E_13},
 | 
			
		||||
    {0, F_14,   D_14,   E_14},
 | 
			
		||||
    {0, F_16,   D_16,   E_16},
 | 
			
		||||
 | 
			
		||||
    {0, I_1,    G_1,    H_1},
 | 
			
		||||
    {0, I_2,    G_2,    H_2},
 | 
			
		||||
    {0, I_3,    G_3,    H_3},
 | 
			
		||||
    {0, I_4,    G_4,    H_4},
 | 
			
		||||
    {0, I_5,    G_5,    H_5},
 | 
			
		||||
    {0, I_6,    G_6,    H_6},
 | 
			
		||||
    {0, I_7,    G_7,    H_7},
 | 
			
		||||
    {0, I_8,    G_8,    H_8},
 | 
			
		||||
    {0, I_9,    G_9,    H_9},
 | 
			
		||||
    {0, I_10,   G_10,   H_10},
 | 
			
		||||
    {0, I_11,   G_11,   H_11},
 | 
			
		||||
    {0, I_12,   G_12,   H_12},
 | 
			
		||||
    {0, I_13,   G_13,   H_13},
 | 
			
		||||
    {0, I_16,   G_16,   H_16},
 | 
			
		||||
 | 
			
		||||
    {0, L_1,    J_1,    K_1},
 | 
			
		||||
    {0, L_2,    J_2,    K_2},
 | 
			
		||||
    {0, L_3,    J_3,    K_3},
 | 
			
		||||
    {0, L_4,    J_4,    K_4},
 | 
			
		||||
    {0, L_5,    J_5,    K_5},
 | 
			
		||||
    {0, L_6,    J_6,    K_6},
 | 
			
		||||
    {0, L_7,    J_7,    K_7},
 | 
			
		||||
    {0, L_8,    J_8,    K_8},
 | 
			
		||||
    {0, L_9,    J_9,    K_9},
 | 
			
		||||
    {0, L_10,   J_10,   K_10},
 | 
			
		||||
    {0, L_11,   J_11,   K_11},
 | 
			
		||||
    {0, L_12,   J_12,   K_12},
 | 
			
		||||
	{0, L_14,   J_14,   K_14},
 | 
			
		||||
	{0, I_14,   G_14,   H_14},
 | 
			
		||||
    {0, L_16,   J_16,   K_16},
 | 
			
		||||
 | 
			
		||||
    {1, C_1,    A_1,    B_1},
 | 
			
		||||
    {1, C_2,    A_2,    B_2},
 | 
			
		||||
    {1, C_3,    A_3,    B_3},
 | 
			
		||||
    {1, C_4,    A_4,    B_4},
 | 
			
		||||
    {1, C_5,    A_5,    B_5},
 | 
			
		||||
    {1, C_6,    A_6,    B_6},
 | 
			
		||||
    {1, C_7,    A_7,    B_7},
 | 
			
		||||
    {1, C_8,    A_8,    B_8},
 | 
			
		||||
    {1, C_9,    A_9,    B_9},
 | 
			
		||||
    {1, C_10,   A_10,   B_10},
 | 
			
		||||
    {1, C_11,   A_11,   B_11},
 | 
			
		||||
    {1, C_12,   A_12,   B_12},
 | 
			
		||||
    {1, C_14,   A_14,   B_14},
 | 
			
		||||
    {1, C_15,   A_15,   B_15},
 | 
			
		||||
 | 
			
		||||
    {1, F_1,    D_1,    E_1},
 | 
			
		||||
    {1, F_2,    D_2,    E_2},
 | 
			
		||||
    {1, F_3,    D_3,    E_3},
 | 
			
		||||
    {1, F_7,    D_7,    E_7},
 | 
			
		||||
    {1, F_11,   D_11,   E_11},
 | 
			
		||||
    {1, F_12,   D_12,   E_12},
 | 
			
		||||
    {1, F_13,   D_13,   E_13},
 | 
			
		||||
    {1, F_14,   D_14,   E_14},
 | 
			
		||||
    {1, F_15,   D_15,   E_15},
 | 
			
		||||
    {1, F_16,   D_16,   E_16}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
led_config_t g_led_config = {
 | 
			
		||||
	{
 | 
			
		||||
		{   0, NO_LED,      1,      2,      3,      4,      5,      6,      7,      8,      9,     10,     11,      12,     14   },
 | 
			
		||||
		{  15,     16,     17,     18,     19,     20,     21,     22,     23,     24,     25,     26,     27,      28,     29   },
 | 
			
		||||
		{  30,     31,     32,     33,     34,     35,     36,     37,     38,     39,     40,     41,     42,      57,     43   },
 | 
			
		||||
		{  44,     45,     46,     47,     48,     49,     50,     51,     52,     53,     54,     55,     72,      56,     58   },
 | 
			
		||||
		{  59,     60,     61,     62,     63,     64,     65,     66,     67,     68,     69,     70,     81,      71,     13   },
 | 
			
		||||
		{  73,     74,     75, NO_LED, NO_LED, NO_LED,     76, NO_LED, NO_LED, NO_LED,     77,     78,     79,      80,     82   }
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		{0,0},           {30, 0}, {45, 0}, {60, 0}, {75, 0}, {90, 0}, {105, 0}, {120, 0}, {135, 0}, {150, 0}, {165, 0}, {180, 0}, {195, 0}, {210, 0}, {224, 0},
 | 
			
		||||
	    {0,13}, {15,13}, {30,13}, {45,13}, {60,13}, {75,13}, {90,13}, {105,13}, {120,13}, {135,13}, {150,13}, {165,13}, {180,13}, {195,13},           {224,13},
 | 
			
		||||
	    {0,26}, {15,26}, {30,26}, {45,26}, {60,26}, {75,26}, {90,26}, {105,26}, {120,26}, {135,26}, {150,26}, {165,26}, {180,26},                     {224,26},
 | 
			
		||||
	    {0,39}, {15,39}, {30,39}, {45,39}, {60,39}, {75,39}, {90,39}, {105,39}, {120,39}, {135,39}, {150,39}, {165,39}, {180,39}, {195,26},           {224,39},
 | 
			
		||||
	    {0,52}, {15,52}, {30,52}, {45,52}, {60,52}, {75,52}, {90,52}, {105,52}, {120,52}, {135,52}, {150,52}, {165,52},           {180,52}, {210,52},
 | 
			
		||||
	    {0,64}, {15,64}, {30,64},                            {90,64},                               {150,64}, {165,64}, {180,64}, {195,64}, {210,64}, {224,64},
 | 
			
		||||
	},
 | 
			
		||||
	{
 | 
			
		||||
		4,			4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,
 | 
			
		||||
		4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,		  4,
 | 
			
		||||
		4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	     		  4,
 | 
			
		||||
		4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,		  4,
 | 
			
		||||
		4,	  4,    4,	  4,	4,	  4,	4,	  4,	4,	  4,	4,	  4,		  4,	4,
 | 
			
		||||
		4,	  4,	4,						4,						4,	  4,	4,	  4,	4,	  4
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										37
									
								
								keyboards/keychron/q1/rev_0102/rev_0102.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								keyboards/keychron/q1/rev_0102/rev_0102.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
			
		||||
/* Copyright 2021 @ 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
 | 
			
		||||
 | 
			
		||||
#include "quantum.h"
 | 
			
		||||
 | 
			
		||||
#define xxx KC_NO
 | 
			
		||||
 | 
			
		||||
#define LAYOUT_iso_83( \
 | 
			
		||||
	K00,       K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4E, K0E, \
 | 
			
		||||
	K10, K11,  K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,      K1E, \
 | 
			
		||||
	K20, K21,  K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,           K2E, \
 | 
			
		||||
	K30, K31,  K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K2D,      K3E, \
 | 
			
		||||
	K40, K41,  K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B,      K4D, K3C,      \
 | 
			
		||||
	K50, K51,  K52,                K56,                K5A, K5B, K5C, K5D, K4C, K5E  \
 | 
			
		||||
) { \
 | 
			
		||||
	{ K00, xxx,  K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B,  K0C, K0D, K0E }, \
 | 
			
		||||
	{ K10, K11,  K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B,  K1C, K1D, K1E }, \
 | 
			
		||||
	{ K20, K21,  K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B,  K2C, K2D, K2E }, \
 | 
			
		||||
	{ K30, K31,  K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B,  K3C, K3D, K3E }, \
 | 
			
		||||
	{ K40, K41,  K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B,  K4C, K4D, K4E }, \
 | 
			
		||||
	{ K50, K51,  K52, xxx, xxx, xxx, K56, xxx, xxx, xxx, K5A, K5B,  K5C, K5D, K5E }  \
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										25
									
								
								keyboards/keychron/q1/rev_0102/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								keyboards/keychron/q1/rev_0102/rules.mk
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
# MCU name
 | 
			
		||||
MCU = atmega32u4
 | 
			
		||||
 | 
			
		||||
# Bootloader selection
 | 
			
		||||
BOOTLOADER = atmel-dfu
 | 
			
		||||
 | 
			
		||||
# Build Options
 | 
			
		||||
#   change yes to no to disable
 | 
			
		||||
#
 | 
			
		||||
BOOTMAGIC_ENABLE = yes      # Virtual DIP switch configuration
 | 
			
		||||
MOUSEKEY_ENABLE = no        # Mouse keys
 | 
			
		||||
EXTRAKEY_ENABLE = yes       # Audio control and System control
 | 
			
		||||
CONSOLE_ENABLE = no         # Console for debug
 | 
			
		||||
COMMAND_ENABLE = no         # Commands for debug and configuration
 | 
			
		||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | 
			
		||||
SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 | 
			
		||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | 
			
		||||
NKRO_ENABLE = yes           # USB Nkey Rollover
 | 
			
		||||
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 | 
			
		||||
RGBLIGHT_ENABLE = no        # Enable keyboard RGB underglow
 | 
			
		||||
BLUETOOTH_ENABLE = no       # Enable Bluetooth
 | 
			
		||||
AUDIO_ENABLE = no           # Audio output
 | 
			
		||||
DIP_SWITCH_ENABLE = yes
 | 
			
		||||
RGB_MATRIX_ENABLE = yes
 | 
			
		||||
RGB_MATRIX_DRIVER = IS31FL3733
 | 
			
		||||
@@ -77,14 +77,14 @@
 | 
			
		||||
                {"label": "Home", "x": 16, "y": 3},
 | 
			
		||||
                {"label": "End", "x": 17, "y": 3},
 | 
			
		||||
 | 
			
		||||
                {"label": "OS", "x": 1.75, "y": 4},
 | 
			
		||||
                {"label": "Alt", "x": 2.75, "y": 4},
 | 
			
		||||
                {"label": "Lower", "x": 3.75, "y": 4},
 | 
			
		||||
                {"label": "BS", "x": 4.75, "y": 4, "w": 1.5},
 | 
			
		||||
                {"label": "", "x": 7.75, "y": 4, "w": 1.5},
 | 
			
		||||
                {"label": "Raise", "x": 9.25, "y": 4},
 | 
			
		||||
                {"label": "Alt", "x": 10.25, "y": 4},
 | 
			
		||||
                {"label": "OS", "x": 11.25, "y": 4}
 | 
			
		||||
                {"label": "OS", "x": 3.75, "y": 4},
 | 
			
		||||
                {"label": "Alt", "x": 4.75, "y": 4},
 | 
			
		||||
                {"label": "Lower", "x": 5.75, "y": 4},
 | 
			
		||||
                {"label": "BS", "x": 6.75, "y": 4, "w": 1.5},
 | 
			
		||||
                {"label": "", "x": 9.75, "y": 4, "w": 1.5},
 | 
			
		||||
                {"label": "Raise", "x": 11.25, "y": 4},
 | 
			
		||||
                {"label": "Alt", "x": 12.25, "y": 4},
 | 
			
		||||
                {"label": "OS", "x": 13.25, "y": 4}
 | 
			
		||||
            ]
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
@@ -152,14 +152,14 @@
 | 
			
		||||
                {"label": "Home", "x": 16, "y": 3},
 | 
			
		||||
                {"label": "End", "x": 17, "y": 3},
 | 
			
		||||
 | 
			
		||||
                {"label": "OS", "x": 1.75, "y": 4},
 | 
			
		||||
                {"label": "Alt", "x": 2.75, "y": 4},
 | 
			
		||||
                {"label": "Lower", "x": 3.75, "y": 4},
 | 
			
		||||
                {"label": "BS", "x": 4.75, "y": 4, "w": 1.5},
 | 
			
		||||
                {"label": "", "x": 7.75, "y": 4, "w": 1.5},
 | 
			
		||||
                {"label": "Raise", "x": 9.25, "y": 4},
 | 
			
		||||
                {"label": "Alt", "x": 10.25, "y": 4},
 | 
			
		||||
                {"label": "OS", "x": 11.25, "y": 4}
 | 
			
		||||
                {"label": "OS", "x": 3.75, "y": 4},
 | 
			
		||||
                {"label": "Alt", "x": 4.75, "y": 4},
 | 
			
		||||
                {"label": "Lower", "x": 5.75, "y": 4},
 | 
			
		||||
                {"label": "BS", "x": 6.75, "y": 4, "w": 1.5},
 | 
			
		||||
                {"label": "", "x": 9.75, "y": 4, "w": 1.5},
 | 
			
		||||
                {"label": "Raise", "x": 11.25, "y": 4},
 | 
			
		||||
                {"label": "Alt", "x": 12.25, "y": 4},
 | 
			
		||||
                {"label": "OS", "x": 13.25, "y": 4}
 | 
			
		||||
            ]
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
@@ -227,14 +227,14 @@
 | 
			
		||||
                {"label": "/", "x": 14, "y": 3},
 | 
			
		||||
                {"label": "Enter", "x": 15, "y": 3},
 | 
			
		||||
 | 
			
		||||
                {"label": "OS", "x": 1.75, "y": 4},
 | 
			
		||||
                {"label": "Alt", "x": 2.75, "y": 4},
 | 
			
		||||
                {"label": "Lower", "x": 3.75, "y": 4},
 | 
			
		||||
                {"label": "BS", "x": 4.75, "y": 4, "w": 1.5},
 | 
			
		||||
                {"label": "", "x": 7.75, "y": 4, "w": 1.5},
 | 
			
		||||
                {"label": "Raise", "x": 9.25, "y": 4},
 | 
			
		||||
                {"label": "Alt", "x": 10.25, "y": 4},
 | 
			
		||||
                {"label": "FN", "x": 11.25, "y": 4}
 | 
			
		||||
                {"label": "OS", "x": 3.75, "y": 4},
 | 
			
		||||
                {"label": "Alt", "x": 4.75, "y": 4},
 | 
			
		||||
                {"label": "Lower", "x": 5.75, "y": 4},
 | 
			
		||||
                {"label": "BS", "x": 6.75, "y": 4, "w": 1.5},
 | 
			
		||||
                {"label": "", "x": 9.75, "y": 4, "w": 1.5},
 | 
			
		||||
                {"label": "Raise", "x": 11.25, "y": 4},
 | 
			
		||||
                {"label": "Alt", "x": 12.25, "y": 4},
 | 
			
		||||
                {"label": "FN", "x": 13.25, "y": 4}
 | 
			
		||||
            ]
 | 
			
		||||
        },
 | 
			
		||||
 | 
			
		||||
@@ -294,14 +294,14 @@
 | 
			
		||||
                {"label": "/", "x": 14, "y": 3},
 | 
			
		||||
                {"label": "Enter", "x": 15, "y": 3},
 | 
			
		||||
 | 
			
		||||
                {"label": "OS", "x": 1.75, "y": 4},
 | 
			
		||||
                {"label": "Alt", "x": 2.75, "y": 4},
 | 
			
		||||
                {"label": "Lower", "x": 3.75, "y": 4},
 | 
			
		||||
                {"label": "BS", "x": 4.75, "y": 4, "w": 1.5},
 | 
			
		||||
                {"label": "", "x": 7.75, "y": 4, "w": 1.5},
 | 
			
		||||
                {"label": "Raise", "x": 9.25, "y": 4},
 | 
			
		||||
                {"label": "Alt", "x": 10.25, "y": 4},
 | 
			
		||||
                {"label": "FN", "x": 11.25, "y": 4}
 | 
			
		||||
                {"label": "OS", "x": 3.75, "y": 4},
 | 
			
		||||
                {"label": "Alt", "x": 4.75, "y": 4},
 | 
			
		||||
                {"label": "Lower", "x": 5.75, "y": 4},
 | 
			
		||||
                {"label": "BS", "x": 6.75, "y": 4, "w": 1.5},
 | 
			
		||||
                {"label": "", "x": 9.75, "y": 4, "w": 1.5},
 | 
			
		||||
                {"label": "Raise", "x": 11.25, "y": 4},
 | 
			
		||||
                {"label": "Alt", "x": 12.25, "y": 4},
 | 
			
		||||
                {"label": "FN", "x": 13.25, "y": 4}
 | 
			
		||||
            ]
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -2,25 +2,12 @@
 | 
			
		||||
    "keyboard_name": "rhino",
 | 
			
		||||
    "url": "",
 | 
			
		||||
    "maintainer": "Christian Sandven",
 | 
			
		||||
    "width": 14,
 | 
			
		||||
    "height": 4,
 | 
			
		||||
    "width": 15,
 | 
			
		||||
    "height": 5,
 | 
			
		||||
    "layouts": {
 | 
			
		||||
        "LAYOUT_ortho_2x2u": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                {"x": 0, "y": 0, "w": 1.5},
 | 
			
		||||
                {"x": 1.5, "y": 0},
 | 
			
		||||
                {"x": 2.5, "y": 0},
 | 
			
		||||
                {"x": 3.5, "y": 0},
 | 
			
		||||
                {"x": 4.5, "y": 0},
 | 
			
		||||
                {"x": 5.5, "y": 0},
 | 
			
		||||
                {"x": 6.5, "y": 0},
 | 
			
		||||
                {"x": 7.5, "y": 0},
 | 
			
		||||
                {"x": 8.5, "y": 0},
 | 
			
		||||
                {"x": 9.5, "y": 0},
 | 
			
		||||
                {"x": 10.5, "y": 0},
 | 
			
		||||
                {"x": 11.5, "y": 0},
 | 
			
		||||
                {"x": 12.5, "y": 0},
 | 
			
		||||
                {"x": 13.5, "y": 0, "w": 1.5},
 | 
			
		||||
 | 
			
		||||
                {"x": 0, "y": 1, "w": 1.5},
 | 
			
		||||
                {"x": 1.5, "y": 1},
 | 
			
		||||
@@ -52,6 +39,21 @@
 | 
			
		||||
                {"x": 12.5, "y": 2},
 | 
			
		||||
                {"x": 13.5, "y": 2, "w": 1.5},
 | 
			
		||||
 | 
			
		||||
                {"x": 0, "y": 3, "w": 1.5},
 | 
			
		||||
                {"x": 1.5, "y": 3},
 | 
			
		||||
                {"x": 2.5, "y": 3},
 | 
			
		||||
                {"x": 3.5, "y": 3},
 | 
			
		||||
                {"x": 4.5, "y": 3},
 | 
			
		||||
                {"x": 5.5, "y": 3},
 | 
			
		||||
                {"x": 6.5, "y": 3},
 | 
			
		||||
                {"x": 7.5, "y": 3},
 | 
			
		||||
                {"x": 8.5, "y": 3},
 | 
			
		||||
                {"x": 9.5, "y": 3},
 | 
			
		||||
                {"x": 10.5, "y": 3},
 | 
			
		||||
                {"x": 11.5, "y": 3},
 | 
			
		||||
                {"x": 12.5, "y": 3},
 | 
			
		||||
                {"x": 13.5, "y": 3, "w": 1.5},
 | 
			
		||||
 | 
			
		||||
                {"x": 1.5, "y": 4},
 | 
			
		||||
                {"x": 2.5, "y": 4},
 | 
			
		||||
                {"x": 3.5, "y": 4},
 | 
			
		||||
@@ -67,20 +69,7 @@
 | 
			
		||||
 | 
			
		||||
        "LAYOUT_ergo_2x2u": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                {"x": 0, "y": 0, "w": 1.5},
 | 
			
		||||
                {"x": 1.5, "y": 0},
 | 
			
		||||
                {"x": 2.5, "y": 0},
 | 
			
		||||
                {"x": 3.5, "y": 0},
 | 
			
		||||
                {"x": 4.5, "y": 0},
 | 
			
		||||
                {"x": 5.5, "y": 0},
 | 
			
		||||
                {"x": 6.5, "y": 0, "h": 1.5},
 | 
			
		||||
                {"x": 7.5, "y": 0, "h": 1.5},
 | 
			
		||||
                {"x": 8.5, "y": 0},
 | 
			
		||||
                {"x": 9.5, "y": 0},
 | 
			
		||||
                {"x": 10.5, "y": 0},
 | 
			
		||||
                {"x": 11.5, "y": 0},
 | 
			
		||||
                {"x": 12.5, "y": 0},
 | 
			
		||||
                {"x": 13.5, "y": 0, "w": 1.5},
 | 
			
		||||
 | 
			
		||||
                {"x": 0, "y": 1, "w": 1.5},
 | 
			
		||||
                {"x": 1.5, "y": 1},
 | 
			
		||||
@@ -88,8 +77,8 @@
 | 
			
		||||
                {"x": 3.5, "y": 1},
 | 
			
		||||
                {"x": 4.5, "y": 1},
 | 
			
		||||
                {"x": 5.5, "y": 1},
 | 
			
		||||
                {"x": 6.5, "y": 1.5, "h": 1.5},
 | 
			
		||||
                {"x": 7.5, "y": 1.5, "h": 1.5},
 | 
			
		||||
                {"x": 6.5, "y": 1, "h": 1.5},
 | 
			
		||||
                {"x": 7.5, "y": 1, "h": 1.5},
 | 
			
		||||
                {"x": 8.5, "y": 1},
 | 
			
		||||
                {"x": 9.5, "y": 1},
 | 
			
		||||
                {"x": 10.5, "y": 1},
 | 
			
		||||
@@ -103,6 +92,8 @@
 | 
			
		||||
                {"x": 3.5, "y": 2},
 | 
			
		||||
                {"x": 4.5, "y": 2},
 | 
			
		||||
                {"x": 5.5, "y": 2},
 | 
			
		||||
                {"x": 6.5, "y": 2.5, "h": 1.5},
 | 
			
		||||
                {"x": 7.5, "y": 2.5, "h": 1.5},
 | 
			
		||||
                {"x": 8.5, "y": 2},
 | 
			
		||||
                {"x": 9.5, "y": 2},
 | 
			
		||||
                {"x": 10.5, "y": 2},
 | 
			
		||||
@@ -110,6 +101,19 @@
 | 
			
		||||
                {"x": 12.5, "y": 2},
 | 
			
		||||
                {"x": 13.5, "y": 2, "w": 1.5},
 | 
			
		||||
 | 
			
		||||
                {"x": 0, "y": 3, "w": 1.5},
 | 
			
		||||
                {"x": 1.5, "y": 3},
 | 
			
		||||
                {"x": 2.5, "y": 3},
 | 
			
		||||
                {"x": 3.5, "y": 3},
 | 
			
		||||
                {"x": 4.5, "y": 3},
 | 
			
		||||
                {"x": 5.5, "y": 3},
 | 
			
		||||
                {"x": 8.5, "y": 3},
 | 
			
		||||
                {"x": 9.5, "y": 3},
 | 
			
		||||
                {"x": 10.5, "y": 3},
 | 
			
		||||
                {"x": 11.5, "y": 3},
 | 
			
		||||
                {"x": 12.5, "y": 3},
 | 
			
		||||
                {"x": 13.5, "y": 3, "w": 1.5},
 | 
			
		||||
 | 
			
		||||
                {"x": 1.5, "y": 4},
 | 
			
		||||
                {"x": 2.5, "y": 4},
 | 
			
		||||
                {"x": 3.5, "y": 4},
 | 
			
		||||
@@ -125,20 +129,7 @@
 | 
			
		||||
 | 
			
		||||
        "LAYOUT_ortho_7u": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                {"x": 0, "y": 0, "w": 1.5},
 | 
			
		||||
                {"x": 1.5, "y": 0},
 | 
			
		||||
                {"x": 2.5, "y": 0},
 | 
			
		||||
                {"x": 3.5, "y": 0},
 | 
			
		||||
                {"x": 4.5, "y": 0},
 | 
			
		||||
                {"x": 5.5, "y": 0},
 | 
			
		||||
                {"x": 6.5, "y": 0, "h": 1.5},
 | 
			
		||||
                {"x": 7.5, "y": 0, "h": 1.5},
 | 
			
		||||
                {"x": 8.5, "y": 0},
 | 
			
		||||
                {"x": 9.5, "y": 0},
 | 
			
		||||
                {"x": 10.5, "y": 0},
 | 
			
		||||
                {"x": 11.5, "y": 0},
 | 
			
		||||
                {"x": 12.5, "y": 0},
 | 
			
		||||
                {"x": 13.5, "y": 0, "w": 1.5},
 | 
			
		||||
 | 
			
		||||
                {"x": 0, "y": 1, "w": 1.5},
 | 
			
		||||
                {"x": 1.5, "y": 1},
 | 
			
		||||
@@ -146,14 +137,14 @@
 | 
			
		||||
                {"x": 3.5, "y": 1},
 | 
			
		||||
                {"x": 4.5, "y": 1},
 | 
			
		||||
                {"x": 5.5, "y": 1},
 | 
			
		||||
                {"x": 6.5, "y": 1.5, "h": 1.5},
 | 
			
		||||
                {"x": 7.5, "y": 1.5, "h": 1.5},
 | 
			
		||||
                {"x": 6.5, "y": 1},
 | 
			
		||||
                {"x": 7.5, "y": 1},
 | 
			
		||||
                {"x": 8.5, "y": 1},
 | 
			
		||||
                {"x": 9.5, "y": 1},
 | 
			
		||||
                {"x": 10.5, "y": 1},
 | 
			
		||||
                {"x": 11.5, "y": 1},
 | 
			
		||||
                {"x": 12.5, "y": 1, "w": 1.5},
 | 
			
		||||
                {"x": 14, "y": 1},
 | 
			
		||||
                {"x": 12.5, "y": 1},
 | 
			
		||||
                {"x": 13.5, "y": 1, "w": 1.5},
 | 
			
		||||
 | 
			
		||||
                {"x": 0, "y": 2, "w": 1.5},
 | 
			
		||||
                {"x": 1.5, "y": 2},
 | 
			
		||||
@@ -161,13 +152,30 @@
 | 
			
		||||
                {"x": 3.5, "y": 2},
 | 
			
		||||
                {"x": 4.5, "y": 2},
 | 
			
		||||
                {"x": 5.5, "y": 2},
 | 
			
		||||
                {"x": 6.5, "y": 2},
 | 
			
		||||
                {"x": 7.5, "y": 2},
 | 
			
		||||
                {"x": 8.5, "y": 2},
 | 
			
		||||
                {"x": 9.5, "y": 2},
 | 
			
		||||
                {"x": 10.5, "y": 2},
 | 
			
		||||
                {"x": 11.5, "y": 2, "w": 1.5},
 | 
			
		||||
                {"x": 13, "y": 2},
 | 
			
		||||
                {"x": 11.5, "y": 2},
 | 
			
		||||
                {"x": 12.5, "y": 2, "w": 1.5},
 | 
			
		||||
                {"x": 14, "y": 2},
 | 
			
		||||
 | 
			
		||||
                {"x": 0, "y": 3, "w": 1.5},
 | 
			
		||||
                {"x": 1.5, "y": 3},
 | 
			
		||||
                {"x": 2.5, "y": 3},
 | 
			
		||||
                {"x": 3.5, "y": 3},
 | 
			
		||||
                {"x": 4.5, "y": 3},
 | 
			
		||||
                {"x": 5.5, "y": 3},
 | 
			
		||||
                {"x": 6.5, "y": 3},
 | 
			
		||||
                {"x": 7.5, "y": 3},
 | 
			
		||||
                {"x": 8.5, "y": 3},
 | 
			
		||||
                {"x": 9.5, "y": 3},
 | 
			
		||||
                {"x": 10.5, "y": 3},
 | 
			
		||||
                {"x": 11.5, "y": 3, "w": 1.5},
 | 
			
		||||
                {"x": 13, "y": 3},
 | 
			
		||||
                {"x": 14, "y": 3},
 | 
			
		||||
 | 
			
		||||
                {"x": 1.5, "y": 4},
 | 
			
		||||
                {"x": 2.5, "y": 4, "w": 1.5},
 | 
			
		||||
                {"x": 4, "y": 4, "w": 7},
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,69 @@
 | 
			
		||||
    "height": 4,
 | 
			
		||||
    "layouts": {
 | 
			
		||||
        "LAYOUT": {
 | 
			
		||||
          "layout": [{"x":0, "y":0}, {"x":1, "y":0}, {"x":2, "y":0}, {"x":3.25, "y":0}, {"x":4.25, "y":0}, {"x":4.25, "y":0}, {"x":5.25, "y":0}, {"x":6.25, "y":0}, {"x":7.25, "y":0}, {"x":8.25, "y":0}, {"x":9.25, "y":0}, {"x":10.25, "y":0}, {"x":11.25, "y":0}, {"x":12.25, "y":0}, {"x":13.25, "y":0}, {"x":14.25, "y":0}, {"x":15.25, "y":0}, {"x":0, "y":1}, {"x":1, "y":1}, {"x":2, "y":1}, {"x":3.25, "y":1, "w":1.25}, {"x":4.5, "y":1}, {"x":4.5, "y":1}, {"x":5.5, "y":1}, {"x":6.5, "y":1}, {"x":7.5, "y":1}, {"x":8.5, "y":1}, {"x":9.5, "y":1}, {"x":10.5, "y":1}, {"x":11.5, "y":1}, {"x":12.5, "y":1}, {"x":13.5, "y":1}, {"x":14.5, "y":1, "w":1.75}, {"x":0, "y":2}, {"x":1, "y":2}, {"x":2, "y":2}, {"x":3.25, "y":2, "w":1.75}, {"x":5, "y":2}, {"x":6, "y":2}, {"x":7, "y":2}, {"x":8, "y":2}, {"x":9, "y":2}, {"x":10, "y":2}, {"x":11, "y":2}, {"x":12, "y":2}, {"x":13, "y":2}, {"x":14, "y":2}, {"x":15, "y":2, "w":1.25}, {"x":0, "y":3}, {"x":1, "y":3}, {"x":2, "y":3}, {"x":3.25, "y":3, "w":1.5}, {"x":4.75, "y":3}, {"x":5.75, "y":3, "w":1.5}, {"x":7.25, "y":3, "w":2.25}, {"x":9.5, "y":3, "w":2.75}, {"x":12.25, "y":3, "w":1.5}, {"x":13.75, "y":3}, {"x":14.75, "y":3, "w":1.5}]
 | 
			
		||||
            "layout": [
 | 
			
		||||
                {"x": 0, "y": 0},
 | 
			
		||||
                {"x": 1, "y": 0},
 | 
			
		||||
                {"x": 2, "y": 0},
 | 
			
		||||
                {"x": 3.25, "y": 0},
 | 
			
		||||
                {"x": 4.25, "y": 0},
 | 
			
		||||
                {"x": 5.25, "y": 0},
 | 
			
		||||
                {"x": 6.25, "y": 0},
 | 
			
		||||
                {"x": 7.25, "y": 0},
 | 
			
		||||
                {"x": 8.25, "y": 0},
 | 
			
		||||
                {"x": 9.25, "y": 0},
 | 
			
		||||
                {"x": 10.25, "y": 0},
 | 
			
		||||
                {"x": 11.25, "y": 0},
 | 
			
		||||
                {"x": 12.25, "y": 0},
 | 
			
		||||
                {"x": 13.25, "y": 0},
 | 
			
		||||
                {"x": 14.25, "y": 0},
 | 
			
		||||
                {"x": 15.25, "y": 0},
 | 
			
		||||
 | 
			
		||||
                {"x": 0, "y": 1},
 | 
			
		||||
                {"x": 1, "y": 1},
 | 
			
		||||
                {"x": 2, "y": 1},
 | 
			
		||||
                {"x": 3.25, "y": 1, "w": 1.25},
 | 
			
		||||
                {"x": 4.5, "y": 1},
 | 
			
		||||
                {"x": 5.5, "y": 1},
 | 
			
		||||
                {"x": 6.5, "y": 1},
 | 
			
		||||
                {"x": 7.5, "y": 1},
 | 
			
		||||
                {"x": 8.5, "y": 1},
 | 
			
		||||
                {"x": 9.5, "y": 1},
 | 
			
		||||
                {"x": 10.5, "y": 1},
 | 
			
		||||
                {"x": 11.5, "y": 1},
 | 
			
		||||
                {"x": 12.5, "y": 1},
 | 
			
		||||
                {"x": 13.5, "y": 1},
 | 
			
		||||
                {"x": 14.5, "y": 1, "w": 1.75},
 | 
			
		||||
 | 
			
		||||
                {"x": 0, "y": 2},
 | 
			
		||||
                {"x": 1, "y": 2},
 | 
			
		||||
                {"x": 2, "y": 2},
 | 
			
		||||
                {"x": 3.25, "y": 2, "w": 1.75},
 | 
			
		||||
                {"x": 5, "y": 2},
 | 
			
		||||
                {"x": 6, "y": 2},
 | 
			
		||||
                {"x": 7, "y": 2},
 | 
			
		||||
                {"x": 8, "y": 2},
 | 
			
		||||
                {"x": 9, "y": 2},
 | 
			
		||||
                {"x": 10, "y": 2},
 | 
			
		||||
                {"x": 11, "y": 2},
 | 
			
		||||
                {"x": 12, "y": 2},
 | 
			
		||||
                {"x": 13, "y": 2},
 | 
			
		||||
                {"x": 14, "y": 2},
 | 
			
		||||
                {"x": 15, "y": 2, "w": 1.25},
 | 
			
		||||
 | 
			
		||||
                {"x": 0, "y": 3},
 | 
			
		||||
                {"x": 1, "y": 3},
 | 
			
		||||
                {"x": 2, "y": 3},
 | 
			
		||||
                {"x": 3.25, "y": 3, "w": 1.25},
 | 
			
		||||
                {"x": 4.5, "y": 3, "w": 1.25},
 | 
			
		||||
                {"x": 5.75, "y": 3, "w": 1.25},
 | 
			
		||||
                {"x": 7, "y": 3, "w": 2.25},
 | 
			
		||||
                {"x": 9.25, "y": 3, "w": 2.75},
 | 
			
		||||
                {"x": 12, "y": 3, "w": 1.25},
 | 
			
		||||
                {"x": 13.25, "y": 3},
 | 
			
		||||
                {"x": 14.25, "y": 3},
 | 
			
		||||
                {"x": 15.25, "y": 3}
 | 
			
		||||
            ]
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										50
									
								
								keyboards/wuque/serneity65/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								keyboards/wuque/serneity65/config.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
			
		||||
/* Copyright 2021 wuque
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can redistribute it and/or modify
 | 
			
		||||
 * it under the terms of the GNU General Public License as published by
 | 
			
		||||
 * the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
 * (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 * GNU General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU General Public License
 | 
			
		||||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "config_common.h"
 | 
			
		||||
 | 
			
		||||
/* USB Device descriptor parameter */
 | 
			
		||||
#define VENDOR_ID       0x906B
 | 
			
		||||
#define PRODUCT_ID      0x0003
 | 
			
		||||
#define DEVICE_VER      0x0001
 | 
			
		||||
#define MANUFACTURER    wuque
 | 
			
		||||
#define PRODUCT         serneity65
 | 
			
		||||
 | 
			
		||||
/* key matrix size */
 | 
			
		||||
#define MATRIX_ROWS 5
 | 
			
		||||
#define MATRIX_COLS 15
 | 
			
		||||
 | 
			
		||||
#define MATRIX_ROW_PINS { B0, F0, B1, D2, D3 }
 | 
			
		||||
#define MATRIX_COL_PINS { B6, B5, D5, D4, D6, B4, D7, F1, F4, F5, F6, F7, C7, E6, B7 }
 | 
			
		||||
 | 
			
		||||
#define DIODE_DIRECTION COL2ROW
 | 
			
		||||
 | 
			
		||||
/* Set 0 if debouncing isn't needed */
 | 
			
		||||
#define DEBOUNCE 5
 | 
			
		||||
 | 
			
		||||
/* Enable encoder */
 | 
			
		||||
#define ENCODERS_PAD_A { B2 }
 | 
			
		||||
#define ENCODERS_PAD_B { B3 }
 | 
			
		||||
 | 
			
		||||
#define ENCODERS 1
 | 
			
		||||
// Note:  array is { col, row )
 | 
			
		||||
#define ENCODERS_CW_KEY  { { 3, 4 } }
 | 
			
		||||
#define ENCODERS_CCW_KEY { { 5, 4 } }
 | 
			
		||||
 | 
			
		||||
#define LED_CAPS_LOCK_PIN C6
 | 
			
		||||
#define LED_PIN_ON_STATE 0
 | 
			
		||||
							
								
								
									
										389
									
								
								keyboards/wuque/serneity65/info.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										389
									
								
								keyboards/wuque/serneity65/info.json
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,389 @@
 | 
			
		||||
{
 | 
			
		||||
    "keyboard_name": "serneity65",
 | 
			
		||||
    "url": "https://wuque.com/",
 | 
			
		||||
    "maintainer": "qmk",
 | 
			
		||||
    "width": 15.5,
 | 
			
		||||
    "height": 5,
 | 
			
		||||
    "layouts": {
 | 
			
		||||
        "LAYOUT_all": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                { "label": "Esc", "x": 0, "y": 0 },
 | 
			
		||||
                { "label": "1", "x": 1, "y": 0 },
 | 
			
		||||
                { "label": "2", "x": 2, "y": 0 },
 | 
			
		||||
                { "label": "3", "x": 3, "y": 0 },
 | 
			
		||||
                { "label": "4", "x": 4, "y": 0 },
 | 
			
		||||
                { "label": "5", "x": 5, "y": 0 },
 | 
			
		||||
                { "label": "6", "x": 6, "y": 0 },
 | 
			
		||||
                { "label": "7", "x": 7, "y": 0 },
 | 
			
		||||
                { "label": "8", "x": 8, "y": 0 },
 | 
			
		||||
                { "label": "9", "x": 9, "y": 0 },
 | 
			
		||||
                { "label": "0", "x": 10, "y": 0 },
 | 
			
		||||
                { "label": "-", "x": 11, "y": 0 },
 | 
			
		||||
                { "label": "=", "x": 12, "y": 0 },
 | 
			
		||||
                { "label": "Backspace", "x": 13, "y": 0 },
 | 
			
		||||
                { "label": "Encode", "x": 15.5, "y": 0 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Tab", "x": 0, "y": 1, "w": 1.5 },
 | 
			
		||||
                { "label": "Q", "x": 1.5, "y": 1 },
 | 
			
		||||
                { "label": "W", "x": 2.5, "y": 1 },
 | 
			
		||||
                { "label": "E", "x": 3.5, "y": 1 },
 | 
			
		||||
                { "label": "R", "x": 4.5, "y": 1 },
 | 
			
		||||
                { "label": "T", "x": 5.5, "y": 1 },
 | 
			
		||||
                { "label": "Y", "x": 6.5, "y": 1 },
 | 
			
		||||
                { "label": "U", "x": 7.5, "y": 1 },
 | 
			
		||||
                { "label": "I", "x": 8.5, "y": 1 },
 | 
			
		||||
                { "label": "O", "x": 9.5, "y": 1 },
 | 
			
		||||
                { "label": "P", "x": 10.5, "y": 1 },
 | 
			
		||||
                { "label": "[", "x": 11.5, "y": 1 },
 | 
			
		||||
                { "label": "]", "x": 12.5, "y": 1 },
 | 
			
		||||
                { "label": "\\", "x": 13.5, "y": 1, "w": 1.5 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 },
 | 
			
		||||
                { "label": "A", "x": 1.75, "y": 2 },
 | 
			
		||||
                { "label": "S", "x": 2.75, "y": 2 },
 | 
			
		||||
                { "label": "D", "x": 3.75, "y": 2 },
 | 
			
		||||
                { "label": "F", "x": 4.75, "y": 2 },
 | 
			
		||||
                { "label": "G", "x": 5.75, "y": 2 },
 | 
			
		||||
                { "label": "H", "x": 6.75, "y": 2 },
 | 
			
		||||
                { "label": "J", "x": 7.75, "y": 2 },
 | 
			
		||||
                { "label": "K", "x": 8.75, "y": 2 },
 | 
			
		||||
                { "label": "L", "x": 9.75, "y": 2 },
 | 
			
		||||
                { "label": ";", "x": 10.75, "y": 2 },
 | 
			
		||||
                { "label": "'", "x": 11.75, "y": 2 },
 | 
			
		||||
                { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
 | 
			
		||||
                { "label": "Backspace", "x": 14, "y": 0 },
 | 
			
		||||
                { "label": "PageUp", "x": 15, "y": 2 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Shift1", "x": 0, "y": 3, "w": 1.25 },
 | 
			
		||||
                { "label": "Shift2", "x": 1.25, "y": 3 },
 | 
			
		||||
                { "label": "Z", "x": 2.25, "y": 3 },
 | 
			
		||||
                { "label": "X", "x": 3.25, "y": 3 },
 | 
			
		||||
                { "label": "C", "x": 4.25, "y": 3 },
 | 
			
		||||
                { "label": "V", "x": 5.25, "y": 3 },
 | 
			
		||||
                { "label": "B", "x": 6.25, "y": 3 },
 | 
			
		||||
                { "label": "N", "x": 7.25, "y": 3 },
 | 
			
		||||
                { "label": "M", "x": 8.25, "y": 3 },
 | 
			
		||||
                { "label": ",", "x": 9.25, "y": 3 },
 | 
			
		||||
                { "label": ".", "x": 10.25, "y": 3 },
 | 
			
		||||
                { "label": "/", "x": 11.25, "y": 3 },
 | 
			
		||||
                { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 },
 | 
			
		||||
                { "label": "\u2191", "x": 14, "y": 3 },
 | 
			
		||||
                { "label": "End", "x": 15, "y": 3 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "Win", "x": 1.25, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "Alt", "x": 2.5, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "Lrotate", "x": 15, "y": 0, "w": 0.5 },
 | 
			
		||||
                { "label": "Rrotate", "x": 16.5, "y": 0, "w": 0.5 },
 | 
			
		||||
                { "x": 3.75, "y": 4, "w": 2.25 },
 | 
			
		||||
                { "x": 6, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "x": 7.25, "y": 4, "w": 2.75 },
 | 
			
		||||
                { "label": "Alt", "x": 10, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "Fn", "x": 11.25, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "\u2190", "x": 13, "y": 4 },
 | 
			
		||||
                { "label": "\u2193", "x": 14, "y": 4 },
 | 
			
		||||
                { "label": "\u2192", "x": 15, "y": 4 }
 | 
			
		||||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "LAYOUT_65_ansi": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                { "label": "Esc", "x": 0, "y": 0 },
 | 
			
		||||
                { "label": "1", "x": 1, "y": 0 },
 | 
			
		||||
                { "label": "2", "x": 2, "y": 0 },
 | 
			
		||||
                { "label": "3", "x": 3, "y": 0 },
 | 
			
		||||
                { "label": "4", "x": 4, "y": 0 },
 | 
			
		||||
                { "label": "5", "x": 5, "y": 0 },
 | 
			
		||||
                { "label": "6", "x": 6, "y": 0 },
 | 
			
		||||
                { "label": "7", "x": 7, "y": 0 },
 | 
			
		||||
                { "label": "8", "x": 8, "y": 0 },
 | 
			
		||||
                { "label": "9", "x": 9, "y": 0 },
 | 
			
		||||
                { "label": "0", "x": 10, "y": 0 },
 | 
			
		||||
                { "label": "-", "x": 11, "y": 0 },
 | 
			
		||||
                { "label": "=", "x": 12, "y": 0 },
 | 
			
		||||
                { "label": "Backspace", "x": 13, "y": 0, "w": 2 },
 | 
			
		||||
                { "label": "Encode", "x": 15.5, "y": 0 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Tab", "x": 0, "y": 1, "w": 1.5 },
 | 
			
		||||
                { "label": "Q", "x": 1.5, "y": 1 },
 | 
			
		||||
                { "label": "W", "x": 2.5, "y": 1 },
 | 
			
		||||
                { "label": "E", "x": 3.5, "y": 1 },
 | 
			
		||||
                { "label": "R", "x": 4.5, "y": 1 },
 | 
			
		||||
                { "label": "T", "x": 5.5, "y": 1 },
 | 
			
		||||
                { "label": "Y", "x": 6.5, "y": 1 },
 | 
			
		||||
                { "label": "U", "x": 7.5, "y": 1 },
 | 
			
		||||
                { "label": "I", "x": 8.5, "y": 1 },
 | 
			
		||||
                { "label": "O", "x": 9.5, "y": 1 },
 | 
			
		||||
                { "label": "P", "x": 10.5, "y": 1 },
 | 
			
		||||
                { "label": "[", "x": 11.5, "y": 1 },
 | 
			
		||||
                { "label": "]", "x": 12.5, "y": 1 },
 | 
			
		||||
                { "label": "\\", "x": 13.5, "y": 1, "w": 1.5 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 },
 | 
			
		||||
                { "label": "A", "x": 1.75, "y": 2 },
 | 
			
		||||
                { "label": "S", "x": 2.75, "y": 2 },
 | 
			
		||||
                { "label": "D", "x": 3.75, "y": 2 },
 | 
			
		||||
                { "label": "F", "x": 4.75, "y": 2 },
 | 
			
		||||
                { "label": "G", "x": 5.75, "y": 2 },
 | 
			
		||||
                { "label": "H", "x": 6.75, "y": 2 },
 | 
			
		||||
                { "label": "J", "x": 7.75, "y": 2 },
 | 
			
		||||
                { "label": "K", "x": 8.75, "y": 2 },
 | 
			
		||||
                { "label": "L", "x": 9.75, "y": 2 },
 | 
			
		||||
                { "label": ";", "x": 10.75, "y": 2 },
 | 
			
		||||
                { "label": "'", "x": 11.75, "y": 2 },
 | 
			
		||||
                { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
 | 
			
		||||
                { "label": "PageUp", "x": 15, "y": 2 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Shift", "x": 0, "y": 3, "w": 2.25 },
 | 
			
		||||
                { "label": "Z", "x": 2.25, "y": 3 },
 | 
			
		||||
                { "label": "X", "x": 3.25, "y": 3 },
 | 
			
		||||
                { "label": "C", "x": 4.25, "y": 3 },
 | 
			
		||||
                { "label": "V", "x": 5.25, "y": 3 },
 | 
			
		||||
                { "label": "B", "x": 6.25, "y": 3 },
 | 
			
		||||
                { "label": "N", "x": 7.25, "y": 3 },
 | 
			
		||||
                { "label": "M", "x": 8.25, "y": 3 },
 | 
			
		||||
                { "label": ",", "x": 9.25, "y": 3 },
 | 
			
		||||
                { "label": ".", "x": 10.25, "y": 3 },
 | 
			
		||||
                { "label": "/", "x": 11.25, "y": 3 },
 | 
			
		||||
                { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 },
 | 
			
		||||
                { "label": "\u2191", "x": 14, "y": 3 },
 | 
			
		||||
                { "label": "End", "x": 15, "y": 3 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "Win", "x": 1.25, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "Alt", "x": 2.5, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "x": 3.75, "y": 4, "w": 6.25 },
 | 
			
		||||
                { "label": "Alt", "x": 10, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "Fn", "x": 11.25, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "\u2190", "x": 13, "y": 4 },
 | 
			
		||||
                { "label": "\u2193", "x": 14, "y": 4 },
 | 
			
		||||
                { "label": "\u2192", "x": 15, "y": 4 }
 | 
			
		||||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "LAYOUT_65_ansi_split_bs": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                { "label": "Esc", "x": 0, "y": 0 },
 | 
			
		||||
                { "label": "1", "x": 1, "y": 0 },
 | 
			
		||||
                { "label": "2", "x": 2, "y": 0 },
 | 
			
		||||
                { "label": "3", "x": 3, "y": 0 },
 | 
			
		||||
                { "label": "4", "x": 4, "y": 0 },
 | 
			
		||||
                { "label": "5", "x": 5, "y": 0 },
 | 
			
		||||
                { "label": "6", "x": 6, "y": 0 },
 | 
			
		||||
                { "label": "7", "x": 7, "y": 0 },
 | 
			
		||||
                { "label": "8", "x": 8, "y": 0 },
 | 
			
		||||
                { "label": "9", "x": 9, "y": 0 },
 | 
			
		||||
                { "label": "0", "x": 10, "y": 0 },
 | 
			
		||||
                { "label": "-", "x": 11, "y": 0 },
 | 
			
		||||
                { "label": "=", "x": 12, "y": 0 },
 | 
			
		||||
                { "label": "Backspace", "x": 13, "y": 0 },
 | 
			
		||||
                { "label": "Encode", "x": 15.5, "y": 0 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Tab", "x": 0, "y": 1, "w": 1.5 },
 | 
			
		||||
                { "label": "Q", "x": 1.5, "y": 1 },
 | 
			
		||||
                { "label": "W", "x": 2.5, "y": 1 },
 | 
			
		||||
                { "label": "E", "x": 3.5, "y": 1 },
 | 
			
		||||
                { "label": "R", "x": 4.5, "y": 1 },
 | 
			
		||||
                { "label": "T", "x": 5.5, "y": 1 },
 | 
			
		||||
                { "label": "Y", "x": 6.5, "y": 1 },
 | 
			
		||||
                { "label": "U", "x": 7.5, "y": 1 },
 | 
			
		||||
                { "label": "I", "x": 8.5, "y": 1 },
 | 
			
		||||
                { "label": "O", "x": 9.5, "y": 1 },
 | 
			
		||||
                { "label": "P", "x": 10.5, "y": 1 },
 | 
			
		||||
                { "label": "[", "x": 11.5, "y": 1 },
 | 
			
		||||
                { "label": "]", "x": 12.5, "y": 1 },
 | 
			
		||||
                { "label": "\\", "x": 13.5, "y": 1, "w": 1.5 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 },
 | 
			
		||||
                { "label": "A", "x": 1.75, "y": 2 },
 | 
			
		||||
                { "label": "S", "x": 2.75, "y": 2 },
 | 
			
		||||
                { "label": "D", "x": 3.75, "y": 2 },
 | 
			
		||||
                { "label": "F", "x": 4.75, "y": 2 },
 | 
			
		||||
                { "label": "G", "x": 5.75, "y": 2 },
 | 
			
		||||
                { "label": "H", "x": 6.75, "y": 2 },
 | 
			
		||||
                { "label": "J", "x": 7.75, "y": 2 },
 | 
			
		||||
                { "label": "K", "x": 8.75, "y": 2 },
 | 
			
		||||
                { "label": "L", "x": 9.75, "y": 2 },
 | 
			
		||||
                { "label": ";", "x": 10.75, "y": 2 },
 | 
			
		||||
                { "label": "'", "x": 11.75, "y": 2 },
 | 
			
		||||
                { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
 | 
			
		||||
                { "label": "Backspace", "x": 14, "y": 0 },
 | 
			
		||||
                { "label": "PageUp", "x": 15, "y": 2 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Shift", "x": 0, "y": 3, "w": 2.25 },
 | 
			
		||||
                { "label": "Z", "x": 2.25, "y": 3 },
 | 
			
		||||
                { "label": "X", "x": 3.25, "y": 3 },
 | 
			
		||||
                { "label": "C", "x": 4.25, "y": 3 },
 | 
			
		||||
                { "label": "V", "x": 5.25, "y": 3 },
 | 
			
		||||
                { "label": "B", "x": 6.25, "y": 3 },
 | 
			
		||||
                { "label": "N", "x": 7.25, "y": 3 },
 | 
			
		||||
                { "label": "M", "x": 8.25, "y": 3 },
 | 
			
		||||
                { "label": ",", "x": 9.25, "y": 3 },
 | 
			
		||||
                { "label": ".", "x": 10.25, "y": 3 },
 | 
			
		||||
                { "label": "/", "x": 11.25, "y": 3 },
 | 
			
		||||
                { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 },
 | 
			
		||||
                { "label": "\u2191", "x": 14, "y": 3 },
 | 
			
		||||
                { "label": "End", "x": 15, "y": 3 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "Win", "x": 1.25, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "Alt", "x": 2.5, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "x": 3.75, "y": 4, "w": 6.25 },
 | 
			
		||||
                { "label": "Alt", "x": 10, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "Fn", "x": 11.25, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "\u2190", "x": 13, "y": 4 },
 | 
			
		||||
                { "label": "\u2193", "x": 14, "y": 4 },
 | 
			
		||||
                { "label": "\u2192", "x": 15, "y": 4 }
 | 
			
		||||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "LAYOUT_65_ansi_split_lshift": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                { "label": "Esc", "x": 0, "y": 0 },
 | 
			
		||||
                { "label": "1", "x": 1, "y": 0 },
 | 
			
		||||
                { "label": "2", "x": 2, "y": 0 },
 | 
			
		||||
                { "label": "3", "x": 3, "y": 0 },
 | 
			
		||||
                { "label": "4", "x": 4, "y": 0 },
 | 
			
		||||
                { "label": "5", "x": 5, "y": 0 },
 | 
			
		||||
                { "label": "6", "x": 6, "y": 0 },
 | 
			
		||||
                { "label": "7", "x": 7, "y": 0 },
 | 
			
		||||
                { "label": "8", "x": 8, "y": 0 },
 | 
			
		||||
                { "label": "9", "x": 9, "y": 0 },
 | 
			
		||||
                { "label": "0", "x": 10, "y": 0 },
 | 
			
		||||
                { "label": "-", "x": 11, "y": 0 },
 | 
			
		||||
                { "label": "=", "x": 12, "y": 0 },
 | 
			
		||||
                { "label": "Backspace", "x": 13, "y": 0, "w": 2 },
 | 
			
		||||
                { "label": "Encode", "x": 15.5, "y": 0 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Tab", "x": 0, "y": 1, "w": 1.5 },
 | 
			
		||||
                { "label": "Q", "x": 1.5, "y": 1 },
 | 
			
		||||
                { "label": "W", "x": 2.5, "y": 1 },
 | 
			
		||||
                { "label": "E", "x": 3.5, "y": 1 },
 | 
			
		||||
                { "label": "R", "x": 4.5, "y": 1 },
 | 
			
		||||
                { "label": "T", "x": 5.5, "y": 1 },
 | 
			
		||||
                { "label": "Y", "x": 6.5, "y": 1 },
 | 
			
		||||
                { "label": "U", "x": 7.5, "y": 1 },
 | 
			
		||||
                { "label": "I", "x": 8.5, "y": 1 },
 | 
			
		||||
                { "label": "O", "x": 9.5, "y": 1 },
 | 
			
		||||
                { "label": "P", "x": 10.5, "y": 1 },
 | 
			
		||||
                { "label": "[", "x": 11.5, "y": 1 },
 | 
			
		||||
                { "label": "]", "x": 12.5, "y": 1 },
 | 
			
		||||
                { "label": "\\", "x": 13.5, "y": 1, "w": 1.5 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 },
 | 
			
		||||
                { "label": "A", "x": 1.75, "y": 2 },
 | 
			
		||||
                { "label": "S", "x": 2.75, "y": 2 },
 | 
			
		||||
                { "label": "D", "x": 3.75, "y": 2 },
 | 
			
		||||
                { "label": "F", "x": 4.75, "y": 2 },
 | 
			
		||||
                { "label": "G", "x": 5.75, "y": 2 },
 | 
			
		||||
                { "label": "H", "x": 6.75, "y": 2 },
 | 
			
		||||
                { "label": "J", "x": 7.75, "y": 2 },
 | 
			
		||||
                { "label": "K", "x": 8.75, "y": 2 },
 | 
			
		||||
                { "label": "L", "x": 9.75, "y": 2 },
 | 
			
		||||
                { "label": ";", "x": 10.75, "y": 2 },
 | 
			
		||||
                { "label": "'", "x": 11.75, "y": 2 },
 | 
			
		||||
                { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
 | 
			
		||||
                { "label": "PageUp", "x": 15, "y": 2 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Shift1", "x": 0, "y": 3, "w": 1.25 },
 | 
			
		||||
                { "label": "Shift2", "x": 1.25, "y": 3 },
 | 
			
		||||
                { "label": "Z", "x": 2.25, "y": 3 },
 | 
			
		||||
                { "label": "X", "x": 3.25, "y": 3 },
 | 
			
		||||
                { "label": "C", "x": 4.25, "y": 3 },
 | 
			
		||||
                { "label": "V", "x": 5.25, "y": 3 },
 | 
			
		||||
                { "label": "B", "x": 6.25, "y": 3 },
 | 
			
		||||
                { "label": "N", "x": 7.25, "y": 3 },
 | 
			
		||||
                { "label": "M", "x": 8.25, "y": 3 },
 | 
			
		||||
                { "label": ",", "x": 9.25, "y": 3 },
 | 
			
		||||
                { "label": ".", "x": 10.25, "y": 3 },
 | 
			
		||||
                { "label": "/", "x": 11.25, "y": 3 },
 | 
			
		||||
                { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 },
 | 
			
		||||
                { "label": "\u2191", "x": 14, "y": 3 },
 | 
			
		||||
                { "label": "End", "x": 15, "y": 3 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "Win", "x": 1.25, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "Alt", "x": 2.5, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "x": 3.75, "y": 4, "w": 6.25 },
 | 
			
		||||
                { "label": "Alt", "x": 10, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "Fn", "x": 11.25, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "\u2190", "x": 13, "y": 4 },
 | 
			
		||||
                { "label": "\u2193", "x": 14, "y": 4 },
 | 
			
		||||
                { "label": "\u2192", "x": 15, "y": 4 }
 | 
			
		||||
            ]
 | 
			
		||||
        },
 | 
			
		||||
        "LAYOUT_65_split_space": {
 | 
			
		||||
            "layout": [
 | 
			
		||||
                { "label": "Esc", "x": 0, "y": 0 },
 | 
			
		||||
                { "label": "1", "x": 1, "y": 0 },
 | 
			
		||||
                { "label": "2", "x": 2, "y": 0 },
 | 
			
		||||
                { "label": "3", "x": 3, "y": 0 },
 | 
			
		||||
                { "label": "4", "x": 4, "y": 0 },
 | 
			
		||||
                { "label": "5", "x": 5, "y": 0 },
 | 
			
		||||
                { "label": "6", "x": 6, "y": 0 },
 | 
			
		||||
                { "label": "7", "x": 7, "y": 0 },
 | 
			
		||||
                { "label": "8", "x": 8, "y": 0 },
 | 
			
		||||
                { "label": "9", "x": 9, "y": 0 },
 | 
			
		||||
                { "label": "0", "x": 10, "y": 0 },
 | 
			
		||||
                { "label": "-", "x": 11, "y": 0 },
 | 
			
		||||
                { "label": "=", "x": 12, "y": 0 },
 | 
			
		||||
                { "label": "Backspace", "x": 13, "y": 0, "w": 2 },
 | 
			
		||||
                { "label": "Encode", "x": 15.5, "y": 0 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Tab", "x": 0, "y": 1, "w": 1.5 },
 | 
			
		||||
                { "label": "Q", "x": 1.5, "y": 1 },
 | 
			
		||||
                { "label": "W", "x": 2.5, "y": 1 },
 | 
			
		||||
                { "label": "E", "x": 3.5, "y": 1 },
 | 
			
		||||
                { "label": "R", "x": 4.5, "y": 1 },
 | 
			
		||||
                { "label": "T", "x": 5.5, "y": 1 },
 | 
			
		||||
                { "label": "Y", "x": 6.5, "y": 1 },
 | 
			
		||||
                { "label": "U", "x": 7.5, "y": 1 },
 | 
			
		||||
                { "label": "I", "x": 8.5, "y": 1 },
 | 
			
		||||
                { "label": "O", "x": 9.5, "y": 1 },
 | 
			
		||||
                { "label": "P", "x": 10.5, "y": 1 },
 | 
			
		||||
                { "label": "[", "x": 11.5, "y": 1 },
 | 
			
		||||
                { "label": "]", "x": 12.5, "y": 1 },
 | 
			
		||||
                { "label": "\\", "x": 13.5, "y": 1, "w": 1.5 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 },
 | 
			
		||||
                { "label": "A", "x": 1.75, "y": 2 },
 | 
			
		||||
                { "label": "S", "x": 2.75, "y": 2 },
 | 
			
		||||
                { "label": "D", "x": 3.75, "y": 2 },
 | 
			
		||||
                { "label": "F", "x": 4.75, "y": 2 },
 | 
			
		||||
                { "label": "G", "x": 5.75, "y": 2 },
 | 
			
		||||
                { "label": "H", "x": 6.75, "y": 2 },
 | 
			
		||||
                { "label": "J", "x": 7.75, "y": 2 },
 | 
			
		||||
                { "label": "K", "x": 8.75, "y": 2 },
 | 
			
		||||
                { "label": "L", "x": 9.75, "y": 2 },
 | 
			
		||||
                { "label": ";", "x": 10.75, "y": 2 },
 | 
			
		||||
                { "label": "'", "x": 11.75, "y": 2 },
 | 
			
		||||
                { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
 | 
			
		||||
                { "label": "PageUp", "x": 15, "y": 2 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Shift", "x": 0, "y": 3, "w": 2.25 },
 | 
			
		||||
                { "label": "Z", "x": 2.25, "y": 3 },
 | 
			
		||||
                { "label": "X", "x": 3.25, "y": 3 },
 | 
			
		||||
                { "label": "C", "x": 4.25, "y": 3 },
 | 
			
		||||
                { "label": "V", "x": 5.25, "y": 3 },
 | 
			
		||||
                { "label": "B", "x": 6.25, "y": 3 },
 | 
			
		||||
                { "label": "N", "x": 7.25, "y": 3 },
 | 
			
		||||
                { "label": "M", "x": 8.25, "y": 3 },
 | 
			
		||||
                { "label": ",", "x": 9.25, "y": 3 },
 | 
			
		||||
                { "label": ".", "x": 10.25, "y": 3 },
 | 
			
		||||
                { "label": "/", "x": 11.25, "y": 3 },
 | 
			
		||||
                { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 },
 | 
			
		||||
                { "label": "\u2191", "x": 14, "y": 3 },
 | 
			
		||||
                { "label": "End", "x": 15, "y": 3 },
 | 
			
		||||
 | 
			
		||||
                { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "Win", "x": 1.25, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "Alt", "x": 2.5, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "x": 3.75, "y": 4, "w": 2.25 },
 | 
			
		||||
                { "x": 6, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "x": 7.25, "y": 4, "w": 2.75 },
 | 
			
		||||
                { "label": "Alt", "x": 10, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "Fn", "x": 11.25, "y": 4, "w": 1.25 },
 | 
			
		||||
                { "label": "\u2190", "x": 13, "y": 4 },
 | 
			
		||||
                { "label": "\u2193", "x": 14, "y": 4 },
 | 
			
		||||
                { "label": "\u2192", "x": 15, "y": 4 }
 | 
			
		||||
            ]
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										34
									
								
								keyboards/wuque/serneity65/keymaps/65_ansi/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								keyboards/wuque/serneity65/keymaps/65_ansi/keymap.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
/* Copyright 2021 wuque
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can 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_65_ansi(
 | 
			
		||||
        KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_MUTE,
 | 
			
		||||
        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS,
 | 
			
		||||
        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_ENT,           KC_PGUP,
 | 
			
		||||
        KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_UP,   KC_END,
 | 
			
		||||
        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, MO(1),   KC_LEFT, KC_DOWN, KC_RGHT
 | 
			
		||||
    ),
 | 
			
		||||
    [1] = LAYOUT_65_ansi(
 | 
			
		||||
        KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______, KC_MPLY,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,
 | 
			
		||||
        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
 | 
			
		||||
        _______, _______, _______,                            _______,                            _______, _______, _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/wuque/serneity65/keymaps/65_ansi/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/wuque/serneity65/keymaps/65_ansi/readme.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
# The 65_ansi keymap for serneity65
 | 
			
		||||
							
								
								
									
										35
									
								
								keyboards/wuque/serneity65/keymaps/65_split_bs/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								keyboards/wuque/serneity65/keymaps/65_split_bs/keymap.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
/* Copyright 2021 wuque
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can 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_65_ansi_split_bs(
 | 
			
		||||
        KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_MUTE,
 | 
			
		||||
        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS,
 | 
			
		||||
        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_ENT,  KC_BSPC, KC_PGUP,
 | 
			
		||||
        KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_UP,   KC_END,
 | 
			
		||||
        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, MO(1),   KC_LEFT, KC_DOWN, KC_RGHT
 | 
			
		||||
    ),
 | 
			
		||||
    [1] = LAYOUT_65_ansi_split_bs(
 | 
			
		||||
        KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______, KC_MPLY,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
 | 
			
		||||
        _______, _______, _______,                            _______,                            _______, _______, _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/wuque/serneity65/keymaps/65_split_bs/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/wuque/serneity65/keymaps/65_split_bs/readme.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
# The 65_split_bs keymap for serneity65
 | 
			
		||||
							
								
								
									
										34
									
								
								keyboards/wuque/serneity65/keymaps/65_split_lshift/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								keyboards/wuque/serneity65/keymaps/65_split_lshift/keymap.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
/* Copyright 2021 wuque
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can 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_65_ansi_split_lshift(
 | 
			
		||||
        KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_MUTE,
 | 
			
		||||
        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS,
 | 
			
		||||
        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_ENT,           KC_PGUP,
 | 
			
		||||
        KC_LSFT, KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_UP,   KC_END,
 | 
			
		||||
        KC_LCTL, KC_LGUI, KC_LALT,                            KC_SPC,                             KC_RALT, MO(1),   KC_LEFT, KC_DOWN, KC_RGHT
 | 
			
		||||
    ),
 | 
			
		||||
    [1] = LAYOUT_65_ansi_split_lshift(
 | 
			
		||||
        KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______, KC_MPLY,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
 | 
			
		||||
        _______, _______, _______,                            _______,                            _______, _______, _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
};
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
# The 65_split_lshift keymap for serneity65
 | 
			
		||||
							
								
								
									
										34
									
								
								keyboards/wuque/serneity65/keymaps/65_split_space/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								keyboards/wuque/serneity65/keymaps/65_split_space/keymap.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
/* Copyright 2021 wuque
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can 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_65_split_space(
 | 
			
		||||
        KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_MUTE,
 | 
			
		||||
        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS,
 | 
			
		||||
        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_ENT,           KC_PGUP,
 | 
			
		||||
        KC_LSFT,          KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_UP,   KC_END,
 | 
			
		||||
        KC_LCTL, KC_LGUI, KC_LALT,          KC_SPC,           KC_SPC,           KC_SPC,           KC_RALT, MO(1),   KC_LEFT, KC_DOWN, KC_RGHT
 | 
			
		||||
    ),
 | 
			
		||||
    [1] = LAYOUT_65_split_space(
 | 
			
		||||
        KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______, KC_MPLY,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,          _______,
 | 
			
		||||
        _______,          _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
 | 
			
		||||
        _______, _______, _______,          _______,          _______,          _______,          _______, _______, _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
};
 | 
			
		||||
@@ -0,0 +1 @@
 | 
			
		||||
# The 65_split_space keymap for serneity65
 | 
			
		||||
							
								
								
									
										34
									
								
								keyboards/wuque/serneity65/keymaps/default/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								keyboards/wuque/serneity65/keymaps/default/keymap.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
			
		||||
/* Copyright 2021 wuque
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can 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_all(
 | 
			
		||||
        KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_MUTE,
 | 
			
		||||
        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS,
 | 
			
		||||
        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_ENT,  KC_BSPC, KC_PGUP,
 | 
			
		||||
        KC_LSFT, KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_UP,   KC_END,
 | 
			
		||||
        KC_LCTL, KC_LGUI, KC_LALT, KC_VOLD, KC_SPC,  KC_VOLU, KC_SPC,           KC_SPC,           KC_RALT, MO(1),   KC_LEFT, KC_DOWN, KC_RGHT
 | 
			
		||||
    ),
 | 
			
		||||
    [1] = LAYOUT_all(
 | 
			
		||||
        KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______, KC_MPLY,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
 | 
			
		||||
        _______, _______, _______, KC_MPRV, _______, KC_MNXT, _______,          _______,          _______, _______, _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/wuque/serneity65/keymaps/default/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/wuque/serneity65/keymaps/default/readme.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
# The default keymap for serneity65
 | 
			
		||||
							
								
								
									
										48
									
								
								keyboards/wuque/serneity65/keymaps/via/keymap.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								keyboards/wuque/serneity65/keymaps/via/keymap.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,48 @@
 | 
			
		||||
/* Copyright 2021 wuque
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can 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_all(
 | 
			
		||||
        KC_ESC,  KC_1,    KC_2,    KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS, KC_EQL,  KC_BSPC, KC_MUTE,
 | 
			
		||||
        KC_TAB,  KC_Q,    KC_W,    KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC, KC_RBRC, KC_BSLS,
 | 
			
		||||
        KC_CAPS, KC_A,    KC_S,    KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT, KC_ENT,  KC_BSPC, KC_PGUP,
 | 
			
		||||
        KC_LSFT, KC_LSFT, KC_Z,    KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH, KC_RSFT, KC_UP,   KC_END,
 | 
			
		||||
        KC_LCTL, KC_LGUI, KC_LALT, KC_VOLD, KC_SPC,  KC_VOLU, KC_SPC,           KC_SPC,           KC_RALT, MO(1),   KC_LEFT, KC_DOWN, KC_RGHT
 | 
			
		||||
    ),
 | 
			
		||||
    [1] = LAYOUT_all(
 | 
			
		||||
        KC_GRV,  KC_F1,   KC_F2,   KC_F3,   KC_F4,   KC_F5,   KC_F6,   KC_F7,   KC_F8,   KC_F9,   KC_F10,  KC_F11,  KC_F12,  _______, KC_MPLY,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
 | 
			
		||||
        _______, _______, _______, KC_MPRV, _______, KC_MNXT, _______,          _______,          _______, _______, _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
    [2] = LAYOUT_all(
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______,          _______,          _______, _______, _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
    [3] = LAYOUT_all(
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______, _______, _______, _______,          _______,          _______, _______, _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										1
									
								
								keyboards/wuque/serneity65/keymaps/via/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/wuque/serneity65/keymaps/via/readme.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
# The via keymap for serneity65
 | 
			
		||||
							
								
								
									
										2
									
								
								keyboards/wuque/serneity65/keymaps/via/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								keyboards/wuque/serneity65/keymaps/via/rules.mk
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
			
		||||
VIA_ENABLE = yes
 | 
			
		||||
LTO_ENABLE = yes
 | 
			
		||||
							
								
								
									
										24
									
								
								keyboards/wuque/serneity65/readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								keyboards/wuque/serneity65/readme.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
# serneity65
 | 
			
		||||
 | 
			
		||||
More Info at [serneity65](https://shop.wuquestudio.com/)
 | 
			
		||||
 | 
			
		||||
* Keyboard Maintainer: [spbgzh](https://github.com/spbgzh)
 | 
			
		||||
* Hardware Supported: zoom65 Standard
 | 
			
		||||
* Hardware Availability: [serneity65](https://shop.wuquestudio.com/)  
 | 
			
		||||
 | 
			
		||||
Make example for this keyboard (after setting up your build environment):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    make wuque/serneity65:default
 | 
			
		||||
 | 
			
		||||
Flashing example for this keyboard:
 | 
			
		||||
 | 
			
		||||
    make wuque/serneity65:default:flash
 | 
			
		||||
 | 
			
		||||
To reset the board into bootloader mode, do one of the following:
 | 
			
		||||
 | 
			
		||||
* Tap the Reset switch mounted on the PCB
 | 
			
		||||
* In the case of the default keymap, use the key combination Fn + End
 | 
			
		||||
* Hold the Esc key while connecting the USB cable (also erases persistent settings)
 | 
			
		||||
 | 
			
		||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
 | 
			
		||||
							
								
								
									
										25
									
								
								keyboards/wuque/serneity65/rules.mk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								keyboards/wuque/serneity65/rules.mk
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
			
		||||
# MCU name
 | 
			
		||||
MCU = atmega32u4
 | 
			
		||||
 | 
			
		||||
# Bootloader selection
 | 
			
		||||
BOOTLOADER = atmel-dfu
 | 
			
		||||
 | 
			
		||||
# Build Options
 | 
			
		||||
#   change yes to no to disable
 | 
			
		||||
#
 | 
			
		||||
BOOTMAGIC_ENABLE = lite     # Virtual DIP switch configuration
 | 
			
		||||
MOUSEKEY_ENABLE = yes       # Mouse keys
 | 
			
		||||
EXTRAKEY_ENABLE = yes       # Audio control and System control
 | 
			
		||||
CONSOLE_ENABLE = yes         # Console for debug
 | 
			
		||||
COMMAND_ENABLE = no         # Commands for debug and configuration
 | 
			
		||||
# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
 | 
			
		||||
SLEEP_LED_ENABLE = no       # Breathing sleep LED during USB suspend
 | 
			
		||||
# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
 | 
			
		||||
NKRO_ENABLE = yes           # USB Nkey Rollover
 | 
			
		||||
BACKLIGHT_ENABLE = no       # Enable keyboard backlight functionality
 | 
			
		||||
RGBLIGHT_ENABLE = no       # Enable keyboard RGB underglow
 | 
			
		||||
BLUETOOTH_ENABLE = no       # Enable Bluetooth
 | 
			
		||||
AUDIO_ENABLE = no           # Audio output
 | 
			
		||||
ENCODER_ENABLE = yes		# Enable Encoder
 | 
			
		||||
 | 
			
		||||
LAYOUT = 65_ansi
 | 
			
		||||
							
								
								
									
										71
									
								
								keyboards/wuque/serneity65/serneity65.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								keyboards/wuque/serneity65/serneity65.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,71 @@
 | 
			
		||||
/* Copyright 2021 wuque
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can 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 "serneity65.h"
 | 
			
		||||
 | 
			
		||||
#ifdef VIA_ENABLE
 | 
			
		||||
static uint8_t encoder_state[ENCODERS] = {0};
 | 
			
		||||
static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
 | 
			
		||||
static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
 | 
			
		||||
 | 
			
		||||
void encoder_action_unregister(void)
 | 
			
		||||
{
 | 
			
		||||
    for (int index = 0; index < ENCODERS; ++index)
 | 
			
		||||
    {
 | 
			
		||||
        if (encoder_state[index])
 | 
			
		||||
        {
 | 
			
		||||
            keyevent_t encoder_event = (keyevent_t){
 | 
			
		||||
                .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
 | 
			
		||||
                .pressed = false,
 | 
			
		||||
                .time = (timer_read() | 1)};
 | 
			
		||||
            encoder_state[index] = 0;
 | 
			
		||||
            action_exec(encoder_event);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
void encoder_action_register(uint8_t index, bool clockwise)
 | 
			
		||||
{
 | 
			
		||||
    keyevent_t encoder_event = (keyevent_t){
 | 
			
		||||
        .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
 | 
			
		||||
        .pressed = true,
 | 
			
		||||
        .time = (timer_read() | 1)};
 | 
			
		||||
    encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
 | 
			
		||||
    action_exec(encoder_event);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void matrix_scan_kb(void)
 | 
			
		||||
{
 | 
			
		||||
    encoder_action_unregister();
 | 
			
		||||
    matrix_scan_user();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool encoder_update_kb(uint8_t index, bool clockwise)
 | 
			
		||||
{
 | 
			
		||||
    encoder_action_register(index, clockwise);
 | 
			
		||||
    return true;
 | 
			
		||||
};
 | 
			
		||||
#else
 | 
			
		||||
bool encoder_update_user(uint8_t index, bool clockwise) {
 | 
			
		||||
    if (index == 0) { /* First encoder */
 | 
			
		||||
        if (clockwise) {
 | 
			
		||||
            tap_code(KC_PGDN);
 | 
			
		||||
        } else {
 | 
			
		||||
            tap_code(KC_PGUP);
 | 
			
		||||
        }
 | 
			
		||||
    } 
 | 
			
		||||
    return true;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										159
									
								
								keyboards/wuque/serneity65/serneity65.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										159
									
								
								keyboards/wuque/serneity65/serneity65.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,159 @@
 | 
			
		||||
/* Copyright 2021 wuque
 | 
			
		||||
 *
 | 
			
		||||
 * This program is free software: you can redistribute it and/or modify
 | 
			
		||||
 * it under the terms of the GNU General Public License as published by
 | 
			
		||||
 * the Free Software Foundation, either version 2 of the License, or
 | 
			
		||||
 * (at your option) any later version.
 | 
			
		||||
 *
 | 
			
		||||
 * This program is distributed in the hope that it will be useful,
 | 
			
		||||
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
 * GNU General Public License for more details.
 | 
			
		||||
 *
 | 
			
		||||
 * You should have received a copy of the GNU General Public License
 | 
			
		||||
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#pragma once
 | 
			
		||||
 | 
			
		||||
#include "quantum.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Standard Arrangement
 | 
			
		||||
 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
 | 
			
		||||
 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │2d │ ◯
 | 
			
		||||
 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
 | 
			
		||||
 * │10   │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d   │
 | 
			
		||||
 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┐
 | 
			
		||||
 * │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c      │2e │
 | 
			
		||||
 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
 | 
			
		||||
 * │30  │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c    │3d │3e │
 | 
			
		||||
 * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
 | 
			
		||||
 * │40  │41  │42  │44      │46  │48        │4a  │4b  │ │4c │4d │4e │
 | 
			
		||||
 * └────┴────┴────┴────────┴────┴──────────┴────┴────┘ └───┴───┴───┘
 | 
			
		||||
 */
 | 
			
		||||
#define LAYOUT_all( \
 | 
			
		||||
    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,      \
 | 
			
		||||
    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,           \
 | 
			
		||||
    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E,      \
 | 
			
		||||
    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E,      \
 | 
			
		||||
    K40, K41, K42, K43, K44, K45, K46,      K48,      K4A, K4B, K4C, K4D, K4E       \
 | 
			
		||||
) { \
 | 
			
		||||
    { K00,   K01,   K02,   K03,   K04,   K05,   K06,   K07,   K08,   K09,   K0A,   K0B,   K0C,   K0D,   K0E     }, \
 | 
			
		||||
    { K10,   K11,   K12,   K13,   K14,   K15,   K16,   K17,   K18,   K19,   K1A,   K1B,   K1C,   K1D,   KC_NO   }, \
 | 
			
		||||
    { K20,   K21,   K22,   K23,   K24,   K25,   K26,   K27,   K28,   K29,   K2A,   K2B,   K2C,   K2D,   K2E     }, \
 | 
			
		||||
    { K30,   K31,   K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   K3C,   K3D,   K3E     }, \
 | 
			
		||||
    { K40,   K41,   K42,   K43,   K44,   K45,   K46,   KC_NO, K48,   KC_NO, K4A,   K4B,   K4C,   K4D,   K4E     }, \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* LAYOUT_65_ansi
 | 
			
		||||
 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
 | 
			
		||||
 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d     │ ◯
 | 
			
		||||
 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
 | 
			
		||||
 * │10   │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d   │
 | 
			
		||||
 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┐
 | 
			
		||||
 * │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c      │2e │
 | 
			
		||||
 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
 | 
			
		||||
 * │30      │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c    │3d │3e │
 | 
			
		||||
 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
 | 
			
		||||
 * │40  │41  │42  │46                      │4a  │4b  │ │4c │4d │4e │
 | 
			
		||||
 * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
 | 
			
		||||
 */
 | 
			
		||||
#define LAYOUT_65_ansi( \
 | 
			
		||||
    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,      \
 | 
			
		||||
    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,           \
 | 
			
		||||
    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,      K2E,      \
 | 
			
		||||
    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E,      \
 | 
			
		||||
    K40, K41, K42,                K46,                K4A, K4B, K4C, K4D, K4E       \
 | 
			
		||||
) { \
 | 
			
		||||
    { K00,   K01,   K02,   K03,   K04,   K05,   K06,   K07,   K08,   K09,   K0A,   K0B,   K0C,   K0D,   K0E     }, \
 | 
			
		||||
    { K10,   K11,   K12,   K13,   K14,   K15,   K16,   K17,   K18,   K19,   K1A,   K1B,   K1C,   K1D,   KC_NO   }, \
 | 
			
		||||
    { K20,   K21,   K22,   K23,   K24,   K25,   K26,   K27,   K28,   K29,   K2A,   K2B,   K2C,   KC_NO, K2E     }, \
 | 
			
		||||
    { K30,   KC_NO, K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   K3C,   K3D,   K3E     }, \
 | 
			
		||||
    { K40,   K41,   K42,   KC_NO, KC_NO, KC_NO, K46,   KC_NO, KC_NO, KC_NO, K4A,   K4B,   K4C,   K4D,   K4E     }, \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* LAYOUT_65_ansi_split_bs
 | 
			
		||||
 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
 | 
			
		||||
 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │2d │ ◯
 | 
			
		||||
 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
 | 
			
		||||
 * │10   │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d   │
 | 
			
		||||
 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┐
 | 
			
		||||
 * │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c      │2e │
 | 
			
		||||
 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
 | 
			
		||||
 * │30      │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c    │3d │3e │
 | 
			
		||||
 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
 | 
			
		||||
 * │40  │41  │42  │46                      │4a  │4b  │ │4c │4d │4e │
 | 
			
		||||
 * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
 | 
			
		||||
 */
 | 
			
		||||
#define LAYOUT_65_ansi_split_bs( \
 | 
			
		||||
    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,      \
 | 
			
		||||
    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,           \
 | 
			
		||||
    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E,      \
 | 
			
		||||
    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E,      \
 | 
			
		||||
    K40, K41, K42,                K46,                K4A, K4B, K4C, K4D, K4E       \
 | 
			
		||||
) { \
 | 
			
		||||
    { K00,   K01,   K02,   K03,   K04,   K05,   K06,   K07,   K08,   K09,   K0A,   K0B,   K0C,   K0D,   K0E     }, \
 | 
			
		||||
    { K10,   K11,   K12,   K13,   K14,   K15,   K16,   K17,   K18,   K19,   K1A,   K1B,   K1C,   K1D,   KC_NO   }, \
 | 
			
		||||
    { K20,   K21,   K22,   K23,   K24,   K25,   K26,   K27,   K28,   K29,   K2A,   K2B,   K2C,   K2D,   K2E     }, \
 | 
			
		||||
    { K30,   KC_NO, K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   K3C,   K3D,   K3E     }, \
 | 
			
		||||
    { K40,   K41,   K42,   KC_NO, KC_NO, KC_NO, K46,   KC_NO, KC_NO, KC_NO, K4A,   K4B,   K4C,   K4D,   K4E     }, \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* LAYOUT_65_ansi_split_lshift
 | 
			
		||||
 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
 | 
			
		||||
 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d     │ ◯
 | 
			
		||||
 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
 | 
			
		||||
 * │10   │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d   │
 | 
			
		||||
 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┐
 | 
			
		||||
 * │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c      │2e │
 | 
			
		||||
 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
 | 
			
		||||
 * │30  │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c    │3d │3e │
 | 
			
		||||
 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
 | 
			
		||||
 * │40  │41  │42  │46                      │4a  │4b  │ │4c │4d │4e │
 | 
			
		||||
 * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
 | 
			
		||||
 */
 | 
			
		||||
#define LAYOUT_65_ansi_split_lshift( \
 | 
			
		||||
    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,      \
 | 
			
		||||
    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,           \
 | 
			
		||||
    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,      K2E,      \
 | 
			
		||||
    K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E,      \
 | 
			
		||||
    K40, K41, K42,                K46,                K4A, K4B, K4C, K4D, K4E       \
 | 
			
		||||
) { \
 | 
			
		||||
    { K00,   K01,   K02,   K03,   K04,   K05,   K06,   K07,   K08,   K09,   K0A,   K0B,   K0C,   K0D,   K0E     }, \
 | 
			
		||||
    { K10,   K11,   K12,   K13,   K14,   K15,   K16,   K17,   K18,   K19,   K1A,   K1B,   K1C,   K1D,   KC_NO   }, \
 | 
			
		||||
    { K20,   K21,   K22,   K23,   K24,   K25,   K26,   K27,   K28,   K29,   K2A,   K2B,   K2C,   KC_NO, K2E     }, \
 | 
			
		||||
    { K30,   K31,   K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   K3C,   K3D,   K3E     }, \
 | 
			
		||||
    { K40,   K41,   K42,   KC_NO, KC_NO, KC_NO, K46,   KC_NO, KC_NO, KC_NO, K4A,   K4B,   K4C,   K4D,   K4E     }, \
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* LAYOUT_65_split_space
 | 
			
		||||
 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
 | 
			
		||||
 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d     │ ◯
 | 
			
		||||
 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
 | 
			
		||||
 * │10   │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d   │
 | 
			
		||||
 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┐
 | 
			
		||||
 * │20    │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c      │2e │
 | 
			
		||||
 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
 | 
			
		||||
 * │30      │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c    │3d │3e │
 | 
			
		||||
 * ├────┬───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
 | 
			
		||||
 * │40  │41  │42  │44      │46  │48        │4a  │4b  │ │4c │4d │4e │
 | 
			
		||||
 * └────┴────┴────┴────────┴────┴──────────┴────┴────┘ └───┴───┴───┘
 | 
			
		||||
 */
 | 
			
		||||
#define LAYOUT_65_split_space( \
 | 
			
		||||
    K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E,      \
 | 
			
		||||
    K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D,           \
 | 
			
		||||
    K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C,      K2E,      \
 | 
			
		||||
    K30,      K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E,      \
 | 
			
		||||
    K40, K41, K42,      K44,      K46,      K48,      K4A, K4B, K4C, K4D, K4E       \
 | 
			
		||||
) { \
 | 
			
		||||
    { K00,   K01,   K02,   K03,   K04,   K05,   K06,   K07,   K08,   K09,   K0A,   K0B,   K0C,   K0D,   K0E     }, \
 | 
			
		||||
    { K10,   K11,   K12,   K13,   K14,   K15,   K16,   K17,   K18,   K19,   K1A,   K1B,   K1C,   K1D,   KC_NO   }, \
 | 
			
		||||
    { K20,   K21,   K22,   K23,   K24,   K25,   K26,   K27,   K28,   K29,   K2A,   K2B,   K2C,   KC_NO, K2E     }, \
 | 
			
		||||
    { K30,   KC_NO, K32,   K33,   K34,   K35,   K36,   K37,   K38,   K39,   K3A,   K3B,   K3C,   K3D,   K3E     }, \
 | 
			
		||||
    { K40,   K41,   K42,   KC_NO, K44,   KC_NO, K46,   KC_NO, K48,   KC_NO, K4A,   K4B,   K4C,   K4D,   K4E     }, \
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								secrets.tar.enc
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								secrets.tar.enc
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user