aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen <BenRoe@users.noreply.github.com>2021-01-11 08:55:42 +0100
committerGitHub <noreply@github.com>2021-01-10 23:55:42 -0800
commitebfe668fff54a3fd0731ca26a0a38bf33cab7ee7 (patch)
treed1ed6c6e6183a191c4347c81280777139905e553
parente71f7a1c9f09ed7c813ee4757e161b79ed1b73ff (diff)
downloadqmk_firmware-ebfe668fff54a3fd0731ca26a0a38bf33cab7ee7.tar.gz
qmk_firmware-ebfe668fff54a3fd0731ca26a0a38bf33cab7ee7.zip
[Keyboard] Add Kimiko keyboard (#11458)
* add keycapsss/kimiko split keyboard * add kimiko rgb matrix keymap (only master working) * move rgb_matrix_driver definiton to rev1 folder * add comments to rgb matrix code * add power draw limitation for ios * add SPLIT_TRANSPORT_MIRROR to kimiko * Add oled code and font for kimiko * Edit default keymap and add copyright entries * Improve typo style * Add info.json for Kimiko * Add readme * Remove split matrix code * Add image and more feature informations * Fix indention * Add make command example * Update keyboards/keycapsss/kimiko/readme.md Co-authored-by: Joel Challis <git@zvecr.com> * Update keyboards/keycapsss/kimiko/rules.mk Co-authored-by: Joel Challis <git@zvecr.com> * Update keyboards/keycapsss/kimiko/rules.mk Co-authored-by: Joel Challis <git@zvecr.com> * Update keyboards/keycapsss/kimiko/rules.mk Co-authored-by: Ryan <fauxpark@gmail.com> * Update keyboards/keycapsss/kimiko/readme.md Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: Joel Challis <git@zvecr.com> Co-authored-by: Ryan <fauxpark@gmail.com>
-rw-r--r--keyboards/keycapsss/kimiko/config.h18
-rw-r--r--keyboards/keycapsss/kimiko/info.json255
-rw-r--r--keyboards/keycapsss/kimiko/keymaps/default/config.h50
-rw-r--r--keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c233
-rw-r--r--keyboards/keycapsss/kimiko/keymaps/default/keymap.c407
-rw-r--r--keyboards/keycapsss/kimiko/keymaps/default/rules.mk8
-rw-r--r--keyboards/keycapsss/kimiko/kimiko.c17
-rw-r--r--keyboards/keycapsss/kimiko/kimiko.h39
-rw-r--r--keyboards/keycapsss/kimiko/readme.md23
-rw-r--r--keyboards/keycapsss/kimiko/rev1/config.h67
-rw-r--r--keyboards/keycapsss/kimiko/rev1/rev1.c17
-rw-r--r--keyboards/keycapsss/kimiko/rev1/rev1.h40
-rw-r--r--keyboards/keycapsss/kimiko/rev1/rules.mk1
-rw-r--r--keyboards/keycapsss/kimiko/rules.mk25
14 files changed, 1200 insertions, 0 deletions
diff --git a/keyboards/keycapsss/kimiko/config.h b/keyboards/keycapsss/kimiko/config.h
new file mode 100644
index 000000000..fd3aeec6b
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/config.h
@@ -0,0 +1,18 @@
1/*
2Copyright 2020 @ben_roe (keycapsss.com)
3This program is free software: you can redistribute it and/or modify
4it under the terms of the GNU General Public License as published by
5the Free Software Foundation, either version 2 of the License, or
6(at your option) any later version.
7This program is distributed in the hope that it will be useful,
8but WITHOUT ANY WARRANTY; without even the implied warranty of
9MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10GNU General Public License for more details.
11You should have received a copy of the GNU General Public License
12along with this program. If not, see <http://www.gnu.org/licenses/>.
13*/
14
15#pragma once
16
17#include "config_common.h"
18
diff --git a/keyboards/keycapsss/kimiko/info.json b/keyboards/keycapsss/kimiko/info.json
new file mode 100644
index 000000000..4abdf30da
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/info.json
@@ -0,0 +1,255 @@
1{
2 "keyboard_name": "Kimiko",
3 "url": "https://keycapsss.com",
4 "maintainer": "@ben_roe Keycapsss",
5 "width": 15,
6 "height": 34.45,
7 "layouts": {
8 "LAYOUT": {
9 "layout": [
10 {
11 "x": 3,
12 "y": 0.2
13 },
14 {
15 "x": 11,
16 "y": 0.2
17 },
18 {
19 "x": 10,
20 "y": 0.25
21 },
22 {
23 "x": 2,
24 "y": 0.35
25 },
26 {
27 "x": 4,
28 "y": 0.35
29 },
30 {
31 "x": 12,
32 "y": 0.35
33 },
34 {
35 "x": 5,
36 "y": 0.5
37 },
38 {
39 "x": 9,
40 "y": 0.5
41 },
42 {
43 "x": 0,
44 "y": 1.0
45 },
46 {
47 "x": 1,
48 "y": 1.0
49 },
50 {
51 "x": 13,
52 "y": 1.0
53 },
54 {
55 "x": 14,
56 "y": 1.0
57 },
58 {
59 "x": 3,
60 "y": 1.2
61 },
62 {
63 "x": 11,
64 "y": 1.2
65 },
66 {
67 "x": 10,
68 "y": 1.25
69 },
70 {
71 "x": 2,
72 "y": 1.35
73 },
74 {
75 "x": 4,
76 "y": 1.35
77 },
78 {
79 "x": 12,
80 "y": 1.35
81 },
82 {
83 "x": 5,
84 "y": 1.5
85 },
86 {
87 "x": 9,
88 "y": 1.5
89 },
90 {
91 "x": 0,
92 "y": 2.0
93 },
94 {
95 "x": 1,
96 "y": 2.0
97 },
98 {
99 "x": 13,
100 "y": 2.0
101 },
102 {
103 "x": 14,
104 "y": 2.0
105 },
106 {
107 "x": 3,
108 "y": 2.2
109 },
110 {
111 "x": 11,
112 "y": 2.2
113 },
114 {
115 "x": 2,
116 "y": 2.35
117 },
118 {
119 "x": 4,
120 "y": 2.35
121 },
122 {
123 "x": 10,
124 "y": 2.35
125 },
126 {
127 "x": 12,
128 "y": 2.35
129 },
130 {
131 "x": 5,
132 "y": 2.5
133 },
134 {
135 "x": 9,
136 "y": 2.5
137 },
138 {
139 "x": 0,
140 "y": 3.0
141 },
142 {
143 "x": 1,
144 "y": 3.0
145 },
146 {
147 "x": 13,
148 "y": 3.0
149 },
150 {
151 "x": 14,
152 "y": 3.0
153 },
154 {
155 "x": 3,
156 "y": 3.2
157 },
158 {
159 "x": 11,
160 "y": 3.2
161 },
162 {
163 "x": 2,
164 "y": 3.35
165 },
166 {
167 "x": 4,
168 "y": 3.35
169 },
170 {
171 "x": 10,
172 "y": 3.35
173 },
174 {
175 "x": 12,
176 "y": 3.35
177 },
178 {
179 "x": 5,
180 "y": 3.5
181 },
182 {
183 "x": 9,
184 "y": 3.5
185 },
186 {
187 "x": 6.25,
188 "y": 3.5
189 },
190 {
191 "x": 7.75,
192 "y": 3.5
193 },
194 {
195 "x": 0,
196 "y": 4.0
197 },
198 {
199 "x": 1,
200 "y": 4.0
201 },
202 {
203 "x": 13,
204 "y": 4.0
205 },
206 {
207 "x": 14,
208 "y": 4.0
209 },
210 {
211 "x": 3,
212 "y": 4.2
213 },
214 {
215 "x": 2,
216 "y": 4.35
217 },
218 {
219 "x": 4,
220 "y": 4.35
221 },
222 {
223 "x": 10,
224 "y": 4.35
225 },
226 {
227 "x": 10.75,
228 "y": 9.55
229 },
230 {
231 "x": 11.5,
232 "y": 14.9
233 },
234 {
235 "x": 8,
236 "y": 16.55,
237 "h": 1.5
238 },
239 {
240 "x": 7,
241 "y": 17.05
242 },
243 {
244 "x": 5,
245 "y": 24.55
246 },
247 {
248 "x": 3.57,
249 "y": 33.45,
250 "h": 1.5
251 }
252 ]
253 }
254 }
255}
diff --git a/keyboards/keycapsss/kimiko/keymaps/default/config.h b/keyboards/keycapsss/kimiko/keymaps/default/config.h
new file mode 100644
index 000000000..877553689
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/keymaps/default/config.h
@@ -0,0 +1,50 @@
1/* Copyright 2019 MechMerlin
2 * Copyright 2020 @ben_roe (keycapsss.com)
3 *
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#pragma once
19
20/* Select hand configuration */
21#define MASTER_LEFT
22// #define MASTER_RIGHT
23// #define EE_HANDS
24
25#define OLED_FONT_H "keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c"
26// #define OLED_FONT_WIDTH 5
27// #define OLED_FONT_HEIGHT 7
28
29#ifdef RGBLIGHT_ENABLE
30# define RGBLIGHT_HUE_STEP 8
31# define RGBLIGHT_SAT_STEP 8
32# define RGBLIGHT_VAL_STEP 8
33# define RGBLIGHT_SLEEP /* the RGB lighting will be switched off when the host goes to sleep */
34/*== all animations enable ==*/
35# define RGBLIGHT_ANIMATIONS
36/*== or choose animations to save space ==*/
37// # define RGBLIGHT_EFFECT_BREATHING
38// # define RGBLIGHT_EFFECT_RAINBOW_MOOD
39// # define RGBLIGHT_EFFECT_RAINBOW_SWIRL
40// # define RGBLIGHT_EFFECT_SNAKE
41// # define RGBLIGHT_EFFECT_KNIGHT
42// # define RGBLIGHT_EFFECT_CHRISTMAS
43// # define RGBLIGHT_EFFECT_STATIC_GRADIENT
44// # define RGBLIGHT_EFFECT_RGB_TEST
45// # define RGBLIGHT_EFFECT_ALTERNATING
46#endif
47
48// If you are using an Elite C rev3 on the slave side, uncomment the lines below:
49// #define SPLIT_USB_DETECT
50// #define NO_USB_STARTUP_CHECK
diff --git a/keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c b/keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c
new file mode 100644
index 000000000..19d45a75c
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/keymaps/default/glcdfont.c
@@ -0,0 +1,233 @@
1#include "progmem.h"
2
3// Corne 8x6 font
4// Online editor: https://helixfonteditor.netlify.com
5// or https://joric.github.io/qle/
6// See also: https://github.com/soundmonster/glcdfont_converter
7
8const unsigned char font[] PROGMEM = {
9 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
10 0x3E, 0x5B, 0x4F, 0x5B, 0x3E, 0x00,
11 0x3E, 0x6B, 0x4F, 0x6B, 0x3E, 0x00,
12 0x1C, 0x3E, 0x7C, 0x3E, 0x1C, 0x00,
13 0x18, 0x3C, 0x7E, 0x3C, 0x18, 0x00,
14 0x1C, 0x57, 0x7D, 0x57, 0x1C, 0x00,
15 0x1C, 0x5E, 0x7F, 0x5E, 0x1C, 0x00,
16 0x00, 0x18, 0x3C, 0x18, 0x00, 0x00,
17 0xFF, 0xE7, 0xC3, 0xE7, 0xFF, 0x00,
18 0x00, 0x18, 0x24, 0x18, 0x00, 0x00,
19 0xFF, 0xE7, 0xDB, 0xE7, 0xFF, 0x00,
20 0x30, 0x48, 0x3A, 0x06, 0x0E, 0x00,
21 0x26, 0x29, 0x79, 0x29, 0x26, 0x00,
22 0x40, 0x7F, 0x05, 0x05, 0x07, 0x00,
23 0x40, 0x7F, 0x05, 0x25, 0x3F, 0x00,
24 0x5A, 0x3C, 0xE7, 0x3C, 0x5A, 0x00,
25 0x7F, 0x3E, 0x1C, 0x1C, 0x08, 0x00,
26 0x08, 0x1C, 0x1C, 0x3E, 0x7F, 0x00,
27 0x14, 0x22, 0x7F, 0x22, 0x14, 0x00,
28 0x5F, 0x5F, 0x00, 0x5F, 0x5F, 0x00,
29 0x06, 0x09, 0x7F, 0x01, 0x7F, 0x00,
30 0x00, 0x66, 0x89, 0x95, 0x6A, 0x00,
31 0x60, 0x60, 0x60, 0x60, 0x60, 0x00,
32 0x94, 0xA2, 0xFF, 0xA2, 0x94, 0x00,
33 0x08, 0x04, 0x7E, 0x04, 0x08, 0x00,
34 0x10, 0x20, 0x7E, 0x20, 0x10, 0x00,
35 0x08, 0x08, 0x2A, 0x1C, 0x08, 0x00,
36 0x08, 0x1C, 0x2A, 0x08, 0x08, 0x00,
37 0x1E, 0x10, 0x10, 0x10, 0x10, 0x00,
38 0x0C, 0x1E, 0x0C, 0x1E, 0x0C, 0x00,
39 0x30, 0x38, 0x3E, 0x38, 0x30, 0x00,
40 0x06, 0x0E, 0x3E, 0x0E, 0x06, 0x00,
41 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
42 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00,
43 0x00, 0x07, 0x00, 0x07, 0x00, 0x00,
44 0x14, 0x7F, 0x14, 0x7F, 0x14, 0x00,
45 0x24, 0x2A, 0x7F, 0x2A, 0x12, 0x00,
46 0x23, 0x13, 0x08, 0x64, 0x62, 0x00,
47 0x36, 0x49, 0x56, 0x20, 0x50, 0x00,
48 0x00, 0x08, 0x07, 0x03, 0x00, 0x00,
49 0x00, 0x1C, 0x22, 0x41, 0x00, 0x00,
50 0x00, 0x41, 0x22, 0x1C, 0x00, 0x00,
51 0x2A, 0x1C, 0x7F, 0x1C, 0x2A, 0x00,
52 0x08, 0x08, 0x3E, 0x08, 0x08, 0x00,
53 0x00, 0x80, 0x70, 0x30, 0x00, 0x00,
54 0x08, 0x08, 0x08, 0x08, 0x08, 0x00,
55 0x00, 0x00, 0x60, 0x60, 0x00, 0x00,
56 0x20, 0x10, 0x08, 0x04, 0x02, 0x00,
57 0x3E, 0x51, 0x49, 0x45, 0x3E, 0x00,
58 0x00, 0x42, 0x7F, 0x40, 0x00, 0x00,
59 0x72, 0x49, 0x49, 0x49, 0x46, 0x00,
60 0x21, 0x41, 0x49, 0x4D, 0x33, 0x00,
61 0x18, 0x14, 0x12, 0x7F, 0x10, 0x00,
62 0x27, 0x45, 0x45, 0x45, 0x39, 0x00,
63 0x3C, 0x4A, 0x49, 0x49, 0x31, 0x00,
64 0x41, 0x21, 0x11, 0x09, 0x07, 0x00,
65 0x36, 0x49, 0x49, 0x49, 0x36, 0x00,
66 0x46, 0x49, 0x49, 0x29, 0x1E, 0x00,
67 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
68 0x00, 0x40, 0x34, 0x00, 0x00, 0x00,
69 0x00, 0x08, 0x14, 0x22, 0x41, 0x00,
70 0x14, 0x14, 0x14, 0x14, 0x14, 0x00,
71 0x00, 0x41, 0x22, 0x14, 0x08, 0x00,
72 0x02, 0x01, 0x59, 0x09, 0x06, 0x00,
73 0x3E, 0x41, 0x5D, 0x59, 0x4E, 0x00,
74 0x7C, 0x12, 0x11, 0x12, 0x7C, 0x00,
75 0x7F, 0x49, 0x49, 0x49, 0x36, 0x00,
76 0x3E, 0x41, 0x41, 0x41, 0x22, 0x00,
77 0x7F, 0x41, 0x41, 0x41, 0x3E, 0x00,
78 0x7F, 0x49, 0x49, 0x49, 0x41, 0x00,
79 0x7F, 0x09, 0x09, 0x09, 0x01, 0x00,
80 0x3E, 0x41, 0x41, 0x51, 0x73, 0x00,
81 0x7F, 0x08, 0x08, 0x08, 0x7F, 0x00,
82 0x00, 0x41, 0x7F, 0x41, 0x00, 0x00,
83 0x20, 0x40, 0x41, 0x3F, 0x01, 0x00,
84 0x7F, 0x08, 0x14, 0x22, 0x41, 0x00,
85 0x7F, 0x40, 0x40, 0x40, 0x40, 0x00,
86 0x7F, 0x02, 0x1C, 0x02, 0x7F, 0x00,
87 0x7F, 0x04, 0x08, 0x10, 0x7F, 0x00,
88 0x3E, 0x41, 0x41, 0x41, 0x3E, 0x00,
89 0x7F, 0x09, 0x09, 0x09, 0x06, 0x00,
90 0x3E, 0x41, 0x51, 0x21, 0x5E, 0x00,
91 0x7F, 0x09, 0x19, 0x29, 0x46, 0x00,
92 0x26, 0x49, 0x49, 0x49, 0x32, 0x00,
93 0x03, 0x01, 0x7F, 0x01, 0x03, 0x00,
94 0x3F, 0x40, 0x40, 0x40, 0x3F, 0x00,
95 0x1F, 0x20, 0x40, 0x20, 0x1F, 0x00,
96 0x3F, 0x40, 0x38, 0x40, 0x3F, 0x00,
97 0x63, 0x14, 0x08, 0x14, 0x63, 0x00,
98 0x03, 0x04, 0x78, 0x04, 0x03, 0x00,
99 0x61, 0x59, 0x49, 0x4D, 0x43, 0x00,
100 0x00, 0x7F, 0x41, 0x41, 0x41, 0x00,
101 0x02, 0x04, 0x08, 0x10, 0x20, 0x00,
102 0x00, 0x41, 0x41, 0x41, 0x7F, 0x00,
103 0x04, 0x02, 0x01, 0x02, 0x04, 0x00,
104 0x40, 0x40, 0x40, 0x40, 0x40, 0x00,
105 0x00, 0x13, 0x07, 0x08, 0x00, 0x00,
106 0x20, 0x54, 0x54, 0x78, 0x40, 0x00,
107 0x7F, 0x28, 0x44, 0x44, 0x38, 0x00,
108 0x38, 0x44, 0x44, 0x44, 0x28, 0x00,
109 0x38, 0x44, 0x44, 0x28, 0x7F, 0x00,
110 0x38, 0x54, 0x54, 0x54, 0x18, 0x00,
111 0x00, 0x08, 0x7E, 0x09, 0x02, 0x00,
112 0x18, 0x24, 0x24, 0x1C, 0x78, 0x00,
113 0x7F, 0x08, 0x04, 0x04, 0x78, 0x00,
114 0x00, 0x44, 0x7D, 0x40, 0x00, 0x00,
115 0x20, 0x40, 0x40, 0x3D, 0x00, 0x00,
116 0x7F, 0x10, 0x28, 0x44, 0x00, 0x00,
117 0x00, 0x41, 0x7F, 0x40, 0x00, 0x00,
118 0x7C, 0x04, 0x78, 0x04, 0x78, 0x00,
119 0x7C, 0x08, 0x04, 0x04, 0x78, 0x00,
120 0x38, 0x44, 0x44, 0x44, 0x38, 0x00,
121 0x7C, 0x18, 0x24, 0x24, 0x18, 0x00,
122 0x18, 0x24, 0x24, 0x18, 0x7C, 0x00,
123 0x7C, 0x08, 0x04, 0x04, 0x08, 0x00,
124 0x48, 0x54, 0x54, 0x54, 0x24, 0x00,
125 0x04, 0x04, 0x3F, 0x44, 0x24, 0x00,
126 0x3C, 0x40, 0x40, 0x20, 0x7C, 0x00,
127 0x1C, 0x20, 0x40, 0x20, 0x1C, 0x00,
128 0x3C, 0x40, 0x30, 0x40, 0x3C, 0x00,
129 0x44, 0x28, 0x10, 0x28, 0x44, 0x00,
130 0x4C, 0x90, 0x90, 0x90, 0x7C, 0x00,
131 0x44, 0x64, 0x54, 0x4C, 0x44, 0x00,
132 0x00, 0x08, 0x36, 0x41, 0x00, 0x00,
133 0x00, 0x00, 0x77, 0x00, 0x00, 0x00,
134 0x00, 0x41, 0x36, 0x08, 0x00, 0x00,
135 0x02, 0x01, 0x02, 0x04, 0x02, 0x00,
136 0x3C, 0x26, 0x23, 0x26, 0x3C, 0x00,
137 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
138 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
139 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
140 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
141 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
142 0x00, 0xF8, 0x04, 0x22, 0x52, 0xE2,
143 0x42, 0x42, 0x42, 0xE2, 0x52, 0x22,
144 0x22, 0x22, 0x42, 0x82, 0x02, 0x02,
145 0x22, 0x22, 0x02, 0x04, 0xF8, 0x00,
146 0x00, 0xF8, 0x04, 0x02, 0x02, 0x82,
147 0x42, 0x22, 0x42, 0x82, 0x02, 0x02,
148 0x02, 0x82, 0x42, 0x22, 0x12, 0x22,
149 0x42, 0x82, 0x02, 0x04, 0xF8, 0x00,
150 0x00, 0xF8, 0xFC, 0xDE, 0xAE, 0x1E,
151 0xBE, 0xBE, 0xBE, 0x1E, 0xAE, 0xDE,
152 0xDE, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE,
153 0xDE, 0xDE, 0xFE, 0xFC, 0xF8, 0x00,
154 0x00, 0xF8, 0xFC, 0xFE, 0xFE, 0x7E,
155 0xBE, 0xDE, 0xBE, 0x7E, 0xFE, 0xFE,
156 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
157 0x80, 0x80, 0x40, 0x40, 0x20, 0x20,
158 0x10, 0x10, 0x08, 0x08, 0x10, 0x10,
159 0x20, 0x20, 0x40, 0x40, 0x80, 0x80,
160 0x80, 0x80, 0xC0, 0xC0, 0xE0, 0xE0,
161 0xF0, 0xF0, 0xF8, 0xF8, 0xF0, 0xF0,
162 0xE0, 0xE0, 0xC0, 0xC0, 0x80, 0x80,
163 0x80, 0x80, 0x40, 0x40, 0x20, 0x20,
164 0x10, 0x10, 0x08, 0x08, 0x10, 0x10,
165 0x20, 0x20, 0x40, 0x40, 0x80, 0x80,
166 0x80, 0x80, 0x40, 0xC0, 0x60, 0xA0,
167 0x50, 0xB0, 0x58, 0xA8, 0x50, 0xB0,
168 0x60, 0xA0, 0x40, 0xC0, 0x80, 0x80,
169 0x1F, 0x1F, 0x0E, 0x1B, 0x11, 0xC0,
170 0x1F, 0x1F, 0x00, 0x1F, 0x1F, 0x06,
171 0x0C, 0xC6, 0x1F, 0x1F, 0x80, 0x5F,
172 0x1F, 0x00, 0x1F, 0x1F, 0x8E, 0x9B,
173 0x91, 0x80, 0x9F, 0x9F, 0x91, 0x1F,
174 0x00, 0x1F, 0x20, 0x44, 0x4A, 0x47,
175 0x42, 0x42, 0x42, 0x47, 0x4A, 0x44,
176 0x40, 0x40, 0x40, 0x40, 0x41, 0x42,
177 0x44, 0x44, 0x40, 0x20, 0x1F, 0x00,
178 0x00, 0x1F, 0x20, 0x40, 0x41, 0x40,
179 0x40, 0x40, 0x40, 0x40, 0x41, 0x40,
180 0x41, 0x41, 0x4F, 0x48, 0x48, 0x48,
181 0x4F, 0x41, 0x41, 0x20, 0x1F, 0x00,
182 0x00, 0x1F, 0x3F, 0x7B, 0x75, 0x78,
183 0x7D, 0x7D, 0x7D, 0x78, 0x75, 0x7B,
184 0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7D,
185 0x7B, 0x7B, 0x7F, 0x3F, 0x1F, 0x00,
186 0x00, 0x1F, 0x3F, 0x7F, 0x7E, 0x7F,
187 0x7F, 0x7F, 0x7F, 0x7F, 0x7E, 0x7F,
188 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
189 0x88, 0x88, 0x5D, 0x5D, 0x3E, 0x3E,
190 0x7C, 0x7C, 0xF8, 0xF8, 0x7C, 0x7C,
191 0x3E, 0x3E, 0x5D, 0x5D, 0x88, 0x88,
192 0x88, 0x88, 0x55, 0x55, 0x23, 0x23,
193 0x47, 0x47, 0x8F, 0x8F, 0x47, 0x47,
194 0x23, 0x23, 0x55, 0x55, 0x88, 0x88,
195 0x88, 0x88, 0xD5, 0xD5, 0xE2, 0xE2,
196 0xC4, 0xC4, 0x88, 0x88, 0xC4, 0xC4,
197 0xE2, 0xE2, 0xD5, 0xD5, 0x88, 0x88,
198 0x88, 0x88, 0x5D, 0xD5, 0x6B, 0xB6,
199 0x6D, 0xD6, 0xAD, 0xDA, 0x6D, 0xD6,
200 0x6B, 0xB6, 0x5D, 0xD5, 0x88, 0x88,
201 0x00, 0x84, 0x87, 0x7D, 0x55, 0x57,
202 0x55, 0x7D, 0x87, 0x84, 0x00, 0x91,
203 0x95, 0x55, 0x55, 0x3F, 0x55, 0x55,
204 0x95, 0x91, 0x00, 0x08, 0x08, 0x08,
205 0x88, 0xFC, 0x0A, 0x09, 0x08, 0x08,
206 0x04, 0xF8, 0x00, 0x00, 0xF8, 0x04,
207 0x20, 0x1F, 0x00, 0x00, 0x1F, 0x20,
208 0xFC, 0xF8, 0x00, 0x00, 0xF8, 0x04,
209 0x3F, 0x1F, 0x00, 0x00, 0x1F, 0x20,
210 0x04, 0xF8, 0x00, 0x00, 0xF8, 0xFC,
211 0x20, 0x1F, 0x00, 0x00, 0x1F, 0x3F,
212 0xFC, 0xF8, 0x00, 0x00, 0xF8, 0xFC,
213 0x3F, 0x1F, 0x00, 0x00, 0x1F, 0x3F,
214 0xFE, 0x7E, 0xBE, 0xDE, 0xEE, 0xDE,
215 0xBE, 0x7E, 0xFE, 0xFC, 0xF8, 0x00,
216 0x7E, 0x7E, 0x70, 0x77, 0x77, 0x77,
217 0x70, 0x7E, 0x7E, 0x3F, 0x1F, 0x00,
218 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
219 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
220 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
221 0x00, 0x00, 0x01, 0x01, 0x02, 0x02,
222 0x04, 0x04, 0x08, 0x08, 0x04, 0x04,
223 0x02, 0x02, 0x01, 0x01, 0x00, 0x00,
224 0x00, 0x00, 0x01, 0x01, 0x02, 0x02,
225 0x04, 0x04, 0x08, 0x08, 0x04, 0x04,
226 0x02, 0x02, 0x01, 0x01, 0x00, 0x00,
227 0x00, 0x00, 0x01, 0x01, 0x03, 0x03,
228 0x07, 0x07, 0x0F, 0x0F, 0x07, 0x07,
229 0x03, 0x03, 0x01, 0x01, 0x00, 0x00,
230 0x00, 0x00, 0x01, 0x01, 0x03, 0x02,
231 0x05, 0x06, 0x0D, 0x0A, 0x05, 0x06,
232 0x03, 0x02, 0x01, 0x01, 0x00, 0x00,
233};
diff --git a/keyboards/keycapsss/kimiko/keymaps/default/keymap.c b/keyboards/keycapsss/kimiko/keymaps/default/keymap.c
new file mode 100644
index 000000000..c7ec7da9a
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/keymaps/default/keymap.c
@@ -0,0 +1,407 @@
1/* Copyright 2019 Leo Batyuk
2 * Copyright 2020 Drashna Jaelre <@drashna>
3 * Copyright 2020 @ben_roe (keycapsss.com)
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19#include QMK_KEYBOARD_H
20
21enum layers {
22 _QWERTY,
23 _LOWER,
24 _RAISE,
25 _ADJUST,
26};
27
28#define RAISE MO(_RAISE)
29#define LOWER MO(_LOWER)
30
31const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32
33/* QWERTY
34 * ,--------------------------------------------. ,----------------------------------------------.
35 * | ESC | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | ` |
36 * |---------+------+------+------+------+------| |------+------+------+------+------+-----------|
37 * | Tab | Q | W | E | R | T | | Y | U | I | O | P | - |
38 * |---------+------+------+------+------+------| |------+------+------+------+------+-----------|
39 * | LShift | A | S | D | F | G |-------. ,-------| H | J | K | L | ; | ' |
40 * |---------+------+------+------+------+------| [ | | ] |------+------+------+------+------+-----------|
41 * | LCTRL | Z | X | C | V | B |-------| |-------| N | M | , | . | / |RShift/Enter|
42 * `-------------------------------------------| / \ \-----------------------------------------------'
43 * | LCTRL| LGUI | LALT |LOWER| Space / \Enter \ |RAISE |BackSP| RGUI | RALT |
44 * `----------------------------------' '------------------------------------'
45 */
46
47 [_QWERTY] = LAYOUT(
48 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_GRV,
49 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_MINS,
50 KC_LSFT, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT,
51 KC_LCTRL, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_LBRC, KC_RBRC, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, RSFT_T(KC_ENT),
52 KC_LCTL, KC_LGUI, KC_LALT, LOWER, KC_SPC, KC_ENT, RAISE, KC_BSPC, KC_RGUI, KC_RALT
53),
54/* LOWER
55 * ,-------------------------------------------. ,-----------------------------------------.
56 * | | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10 | F11 |
57 * |--------+------+------+------+------+------| |------+------+------+------+------+------|
58 * | | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | F12 |
59 * |--------+------+------+------+------+------| |------+------+------+------+------+------|
60 * | ` | ! | @ | # | $ | % |-------. ,-------| ^ | & | * | ( | ) | ~ |
61 * |--------+------+------+------+------+------| | | |------+------+------+------+------+------|
62 * | | | | | | |-------| |-------| | _ | + | { | } | \ |
63 * `-------------------------------------------| / \ \-----------------------------------------------'
64 * | LCTRL| LGUI | LALT |LOWER| Space / \Enter \ |RAISE |BackSP| RGUI | RALT |
65 * `----------------------------------' '------------------------------------'
66 */
67
68[_LOWER] = LAYOUT(
69 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11,
70 _______, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_F12,
71 KC_GRV, KC_EXLM, KC_AT, KC_HASH, KC_DLR, KC_PERC, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_TILD,
72 _______, _______, _______, _______, _______, _______, _______, _______, XXXXXXX, KC_UNDS, KC_PLUS, KC_LCBR, KC_RCBR, KC_BSLS,
73 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
74),
75/* RAISE
76 * ,-----------------------------------------. ,-----------------------------------------.
77 * | | | | | | | | | | | | | |
78 * |------+------+------+------+------+------| |------+------+------+------+------+------|
79 * | ` | 1 | 2 | 3 | 4 | 5 | | 6 | 7 | 8 | 9 | 0 | |
80 * |------+------+------+------+------+------| |------+------+------+------+------+------|
81 * | F1 | F2 | F3 | F4 | F5 | F6 |-------. ,-------| | Left | Down | Up |Right | |
82 * |------+------+------+------+------+------| [ | | ] |------+------+------+------+------+------|
83 * | F7 | F8 | F9 | F10 | F11 | F12 |-------| |-------| + | - | = | [ | ] | \ |
84 * `-----------------------------------------/ / \ \-----------------------------------------'
85 * | LCTRL| LGUI | LALT |LOWER| Space / \Enter \ |RAISE |BackSP| RGUI | RALT |
86 * `----------------------------------' '------------------------------------'
87 */
88
89[_RAISE] = LAYOUT(
90 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
91 KC_GRV, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, _______,
92 KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, XXXXXXX, KC_LEFT, KC_DOWN, KC_UP, KC_RGHT, XXXXXXX,
93 KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, KC_PLUS, KC_MINS, KC_EQL, KC_LBRC, KC_RBRC, KC_BSLS,
94 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
95),
96/* ADJUST (Press LOWER and RAISE together)
97 * ,-----------------------------------------. ,-----------------------------------------.
98 * |RESET | | | | | | | | | | | | |
99 * |------+------+------+------+------+------| |------+------+------+------+------+------|
100 * |RGB ON| HUE+ | SAT+ | VAL+ | | | | PREV | PLAY | NEXT | | | |
101 * |------+------+------+------+------+------| |------+------+------+------+------+------|
102 * | MODE | HUE- | SAT- | VAL- | | |-------. ,-------| VOL+ | MUTE | VOL- | | | |
103 * |------+------+------+------+------+------| | | |------+------+------+------+------+------|
104 * | | | | | | |-------| |-------| | | | | | |
105 * `-----------------------------------------/ / \ \-----------------------------------------'
106 * |LCTRL| LGUI | LALT |LOWER| Space / \Enter \ |RAISE |BackSP| RGUI | RALT |
107 * `----------------------------------' '------------------------------------'
108 */
109
110[_ADJUST] = LAYOUT(
111 RESET, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
112 RGB_TOG, RGB_HUI, RGB_SAI, RGB_VAI, XXXXXXX, XXXXXXX, KC_MPRV, KC_MPLY, KC_MNXT, XXXXXXX, XXXXXXX, XXXXXXX,
113 RGB_MOD, RGB_HUD, RGB_SAD, RGB_VAD, XXXXXXX, XXXXXXX, KC_VOLU, KC_MUTE, KC_VOLD, XXXXXXX, XXXXXXX, XXXXXXX,
114 XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX, XXXXXXX,
115 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
116 )
117};
118
119
120layer_state_t layer_state_set_user(layer_state_t state) {
121 state = update_tri_layer_state(state, _RAISE, _LOWER, _ADJUST);
122 return state;
123}
124
125#ifdef OLED_DRIVER_ENABLE
126oled_rotation_t oled_init_user(oled_rotation_t rotation) {
127 if (is_keyboard_master()) {
128 return OLED_ROTATION_270;
129 } else {
130 return OLED_ROTATION_270;
131 }
132}
133
134void render_space(void) {
135 oled_write_P(PSTR(" "), false);
136}
137
138void render_mod_status_gui_alt(uint8_t modifiers) {
139 static const char PROGMEM gui_off_1[] = {0x85, 0x86, 0};
140 static const char PROGMEM gui_off_2[] = {0xa5, 0xa6, 0};
141 static const char PROGMEM gui_on_1[] = {0x8d, 0x8e, 0};
142 static const char PROGMEM gui_on_2[] = {0xad, 0xae, 0};
143
144 static const char PROGMEM alt_off_1[] = {0x87, 0x88, 0};
145 static const char PROGMEM alt_off_2[] = {0xa7, 0xa8, 0};
146 static const char PROGMEM alt_on_1[] = {0x8f, 0x90, 0};
147 static const char PROGMEM alt_on_2[] = {0xaf, 0xb0, 0};
148
149 // fillers between the modifier icons bleed into the icon frames
150 static const char PROGMEM off_off_1[] = {0xc5, 0};
151 static const char PROGMEM off_off_2[] = {0xc6, 0};
152 static const char PROGMEM on_off_1[] = {0xc7, 0};
153 static const char PROGMEM on_off_2[] = {0xc8, 0};
154 static const char PROGMEM off_on_1[] = {0xc9, 0};
155 static const char PROGMEM off_on_2[] = {0xca, 0};
156 static const char PROGMEM on_on_1[] = {0xcb, 0};
157 static const char PROGMEM on_on_2[] = {0xcc, 0};
158
159 if(modifiers & MOD_MASK_GUI) {
160 oled_write_P(gui_on_1, false);
161 } else {
162 oled_write_P(gui_off_1, false);
163 }
164
165 if ((modifiers & MOD_MASK_GUI) && (modifiers & MOD_MASK_ALT)) {
166 oled_write_P(on_on_1, false);
167 } else if(modifiers & MOD_MASK_GUI) {
168 oled_write_P(on_off_1, false);
169 } else if(modifiers & MOD_MASK_ALT) {
170 oled_write_P(off_on_1, false);
171 } else {
172 oled_write_P(off_off_1, false);
173 }
174
175 if(modifiers & MOD_MASK_ALT) {
176 oled_write_P(alt_on_1, false);
177 } else {
178 oled_write_P(alt_off_1, false);
179 }
180
181 if(modifiers & MOD_MASK_GUI) {
182 oled_write_P(gui_on_2, false);
183 } else {
184 oled_write_P(gui_off_2, false);
185 }
186
187 if (modifiers & MOD_MASK_GUI & MOD_MASK_ALT) {
188 oled_write_P(on_on_2, false);
189 } else if(modifiers & MOD_MASK_GUI) {
190 oled_write_P(on_off_2, false);
191 } else if(modifiers & MOD_MASK_ALT) {
192 oled_write_P(off_on_2, false);
193 } else {
194 oled_write_P(off_off_2, false);
195 }
196
197 if(modifiers & MOD_MASK_ALT) {
198 oled_write_P(alt_on_2, false);
199 } else {
200 oled_write_P(alt_off_2, false);
201 }
202}
203
204void render_mod_status_ctrl_shift(uint8_t modifiers) {
205 static const char PROGMEM ctrl_off_1[] = {0x89, 0x8a, 0};
206 static const char PROGMEM ctrl_off_2[] = {0xa9, 0xaa, 0};
207 static const char PROGMEM ctrl_on_1[] = {0x91, 0x92, 0};
208 static const char PROGMEM ctrl_on_2[] = {0xb1, 0xb2, 0};
209
210 static const char PROGMEM shift_off_1[] = {0x8b, 0x8c, 0};
211 static const char PROGMEM shift_off_2[] = {0xab, 0xac, 0};
212 static const char PROGMEM shift_on_1[] = {0xcd, 0xce, 0};
213 static const char PROGMEM shift_on_2[] = {0xcf, 0xd0, 0};
214
215 // fillers between the modifier icons bleed into the icon frames
216 static const char PROGMEM off_off_1[] = {0xc5, 0};
217 static const char PROGMEM off_off_2[] = {0xc6, 0};
218 static const char PROGMEM on_off_1[] = {0xc7, 0};
219 static const char PROGMEM on_off_2[] = {0xc8, 0};
220 static const char PROGMEM off_on_1[] = {0xc9, 0};
221 static const char PROGMEM off_on_2[] = {0xca, 0};
222 static const char PROGMEM on_on_1[] = {0xcb, 0};
223 static const char PROGMEM on_on_2[] = {0xcc, 0};
224
225 if(modifiers & MOD_MASK_CTRL) {
226 oled_write_P(ctrl_on_1, false);
227 } else {
228 oled_write_P(ctrl_off_1, false);
229 }
230
231 if ((modifiers & MOD_MASK_CTRL) && (modifiers & MOD_MASK_SHIFT)) {
232 oled_write_P(on_on_1, false);
233 } else if(modifiers & MOD_MASK_CTRL) {
234 oled_write_P(on_off_1, false);
235 } else if(modifiers & MOD_MASK_SHIFT) {
236 oled_write_P(off_on_1, false);
237 } else {
238 oled_write_P(off_off_1, false);
239 }
240
241 if(modifiers & MOD_MASK_SHIFT) {
242 oled_write_P(shift_on_1, false);
243 } else {
244 oled_write_P(shift_off_1, false);
245 }
246
247 if(modifiers & MOD_MASK_CTRL) {
248 oled_write_P(ctrl_on_2, false);
249 } else {
250 oled_write_P(ctrl_off_2, false);
251 }
252
253 if (modifiers & MOD_MASK_CTRL & MOD_MASK_SHIFT) {
254 oled_write_P(on_on_2, false);
255 } else if(modifiers & MOD_MASK_CTRL) {
256 oled_write_P(on_off_2, false);
257 } else if(modifiers & MOD_MASK_SHIFT) {
258 oled_write_P(off_on_2, false);
259 } else {
260 oled_write_P(off_off_2, false);
261 }
262
263 if(modifiers & MOD_MASK_SHIFT) {
264 oled_write_P(shift_on_2, false);
265 } else {
266 oled_write_P(shift_off_2, false);
267 }
268}
269
270void render_logo(void) {
271 static const char PROGMEM corne_logo[] = {
272 0xA0, 0xA1, 0xA2, 0xA3, 0xA4,
273 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0};
274 oled_write_P(corne_logo, false);
275 // oled_write_P(PSTR("Kimiko"), false);
276}
277
278void render_layer_state(void) {
279 static const char PROGMEM default_layer[] = {
280 0x20, 0x94, 0x95, 0x96, 0x20,
281 0x20, 0xb4, 0xb5, 0xb6, 0x20,
282 0x20, 0xd4, 0xd5, 0xd6, 0x20, 0};
283 static const char PROGMEM raise_layer[] = {
284 0x20, 0x97, 0x98, 0x99, 0x20,
285 0x20, 0xb7, 0xb8, 0xb9, 0x20,
286 0x20, 0xd7, 0xd8, 0xd9, 0x20, 0};
287 static const char PROGMEM lower_layer[] = {
288 0x20, 0x9a, 0x9b, 0x9c, 0x20,
289 0x20, 0xba, 0xbb, 0xbc, 0x20,
290 0x20, 0xda, 0xdb, 0xdc, 0x20, 0};
291 static const char PROGMEM adjust_layer[] = {
292 0x20, 0x9d, 0x9e, 0x9f, 0x20,
293 0x20, 0xbd, 0xbe, 0xbf, 0x20,
294 0x20, 0xdd, 0xde, 0xdf, 0x20, 0};
295 if(layer_state_is(_ADJUST)) {
296 oled_write_P(adjust_layer, false);
297 } else if(layer_state_is(_LOWER)) {
298 oled_write_P(lower_layer, false);
299 } else if(layer_state_is(_RAISE)) {
300 oled_write_P(raise_layer, false);
301 } else {
302 oled_write_P(default_layer, false);
303 }
304}
305
306void render_status_main(void) {
307 render_space();
308 render_space();
309 render_logo();
310 render_space();
311 render_layer_state();
312 render_space();
313 render_mod_status_gui_alt(get_mods()|get_oneshot_mods());
314 render_mod_status_ctrl_shift(get_mods()|get_oneshot_mods());
315}
316
317void render_status_secondary(void) {
318 render_space();
319 render_space();
320 render_logo();
321 render_space();
322}
323
324void oled_task_user(void) {
325 if (is_keyboard_master()) {
326 render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc)
327 } else {
328 render_status_secondary();
329 }
330}
331
332#endif
333
334
335#ifdef ENCODER_ENABLE
336void encoder_update_user(uint8_t index, bool clockwise) {
337 // Encoder on master side
338 if (index == 0) {
339 switch (get_highest_layer(layer_state)) {
340 // If the Default (QWERTY) layer is active
341 case _QWERTY:
342 // Arrow Up/Down
343 if (clockwise) {
344 tap_code(KC_DOWN);
345 } else {
346 tap_code(KC_UP);
347 }
348 break;
349
350 // If the RAISE layer is active
351 case _RAISE:
352 // Switch browser tabs
353 if (clockwise) {
354 tap_code16(LCTL(KC_TAB));
355 } else {
356 tap_code16(RCS(KC_TAB));
357 }
358 break;
359 // If the ADJUST layer is active
360 case _ADJUST:
361 // RGB brightness up/down
362 if (clockwise) {
363 rgblight_decrease_val(); // tap_code(RGB_VAD);
364 } else {
365 rgblight_increase_val(); // tap_code(RGB_VAI);
366 }
367 break;
368 }
369 }
370 // Encoder on slave side
371 else if (index == 1) {
372 switch (get_highest_layer(layer_state)) {
373 // If the Default (QWERTY) layer is active
374 case _QWERTY:
375 // Scroll by Word
376 if (clockwise) {
377 tap_code16(LCTL(KC_RGHT));
378 } else {
379 tap_code16(LCTL(KC_LEFT));
380 }
381 break;
382
383 // If the LOWER layer is active
384 case _LOWER:
385 // Volume up/down
386 if (clockwise) {
387 tap_code(KC_VOLU);
388 } else {
389 tap_code(KC_VOLD);
390 }
391 break;
392
393 // If the ADJUST layer is active
394 case _ADJUST:
395 // RGB hue up/down
396 if (clockwise) {
397 // tap_code(RGB_HUI);
398 rgblight_increase_hue();
399 } else {
400 // tap_code(RGB_HUD);
401 rgblight_decrease_hue();
402 }
403 break;
404 }
405 }
406}
407#endif // ENCODER_ENABLE
diff --git a/keyboards/keycapsss/kimiko/keymaps/default/rules.mk b/keyboards/keycapsss/kimiko/keymaps/default/rules.mk
new file mode 100644
index 000000000..947873117
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/keymaps/default/rules.mk
@@ -0,0 +1,8 @@
1OLED_DRIVER_ENABLE = yes # Enables the use of OLED displays
2ENCODER_ENABLE = yes # ENables the use of one or more encoders
3RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
4
5# LTO: Link Time Optimizations.
6# Reduce compiled size, but will automatically disable the legacy TMK Macros and Functions features.
7# This does not affect QMK Macros and Layers
8LTO_ENABLE = yes
diff --git a/keyboards/keycapsss/kimiko/kimiko.c b/keyboards/keycapsss/kimiko/kimiko.c
new file mode 100644
index 000000000..6d44d4533
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/kimiko.c
@@ -0,0 +1,17 @@
1/* Copyright 2020 @ben_roe (keycapsss.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#include "kimiko.h"
17
diff --git a/keyboards/keycapsss/kimiko/kimiko.h b/keyboards/keycapsss/kimiko/kimiko.h
new file mode 100644
index 000000000..a67496eb5
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/kimiko.h
@@ -0,0 +1,39 @@
1/* Copyright 2020 @ben_roe (keycapsss.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#pragma once
17
18#include "quantum.h"
19
20#define LAYOUT( \
21 L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
22 L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
23 L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
24 L30, L31, L32, L33, L34, L35, L40, R40, R30, R31, R32, R33, R34, R35, \
25 L41, L42, L43, L44, L45, R41, R42, R43, R44, R45 \
26 ) \
27 { \
28 { L00, L01, L02, L03, L04, L05 }, \
29 { L10, L11, L12, L13, L14, L15 }, \
30 { L20, L21, L22, L23, L24, L25 }, \
31 { L30, L31, L32, L33, L34, L35 }, \
32 { L41, L42, L43, L44, L45, L40 }, \
33 { R05, R04, R03, R02, R01, R00 }, \
34 { R15, R14, R13, R12, R11, R10 }, \
35 { R25, R24, R23, R22, R21, R20 }, \
36 { R35, R34, R33, R32, R31, R30 }, \
37 { R45, R44, R43, R42, R41, R40 } \
38 }
39
diff --git a/keyboards/keycapsss/kimiko/readme.md b/keyboards/keycapsss/kimiko/readme.md
new file mode 100644
index 000000000..0e2604079
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/readme.md
@@ -0,0 +1,23 @@
1# Kimiko
2
3<img src="https://keycapsss.com/media/image/7f/88/2b/kimiko-split-keyboard-1.jpg" width="800" />
4
5A split keyboard with 4x6 vertically staggered keys and thumb keys.
6
7- Per key RGB led's (SK6812 Mini-E)
8- 6 underglow RGB led's per side (SK6812 Mini)
9- Support for 1 rotary encoder per side (two possible positions)
10
11* Keyboard Maintainer: [BenRoe](https://github.com/BenRoe/) [@keycapsss](https://twitter.com/keycapsss)
12* Hardware Supported: Pro Micro 5V/16Mhz and compatible
13* Hardware Availability: [keycapsss.com](https://keycapsss.com)
14
15Make firmware .hex for this keyboard (after setting up your build environment):
16
17 make keycapsss/kimiko:default
18
19Example of flashing this keyboard (or use [QMK Toolbox](https://github.com/qmk/qmk_toolbox)):
20
21 make keycapsss/kimiko:default:flash
22
23See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.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/keycapsss/kimiko/rev1/config.h b/keyboards/keycapsss/kimiko/rev1/config.h
new file mode 100644
index 000000000..502eaa1e4
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/rev1/config.h
@@ -0,0 +1,67 @@
1/* Copyright 2020 @ben_roe (keycapsss.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/* USB Device descriptor parameter */
20#define VENDOR_ID 0x7983
21#define PRODUCT_ID 0x4B69 //Ki
22#define DEVICE_VER 0x0001
23#define MANUFACTURER Keycapsss
24#define PRODUCT Kimiko
25
26/* key matrix size */
27// rows are doubled-up for split-keyboard
28#define MATRIX_ROWS 10
29#define MATRIX_COLS 6
30#define MATRIX_ROW_PINS { C6, D7, E6, B4, B5 }
31#define MATRIX_COL_PINS { F6, F7, B1, B3, B2, B6 }
32
33/* COL2ROW or ROW2COL */
34#define DIODE_DIRECTION COL2ROW
35
36/* Set 0 if debouncing isn't needed */
37#define DEBOUNCE 5
38
39#define SOFT_SERIAL_PIN D2
40
41/* SK6812 RGB LED */
42#define RGB_DI_PIN D3
43
44#ifdef RGBLIGHT_ENABLE
45# define RGBLED_NUM 60 // Total number of LEDs
46# define RGBLED_SPLIT { 30, 30 } // LEDs per side
47# define RGBLIGHT_SPLIT
48#endif
49
50// Limit the power draw
51#ifdef IOS_DEVICE_ENABLE
52 #define RGBLIGHT_LIMIT_VAL 40
53#else
54 #define RGBLIGHT_LIMIT_VAL 80
55#endif
56
57#ifdef ENCODER_ENABLE
58# define ENCODERS_PAD_A { F4 }
59# define ENCODERS_PAD_B { F5 }
60# define ENCODERS_PAD_A_RIGHT { F4 }
61# define ENCODERS_PAD_B_RIGHT { F5 }
62#endif
63
64/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
65#define LOCKING_SUPPORT_ENABLE
66/* Locking resynchronize hack */
67#define LOCKING_RESYNC_ENABLE
diff --git a/keyboards/keycapsss/kimiko/rev1/rev1.c b/keyboards/keycapsss/kimiko/rev1/rev1.c
new file mode 100644
index 000000000..bc93aad0a
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/rev1/rev1.c
@@ -0,0 +1,17 @@
1/* Copyright 2020 @ben_roe (keycapsss.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 "rev1.h"
diff --git a/keyboards/keycapsss/kimiko/rev1/rev1.h b/keyboards/keycapsss/kimiko/rev1/rev1.h
new file mode 100644
index 000000000..619eed8f3
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/rev1/rev1.h
@@ -0,0 +1,40 @@
1/* Copyright 2020 @ben_roe (keycapsss.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 "kimiko.h"
20
21#define LAYOUT( \
22 L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
23 L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
24 L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
25 L30, L31, L32, L33, L34, L35, L40, R40, R30, R31, R32, R33, R34, R35, \
26 L41, L42, L43, L44, L45, R41, R42, R43, R44, R45 \
27 ) \
28 { \
29 { L00, L01, L02, L03, L04, L05 }, \
30 { L10, L11, L12, L13, L14, L15 }, \
31 { L20, L21, L22, L23, L24, L25 }, \
32 { L30, L31, L32, L33, L34, L35 }, \
33 { L41, L42, L43, L44, L45, L40 }, \
34 { R05, R04, R03, R02, R01, R00 }, \
35 { R15, R14, R13, R12, R11, R10 }, \
36 { R25, R24, R23, R22, R21, R20 }, \
37 { R35, R34, R33, R32, R31, R30 }, \
38 { R45, R44, R43, R42, R41, R40 } \
39 }
40
diff --git a/keyboards/keycapsss/kimiko/rev1/rules.mk b/keyboards/keycapsss/kimiko/rev1/rules.mk
new file mode 100644
index 000000000..8b1378917
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/rev1/rules.mk
@@ -0,0 +1 @@
diff --git a/keyboards/keycapsss/kimiko/rules.mk b/keyboards/keycapsss/kimiko/rules.mk
new file mode 100644
index 000000000..9be186a88
--- /dev/null
+++ b/keyboards/keycapsss/kimiko/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 = no # Virtual DIP switch configuration
11MOUSEKEY_ENABLE = yes # 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
23SPLIT_KEYBOARD = yes
24
25DEFAULT_FOLDER = keycapsss/kimiko/rev1