aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHorrorTroll <sonicvipduc@gmail.com>2022-02-06 00:01:58 +0700
committerGitHub <noreply@github.com>2022-02-05 09:01:58 -0800
commitee67cdfeec17d80a90e5f47e80995a5bc27a1147 (patch)
tree868d3178f8381ccec263af942ca0d8f253813430
parentdf371257552d9b8a9e290d8ddd120ea96f3dd9e6 (diff)
downloadqmk_firmware-ee67cdfeec17d80a90e5f47e80995a5bc27a1147.tar.gz
qmk_firmware-ee67cdfeec17d80a90e5f47e80995a5bc27a1147.zip
[Keyboard] Add Paws 60 keyboard (#16204)
-rw-r--r--keyboards/horrortroll/paws60/config.h49
-rw-r--r--keyboards/horrortroll/paws60/info.json285
-rw-r--r--keyboards/horrortroll/paws60/keymaps/default/keymap.c87
-rw-r--r--keyboards/horrortroll/paws60/keymaps/default/readme.md3
-rw-r--r--keyboards/horrortroll/paws60/keymaps/via/config.h19
-rw-r--r--keyboards/horrortroll/paws60/keymaps/via/keymap.c87
-rw-r--r--keyboards/horrortroll/paws60/keymaps/via/readme.md3
-rw-r--r--keyboards/horrortroll/paws60/keymaps/via/rules.mk1
-rw-r--r--keyboards/horrortroll/paws60/paws60.c17
-rw-r--r--keyboards/horrortroll/paws60/paws60.h129
-rw-r--r--keyboards/horrortroll/paws60/readme.md27
-rw-r--r--keyboards/horrortroll/paws60/rules.mk20
12 files changed, 727 insertions, 0 deletions
diff --git a/keyboards/horrortroll/paws60/config.h b/keyboards/horrortroll/paws60/config.h
new file mode 100644
index 000000000..d502ee985
--- /dev/null
+++ b/keyboards/horrortroll/paws60/config.h
@@ -0,0 +1,49 @@
1/* Copyright 2022 HorrorTroll <https://github.com/HorrorTroll>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "config_common.h"
20
21/* USB Device descriptor parameter */
22#define VENDOR_ID 0x7516
23#define PRODUCT_ID 0x6060
24#define DEVICE_VER 0x0001
25#define MANUFACTURER HorrorTroll
26#define PRODUCT Paws 60
27
28/* key matrix size */
29#define MATRIX_ROWS 5
30#define MATRIX_COLS 15
31
32/* key matrix pins */
33#define MATRIX_ROW_PINS { E6, B7, F7, F4, F5 }
34#define MATRIX_COL_PINS { F6, B0, F1, C7, C6, B6, B5, B4, D7, D6, D4, D5, D3, D2, D1 }
35
36#define BOOTMAGIC_LITE_ROW 3
37#define BOOTMAGIC_LITE_COLUMN 6
38
39/* COL2ROW or ROW2COL */
40#define DIODE_DIRECTION COL2ROW
41
42/* Set 0 if debouncing isn't needed */
43#define DEBOUNCE 5
44
45/* Forcing to use NKRO instead 6KRO */
46#define FORCE_NKRO
47
48/* Larger keys per scan */
49#define QMK_KEYS_PER_SCAN 12
diff --git a/keyboards/horrortroll/paws60/info.json b/keyboards/horrortroll/paws60/info.json
new file mode 100644
index 000000000..1008bf29e
--- /dev/null
+++ b/keyboards/horrortroll/paws60/info.json
@@ -0,0 +1,285 @@
1{
2 "keyboard_name": "Paws 60",
3 "url": "https://github.com/HorrorTroll/KeebProj/tree/default/paws60/pcb/Hotswap",
4 "maintainer": "HorrorTroll",
5 "layouts": {
6 "LAYOUT_60_ansi_split_bs_rshift": {
7 "layout": [
8 {"label":"Esc", "x":0, "y":0},
9 {"label":"1!", "x":1, "y":0},
10 {"label":"2@", "x":2, "y":0},
11 {"label":"3#", "x":3, "y":0},
12 {"label":"4$", "x":4, "y":0},
13 {"label":"5%", "x":5, "y":0},
14 {"label":"6^", "x":6, "y":0},
15 {"label":"7&", "x":7, "y":0},
16 {"label":"8*", "x":8, "y":0},
17 {"label":"9(", "x":9, "y":0},
18 {"label":"0)", "x":10, "y":0},
19 {"label":"-_", "x":11, "y":0},
20 {"label":"=+", "x":12, "y":0},
21 {"label":"`~", "x":13, "y":0},
22 {"label":"Backspace", "x":14, "y":0},
23
24 {"label":"Tab", "x":0, "y":1, "w":1.5},
25 {"label":"Q", "x":1.5, "y":1},
26 {"label":"W", "x":2.5, "y":1},
27 {"label":"E", "x":3.5, "y":1},
28 {"label":"R", "x":4.5, "y":1},
29 {"label":"T", "x":5.5, "y":1},
30 {"label":"Y", "x":6.5, "y":1},
31 {"label":"U", "x":7.5, "y":1},
32 {"label":"I", "x":8.5, "y":1},
33 {"label":"O", "x":9.5, "y":1},
34 {"label":"P", "x":10.5, "y":1},
35 {"label":"[{", "x":11.5, "y":1},
36 {"label":"]}", "x":12.5, "y":1},
37 {"label":"\\|", "x":13.5, "y":1, "w":1.5},
38
39 {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
40 {"label":"A", "x":1.75, "y":2},
41 {"label":"S", "x":2.75, "y":2},
42 {"label":"D", "x":3.75, "y":2},
43 {"label":"F", "x":4.75, "y":2},
44 {"label":"G", "x":5.75, "y":2},
45 {"label":"H", "x":6.75, "y":2},
46 {"label":"J", "x":7.75, "y":2},
47 {"label":"K", "x":8.75, "y":2},
48 {"label":"L", "x":9.75, "y":2},
49 {"label":";:", "x":10.75, "y":2},
50 {"label":"'\"", "x":11.75, "y":2},
51 {"label":"Enter", "x":12.75, "y":2, "w":2.25},
52
53 {"label":"Shift", "x":0, "y":3, "w":2.25},
54 {"label":"Z", "x":2.25, "y":3},
55 {"label":"X", "x":3.25, "y":3},
56 {"label":"C", "x":4.25, "y":3},
57 {"label":"V", "x":5.25, "y":3},
58 {"label":"B", "x":6.25, "y":3},
59 {"label":"N", "x":7.25, "y":3},
60 {"label":"M", "x":8.25, "y":3},
61 {"label":",<", "x":9.25, "y":3},
62 {"label":".>", "x":10.25, "y":3},
63 {"label":"/?", "x":11.25, "y":3},
64 {"label":"Shift", "x":12.25, "y":3, "w":1.75},
65 {"label":"Shift", "x":14, "y":3},
66
67 {"label":"Ctrl", "x":0, "y":4, "w":1.25},
68 {"label":"Win", "x":1.25, "y":4, "w":1.25},
69 {"label":"Alt", "x":2.5, "y":4, "w":1.25},
70 {"label":"Space", "x":3.75, "y":4, "w":6.25},
71 {"label":"Alt", "x":10, "y":4, "w":1.25},
72 {"label":"Fn", "x":11.25, "y":4, "w":1.25},
73 {"label":"Win", "x":12.5, "y":4, "w":1.25},
74 {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}
75 ]
76 }
77 "LAYOUT_60_ansi": {
78 "layout": [
79 {"label":"Esc", "x":0, "y":0},
80 {"label":"1!", "x":1, "y":0},
81 {"label":"2@", "x":2, "y":0},
82 {"label":"3#", "x":3, "y":0},
83 {"label":"4$", "x":4, "y":0},
84 {"label":"5%", "x":5, "y":0},
85 {"label":"6^", "x":6, "y":0},
86 {"label":"7&", "x":7, "y":0},
87 {"label":"8*", "x":8, "y":0},
88 {"label":"9(", "x":9, "y":0},
89 {"label":"0)", "x":10, "y":0},
90 {"label":"-_", "x":11, "y":0},
91 {"label":"=+", "x":12, "y":0},
92 {"label":"Backspace", "x":13, "y":0, "w":2},
93
94 {"label":"Tab", "x":0, "y":1, "w":1.5},
95 {"label":"Q", "x":1.5, "y":1},
96 {"label":"W", "x":2.5, "y":1},
97 {"label":"E", "x":3.5, "y":1},
98 {"label":"R", "x":4.5, "y":1},
99 {"label":"T", "x":5.5, "y":1},
100 {"label":"Y", "x":6.5, "y":1},
101 {"label":"U", "x":7.5, "y":1},
102 {"label":"I", "x":8.5, "y":1},
103 {"label":"O", "x":9.5, "y":1},
104 {"label":"P", "x":10.5, "y":1},
105 {"label":"[{", "x":11.5, "y":1},
106 {"label":"]}", "x":12.5, "y":1},
107 {"label":"\\|", "x":13.5, "y":1, "w":1.5},
108
109 {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
110 {"label":"A", "x":1.75, "y":2},
111 {"label":"S", "x":2.75, "y":2},
112 {"label":"D", "x":3.75, "y":2},
113 {"label":"F", "x":4.75, "y":2},
114 {"label":"G", "x":5.75, "y":2},
115 {"label":"H", "x":6.75, "y":2},
116 {"label":"J", "x":7.75, "y":2},
117 {"label":"K", "x":8.75, "y":2},
118 {"label":"L", "x":9.75, "y":2},
119 {"label":";:", "x":10.75, "y":2},
120 {"label":"'\"", "x":11.75, "y":2},
121 {"label":"Enter", "x":12.75, "y":2, "w":2.25},
122
123 {"label":"Shift", "x":0, "y":3, "w":2.25},
124 {"label":"Z", "x":2.25, "y":3},
125 {"label":"X", "x":3.25, "y":3},
126 {"label":"C", "x":4.25, "y":3},
127 {"label":"V", "x":5.25, "y":3},
128 {"label":"B", "x":6.25, "y":3},
129 {"label":"N", "x":7.25, "y":3},
130 {"label":"M", "x":8.25, "y":3},
131 {"label":",<", "x":9.25, "y":3},
132 {"label":".>", "x":10.25, "y":3},
133 {"label":"/?", "x":11.25, "y":3},
134 {"label":"Shift", "x":12.25, "y":3, "w":2.75},
135
136 {"label":"Ctrl", "x":0, "y":4, "w":1.25},
137 {"label":"Win", "x":1.25, "y":4, "w":1.25},
138 {"label":"Alt", "x":2.5, "y":4, "w":1.25},
139 {"label":"Space", "x":3.75, "y":4, "w":6.25},
140 {"label":"Alt", "x":10, "y":4, "w":1.25},
141 {"label":"Fn", "x":11.25, "y":4, "w":1.25},
142 {"label":"Win", "x":12.5, "y":4, "w":1.25},
143 {"label":"Ctrl", "x":13.75, "y":4, "w":1.25}
144 ]
145 }
146 "LAYOUT_60_ansi_tsangan": {
147 "layout": [
148 {"label":"Esc", "x":0, "y":0},
149 {"label":"1!", "x":1, "y":0},
150 {"label":"2@", "x":2, "y":0},
151 {"label":"3#", "x":3, "y":0},
152 {"label":"4$", "x":4, "y":0},
153 {"label":"5%", "x":5, "y":0},
154 {"label":"6^", "x":6, "y":0},
155 {"label":"7&", "x":7, "y":0},
156 {"label":"8*", "x":8, "y":0},
157 {"label":"9(", "x":9, "y":0},
158 {"label":"0)", "x":10, "y":0},
159 {"label":"-_", "x":11, "y":0},
160 {"label":"=+", "x":12, "y":0},
161 {"label":"Backspace", "x":13, "y":0, "w":2},
162
163 {"label":"Tab", "x":0, "y":1, "w":1.5},
164 {"label":"Q", "x":1.5, "y":1},
165 {"label":"W", "x":2.5, "y":1},
166 {"label":"E", "x":3.5, "y":1},
167 {"label":"R", "x":4.5, "y":1},
168 {"label":"T", "x":5.5, "y":1},
169 {"label":"Y", "x":6.5, "y":1},
170 {"label":"U", "x":7.5, "y":1},
171 {"label":"I", "x":8.5, "y":1},
172 {"label":"O", "x":9.5, "y":1},
173 {"label":"P", "x":10.5, "y":1},
174 {"label":"[{", "x":11.5, "y":1},
175 {"label":"]}", "x":12.5, "y":1},
176 {"label":"\\|", "x":13.5, "y":1, "w":1.5},
177
178 {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
179 {"label":"A", "x":1.75, "y":2},
180 {"label":"S", "x":2.75, "y":2},
181 {"label":"D", "x":3.75, "y":2},
182 {"label":"F", "x":4.75, "y":2},
183 {"label":"G", "x":5.75, "y":2},
184 {"label":"H", "x":6.75, "y":2},
185 {"label":"J", "x":7.75, "y":2},
186 {"label":"K", "x":8.75, "y":2},
187 {"label":"L", "x":9.75, "y":2},
188 {"label":";:", "x":10.75, "y":2},
189 {"label":"'\"", "x":11.75, "y":2},
190 {"label":"Enter", "x":12.75, "y":2, "w":2.25},
191
192 {"label":"Shift", "x":0, "y":3, "w":2.25},
193 {"label":"Z", "x":2.25, "y":3},
194 {"label":"X", "x":3.25, "y":3},
195 {"label":"C", "x":4.25, "y":3},
196 {"label":"V", "x":5.25, "y":3},
197 {"label":"B", "x":6.25, "y":3},
198 {"label":"N", "x":7.25, "y":3},
199 {"label":"M", "x":8.25, "y":3},
200 {"label":",<", "x":9.25, "y":3},
201 {"label":".>", "x":10.25, "y":3},
202 {"label":"/?", "x":11.25, "y":3},
203 {"label":"Shift", "x":12.25, "y":3, "w":2.75},
204
205 {"label":"Ctrl", "x":0, "y":4, "w":1.5},
206 {"label":"Win", "x":1.5, "y":4},
207 {"label":"Alt", "x":2.5, "y":4, "w":1.5},
208 {"label":"Space", "x":4, "y":4, "w":7},
209 {"label":"Fn", "x":11, "y":4, "w":1.5},
210 {"label":"Win", "x":12.5, "y":4},
211 {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}
212 ]
213 }
214 "LAYOUT_60_tsangan_hhkb": {
215 "layout": [
216 {"label":"Esc", "x":0, "y":0},
217 {"label":"1!", "x":1, "y":0},
218 {"label":"2@", "x":2, "y":0},
219 {"label":"3#", "x":3, "y":0},
220 {"label":"4$", "x":4, "y":0},
221 {"label":"5%", "x":5, "y":0},
222 {"label":"6^", "x":6, "y":0},
223 {"label":"7&", "x":7, "y":0},
224 {"label":"8*", "x":8, "y":0},
225 {"label":"9(", "x":9, "y":0},
226 {"label":"0)", "x":10, "y":0},
227 {"label":"-_", "x":11, "y":0},
228 {"label":"=+", "x":12, "y":0},
229 {"label":"`~", "x":13, "y":0},
230 {"label":"Backspace", "x":14, "y":0},
231
232 {"label":"Tab", "x":0, "y":1, "w":1.5},
233 {"label":"Q", "x":1.5, "y":1},
234 {"label":"W", "x":2.5, "y":1},
235 {"label":"E", "x":3.5, "y":1},
236 {"label":"R", "x":4.5, "y":1},
237 {"label":"T", "x":5.5, "y":1},
238 {"label":"Y", "x":6.5, "y":1},
239 {"label":"U", "x":7.5, "y":1},
240 {"label":"I", "x":8.5, "y":1},
241 {"label":"O", "x":9.5, "y":1},
242 {"label":"P", "x":10.5, "y":1},
243 {"label":"[{", "x":11.5, "y":1},
244 {"label":"]}", "x":12.5, "y":1},
245 {"label":"\\|", "x":13.5, "y":1, "w":1.5},
246
247 {"label":"Caps Lock", "x":0, "y":2, "w":1.75},
248 {"label":"A", "x":1.75, "y":2},
249 {"label":"S", "x":2.75, "y":2},
250 {"label":"D", "x":3.75, "y":2},
251 {"label":"F", "x":4.75, "y":2},
252 {"label":"G", "x":5.75, "y":2},
253 {"label":"H", "x":6.75, "y":2},
254 {"label":"J", "x":7.75, "y":2},
255 {"label":"K", "x":8.75, "y":2},
256 {"label":"L", "x":9.75, "y":2},
257 {"label":";:", "x":10.75, "y":2},
258 {"label":"'\"", "x":11.75, "y":2},
259 {"label":"Enter", "x":12.75, "y":2, "w":2.25},
260
261 {"label":"Shift", "x":0, "y":3, "w":2.25},
262 {"label":"Z", "x":2.25, "y":3},
263 {"label":"X", "x":3.25, "y":3},
264 {"label":"C", "x":4.25, "y":3},
265 {"label":"V", "x":5.25, "y":3},
266 {"label":"B", "x":6.25, "y":3},
267 {"label":"N", "x":7.25, "y":3},
268 {"label":"M", "x":8.25, "y":3},
269 {"label":",<", "x":9.25, "y":3},
270 {"label":".>", "x":10.25, "y":3},
271 {"label":"/?", "x":11.25, "y":3},
272 {"label":"Shift", "x":12.25, "y":3, "w":1.75},
273 {"label":"Shift", "x":14, "y":3},
274
275 {"label":"Ctrl", "x":0, "y":4, "w":1.5},
276 {"label":"Win", "x":1.5, "y":4},
277 {"label":"Alt", "x":2.5, "y":4, "w":1.5},
278 {"label":"Space", "x":4, "y":4, "w":7},
279 {"label":"Fn", "x":11, "y":4, "w":1.5},
280 {"label":"Win", "x":12.5, "y":4},
281 {"label":"Ctrl", "x":13.5, "y":4, "w":1.5}
282 ]
283 }
284 }
285}
diff --git a/keyboards/horrortroll/paws60/keymaps/default/keymap.c b/keyboards/horrortroll/paws60/keymaps/default/keymap.c
new file mode 100644
index 000000000..33319041d
--- /dev/null
+++ b/keyboards/horrortroll/paws60/keymaps/default/keymap.c
@@ -0,0 +1,87 @@
1/* Copyright 2022 HorrorTroll <https://github.com/HorrorTroll>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19// Each layer gets a name for readability, which is then used in the keymap matrix below.
20// The underscores don't mean anything - you can have a layer called STUFF or any other name.
21// Layer names don't all need to be of the same length, obviously, and you can also skip them
22// entirely and just use numbers.
23
24enum layer_names {
25 _BASE,
26 _FN,
27};
28
29// enum layer_keycodes { };
30
31const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32
33/*
34 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
35 │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ ` │Bks│
36 ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
37 │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │
38 ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
39 │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter │
40 ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
41 │ LShift │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │RSt│
42 ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
43 │LCrl│GUI │LAlt│ Space │RAlt│ Fn │ GUI│RCrl│
44 └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
45 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
46 │ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ ~ │ │
47 ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
48 │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | │
49 ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
50 │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │
51 ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
52 │ LShift │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RSft │RSt│
53 ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
54 │ │ │ │ │ │ │ │ │
55 └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
56*/
57 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */
58 [_BASE] = LAYOUT_60_ansi_split_bs_rshift(
59 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,
60 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,
61 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,
62 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,
63 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RGUI, KC_RCTL
64 ),
65
66/*
67 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
68 │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │Del│
69 ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
70 │Reset│ │ ↑ │ │ │ │ │ │Ins│ │PSc│ │ │ │
71 ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
72 │ │ ← │ ↓ │ → │ │ │ │ │ │ │ │ │ │
73 ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
74 │ │ │ │Cal│ │ │ │Mut│VoD│VoU│ │ │ │
75 ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
76 │ │ │ │ │ │ Fn │ │ │
77 └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
78*/
79 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */
80 [_FN] = LAYOUT_60_ansi_split_bs_rshift(
81 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,
82 RESET, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, _______, _______,
83 _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
84 _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
85 _______, _______, _______, _______, _______, _______, _______, _______
86 ),
87};
diff --git a/keyboards/horrortroll/paws60/keymaps/default/readme.md b/keyboards/horrortroll/paws60/keymaps/default/readme.md
new file mode 100644
index 000000000..f450e1a22
--- /dev/null
+++ b/keyboards/horrortroll/paws60/keymaps/default/readme.md
@@ -0,0 +1,3 @@
1# Default Layout
2
3Keymap is default 61 qwerty, 60% layout with split backspace & split right shift
diff --git a/keyboards/horrortroll/paws60/keymaps/via/config.h b/keyboards/horrortroll/paws60/keymaps/via/config.h
new file mode 100644
index 000000000..4a9ae9bdc
--- /dev/null
+++ b/keyboards/horrortroll/paws60/keymaps/via/config.h
@@ -0,0 +1,19 @@
1/* Copyright 2022 HorrorTroll <https://github.com/HorrorTroll>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#define DYNAMIC_KEYMAP_LAYER_COUNT 2
diff --git a/keyboards/horrortroll/paws60/keymaps/via/keymap.c b/keyboards/horrortroll/paws60/keymaps/via/keymap.c
new file mode 100644
index 000000000..33319041d
--- /dev/null
+++ b/keyboards/horrortroll/paws60/keymaps/via/keymap.c
@@ -0,0 +1,87 @@
1/* Copyright 2022 HorrorTroll <https://github.com/HorrorTroll>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include QMK_KEYBOARD_H
18
19// Each layer gets a name for readability, which is then used in the keymap matrix below.
20// The underscores don't mean anything - you can have a layer called STUFF or any other name.
21// Layer names don't all need to be of the same length, obviously, and you can also skip them
22// entirely and just use numbers.
23
24enum layer_names {
25 _BASE,
26 _FN,
27};
28
29// enum layer_keycodes { };
30
31const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
32
33/*
34 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
35 │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ ` │Bks│
36 ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
37 │ Tab │ q │ w │ e │ r │ t │ y │ u │ i │ o │ p │ [ │ ] │ \ │
38 ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
39 │ Caps │ a │ s │ d │ f │ g │ h │ j │ k │ l │ ; │ ' │ Enter │
40 ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
41 │ LShift │ z │ x │ c │ v │ b │ n │ m │ , │ . │ / │ RSft │RSt│
42 ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
43 │LCrl│GUI │LAlt│ Space │RAlt│ Fn │ GUI│RCrl│
44 └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
45 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
46 │ │ ! │ @ │ # │ $ │ % │ ^ │ & │ * │ ( │ ) │ _ │ + │ ~ │ │
47 ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
48 │ │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ { │ } │ | │
49 ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
50 │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ : │ " │ │
51 ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
52 │ LShift │ Z │ X │ C │ V │ B │ N │ M │ < │ > │ ? │ RSft │RSt│
53 ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
54 │ │ │ │ │ │ │ │ │
55 └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
56*/
57 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */
58 [_BASE] = LAYOUT_60_ansi_split_bs_rshift(
59 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,
60 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,
61 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,
62 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,
63 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, MO(_FN), KC_RGUI, KC_RCTL
64 ),
65
66/*
67 ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
68 │ ` │F1 │F2 │F3 │F4 │F5 │F6 │F7 │F8 │F9 │F10│F11│F12│ │Del│
69 ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
70 │Reset│ │ ↑ │ │ │ │ │ │Ins│ │PSc│ │ │ │
71 ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
72 │ │ ← │ ↓ │ → │ │ │ │ │ │ │ │ │ │
73 ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
74 │ │ │ │Cal│ │ │ │Mut│VoD│VoU│ │ │ │
75 ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
76 │ │ │ │ │ │ Fn │ │ │
77 └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
78*/
79 /* Row: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */
80 [_FN] = LAYOUT_60_ansi_split_bs_rshift(
81 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,
82 RESET, _______, KC_UP, _______, _______, _______, _______, _______, KC_INS, _______, KC_PSCR, _______, _______, _______,
83 _______, KC_LEFT, KC_DOWN, KC_RIGHT, _______, _______, _______, _______, _______, _______, _______, _______, _______,
84 _______, _______, _______, KC_CALC, _______, _______, _______, KC_MUTE, KC_VOLD, KC_VOLU, _______, _______, _______,
85 _______, _______, _______, _______, _______, _______, _______, _______
86 ),
87};
diff --git a/keyboards/horrortroll/paws60/keymaps/via/readme.md b/keyboards/horrortroll/paws60/keymaps/via/readme.md
new file mode 100644
index 000000000..13fa492dd
--- /dev/null
+++ b/keyboards/horrortroll/paws60/keymaps/via/readme.md
@@ -0,0 +1,3 @@
1# Default Layout with VIA
2
3Keymap is default 61 qwerty, 60% layout with split backspace & split right shift
diff --git a/keyboards/horrortroll/paws60/keymaps/via/rules.mk b/keyboards/horrortroll/paws60/keymaps/via/rules.mk
new file mode 100644
index 000000000..1e5b99807
--- /dev/null
+++ b/keyboards/horrortroll/paws60/keymaps/via/rules.mk
@@ -0,0 +1 @@
VIA_ENABLE = yes
diff --git a/keyboards/horrortroll/paws60/paws60.c b/keyboards/horrortroll/paws60/paws60.c
new file mode 100644
index 000000000..8734d7507
--- /dev/null
+++ b/keyboards/horrortroll/paws60/paws60.c
@@ -0,0 +1,17 @@
1/* Copyright 2022 HorrorTroll <https://github.com/HorrorTroll>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#include "paws60.h"
diff --git a/keyboards/horrortroll/paws60/paws60.h b/keyboards/horrortroll/paws60/paws60.h
new file mode 100644
index 000000000..3c79345d7
--- /dev/null
+++ b/keyboards/horrortroll/paws60/paws60.h
@@ -0,0 +1,129 @@
1/* Copyright 2022 HorrorTroll <https://github.com/HorrorTroll>
2 *
3 * This program is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 2 of the License, or
6 * (at your option) any later version.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17#pragma once
18
19#include "quantum.h"
20
21#define XXX KC_NO
22
23/* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
24 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │
25 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
26 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │
27 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
28 * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │
29 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
30 * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │
31 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
32 * │40 │41 │42 │46 │4A │4B │4C │4D │
33 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
34 */
35
36#define LAYOUT_60_ansi_split_bs_rshift( \
37 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
38 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
39 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
40 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
41 K40, K41, K42, K46, K4A, K4B, K4C, K4D \
42) { \
43 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
44 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX }, \
45 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, XXX }, \
46 { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX }, \
47 { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, XXX } \
48}
49
50/* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
51 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0E │
52 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
53 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │
54 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
55 * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │
56 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
57 * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │
58 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
59 * │40 │41 │42 │46 │4A │4B │4C │4D │
60 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
61 */
62
63#define LAYOUT_60_ansi( \
64 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \
65 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
66 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
67 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
68 K40, K41, K42, K46, K4A, K4B, K4C, K4D \
69) { \
70 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, K0E }, \
71 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX }, \
72 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, XXX }, \
73 { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, XXX }, \
74 { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, K4A, K4B, K4C, K4D, XXX } \
75}
76
77/* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
78 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0E │
79 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
80 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │
81 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
82 * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │
83 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
84 * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3D │
85 * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─────┤
86 * │40 │41 │42 │46 │4B │4C │4D │
87 * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
88 */
89
90#define LAYOUT_60_ansi_tsangan( \
91 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0E, \
92 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
93 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
94 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3D, \
95 K40, K41, K42, K46, K4B, K4C, K4D \
96) { \
97 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, XXX, K0E }, \
98 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX }, \
99 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, XXX }, \
100 { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, XXX, K3D, XXX }, \
101 { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, XXX, K4B, K4C, K4D, XXX } \
102}
103
104/* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
105 * │00 │01 │02 │03 │04 │05 │06 │07 │08 │09 │0A │0B │0C │0D │0E │
106 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
107 * │10 │11 │12 │13 │14 │15 │16 │17 │18 │19 │1A │1B │1C │1D │
108 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
109 * │20 │21 │22 │23 │24 │25 │26 │27 │28 │29 │2A │2B │2D │
110 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
111 * │30 │32 │33 │34 │35 │36 │37 │38 │39 │3A │3B │3C │3D │
112 * ├─────┬──┴┬──┴──┬┴───┴───┴───┴───┴───┴───┴──┬┴───┴┬───┬─┴───┤
113 * │40 │41 │42 │46 │4B │4C │4D │
114 * └─────┴───┴─────┴───────────────────────────┴─────┴───┴─────┘
115 */
116
117#define LAYOUT_60_tsangan_hhkb( \
118 K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E, \
119 K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, \
120 K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, K2D, \
121 K30, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, \
122 K40, K41, K42, K46, K4B, K4C, K4D \
123) { \
124 { K00, K01, K02, K03, K04, K05, K06, K07, K08, K09, K0A, K0B, K0C, K0D, K0E }, \
125 { K10, K11, K12, K13, K14, K15, K16, K17, K18, K19, K1A, K1B, K1C, K1D, XXX }, \
126 { K20, K21, K22, K23, K24, K25, K26, K27, K28, K29, K2A, K2B, XXX, K2D, XXX }, \
127 { K30, XXX, K32, K33, K34, K35, K36, K37, K38, K39, K3A, K3B, K3C, K3D, XXX }, \
128 { K40, K41, K42, XXX, XXX, XXX, K46, XXX, XXX, XXX, XXX, K4B, K4C, K4D, XXX } \
129}
diff --git a/keyboards/horrortroll/paws60/readme.md b/keyboards/horrortroll/paws60/readme.md
new file mode 100644
index 000000000..62783d3b5
--- /dev/null
+++ b/keyboards/horrortroll/paws60/readme.md
@@ -0,0 +1,27 @@
1# Paws 60
2
3A PCB that has been inspired by Bakeneko 60 from kkatano [GitHub](https://github.com/kkatano/bakeneko-60)
4
5But more changes has been added: Hotswap socket, ...
6
7* Keyboard Maintainer: [HorrorTroll](https://github.com/HorrorTroll)
8* Hardware Supported: Atmega32u4
9* Hardware Availability: [Open source on GitHub](https://github.com/HorrorTroll/KeebProj/tree/default/paws60/pcb/Hotswap)
10
11Make example for this keyboard (after setting up your build environment):
12
13 make horrortroll/paws60:default
14
15Flashing example for this keyboard:
16
17 make horrortroll/paws60:default:flash
18
19See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
20
21## Bootloader
22
23Enter the bootloader in 3 ways:
24
25* **Bootmagic reset**: Hold down the key at (3,6) in the matrix (B key) and plug in the keyboard
26* **Physical reset button**: Briefly press the button on the back of the PCB
27* **Keycode in layout**: Press the key mapped to RESET if it is available
diff --git a/keyboards/horrortroll/paws60/rules.mk b/keyboards/horrortroll/paws60/rules.mk
new file mode 100644
index 000000000..daf1d593f
--- /dev/null
+++ b/keyboards/horrortroll/paws60/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 = no # Mouse keys
12EXTRAKEY_ENABLE = yes # Audio control and System control
13CONSOLE_ENABLE = no # Console for debug
14COMMAND_ENABLE = no # Commands for debug and configuration
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_split_bs_rshift 60_ansi 60_ansi_tsangan 60_tsangan_hhkb