aboutsummaryrefslogtreecommitdiff
path: root/keyboards
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards')
-rw-r--r--keyboards/gh60/v1p3/config.h72
-rw-r--r--keyboards/gh60/v1p3/info.json511
-rw-r--r--keyboards/gh60/v1p3/keymaps/default/keymap.c33
-rw-r--r--keyboards/gh60/v1p3/keymaps/default/readme.md1
-rw-r--r--keyboards/gh60/v1p3/keymaps/default_ansi/keymap.c35
-rw-r--r--keyboards/gh60/v1p3/keymaps/default_ansi/readme.md34
-rw-r--r--keyboards/gh60/v1p3/keymaps/factory_hhkb/keymap.c33
-rw-r--r--keyboards/gh60/v1p3/keymaps/factory_layout5/keymap.c33
-rw-r--r--keyboards/gh60/v1p3/keymaps/factory_layout7/keymap.c33
-rw-r--r--keyboards/gh60/v1p3/keymaps/factory_layout9/keymap.c33
-rw-r--r--keyboards/gh60/v1p3/keymaps/factory_minila/keymap.c33
-rw-r--r--keyboards/gh60/v1p3/keymaps/factory_poker/keymap.c34
-rw-r--r--keyboards/gh60/v1p3/readme.md25
-rw-r--r--keyboards/gh60/v1p3/rules.mk24
-rw-r--r--keyboards/gh60/v1p3/v1p3.c16
-rw-r--r--keyboards/gh60/v1p3/v1p3.h167
16 files changed, 1117 insertions, 0 deletions
diff --git a/keyboards/gh60/v1p3/config.h b/keyboards/gh60/v1p3/config.h
new file mode 100644
index 000000000..211dff948
--- /dev/null
+++ b/keyboards/gh60/v1p3/config.h
@@ -0,0 +1,72 @@
1/*
2Copyright 2020 noroadsleft
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 0xFEED
24#define PRODUCT_ID 0x0000
25#define DEVICE_VER 0x0001
26#define MANUFACTURER Unknown
27#define PRODUCT GH60 v1.3
28
29/* key matrix size */
30#define MATRIX_ROWS 5
31#define MATRIX_COLS 16
32
33/*
34 * Keyboard Matrix Assignments
35 *
36 * Change this to how you wired your keyboard
37 * COLS: AVR pins used for columns, left to right
38 * ROWS: AVR pins used for rows, top to bottom
39 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
40 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
41 *
42 */
43#define MATRIX_ROW_PINS { B0, B1, B2, B3, F7 }
44#define MATRIX_COL_PINS { C7, F6, F5, F4, F1, E6, D0, D1, D2, D3, D4, D5, D6, D7, B4, B5 }
45
46#define DIODE_DIRECTION COL2ROW
47
48#define BACKLIGHT_PIN B6
49// #define BACKLIGHT_BREATHING
50#define BACKLIGHT_LEVELS 15
51
52#define RGB_DI_PIN F0
53#ifdef RGB_DI_PIN
54 #define RGBLED_NUM 10
55 #define RGBLIGHT_HUE_STEP 8
56 #define RGBLIGHT_SAT_STEP 8
57 #define RGBLIGHT_VAL_STEP 8
58 #define RGBLIGHT_LIMIT_VAL 255 /* The maximum brightness level */
59 #define RGBLIGHT_SLEEP /* If defined, the RGB lighting will be switched off when the host goes to sleep */
60/*== all animations enable ==*/
61 #define RGBLIGHT_ANIMATIONS
62// /*== or choose animations ==*/
63// #define RGBLIGHT_EFFECT_BREATHING
64// #define RGBLIGHT_EFFECT_RAINBOW_MOOD
65// #define RGBLIGHT_EFFECT_RAINBOW_SWIRL
66// #define RGBLIGHT_EFFECT_SNAKE
67// #define RGBLIGHT_EFFECT_KNIGHT
68// #define RGBLIGHT_EFFECT_CHRISTMAS
69// #define RGBLIGHT_EFFECT_STATIC_GRADIENT
70// #define RGBLIGHT_EFFECT_RGB_TEST
71// #define RGBLIGHT_EFFECT_ALTERNATING
72#endif
diff --git a/keyboards/gh60/v1p3/info.json b/keyboards/gh60/v1p3/info.json
new file mode 100644
index 000000000..11d435241
--- /dev/null
+++ b/keyboards/gh60/v1p3/info.json
@@ -0,0 +1,511 @@
1{
2 "keyboard_name": "GH60 v1.3",
3 "url": "",
4 "maintainer": "qmk",
5 "width": 15,
6 "height": 5,
7 "layouts": {
8 "LAYOUT_all": {
9 "layout": [
10 {"label":"K00 (B0,C7)", "x":0, "y":0},
11 {"label":"K01 (B0,F6)", "x":1, "y":0},
12 {"label":"K02 (B0,F5)", "x":2, "y":0},
13 {"label":"K03 (B0,F4)", "x":3, "y":0},
14 {"label":"K04 (B0,F1)", "x":4, "y":0},
15 {"label":"K05 (B0,E6)", "x":5, "y":0},
16 {"label":"K06 (B0,D0)", "x":6, "y":0},
17 {"label":"K07 (B0,D1)", "x":7, "y":0},
18 {"label":"K08 (B0,D2)", "x":8, "y":0},
19 {"label":"K09 (B0,D3)", "x":9, "y":0},
20 {"label":"K0A (B0,D4)", "x":10, "y":0},
21 {"label":"K0B (B0,D5)", "x":11, "y":0},
22 {"label":"K0C (B0,D6)", "x":12, "y":0},
23 {"label":"K0D (B0,D7)", "x":13, "y":0, "w":0.667},
24 {"label":"K0E (B0,B4)", "x":13.667, "y":0, "w":0.666},
25 {"label":"K0F (B0,B5)", "x":14.333, "y":0, "w":0.667},
26
27 {"label":"K10 (B1,C7)", "x":0, "y":1, "w":1.5},
28 {"label":"K11 (B1,F6)", "x":1.5, "y":1},
29 {"label":"K12 (B1,F5)", "x":2.5, "y":1},
30 {"label":"K13 (B1,F4)", "x":3.5, "y":1},
31 {"label":"K14 (B1,F1)", "x":4.5, "y":1},
32 {"label":"K15 (B1,E6)", "x":5.5, "y":1},
33 {"label":"K16 (B1,D0)", "x":6.5, "y":1},
34 {"label":"K17 (B1,D1)", "x":7.5, "y":1},
35 {"label":"K18 (B1,D2)", "x":8.5, "y":1},
36 {"label":"K19 (B1,D3)", "x":9.5, "y":1},
37 {"label":"K1A (B1,D4)", "x":10.5, "y":1},
38 {"label":"K1B (B1,D5)", "x":11.5, "y":1},
39 {"label":"K1C (B1,D6)", "x":12.5, "y":1},
40 {"label":"K1D (B1,D7)", "x":13.5, "y":1, "w":1.5},
41
42 {"label":"K20 (B2,C7)", "x":0, "y":2, "w":1.75},
43 {"label":"K21 (B2,F6)", "x":1.75, "y":2},
44 {"label":"K22 (B2,F5)", "x":2.75, "y":2},
45 {"label":"K23 (B2,F4)", "x":3.75, "y":2},
46 {"label":"K24 (B2,F1)", "x":4.75, "y":2},
47 {"label":"K25 (B2,E6)", "x":5.75, "y":2},
48 {"label":"K26 (B2,D0)", "x":6.75, "y":2},
49 {"label":"K27 (B2,D1)", "x":7.75, "y":2},
50 {"label":"K28 (B2,D2)", "x":8.75, "y":2},
51 {"label":"K29 (B2,D3)", "x":9.75, "y":2},
52 {"label":"K2A (B2,D4)", "x":10.75, "y":2},
53 {"label":"K2B (B2,D5)", "x":11.75, "y":2},
54 {"label":"K2C (B2,D6)", "x":12.75, "y":2},
55 {"label":"K2D (B2,D7)", "x":13.75, "y":2, "w":1.25},
56
57 {"label":"K30 (B3,C7)", "x":0, "y":3, "w":1.25},
58 {"label":"K31 (B3,F6)", "x":1.25, "y":3, "w":0.75},
59 {"label":"K32 (B3,F5)", "x":2, "y":3},
60 {"label":"K33 (B3,F4)", "x":3, "y":3},
61 {"label":"K34 (B3,F1)", "x":4, "y":3},
62 {"label":"K35 (B3,E6)", "x":5, "y":3},
63 {"label":"K36 (B3,D0)", "x":6, "y":3},
64 {"label":"K37 (B3,D1)", "x":7, "y":3},
65 {"label":"K38 (B3,D2)", "x":8, "y":3},
66 {"label":"K39 (B3,D3)", "x":9, "y":3},
67 {"label":"K3A (B3,D4)", "x":10, "y":3},
68 {"label":"K3B (B3,D5)", "x":11, "y":3},
69 {"label":"K3C (B3,D6)", "x":12, "y":3, "w":0.75},
70 {"label":"K3D (B3,D7)", "x":12.75, "y":3, "w":0.75},
71 {"label":"K3E (B3,B4)", "x":13.5, "y":3, "w":0.75},
72 {"label":"K3F (B3,B5)", "x":14.25, "y":3, "w":0.75},
73
74 {"label":"K40 (F7,C7)", "x":0, "y":4, "w":1.25},
75 {"label":"K41 (F7,F6)", "x":1.25, "y":4, "w":0.75},
76 {"label":"K42 (F7,F5)", "x":2, "y":4, "w":0.75},
77 {"label":"K43 (F7,F4)", "x":2.75, "y":4, "w":0.75},
78 {"label":"K44 (F7,F1)", "x":3.5, "y":4, "w":0.75},
79 {"label":"K45 (F7,E6)", "x":4.25, "y":4, "w":1.25},
80 {"label":"K48 (F7,D2)", "x":5.5, "y":4, "w":3},
81 {"label":"K49 (F7,D3)", "x":8.5, "y":4, "w":1.25},
82 {"label":"K4A (F7,D4)", "x":9.75, "y":4, "w":0.875},
83 {"label":"K4B (F7,D5)", "x":10.625, "y":4, "w":0.875},
84 {"label":"K4C (F7,D6)", "x":11.5, "y":4, "w":0.875},
85 {"label":"K4D (F7,D7)", "x":12.375, "y":4, "w":0.875},
86 {"label":"K4E (F7,B4)", "x":13.25, "y":4, "w":0.875},
87 {"label":"K4F (F7,B5)", "x":14.125, "y":4, "w":0.875}
88 ]
89 },
90 "LAYOUT_60_ansi": {
91 "layout": [
92 {"x":0, "y":0},
93 {"x":1, "y":0},
94 {"x":2, "y":0},
95 {"x":3, "y":0},
96 {"x":4, "y":0},
97 {"x":5, "y":0},
98 {"x":6, "y":0},
99 {"x":7, "y":0},
100 {"x":8, "y":0},
101 {"x":9, "y":0},
102 {"x":10, "y":0},
103 {"x":11, "y":0},
104 {"x":12, "y":0},
105 {"x":13, "y":0, "w":2},
106
107 {"x":0, "y":1, "w":1.5},
108 {"x":1.5, "y":1},
109 {"x":2.5, "y":1},
110 {"x":3.5, "y":1},
111 {"x":4.5, "y":1},
112 {"x":5.5, "y":1},
113 {"x":6.5, "y":1},
114 {"x":7.5, "y":1},
115 {"x":8.5, "y":1},
116 {"x":9.5, "y":1},
117 {"x":10.5, "y":1},
118 {"x":11.5, "y":1},
119 {"x":12.5, "y":1},
120 {"x":13.5, "y":1, "w":1.5},
121
122 {"x":0, "y":2, "w":1.75},
123 {"x":1.75, "y":2},
124 {"x":2.75, "y":2},
125 {"x":3.75, "y":2},
126 {"x":4.75, "y":2},
127 {"x":5.75, "y":2},
128 {"x":6.75, "y":2},
129 {"x":7.75, "y":2},
130 {"x":8.75, "y":2},
131 {"x":9.75, "y":2},
132 {"x":10.75, "y":2},
133 {"x":11.75, "y":2},
134 {"x":12.75, "y":2, "w":2.25},
135
136 {"x":0, "y":3, "w":2.25},
137 {"x":2.25, "y":3},
138 {"x":3.25, "y":3},
139 {"x":4.25, "y":3},
140 {"x":5.25, "y":3},
141 {"x":6.25, "y":3},
142 {"x":7.25, "y":3},
143 {"x":8.25, "y":3},
144 {"x":9.25, "y":3},
145 {"x":10.25, "y":3},
146 {"x":11.25, "y":3},
147 {"x":12.25, "y":3, "w":2.75},
148
149 {"x":0, "y":4, "w":1.25},
150 {"x":1.25, "y":4, "w":1.25},
151 {"x":2.5, "y":4, "w":1.25},
152 {"x":3.75, "y":4, "w":6.25},
153 {"x":10, "y":4, "w":1.25},
154 {"x":11.25, "y":4, "w":1.25},
155 {"x":12.5, "y":4, "w":1.25},
156 {"x":13.75, "y":4, "w":1.25}
157 ]
158 },
159 "LAYOUT_60_ansi_arrow": {
160 "layout": [
161 {"x":0, "y":0},
162 {"x":1, "y":0},
163 {"x":2, "y":0},
164 {"x":3, "y":0},
165 {"x":4, "y":0},
166 {"x":5, "y":0},
167 {"x":6, "y":0},
168 {"x":7, "y":0},
169 {"x":8, "y":0},
170 {"x":9, "y":0},
171 {"x":10, "y":0},
172 {"x":11, "y":0},
173 {"x":12, "y":0},
174 {"x":13, "y":0, "w":2},
175
176 {"x":0, "y":1, "w":1.5},
177 {"x":1.5, "y":1},
178 {"x":2.5, "y":1},
179 {"x":3.5, "y":1},
180 {"x":4.5, "y":1},
181 {"x":5.5, "y":1},
182 {"x":6.5, "y":1},
183 {"x":7.5, "y":1},
184 {"x":8.5, "y":1},
185 {"x":9.5, "y":1},
186 {"x":10.5, "y":1},
187 {"x":11.5, "y":1},
188 {"x":12.5, "y":1},
189 {"x":13.5, "y":1, "w":1.5},
190
191 {"x":0, "y":2, "w":1.75},
192 {"x":1.75, "y":2},
193 {"x":2.75, "y":2},
194 {"x":3.75, "y":2},
195 {"x":4.75, "y":2},
196 {"x":5.75, "y":2},
197 {"x":6.75, "y":2},
198 {"x":7.75, "y":2},
199 {"x":8.75, "y":2},
200 {"x":9.75, "y":2},
201 {"x":10.75, "y":2},
202 {"x":11.75, "y":2},
203 {"x":12.75, "y":2, "w":2.25},
204
205 {"x":0, "y":3, "w":2.25},
206 {"x":2.25, "y":3},
207 {"x":3.25, "y":3},
208 {"x":4.25, "y":3},
209 {"x":5.25, "y":3},
210 {"x":6.25, "y":3},
211 {"x":7.25, "y":3},
212 {"x":8.25, "y":3},
213 {"x":9.25, "y":3},
214 {"x":10.25, "y":3},
215 {"x":11.25, "y":3, "w":1.75},
216 {"x":13, "y":3},
217 {"x":14, "y":3},
218
219 {"x":0, "y":4, "w":1.25},
220 {"x":1.25, "y":4, "w":1.25},
221 {"x":2.5, "y":4, "w":1.25},
222 {"x":3.75, "y":4, "w":6.25},
223 {"x":10, "y":4},
224 {"x":11, "y":4},
225 {"x":12, "y":4},
226 {"x":13, "y":4},
227 {"x":14, "y":4}
228 ]
229 },
230 "LAYOUT_60_ansi_arrow_split_bs": {
231 "layout": [
232 {"x":0, "y":0},
233 {"x":1, "y":0},
234 {"x":2, "y":0},
235 {"x":3, "y":0},
236 {"x":4, "y":0},
237 {"x":5, "y":0},
238 {"x":6, "y":0},
239 {"x":7, "y":0},
240 {"x":8, "y":0},
241 {"x":9, "y":0},
242 {"x":10, "y":0},
243 {"x":11, "y":0},
244 {"x":12, "y":0},
245 {"x":13, "y":0},
246 {"x":14, "y":0},
247
248 {"x":0, "y":1, "w":1.5},
249 {"x":1.5, "y":1},
250 {"x":2.5, "y":1},
251 {"x":3.5, "y":1},
252 {"x":4.5, "y":1},
253 {"x":5.5, "y":1},
254 {"x":6.5, "y":1},
255 {"x":7.5, "y":1},
256 {"x":8.5, "y":1},
257 {"x":9.5, "y":1},
258 {"x":10.5, "y":1},
259 {"x":11.5, "y":1},
260 {"x":12.5, "y":1},
261 {"x":13.5, "y":1, "w":1.5},
262
263 {"x":0, "y":2, "w":1.75},
264 {"x":1.75, "y":2},
265 {"x":2.75, "y":2},
266 {"x":3.75, "y":2},
267 {"x":4.75, "y":2},
268 {"x":5.75, "y":2},
269 {"x":6.75, "y":2},
270 {"x":7.75, "y":2},
271 {"x":8.75, "y":2},
272 {"x":9.75, "y":2},
273 {"x":10.75, "y":2},
274 {"x":11.75, "y":2},
275 {"x":12.75, "y":2, "w":2.25},
276
277 {"x":0, "y":3, "w":2.25},
278 {"x":2.25, "y":3},
279 {"x":3.25, "y":3},
280 {"x":4.25, "y":3},
281 {"x":5.25, "y":3},
282 {"x":6.25, "y":3},
283 {"x":7.25, "y":3},
284 {"x":8.25, "y":3},
285 {"x":9.25, "y":3},
286 {"x":10.25, "y":3},
287 {"x":11.25, "y":3, "w":1.75},
288 {"x":13, "y":3},
289 {"x":14, "y":3},
290
291 {"x":0, "y":4, "w":1.25},
292 {"x":1.25, "y":4, "w":1.25},
293 {"x":2.5, "y":4, "w":1.25},
294 {"x":3.75, "y":4, "w":6.25},
295 {"x":10, "y":4},
296 {"x":11, "y":4},
297 {"x":12, "y":4},
298 {"x":13, "y":4},
299 {"x":14, "y":4}
300 ]
301 },
302 "LAYOUT_60_ansi_tsangan": {
303 "layout": [
304 {"x":0, "y":0},
305 {"x":1, "y":0},
306 {"x":2, "y":0},
307 {"x":3, "y":0},
308 {"x":4, "y":0},
309 {"x":5, "y":0},
310 {"x":6, "y":0},
311 {"x":7, "y":0},
312 {"x":8, "y":0},
313 {"x":9, "y":0},
314 {"x":10, "y":0},
315 {"x":11, "y":0},
316 {"x":12, "y":0},
317 {"x":13, "y":0, "w":2},
318
319 {"x":0, "y":1, "w":1.5},
320 {"x":1.5, "y":1},
321 {"x":2.5, "y":1},
322 {"x":3.5, "y":1},
323 {"x":4.5, "y":1},
324 {"x":5.5, "y":1},
325 {"x":6.5, "y":1},
326 {"x":7.5, "y":1},
327 {"x":8.5, "y":1},
328 {"x":9.5, "y":1},
329 {"x":10.5, "y":1},
330 {"x":11.5, "y":1},
331 {"x":12.5, "y":1},
332 {"x":13.5, "y":1, "w":1.5},
333
334 {"x":0, "y":2, "w":1.75},
335 {"x":1.75, "y":2},
336 {"x":2.75, "y":2},
337 {"x":3.75, "y":2},
338 {"x":4.75, "y":2},
339 {"x":5.75, "y":2},
340 {"x":6.75, "y":2},
341 {"x":7.75, "y":2},
342 {"x":8.75, "y":2},
343 {"x":9.75, "y":2},
344 {"x":10.75, "y":2},
345 {"x":11.75, "y":2},
346 {"x":12.75, "y":2, "w":2.25},
347
348 {"x":0, "y":3, "w":2.25},
349 {"x":2.25, "y":3},
350 {"x":3.25, "y":3},
351 {"x":4.25, "y":3},
352 {"x":5.25, "y":3},
353 {"x":6.25, "y":3},
354 {"x":7.25, "y":3},
355 {"x":8.25, "y":3},
356 {"x":9.25, "y":3},
357 {"x":10.25, "y":3},
358 {"x":11.25, "y":3},
359 {"x":12.25, "y":3, "w":2.75},
360
361 {"x":0, "y":4, "w":1.5},
362 {"x":1.5, "y":4},
363 {"x":2.5, "y":4, "w":1.5},
364 {"x":4, "y":4, "w":7},
365 {"x":11, "y":4, "w":1.5},
366 {"x":12.5, "y":4},
367 {"x":13.5, "y":4, "w":1.5}
368 ]
369 },
370 "LAYOUT_60_hhkb": {
371 "layout": [
372 {"x":0, "y":0},
373 {"x":1, "y":0},
374 {"x":2, "y":0},
375 {"x":3, "y":0},
376 {"x":4, "y":0},
377 {"x":5, "y":0},
378 {"x":6, "y":0},
379 {"x":7, "y":0},
380 {"x":8, "y":0},
381 {"x":9, "y":0},
382 {"x":10, "y":0},
383 {"x":11, "y":0},
384 {"x":12, "y":0},
385 {"x":13, "y":0},
386 {"x":14, "y":0},
387
388 {"x":0, "y":1, "w":1.5},
389 {"x":1.5, "y":1},
390 {"x":2.5, "y":1},
391 {"x":3.5, "y":1},
392 {"x":4.5, "y":1},
393 {"x":5.5, "y":1},
394 {"x":6.5, "y":1},
395 {"x":7.5, "y":1},
396 {"x":8.5, "y":1},
397 {"x":9.5, "y":1},
398 {"x":10.5, "y":1},
399 {"x":11.5, "y":1},
400 {"x":12.5, "y":1},
401 {"x":13.5, "y":1, "w":1.5},
402
403 {"x":0, "y":2, "w":1.75},
404 {"x":1.75, "y":2},
405 {"x":2.75, "y":2},
406 {"x":3.75, "y":2},
407 {"x":4.75, "y":2},
408 {"x":5.75, "y":2},
409 {"x":6.75, "y":2},
410 {"x":7.75, "y":2},
411 {"x":8.75, "y":2},
412 {"x":9.75, "y":2},
413 {"x":10.75, "y":2},
414 {"x":11.75, "y":2},
415 {"x":12.75, "y":2, "w":2.25},
416
417 {"x":0, "y":3, "w":2.25},
418 {"x":2.25, "y":3},
419 {"x":3.25, "y":3},
420 {"x":4.25, "y":3},
421 {"x":5.25, "y":3},
422 {"x":6.25, "y":3},
423 {"x":7.25, "y":3},
424 {"x":8.25, "y":3},
425 {"x":9.25, "y":3},
426 {"x":10.25, "y":3},
427 {"x":11.25, "y":3},
428 {"x":12.25, "y":3, "w":1.75},
429 {"x":14, "y":3},
430
431 {"x":1.5, "y":4},
432 {"x":2.5, "y":4, "w":1.5},
433 {"x":4, "y":4, "w":7},
434 {"x":11, "y":4, "w":1.5},
435 {"x":12.5, "y":4}
436 ]
437 },
438 "LAYOUT_64_ansi": {
439 "layout": [
440 {"x":0, "y":0},
441 {"x":1, "y":0},
442 {"x":2, "y":0},
443 {"x":3, "y":0},
444 {"x":4, "y":0},
445 {"x":5, "y":0},
446 {"x":6, "y":0},
447 {"x":7, "y":0},
448 {"x":8, "y":0},
449 {"x":9, "y":0},
450 {"x":10, "y":0},
451 {"x":11, "y":0},
452 {"x":12, "y":0},
453 {"x":13, "y":0, "w":2},
454
455 {"x":0, "y":1, "w":1.5},
456 {"x":1.5, "y":1},
457 {"x":2.5, "y":1},
458 {"x":3.5, "y":1},
459 {"x":4.5, "y":1},
460 {"x":5.5, "y":1},
461 {"x":6.5, "y":1},
462 {"x":7.5, "y":1},
463 {"x":8.5, "y":1},
464 {"x":9.5, "y":1},
465 {"x":10.5, "y":1},
466 {"x":11.5, "y":1},
467 {"x":12.5, "y":1},
468 {"x":13.5, "y":1, "w":1.5},
469
470 {"x":0, "y":2, "w":1.75},
471 {"x":1.75, "y":2},
472 {"x":2.75, "y":2},
473 {"x":3.75, "y":2},
474 {"x":4.75, "y":2},
475 {"x":5.75, "y":2},
476 {"x":6.75, "y":2},
477 {"x":7.75, "y":2},
478 {"x":8.75, "y":2},
479 {"x":9.75, "y":2},
480 {"x":10.75, "y":2},
481 {"x":11.75, "y":2},
482 {"x":12.75, "y":2, "w":2.25},
483
484 {"x":0, "y":3, "w":2},
485 {"x":2, "y":3},
486 {"x":3, "y":3},
487 {"x":4, "y":3},
488 {"x":5, "y":3},
489 {"x":6, "y":3},
490 {"x":7, "y":3},
491 {"x":8, "y":3},
492 {"x":9, "y":3},
493 {"x":10, "y":3},
494 {"x":11, "y":3},
495 {"x":12, "y":3},
496 {"x":13, "y":3},
497 {"x":14, "y":3},
498
499 {"x":0, "y":4, "w":1.25},
500 {"x":1.25, "y":4, "w":1.25},
501 {"x":2.5, "y":4, "w":1.25},
502 {"x":3.75, "y":4, "w":6.25},
503 {"x":10, "y":4},
504 {"x":11, "y":4},
505 {"x":12, "y":4},
506 {"x":13, "y":4},
507 {"x":14, "y":4}
508 ]
509 }
510 }
511}
diff --git a/keyboards/gh60/v1p3/keymaps/default/keymap.c b/keyboards/gh60/v1p3/keymaps/default/keymap.c
new file mode 100644
index 000000000..9ae1b5d17
--- /dev/null
+++ b/keyboards/gh60/v1p3/keymaps/default/keymap.c
@@ -0,0 +1,33 @@
1/* Copyright 2020 noroadsleft
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_all(
20 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_HOME, KC_END, KC_END,
21 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_BSPC,
22 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_TILD, KC_ENT,
23 KC_LSFT, KC_NUHS, 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_UP, KC_DEL,
24 KC_LCTL, KC_LGUI, KC_LGUI, KC_LALT, KC_LALT, MO(1), KC_SPC, MO(1), KC_RCTL, KC_APP, KC_LEFT, KC_DOWN, KC_DOWN, KC_RGHT
25 ),
26 [1] = LAYOUT_all(
27 _______, 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_DEL, KC_DEL,
28 _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______,
29 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, KC_HASH, _______,
30 _______, _______, RESET, BL_DEC, BL_TOGG, BL_INC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
32 ),
33};
diff --git a/keyboards/gh60/v1p3/keymaps/default/readme.md b/keyboards/gh60/v1p3/keymaps/default/readme.md
new file mode 100644
index 000000000..ecf2a883b
--- /dev/null
+++ b/keyboards/gh60/v1p3/keymaps/default/readme.md
@@ -0,0 +1 @@
# The default keymap for GH60 v1.3
diff --git a/keyboards/gh60/v1p3/keymaps/default_ansi/keymap.c b/keyboards/gh60/v1p3/keymaps/default_ansi/keymap.c
new file mode 100644
index 000000000..82fb774ef
--- /dev/null
+++ b/keyboards/gh60/v1p3/keymaps/default_ansi/keymap.c
@@ -0,0 +1,35 @@
1/* Copyright 2020 noroadsleft
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
18#define FN_CAPS LT(1, KC_CAPS)
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21 [0] = LAYOUT_60_ansi(
22 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,
23 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,
24 FN_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,
25 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
26 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
27 ),
28 [1] = LAYOUT_60_ansi(
29 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_DEL,
30 _______, _______, _______, _______, RESET, _______, KC_INS, KC_HOME, KC_UP, KC_END, KC_PGUP, KC_PSCR, KC_SLCK, KC_PAUS,
31 _______, _______, _______, _______, _______, _______, KC_DEL, KC_LEFT, KC_DOWN, KC_RGHT, KC_PGDN, _______, _______,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______
34 ),
35};
diff --git a/keyboards/gh60/v1p3/keymaps/default_ansi/readme.md b/keyboards/gh60/v1p3/keymaps/default_ansi/readme.md
new file mode 100644
index 000000000..7552e3d04
--- /dev/null
+++ b/keyboards/gh60/v1p3/keymaps/default_ansi/readme.md
@@ -0,0 +1,34 @@
1# The default ANSI keymap for GH60 v1.3
2
3## Function layer
4
5| Shortcut | Action |
6| :----------------- | :------------------- |
7| `Fn` + `Esc` | <kbd>&grave; ~</kbd> |
8| `Fn` + `1` | `F1` |
9| `Fn` + `2` | `F2` |
10| `Fn` + `3` | `F3` |
11| `Fn` + `4` | `F4` |
12| `Fn` + `5` | `F5` |
13| `Fn` + `6` | `F6` |
14| `Fn` + `7` | `F7` |
15| `Fn` + `8` | `F8` |
16| `Fn` + `9` | `F9` |
17| `Fn` + `0` | `F10` |
18| `Fn` + `-` | `F11` |
19| `Fn` + `=` | `F12` |
20| `Fn` + `Backspace` | `Delete` |
21| `Fn` + `R` | `RESET` |
22| `Fn` + `I` | `Up` |
23| `Fn` + `J` | `Left` |
24| `Fn` + `K` | `Down` |
25| `Fn` + `L` | `Right` |
26| `Fn` + `U` | `Home` |
27| `Fn` + `O` | `End` |
28| `Fn` + `Y` | `Insert` |
29| `Fn` + `H` | `Delete` |
30| `Fn` + `P` | `Page Up` |
31| `Fn` + `;` | `Page Down` |
32| `Fn` + `[` | `Print Screen` |
33| `Fn` + `]` | `Scroll Lock` |
34| `Fn` + `\` | `Pause` |
diff --git a/keyboards/gh60/v1p3/keymaps/factory_hhkb/keymap.c b/keyboards/gh60/v1p3/keymaps/factory_hhkb/keymap.c
new file mode 100644
index 000000000..b3908e7ef
--- /dev/null
+++ b/keyboards/gh60/v1p3/keymaps/factory_hhkb/keymap.c
@@ -0,0 +1,33 @@
1/* Copyright 2020 noroadsleft
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_all(
20 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_BSLS, KC_BSPC, KC_GRV,
21 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_DEL,
22 KC_LCTL, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_HASH, KC_ENT,
23 KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_RSFT, MO(1),
24 KC_LCTL, KC_LALT, KC_LALT, KC_LGUI, KC_LGUI, KC_SPC, KC_SPC, KC_SPC, KC_RGUI, KC_RGUI, KC_RGUI, KC_RALT, KC_RALT, KC_RGHT
25 ),
26 [1] = LAYOUT_all(
27 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_INS, _______, KC_BSPC,
28 _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_PSCR, KC_SLCK, KC_PAUS, KC_BSPC,
29 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_TILD, _______,
30 _______, _______, RESET, KC_APP, BL_DEC, BL_TOGG, BL_INC, KC_VOLD, KC_MUTE, KC_VOLU, KC_END, KC_PGDN, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
32 ),
33};
diff --git a/keyboards/gh60/v1p3/keymaps/factory_layout5/keymap.c b/keyboards/gh60/v1p3/keymaps/factory_layout5/keymap.c
new file mode 100644
index 000000000..31003909a
--- /dev/null
+++ b/keyboards/gh60/v1p3/keymaps/factory_layout5/keymap.c
@@ -0,0 +1,33 @@
1/* Copyright 2020 noroadsleft
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_all(
20 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_BSPC,
21 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,
22 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_TILD, KC_ENT,
23 KC_LSFT, KC_NUHS, 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_UP, KC_DEL,
24 KC_LCTL, KC_LGUI, KC_LGUI, KC_LALT, KC_LALT, MO(1), KC_SPC, MO(1), KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_DOWN, KC_RGHT
25 ),
26 [1] = LAYOUT_all(
27 _______, 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_DEL,
28 _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______,
29 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, KC_HASH, _______,
30 _______, _______, RESET, BL_DEC, BL_TOGG, BL_INC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
32 ),
33};
diff --git a/keyboards/gh60/v1p3/keymaps/factory_layout7/keymap.c b/keyboards/gh60/v1p3/keymaps/factory_layout7/keymap.c
new file mode 100644
index 000000000..ed08a087e
--- /dev/null
+++ b/keyboards/gh60/v1p3/keymaps/factory_layout7/keymap.c
@@ -0,0 +1,33 @@
1/* Copyright 2020 noroadsleft
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_all(
20 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_BSPC,
21 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,
22 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_TILD, KC_ENT,
23 KC_LSFT, KC_NUHS, 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_UP, KC_SLSH,
24 KC_LCTL, KC_LGUI, KC_LGUI, KC_LALT, KC_LALT, MO(1), KC_SPC, MO(1), KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_DOWN, KC_RGHT
25 ),
26 [1] = LAYOUT_all(
27 _______, 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_DEL,
28 _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______,
29 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, _______, _______, KC_HASH, _______,
30 _______, _______, RESET, BL_DEC, BL_TOGG, BL_INC, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
32 ),
33};
diff --git a/keyboards/gh60/v1p3/keymaps/factory_layout9/keymap.c b/keyboards/gh60/v1p3/keymaps/factory_layout9/keymap.c
new file mode 100644
index 000000000..5a779d9ba
--- /dev/null
+++ b/keyboards/gh60/v1p3/keymaps/factory_layout9/keymap.c
@@ -0,0 +1,33 @@
1/* Copyright 2020 noroadsleft
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_all(
20 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_DEL, KC_BSPC, KC_BSPC,
21 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,
22 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_TILD, KC_ENT,
23 KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_RSFT, KC_UP,
24 KC_LCTL, KC_LGUI, KC_LGUI, KC_LALT, KC_LALT, MO(1), KC_SPC, MO(1), KC_RCTL, MO(1), KC_LEFT, KC_DOWN, KC_DOWN, KC_RGHT
25 ),
26 [1] = LAYOUT_all(
27 _______, 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, _______,
28 _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_PSCR, KC_SLCK, KC_PAUS, _______,
29 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_HASH, _______,
30 _______, _______, RESET, BL_DEC, BL_TOGG, BL_INC, _______, KC_VOLD, KC_MUTE, KC_VOLU, KC_END, KC_PGDN, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
32 ),
33};
diff --git a/keyboards/gh60/v1p3/keymaps/factory_minila/keymap.c b/keyboards/gh60/v1p3/keymaps/factory_minila/keymap.c
new file mode 100644
index 000000000..166ddd7c1
--- /dev/null
+++ b/keyboards/gh60/v1p3/keymaps/factory_minila/keymap.c
@@ -0,0 +1,33 @@
1/* Copyright 2020 noroadsleft
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_all(
20 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_BSPC,
21 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,
22 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_TILD, KC_ENT,
23 KC_LSFT, KC_NUHS, 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_UP, KC_DEL,
24 KC_LCTL, KC_LGUI, KC_LGUI, KC_LALT, KC_LALT, MO(1), KC_SPC, MO(1), KC_RALT, KC_APP, KC_LEFT, KC_LEFT, KC_DOWN, KC_RGHT
25 ),
26 [1] = LAYOUT_all(
27 _______, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, _______, _______, _______,
28 _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_PSCR, KC_SLCK, KC_PAUS, _______,
29 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_HASH, _______,
30 _______, _______, RESET, BL_DEC, BL_TOGG, BL_INC, _______, KC_VOLD, KC_MUTE, KC_VOLU, KC_END, KC_PGDN, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
32 ),
33};
diff --git a/keyboards/gh60/v1p3/keymaps/factory_poker/keymap.c b/keyboards/gh60/v1p3/keymaps/factory_poker/keymap.c
new file mode 100644
index 000000000..68d0ea01b
--- /dev/null
+++ b/keyboards/gh60/v1p3/keymaps/factory_poker/keymap.c
@@ -0,0 +1,34 @@
1/* Copyright 2020 noroadsleft
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_all(
20 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_BSPC,
21 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,
22 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_TILD, KC_ENT,
23 KC_LSFT, KC_NUHS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT, KC_RSFT, KC_DEL,
24 KC_LCTL, KC_LGUI, KC_LGUI, KC_LALT, KC_LALT, BL_TOGG, KC_SPC, BL_TOGG, KC_RALT, MO(1), MO(1), KC_APP, KC_APP, KC_RCTL
25 ),
26 [1] = LAYOUT_all(
27 _______, 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_DEL,
28 _______, RGB_TOG, KC_UP, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, KC_PSCR, KC_SLCK, KC_PAUS, _______,
29 _______, KC_LEFT, KC_DOWN, KC_RGHT, _______, _______, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_HASH, _______,
30 _______, _______, RESET, BL_DEC, BL_TOGG, BL_INC, _______, KC_VOLD, KC_MUTE, KC_VOLU, KC_END, KC_PGDN, _______, _______, _______, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______
32 ),
33
34};
diff --git a/keyboards/gh60/v1p3/readme.md b/keyboards/gh60/v1p3/readme.md
new file mode 100644
index 000000000..b0b75a785
--- /dev/null
+++ b/keyboards/gh60/v1p3/readme.md
@@ -0,0 +1,25 @@
1# GH60 v1.3
2
3![GH60 v1.3](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/gh60/v1p3/pcb_bottom.jpg)
4
5A 60% with USB Type-C, in-switch backlight, and RGB Underglow. Also called GH60 RGB.
6
7* Keyboard Maintainer: [The QMK Community](https://github.com/qmk)
8* Hardware Supported: GH60 V1.3 PCB, ATmega32U4
9* Hardware Availability: [NPKC RGB CP Store on AliExpress](https://www.aliexpress.com/i/32851321035.html)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make gh60/v1p3:default
14
15Flashing example for this keyboard:
16
17 make gh60/v1p3:default:flash
18
19## Layouts
20
21[Reference Image](https://raw.githubusercontent.com/noroadsleft/qmk_images/master/keyboards/gh60/v1p3/layouts.jpg)
22
23The `factory_*` keymaps are based on KBFirmware JSON files provided by the vendor. Layouts 1 (Minila), 3 (Poker), 5, 7, 9, and HHKB (not pictured) have keymaps present.
24
25See 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/gh60/v1p3/rules.mk b/keyboards/gh60/v1p3/rules.mk
new file mode 100644
index 000000000..c2d48dc37
--- /dev/null
+++ b/keyboards/gh60/v1p3/rules.mk
@@ -0,0 +1,24 @@
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 = 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 = yes # Enable keyboard backlight functionality
20RGBLIGHT_ENABLE = yes # Enable keyboard RGB underglow
21BLUETOOTH_ENABLE = no # Enable Bluetooth
22AUDIO_ENABLE = no # Audio output
23
24LAYOUTS = 60_ansi 60_ansi_arrow 60_ansi_tsangan 60_hhkb 64_ansi
diff --git a/keyboards/gh60/v1p3/v1p3.c b/keyboards/gh60/v1p3/v1p3.c
new file mode 100644
index 000000000..bf41fb217
--- /dev/null
+++ b/keyboards/gh60/v1p3/v1p3.c
@@ -0,0 +1,16 @@
1/* Copyright 2020 noroadsleft
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 "v1p3.h"
diff --git a/keyboards/gh60/v1p3/v1p3.h b/keyboards/gh60/v1p3/v1p3.h
new file mode 100644
index 000000000..df4d126f5
--- /dev/null
+++ b/keyboards/gh60/v1p3/v1p3.h
@@ -0,0 +1,167 @@
1/* Copyright 2020 noroadsleft
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/*
21 * So... to be perfectly honest, I'm guessing at these based on a KBFirmware
22 * JSON file and photos of the PCB from a user on QMK Discord.
23 *
24 * This board has the most unusual matrix wiring I've seen on any mechanical
25 * keyboard PCB. The 2u Backspace doesn't share its matrix position with either
26 * of the keys used in a split Backspace. Left GUI and Left Alt are on
27 * different columns depending on how large the Left Ctrl key is (which could be
28 * as wide as 1.75u). I don't have much idea what's going on in the bottom right
29 * corner. Pretty much everything in the drawings below is basically a
30 * semi-educated guess.
31 *
32 * Sorry if you're coming in here after the fact. I don't have the PCB on-hand.
33 *
34 * - noroadsleft
35 *
36 * ┌───────┐
37 * 2u Backspace │0E │
38 * └───────┘
39 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ ANSI Enter ISO Enter
40 * ANSI LSft │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0F │ ┌─────┐ ┌─────┐
41 * ┌────────┐ ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤ │1D │ │2D │
42 * │30 │ ─┐ │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │ ┌──┴─────┤ ┌──┴┐ │
43 * └────────┘ │ ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤ │2D │ │2C │ │
44 * ISO LSft │ │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2C │2D │ └────────┘ └───┴────┘
45 * ┌────┬───┐ │ ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬──┴┬───┤ ┌──────────┐
46 * │30 │31 │ ─┼> │LSft │32 │33 │34 │35 │36 │37 │38 │39 │3A │3C │3D │3F │ │3D │ ANSI RSft
47 * └────┴───┘ │ ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴──┬┴──┬───┼───┼───┤ └──────────┘
48 * 2u LSft │ │40 │41 │43 │48 │4A │4B │4C │4E │4F │ ┌───┬───┬───┐
49 * ┌───────┐ │ └────┴────┴────┴────────────────────────┴───┴───┴───┴───┴───┘ │3B │3D │3F │ 3x1u "RSft"
50 * │30 │ ─┘ └───┴───┴───┘
51 * └───────┘ ┌──────┬───┐
52 * │3E │3F │ HHKB RSft
53 * └──────┴───┘
54 * ┌──────┬────┬────┬────┬───────────┬────┬────┬───┬───┬───┬───┐
55 * │40 │42 │44 │45 │48 │49 │4A │4B │4C │4E │4F │ Minila
56 * └──────┴────┴────┴────┴───────────┴────┴────┴───┴───┴───┴───┘
57 * ┌────┬────┬────┬────────────────────────┬────┬────┬────┬────┐
58 * │40 │41 │43 │48 │4A │4B │4D │4F │ Standard
59 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
60 * ┌─────┬───┬─────┬───────────────────────────┬─────┬───┬─────┐
61 * │40 │41 │43 │48 │4B │4D │4F │ Tsangan/HHKB
62 * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
63 * ┌─────┬───┬─────┬───────────────────────────┬───┬───┬───┬───┐
64 * │40 │41 │43 │48 │4B │4C │4E │4F │
65 * └─────┴───┴─────┴───────────────────────────┴───┴───┴───┴───┘
66 * ┌─────┬───┬─────┬───────────────────────┬─────┬─────┬───┬───┐
67 * │40 │41 │43 │48 │4A │4C │4E │4F │
68 * └─────┴───┴─────┴───────────────────────┴─────┴─────┴───┴───┘
69 */
70
71#define LAYOUT_all( \
72 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F, \
73 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
74 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, \
75 K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F, \
76 K40, K41, K42, K43, K44, K45, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F \
77) { \
78 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, K0F }, \
79 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
80 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2C, K2D, KC_NO, KC_NO }, \
81 { K30, K31, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3E, K3F }, \
82 { K40, K41, K42, K43, K44, K45, KC_NO, KC_NO, K48, K49, K4A, K4B, K4C, K4D, K4E, K4F }, \
83}
84
85#define LAYOUT_60_ansi( \
86 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \
87 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
88 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
89 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
90 K40, K41, K43, K48, K4A, K4B, K4D, K4F \
91) { \
92 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, KC_NO }, \
93 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
94 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \
95 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, KC_NO, KC_NO }, \
96 { K40, K41, KC_NO, K43, KC_NO, KC_NO, KC_NO, KC_NO, K48, KC_NO, K4A, K4B, KC_NO, K4D, KC_NO, K4F }, \
97}
98
99#define LAYOUT_60_ansi_arrow( \
100 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \
101 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
102 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
103 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, K3D, K3F, \
104 K40, K41, K43, K48, K4A, K4B, K4C, K4E, K4F \
105) { \
106 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, KC_NO }, \
107 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
108 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \
109 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, K3C, K3D, KC_NO, K3F }, \
110 { K40, K41, KC_NO, K43, KC_NO, KC_NO, KC_NO, KC_NO, K48, KC_NO, K4A, K4B, K4C, KC_NO, K4E, K4F }, \
111}
112
113#define LAYOUT_60_ansi_arrow_split_bs( \
114 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
115 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
116 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
117 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3C, K3D, K3F, \
118 K40, K41, K43, K48, K4A, K4B, K4C, K4E, K4F \
119) { \
120 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO, K0F }, \
121 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
122 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \
123 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, KC_NO, K3C, K3D, KC_NO, K3F }, \
124 { K40, K41, KC_NO, K43, KC_NO, KC_NO, KC_NO, KC_NO, K48, KC_NO, K4A, K4B, K4C, KC_NO, K4E, K4F }, \
125}
126
127#define LAYOUT_60_ansi_tsangan( \
128 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \
129 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
130 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
131 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
132 K40, K41, K43, K48, K4B, K4D, K4F \
133) { \
134 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, KC_NO }, \
135 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
136 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \
137 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, K3D, KC_NO, KC_NO }, \
138 { K40, K41, KC_NO, K43, KC_NO, KC_NO, KC_NO, KC_NO, K48, KC_NO, KC_NO, K4B, KC_NO, K4D, KC_NO, K4F }, \
139}
140
141#define LAYOUT_60_hhkb( \
142 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0F, \
143 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
144 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
145 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3E, K3F, \
146 K41, K43, K48, K4B, K4D \
147) { \
148 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, KC_NO, K0F }, \
149 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
150 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \
151 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, KC_NO, KC_NO, K3E, K3F }, \
152 { KC_NO, K41, KC_NO, K43, KC_NO, KC_NO, KC_NO, KC_NO, K48, KC_NO, KC_NO, K4B, KC_NO, K4D, KC_NO, KC_NO }, \
153}
154
155#define LAYOUT_64_ansi( \
156 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \
157 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
158 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
159 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, K3F, \
160 K40, K41, K43, K48, K4A, K4B, K4C, K4E, K4F \
161) { \
162 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, KC_NO, K0E, KC_NO }, \
163 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, KC_NO, KC_NO }, \
164 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, KC_NO, K2D, KC_NO, KC_NO }, \
165 { K30, KC_NO, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, KC_NO, K3F }, \
166 { K40, K41, KC_NO, K43, KC_NO, KC_NO, KC_NO, KC_NO, K48, KC_NO, K4A, K4B, K4C, KC_NO, K4E, K4F }, \
167}