aboutsummaryrefslogtreecommitdiff
path: root/keyboards/chlx/merro60
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/chlx/merro60')
-rw-r--r--keyboards/chlx/merro60/config.h58
-rw-r--r--keyboards/chlx/merro60/info.json506
-rw-r--r--keyboards/chlx/merro60/keymaps/ansi/keymap.c35
-rw-r--r--keyboards/chlx/merro60/keymaps/default/keymap.c35
-rw-r--r--keyboards/chlx/merro60/keymaps/hhkb/keymap.c35
-rw-r--r--keyboards/chlx/merro60/keymaps/iso/keymap.c35
-rw-r--r--keyboards/chlx/merro60/keymaps/tsangan/keymap.c35
-rw-r--r--keyboards/chlx/merro60/keymaps/via/keymap.c51
-rw-r--r--keyboards/chlx/merro60/keymaps/via/rules.mk3
-rw-r--r--keyboards/chlx/merro60/merro60.c19
-rw-r--r--keyboards/chlx/merro60/merro60.h214
-rw-r--r--keyboards/chlx/merro60/readme.md20
-rw-r--r--keyboards/chlx/merro60/rules.mk20
13 files changed, 1066 insertions, 0 deletions
diff --git a/keyboards/chlx/merro60/config.h b/keyboards/chlx/merro60/config.h
new file mode 100644
index 000000000..526433ef8
--- /dev/null
+++ b/keyboards/chlx/merro60/config.h
@@ -0,0 +1,58 @@
1/*
2Copyright 2021 Alexander Lee <[email protected]>
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/* USB Device descriptor parameter */
21#define VENDOR_ID 0x4358 // "CX" - chlx
22#define PRODUCT_ID 0x0601
23#define DEVICE_VER 0x0100
24#define MANUFACTURER chlx
25#define PRODUCT chlx merro60
26
27/* key matrix size */
28#define MATRIX_ROWS 5
29#define MATRIX_COLS 15
30
31/*
32 * Keyboard Matrix Assignments
33 *
34 * Change this to how you wired your keyboard
35 * COLS: AVR pins used for columns, left to right
36 * ROWS: AVR pins used for rows, top to bottom
37 * DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
38 * ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
39 *
40 */
41#define MATRIX_ROW_PINS { D4, D5, D3, B5, F4 }
42#define MATRIX_COL_PINS { B7, D1, D0, B0, B1, E6, B2, B3, D2, D7, B4, B6, C6, C7, D6 }
43#define UNUSED_PINS
44// #define UNUSED_PINS { F0, F1, F5, F6, F7 }
45
46/* COL2ROW, ROW2COL*/
47#define DIODE_DIRECTION COL2ROW
48
49/* Debounce reduces chatter (unintended double-presses) - set 0 if debouncing is not needed */
50#define DEBOUNCE 5
51
52/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
53#define LOCKING_SUPPORT_ENABLE
54/* Locking resynchronize hack */
55#define LOCKING_RESYNC_ENABLE
56
57/* VIA related config */
58#define VIA_EEPROM_LAYOUT_OPTIONS_SIZE 2
diff --git a/keyboards/chlx/merro60/info.json b/keyboards/chlx/merro60/info.json
new file mode 100644
index 000000000..e0a697df0
--- /dev/null
+++ b/keyboards/chlx/merro60/info.json
@@ -0,0 +1,506 @@
1{
2 "keyboard_name": "merro60",
3 "url": "www.github.com/gaclee3b",
4 "maintainer": "gaclee3b",
5 "layout_aliases": {
6 "LAYOUT_default": "LAYOUT_all",
7 "LAYOUT_hhkb": "LAYOUT_60_hhkb",
8 "LAYOUT_iso": "LAYOUT_60_iso_split_bs_rshift",
9 "LAYOUT_tsangan": "LAYOUT_60_tsangan_hhkb"
10 },
11 "layouts": {
12 "LAYOUT_all": {
13 "layout": [
14 {"x": 0, "y": 0},
15 {"x": 1, "y": 0},
16 {"x": 2, "y": 0},
17 {"x": 3, "y": 0},
18 {"x": 4, "y": 0},
19 {"x": 5, "y": 0},
20 {"x": 6, "y": 0},
21 {"x": 7, "y": 0},
22 {"x": 8, "y": 0},
23 {"x": 9, "y": 0},
24 {"x": 10, "y": 0},
25 {"x": 11, "y": 0},
26 {"x": 12, "y": 0},
27 {"x": 13, "y": 0},
28 {"x": 14, "y": 0},
29
30 {"x": 0, "y": 1, "w": 1.5},
31 {"x": 1.5, "y": 1},
32 {"x": 2.5, "y": 1},
33 {"x": 3.5, "y": 1},
34 {"x": 4.5, "y": 1},
35 {"x": 5.5, "y": 1},
36 {"x": 6.5, "y": 1},
37 {"x": 7.5, "y": 1},
38 {"x": 8.5, "y": 1},
39 {"x": 9.5, "y": 1},
40 {"x": 10.5, "y": 1},
41 {"x": 11.5, "y": 1},
42 {"x": 12.5, "y": 1},
43 {"x": 13.5, "y": 1, "w": 1.5},
44
45 {"x": 0, "y": 2, "w": 1.75},
46 {"x": 1.75, "y": 2},
47 {"x": 2.75, "y": 2},
48 {"x": 3.75, "y": 2},
49 {"x": 4.75, "y": 2},
50 {"x": 5.75, "y": 2},
51 {"x": 6.75, "y": 2},
52 {"x": 7.75, "y": 2},
53 {"x": 8.75, "y": 2},
54 {"x": 9.75, "y": 2},
55 {"x": 10.75, "y": 2},
56 {"x": 11.75, "y": 2},
57 {"x": 12.75, "y": 2},
58 {"x": 13.75, "y": 2, "w": 1.25},
59
60 {"x": 0, "y": 3, "w": 1.25},
61 {"x": 1.25, "y": 3},
62 {"x": 2.25, "y": 3},
63 {"x": 3.25, "y": 3},
64 {"x": 4.25, "y": 3},
65 {"x": 5.25, "y": 3},
66 {"x": 6.25, "y": 3},
67 {"x": 7.25, "y": 3},
68 {"x": 8.25, "y": 3},
69 {"x": 9.25, "y": 3},
70 {"x": 10.25, "y": 3},
71 {"x": 11.25, "y": 3},
72 {"x": 12.25, "y": 3, "w": 1.75},
73 {"x": 14, "y": 3},
74
75 {"x": 0, "y": 4, "w": 1.25},
76 {"x": 1.25, "y": 4, "w": 1.25},
77 {"x": 2.5, "y": 4, "w": 1.25},
78 {"x": 3.75, "y": 4, "w": 6.25},
79 {"x": 10, "y": 4, "w": 1.25},
80 {"x": 11.25, "y": 4, "w": 1.25},
81 {"x": 12.5, "y": 4, "w": 1.25},
82 {"x": 13.75, "y": 4, "w": 1.25}
83 ]
84 },
85 "LAYOUT_60_ansi": {
86 "layout": [
87 {"x":0, "y":0},
88 {"x":1, "y":0},
89 {"x":2, "y":0},
90 {"x":3, "y":0},
91 {"x":4, "y":0},
92 {"x":5, "y":0},
93 {"x":6, "y":0},
94 {"x":7, "y":0},
95 {"x":8, "y":0},
96 {"x":9, "y":0},
97 {"x":10, "y":0},
98 {"x":11, "y":0},
99 {"x":12, "y":0},
100 {"x":13, "y":0, "w":2},
101
102 {"x":0, "y":1, "w":1.5},
103 {"x":1.5, "y":1},
104 {"x":2.5, "y":1},
105 {"x":3.5, "y":1},
106 {"x":4.5, "y":1},
107 {"x":5.5, "y":1},
108 {"x":6.5, "y":1},
109 {"x":7.5, "y":1},
110 {"x":8.5, "y":1},
111 {"x":9.5, "y":1},
112 {"x":10.5, "y":1},
113 {"x":11.5, "y":1},
114 {"x":12.5, "y":1},
115 {"x":13.5, "y":1, "w":1.5},
116
117 {"x":0, "y":2, "w":1.75},
118 {"x":1.75, "y":2},
119 {"x":2.75, "y":2},
120 {"x":3.75, "y":2},
121 {"x":4.75, "y":2},
122 {"x":5.75, "y":2},
123 {"x":6.75, "y":2},
124 {"x":7.75, "y":2},
125 {"x":8.75, "y":2},
126 {"x":9.75, "y":2},
127 {"x":10.75, "y":2},
128 {"x":11.75, "y":2},
129 {"x":12.75, "y":2, "w":2.25},
130
131 {"x":0, "y":3, "w":2.25},
132 {"x":2.25, "y":3},
133 {"x":3.25, "y":3},
134 {"x":4.25, "y":3},
135 {"x":5.25, "y":3},
136 {"x":6.25, "y":3},
137 {"x":7.25, "y":3},
138 {"x":8.25, "y":3},
139 {"x":9.25, "y":3},
140 {"x":10.25, "y":3},
141 {"x":11.25, "y":3},
142 {"x":12.25, "y":3, "w":2.75},
143
144 {"x":0, "y":4, "w":1.25},
145 {"x":1.25, "y":4, "w":1.25},
146 {"x":2.5, "y":4, "w":1.25},
147 {"x":3.75, "y":4, "w":6.25},
148 {"x":10, "y":4, "w":1.25},
149 {"x":11.25, "y":4, "w":1.25},
150 {"x":12.5, "y":4, "w":1.25},
151 {"x":13.75, "y":4, "w":1.25}
152 ]
153 },
154 "LAYOUT_60_ansi_split_bs_rshift": {
155 "layout": [
156 {"x": 0, "y": 0},
157 {"x": 1, "y": 0},
158 {"x": 2, "y": 0},
159 {"x": 3, "y": 0},
160 {"x": 4, "y": 0},
161 {"x": 5, "y": 0},
162 {"x": 6, "y": 0},
163 {"x": 7, "y": 0},
164 {"x": 8, "y": 0},
165 {"x": 9, "y": 0},
166 {"x": 10, "y": 0},
167 {"x": 11, "y": 0},
168 {"x": 12, "y": 0},
169 {"x": 13, "y": 0},
170 {"x": 14, "y": 0},
171
172 {"x": 0, "y": 1, "w": 1.5},
173 {"x": 1.5, "y": 1},
174 {"x": 2.5, "y": 1},
175 {"x": 3.5, "y": 1},
176 {"x": 4.5, "y": 1},
177 {"x": 5.5, "y": 1},
178 {"x": 6.5, "y": 1},
179 {"x": 7.5, "y": 1},
180 {"x": 8.5, "y": 1},
181 {"x": 9.5, "y": 1},
182 {"x": 10.5, "y": 1},
183 {"x": 11.5, "y": 1},
184 {"x": 12.5, "y": 1},
185 {"x": 13.5, "y": 1, "w": 1.5},
186
187 {"x": 0, "y": 2, "w": 1.75},
188 {"x": 1.75, "y": 2},
189 {"x": 2.75, "y": 2},
190 {"x": 3.75, "y": 2},
191 {"x": 4.75, "y": 2},
192 {"x": 5.75, "y": 2},
193 {"x": 6.75, "y": 2},
194 {"x": 7.75, "y": 2},
195 {"x": 8.75, "y": 2},
196 {"x": 9.75, "y": 2},
197 {"x": 10.75, "y": 2},
198 {"x": 11.75, "y": 2},
199 {"x": 12.75, "y": 2, "w": 2.25},
200
201 {"x": 0, "y": 3, "w": 2.25},
202 {"x": 2.25, "y": 3},
203 {"x": 3.25, "y": 3},
204 {"x": 4.25, "y": 3},
205 {"x": 5.25, "y": 3},
206 {"x": 6.25, "y": 3},
207 {"x": 7.25, "y": 3},
208 {"x": 8.25, "y": 3},
209 {"x": 9.25, "y": 3},
210 {"x": 10.25, "y": 3},
211 {"x": 11.25, "y": 3},
212 {"x": 12.25, "y": 3, "w": 1.75},
213 {"x": 14, "y": 3},
214
215 {"x": 0, "y": 4, "w": 1.25},
216 {"x": 1.25, "y": 4, "w": 1.25},
217 {"x": 2.5, "y": 4, "w": 1.25},
218 {"x": 3.75, "y": 4, "w": 6.25},
219 {"x": 10, "y": 4, "w": 1.25},
220 {"x": 11.25, "y": 4, "w": 1.25},
221 {"x": 12.5, "y": 4, "w": 1.25},
222 {"x": 13.75, "y": 4, "w": 1.25}
223 ]
224 },
225 "LAYOUT_60_hhkb": {
226 "layout": [
227 {"x": 0, "y": 0},
228 {"x": 1, "y": 0},
229 {"x": 2, "y": 0},
230 {"x": 3, "y": 0},
231 {"x": 4, "y": 0},
232 {"x": 5, "y": 0},
233 {"x": 6, "y": 0},
234 {"x": 7, "y": 0},
235 {"x": 8, "y": 0},
236 {"x": 9, "y": 0},
237 {"x": 10, "y": 0},
238 {"x": 11, "y": 0},
239 {"x": 12, "y": 0},
240 {"x": 13, "y": 0},
241 {"x": 14, "y": 0},
242
243 {"x": 0, "y": 1, "w": 1.5},
244 {"x": 1.5, "y": 1},
245 {"x": 2.5, "y": 1},
246 {"x": 3.5, "y": 1},
247 {"x": 4.5, "y": 1},
248 {"x": 5.5, "y": 1},
249 {"x": 6.5, "y": 1},
250 {"x": 7.5, "y": 1},
251 {"x": 8.5, "y": 1},
252 {"x": 9.5, "y": 1},
253 {"x": 10.5, "y": 1},
254 {"x": 11.5, "y": 1},
255 {"x": 12.5, "y": 1},
256 {"x": 13.5, "y": 1, "w": 1.5},
257
258 {"x": 0, "y": 2, "w": 1.75},
259 {"x": 1.75, "y": 2},
260 {"x": 2.75, "y": 2},
261 {"x": 3.75, "y": 2},
262 {"x": 4.75, "y": 2},
263 {"x": 5.75, "y": 2},
264 {"x": 6.75, "y": 2},
265 {"x": 7.75, "y": 2},
266 {"x": 8.75, "y": 2},
267 {"x": 9.75, "y": 2},
268 {"x": 10.75, "y": 2},
269 {"x": 11.75, "y": 2},
270 {"x": 12.75, "y": 2, "w": 2.25},
271
272 {"x": 0, "y": 3, "w": 2.25},
273 {"x": 2.25, "y": 3},
274 {"x": 3.25, "y": 3},
275 {"x": 4.25, "y": 3},
276 {"x": 5.25, "y": 3},
277 {"x": 6.25, "y": 3},
278 {"x": 7.25, "y": 3},
279 {"x": 8.25, "y": 3},
280 {"x": 9.25, "y": 3},
281 {"x": 10.25, "y": 3},
282 {"x": 11.25, "y": 3},
283 {"x": 12.25, "y": 3, "w": 1.75},
284 {"x": 14, "y": 3},
285
286 {"x": 1.5, "y": 4},
287 {"x": 2.5, "y": 4, "w": 1.5},
288 {"x": 4, "y": 4, "w": 7},
289 {"x": 11, "y": 4, "w": 1.5},
290 {"x": 12.5, "y": 4}
291 ]
292 },
293 "LAYOUT_60_iso": {
294 "layout": [
295 {"x": 0, "y": 0},
296 {"x": 1, "y": 0},
297 {"x": 2, "y": 0},
298 {"x": 3, "y": 0},
299 {"x": 4, "y": 0},
300 {"x": 5, "y": 0},
301 {"x": 6, "y": 0},
302 {"x": 7, "y": 0},
303 {"x": 8, "y": 0},
304 {"x": 9, "y": 0},
305 {"x": 10, "y": 0},
306 {"x": 11, "y": 0},
307 {"x": 12, "y": 0},
308 {"x": 13, "y": 0, "w": 2},
309
310 {"x": 0, "y": 1, "w": 1.5},
311 {"x": 1.5, "y": 1},
312 {"x": 2.5, "y": 1},
313 {"x": 3.5, "y": 1},
314 {"x": 4.5, "y": 1},
315 {"x": 5.5, "y": 1},
316 {"x": 6.5, "y": 1},
317 {"x": 7.5, "y": 1},
318 {"x": 8.5, "y": 1},
319 {"x": 9.5, "y": 1},
320 {"x": 10.5, "y": 1},
321 {"x": 11.5, "y": 1},
322 {"x": 12.5, "y": 1},
323
324 {"x": 0, "y": 2, "w": 1.75},
325 {"x": 1.75, "y": 2},
326 {"x": 2.75, "y": 2},
327 {"x": 3.75, "y": 2},
328 {"x": 4.75, "y": 2},
329 {"x": 5.75, "y": 2},
330 {"x": 6.75, "y": 2},
331 {"x": 7.75, "y": 2},
332 {"x": 8.75, "y": 2},
333 {"x": 9.75, "y": 2},
334 {"x": 10.75, "y": 2},
335 {"x": 11.75, "y": 2},
336 {"x": 12.75, "y": 2},
337 {"x": 13.75, "y": 1, "w": 1.25, "h": 2},
338
339 {"x": 0, "y": 3, "w": 1.25},
340 {"x": 1.25, "y": 3},
341 {"x": 2.25, "y": 3},
342 {"x": 3.25, "y": 3},
343 {"x": 4.25, "y": 3},
344 {"x": 5.25, "y": 3},
345 {"x": 6.25, "y": 3},
346 {"x": 7.25, "y": 3},
347 {"x": 8.25, "y": 3},
348 {"x": 9.25, "y": 3},
349 {"x": 10.25, "y": 3},
350 {"x": 11.25, "y": 3},
351 {"x": 12.25, "y": 3, "w": 2.75},
352
353 {"x": 0, "y": 4, "w": 1.25},
354 {"x": 1.25, "y": 4, "w": 1.25},
355 {"x": 2.5, "y": 4, "w": 1.25},
356 {"x": 3.75, "y": 4, "w": 6.25},
357 {"x": 10, "y": 4, "w": 1.25},
358 {"x": 11.25, "y": 4, "w": 1.25},
359 {"x": 12.5, "y": 4, "w": 1.25},
360 {"x": 13.75, "y": 4, "w": 1.25}
361 ]
362 },
363 "LAYOUT_60_iso_split_bs_rshift": {
364 "layout": [
365 {"x": 0, "y": 0},
366 {"x": 1, "y": 0},
367 {"x": 2, "y": 0},
368 {"x": 3, "y": 0},
369 {"x": 4, "y": 0},
370 {"x": 5, "y": 0},
371 {"x": 6, "y": 0},
372 {"x": 7, "y": 0},
373 {"x": 8, "y": 0},
374 {"x": 9, "y": 0},
375 {"x": 10, "y": 0},
376 {"x": 11, "y": 0},
377 {"x": 12, "y": 0},
378 {"x": 13, "y": 0},
379 {"x": 14, "y": 0},
380
381 {"x": 0, "y": 1, "w": 1.5},
382 {"x": 1.5, "y": 1},
383 {"x": 2.5, "y": 1},
384 {"x": 3.5, "y": 1},
385 {"x": 4.5, "y": 1},
386 {"x": 5.5, "y": 1},
387 {"x": 6.5, "y": 1},
388 {"x": 7.5, "y": 1},
389 {"x": 8.5, "y": 1},
390 {"x": 9.5, "y": 1},
391 {"x": 10.5, "y": 1},
392 {"x": 11.5, "y": 1},
393 {"x": 12.5, "y": 1},
394
395 {"x": 0, "y": 2, "w": 1.75},
396 {"x": 1.75, "y": 2},
397 {"x": 2.75, "y": 2},
398 {"x": 3.75, "y": 2},
399 {"x": 4.75, "y": 2},
400 {"x": 5.75, "y": 2},
401 {"x": 6.75, "y": 2},
402 {"x": 7.75, "y": 2},
403 {"x": 8.75, "y": 2},
404 {"x": 9.75, "y": 2},
405 {"x": 10.75, "y": 2},
406 {"x": 11.75, "y": 2},
407 {"x": 12.75, "y": 2},
408 {"x": 13.75, "y": 1, "w": 1.25, "h": 2},
409
410 {"x": 0, "y": 3, "w": 1.25},
411 {"x": 1.25, "y": 3},
412 {"x": 2.25, "y": 3},
413 {"x": 3.25, "y": 3},
414 {"x": 4.25, "y": 3},
415 {"x": 5.25, "y": 3},
416 {"x": 6.25, "y": 3},
417 {"x": 7.25, "y": 3},
418 {"x": 8.25, "y": 3},
419 {"x": 9.25, "y": 3},
420 {"x": 10.25, "y": 3},
421 {"x": 11.25, "y": 3},
422 {"x": 12.25, "y": 3, "w": 1.75},
423 {"x": 14, "y": 3},
424
425 {"x": 0, "y": 4, "w": 1.25},
426 {"x": 1.25, "y": 4, "w": 1.25},
427 {"x": 2.5, "y": 4, "w": 1.25},
428 {"x": 3.75, "y": 4, "w": 6.25},
429 {"x": 10, "y": 4, "w": 1.25},
430 {"x": 11.25, "y": 4, "w": 1.25},
431 {"x": 12.5, "y": 4, "w": 1.25},
432 {"x": 13.75, "y": 4, "w": 1.25}
433 ]
434 },
435 "LAYOUT_60_tsangan_hhkb": {
436 "layout": [
437 {"x": 0, "y": 0},
438 {"x": 1, "y": 0},
439 {"x": 2, "y": 0},
440 {"x": 3, "y": 0},
441 {"x": 4, "y": 0},
442 {"x": 5, "y": 0},
443 {"x": 6, "y": 0},
444 {"x": 7, "y": 0},
445 {"x": 8, "y": 0},
446 {"x": 9, "y": 0},
447 {"x": 10, "y": 0},
448 {"x": 11, "y": 0},
449 {"x": 12, "y": 0},
450 {"x": 13, "y": 0},
451 {"x": 14, "y": 0},
452
453 {"x": 0, "y": 1, "w": 1.5},
454 {"x": 1.5, "y": 1},
455 {"x": 2.5, "y": 1},
456 {"x": 3.5, "y": 1},
457 {"x": 4.5, "y": 1},
458 {"x": 5.5, "y": 1},
459 {"x": 6.5, "y": 1},
460 {"x": 7.5, "y": 1},
461 {"x": 8.5, "y": 1},
462 {"x": 9.5, "y": 1},
463 {"x": 10.5, "y": 1},
464 {"x": 11.5, "y": 1},
465 {"x": 12.5, "y": 1},
466 {"x": 13.5, "y": 1, "w": 1.5},
467
468 {"x": 0, "y": 2, "w": 1.75},
469 {"x": 1.75, "y": 2},
470 {"x": 2.75, "y": 2},
471 {"x": 3.75, "y": 2},
472 {"x": 4.75, "y": 2},
473 {"x": 5.75, "y": 2},
474 {"x": 6.75, "y": 2},
475 {"x": 7.75, "y": 2},
476 {"x": 8.75, "y": 2},
477 {"x": 9.75, "y": 2},
478 {"x": 10.75, "y": 2},
479 {"x": 11.75, "y": 2},
480 {"x": 12.75, "y": 2, "w": 2.25},
481
482 {"x": 0, "y": 3, "w": 2.25},
483 {"x": 2.25, "y": 3},
484 {"x": 3.25, "y": 3},
485 {"x": 4.25, "y": 3},
486 {"x": 5.25, "y": 3},
487 {"x": 6.25, "y": 3},
488 {"x": 7.25, "y": 3},
489 {"x": 8.25, "y": 3},
490 {"x": 9.25, "y": 3},
491 {"x": 10.25, "y": 3},
492 {"x": 11.25, "y": 3},
493 {"x": 12.25, "y": 3, "w": 1.75},
494 {"x": 14, "y": 3},
495
496 {"x": 0, "y": 4, "w": 1.5},
497 {"x": 1.5, "y": 4},
498 {"x": 2.5, "y": 4, "w": 1.5},
499 {"x": 4, "y": 4, "w": 7},
500 {"x": 11, "y": 4, "w": 1.5},
501 {"x": 12.5, "y": 4},
502 {"x": 13.5, "y": 4, "w": 1.5}
503 ]
504 }
505 }
506}
diff --git a/keyboards/chlx/merro60/keymaps/ansi/keymap.c b/keyboards/chlx/merro60/keymaps/ansi/keymap.c
new file mode 100644
index 000000000..eebc623cc
--- /dev/null
+++ b/keyboards/chlx/merro60/keymaps/ansi/keymap.c
@@ -0,0 +1,35 @@
1/*
2Copyright 2021 Alexander Lee <[email protected]>
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#include QMK_KEYBOARD_H
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21
22[0] = LAYOUT_60_ansi_split_bs_rshift(
23 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
24 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,
25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
26 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RSFT,
27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL),
28
29[1] = LAYOUT_60_ansi_split_bs_rshift(
30 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, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, KC_UP, _______, RESET,
32 _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
34 _______, _______, _______, _______, _______, _______, _______, _______),
35};
diff --git a/keyboards/chlx/merro60/keymaps/default/keymap.c b/keyboards/chlx/merro60/keymaps/default/keymap.c
new file mode 100644
index 000000000..ee16d6380
--- /dev/null
+++ b/keyboards/chlx/merro60/keymaps/default/keymap.c
@@ -0,0 +1,35 @@
1/*
2Copyright 2021 Alexander Lee <[email protected]>
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#include QMK_KEYBOARD_H
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21
22[0] = LAYOUT_all(
23 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_GRV,
24 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,
25 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_UP, KC_ENT,
26 KC_LSFT, KC_LEFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RGHT,
27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_DOWN, KC_RCTL),
28
29[1] = LAYOUT_all(
30 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,
31 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
33 _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______,
34 _______, _______, _______, _______, _______, _______, _______, _______),
35};
diff --git a/keyboards/chlx/merro60/keymaps/hhkb/keymap.c b/keyboards/chlx/merro60/keymaps/hhkb/keymap.c
new file mode 100644
index 000000000..b7058cfc1
--- /dev/null
+++ b/keyboards/chlx/merro60/keymaps/hhkb/keymap.c
@@ -0,0 +1,35 @@
1/*
2Copyright 2021 Alexander Lee <[email protected]>
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#include QMK_KEYBOARD_H
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21
22[0] = LAYOUT_60_hhkb(
23 KC_GESC, 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_GRV,
24 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,
25 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_ENT,
26 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
27 KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI),
28
29[1] = LAYOUT_60_hhkb(
30 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_INS, KC_DEL,
31 KC_CAPS, _______, _______, _______, _______, _______, _______, _______, KC_PSCR, KC_SLCK, KC_PAUS, KC_UP, _______, RESET,
32 _______, KC_VOLD, KC_VOLU, KC_MUTE, _______, _______, _______, _______, KC_HOME, KC_PGUP, KC_LEFT, KC_RGHT, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______, KC_END, KC_PGDN, KC_DOWN, _______, _______,
34 _______, _______, _______, _______, _______),
35};
diff --git a/keyboards/chlx/merro60/keymaps/iso/keymap.c b/keyboards/chlx/merro60/keymaps/iso/keymap.c
new file mode 100644
index 000000000..fdfbeafce
--- /dev/null
+++ b/keyboards/chlx/merro60/keymaps/iso/keymap.c
@@ -0,0 +1,35 @@
1/*
2Copyright 2021 Alexander Lee <[email protected]>
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#include QMK_KEYBOARD_H
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21
22[0] = LAYOUT_60_iso_split_bs_rshift(
23 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
24 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,
25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
26 KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RGHT,
27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL),
28
29[1] = LAYOUT_60_iso_split_bs_rshift(
30 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,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
34 _______, _______, _______, _______, _______, _______, _______, _______),
35};
diff --git a/keyboards/chlx/merro60/keymaps/tsangan/keymap.c b/keyboards/chlx/merro60/keymaps/tsangan/keymap.c
new file mode 100644
index 000000000..560abd994
--- /dev/null
+++ b/keyboards/chlx/merro60/keymaps/tsangan/keymap.c
@@ -0,0 +1,35 @@
1/*
2Copyright 2021 Alexander Lee <[email protected]>
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#include QMK_KEYBOARD_H
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21
22[0] = LAYOUT_60_tsangan_hhkb(
23 KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC, KC_BSPC,
24 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,
25 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
26 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_RCTL),
28
29[1] = LAYOUT_60_tsangan_hhkb(
30 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, _______,
31 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, RESET,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
33 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
34 _______, _______, _______, _______, _______, _______, _______),
35};
diff --git a/keyboards/chlx/merro60/keymaps/via/keymap.c b/keyboards/chlx/merro60/keymaps/via/keymap.c
new file mode 100644
index 000000000..1e44a9cfd
--- /dev/null
+++ b/keyboards/chlx/merro60/keymaps/via/keymap.c
@@ -0,0 +1,51 @@
1/*
2Copyright 2021 Alexander Lee <[email protected]>
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#include QMK_KEYBOARD_H
19
20const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
21
22[0] = LAYOUT_all(
23 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_GRV,
24 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,
25 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_UP, KC_ENT,
26 KC_LSFT, KC_LEFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, KC_RGHT,
27 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_DOWN, KC_RCTL),
28
29[1] = LAYOUT_all(
30 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,
31 _______, RGB_TOG, RGB_MOD, RGB_HUI, RGB_HUD, RGB_SAI, RGB_SAD, RGB_VAI, RGB_VAD, _______, _______, _______, _______, RESET,
32 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
33 _______, _______, _______, _______, BL_DEC, BL_TOGG, BL_INC, BL_STEP, _______, _______, _______, _______, _______, _______,
34 _______, _______, _______, _______, _______, _______, _______, _______),
35
36[2] = LAYOUT_all(
37 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
38 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
39 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
40 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
41 _______, _______, _______, _______, _______, _______, _______, _______),
42
43[3] = LAYOUT_all(
44 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
45 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
46 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
47 _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______, _______,
48 _______, _______, _______, _______, _______, _______, _______, _______)
49
50};
51
diff --git a/keyboards/chlx/merro60/keymaps/via/rules.mk b/keyboards/chlx/merro60/keymaps/via/rules.mk
new file mode 100644
index 000000000..5f615ff62
--- /dev/null
+++ b/keyboards/chlx/merro60/keymaps/via/rules.mk
@@ -0,0 +1,3 @@
1VIA_ENABLE = yes
2LTO_ENABLE = yes
3
diff --git a/keyboards/chlx/merro60/merro60.c b/keyboards/chlx/merro60/merro60.c
new file mode 100644
index 000000000..4182c65c7
--- /dev/null
+++ b/keyboards/chlx/merro60/merro60.c
@@ -0,0 +1,19 @@
1/*
2Copyright 2021 Alexander Lee <[email protected]>
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#include "merro60.h"
19
diff --git a/keyboards/chlx/merro60/merro60.h b/keyboards/chlx/merro60/merro60.h
new file mode 100644
index 000000000..dee6a5a96
--- /dev/null
+++ b/keyboards/chlx/merro60/merro60.h
@@ -0,0 +1,214 @@
1/*
2Copyright 2021 Alexander Lee <[email protected]>
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 "quantum.h"
21
22// Corresponding changes to the layout names and/or definitions must also be made to info.json
23
24#define XXX KC_NO
25
26/* //////////////////// LAYOUT_all ////////////////////
27 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
28 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │
29 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
30 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │
31 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬────┤
32 * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │2d │
33 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
34 * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │
35 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
36 * │40 │41 │42 │45 (6.25u) │4a │4b │4c │4d │
37 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
38*/
39
40#define LAYOUT_all( \
41 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
42 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
43 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
44 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
45 k40, k41, k42, k45, k4a, k4b, k4c, k4d \
46) { \
47 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
48 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \
49 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \
50 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \
51 { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \
52}
53
54/* //////////////////// LAYOUT_60_ansi ////////////////////
55 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
56 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │
57 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
58 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │
59 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
60 * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2d │
61 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
62 * │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │
63 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
64 * │40 │41 │42 │45 │4a │4b │4c │4d │
65 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
66*/
67#define LAYOUT_60_ansi( \
68 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
69 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
70 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
71 k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
72 k40, k41, k42, k45, k4a, k4b, k4c, k4d \
73) { \
74 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \
75 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \
76 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \
77 { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, XXX, XXX }, \
78 { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \
79}
80
81/* //////////////////// LAYOUT_60_ansi_split_bs_rshift ////////////////////
82 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
83 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │
84 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
85 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │
86 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
87 * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2d │
88 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
89 * │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │
90 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
91 * │40 │41 │42 │45 │4a │4b │4d │4e │
92 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
93*/
94#define LAYOUT_60_ansi_split_bs_rshift( \
95 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
96 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
97 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
98 k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
99 k40, k41, k42, k45, k4a, k4b, k4c, k4d \
100) { \
101 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
102 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \
103 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \
104 { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \
105 { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \
106}
107
108/* //////////////////// LAYOUT_60_hhkb ////////////////////
109 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
110 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │
111 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
112 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │
113 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
114 * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2d │
115 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
116 * │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │
117 * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤
118 * │▓▓▓▓▓│41 │42 │45 (7u) │4b │4c │▓▓▓▓▓│
119 * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
120*/
121#define LAYOUT_60_hhkb( \
122 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
123 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
124 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
125 k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
126 k41, k42, k45, k4b, k4c \
127) { \
128 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
129 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \
130 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \
131 { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \
132 { XXX, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, XXX, k4b, k4c, XXX, XXX } \
133}
134
135/* //////////////////// LAYOUT_60_iso ////////////////////
136 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
137 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │
138 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
139 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │ │
140 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐2d │
141 * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │ │
142 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
143 * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │
144 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
145 * │40 │41 │42 │45 │4a │4b │4c │4d │
146 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
147*/
148#define LAYOUT_60_iso( \
149 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, \
150 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
151 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
152 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, \
153 k40, k41, k42, k45, k4a, k4b, k4c, k4d \
154) { \
155 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, XXX }, \
156 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, XXX }, \
157 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \
158 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, XXX, XXX }, \
159 { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \
160}
161
162/* //////////////////// LAYOUT_60_iso_split_bs_rshift ////////////////////
163 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
164 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │
165 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
166 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │ │
167 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐2d │
168 * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2c │ │
169 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴┬───┤
170 * │30 │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │
171 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
172 * │40 │41 │42 │45 │4a │4b │4c │4d │
173 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
174*/
175#define LAYOUT_60_iso_split_bs_rshift( \
176 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
177 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, \
178 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, \
179 k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
180 k40, k41, k42, k45, k4a, k4b, k4c, k4d \
181) { \
182 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
183 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, XXX, XXX }, \
184 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2c, k2d, XXX }, \
185 { k30, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \
186 { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, k4a, k4b, k4c, k4d, XXX } \
187}
188
189/* //////////////////// LAYOUT_60_tsangan_hhkb ////////////////////
190 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
191 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0a │0b │0c │0d │0e │
192 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
193 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1a │1b │1c │1d │
194 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
195 * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2a │2b │2d │
196 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
197 * │31 │32 │33 │34 │35 │36 │37 │38 │39 │3a │3b │3c │3d │
198 * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤
199 * │40 │41 │42 │45 (7u) │4b │4c │4d │
200 * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
201*/
202#define LAYOUT_60_tsangan_hhkb( \
203 k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e, \
204 k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, \
205 k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, k2d, \
206 k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, \
207 k40, k41, k42, k45, k4b, k4c, k4d \
208) { \
209 { k00, k01, k02, k03, k04, k05, k06, k07, k08, k09, k0a, k0b, k0c, k0d, k0e }, \
210 { k10, k11, k12, k13, k14, k15, k16, k17, k18, k19, k1a, k1b, k1c, k1d, XXX }, \
211 { k20, k21, k22, k23, k24, k25, k26, k27, k28, k29, k2a, k2b, XXX, k2d, XXX }, \
212 { XXX, k31, k32, k33, k34, k35, k36, k37, k38, k39, k3a, k3b, k3c, k3d, XXX }, \
213 { k40, k41, k42, XXX, XXX, k45, XXX, XXX, XXX, XXX, XXX, k4b, k4c, k4d, XXX } \
214}
diff --git a/keyboards/chlx/merro60/readme.md b/keyboards/chlx/merro60/readme.md
new file mode 100644
index 000000000..f783c0e43
--- /dev/null
+++ b/keyboards/chlx/merro60/readme.md
@@ -0,0 +1,20 @@
1# merro60
2
3merro60 PCB
4
5A standard 60% format keyboard pcb with USB-C and unified daughterboard compatibility.
6Has modified cutouts to allow usage of certain tray mount cases into gummy gasket o-ring mount.
7
8Keyboard Maintainer: [Alexander Lee](https://github.com/gaclee3b)
9Hardware Supported: chlx PCB merro60.1, merro60.1.1, merro60.1.2
10
11Enter bootloader mode by any of the following options -
12- When unplugged, holding the top-left key (typically ESC) while plugging in the keyboard
13- When plugged in, pressing and releasing the reset button on the pcb bottom behind the CAPSLOCK / A-key region
14- When plugged in, shorting out the two reset metal contacts near the spacebar switch location (NOT the spacebar switch pin holes)
15
16Make example for this keyboard (after setting up your build environment):
17
18 make chlx/merro60:default
19
20See 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/chlx/merro60/rules.mk b/keyboards/chlx/merro60/rules.mk
new file mode 100644
index 000000000..20fb52aa4
--- /dev/null
+++ b/keyboards/chlx/merro60/rules.mk
@@ -0,0 +1,20 @@
1# MCU name
2MCU = atmega32u4
3
4# Bootloader selection
5BOOTLOADER = atmel-dfu
6
7# Build Options
8# change yes to no to disable
9#
10BOOTMAGIC_ENABLE = yes # Enable Bootmagic Lite
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
15NKRO_ENABLE = yes # Enable N-Key Rollover
16BACKLIGHT_ENABLE = no # Enable keyboard backlight functionality
17RGBLIGHT_ENABLE = no # Enable keyboard RGB underglow
18AUDIO_ENABLE = no # Audio output
19
20LAYOUTS = 60_ansi 60_ansi_split_bs_rshift 60_hhkb 60_iso 60_tsangan_hhkb