aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CODE_OF_CONDUCT.md24
-rw-r--r--keyboards/boardsource/technik_s/technik_s.c18
-rw-r--r--keyboards/kb_elmo/qez/config.h44
-rw-r--r--keyboards/kb_elmo/qez/info.json128
-rw-r--r--keyboards/kb_elmo/qez/keymaps/default/keymap.c37
-rw-r--r--keyboards/kb_elmo/qez/keymaps/via/keymap.c43
-rw-r--r--keyboards/kb_elmo/qez/keymaps/via/rules.mk2
-rw-r--r--keyboards/kb_elmo/qez/qez.c17
-rw-r--r--keyboards/kb_elmo/qez/qez.h57
-rw-r--r--keyboards/kb_elmo/qez/readme.md24
-rw-r--r--keyboards/kb_elmo/qez/rules.mk22
-rw-r--r--keyboards/keychron/q1/config.h22
-rw-r--r--keyboards/keychron/q1/q1.c127
-rw-r--r--keyboards/keychron/q1/q1.h7
-rw-r--r--keyboards/keychron/q1/rev_0100/config.h7
-rw-r--r--keyboards/keychron/q1/rev_0100/info.json2
-rw-r--r--keyboards/keychron/q1/rev_0100/keymaps/default/keymap.c6
-rw-r--r--keyboards/keychron/q1/rev_0100/keymaps/via/keymap.c4
-rw-r--r--keyboards/keychron/q1/rev_0100/keymaps/via/rules.mk2
-rw-r--r--keyboards/keychron/q1/rev_0100/readme.md22
-rw-r--r--keyboards/keychron/q1/rev_0100/rev_0100.c143
-rw-r--r--keyboards/keychron/q1/rev_0100/rules.mk8
-rw-r--r--keyboards/keychron/q1/rev_0102/config.h31
-rw-r--r--keyboards/keychron/q1/rev_0102/info.json101
-rw-r--r--keyboards/keychron/q1/rev_0102/keymaps/default/keymap.c64
-rw-r--r--keyboards/keychron/q1/rev_0102/keymaps/via/keymap.c64
-rw-r--r--keyboards/keychron/q1/rev_0102/keymaps/via/rules.mk2
-rw-r--r--keyboards/keychron/q1/rev_0102/readme.md1
-rw-r--r--keyboards/keychron/q1/rev_0102/rev_0102.c143
-rw-r--r--keyboards/keychron/q1/rev_0102/rev_0102.h37
-rw-r--r--keyboards/keychron/q1/rev_0102/rules.mk25
-rw-r--r--keyboards/keyprez/bison/info.json64
-rw-r--r--keyboards/keyprez/rhino/info.json106
-rw-r--r--keyboards/ocean/gin_v2/info.json74
-rw-r--r--keyboards/wuque/serneity65/config.h50
-rw-r--r--keyboards/wuque/serneity65/info.json389
-rw-r--r--keyboards/wuque/serneity65/keymaps/65_ansi/keymap.c34
-rw-r--r--keyboards/wuque/serneity65/keymaps/65_ansi/readme.md1
-rw-r--r--keyboards/wuque/serneity65/keymaps/65_split_bs/keymap.c35
-rw-r--r--keyboards/wuque/serneity65/keymaps/65_split_bs/readme.md1
-rw-r--r--keyboards/wuque/serneity65/keymaps/65_split_lshift/keymap.c34
-rw-r--r--keyboards/wuque/serneity65/keymaps/65_split_lshift/readme.md1
-rw-r--r--keyboards/wuque/serneity65/keymaps/65_split_space/keymap.c34
-rw-r--r--keyboards/wuque/serneity65/keymaps/65_split_space/readme.md1
-rw-r--r--keyboards/wuque/serneity65/keymaps/default/keymap.c34
-rw-r--r--keyboards/wuque/serneity65/keymaps/default/readme.md1
-rw-r--r--keyboards/wuque/serneity65/keymaps/via/keymap.c48
-rw-r--r--keyboards/wuque/serneity65/keymaps/via/readme.md1
-rw-r--r--keyboards/wuque/serneity65/keymaps/via/rules.mk2
-rw-r--r--keyboards/wuque/serneity65/readme.md24
-rw-r--r--keyboards/wuque/serneity65/rules.mk25
-rw-r--r--keyboards/wuque/serneity65/serneity65.c71
-rw-r--r--keyboards/wuque/serneity65/serneity65.h159
-rw-r--r--secrets.tar.encbin10256 -> 0 bytes
54 files changed, 2135 insertions, 288 deletions
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
deleted file mode 100644
index c9e3e0586..000000000
--- a/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1,24 +0,0 @@
1# Code Of Conduct
2
3QMK 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.
4
5> “A gentle word turns away wrath, but a harsh word stirs up anger."
6
7Our 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:
8
9* The use of sexualized language or imagery
10* Unwelcome advances, sexual or otherwise
11* Deliberate intimidation, stalking, or following
12* Insults or derogatory comments, or personal or political attacks
13* Publishing others’ private information without explicit permission
14* Sustained disruption of talks or other events
15* Other conduct which could reasonably be considered inappropriate in a professional setting
16* Advocating for, or encouraging, any of the above behaviour
17
18# Reporting
19
20If 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.
21
22QMK 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.
23
24Reports will be taken and kept in strict confidence. You will not be required to confront an offender directly.
diff --git a/keyboards/boardsource/technik_s/technik_s.c b/keyboards/boardsource/technik_s/technik_s.c
index 63c77928a..a1fe68d1a 100644
--- a/keyboards/boardsource/technik_s/technik_s.c
+++ b/keyboards/boardsource/technik_s/technik_s.c
@@ -17,22 +17,22 @@
17#include "technik_s.h" 17#include "technik_s.h"
18#ifdef RGB_MATRIX_ENABLE 18#ifdef RGB_MATRIX_ENABLE
19led_config_t g_led_config = { { 19led_config_t g_led_config = { {
20 {11,12,13,14,15,16,17,18,19,20,21,22}, 20 {10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21},
21 {23,24,25,26,27,28,29,30,31,32,33}, 21 {22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32},
22 {34,35,36,37,38,39,40,41,42,43,44,45}, 22 {33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44},
23 {46,47,48,49,50,51,52,53,54,55} 23 {45, 46, 47, 48, 49, 50, 51, 52, 53, 54}
24}, { 24}, {
25 {11, 0}, {10, 0}, {9, 0}, {8, 0}, {7, 0}, {6, 0}, {5, 0}, {4, 0}, {3, 0}, {2, 0}, {1, 0}, {0, 0}, 25 {220, 17}, {172, 17}, {112, 17}, { 50, 17}, { 4, 17}, { 4, 56}, { 50, 56}, {112, 56}, {172, 56}, {220, 56},
26 {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}, 26 { 0, 0}, { 20, 0}, { 40, 0}, { 61, 0}, { 81, 0}, {101, 0}, {122, 0}, {142, 0}, {162, 0}, {183, 0}, {203, 0}, {224, 0},
27 {11, 2}, {10, 2}, {9, 2}, {8, 2}, {7, 2}, {6, 2}, {5, 2}, {4, 2}, {3, 2}, {2, 2}, {1, 2}, {0, 2}, 27 { 10, 21}, { 30, 21}, { 51, 21}, { 71, 21}, { 91, 21}, {112, 21}, {132, 21}, {152, 21}, {173, 21}, {193, 21}, {214, 21},
28 {11, 3}, {10, 3}, {9, 3}, {8, 3}, {6.5, 3}, {5, 3}, {3.5, 3}, {2, 3}, {1, 3}, {0, 3}, 28 { 0, 42}, { 20, 42}, { 40, 42}, { 61, 42}, { 81, 42}, {101, 42}, {122, 42}, {142, 42}, {162, 42}, {183, 42}, {203, 42}, {224, 42},
29 { 0, 64}, { 20, 64}, { 40, 64}, { 68, 64}, { 97, 64}, {126, 64}, {154, 64}, {183, 64}, {203, 64}, {224, 64}
29}, { 30}, {
30 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 31 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
31 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 32 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
32 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 33 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
33 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1, 34 1, 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 1,
34 1, 1, 1, 1, 4, 4, 1, 1, 1, 1 35 1, 1, 1, 1, 4, 4, 1, 1, 1, 1
35
36} }; 36} };
37#endif 37#endif
38 38
diff --git a/keyboards/kb_elmo/qez/config.h b/keyboards/kb_elmo/qez/config.h
new file mode 100644
index 000000000..055ebe2a4
--- /dev/null
+++ b/keyboards/kb_elmo/qez/config.h
@@ -0,0 +1,44 @@
1/*
2Copyright 2021 kb-elmo<mail@elmo.space>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include "config_common.h"
21
22/* USB Device descriptor parameter */
23#define VENDOR_ID 0xA68C
24#define PRODUCT_ID 0x675F
25#define DEVICE_VER 0x0001
26#define MANUFACTURER kb_elmo
27#define PRODUCT QEZ
28
29/* key matrix size */
30#define MATRIX_ROWS 4
31#define MATRIX_COLS 10
32
33/* Keyboard Matrix Assignments */
34#define MATRIX_ROW_PINS { C6, C4, B1, B0 }
35#define MATRIX_COL_PINS { C7, B7, B6, B5, B4, B3, D6, D5, D4, D3 }
36
37/* COL2ROW, ROW2COL */
38#define DIODE_DIRECTION COL2ROW
39
40/* Debounce reduces chatter */
41#define DEBOUNCE 5
42
43/* Indicator LEDs */
44#define LED_CAPS_LOCK_PIN C5
diff --git a/keyboards/kb_elmo/qez/info.json b/keyboards/kb_elmo/qez/info.json
new file mode 100644
index 000000000..82b8d2044
--- /dev/null
+++ b/keyboards/kb_elmo/qez/info.json
@@ -0,0 +1,128 @@
1{
2 "keyboard_name": "qez",
3 "url": "",
4 "maintainer": "kb-elmo<mail@elmo.space>",
5 "width": 10.25,
6 "height": 4,
7 "layouts": {
8 "LAYOUT_split_space": {
9 "layout": [
10 {"x":0, "y":0},
11 {"x":1, "y":0},
12 {"x":2, "y":0},
13 {"x":3, "y":0},
14 {"x":4, "y":0},
15 {"x":5, "y":0},
16 {"x":6, "y":0},
17 {"x":7, "y":0},
18 {"x":8, "y":0},
19 {"x":9, "y":0, "w":1.25},
20 {"x":0, "y":1, "w":1.25},
21 {"x":1.25, "y":1},
22 {"x":2.25, "y":1},
23 {"x":3.25, "y":1},
24 {"x":4.25, "y":1},
25 {"x":5.25, "y":1},
26 {"x":6.25, "y":1},
27 {"x":7.25, "y":1},
28 {"x":8.25, "y":1},
29 {"x":9.25, "y":1},
30 {"x":0, "y":2, "w":1.75},
31 {"x":1.75, "y":2},
32 {"x":2.75, "y":2},
33 {"x":3.75, "y":2},
34 {"x":4.75, "y":2},
35 {"x":5.75, "y":2},
36 {"x":6.75, "y":2},
37 {"x":7.75, "y":2},
38 {"x":8.75, "y":2, "w":1.5},
39 {"x":0, "y":3},
40 {"x":1, "y":3},
41 {"x":2, "y":3},
42 {"x":3, "y":3, "w":2.25},
43 {"x":5.25, "y":3, "w":2},
44 {"x":7.25, "y":3},
45 {"x":8.25, "y":3},
46 {"x":9.25, "y":3}
47 ]
48 },
49 "LAYOUT_triple_space": {
50 "layout": [
51 {"x":0, "y":0},
52 {"x":1, "y":0},
53 {"x":2, "y":0},
54 {"x":3, "y":0},
55 {"x":4, "y":0},
56 {"x":5, "y":0},
57 {"x":6, "y":0},
58 {"x":7, "y":0},
59 {"x":8, "y":0},
60 {"x":9, "y":0, "w":1.25},
61 {"x":0, "y":1, "w":1.25},
62 {"x":1.25, "y":1},
63 {"x":2.25, "y":1},
64 {"x":3.25, "y":1},
65 {"x":4.25, "y":1},
66 {"x":5.25, "y":1},
67 {"x":6.25, "y":1},
68 {"x":7.25, "y":1},
69 {"x":8.25, "y":1},
70 {"x":9.25, "y":1},
71 {"x":0, "y":2, "w":1.75},
72 {"x":1.75, "y":2},
73 {"x":2.75, "y":2},
74 {"x":3.75, "y":2},
75 {"x":4.75, "y":2},
76 {"x":5.75, "y":2},
77 {"x":6.75, "y":2},
78 {"x":7.75, "y":2},
79 {"x":8.75, "y":2, "w":1.5},
80 {"x":0, "y":3},
81 {"x":1, "y":3},
82 {"x":2, "y":3, "w":2.5},
83 {"x":4.5, "y":3, "w":1.5},
84 {"x":6, "y":3, "w":2.25},
85 {"x":8.25, "y":3},
86 {"x":9.25, "y":3}
87 ]
88 },
89 "LAYOUT_full_space": {
90 "layout": [
91 {"x":0, "y":0},
92 {"x":1, "y":0},
93 {"x":2, "y":0},
94 {"x":3, "y":0},
95 {"x":4, "y":0},
96 {"x":5, "y":0},
97 {"x":6, "y":0},
98 {"x":7, "y":0},
99 {"x":8, "y":0},
100 {"x":9, "y":0, "w":1.25},
101 {"x":0, "y":1, "w":1.25},
102 {"x":1.25, "y":1},
103 {"x":2.25, "y":1},
104 {"x":3.25, "y":1},
105 {"x":4.25, "y":1},
106 {"x":5.25, "y":1},
107 {"x":6.25, "y":1},
108 {"x":7.25, "y":1},
109 {"x":8.25, "y":1},
110 {"x":9.25, "y":1},
111 {"x":0, "y":2, "w":1.75},
112 {"x":1.75, "y":2},
113 {"x":2.75, "y":2},
114 {"x":3.75, "y":2},
115 {"x":4.75, "y":2},
116 {"x":5.75, "y":2},
117 {"x":6.75, "y":2},
118 {"x":7.75, "y":2},
119 {"x":8.75, "y":2, "w":1.5},
120 {"x":0, "y":3},
121 {"x":1, "y":3},
122 {"x":2, "y":3, "w":6.25},
123 {"x":8.25, "y":3},
124 {"x":9.25, "y":3}
125 ]
126 }
127 }
128}
diff --git a/keyboards/kb_elmo/qez/keymaps/default/keymap.c b/keyboards/kb_elmo/qez/keymaps/default/keymap.c
new file mode 100644
index 000000000..d3198af01
--- /dev/null
+++ b/keyboards/kb_elmo/qez/keymaps/default/keymap.c
@@ -0,0 +1,37 @@
1/* Copyright 2021 kb-elmo<mail@elmo.space>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT_split_space(
20 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
21 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
22 LT(1,KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LT(2,KC_DOT),
23 KC_LCTL, KC_LGUI, KC_LALT, LSFT_T(KC_SPC), KC_BSPC, KC_RALT, MO(1), MO(2)
24 ),
25 [1] = LAYOUT_split_space(
26 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
27 KC_TAB, KC_ESC, KC_MINS, KC_EQL, KC_TRNS, KC_SCLN, KC_QUOT, KC_LBRC, KC_RBRC, KC_BSLS,
28 KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLSH,
29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS
30 ),
31 [2] = LAYOUT_split_space(
32 KC_HOME, KC_UP, KC_END, KC_PGUP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
33 KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
35 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
36 )
37};
diff --git a/keyboards/kb_elmo/qez/keymaps/via/keymap.c b/keyboards/kb_elmo/qez/keymaps/via/keymap.c
new file mode 100644
index 000000000..0866c9950
--- /dev/null
+++ b/keyboards/kb_elmo/qez/keymaps/via/keymap.c
@@ -0,0 +1,43 @@
1/* Copyright 2021 kb-elmo<mail@elmo.space>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16#include QMK_KEYBOARD_H
17
18const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
19 [0] = LAYOUT_split_space(
20 KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P,
21 KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_ENT,
22 LT(1,KC_Z), KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, LT(2,KC_DOT),
23 KC_LCTL, KC_LGUI, KC_LALT, LSFT_T(KC_SPC), KC_BSPC, KC_RALT, MO(1), MO(2)
24 ),
25 [1] = LAYOUT_split_space(
26 KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0,
27 KC_TAB, KC_ESC, KC_MINS, KC_EQL, KC_TRNS, KC_TRNS, KC_TRNS, KC_LBRC, KC_RBRC, KC_BSLS,
28 KC_CAPS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_SLSH,
29 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_DEL, KC_TRNS, KC_TRNS, KC_TRNS
30 ),
31 [2] = LAYOUT_split_space(
32 KC_HOME, KC_UP, KC_END, KC_PGUP, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6,
33 KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12,
34 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
35 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
36 ),
37 [3] = LAYOUT_split_space(
38 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
39 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
40 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
41 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS
42 )
43};
diff --git a/keyboards/kb_elmo/qez/keymaps/via/rules.mk b/keyboards/kb_elmo/qez/keymaps/via/rules.mk
new file mode 100644
index 000000000..36b7ba9cb
--- /dev/null
+++ b/keyboards/kb_elmo/qez/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
diff --git a/keyboards/kb_elmo/qez/qez.c b/keyboards/kb_elmo/qez/qez.c
new file mode 100644
index 000000000..68808fad8
--- /dev/null
+++ b/keyboards/kb_elmo/qez/qez.c
@@ -0,0 +1,17 @@
1/* Copyright 2021 kb-elmo<mail@elmo.space>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "qez.h"
diff --git a/keyboards/kb_elmo/qez/qez.h b/keyboards/kb_elmo/qez/qez.h
new file mode 100644
index 000000000..1bf9cde24
--- /dev/null
+++ b/keyboards/kb_elmo/qez/qez.h
@@ -0,0 +1,57 @@
1/* Copyright 2021 kb-elmo<mail@elmo.space>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21#define ___ KC_NO
22
23#define LAYOUT_split_space( \
24 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
25 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
26 k20, k22, k23, k24, k25, k26, k27, k28, k29, \
27 k21, k31, k32, k33, k36, k37, k38, k39 \
28) { \
29 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \
30 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \
31 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
32 { ___, k31, k32, k33, ___, ___, k36, k37, k38, k39 } \
33}
34
35#define LAYOUT_triple_space( \
36 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
37 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
38 k20, k22, k23, k24, k25, k26, k27, k28, k29, \
39 k21, k31, k33, k35, k36, k38, k39 \
40) { \
41 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \
42 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \
43 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
44 { ___, k31, ___, k33, ___, k35, k36, ___, k38, k39 } \
45}
46
47#define LAYOUT_full_space( \
48 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, \
49 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, \
50 k20, k22, k23, k24, k25, k26, k27, k28, k29, \
51 k21, k31, k35, k38, k39 \
52) { \
53 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09 }, \
54 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19 }, \
55 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29 }, \
56 { ___, k31, k32, ___, ___, k35, ___, k37, k38, k39 } \
57}
diff --git a/keyboards/kb_elmo/qez/readme.md b/keyboards/kb_elmo/qez/readme.md
new file mode 100644
index 000000000..5deb4044a
--- /dev/null
+++ b/keyboards/kb_elmo/qez/readme.md
@@ -0,0 +1,24 @@
1# QEZ
2
3![qez](https://i.imgur.com/x00N9f3l.jpg)
4
5A seamless gasketmounted QAZ-like 40% keyboard
6
7* Keyboard Maintainer: [kb-elmo](https://github.com/kb-elmo)
8* Hardware Supported: QEZ rev.1 PCB
9* Hardware Availability: [Open source project](https://github.com/kb-elmo/QEZ)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make kb_elmo/qez:default
14
15Flashing example for this keyboard:
16
17 make kb_elmo/qez:default:flash
18
19See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
20
21## Bootloader
22
23* **Bootmagic reset**: Hold down the top left key and plug in the keyboard
24* **Physical reset button**: Briefly press the button labeled "RESET" on the back of the PCB \ No newline at end of file
diff --git a/keyboards/kb_elmo/qez/rules.mk b/keyboards/kb_elmo/qez/rules.mk
new file mode 100644
index 000000000..b48dcad7d
--- /dev/null
+++ b/keyboards/kb_elmo/qez/rules.mk
@@ -0,0 +1,22 @@
1# MCU name
2MCU = atmega32u2
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = no # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = no # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output
diff --git a/keyboards/keychron/q1/config.h b/keyboards/keychron/q1/config.h
index fb6a70c86..2a8665c1b 100644
--- a/keyboards/keychron/q1/config.h
+++ b/keyboards/keychron/q1/config.h
@@ -32,15 +32,11 @@
32/* Set 0 if debouncing isn't needed */ 32/* Set 0 if debouncing isn't needed */
33#define DEBOUNCE 5 33#define DEBOUNCE 5
34 34
35/* RGB LED Matrix Configuration */ 35/* RGB Matrix Driver Configuration */
36#define DRIVER_COUNT 2 36#define DRIVER_COUNT 2
37#define DRIVER_ADDR_1 0b1010000 37#define DRIVER_ADDR_1 0b1010000
38#define DRIVER_ADDR_2 0b1011111 38#define DRIVER_ADDR_2 0b1011111
39 39
40#define DRIVER_1_LED_TOTAL 59
41#define DRIVER_2_LED_TOTAL 23
42#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL)
43
44/* DIP switch */ 40/* DIP switch */
45#define DIP_SWITCH_MATRIX_GRID { {0,1} } 41#define DIP_SWITCH_MATRIX_GRID { {0,1} }
46 42
@@ -49,3 +45,19 @@
49 45
50/* NKRO */ 46/* NKRO */
51#define FORCE_NKRO 47#define FORCE_NKRO
48
49/* Disable a single effect */
50#define DISABLE_RGB_MATRIX_ALPHAS_MODS
51#define DISABLE_RGB_MATRIX_GRADIENT_UP_DOWN
52#define DISABLE_RGB_MATRIX_GRADIENT_LEFT_RIGHT
53#define DISABLE_RGB_MATRIX_BAND_SAT
54#define DISABLE_RGB_MATRIX_BAND_VAL
55#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_SAT
56#define DISABLE_RGB_MATRIX_BAND_PINWHEEL_VAL
57#define DISABLE_RGB_MATRIX_BAND_SPIRAL_SAT
58#define DISABLE_RGB_MATRIX_BAND_SPIRAL_VAL
59#define DISABLE_RGB_MATRIX_RAINBOW_PINWHEELS
60#define DISABLE_RGB_MATRIX_JELLYBEAN_RAINDROPS
61#define DISABLE_RGB_MATRIX_HUE_BREATHING
62#define DISABLE_RGB_MATRIX_HUE_PENDULUM
63#define DISABLE_RGB_MATRIX_HUE_WAVE \ No newline at end of file
diff --git a/keyboards/keychron/q1/q1.c b/keyboards/keychron/q1/q1.c
index 6beb96e7e..a316c1fdc 100644
--- a/keyboards/keychron/q1/q1.c
+++ b/keyboards/keychron/q1/q1.c
@@ -16,6 +16,7 @@
16 16
17#include "q1.h" 17#include "q1.h"
18 18
19
19const matrix_row_t matrix_mask[] = { 20const matrix_row_t matrix_mask[] = {
20 0b0111111111111101, 21 0b0111111111111101,
21 0b0111111111111111, 22 0b0111111111111111,
@@ -32,129 +33,3 @@ bool dip_switch_update_kb(uint8_t index, bool active) {
32 } 33 }
33 return true; 34 return true;
34} 35}
35
36const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
37/* Refer to IS31 manual for these locations
38 * driver
39 * | R location
40 * | | G location
41 * | | | B location
42 * | | | | */
43
44 {0, A_1, C_1, B_1},
45 {0, A_3, C_3, B_3},
46 {0, A_4, C_4, B_4},
47 {0, A_5, C_5, B_5},
48 {0, A_6, C_6, B_6},
49 {0, A_7, C_7, B_7},
50 {0, A_8, C_8, B_8},
51 {0, A_9, C_9, B_9},
52 {0, A_10, C_10, B_10},
53 {0, A_11, C_11, B_11},
54 {0, A_12, C_12, B_12},
55 {0, A_13, C_13, B_13},
56 {0, A_14, C_14, B_14},
57 {0, A_15, C_15, B_15},
58 {0, A_16, C_16, B_16},
59
60 {0, D_1, F_1, E_1},
61 {0, D_2, F_2, E_2},
62 {0, D_3, F_3, E_3},
63 {0, D_4, F_4, E_4},
64 {0, D_5, F_5, E_5},
65 {0, D_6, F_6, E_6},
66 {0, D_7, F_7, E_7},
67 {0, D_8, F_8, E_8},
68 {0, D_9, F_9, E_9},
69 {0, D_10, F_10, E_10},
70 {0, D_11, F_11, E_11},
71 {0, D_12, F_12, E_12},
72 {0, D_13, F_13, E_13},
73 {0, D_14, F_14, E_14},
74 {0, D_16, F_16, E_16},
75
76 {0, G_1, I_1, H_1},
77 {0, G_2, I_2, H_2},
78 {0, G_3, I_3, H_3},
79 {0, G_4, I_4, H_4},
80 {0, G_5, I_5, H_5},
81 {0, G_6, I_6, H_6},
82 {0, G_7, I_7, H_7},
83 {0, G_8, I_8, H_8},
84 {0, G_9, I_9, H_9},
85 {0, G_10, I_10, H_10},
86 {0, G_11, I_11, H_11},
87 {0, G_12, I_12, H_12},
88 {0, G_13, I_13, H_13},
89 {0, G_14, I_14, H_14},
90 {0, G_16, I_16, H_16},
91
92 {0, J_1, L_1, K_1},
93 {0, J_2, L_2, K_2},
94 {0, J_3, L_3, K_3},
95 {0, J_4, L_4, K_4},
96 {0, J_5, L_5, K_5},
97 {0, J_6, L_6, K_6},
98 {0, J_7, L_7, K_7},
99 {0, J_8, L_8, K_8},
100 {0, J_9, L_9, K_9},
101 {0, J_10, L_10, K_10},
102 {0, J_11, L_11, K_11},
103 {0, J_12, L_12, K_12},
104 {0, J_14, L_14, K_14},
105 {0, J_16, L_16, K_16},
106 {1, A_1, C_1, B_1},
107
108 {1, A_3, C_3, B_3},
109 {1, A_4, C_4, B_4},
110 {1, A_5, C_5, B_5},
111 {1, A_6, C_6, B_6},
112 {1, A_7, C_7, B_7},
113 {1, A_8, C_8, B_8},
114 {1, A_9, C_9, B_9},
115 {1, A_10, C_10, B_10},
116 {1, A_11, C_11, B_11},
117 {1, A_12, C_12, B_12},
118 {1, A_14, C_14, B_14},
119 {1, A_15, C_15, B_15},
120
121 {1, D_1, F_1, E_1},
122 {1, D_2, F_2, E_2},
123 {1, D_3, F_3, E_3},
124 {1, D_7, F_7, E_7},
125 {1, D_11, F_11, E_11},
126 {1, D_12, F_12, E_12},
127 {1, D_13, F_13, E_13},
128 {1, D_14, F_14, E_14},
129 {1, D_15, F_15, E_15},
130 {1, D_16, F_16, E_16}
131
132};
133
134led_config_t g_led_config = {
135 {
136 { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 },
137 { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
138 { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 },
139 { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 71, 57, 58 },
140 { 59, NO_LED, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 80, 70, 13 },
141 { 72, 73, 74, NO_LED, NO_LED, NO_LED,75, NO_LED, NO_LED, NO_LED, 76, 77, 78, 79, 81 }
142 },
143 {
144 {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},
145 {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},
146 {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},
147 {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},
148 {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},
149 {0,64}, {15,64}, {30,64}, {90,64}, {150,64}, {165,64}, {180,64}, {195,64}, {210,64}, {224,64},
150 },
151 {
152 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
153 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
154 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
155 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
156 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
157 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
158
159 }
160};
diff --git a/keyboards/keychron/q1/q1.h b/keyboards/keychron/q1/q1.h
index 1e92a062a..eb9a7d69a 100644
--- a/keyboards/keychron/q1/q1.h
+++ b/keyboards/keychron/q1/q1.h
@@ -18,6 +18,9 @@
18 18
19#include "quantum.h" 19#include "quantum.h"
20 20
21#if defined(KEYBOARD_keychron_q1_rev_0100) 21
22#if defined(KEYBOARD_keychron_q1_rev_0100)
22# include "rev_0100.h" 23# include "rev_0100.h"
23#endif 24#elif defined(KEYBOARD_keychron_q1_rev_0102)
25# include "rev_0102.h"
26#endif \ No newline at end of file
diff --git a/keyboards/keychron/q1/rev_0100/config.h b/keyboards/keychron/q1/rev_0100/config.h
index 5b910f738..435f386a5 100644
--- a/keyboards/keychron/q1/rev_0100/config.h
+++ b/keyboards/keychron/q1/rev_0100/config.h
@@ -19,8 +19,13 @@
19 19
20/* USB Device descriptor parameter */ 20/* USB Device descriptor parameter */
21#define PRODUCT_ID 0x0100 21#define PRODUCT_ID 0x0100
22#define DEVICE_VER 0x0001 22#define DEVICE_VER 0x0100
23 23
24/* key matrix pins */ 24/* key matrix pins */
25#define MATRIX_ROW_PINS { D3, D2, B3, B2, B1, B0 } 25#define MATRIX_ROW_PINS { D3, D2, B3, B2, B1, B0 }
26#define MATRIX_COL_PINS { D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, F1, F0 } 26#define MATRIX_COL_PINS { D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, F1, F0 }
27
28/* RGB Matrix Configuration */
29#define DRIVER_1_LED_TOTAL 59
30#define DRIVER_2_LED_TOTAL 23
31#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) \ No newline at end of file
diff --git a/keyboards/keychron/q1/rev_0100/info.json b/keyboards/keychron/q1/rev_0100/info.json
index 4d101eac7..215c7b050 100644
--- a/keyboards/keychron/q1/rev_0100/info.json
+++ b/keyboards/keychron/q1/rev_0100/info.json
@@ -1,7 +1,7 @@
1{ 1{
2 "keyboard_name": "Keychron Q1", 2 "keyboard_name": "Keychron Q1",
3 "url": "https://github.com/Keychron", 3 "url": "https://github.com/Keychron",
4 "maintainer": "lokher", 4 "maintainer": "lalalademaxiya1",
5 "width": 16.25, 5 "width": 16.25,
6 "height": 6.25, 6 "height": 6.25,
7 "layouts": { 7 "layouts": {
diff --git a/keyboards/keychron/q1/rev_0100/keymaps/default/keymap.c b/keyboards/keychron/q1/rev_0100/keymaps/default/keymap.c
index fa6f79175..e000dd7dd 100644
--- a/keyboards/keychron/q1/rev_0100/keymaps/default/keymap.c
+++ b/keyboards/keychron/q1/rev_0100/keymaps/default/keymap.c
@@ -24,18 +24,16 @@ enum layers{
24 WIN_FN 24 WIN_FN
25}; 25};
26 26
27
28#define KC_TASK LGUI(KC_TAB) 27#define KC_TASK LGUI(KC_TAB)
29#define KC_FLXP LGUI(KC_E) 28#define KC_FLXP LGUI(KC_E)
30 29
31
32const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 30const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33 31
34[MAC_BASE] = LAYOUT_ansi_82( 32[MAC_BASE] = LAYOUT_ansi_82(
35 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, 33 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,
36 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, 34 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,
37 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, 35 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN,
38 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_HOME, 36 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_HOME,
39 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, 37 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,
40 KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), 38 KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
41 39
@@ -63,4 +61,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
63 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 61 KC_TRNS, 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 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) 62 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
65 63
66}; 64}; \ No newline at end of file
diff --git a/keyboards/keychron/q1/rev_0100/keymaps/via/keymap.c b/keyboards/keychron/q1/rev_0100/keymaps/via/keymap.c
index 4108ade04..e000dd7dd 100644
--- a/keyboards/keychron/q1/rev_0100/keymaps/via/keymap.c
+++ b/keyboards/keychron/q1/rev_0100/keymaps/via/keymap.c
@@ -24,11 +24,9 @@ enum layers{
24 WIN_FN 24 WIN_FN
25}; 25};
26 26
27
28#define KC_TASK LGUI(KC_TAB) 27#define KC_TASK LGUI(KC_TAB)
29#define KC_FLXP LGUI(KC_E) 28#define KC_FLXP LGUI(KC_E)
30 29
31
32const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 30const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
33 31
34[MAC_BASE] = LAYOUT_ansi_82( 32[MAC_BASE] = LAYOUT_ansi_82(
@@ -63,4 +61,4 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
63 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, 61 KC_TRNS, 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 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS) 62 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
65 63
66}; 64}; \ No newline at end of file
diff --git a/keyboards/keychron/q1/rev_0100/keymaps/via/rules.mk b/keyboards/keychron/q1/rev_0100/keymaps/via/rules.mk
index 96d2d189b..bee21da52 100644
--- a/keyboards/keychron/q1/rev_0100/keymaps/via/rules.mk
+++ b/keyboards/keychron/q1/rev_0100/keymaps/via/rules.mk
@@ -1,2 +1,2 @@
1VIA_ENABLE = yes 1VIA_ENABLE = yes
2MOUSEKEY_ENABLE = no 2MOUSEKEY_ENABLE = no \ No newline at end of file
diff --git a/keyboards/keychron/q1/rev_0100/readme.md b/keyboards/keychron/q1/rev_0100/readme.md
index 0131794c1..5cf488f04 100644
--- a/keyboards/keychron/q1/rev_0100/readme.md
+++ b/keyboards/keychron/q1/rev_0100/readme.md
@@ -1,21 +1 @@
1# Keychron Q1 # The ANSI variant of the Keychron Q1 \ No newline at end of file
2
3![Keychron Q1](https://cdn.shopify.com/s/files/1/0059/0630/1017/t/5/assets/pf-823ebdc7--1073.jpg)
4
5A customizable 75% keyboard.
6
7* Keyboard Maintainer: [Keychron](https://github.com/keychron)
8* Hardware Supported: Keychron Q1, Atmega32u4
9* Hardware Availability: [Keychron](https://www.keychron.com)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make keychron/q1/rev_0100:default
14
15Flashing example for this keyboard:
16
17 make keychron/q1/rev_0100:default:flash
18
19**Reset Key**: Hold down the key located at *K00*, commonly programmed as *Esc* while plugging in the keyboard.
20
21See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/keychron/q1/rev_0100/rev_0100.c b/keyboards/keychron/q1/rev_0100/rev_0100.c
new file mode 100644
index 000000000..abc4f2716
--- /dev/null
+++ b/keyboards/keychron/q1/rev_0100/rev_0100.c
@@ -0,0 +1,143 @@
1/* Copyright 2021 @ Keychron (https://www.keychron.com)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "quantum.h"
18
19
20const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
21/* Refer to IS31 manual for these locations
22 * driver
23 * | R location
24 * | | G location
25 * | | | B location
26 * | | | | */
27 {0, C_1, A_1, B_1},
28 {0, C_3, A_3, B_3},
29 {0, C_4, A_4, B_4},
30 {0, C_5, A_5, B_5},
31 {0, C_6, A_6, B_6},
32 {0, C_7, A_7, B_7},
33 {0, C_8, A_8, B_8},
34 {0, C_9, A_9, B_9},
35 {0, C_10, A_10, B_10},
36 {0, C_11, A_11, B_11},
37 {0, C_12, A_12, B_12},
38 {0, C_13, A_13, B_13},
39 {0, C_14, A_14, B_14},
40 {0, C_15, A_15, B_15},
41 {0, C_16, A_16, B_16},
42
43 {0, F_1, D_1, E_1},
44 {0, F_2, D_2, E_2},
45 {0, F_3, D_3, E_3},
46 {0, F_4, D_4, E_4},
47 {0, F_5, D_5, E_5},
48 {0, F_6, D_6, E_6},
49 {0, F_7, D_7, E_7},
50 {0, F_8, D_8, E_8},
51 {0, F_9, D_9, E_9},
52 {0, F_10, D_10, E_10},
53 {0, F_11, D_11, E_11},
54 {0, F_12, D_12, E_12},
55 {0, F_13, D_13, E_13},
56 {0, F_14, D_14, E_14},
57 {0, F_16, D_16, E_16},
58
59 {0, I_1, G_1, H_1},
60 {0, I_2, G_2, H_2},
61 {0, I_3, G_3, H_3},
62 {0, I_4, G_4, H_4},
63 {0, I_5, G_5, H_5},
64 {0, I_6, G_6, H_6},
65 {0, I_7, G_7, H_7},
66 {0, I_8, G_8, H_8},
67 {0, I_9, G_9, H_9},
68 {0, I_10, G_10, H_10},
69 {0, I_11, G_11, H_11},
70 {0, I_12, G_12, H_12},
71 {0, I_13, G_13, H_13},
72 {0, I_14, G_14, H_14},
73 {0, I_16, G_16, H_16},
74
75 {0, L_1, J_1, K_1},
76 {0, L_2, J_2, K_2},
77 {0, L_3, J_3, K_3},
78 {0, L_4, J_4, K_4},
79 {0, L_5, J_5, K_5},
80 {0, L_6, J_6, K_6},
81 {0, L_7, J_7, K_7},
82 {0, L_8, J_8, K_8},
83 {0, L_9, J_9, K_9},
84 {0, L_10, J_10, K_10},
85 {0, L_11, J_11, K_11},
86 {0, L_12, J_12, K_12},
87 {0, L_14, J_14, K_14},
88 {0, L_16, J_16, K_16},
89
90 {1, C_1, A_1, B_1},
91 {1, C_3, A_3, B_3},
92 {1, C_4, A_4, B_4},
93 {1, C_5, A_5, B_5},
94 {1, C_6, A_6, B_6},
95 {1, C_7, A_7, B_7},
96 {1, C_8, A_8, B_8},
97 {1, C_9, A_9, B_9},
98 {1, C_10, A_10, B_10},
99 {1, C_11, A_11, B_11},
100 {1, C_12, A_12, B_12},
101 {1, C_14, A_14, B_14},
102 {1, C_15, A_15, B_15},
103
104 {1, F_1, D_1, E_1},
105 {1, F_2, D_2, E_2},
106 {1, F_3, D_3, E_3},
107 {1, F_7, D_7, E_7},
108 {1, F_11, D_11, E_11},
109 {1, F_12, D_12, E_12},
110 {1, F_13, D_13, E_13},
111 {1, F_14, D_14, E_14},
112 {1, F_15, D_15, E_15},
113 {1, F_16, D_16, E_16}
114
115};
116
117led_config_t g_led_config = {
118 {
119 { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 },
120 { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
121 { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44 },
122 { 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 71, 57, 58 },
123 { 59, NO_LED, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 80, 70, 13 },
124 { 72, 73, 74, NO_LED, NO_LED, NO_LED, 75, NO_LED, NO_LED, NO_LED, 76, 77, 78, 79, 81 }
125 },
126 {
127 {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},
128 {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},
129 {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},
130 {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},
131 {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},
132 {0,64}, {15,64}, {30,64}, {90,64}, {150,64}, {165,64}, {180,64}, {195,64}, {210,64}, {224,64},
133 },
134 {
135 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
136 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
137 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
138 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
139 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
140 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
141
142 }
143};
diff --git a/keyboards/keychron/q1/rev_0100/rules.mk b/keyboards/keychron/q1/rev_0100/rules.mk
index a6c318ac2..9615d19b5 100644
--- a/keyboards/keychron/q1/rev_0100/rules.mk
+++ b/keyboards/keychron/q1/rev_0100/rules.mk
@@ -8,10 +8,10 @@ BOOTLOADER = atmel-dfu
8# change yes to no to disable 8# change yes to no to disable
9# 9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite 10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
11MOUSEKEY_ENABLE = no # Mouse keys 11MOUSEKEY_ENABLE = no # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control 12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug 13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration 14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE 15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend 16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work 17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
diff --git a/keyboards/keychron/q1/rev_0102/config.h b/keyboards/keychron/q1/rev_0102/config.h
new file mode 100644
index 000000000..a537ab4e0
--- /dev/null
+++ b/keyboards/keychron/q1/rev_0102/config.h
@@ -0,0 +1,31 @@
1/* Copyright 2021 @ Keychron (https://www.keychron.com)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19
20/* USB Device descriptor parameter */
21#define PRODUCT_ID 0x0102
22#define DEVICE_VER 0x0100
23
24/* key matrix pins */
25#define MATRIX_ROW_PINS { D3, D2, B3, B2, B1, B0 }
26#define MATRIX_COL_PINS { D5, D4, D6, D7, B4, B5, B6, C6, C7, F7, F6, F5, F4, F1, F0 }
27
28/* RGB Matrix Configuration */
29#define DRIVER_1_LED_TOTAL 59
30#define DRIVER_2_LED_TOTAL 24
31#define DRIVER_LED_TOTAL (DRIVER_1_LED_TOTAL + DRIVER_2_LED_TOTAL) \ No newline at end of file
diff --git a/keyboards/keychron/q1/rev_0102/info.json b/keyboards/keychron/q1/rev_0102/info.json
new file mode 100644
index 000000000..cac67830b
--- /dev/null
+++ b/keyboards/keychron/q1/rev_0102/info.json
@@ -0,0 +1,101 @@
1{
2 "keyboard_name": "Keychron Q1",
3 "url": "https://github.com/Keychron",
4 "maintainer": "lalalademaxiya1",
5 "width": 16.25,
6 "height": 6.5,
7 "layouts": {
8 "LAYOUT_iso_83": {
9 "layout": [
10 {"label":"Esc", "x":0, "y":0},
11 {"label":"F1", "x":1.25, "y":0},
12 {"label":"F2", "x":2.25, "y":0},
13 {"label":"F3", "x":3.25, "y":0},
14 {"label":"F4", "x":4.25, "y":0},
15 {"label":"F5", "x":5.5, "y":0},
16 {"label":"F6", "x":6.5, "y":0},
17 {"label":"F7", "x":7.5, "y":0},
18 {"label":"F8", "x":8.5, "y":0},
19 {"label":"F9", "x":9.75, "y":0},
20 {"label":"F10", "x":10.75, "y":0},
21 {"label":"F11", "x":11.75, "y":0},
22 {"label":"F12", "x":12.75, "y":0},
23 {"label":"Delete", "x":14, "y":0},
24 {"label":"Insert", "x":15.25, "y":0},
25
26 {"label":"~", "x":0, "y":1.25},
27 {"label":"!", "x":1, "y":1.25},
28 {"label":"@", "x":2, "y":1.25},
29 {"label":"#", "x":3, "y":1.25},
30 {"label":"$", "x":4, "y":1.25},
31 {"label":"%", "x":5, "y":1.25},
32 {"label":"^", "x":6, "y":1.25},
33 {"label":"&", "x":7, "y":1.25},
34 {"label":"*", "x":8, "y":1.25},
35 {"label":"(", "x":9, "y":1.25},
36 {"label":")", "x":10, "y":1.25},
37 {"label":"_", "x":11, "y":1.25},
38 {"label":"+", "x":12, "y":1.25},
39 {"label":"Backspace", "x":13, "y":1.25, "w":2},
40 {"label":"Page Up", "x":15.25, "y":1.25},
41
42 {"label":"Tab", "x":0, "y":2.25, "w":1.5},
43 {"label":"Q", "x":1.5, "y":2.25},
44 {"label":"W", "x":2.5, "y":2.25},
45 {"label":"E", "x":3.5, "y":2.25},
46 {"label":"R", "x":4.5, "y":2.25},
47 {"label":"T", "x":5.5, "y":2.25},
48 {"label":"Y", "x":6.5, "y":2.25},
49 {"label":"U", "x":7.5, "y":2.25},
50 {"label":"I", "x":8.5, "y":2.25},
51 {"label":"O", "x":9.5, "y":2.25},
52 {"label":"P", "x":10.5, "y":2.25},
53 {"label":"{", "x":11.5, "y":2.25},
54 {"label":"}", "x":12.5, "y":2.25},
55 {"label":"Page Down", "x":15.25, "y":2.25},
56
57 {"label":"Caps Lock", "x":0, "y":3.25, "w":1.75},
58 {"label":"A", "x":1.75, "y":3.25},
59 {"label":"S", "x":2.75, "y":3.25},
60 {"label":"D", "x":3.75, "y":3.25},
61 {"label":"F", "x":4.75, "y":3.25},
62 {"label":"G", "x":5.75, "y":3.25},
63 {"label":"H", "x":6.75, "y":3.25},
64 {"label":"J", "x":7.75, "y":3.25},
65 {"label":"K", "x":8.75, "y":3.25},
66 {"label":"L", "x":9.75, "y":3.25},
67 {"label":":", "x":10.75, "y":3.25},
68 {"label":"\"", "x":11.75, "y":3.25},
69 {"label":"#~", "x":12.75, "y":3.25},
70 {"label":"Enter", "x":13.75, "y":2.25, "w":1.25, "h":2},
71 {"label":"Home", "x":15.25, "y":3.25},
72
73 {"label":"Shift", "x":0, "y":4.25, "w":1.25},
74 {"label":"\\|", "x":1.25, "y":4.25},
75 {"label":"Z", "x":2.25, "y":4.25},
76 {"label":"X", "x":3.25, "y":4.25},
77 {"label":"C", "x":4.25, "y":4.25},
78 {"label":"V", "x":5.25, "y":4.25},
79 {"label":"B", "x":6.25, "y":4.25},
80 {"label":"N", "x":7.25, "y":4.25},
81 {"label":"M", "x":8.25, "y":4.25},
82 {"label":"<", "x":9.25, "y":4.25},
83 {"label":">", "x":10.25, "y":4.25},
84 {"label":"?", "x":11.25, "y":4.25},
85 {"label":"Shift", "x":12.25, "y":4.25, "w":1.75},
86 {"label":"\u2191", "x":14.25, "y":4.5},
87
88 {"label":"Ctrl", "x":0, "y":5.25, "w":1.25},
89 {"label":"Win", "x":1.25, "y":5.25, "w":1.25},
90 {"label":"Alt", "x":2.5, "y":5.25, "w":1.25},
91 {"label":"Space", "x":3.75, "y":5.25, "w":6.25},
92 {"label":"Alt", "x":10, "y":5.25},
93 {"label":"Fn", "x":11, "y":5.25},
94 {"label":"Ctrl", "x":12, "y":5.25},
95 {"label":"\u2190", "x":13.25, "y":5.5},
96 {"label":"\u2193", "x":14.25, "y":5.5},
97 {"label":"\u2192", "x":15.25, "y":5.5}
98 ]
99 }
100 }
101}
diff --git a/keyboards/keychron/q1/rev_0102/keymaps/default/keymap.c b/keyboards/keychron/q1/rev_0102/keymaps/default/keymap.c
new file mode 100644
index 000000000..b4a7d6442
--- /dev/null
+++ b/keyboards/keychron/q1/rev_0102/keymaps/default/keymap.c
@@ -0,0 +1,64 @@
1/* Copyright 2021 @ Keychron (https://www.keychron.com)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19
20enum layers{
21 MAC_BASE,
22 MAC_FN,
23 WIN_BASE,
24 WIN_FN
25};
26
27#define KC_TASK LGUI(KC_TAB)
28#define KC_FLXP LGUI(KC_E)
29
30const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
31
32[MAC_BASE] = LAYOUT_iso_83(
33 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,
34 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,
35 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,
36 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,
37 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,
38 KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
39
40[MAC_FN] = LAYOUT_iso_83(
41 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,
42 KC_TRNS, KC_TRNS, KC_TRNS, 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 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,
44 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,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
47
48[WIN_BASE] = LAYOUT_iso_83(
49 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,
50 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,
51 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,
52 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,
53 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,
54 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
55
56[WIN_FN] = LAYOUT_iso_83(
57 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,
58 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
59 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,
60 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,
61 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
62 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
63
64}; \ No newline at end of file
diff --git a/keyboards/keychron/q1/rev_0102/keymaps/via/keymap.c b/keyboards/keychron/q1/rev_0102/keymaps/via/keymap.c
new file mode 100644
index 000000000..b4a7d6442
--- /dev/null
+++ b/keyboards/keychron/q1/rev_0102/keymaps/via/keymap.c
@@ -0,0 +1,64 @@
1/* Copyright 2021 @ Keychron (https://www.keychron.com)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19
20enum layers{
21 MAC_BASE,
22 MAC_FN,
23 WIN_BASE,
24 WIN_FN
25};
26
27#define KC_TASK LGUI(KC_TAB)
28#define KC_FLXP LGUI(KC_E)
29
30const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
31
32[MAC_BASE] = LAYOUT_iso_83(
33 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,
34 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,
35 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,
36 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,
37 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,
38 KC_LCTL, KC_LALT, KC_LGUI, KC_SPC, KC_RGUI, MO(MAC_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
39
40[MAC_FN] = LAYOUT_iso_83(
41 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,
42 KC_TRNS, KC_TRNS, KC_TRNS, 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 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,
44 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,
45 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
46 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS),
47
48[WIN_BASE] = LAYOUT_iso_83(
49 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,
50 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,
51 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,
52 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,
53 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,
54 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(WIN_FN),KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT),
55
56[WIN_FN] = LAYOUT_iso_83(
57 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,
58 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
59 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,
60 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,
61 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS,
62 KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS)
63
64}; \ No newline at end of file
diff --git a/keyboards/keychron/q1/rev_0102/keymaps/via/rules.mk b/keyboards/keychron/q1/rev_0102/keymaps/via/rules.mk
new file mode 100644
index 000000000..bee21da52
--- /dev/null
+++ b/keyboards/keychron/q1/rev_0102/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
1VIA_ENABLE = yes
2MOUSEKEY_ENABLE = no \ No newline at end of file
diff --git a/keyboards/keychron/q1/rev_0102/readme.md b/keyboards/keychron/q1/rev_0102/readme.md
new file mode 100644
index 000000000..777ce0477
--- /dev/null
+++ b/keyboards/keychron/q1/rev_0102/readme.md
@@ -0,0 +1 @@
# The ISO variant of the Keychron Q1 \ No newline at end of file
diff --git a/keyboards/keychron/q1/rev_0102/rev_0102.c b/keyboards/keychron/q1/rev_0102/rev_0102.c
new file mode 100644
index 000000000..722284aaa
--- /dev/null
+++ b/keyboards/keychron/q1/rev_0102/rev_0102.c
@@ -0,0 +1,143 @@
1/* Copyright 2021 @ Keychron (https://www.keychron.com)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "quantum.h"
18
19
20const is31_led __flash g_is31_leds[DRIVER_LED_TOTAL] = {
21/* Refer to IS31 manual for these locations
22 * driver
23 * | R location
24 * | | G location
25 * | | | B location
26 * | | | | */
27 {0, C_1, A_1, B_1},
28 {0, C_3, A_3, B_3},
29 {0, C_4, A_4, B_4},
30 {0, C_5, A_5, B_5},
31 {0, C_6, A_6, B_6},
32 {0, C_7, A_7, B_7},
33 {0, C_8, A_8, B_8},
34 {0, C_9, A_9, B_9},
35 {0, C_10, A_10, B_10},
36 {0, C_11, A_11, B_11},
37 {0, C_12, A_12, B_12},
38 {0, C_13, A_13, B_13},
39 {0, C_14, A_14, B_14},
40 {0, C_15, A_15, B_15},
41 {0, C_16, A_16, B_16},
42
43 {0, F_1, D_1, E_1},
44 {0, F_2, D_2, E_2},
45 {0, F_3, D_3, E_3},
46 {0, F_4, D_4, E_4},
47 {0, F_5, D_5, E_5},
48 {0, F_6, D_6, E_6},
49 {0, F_7, D_7, E_7},
50 {0, F_8, D_8, E_8},
51 {0, F_9, D_9, E_9},
52 {0, F_10, D_10, E_10},
53 {0, F_11, D_11, E_11},
54 {0, F_12, D_12, E_12},
55 {0, F_13, D_13, E_13},
56 {0, F_14, D_14, E_14},
57 {0, F_16, D_16, E_16},
58
59 {0, I_1, G_1, H_1},
60 {0, I_2, G_2, H_2},
61 {0, I_3, G_3, H_3},
62 {0, I_4, G_4, H_4},
63 {0, I_5, G_5, H_5},
64 {0, I_6, G_6, H_6},
65 {0, I_7, G_7, H_7},
66 {0, I_8, G_8, H_8},
67 {0, I_9, G_9, H_9},
68 {0, I_10, G_10, H_10},
69 {0, I_11, G_11, H_11},
70 {0, I_12, G_12, H_12},
71 {0, I_13, G_13, H_13},
72 {0, I_16, G_16, H_16},
73
74 {0, L_1, J_1, K_1},
75 {0, L_2, J_2, K_2},
76 {0, L_3, J_3, K_3},
77 {0, L_4, J_4, K_4},
78 {0, L_5, J_5, K_5},
79 {0, L_6, J_6, K_6},
80 {0, L_7, J_7, K_7},
81 {0, L_8, J_8, K_8},
82 {0, L_9, J_9, K_9},
83 {0, L_10, J_10, K_10},
84 {0, L_11, J_11, K_11},
85 {0, L_12, J_12, K_12},
86 {0, L_14, J_14, K_14},
87 {0, I_14, G_14, H_14},
88 {0, L_16, J_16, K_16},
89
90 {1, C_1, A_1, B_1},
91 {1, C_2, A_2, B_2},
92 {1, C_3, A_3, B_3},
93 {1, C_4, A_4, B_4},
94 {1, C_5, A_5, B_5},
95 {1, C_6, A_6, B_6},
96 {1, C_7, A_7, B_7},
97 {1, C_8, A_8, B_8},
98 {1, C_9, A_9, B_9},
99 {1, C_10, A_10, B_10},
100 {1, C_11, A_11, B_11},
101 {1, C_12, A_12, B_12},
102 {1, C_14, A_14, B_14},
103 {1, C_15, A_15, B_15},
104
105 {1, F_1, D_1, E_1},
106 {1, F_2, D_2, E_2},
107 {1, F_3, D_3, E_3},
108 {1, F_7, D_7, E_7},
109 {1, F_11, D_11, E_11},
110 {1, F_12, D_12, E_12},
111 {1, F_13, D_13, E_13},
112 {1, F_14, D_14, E_14},
113 {1, F_15, D_15, E_15},
114 {1, F_16, D_16, E_16}
115};
116
117led_config_t g_led_config = {
118 {
119 { 0, NO_LED, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14 },
120 { 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 },
121 { 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 57, 43 },
122 { 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 72, 56, 58 },
123 { 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 81, 71, 13 },
124 { 73, 74, 75, NO_LED, NO_LED, NO_LED, 76, NO_LED, NO_LED, NO_LED, 77, 78, 79, 80, 82 }
125 },
126 {
127 {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},
128 {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},
129 {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},
130 {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},
131 {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},
132 {0,64}, {15,64}, {30,64}, {90,64}, {150,64}, {165,64}, {180,64}, {195,64}, {210,64}, {224,64},
133 },
134 {
135 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
136 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
137 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
138 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
139 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
140 4, 4, 4, 4, 4, 4, 4, 4, 4, 4
141
142 }
143};
diff --git a/keyboards/keychron/q1/rev_0102/rev_0102.h b/keyboards/keychron/q1/rev_0102/rev_0102.h
new file mode 100644
index 000000000..a13ffa56c
--- /dev/null
+++ b/keyboards/keychron/q1/rev_0102/rev_0102.h
@@ -0,0 +1,37 @@
1/* Copyright 2021 @ Keychron (https://www.keychron.com)
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21#define xxx KC_NO
22
23#define LAYOUT_iso_83( \
24 K00, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K4E, K0E, \
25 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E, \
26 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
27 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, K2D, K3E, \
28 K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4D, K3C, \
29 K50, K51, K52, K56, K5A, K5B, K5C, K5D, K4C, K5E \
30) { \
31 { K00, xxx, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
32 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, K1E }, \
33 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
34 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
35 { K40, K41, K42, K43, K44, K45, K46, K47, K48, K49, K4A, K4B, K4C, K4D, K4E }, \
36 { K50, K51, K52, xxx, xxx, xxx, K56, xxx, xxx, xxx, K5A, K5B, K5C, K5D, K5E } \
37}
diff --git a/keyboards/keychron/q1/rev_0102/rules.mk b/keyboards/keychron/q1/rev_0102/rules.mk
new file mode 100644
index 000000000..9b1725158
--- /dev/null
+++ b/keyboards/keychron/q1/rev_0102/rules.mk
@@ -0,0 +1,25 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = no # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = yes # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output
23DIP_SWITCH_ENABLE = yes
24RGB_MATRIX_ENABLE = yes
25RGB_MATRIX_DRIVER = IS31FL3733 \ No newline at end of file
diff --git a/keyboards/keyprez/bison/info.json b/keyboards/keyprez/bison/info.json
index 58de9b1ae..2d1670be5 100644
--- a/keyboards/keyprez/bison/info.json
+++ b/keyboards/keyprez/bison/info.json
@@ -77,14 +77,14 @@
77 {"label": "Home", "x": 16, "y": 3}, 77 {"label": "Home", "x": 16, "y": 3},
78 {"label": "End", "x": 17, "y": 3}, 78 {"label": "End", "x": 17, "y": 3},
79 79
80 {"label": "OS", "x": 1.75, "y": 4}, 80 {"label": "OS", "x": 3.75, "y": 4},
81 {"label": "Alt", "x": 2.75, "y": 4}, 81 {"label": "Alt", "x": 4.75, "y": 4},
82 {"label": "Lower", "x": 3.75, "y": 4}, 82 {"label": "Lower", "x": 5.75, "y": 4},
83 {"label": "BS", "x": 4.75, "y": 4, "w": 1.5}, 83 {"label": "BS", "x": 6.75, "y": 4, "w": 1.5},
84 {"label": "", "x": 7.75, "y": 4, "w": 1.5}, 84 {"label": "", "x": 9.75, "y": 4, "w": 1.5},
85 {"label": "Raise", "x": 9.25, "y": 4}, 85 {"label": "Raise", "x": 11.25, "y": 4},
86 {"label": "Alt", "x": 10.25, "y": 4}, 86 {"label": "Alt", "x": 12.25, "y": 4},
87 {"label": "OS", "x": 11.25, "y": 4} 87 {"label": "OS", "x": 13.25, "y": 4}
88 ] 88 ]
89 }, 89 },
90 90
@@ -152,14 +152,14 @@
152 {"label": "Home", "x": 16, "y": 3}, 152 {"label": "Home", "x": 16, "y": 3},
153 {"label": "End", "x": 17, "y": 3}, 153 {"label": "End", "x": 17, "y": 3},
154 154
155 {"label": "OS", "x": 1.75, "y": 4}, 155 {"label": "OS", "x": 3.75, "y": 4},
156 {"label": "Alt", "x": 2.75, "y": 4}, 156 {"label": "Alt", "x": 4.75, "y": 4},
157 {"label": "Lower", "x": 3.75, "y": 4}, 157 {"label": "Lower", "x": 5.75, "y": 4},
158 {"label": "BS", "x": 4.75, "y": 4, "w": 1.5}, 158 {"label": "BS", "x": 6.75, "y": 4, "w": 1.5},
159 {"label": "", "x": 7.75, "y": 4, "w": 1.5}, 159 {"label": "", "x": 9.75, "y": 4, "w": 1.5},
160 {"label": "Raise", "x": 9.25, "y": 4}, 160 {"label": "Raise", "x": 11.25, "y": 4},
161 {"label": "Alt", "x": 10.25, "y": 4}, 161 {"label": "Alt", "x": 12.25, "y": 4},
162 {"label": "OS", "x": 11.25, "y": 4} 162 {"label": "OS", "x": 13.25, "y": 4}
163 ] 163 ]
164 }, 164 },
165 165
@@ -227,14 +227,14 @@
227 {"label": "/", "x": 14, "y": 3}, 227 {"label": "/", "x": 14, "y": 3},
228 {"label": "Enter", "x": 15, "y": 3}, 228 {"label": "Enter", "x": 15, "y": 3},
229 229
230 {"label": "OS", "x": 1.75, "y": 4}, 230 {"label": "OS", "x": 3.75, "y": 4},
231 {"label": "Alt", "x": 2.75, "y": 4}, 231 {"label": "Alt", "x": 4.75, "y": 4},
232 {"label": "Lower", "x": 3.75, "y": 4}, 232 {"label": "Lower", "x": 5.75, "y": 4},
233 {"label": "BS", "x": 4.75, "y": 4, "w": 1.5}, 233 {"label": "BS", "x": 6.75, "y": 4, "w": 1.5},
234 {"label": "", "x": 7.75, "y": 4, "w": 1.5}, 234 {"label": "", "x": 9.75, "y": 4, "w": 1.5},
235 {"label": "Raise", "x": 9.25, "y": 4}, 235 {"label": "Raise", "x": 11.25, "y": 4},
236 {"label": "Alt", "x": 10.25, "y": 4}, 236 {"label": "Alt", "x": 12.25, "y": 4},
237 {"label": "FN", "x": 11.25, "y": 4} 237 {"label": "FN", "x": 13.25, "y": 4}
238 ] 238 ]
239 }, 239 },
240 240
@@ -294,14 +294,14 @@
294 {"label": "/", "x": 14, "y": 3}, 294 {"label": "/", "x": 14, "y": 3},
295 {"label": "Enter", "x": 15, "y": 3}, 295 {"label": "Enter", "x": 15, "y": 3},
296 296
297 {"label": "OS", "x": 1.75, "y": 4}, 297 {"label": "OS", "x": 3.75, "y": 4},
298 {"label": "Alt", "x": 2.75, "y": 4}, 298 {"label": "Alt", "x": 4.75, "y": 4},
299 {"label": "Lower", "x": 3.75, "y": 4}, 299 {"label": "Lower", "x": 5.75, "y": 4},
300 {"label": "BS", "x": 4.75, "y": 4, "w": 1.5}, 300 {"label": "BS", "x": 6.75, "y": 4, "w": 1.5},
301 {"label": "", "x": 7.75, "y": 4, "w": 1.5}, 301 {"label": "", "x": 9.75, "y": 4, "w": 1.5},
302 {"label": "Raise", "x": 9.25, "y": 4}, 302 {"label": "Raise", "x": 11.25, "y": 4},
303 {"label": "Alt", "x": 10.25, "y": 4}, 303 {"label": "Alt", "x": 12.25, "y": 4},
304 {"label": "FN", "x": 11.25, "y": 4} 304 {"label": "FN", "x": 13.25, "y": 4}
305 ] 305 ]
306 } 306 }
307 } 307 }
diff --git a/keyboards/keyprez/rhino/info.json b/keyboards/keyprez/rhino/info.json
index 5bf37e06b..84c720ef2 100644
--- a/keyboards/keyprez/rhino/info.json
+++ b/keyboards/keyprez/rhino/info.json
@@ -2,25 +2,12 @@
2 "keyboard_name": "rhino", 2 "keyboard_name": "rhino",
3 "url": "", 3 "url": "",
4 "maintainer": "Christian Sandven", 4 "maintainer": "Christian Sandven",
5 "width": 14, 5 "width": 15,
6 "height": 4, 6 "height": 5,
7 "layouts": { 7 "layouts": {
8 "LAYOUT_ortho_2x2u": { 8 "LAYOUT_ortho_2x2u": {
9 "layout": [ 9 "layout": [
10 {"x": 0, "y": 0, "w": 1.5},
11 {"x": 1.5, "y": 0},
12 {"x": 2.5, "y": 0},
13 {"x": 3.5, "y": 0},
14 {"x": 4.5, "y": 0},
15 {"x": 5.5, "y": 0},
16 {"x": 6.5, "y": 0},
17 {"x": 7.5, "y": 0},
18 {"x": 8.5, "y": 0},
19 {"x": 9.5, "y": 0},
20 {"x": 10.5, "y": 0},
21 {"x": 11.5, "y": 0},
22 {"x": 12.5, "y": 0}, 10 {"x": 12.5, "y": 0},
23 {"x": 13.5, "y": 0, "w": 1.5},
24 11
25 {"x": 0, "y": 1, "w": 1.5}, 12 {"x": 0, "y": 1, "w": 1.5},
26 {"x": 1.5, "y": 1}, 13 {"x": 1.5, "y": 1},
@@ -52,6 +39,21 @@
52 {"x": 12.5, "y": 2}, 39 {"x": 12.5, "y": 2},
53 {"x": 13.5, "y": 2, "w": 1.5}, 40 {"x": 13.5, "y": 2, "w": 1.5},
54 41
42 {"x": 0, "y": 3, "w": 1.5},
43 {"x": 1.5, "y": 3},
44 {"x": 2.5, "y": 3},
45 {"x": 3.5, "y": 3},
46 {"x": 4.5, "y": 3},
47 {"x": 5.5, "y": 3},
48 {"x": 6.5, "y": 3},
49 {"x": 7.5, "y": 3},
50 {"x": 8.5, "y": 3},
51 {"x": 9.5, "y": 3},
52 {"x": 10.5, "y": 3},
53 {"x": 11.5, "y": 3},
54 {"x": 12.5, "y": 3},
55 {"x": 13.5, "y": 3, "w": 1.5},
56
55 {"x": 1.5, "y": 4}, 57 {"x": 1.5, "y": 4},
56 {"x": 2.5, "y": 4}, 58 {"x": 2.5, "y": 4},
57 {"x": 3.5, "y": 4}, 59 {"x": 3.5, "y": 4},
@@ -67,20 +69,7 @@
67 69
68 "LAYOUT_ergo_2x2u": { 70 "LAYOUT_ergo_2x2u": {
69 "layout": [ 71 "layout": [
70 {"x": 0, "y": 0, "w": 1.5},
71 {"x": 1.5, "y": 0},
72 {"x": 2.5, "y": 0},
73 {"x": 3.5, "y": 0},
74 {"x": 4.5, "y": 0},
75 {"x": 5.5, "y": 0},
76 {"x": 6.5, "y": 0, "h": 1.5},
77 {"x": 7.5, "y": 0, "h": 1.5},
78 {"x": 8.5, "y": 0},
79 {"x": 9.5, "y": 0},
80 {"x": 10.5, "y": 0},
81 {"x": 11.5, "y": 0},
82 {"x": 12.5, "y": 0}, 72 {"x": 12.5, "y": 0},
83 {"x": 13.5, "y": 0, "w": 1.5},
84 73
85 {"x": 0, "y": 1, "w": 1.5}, 74 {"x": 0, "y": 1, "w": 1.5},
86 {"x": 1.5, "y": 1}, 75 {"x": 1.5, "y": 1},
@@ -88,8 +77,8 @@
88 {"x": 3.5, "y": 1}, 77 {"x": 3.5, "y": 1},
89 {"x": 4.5, "y": 1}, 78 {"x": 4.5, "y": 1},
90 {"x": 5.5, "y": 1}, 79 {"x": 5.5, "y": 1},
91 {"x": 6.5, "y": 1.5, "h": 1.5}, 80 {"x": 6.5, "y": 1, "h": 1.5},
92 {"x": 7.5, "y": 1.5, "h": 1.5}, 81 {"x": 7.5, "y": 1, "h": 1.5},
93 {"x": 8.5, "y": 1}, 82 {"x": 8.5, "y": 1},
94 {"x": 9.5, "y": 1}, 83 {"x": 9.5, "y": 1},
95 {"x": 10.5, "y": 1}, 84 {"x": 10.5, "y": 1},
@@ -103,6 +92,8 @@
103 {"x": 3.5, "y": 2}, 92 {"x": 3.5, "y": 2},
104 {"x": 4.5, "y": 2}, 93 {"x": 4.5, "y": 2},
105 {"x": 5.5, "y": 2}, 94 {"x": 5.5, "y": 2},
95 {"x": 6.5, "y": 2.5, "h": 1.5},
96 {"x": 7.5, "y": 2.5, "h": 1.5},
106 {"x": 8.5, "y": 2}, 97 {"x": 8.5, "y": 2},
107 {"x": 9.5, "y": 2}, 98 {"x": 9.5, "y": 2},
108 {"x": 10.5, "y": 2}, 99 {"x": 10.5, "y": 2},
@@ -110,6 +101,19 @@
110 {"x": 12.5, "y": 2}, 101 {"x": 12.5, "y": 2},
111 {"x": 13.5, "y": 2, "w": 1.5}, 102 {"x": 13.5, "y": 2, "w": 1.5},
112 103
104 {"x": 0, "y": 3, "w": 1.5},
105 {"x": 1.5, "y": 3},
106 {"x": 2.5, "y": 3},
107 {"x": 3.5, "y": 3},
108 {"x": 4.5, "y": 3},
109 {"x": 5.5, "y": 3},
110 {"x": 8.5, "y": 3},
111 {"x": 9.5, "y": 3},
112 {"x": 10.5, "y": 3},
113 {"x": 11.5, "y": 3},
114 {"x": 12.5, "y": 3},
115 {"x": 13.5, "y": 3, "w": 1.5},
116
113 {"x": 1.5, "y": 4}, 117 {"x": 1.5, "y": 4},
114 {"x": 2.5, "y": 4}, 118 {"x": 2.5, "y": 4},
115 {"x": 3.5, "y": 4}, 119 {"x": 3.5, "y": 4},
@@ -125,20 +129,7 @@
125 129
126 "LAYOUT_ortho_7u": { 130 "LAYOUT_ortho_7u": {
127 "layout": [ 131 "layout": [
128 {"x": 0, "y": 0, "w": 1.5},
129 {"x": 1.5, "y": 0},
130 {"x": 2.5, "y": 0},
131 {"x": 3.5, "y": 0},
132 {"x": 4.5, "y": 0},
133 {"x": 5.5, "y": 0},
134 {"x": 6.5, "y": 0, "h": 1.5},
135 {"x": 7.5, "y": 0, "h": 1.5},
136 {"x": 8.5, "y": 0},
137 {"x": 9.5, "y": 0},
138 {"x": 10.5, "y": 0},
139 {"x": 11.5, "y": 0},
140 {"x": 12.5, "y": 0}, 132 {"x": 12.5, "y": 0},
141 {"x": 13.5, "y": 0, "w": 1.5},
142 133
143 {"x": 0, "y": 1, "w": 1.5}, 134 {"x": 0, "y": 1, "w": 1.5},
144 {"x": 1.5, "y": 1}, 135 {"x": 1.5, "y": 1},
@@ -146,14 +137,14 @@
146 {"x": 3.5, "y": 1}, 137 {"x": 3.5, "y": 1},
147 {"x": 4.5, "y": 1}, 138 {"x": 4.5, "y": 1},
148 {"x": 5.5, "y": 1}, 139 {"x": 5.5, "y": 1},
149 {"x": 6.5, "y": 1.5, "h": 1.5}, 140 {"x": 6.5, "y": 1},
150 {"x": 7.5, "y": 1.5, "h": 1.5}, 141 {"x": 7.5, "y": 1},
151 {"x": 8.5, "y": 1}, 142 {"x": 8.5, "y": 1},
152 {"x": 9.5, "y": 1}, 143 {"x": 9.5, "y": 1},
153 {"x": 10.5, "y": 1}, 144 {"x": 10.5, "y": 1},
154 {"x": 11.5, "y": 1}, 145 {"x": 11.5, "y": 1},
155 {"x": 12.5, "y": 1, "w": 1.5}, 146 {"x": 12.5, "y": 1},
156 {"x": 14, "y": 1}, 147 {"x": 13.5, "y": 1, "w": 1.5},
157 148
158 {"x": 0, "y": 2, "w": 1.5}, 149 {"x": 0, "y": 2, "w": 1.5},
159 {"x": 1.5, "y": 2}, 150 {"x": 1.5, "y": 2},
@@ -161,13 +152,30 @@
161 {"x": 3.5, "y": 2}, 152 {"x": 3.5, "y": 2},
162 {"x": 4.5, "y": 2}, 153 {"x": 4.5, "y": 2},
163 {"x": 5.5, "y": 2}, 154 {"x": 5.5, "y": 2},
155 {"x": 6.5, "y": 2},
156 {"x": 7.5, "y": 2},
164 {"x": 8.5, "y": 2}, 157 {"x": 8.5, "y": 2},
165 {"x": 9.5, "y": 2}, 158 {"x": 9.5, "y": 2},
166 {"x": 10.5, "y": 2}, 159 {"x": 10.5, "y": 2},
167 {"x": 11.5, "y": 2, "w": 1.5}, 160 {"x": 11.5, "y": 2},
168 {"x": 13, "y": 2}, 161 {"x": 12.5, "y": 2, "w": 1.5},
169 {"x": 14, "y": 2}, 162 {"x": 14, "y": 2},
170 163
164 {"x": 0, "y": 3, "w": 1.5},
165 {"x": 1.5, "y": 3},
166 {"x": 2.5, "y": 3},
167 {"x": 3.5, "y": 3},
168 {"x": 4.5, "y": 3},
169 {"x": 5.5, "y": 3},
170 {"x": 6.5, "y": 3},
171 {"x": 7.5, "y": 3},
172 {"x": 8.5, "y": 3},
173 {"x": 9.5, "y": 3},
174 {"x": 10.5, "y": 3},
175 {"x": 11.5, "y": 3, "w": 1.5},
176 {"x": 13, "y": 3},
177 {"x": 14, "y": 3},
178
171 {"x": 1.5, "y": 4}, 179 {"x": 1.5, "y": 4},
172 {"x": 2.5, "y": 4, "w": 1.5}, 180 {"x": 2.5, "y": 4, "w": 1.5},
173 {"x": 4, "y": 4, "w": 7}, 181 {"x": 4, "y": 4, "w": 7},
diff --git a/keyboards/ocean/gin_v2/info.json b/keyboards/ocean/gin_v2/info.json
index f907061a5..8e435dc0e 100644
--- a/keyboards/ocean/gin_v2/info.json
+++ b/keyboards/ocean/gin_v2/info.json
@@ -1,12 +1,74 @@
1{ 1{
2 "keyboard_name": "Gin V2", 2 "keyboard_name": "Gin V2",
3 "url": " ", 3 "url": "",
4 "maintainer": "Ocean", 4 "maintainer": "Ocean",
5 "width": 16.25, 5 "width": 16.25,
6 "height": 4, 6 "height": 4,
7 "layouts": { 7 "layouts": {
8 "LAYOUT": { 8 "LAYOUT": {
9 "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}] 9 "layout": [
10 {"x": 0, "y": 0},
11 {"x": 1, "y": 0},
12 {"x": 2, "y": 0},
13 {"x": 3.25, "y": 0},
14 {"x": 4.25, "y": 0},
15 {"x": 5.25, "y": 0},
16 {"x": 6.25, "y": 0},
17 {"x": 7.25, "y": 0},
18 {"x": 8.25, "y": 0},
19 {"x": 9.25, "y": 0},
20 {"x": 10.25, "y": 0},
21 {"x": 11.25, "y": 0},
22 {"x": 12.25, "y": 0},
23 {"x": 13.25, "y": 0},
24 {"x": 14.25, "y": 0},
25 {"x": 15.25, "y": 0},
26
27 {"x": 0, "y": 1},
28 {"x": 1, "y": 1},
29 {"x": 2, "y": 1},
30 {"x": 3.25, "y": 1, "w": 1.25},
31 {"x": 4.5, "y": 1},
32 {"x": 5.5, "y": 1},
33 {"x": 6.5, "y": 1},
34 {"x": 7.5, "y": 1},
35 {"x": 8.5, "y": 1},
36 {"x": 9.5, "y": 1},
37 {"x": 10.5, "y": 1},
38 {"x": 11.5, "y": 1},
39 {"x": 12.5, "y": 1},
40 {"x": 13.5, "y": 1},
41 {"x": 14.5, "y": 1, "w": 1.75},
42
43 {"x": 0, "y": 2},
44 {"x": 1, "y": 2},
45 {"x": 2, "y": 2},
46 {"x": 3.25, "y": 2, "w": 1.75},
47 {"x": 5, "y": 2},
48 {"x": 6, "y": 2},
49 {"x": 7, "y": 2},
50 {"x": 8, "y": 2},
51 {"x": 9, "y": 2},
52 {"x": 10, "y": 2},
53 {"x": 11, "y": 2},
54 {"x": 12, "y": 2},
55 {"x": 13, "y": 2},
56 {"x": 14, "y": 2},
57 {"x": 15, "y": 2, "w": 1.25},
58
59 {"x": 0, "y": 3},
60 {"x": 1, "y": 3},
61 {"x": 2, "y": 3},
62 {"x": 3.25, "y": 3, "w": 1.25},
63 {"x": 4.5, "y": 3, "w": 1.25},
64 {"x": 5.75, "y": 3, "w": 1.25},
65 {"x": 7, "y": 3, "w": 2.25},
66 {"x": 9.25, "y": 3, "w": 2.75},
67 {"x": 12, "y": 3, "w": 1.25},
68 {"x": 13.25, "y": 3},
69 {"x": 14.25, "y": 3},
70 {"x": 15.25, "y": 3}
71 ]
10 } 72 }
11 } 73 }
12} \ No newline at end of file 74} \ No newline at end of file
diff --git a/keyboards/wuque/serneity65/config.h b/keyboards/wuque/serneity65/config.h
new file mode 100644
index 000000000..e13aa8950
--- /dev/null
+++ b/keyboards/wuque/serneity65/config.h
@@ -0,0 +1,50 @@
1/* Copyright 2021 wuque
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0x906B
23#define PRODUCT_ID 0x0003
24#define DEVICE_VER 0x0001
25#define MANUFACTURER wuque
26#define PRODUCT serneity65
27
28/* key matrix size */
29#define MATRIX_ROWS 5
30#define MATRIX_COLS 15
31
32#define MATRIX_ROW_PINS { B0, F0, B1, D2, D3 }
33#define MATRIX_COL_PINS { B6, B5, D5, D4, D6, B4, D7, F1, F4, F5, F6, F7, C7, E6, B7 }
34
35#define DIODE_DIRECTION COL2ROW
36
37/* Set 0 if debouncing isn't needed */
38#define DEBOUNCE 5
39
40/* Enable encoder */
41#define ENCODERS_PAD_A { B2 }
42#define ENCODERS_PAD_B { B3 }
43
44#define ENCODERS 1
45// Note: array is { col, row )
46#define ENCODERS_CW_KEY { { 3, 4 } }
47#define ENCODERS_CCW_KEY { { 5, 4 } }
48
49#define LED_CAPS_LOCK_PIN C6
50#define LED_PIN_ON_STATE 0
diff --git a/keyboards/wuque/serneity65/info.json b/keyboards/wuque/serneity65/info.json
new file mode 100644
index 000000000..546c290aa
--- /dev/null
+++ b/keyboards/wuque/serneity65/info.json
@@ -0,0 +1,389 @@
1{
2 "keyboard_name": "serneity65",
3 "url": "https://wuque.com/",
4 "maintainer": "qmk",
5 "width": 15.5,
6 "height": 5,
7 "layouts": {
8 "LAYOUT_all": {
9 "layout": [
10 { "label": "Esc", "x": 0, "y": 0 },
11 { "label": "1", "x": 1, "y": 0 },
12 { "label": "2", "x": 2, "y": 0 },
13 { "label": "3", "x": 3, "y": 0 },
14 { "label": "4", "x": 4, "y": 0 },
15 { "label": "5", "x": 5, "y": 0 },
16 { "label": "6", "x": 6, "y": 0 },
17 { "label": "7", "x": 7, "y": 0 },
18 { "label": "8", "x": 8, "y": 0 },
19 { "label": "9", "x": 9, "y": 0 },
20 { "label": "0", "x": 10, "y": 0 },
21 { "label": "-", "x": 11, "y": 0 },
22 { "label": "=", "x": 12, "y": 0 },
23 { "label": "Backspace", "x": 13, "y": 0 },
24 { "label": "Encode", "x": 15.5, "y": 0 },
25
26 { "label": "Tab", "x": 0, "y": 1, "w": 1.5 },
27 { "label": "Q", "x": 1.5, "y": 1 },
28 { "label": "W", "x": 2.5, "y": 1 },
29 { "label": "E", "x": 3.5, "y": 1 },
30 { "label": "R", "x": 4.5, "y": 1 },
31 { "label": "T", "x": 5.5, "y": 1 },
32 { "label": "Y", "x": 6.5, "y": 1 },
33 { "label": "U", "x": 7.5, "y": 1 },
34 { "label": "I", "x": 8.5, "y": 1 },
35 { "label": "O", "x": 9.5, "y": 1 },
36 { "label": "P", "x": 10.5, "y": 1 },
37 { "label": "[", "x": 11.5, "y": 1 },
38 { "label": "]", "x": 12.5, "y": 1 },
39 { "label": "\\", "x": 13.5, "y": 1, "w": 1.5 },
40
41 { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 },
42 { "label": "A", "x": 1.75, "y": 2 },
43 { "label": "S", "x": 2.75, "y": 2 },
44 { "label": "D", "x": 3.75, "y": 2 },
45 { "label": "F", "x": 4.75, "y": 2 },
46 { "label": "G", "x": 5.75, "y": 2 },
47 { "label": "H", "x": 6.75, "y": 2 },
48 { "label": "J", "x": 7.75, "y": 2 },
49 { "label": "K", "x": 8.75, "y": 2 },
50 { "label": "L", "x": 9.75, "y": 2 },
51 { "label": ";", "x": 10.75, "y": 2 },
52 { "label": "'", "x": 11.75, "y": 2 },
53 { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
54 { "label": "Backspace", "x": 14, "y": 0 },
55 { "label": "PageUp", "x": 15, "y": 2 },
56
57 { "label": "Shift1", "x": 0, "y": 3, "w": 1.25 },
58 { "label": "Shift2", "x": 1.25, "y": 3 },
59 { "label": "Z", "x": 2.25, "y": 3 },
60 { "label": "X", "x": 3.25, "y": 3 },
61 { "label": "C", "x": 4.25, "y": 3 },
62 { "label": "V", "x": 5.25, "y": 3 },
63 { "label": "B", "x": 6.25, "y": 3 },
64 { "label": "N", "x": 7.25, "y": 3 },
65 { "label": "M", "x": 8.25, "y": 3 },
66 { "label": ",", "x": 9.25, "y": 3 },
67 { "label": ".", "x": 10.25, "y": 3 },
68 { "label": "/", "x": 11.25, "y": 3 },
69 { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 },
70 { "label": "\u2191", "x": 14, "y": 3 },
71 { "label": "End", "x": 15, "y": 3 },
72
73 { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 },
74 { "label": "Win", "x": 1.25, "y": 4, "w": 1.25 },
75 { "label": "Alt", "x": 2.5, "y": 4, "w": 1.25 },
76 { "label": "Lrotate", "x": 15, "y": 0, "w": 0.5 },
77 { "label": "Rrotate", "x": 16.5, "y": 0, "w": 0.5 },
78 { "x": 3.75, "y": 4, "w": 2.25 },
79 { "x": 6, "y": 4, "w": 1.25 },
80 { "x": 7.25, "y": 4, "w": 2.75 },
81 { "label": "Alt", "x": 10, "y": 4, "w": 1.25 },
82 { "label": "Fn", "x": 11.25, "y": 4, "w": 1.25 },
83 { "label": "\u2190", "x": 13, "y": 4 },
84 { "label": "\u2193", "x": 14, "y": 4 },
85 { "label": "\u2192", "x": 15, "y": 4 }
86 ]
87 },
88 "LAYOUT_65_ansi": {
89 "layout": [
90 { "label": "Esc", "x": 0, "y": 0 },
91 { "label": "1", "x": 1, "y": 0 },
92 { "label": "2", "x": 2, "y": 0 },
93 { "label": "3", "x": 3, "y": 0 },
94 { "label": "4", "x": 4, "y": 0 },
95 { "label": "5", "x": 5, "y": 0 },
96 { "label": "6", "x": 6, "y": 0 },
97 { "label": "7", "x": 7, "y": 0 },
98 { "label": "8", "x": 8, "y": 0 },
99 { "label": "9", "x": 9, "y": 0 },
100 { "label": "0", "x": 10, "y": 0 },
101 { "label": "-", "x": 11, "y": 0 },
102 { "label": "=", "x": 12, "y": 0 },
103 { "label": "Backspace", "x": 13, "y": 0, "w": 2 },
104 { "label": "Encode", "x": 15.5, "y": 0 },
105
106 { "label": "Tab", "x": 0, "y": 1, "w": 1.5 },
107 { "label": "Q", "x": 1.5, "y": 1 },
108 { "label": "W", "x": 2.5, "y": 1 },
109 { "label": "E", "x": 3.5, "y": 1 },
110 { "label": "R", "x": 4.5, "y": 1 },
111 { "label": "T", "x": 5.5, "y": 1 },
112 { "label": "Y", "x": 6.5, "y": 1 },
113 { "label": "U", "x": 7.5, "y": 1 },
114 { "label": "I", "x": 8.5, "y": 1 },
115 { "label": "O", "x": 9.5, "y": 1 },
116 { "label": "P", "x": 10.5, "y": 1 },
117 { "label": "[", "x": 11.5, "y": 1 },
118 { "label": "]", "x": 12.5, "y": 1 },
119 { "label": "\\", "x": 13.5, "y": 1, "w": 1.5 },
120
121 { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 },
122 { "label": "A", "x": 1.75, "y": 2 },
123 { "label": "S", "x": 2.75, "y": 2 },
124 { "label": "D", "x": 3.75, "y": 2 },
125 { "label": "F", "x": 4.75, "y": 2 },
126 { "label": "G", "x": 5.75, "y": 2 },
127 { "label": "H", "x": 6.75, "y": 2 },
128 { "label": "J", "x": 7.75, "y": 2 },
129 { "label": "K", "x": 8.75, "y": 2 },
130 { "label": "L", "x": 9.75, "y": 2 },
131 { "label": ";", "x": 10.75, "y": 2 },
132 { "label": "'", "x": 11.75, "y": 2 },
133 { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
134 { "label": "PageUp", "x": 15, "y": 2 },
135
136 { "label": "Shift", "x": 0, "y": 3, "w": 2.25 },
137 { "label": "Z", "x": 2.25, "y": 3 },
138 { "label": "X", "x": 3.25, "y": 3 },
139 { "label": "C", "x": 4.25, "y": 3 },
140 { "label": "V", "x": 5.25, "y": 3 },
141 { "label": "B", "x": 6.25, "y": 3 },
142 { "label": "N", "x": 7.25, "y": 3 },
143 { "label": "M", "x": 8.25, "y": 3 },
144 { "label": ",", "x": 9.25, "y": 3 },
145 { "label": ".", "x": 10.25, "y": 3 },
146 { "label": "/", "x": 11.25, "y": 3 },
147 { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 },
148 { "label": "\u2191", "x": 14, "y": 3 },
149 { "label": "End", "x": 15, "y": 3 },
150
151 { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 },
152 { "label": "Win", "x": 1.25, "y": 4, "w": 1.25 },
153 { "label": "Alt", "x": 2.5, "y": 4, "w": 1.25 },
154 { "x": 3.75, "y": 4, "w": 6.25 },
155 { "label": "Alt", "x": 10, "y": 4, "w": 1.25 },
156 { "label": "Fn", "x": 11.25, "y": 4, "w": 1.25 },
157 { "label": "\u2190", "x": 13, "y": 4 },
158 { "label": "\u2193", "x": 14, "y": 4 },
159 { "label": "\u2192", "x": 15, "y": 4 }
160 ]
161 },
162 "LAYOUT_65_ansi_split_bs": {
163 "layout": [
164 { "label": "Esc", "x": 0, "y": 0 },
165 { "label": "1", "x": 1, "y": 0 },
166 { "label": "2", "x": 2, "y": 0 },
167 { "label": "3", "x": 3, "y": 0 },
168 { "label": "4", "x": 4, "y": 0 },
169 { "label": "5", "x": 5, "y": 0 },
170 { "label": "6", "x": 6, "y": 0 },
171 { "label": "7", "x": 7, "y": 0 },
172 { "label": "8", "x": 8, "y": 0 },
173 { "label": "9", "x": 9, "y": 0 },
174 { "label": "0", "x": 10, "y": 0 },
175 { "label": "-", "x": 11, "y": 0 },
176 { "label": "=", "x": 12, "y": 0 },
177 { "label": "Backspace", "x": 13, "y": 0 },
178 { "label": "Encode", "x": 15.5, "y": 0 },
179
180 { "label": "Tab", "x": 0, "y": 1, "w": 1.5 },
181 { "label": "Q", "x": 1.5, "y": 1 },
182 { "label": "W", "x": 2.5, "y": 1 },
183 { "label": "E", "x": 3.5, "y": 1 },
184 { "label": "R", "x": 4.5, "y": 1 },
185 { "label": "T", "x": 5.5, "y": 1 },
186 { "label": "Y", "x": 6.5, "y": 1 },
187 { "label": "U", "x": 7.5, "y": 1 },
188 { "label": "I", "x": 8.5, "y": 1 },
189 { "label": "O", "x": 9.5, "y": 1 },
190 { "label": "P", "x": 10.5, "y": 1 },
191 { "label": "[", "x": 11.5, "y": 1 },
192 { "label": "]", "x": 12.5, "y": 1 },
193 { "label": "\\", "x": 13.5, "y": 1, "w": 1.5 },
194
195 { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 },
196 { "label": "A", "x": 1.75, "y": 2 },
197 { "label": "S", "x": 2.75, "y": 2 },
198 { "label": "D", "x": 3.75, "y": 2 },
199 { "label": "F", "x": 4.75, "y": 2 },
200 { "label": "G", "x": 5.75, "y": 2 },
201 { "label": "H", "x": 6.75, "y": 2 },
202 { "label": "J", "x": 7.75, "y": 2 },
203 { "label": "K", "x": 8.75, "y": 2 },
204 { "label": "L", "x": 9.75, "y": 2 },
205 { "label": ";", "x": 10.75, "y": 2 },
206 { "label": "'", "x": 11.75, "y": 2 },
207 { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
208 { "label": "Backspace", "x": 14, "y": 0 },
209 { "label": "PageUp", "x": 15, "y": 2 },
210
211 { "label": "Shift", "x": 0, "y": 3, "w": 2.25 },
212 { "label": "Z", "x": 2.25, "y": 3 },
213 { "label": "X", "x": 3.25, "y": 3 },
214 { "label": "C", "x": 4.25, "y": 3 },
215 { "label": "V", "x": 5.25, "y": 3 },
216 { "label": "B", "x": 6.25, "y": 3 },
217 { "label": "N", "x": 7.25, "y": 3 },
218 { "label": "M", "x": 8.25, "y": 3 },
219 { "label": ",", "x": 9.25, "y": 3 },
220 { "label": ".", "x": 10.25, "y": 3 },
221 { "label": "/", "x": 11.25, "y": 3 },
222 { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 },
223 { "label": "\u2191", "x": 14, "y": 3 },
224 { "label": "End", "x": 15, "y": 3 },
225
226 { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 },
227 { "label": "Win", "x": 1.25, "y": 4, "w": 1.25 },
228 { "label": "Alt", "x": 2.5, "y": 4, "w": 1.25 },
229 { "x": 3.75, "y": 4, "w": 6.25 },
230 { "label": "Alt", "x": 10, "y": 4, "w": 1.25 },
231 { "label": "Fn", "x": 11.25, "y": 4, "w": 1.25 },
232 { "label": "\u2190", "x": 13, "y": 4 },
233 { "label": "\u2193", "x": 14, "y": 4 },
234 { "label": "\u2192", "x": 15, "y": 4 }
235 ]
236 },
237 "LAYOUT_65_ansi_split_lshift": {
238 "layout": [
239 { "label": "Esc", "x": 0, "y": 0 },
240 { "label": "1", "x": 1, "y": 0 },
241 { "label": "2", "x": 2, "y": 0 },
242 { "label": "3", "x": 3, "y": 0 },
243 { "label": "4", "x": 4, "y": 0 },
244 { "label": "5", "x": 5, "y": 0 },
245 { "label": "6", "x": 6, "y": 0 },
246 { "label": "7", "x": 7, "y": 0 },
247 { "label": "8", "x": 8, "y": 0 },
248 { "label": "9", "x": 9, "y": 0 },
249 { "label": "0", "x": 10, "y": 0 },
250 { "label": "-", "x": 11, "y": 0 },
251 { "label": "=", "x": 12, "y": 0 },
252 { "label": "Backspace", "x": 13, "y": 0, "w": 2 },
253 { "label": "Encode", "x": 15.5, "y": 0 },
254
255 { "label": "Tab", "x": 0, "y": 1, "w": 1.5 },
256 { "label": "Q", "x": 1.5, "y": 1 },
257 { "label": "W", "x": 2.5, "y": 1 },
258 { "label": "E", "x": 3.5, "y": 1 },
259 { "label": "R", "x": 4.5, "y": 1 },
260 { "label": "T", "x": 5.5, "y": 1 },
261 { "label": "Y", "x": 6.5, "y": 1 },
262 { "label": "U", "x": 7.5, "y": 1 },
263 { "label": "I", "x": 8.5, "y": 1 },
264 { "label": "O", "x": 9.5, "y": 1 },
265 { "label": "P", "x": 10.5, "y": 1 },
266 { "label": "[", "x": 11.5, "y": 1 },
267 { "label": "]", "x": 12.5, "y": 1 },
268 { "label": "\\", "x": 13.5, "y": 1, "w": 1.5 },
269
270 { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 },
271 { "label": "A", "x": 1.75, "y": 2 },
272 { "label": "S", "x": 2.75, "y": 2 },
273 { "label": "D", "x": 3.75, "y": 2 },
274 { "label": "F", "x": 4.75, "y": 2 },
275 { "label": "G", "x": 5.75, "y": 2 },
276 { "label": "H", "x": 6.75, "y": 2 },
277 { "label": "J", "x": 7.75, "y": 2 },
278 { "label": "K", "x": 8.75, "y": 2 },
279 { "label": "L", "x": 9.75, "y": 2 },
280 { "label": ";", "x": 10.75, "y": 2 },
281 { "label": "'", "x": 11.75, "y": 2 },
282 { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
283 { "label": "PageUp", "x": 15, "y": 2 },
284
285 { "label": "Shift1", "x": 0, "y": 3, "w": 1.25 },
286 { "label": "Shift2", "x": 1.25, "y": 3 },
287 { "label": "Z", "x": 2.25, "y": 3 },
288 { "label": "X", "x": 3.25, "y": 3 },
289 { "label": "C", "x": 4.25, "y": 3 },
290 { "label": "V", "x": 5.25, "y": 3 },
291 { "label": "B", "x": 6.25, "y": 3 },
292 { "label": "N", "x": 7.25, "y": 3 },
293 { "label": "M", "x": 8.25, "y": 3 },
294 { "label": ",", "x": 9.25, "y": 3 },
295 { "label": ".", "x": 10.25, "y": 3 },
296 { "label": "/", "x": 11.25, "y": 3 },
297 { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 },
298 { "label": "\u2191", "x": 14, "y": 3 },
299 { "label": "End", "x": 15, "y": 3 },
300
301 { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 },
302 { "label": "Win", "x": 1.25, "y": 4, "w": 1.25 },
303 { "label": "Alt", "x": 2.5, "y": 4, "w": 1.25 },
304 { "x": 3.75, "y": 4, "w": 6.25 },
305 { "label": "Alt", "x": 10, "y": 4, "w": 1.25 },
306 { "label": "Fn", "x": 11.25, "y": 4, "w": 1.25 },
307 { "label": "\u2190", "x": 13, "y": 4 },
308 { "label": "\u2193", "x": 14, "y": 4 },
309 { "label": "\u2192", "x": 15, "y": 4 }
310 ]
311 },
312 "LAYOUT_65_split_space": {
313 "layout": [
314 { "label": "Esc", "x": 0, "y": 0 },
315 { "label": "1", "x": 1, "y": 0 },
316 { "label": "2", "x": 2, "y": 0 },
317 { "label": "3", "x": 3, "y": 0 },
318 { "label": "4", "x": 4, "y": 0 },
319 { "label": "5", "x": 5, "y": 0 },
320 { "label": "6", "x": 6, "y": 0 },
321 { "label": "7", "x": 7, "y": 0 },
322 { "label": "8", "x": 8, "y": 0 },
323 { "label": "9", "x": 9, "y": 0 },
324 { "label": "0", "x": 10, "y": 0 },
325 { "label": "-", "x": 11, "y": 0 },
326 { "label": "=", "x": 12, "y": 0 },
327 { "label": "Backspace", "x": 13, "y": 0, "w": 2 },
328 { "label": "Encode", "x": 15.5, "y": 0 },
329
330 { "label": "Tab", "x": 0, "y": 1, "w": 1.5 },
331 { "label": "Q", "x": 1.5, "y": 1 },
332 { "label": "W", "x": 2.5, "y": 1 },
333 { "label": "E", "x": 3.5, "y": 1 },
334 { "label": "R", "x": 4.5, "y": 1 },
335 { "label": "T", "x": 5.5, "y": 1 },
336 { "label": "Y", "x": 6.5, "y": 1 },
337 { "label": "U", "x": 7.5, "y": 1 },
338 { "label": "I", "x": 8.5, "y": 1 },
339 { "label": "O", "x": 9.5, "y": 1 },
340 { "label": "P", "x": 10.5, "y": 1 },
341 { "label": "[", "x": 11.5, "y": 1 },
342 { "label": "]", "x": 12.5, "y": 1 },
343 { "label": "\\", "x": 13.5, "y": 1, "w": 1.5 },
344
345 { "label": "Caps Lock", "x": 0, "y": 2, "w": 1.75 },
346 { "label": "A", "x": 1.75, "y": 2 },
347 { "label": "S", "x": 2.75, "y": 2 },
348 { "label": "D", "x": 3.75, "y": 2 },
349 { "label": "F", "x": 4.75, "y": 2 },
350 { "label": "G", "x": 5.75, "y": 2 },
351 { "label": "H", "x": 6.75, "y": 2 },
352 { "label": "J", "x": 7.75, "y": 2 },
353 { "label": "K", "x": 8.75, "y": 2 },
354 { "label": "L", "x": 9.75, "y": 2 },
355 { "label": ";", "x": 10.75, "y": 2 },
356 { "label": "'", "x": 11.75, "y": 2 },
357 { "label": "Enter", "x": 12.75, "y": 2, "w": 2.25 },
358 { "label": "PageUp", "x": 15, "y": 2 },
359
360 { "label": "Shift", "x": 0, "y": 3, "w": 2.25 },
361 { "label": "Z", "x": 2.25, "y": 3 },
362 { "label": "X", "x": 3.25, "y": 3 },
363 { "label": "C", "x": 4.25, "y": 3 },
364 { "label": "V", "x": 5.25, "y": 3 },
365 { "label": "B", "x": 6.25, "y": 3 },
366 { "label": "N", "x": 7.25, "y": 3 },
367 { "label": "M", "x": 8.25, "y": 3 },
368 { "label": ",", "x": 9.25, "y": 3 },
369 { "label": ".", "x": 10.25, "y": 3 },
370 { "label": "/", "x": 11.25, "y": 3 },
371 { "label": "Shift", "x": 12.25, "y": 3, "w": 1.75 },
372 { "label": "\u2191", "x": 14, "y": 3 },
373 { "label": "End", "x": 15, "y": 3 },
374
375 { "label": "Ctrl", "x": 0, "y": 4, "w": 1.25 },
376 { "label": "Win", "x": 1.25, "y": 4, "w": 1.25 },
377 { "label": "Alt", "x": 2.5, "y": 4, "w": 1.25 },
378 { "x": 3.75, "y": 4, "w": 2.25 },
379 { "x": 6, "y": 4, "w": 1.25 },
380 { "x": 7.25, "y": 4, "w": 2.75 },
381 { "label": "Alt", "x": 10, "y": 4, "w": 1.25 },
382 { "label": "Fn", "x": 11.25, "y": 4, "w": 1.25 },
383 { "label": "\u2190", "x": 13, "y": 4 },
384 { "label": "\u2193", "x": 14, "y": 4 },
385 { "label": "\u2192", "x": 15, "y": 4 }
386 ]
387 }
388 }
389}
diff --git a/keyboards/wuque/serneity65/keymaps/65_ansi/keymap.c b/keyboards/wuque/serneity65/keymaps/65_ansi/keymap.c
new file mode 100644
index 000000000..3d2393e14
--- /dev/null
+++ b/keyboards/wuque/serneity65/keymaps/65_ansi/keymap.c
@@ -0,0 +1,34 @@
1/* Copyright 2021 wuque
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_65_ansi(
21 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,
22 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,
23 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,
24 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,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
26 ),
27 [1] = LAYOUT_65_ansi(
28 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,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______
33 ),
34};
diff --git a/keyboards/wuque/serneity65/keymaps/65_ansi/readme.md b/keyboards/wuque/serneity65/keymaps/65_ansi/readme.md
new file mode 100644
index 000000000..42b2423f5
--- /dev/null
+++ b/keyboards/wuque/serneity65/keymaps/65_ansi/readme.md
@@ -0,0 +1 @@
# The 65_ansi keymap for serneity65
diff --git a/keyboards/wuque/serneity65/keymaps/65_split_bs/keymap.c b/keyboards/wuque/serneity65/keymaps/65_split_bs/keymap.c
new file mode 100644
index 000000000..e20457431
--- /dev/null
+++ b/keyboards/wuque/serneity65/keymaps/65_split_bs/keymap.c
@@ -0,0 +1,35 @@
1/* Copyright 2021 wuque
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_65_ansi_split_bs(
21 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,
22 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,
23 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,
24 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,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
26 ),
27 [1] = LAYOUT_65_ansi_split_bs(
28 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,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______
33 ),
34
35};
diff --git a/keyboards/wuque/serneity65/keymaps/65_split_bs/readme.md b/keyboards/wuque/serneity65/keymaps/65_split_bs/readme.md
new file mode 100644
index 000000000..121b75811
--- /dev/null
+++ b/keyboards/wuque/serneity65/keymaps/65_split_bs/readme.md
@@ -0,0 +1 @@
# The 65_split_bs keymap for serneity65
diff --git a/keyboards/wuque/serneity65/keymaps/65_split_lshift/keymap.c b/keyboards/wuque/serneity65/keymaps/65_split_lshift/keymap.c
new file mode 100644
index 000000000..ef99b56fc
--- /dev/null
+++ b/keyboards/wuque/serneity65/keymaps/65_split_lshift/keymap.c
@@ -0,0 +1,34 @@
1/* Copyright 2021 wuque
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_65_ansi_split_lshift(
21 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,
22 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,
23 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,
24 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,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
26 ),
27 [1] = LAYOUT_65_ansi_split_lshift(
28 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,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______
33 ),
34};
diff --git a/keyboards/wuque/serneity65/keymaps/65_split_lshift/readme.md b/keyboards/wuque/serneity65/keymaps/65_split_lshift/readme.md
new file mode 100644
index 000000000..f5895d138
--- /dev/null
+++ b/keyboards/wuque/serneity65/keymaps/65_split_lshift/readme.md
@@ -0,0 +1 @@
# The 65_split_lshift keymap for serneity65
diff --git a/keyboards/wuque/serneity65/keymaps/65_split_space/keymap.c b/keyboards/wuque/serneity65/keymaps/65_split_space/keymap.c
new file mode 100644
index 000000000..fbbfd244c
--- /dev/null
+++ b/keyboards/wuque/serneity65/keymaps/65_split_space/keymap.c
@@ -0,0 +1,34 @@
1/* Copyright 2021 wuque
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_65_split_space(
21 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,
22 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,
23 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,
24 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,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_SPC, KC_SPC, KC_RALT, MO(1), KC_LEFT, KC_DOWN, KC_RGHT
26 ),
27 [1] = LAYOUT_65_split_space(
28 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,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
33 ),
34};
diff --git a/keyboards/wuque/serneity65/keymaps/65_split_space/readme.md b/keyboards/wuque/serneity65/keymaps/65_split_space/readme.md
new file mode 100644
index 000000000..2f7650319
--- /dev/null
+++ b/keyboards/wuque/serneity65/keymaps/65_split_space/readme.md
@@ -0,0 +1 @@
# The 65_split_space keymap for serneity65
diff --git a/keyboards/wuque/serneity65/keymaps/default/keymap.c b/keyboards/wuque/serneity65/keymaps/default/keymap.c
new file mode 100644
index 000000000..086919194
--- /dev/null
+++ b/keyboards/wuque/serneity65/keymaps/default/keymap.c
@@ -0,0 +1,34 @@
1/* Copyright 2021 wuque
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_all(
21 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,
22 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,
23 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,
24 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,
25 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
26 ),
27 [1] = LAYOUT_all(
28 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,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
32 _______, _______, _______, KC_MPRV, _______, KC_MNXT, _______, _______, _______, _______, _______, _______, _______
33 ),
34};
diff --git a/keyboards/wuque/serneity65/keymaps/default/readme.md b/keyboards/wuque/serneity65/keymaps/default/readme.md
new file mode 100644
index 000000000..83e06cf6e
--- /dev/null
+++ b/keyboards/wuque/serneity65/keymaps/default/readme.md
@@ -0,0 +1 @@
# The default keymap for serneity65
diff --git a/keyboards/wuque/serneity65/keymaps/via/keymap.c b/keyboards/wuque/serneity65/keymaps/via/keymap.c
new file mode 100644
index 000000000..235629f5f
--- /dev/null
+++ b/keyboards/wuque/serneity65/keymaps/via/keymap.c
@@ -0,0 +1,48 @@
1/* Copyright 2021 wuque
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
20 [0] = LAYOUT_all(
21 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,
22 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,
23 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,
24 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,
25 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
26 ),
27 [1] = LAYOUT_all(
28 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,
29 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
30 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
32 _______, _______, _______, KC_MPRV, _______, KC_MNXT, _______, _______, _______, _______, _______, _______, _______
33 ),
34 [2] = LAYOUT_all(
35 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
36 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
40 ),
41 [3] = LAYOUT_all(
42 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
43 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
47 ),
48};
diff --git a/keyboards/wuque/serneity65/keymaps/via/readme.md b/keyboards/wuque/serneity65/keymaps/via/readme.md
new file mode 100644
index 000000000..87ee7a006
--- /dev/null
+++ b/keyboards/wuque/serneity65/keymaps/via/readme.md
@@ -0,0 +1 @@
# The via keymap for serneity65
diff --git a/keyboards/wuque/serneity65/keymaps/via/rules.mk b/keyboards/wuque/serneity65/keymaps/via/rules.mk
new file mode 100644
index 000000000..43061db1d
--- /dev/null
+++ b/keyboards/wuque/serneity65/keymaps/via/rules.mk
@@ -0,0 +1,2 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes \ No newline at end of file
diff --git a/keyboards/wuque/serneity65/readme.md b/keyboards/wuque/serneity65/readme.md
new file mode 100644
index 000000000..11d18bacb
--- /dev/null
+++ b/keyboards/wuque/serneity65/readme.md
@@ -0,0 +1,24 @@
1# serneity65
2
3More Info at [serneity65](https://shop.wuquestudio.com/)
4
5* Keyboard Maintainer: [spbgzh](https://github.com/spbgzh)
6* Hardware Supported: zoom65 Standard
7* Hardware Availability: [serneity65](https://shop.wuquestudio.com/)
8
9Make example for this keyboard (after setting up your build environment):
10
11
12 make wuque/serneity65:default
13
14Flashing example for this keyboard:
15
16 make wuque/serneity65:default:flash
17
18To reset the board into bootloader mode, do one of the following:
19
20* Tap the Reset switch mounted on the PCB
21* In the case of the default keymap, use the key combination Fn + End
22* Hold the Esc key while connecting the USB cable (also erases persistent settings)
23
24See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
diff --git a/keyboards/wuque/serneity65/rules.mk b/keyboards/wuque/serneity65/rules.mk
new file mode 100644
index 000000000..e32f7215d
--- /dev/null
+++ b/keyboards/wuque/serneity65/rules.mk
@@ -0,0 +1,25 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = lite # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = yes # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = yes # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
15# Do not enable SLEEP_LED_ENABLE. it uses the same timer as BACKLIGHT_ENABLE
16SLEEP_LED_ENABLE = no # Breathing sleep LED during USB suspend
17# if this doesn't work, see here: https://github.com/tmk/tmk_keyboard/wiki/FAQ#nkro-doesnt-work
18NKRO_ENABLE = yes # USB Nkey Rollover
19BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output
23ENCODER_ENABLE = yes # Enable Encoder
24
25LAYOUT = 65_ansi
diff --git a/keyboards/wuque/serneity65/serneity65.c b/keyboards/wuque/serneity65/serneity65.c
new file mode 100644
index 000000000..6a7c64157
--- /dev/null
+++ b/keyboards/wuque/serneity65/serneity65.c
@@ -0,0 +1,71 @@
1/* Copyright 2021 wuque
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "serneity65.h"
18
19#ifdef VIA_ENABLE
20static uint8_t encoder_state[ENCODERS] = {0};
21static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
22static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
23
24void encoder_action_unregister(void)
25{
26 for (int index = 0; index < ENCODERS; ++index)
27 {
28 if (encoder_state[index])
29 {
30 keyevent_t encoder_event = (keyevent_t){
31 .key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
32 .pressed = false,
33 .time = (timer_read() | 1)};
34 encoder_state[index] = 0;
35 action_exec(encoder_event);
36 }
37 }
38}
39void encoder_action_register(uint8_t index, bool clockwise)
40{
41 keyevent_t encoder_event = (keyevent_t){
42 .key = clockwise ? encoder_cw[index] : encoder_ccw[index],
43 .pressed = true,
44 .time = (timer_read() | 1)};
45 encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
46 action_exec(encoder_event);
47}
48
49void matrix_scan_kb(void)
50{
51 encoder_action_unregister();
52 matrix_scan_user();
53}
54
55bool encoder_update_kb(uint8_t index, bool clockwise)
56{
57 encoder_action_register(index, clockwise);
58 return true;
59};
60#else
61bool encoder_update_user(uint8_t index, bool clockwise) {
62 if (index == 0) { /* First encoder */
63 if (clockwise) {
64 tap_code(KC_PGDN);
65 } else {
66 tap_code(KC_PGUP);
67 }
68 }
69 return true;
70}
71#endif
diff --git a/keyboards/wuque/serneity65/serneity65.h b/keyboards/wuque/serneity65/serneity65.h
new file mode 100644
index 000000000..ee7dabd8f
--- /dev/null
+++ b/keyboards/wuque/serneity65/serneity65.h
@@ -0,0 +1,159 @@
1/* Copyright 2021 wuque
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21
22/* Standard Arrangement
23 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
24 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │2d │ ◯
25 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
26 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │
27 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┐
28 * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2e │
29 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
30 * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │
31 * ├────┼───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
32 * │40 │41 │42 │44 │46 │48 │4a │4b │ │4c │4d │4e │
33 * └────┴────┴────┴────────┴────┴──────────┴────┴────┘ └───┴───┴───┘
34 */
35#define LAYOUT_all( \
36 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
37 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
38 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \
39 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
40 K40, K41, K42, K43, K44, K45, K46, K48, K4A, K4B, K4C, K4D, K4E \
41) { \
42 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
43 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
44 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
45 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
46 { K40, K41, K42, K43, K44, K45, K46, KC_NO, K48, KC_NO, K4A, K4B, K4C, K4D, K4E }, \
47}
48
49
50/* LAYOUT_65_ansi
51 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
52 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │ ◯
53 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
54 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │
55 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┐
56 * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2e │
57 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
58 * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │
59 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
60 * │40 │41 │42 │46 │4a │4b │ │4c │4d │4e │
61 * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
62 */
63#define LAYOUT_65_ansi( \
64 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
65 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
66 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
67 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
68 K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E \
69) { \
70 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
71 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
72 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E }, \
73 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
74 { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E }, \
75}
76
77
78/* LAYOUT_65_ansi_split_bs
79 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
80 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │2d │ ◯
81 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
82 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │
83 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┐
84 * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2e │
85 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
86 * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │
87 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
88 * │40 │41 │42 │46 │4a │4b │ │4c │4d │4e │
89 * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
90 */
91#define LAYOUT_65_ansi_split_bs( \
92 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
93 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
94 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E, \
95 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
96 K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E \
97) { \
98 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
99 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
100 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, K2E }, \
101 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
102 { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E }, \
103}
104
105
106/* LAYOUT_65_ansi_split_lshift
107 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
108 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │ ◯
109 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
110 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │
111 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┐
112 * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2e │
113 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
114 * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │
115 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
116 * │40 │41 │42 │46 │4a │4b │ │4c │4d │4e │
117 * └────┴────┴────┴────────────────────────┴────┴────┘ └───┴───┴───┘
118 */
119#define LAYOUT_65_ansi_split_lshift( \
120 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
121 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
122 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
123 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
124 K40, K41, K42, K46, K4A, K4B, K4C, K4D, K4E \
125) { \
126 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
127 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
128 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E }, \
129 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
130 { K40, K41, K42, KC_NO, KC_NO, KC_NO, K46, KC_NO, KC_NO, KC_NO, K4A, K4B, K4C, K4D, K4E }, \
131}
132
133
134/* LAYOUT_65_split_space
135 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
136 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │ ◯
137 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
138 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │
139 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┼───┐
140 * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2e │
141 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┼───┤
142 * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │3e │
143 * ├────┬───┴┬──┴─┬─┴───┴──┬┴───┼───┴───┴──┬┴───┼───┴┬─┬───┼───┼───┤
144 * │40 │41 │42 │44 │46 │48 │4a │4b │ │4c │4d │4e │
145 * └────┴────┴────┴────────┴────┴──────────┴────┴────┘ └───┴───┴───┘
146 */
147#define LAYOUT_65_split_space( \
148 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
149 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
150 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2E, \
151 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, \
152 K40, K41, K42, K44, K46, K48, K4A, K4B, K4C, K4D, K4E \
153) { \
154 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
155 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO }, \
156 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, KC_NO, K2E }, \
157 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E }, \
158 { K40, K41, K42, KC_NO, K44, KC_NO, K46, KC_NO, K48, KC_NO, K4A, K4B, K4C, K4D, K4E }, \
159}
diff --git a/secrets.tar.enc b/secrets.tar.enc
deleted file mode 100644
index 6c613fed9..000000000
--- a/secrets.tar.enc
+++ /dev/null
Binary files differ