summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstudiokestra <74369928+studiokestra@users.noreply.github.com>2024-09-21 11:29:12 -0600
committerGitHub <noreply@github.com>2024-09-21 10:29:12 -0700
commit4665d9c405dfe00aec5abb0bb0acbe4b0400bfdf (patch)
tree9f5b71995482219877e5d1f0589ac0460cbfcffe
parent2e86b05cab7e0bef6b4faf30d4c816f8b459452d (diff)
[Keyboard] Add Fairholme PCB (#24400)
Co-authored-by: Duncan Sutherland <dunk2k_2000@hotmail.com>
-rw-r--r--keyboards/studiokestra/fairholme/keyboard.json1002
-rw-r--r--keyboards/studiokestra/fairholme/keymaps/60_ansi/keymap.c34
-rw-r--r--keyboards/studiokestra/fairholme/keymaps/60_ansi_split_bs_rshift/keymap.c34
-rw-r--r--keyboards/studiokestra/fairholme/keymaps/60_iso/keymap.c34
-rw-r--r--keyboards/studiokestra/fairholme/keymaps/default/keymap.c34
-rw-r--r--keyboards/studiokestra/fairholme/readme.md27
6 files changed, 1165 insertions, 0 deletions
diff --git a/keyboards/studiokestra/fairholme/keyboard.json b/keyboards/studiokestra/fairholme/keyboard.json
new file mode 100644
index 0000000000..f789c2059b
--- /dev/null
+++ b/keyboards/studiokestra/fairholme/keyboard.json
@@ -0,0 +1,1002 @@
1{
2 "manufacturer": "Studio Kestra",
3 "keyboard_name": "Fairholme",
4 "maintainer": "Studio Kestra",
5 "bootloader": "stm32-dfu",
6 "diode_direction": "COL2ROW",
7 "features": {
8 "bootmagic": true,
9 "command": false,
10 "console": false,
11 "extrakey": true,
12 "mousekey": true,
13 "nkro": true
14 },
15 "matrix_pins": {
16 "cols": ["B11", "B2", "B1", "B0", "A7", "A6", "A5", "A4", "A3", "F1", "F0", "C15", "C14", "C13"],
17 "rows": ["A0", "A1", "A2", "A9", "A10"]
18 },
19 "processor": "STM32F072",
20 "usb": {
21 "device_version": "1.0.0",
22 "pid": "0x6002",
23 "vid": "0x7C10"
24 },
25 "indicators": {
26 "caps_lock": "B10",
27 "on_state": 1
28 },
29 "community_layouts": ["60_ansi", "60_ansi_split_bs_rshift", "60_ansi_tsangan", "60_ansi_tsangan_split_bs_rshift", "60_ansi_wkl", "60_ansi_wkl_split_bs_rshift", "60_hhkb", "60_iso", "60_iso_split_bs_rshift", "60_iso_tsangan", "60_iso_tsangan_split_bs_rshift", "60_iso_wkl", "60_iso_wkl_split_bs_rshift"],
30 "layouts": {
31 "LAYOUT_all": {
32 "layout": [
33 {"matrix": [0, 0], "x": 0, "y": 0},
34 {"matrix": [0, 1], "x": 1, "y": 0},
35 {"matrix": [0, 2], "x": 2, "y": 0},
36 {"matrix": [0, 3], "x": 3, "y": 0},
37 {"matrix": [0, 4], "x": 4, "y": 0},
38 {"matrix": [0, 5], "x": 5, "y": 0},
39 {"matrix": [0, 6], "x": 6, "y": 0},
40 {"matrix": [0, 7], "x": 7, "y": 0},
41 {"matrix": [0, 8], "x": 8, "y": 0},
42 {"matrix": [0, 9], "x": 9, "y": 0},
43 {"matrix": [0, 10], "x": 10, "y": 0},
44 {"matrix": [0, 11], "x": 11, "y": 0},
45 {"matrix": [0, 12], "x": 12, "y": 0},
46 {"matrix": [0, 13], "x": 13, "y": 0},
47 {"matrix": [1, 13], "x": 14, "y": 0},
48
49 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
50 {"matrix": [1, 1], "x": 1.5, "y": 1},
51 {"matrix": [1, 2], "x": 2.5, "y": 1},
52 {"matrix": [1, 3], "x": 3.5, "y": 1},
53 {"matrix": [1, 4], "x": 4.5, "y": 1},
54 {"matrix": [1, 5], "x": 5.5, "y": 1},
55 {"matrix": [1, 6], "x": 6.5, "y": 1},
56 {"matrix": [1, 7], "x": 7.5, "y": 1},
57 {"matrix": [1, 8], "x": 8.5, "y": 1},
58 {"matrix": [1, 9], "x": 9.5, "y": 1},
59 {"matrix": [1, 10], "x": 10.5, "y": 1},
60 {"matrix": [1, 11], "x": 11.5, "y": 1},
61 {"matrix": [1, 12], "x": 12.5, "y": 1},
62 {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5},
63
64 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
65 {"matrix": [2, 1], "x": 1.75, "y": 2},
66 {"matrix": [2, 2], "x": 2.75, "y": 2},
67 {"matrix": [2, 3], "x": 3.75, "y": 2},
68 {"matrix": [2, 4], "x": 4.75, "y": 2},
69 {"matrix": [2, 5], "x": 5.75, "y": 2},
70 {"matrix": [2, 6], "x": 6.75, "y": 2},
71 {"matrix": [2, 7], "x": 7.75, "y": 2},
72 {"matrix": [2, 8], "x": 8.75, "y": 2},
73 {"matrix": [2, 9], "x": 9.75, "y": 2},
74 {"matrix": [2, 10], "x": 10.75, "y": 2},
75 {"matrix": [2, 11], "x": 11.75, "y": 2},
76 {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
77
78 {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
79 {"matrix": [3, 1], "x": 1.25, "y": 3},
80 {"matrix": [3, 2], "x": 2.25, "y": 3},
81 {"matrix": [3, 3], "x": 3.25, "y": 3},
82 {"matrix": [3, 4], "x": 4.25, "y": 3},
83 {"matrix": [3, 5], "x": 5.25, "y": 3},
84 {"matrix": [3, 6], "x": 6.25, "y": 3},
85 {"matrix": [3, 7], "x": 7.25, "y": 3},
86 {"matrix": [3, 8], "x": 8.25, "y": 3},
87 {"matrix": [3, 9], "x": 9.25, "y": 3},
88 {"matrix": [3, 10], "x": 10.25, "y": 3},
89 {"matrix": [3, 11], "x": 11.25, "y": 3},
90 {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
91 {"matrix": [3, 13], "x": 14, "y": 3},
92
93 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
94 {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
95 {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
96 {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
97 {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
98 {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
99 {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
100 {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
101 ]
102 },
103 "LAYOUT_60_ansi": {
104 "layout": [
105 {"matrix": [0, 0], "x": 0, "y": 0},
106 {"matrix": [0, 1], "x": 1, "y": 0},
107 {"matrix": [0, 2], "x": 2, "y": 0},
108 {"matrix": [0, 3], "x": 3, "y": 0},
109 {"matrix": [0, 4], "x": 4, "y": 0},
110 {"matrix": [0, 5], "x": 5, "y": 0},
111 {"matrix": [0, 6], "x": 6, "y": 0},
112 {"matrix": [0, 7], "x": 7, "y": 0},
113 {"matrix": [0, 8], "x": 8, "y": 0},
114 {"matrix": [0, 9], "x": 9, "y": 0},
115 {"matrix": [0, 10], "x": 10, "y": 0},
116 {"matrix": [0, 11], "x": 11, "y": 0},
117 {"matrix": [0, 12], "x": 12, "y": 0},
118 {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
119
120 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
121 {"matrix": [1, 1], "x": 1.5, "y": 1},
122 {"matrix": [1, 2], "x": 2.5, "y": 1},
123 {"matrix": [1, 3], "x": 3.5, "y": 1},
124 {"matrix": [1, 4], "x": 4.5, "y": 1},
125 {"matrix": [1, 5], "x": 5.5, "y": 1},
126 {"matrix": [1, 6], "x": 6.5, "y": 1},
127 {"matrix": [1, 7], "x": 7.5, "y": 1},
128 {"matrix": [1, 8], "x": 8.5, "y": 1},
129 {"matrix": [1, 9], "x": 9.5, "y": 1},
130 {"matrix": [1, 10], "x": 10.5, "y": 1},
131 {"matrix": [1, 11], "x": 11.5, "y": 1},
132 {"matrix": [1, 12], "x": 12.5, "y": 1},
133 {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5},
134
135 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
136 {"matrix": [2, 1], "x": 1.75, "y": 2},
137 {"matrix": [2, 2], "x": 2.75, "y": 2},
138 {"matrix": [2, 3], "x": 3.75, "y": 2},
139 {"matrix": [2, 4], "x": 4.75, "y": 2},
140 {"matrix": [2, 5], "x": 5.75, "y": 2},
141 {"matrix": [2, 6], "x": 6.75, "y": 2},
142 {"matrix": [2, 7], "x": 7.75, "y": 2},
143 {"matrix": [2, 8], "x": 8.75, "y": 2},
144 {"matrix": [2, 9], "x": 9.75, "y": 2},
145 {"matrix": [2, 10], "x": 10.75, "y": 2},
146 {"matrix": [2, 11], "x": 11.75, "y": 2},
147 {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
148
149 {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
150 {"matrix": [3, 2], "x": 2.25, "y": 3},
151 {"matrix": [3, 3], "x": 3.25, "y": 3},
152 {"matrix": [3, 4], "x": 4.25, "y": 3},
153 {"matrix": [3, 5], "x": 5.25, "y": 3},
154 {"matrix": [3, 6], "x": 6.25, "y": 3},
155 {"matrix": [3, 7], "x": 7.25, "y": 3},
156 {"matrix": [3, 8], "x": 8.25, "y": 3},
157 {"matrix": [3, 9], "x": 9.25, "y": 3},
158 {"matrix": [3, 10], "x": 10.25, "y": 3},
159 {"matrix": [3, 11], "x": 11.25, "y": 3},
160 {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
161
162 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
163 {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
164 {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
165 {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
166 {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
167 {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
168 {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
169 {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
170 ]
171 },
172 "LAYOUT_60_ansi_split_bs_rshift": {
173 "layout": [
174 {"matrix": [0, 0], "x": 0, "y": 0},
175 {"matrix": [0, 1], "x": 1, "y": 0},
176 {"matrix": [0, 2], "x": 2, "y": 0},
177 {"matrix": [0, 3], "x": 3, "y": 0},
178 {"matrix": [0, 4], "x": 4, "y": 0},
179 {"matrix": [0, 5], "x": 5, "y": 0},
180 {"matrix": [0, 6], "x": 6, "y": 0},
181 {"matrix": [0, 7], "x": 7, "y": 0},
182 {"matrix": [0, 8], "x": 8, "y": 0},
183 {"matrix": [0, 9], "x": 9, "y": 0},
184 {"matrix": [0, 10], "x": 10, "y": 0},
185 {"matrix": [0, 11], "x": 11, "y": 0},
186 {"matrix": [0, 12], "x": 12, "y": 0},
187 {"matrix": [0, 13], "x": 13, "y": 0},
188 {"matrix": [1, 13], "x": 14, "y": 0},
189
190 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
191 {"matrix": [1, 1], "x": 1.5, "y": 1},
192 {"matrix": [1, 2], "x": 2.5, "y": 1},
193 {"matrix": [1, 3], "x": 3.5, "y": 1},
194 {"matrix": [1, 4], "x": 4.5, "y": 1},
195 {"matrix": [1, 5], "x": 5.5, "y": 1},
196 {"matrix": [1, 6], "x": 6.5, "y": 1},
197 {"matrix": [1, 7], "x": 7.5, "y": 1},
198 {"matrix": [1, 8], "x": 8.5, "y": 1},
199 {"matrix": [1, 9], "x": 9.5, "y": 1},
200 {"matrix": [1, 10], "x": 10.5, "y": 1},
201 {"matrix": [1, 11], "x": 11.5, "y": 1},
202 {"matrix": [1, 12], "x": 12.5, "y": 1},
203 {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5},
204
205 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
206 {"matrix": [2, 1], "x": 1.75, "y": 2},
207 {"matrix": [2, 2], "x": 2.75, "y": 2},
208 {"matrix": [2, 3], "x": 3.75, "y": 2},
209 {"matrix": [2, 4], "x": 4.75, "y": 2},
210 {"matrix": [2, 5], "x": 5.75, "y": 2},
211 {"matrix": [2, 6], "x": 6.75, "y": 2},
212 {"matrix": [2, 7], "x": 7.75, "y": 2},
213 {"matrix": [2, 8], "x": 8.75, "y": 2},
214 {"matrix": [2, 9], "x": 9.75, "y": 2},
215 {"matrix": [2, 10], "x": 10.75, "y": 2},
216 {"matrix": [2, 11], "x": 11.75, "y": 2},
217 {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
218
219 {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
220 {"matrix": [3, 2], "x": 2.25, "y": 3},
221 {"matrix": [3, 3], "x": 3.25, "y": 3},
222 {"matrix": [3, 4], "x": 4.25, "y": 3},
223 {"matrix": [3, 5], "x": 5.25, "y": 3},
224 {"matrix": [3, 6], "x": 6.25, "y": 3},
225 {"matrix": [3, 7], "x": 7.25, "y": 3},
226 {"matrix": [3, 8], "x": 8.25, "y": 3},
227 {"matrix": [3, 9], "x": 9.25, "y": 3},
228 {"matrix": [3, 10], "x": 10.25, "y": 3},
229 {"matrix": [3, 11], "x": 11.25, "y": 3},
230 {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
231 {"matrix": [3, 13], "x": 14, "y": 3},
232
233 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
234 {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
235 {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
236 {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
237 {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
238 {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
239 {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
240 {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
241 ]
242 },
243 "LAYOUT_60_ansi_tsangan": {
244 "layout": [
245 {"matrix": [0, 0], "x": 0, "y": 0},
246 {"matrix": [0, 1], "x": 1, "y": 0},
247 {"matrix": [0, 2], "x": 2, "y": 0},
248 {"matrix": [0, 3], "x": 3, "y": 0},
249 {"matrix": [0, 4], "x": 4, "y": 0},
250 {"matrix": [0, 5], "x": 5, "y": 0},
251 {"matrix": [0, 6], "x": 6, "y": 0},
252 {"matrix": [0, 7], "x": 7, "y": 0},
253 {"matrix": [0, 8], "x": 8, "y": 0},
254 {"matrix": [0, 9], "x": 9, "y": 0},
255 {"matrix": [0, 10], "x": 10, "y": 0},
256 {"matrix": [0, 11], "x": 11, "y": 0},
257 {"matrix": [0, 12], "x": 12, "y": 0},
258 {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
259
260 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
261 {"matrix": [1, 1], "x": 1.5, "y": 1},
262 {"matrix": [1, 2], "x": 2.5, "y": 1},
263 {"matrix": [1, 3], "x": 3.5, "y": 1},
264 {"matrix": [1, 4], "x": 4.5, "y": 1},
265 {"matrix": [1, 5], "x": 5.5, "y": 1},
266 {"matrix": [1, 6], "x": 6.5, "y": 1},
267 {"matrix": [1, 7], "x": 7.5, "y": 1},
268 {"matrix": [1, 8], "x": 8.5, "y": 1},
269 {"matrix": [1, 9], "x": 9.5, "y": 1},
270 {"matrix": [1, 10], "x": 10.5, "y": 1},
271 {"matrix": [1, 11], "x": 11.5, "y": 1},
272 {"matrix": [1, 12], "x": 12.5, "y": 1},
273 {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5},
274
275 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
276 {"matrix": [2, 1], "x": 1.75, "y": 2},
277 {"matrix": [2, 2], "x": 2.75, "y": 2},
278 {"matrix": [2, 3], "x": 3.75, "y": 2},
279 {"matrix": [2, 4], "x": 4.75, "y": 2},
280 {"matrix": [2, 5], "x": 5.75, "y": 2},
281 {"matrix": [2, 6], "x": 6.75, "y": 2},
282 {"matrix": [2, 7], "x": 7.75, "y": 2},
283 {"matrix": [2, 8], "x": 8.75, "y": 2},
284 {"matrix": [2, 9], "x": 9.75, "y": 2},
285 {"matrix": [2, 10], "x": 10.75, "y": 2},
286 {"matrix": [2, 11], "x": 11.75, "y": 2},
287 {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
288
289 {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
290 {"matrix": [3, 2], "x": 2.25, "y": 3},
291 {"matrix": [3, 3], "x": 3.25, "y": 3},
292 {"matrix": [3, 4], "x": 4.25, "y": 3},
293 {"matrix": [3, 5], "x": 5.25, "y": 3},
294 {"matrix": [3, 6], "x": 6.25, "y": 3},
295 {"matrix": [3, 7], "x": 7.25, "y": 3},
296 {"matrix": [3, 8], "x": 8.25, "y": 3},
297 {"matrix": [3, 9], "x": 9.25, "y": 3},
298 {"matrix": [3, 10], "x": 10.25, "y": 3},
299 {"matrix": [3, 11], "x": 11.25, "y": 3},
300 {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
301
302 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
303 {"matrix": [4, 1], "x": 1.5, "y": 4},
304 {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
305 {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
306 {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
307 {"matrix": [4, 12], "x": 12.5, "y": 4},
308 {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
309 ]
310 },
311 "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
312 "layout": [
313 {"matrix": [0, 0], "x": 0, "y": 0},
314 {"matrix": [0, 1], "x": 1, "y": 0},
315 {"matrix": [0, 2], "x": 2, "y": 0},
316 {"matrix": [0, 3], "x": 3, "y": 0},
317 {"matrix": [0, 4], "x": 4, "y": 0},
318 {"matrix": [0, 5], "x": 5, "y": 0},
319 {"matrix": [0, 6], "x": 6, "y": 0},
320 {"matrix": [0, 7], "x": 7, "y": 0},
321 {"matrix": [0, 8], "x": 8, "y": 0},
322 {"matrix": [0, 9], "x": 9, "y": 0},
323 {"matrix": [0, 10], "x": 10, "y": 0},
324 {"matrix": [0, 11], "x": 11, "y": 0},
325 {"matrix": [0, 12], "x": 12, "y": 0},
326 {"matrix": [0, 13], "x": 13, "y": 0},
327 {"matrix": [1, 13], "x": 14, "y": 0},
328
329 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
330 {"matrix": [1, 1], "x": 1.5, "y": 1},
331 {"matrix": [1, 2], "x": 2.5, "y": 1},
332 {"matrix": [1, 3], "x": 3.5, "y": 1},
333 {"matrix": [1, 4], "x": 4.5, "y": 1},
334 {"matrix": [1, 5], "x": 5.5, "y": 1},
335 {"matrix": [1, 6], "x": 6.5, "y": 1},
336 {"matrix": [1, 7], "x": 7.5, "y": 1},
337 {"matrix": [1, 8], "x": 8.5, "y": 1},
338 {"matrix": [1, 9], "x": 9.5, "y": 1},
339 {"matrix": [1, 10], "x": 10.5, "y": 1},
340 {"matrix": [1, 11], "x": 11.5, "y": 1},
341 {"matrix": [1, 12], "x": 12.5, "y": 1},
342 {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5},
343
344 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
345 {"matrix": [2, 1], "x": 1.75, "y": 2},
346 {"matrix": [2, 2], "x": 2.75, "y": 2},
347 {"matrix": [2, 3], "x": 3.75, "y": 2},
348 {"matrix": [2, 4], "x": 4.75, "y": 2},
349 {"matrix": [2, 5], "x": 5.75, "y": 2},
350 {"matrix": [2, 6], "x": 6.75, "y": 2},
351 {"matrix": [2, 7], "x": 7.75, "y": 2},
352 {"matrix": [2, 8], "x": 8.75, "y": 2},
353 {"matrix": [2, 9], "x": 9.75, "y": 2},
354 {"matrix": [2, 10], "x": 10.75, "y": 2},
355 {"matrix": [2, 11], "x": 11.75, "y": 2},
356 {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
357
358 {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
359 {"matrix": [3, 2], "x": 2.25, "y": 3},
360 {"matrix": [3, 3], "x": 3.25, "y": 3},
361 {"matrix": [3, 4], "x": 4.25, "y": 3},
362 {"matrix": [3, 5], "x": 5.25, "y": 3},
363 {"matrix": [3, 6], "x": 6.25, "y": 3},
364 {"matrix": [3, 7], "x": 7.25, "y": 3},
365 {"matrix": [3, 8], "x": 8.25, "y": 3},
366 {"matrix": [3, 9], "x": 9.25, "y": 3},
367 {"matrix": [3, 10], "x": 10.25, "y": 3},
368 {"matrix": [3, 11], "x": 11.25, "y": 3},
369 {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
370 {"matrix": [3, 13], "x": 14, "y": 3},
371
372 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
373 {"matrix": [4, 1], "x": 1.5, "y": 4},
374 {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
375 {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
376 {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
377 {"matrix": [4, 12], "x": 12.5, "y": 4},
378 {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
379 ]
380 },
381 "LAYOUT_60_ansi_wkl": {
382 "layout": [
383 {"matrix": [0, 0], "x": 0, "y": 0},
384 {"matrix": [0, 1], "x": 1, "y": 0},
385 {"matrix": [0, 2], "x": 2, "y": 0},
386 {"matrix": [0, 3], "x": 3, "y": 0},
387 {"matrix": [0, 4], "x": 4, "y": 0},
388 {"matrix": [0, 5], "x": 5, "y": 0},
389 {"matrix": [0, 6], "x": 6, "y": 0},
390 {"matrix": [0, 7], "x": 7, "y": 0},
391 {"matrix": [0, 8], "x": 8, "y": 0},
392 {"matrix": [0, 9], "x": 9, "y": 0},
393 {"matrix": [0, 10], "x": 10, "y": 0},
394 {"matrix": [0, 11], "x": 11, "y": 0},
395 {"matrix": [0, 12], "x": 12, "y": 0},
396 {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
397
398 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
399 {"matrix": [1, 1], "x": 1.5, "y": 1},
400 {"matrix": [1, 2], "x": 2.5, "y": 1},
401 {"matrix": [1, 3], "x": 3.5, "y": 1},
402 {"matrix": [1, 4], "x": 4.5, "y": 1},
403 {"matrix": [1, 5], "x": 5.5, "y": 1},
404 {"matrix": [1, 6], "x": 6.5, "y": 1},
405 {"matrix": [1, 7], "x": 7.5, "y": 1},
406 {"matrix": [1, 8], "x": 8.5, "y": 1},
407 {"matrix": [1, 9], "x": 9.5, "y": 1},
408 {"matrix": [1, 10], "x": 10.5, "y": 1},
409 {"matrix": [1, 11], "x": 11.5, "y": 1},
410 {"matrix": [1, 12], "x": 12.5, "y": 1},
411 {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5},
412
413 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
414 {"matrix": [2, 1], "x": 1.75, "y": 2},
415 {"matrix": [2, 2], "x": 2.75, "y": 2},
416 {"matrix": [2, 3], "x": 3.75, "y": 2},
417 {"matrix": [2, 4], "x": 4.75, "y": 2},
418 {"matrix": [2, 5], "x": 5.75, "y": 2},
419 {"matrix": [2, 6], "x": 6.75, "y": 2},
420 {"matrix": [2, 7], "x": 7.75, "y": 2},
421 {"matrix": [2, 8], "x": 8.75, "y": 2},
422 {"matrix": [2, 9], "x": 9.75, "y": 2},
423 {"matrix": [2, 10], "x": 10.75, "y": 2},
424 {"matrix": [2, 11], "x": 11.75, "y": 2},
425 {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
426
427 {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
428 {"matrix": [3, 2], "x": 2.25, "y": 3},
429 {"matrix": [3, 3], "x": 3.25, "y": 3},
430 {"matrix": [3, 4], "x": 4.25, "y": 3},
431 {"matrix": [3, 5], "x": 5.25, "y": 3},
432 {"matrix": [3, 6], "x": 6.25, "y": 3},
433 {"matrix": [3, 7], "x": 7.25, "y": 3},
434 {"matrix": [3, 8], "x": 8.25, "y": 3},
435 {"matrix": [3, 9], "x": 9.25, "y": 3},
436 {"matrix": [3, 10], "x": 10.25, "y": 3},
437 {"matrix": [3, 11], "x": 11.25, "y": 3},
438 {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
439
440 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
441 {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
442 {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
443 {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
444 {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
445 ]
446 },
447 "LAYOUT_60_ansi_wkl_split_bs_rshift": {
448 "layout": [
449 {"matrix": [0, 0], "x": 0, "y": 0},
450 {"matrix": [0, 1], "x": 1, "y": 0},
451 {"matrix": [0, 2], "x": 2, "y": 0},
452 {"matrix": [0, 3], "x": 3, "y": 0},
453 {"matrix": [0, 4], "x": 4, "y": 0},
454 {"matrix": [0, 5], "x": 5, "y": 0},
455 {"matrix": [0, 6], "x": 6, "y": 0},
456 {"matrix": [0, 7], "x": 7, "y": 0},
457 {"matrix": [0, 8], "x": 8, "y": 0},
458 {"matrix": [0, 9], "x": 9, "y": 0},
459 {"matrix": [0, 10], "x": 10, "y": 0},
460 {"matrix": [0, 11], "x": 11, "y": 0},
461 {"matrix": [0, 12], "x": 12, "y": 0},
462 {"matrix": [0, 13], "x": 13, "y": 0},
463 {"matrix": [1, 13], "x": 14, "y": 0},
464
465 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
466 {"matrix": [1, 1], "x": 1.5, "y": 1},
467 {"matrix": [1, 2], "x": 2.5, "y": 1},
468 {"matrix": [1, 3], "x": 3.5, "y": 1},
469 {"matrix": [1, 4], "x": 4.5, "y": 1},
470 {"matrix": [1, 5], "x": 5.5, "y": 1},
471 {"matrix": [1, 6], "x": 6.5, "y": 1},
472 {"matrix": [1, 7], "x": 7.5, "y": 1},
473 {"matrix": [1, 8], "x": 8.5, "y": 1},
474 {"matrix": [1, 9], "x": 9.5, "y": 1},
475 {"matrix": [1, 10], "x": 10.5, "y": 1},
476 {"matrix": [1, 11], "x": 11.5, "y": 1},
477 {"matrix": [1, 12], "x": 12.5, "y": 1},
478 {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5},
479
480 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
481 {"matrix": [2, 1], "x": 1.75, "y": 2},
482 {"matrix": [2, 2], "x": 2.75, "y": 2},
483 {"matrix": [2, 3], "x": 3.75, "y": 2},
484 {"matrix": [2, 4], "x": 4.75, "y": 2},
485 {"matrix": [2, 5], "x": 5.75, "y": 2},
486 {"matrix": [2, 6], "x": 6.75, "y": 2},
487 {"matrix": [2, 7], "x": 7.75, "y": 2},
488 {"matrix": [2, 8], "x": 8.75, "y": 2},
489 {"matrix": [2, 9], "x": 9.75, "y": 2},
490 {"matrix": [2, 10], "x": 10.75, "y": 2},
491 {"matrix": [2, 11], "x": 11.75, "y": 2},
492 {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
493
494 {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
495 {"matrix": [3, 2], "x": 2.25, "y": 3},
496 {"matrix": [3, 3], "x": 3.25, "y": 3},
497 {"matrix": [3, 4], "x": 4.25, "y": 3},
498 {"matrix": [3, 5], "x": 5.25, "y": 3},
499 {"matrix": [3, 6], "x": 6.25, "y": 3},
500 {"matrix": [3, 7], "x": 7.25, "y": 3},
501 {"matrix": [3, 8], "x": 8.25, "y": 3},
502 {"matrix": [3, 9], "x": 9.25, "y": 3},
503 {"matrix": [3, 10], "x": 10.25, "y": 3},
504 {"matrix": [3, 11], "x": 11.25, "y": 3},
505 {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
506 {"matrix": [3, 13], "x": 14, "y": 3},
507
508 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
509 {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
510 {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
511 {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
512 {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
513 ]
514 },
515 "LAYOUT_60_hhkb": {
516 "layout": [
517 {"matrix": [0, 0], "x": 0, "y": 0},
518 {"matrix": [0, 1], "x": 1, "y": 0},
519 {"matrix": [0, 2], "x": 2, "y": 0},
520 {"matrix": [0, 3], "x": 3, "y": 0},
521 {"matrix": [0, 4], "x": 4, "y": 0},
522 {"matrix": [0, 5], "x": 5, "y": 0},
523 {"matrix": [0, 6], "x": 6, "y": 0},
524 {"matrix": [0, 7], "x": 7, "y": 0},
525 {"matrix": [0, 8], "x": 8, "y": 0},
526 {"matrix": [0, 9], "x": 9, "y": 0},
527 {"matrix": [0, 10], "x": 10, "y": 0},
528 {"matrix": [0, 11], "x": 11, "y": 0},
529 {"matrix": [0, 12], "x": 12, "y": 0},
530 {"matrix": [0, 13], "x": 13, "y": 0},
531 {"matrix": [1, 13], "x": 14, "y": 0},
532
533 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
534 {"matrix": [1, 1], "x": 1.5, "y": 1},
535 {"matrix": [1, 2], "x": 2.5, "y": 1},
536 {"matrix": [1, 3], "x": 3.5, "y": 1},
537 {"matrix": [1, 4], "x": 4.5, "y": 1},
538 {"matrix": [1, 5], "x": 5.5, "y": 1},
539 {"matrix": [1, 6], "x": 6.5, "y": 1},
540 {"matrix": [1, 7], "x": 7.5, "y": 1},
541 {"matrix": [1, 8], "x": 8.5, "y": 1},
542 {"matrix": [1, 9], "x": 9.5, "y": 1},
543 {"matrix": [1, 10], "x": 10.5, "y": 1},
544 {"matrix": [1, 11], "x": 11.5, "y": 1},
545 {"matrix": [1, 12], "x": 12.5, "y": 1},
546 {"matrix": [2, 13], "x": 13.5, "y": 1, "w": 1.5},
547
548 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
549 {"matrix": [2, 1], "x": 1.75, "y": 2},
550 {"matrix": [2, 2], "x": 2.75, "y": 2},
551 {"matrix": [2, 3], "x": 3.75, "y": 2},
552 {"matrix": [2, 4], "x": 4.75, "y": 2},
553 {"matrix": [2, 5], "x": 5.75, "y": 2},
554 {"matrix": [2, 6], "x": 6.75, "y": 2},
555 {"matrix": [2, 7], "x": 7.75, "y": 2},
556 {"matrix": [2, 8], "x": 8.75, "y": 2},
557 {"matrix": [2, 9], "x": 9.75, "y": 2},
558 {"matrix": [2, 10], "x": 10.75, "y": 2},
559 {"matrix": [2, 11], "x": 11.75, "y": 2},
560 {"matrix": [2, 12], "x": 12.75, "y": 2, "w": 2.25},
561
562 {"matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
563 {"matrix": [3, 2], "x": 2.25, "y": 3},
564 {"matrix": [3, 3], "x": 3.25, "y": 3},
565 {"matrix": [3, 4], "x": 4.25, "y": 3},
566 {"matrix": [3, 5], "x": 5.25, "y": 3},
567 {"matrix": [3, 6], "x": 6.25, "y": 3},
568 {"matrix": [3, 7], "x": 7.25, "y": 3},
569 {"matrix": [3, 8], "x": 8.25, "y": 3},
570 {"matrix": [3, 9], "x": 9.25, "y": 3},
571 {"matrix": [3, 10], "x": 10.25, "y": 3},
572 {"matrix": [3, 11], "x": 11.25, "y": 3},
573 {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
574 {"matrix": [3, 13], "x": 14, "y": 3},
575
576 {"matrix": [4, 1], "x": 1.5, "y": 4},
577 {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
578 {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
579 {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
580 {"matrix": [4, 12], "x": 12.5, "y": 4}
581 ]
582 },
583 "LAYOUT_60_iso": {
584 "layout": [
585 {"matrix": [0, 0], "x": 0, "y": 0},
586 {"matrix": [0, 1], "x": 1, "y": 0},
587 {"matrix": [0, 2], "x": 2, "y": 0},
588 {"matrix": [0, 3], "x": 3, "y": 0},
589 {"matrix": [0, 4], "x": 4, "y": 0},
590 {"matrix": [0, 5], "x": 5, "y": 0},
591 {"matrix": [0, 6], "x": 6, "y": 0},
592 {"matrix": [0, 7], "x": 7, "y": 0},
593 {"matrix": [0, 8], "x": 8, "y": 0},
594 {"matrix": [0, 9], "x": 9, "y": 0},
595 {"matrix": [0, 10], "x": 10, "y": 0},
596 {"matrix": [0, 11], "x": 11, "y": 0},
597 {"matrix": [0, 12], "x": 12, "y": 0},
598 {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
599
600 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
601 {"matrix": [1, 1], "x": 1.5, "y": 1},
602 {"matrix": [1, 2], "x": 2.5, "y": 1},
603 {"matrix": [1, 3], "x": 3.5, "y": 1},
604 {"matrix": [1, 4], "x": 4.5, "y": 1},
605 {"matrix": [1, 5], "x": 5.5, "y": 1},
606 {"matrix": [1, 6], "x": 6.5, "y": 1},
607 {"matrix": [1, 7], "x": 7.5, "y": 1},
608 {"matrix": [1, 8], "x": 8.5, "y": 1},
609 {"matrix": [1, 9], "x": 9.5, "y": 1},
610 {"matrix": [1, 10], "x": 10.5, "y": 1},
611 {"matrix": [1, 11], "x": 11.5, "y": 1},
612 {"matrix": [1, 12], "x": 12.5, "y": 1},
613
614 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
615 {"matrix": [2, 1], "x": 1.75, "y": 2},
616 {"matrix": [2, 2], "x": 2.75, "y": 2},
617 {"matrix": [2, 3], "x": 3.75, "y": 2},
618 {"matrix": [2, 4], "x": 4.75, "y": 2},
619 {"matrix": [2, 5], "x": 5.75, "y": 2},
620 {"matrix": [2, 6], "x": 6.75, "y": 2},
621 {"matrix": [2, 7], "x": 7.75, "y": 2},
622 {"matrix": [2, 8], "x": 8.75, "y": 2},
623 {"matrix": [2, 9], "x": 9.75, "y": 2},
624 {"matrix": [2, 10], "x": 10.75, "y": 2},
625 {"matrix": [2, 11], "x": 11.75, "y": 2},
626 {"matrix": [2, 12], "x": 12.75, "y": 2},
627 {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2},
628
629 {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
630 {"matrix": [3, 1], "x": 1.25, "y": 3},
631 {"matrix": [3, 2], "x": 2.25, "y": 3},
632 {"matrix": [3, 3], "x": 3.25, "y": 3},
633 {"matrix": [3, 4], "x": 4.25, "y": 3},
634 {"matrix": [3, 5], "x": 5.25, "y": 3},
635 {"matrix": [3, 6], "x": 6.25, "y": 3},
636 {"matrix": [3, 7], "x": 7.25, "y": 3},
637 {"matrix": [3, 8], "x": 8.25, "y": 3},
638 {"matrix": [3, 9], "x": 9.25, "y": 3},
639 {"matrix": [3, 10], "x": 10.25, "y": 3},
640 {"matrix": [3, 11], "x": 11.25, "y": 3},
641 {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
642
643 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
644 {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
645 {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
646 {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
647 {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
648 {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
649 {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
650 {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
651 ]
652 },
653 "LAYOUT_60_iso_split_bs_rshift": {
654 "layout": [
655 {"matrix": [0, 0], "x": 0, "y": 0},
656 {"matrix": [0, 1], "x": 1, "y": 0},
657 {"matrix": [0, 2], "x": 2, "y": 0},
658 {"matrix": [0, 3], "x": 3, "y": 0},
659 {"matrix": [0, 4], "x": 4, "y": 0},
660 {"matrix": [0, 5], "x": 5, "y": 0},
661 {"matrix": [0, 6], "x": 6, "y": 0},
662 {"matrix": [0, 7], "x": 7, "y": 0},
663 {"matrix": [0, 8], "x": 8, "y": 0},
664 {"matrix": [0, 9], "x": 9, "y": 0},
665 {"matrix": [0, 10], "x": 10, "y": 0},
666 {"matrix": [0, 11], "x": 11, "y": 0},
667 {"matrix": [0, 12], "x": 12, "y": 0},
668 {"matrix": [0, 13], "x": 13, "y": 0},
669 {"matrix": [1, 13], "x": 14, "y": 0},
670
671 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
672 {"matrix": [1, 1], "x": 1.5, "y": 1},
673 {"matrix": [1, 2], "x": 2.5, "y": 1},
674 {"matrix": [1, 3], "x": 3.5, "y": 1},
675 {"matrix": [1, 4], "x": 4.5, "y": 1},
676 {"matrix": [1, 5], "x": 5.5, "y": 1},
677 {"matrix": [1, 6], "x": 6.5, "y": 1},
678 {"matrix": [1, 7], "x": 7.5, "y": 1},
679 {"matrix": [1, 8], "x": 8.5, "y": 1},
680 {"matrix": [1, 9], "x": 9.5, "y": 1},
681 {"matrix": [1, 10], "x": 10.5, "y": 1},
682 {"matrix": [1, 11], "x": 11.5, "y": 1},
683 {"matrix": [1, 12], "x": 12.5, "y": 1},
684
685 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
686 {"matrix": [2, 1], "x": 1.75, "y": 2},
687 {"matrix": [2, 2], "x": 2.75, "y": 2},
688 {"matrix": [2, 3], "x": 3.75, "y": 2},
689 {"matrix": [2, 4], "x": 4.75, "y": 2},
690 {"matrix": [2, 5], "x": 5.75, "y": 2},
691 {"matrix": [2, 6], "x": 6.75, "y": 2},
692 {"matrix": [2, 7], "x": 7.75, "y": 2},
693 {"matrix": [2, 8], "x": 8.75, "y": 2},
694 {"matrix": [2, 9], "x": 9.75, "y": 2},
695 {"matrix": [2, 10], "x": 10.75, "y": 2},
696 {"matrix": [2, 11], "x": 11.75, "y": 2},
697 {"matrix": [2, 12], "x": 12.75, "y": 2},
698 {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2},
699
700 {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
701 {"matrix": [3, 1], "x": 1.25, "y": 3},
702 {"matrix": [3, 2], "x": 2.25, "y": 3},
703 {"matrix": [3, 3], "x": 3.25, "y": 3},
704 {"matrix": [3, 4], "x": 4.25, "y": 3},
705 {"matrix": [3, 5], "x": 5.25, "y": 3},
706 {"matrix": [3, 6], "x": 6.25, "y": 3},
707 {"matrix": [3, 7], "x": 7.25, "y": 3},
708 {"matrix": [3, 8], "x": 8.25, "y": 3},
709 {"matrix": [3, 9], "x": 9.25, "y": 3},
710 {"matrix": [3, 10], "x": 10.25, "y": 3},
711 {"matrix": [3, 11], "x": 11.25, "y": 3},
712 {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
713 {"matrix": [3, 13], "x": 14, "y": 3},
714
715 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
716 {"matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
717 {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
718 {"matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
719 {"matrix": [4, 10], "x": 10, "y": 4, "w": 1.25},
720 {"matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
721 {"matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
722 {"matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
723 ]
724 },
725 "LAYOUT_60_iso_tsangan": {
726 "layout": [
727 {"matrix": [0, 0], "x": 0, "y": 0},
728 {"matrix": [0, 1], "x": 1, "y": 0},
729 {"matrix": [0, 2], "x": 2, "y": 0},
730 {"matrix": [0, 3], "x": 3, "y": 0},
731 {"matrix": [0, 4], "x": 4, "y": 0},
732 {"matrix": [0, 5], "x": 5, "y": 0},
733 {"matrix": [0, 6], "x": 6, "y": 0},
734 {"matrix": [0, 7], "x": 7, "y": 0},
735 {"matrix": [0, 8], "x": 8, "y": 0},
736 {"matrix": [0, 9], "x": 9, "y": 0},
737 {"matrix": [0, 10], "x": 10, "y": 0},
738 {"matrix": [0, 11], "x": 11, "y": 0},
739 {"matrix": [0, 12], "x": 12, "y": 0},
740 {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
741
742 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
743 {"matrix": [1, 1], "x": 1.5, "y": 1},
744 {"matrix": [1, 2], "x": 2.5, "y": 1},
745 {"matrix": [1, 3], "x": 3.5, "y": 1},
746 {"matrix": [1, 4], "x": 4.5, "y": 1},
747 {"matrix": [1, 5], "x": 5.5, "y": 1},
748 {"matrix": [1, 6], "x": 6.5, "y": 1},
749 {"matrix": [1, 7], "x": 7.5, "y": 1},
750 {"matrix": [1, 8], "x": 8.5, "y": 1},
751 {"matrix": [1, 9], "x": 9.5, "y": 1},
752 {"matrix": [1, 10], "x": 10.5, "y": 1},
753 {"matrix": [1, 11], "x": 11.5, "y": 1},
754 {"matrix": [1, 12], "x": 12.5, "y": 1},
755
756 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
757 {"matrix": [2, 1], "x": 1.75, "y": 2},
758 {"matrix": [2, 2], "x": 2.75, "y": 2},
759 {"matrix": [2, 3], "x": 3.75, "y": 2},
760 {"matrix": [2, 4], "x": 4.75, "y": 2},
761 {"matrix": [2, 5], "x": 5.75, "y": 2},
762 {"matrix": [2, 6], "x": 6.75, "y": 2},
763 {"matrix": [2, 7], "x": 7.75, "y": 2},
764 {"matrix": [2, 8], "x": 8.75, "y": 2},
765 {"matrix": [2, 9], "x": 9.75, "y": 2},
766 {"matrix": [2, 10], "x": 10.75, "y": 2},
767 {"matrix": [2, 11], "x": 11.75, "y": 2},
768 {"matrix": [2, 12], "x": 12.75, "y": 2},
769 {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2},
770
771 {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
772 {"matrix": [3, 1], "x": 1.25, "y": 3},
773 {"matrix": [3, 2], "x": 2.25, "y": 3},
774 {"matrix": [3, 3], "x": 3.25, "y": 3},
775 {"matrix": [3, 4], "x": 4.25, "y": 3},
776 {"matrix": [3, 5], "x": 5.25, "y": 3},
777 {"matrix": [3, 6], "x": 6.25, "y": 3},
778 {"matrix": [3, 7], "x": 7.25, "y": 3},
779 {"matrix": [3, 8], "x": 8.25, "y": 3},
780 {"matrix": [3, 9], "x": 9.25, "y": 3},
781 {"matrix": [3, 10], "x": 10.25, "y": 3},
782 {"matrix": [3, 11], "x": 11.25, "y": 3},
783 {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
784
785 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
786 {"matrix": [4, 1], "x": 1.5, "y": 4},
787 {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
788 {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
789 {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
790 {"matrix": [4, 12], "x": 12.5, "y": 4},
791 {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
792 ]
793 },
794 "LAYOUT_60_iso_tsangan_split_bs_rshift": {
795 "layout": [
796 {"matrix": [0, 0], "x": 0, "y": 0},
797 {"matrix": [0, 1], "x": 1, "y": 0},
798 {"matrix": [0, 2], "x": 2, "y": 0},
799 {"matrix": [0, 3], "x": 3, "y": 0},
800 {"matrix": [0, 4], "x": 4, "y": 0},
801 {"matrix": [0, 5], "x": 5, "y": 0},
802 {"matrix": [0, 6], "x": 6, "y": 0},
803 {"matrix": [0, 7], "x": 7, "y": 0},
804 {"matrix": [0, 8], "x": 8, "y": 0},
805 {"matrix": [0, 9], "x": 9, "y": 0},
806 {"matrix": [0, 10], "x": 10, "y": 0},
807 {"matrix": [0, 11], "x": 11, "y": 0},
808 {"matrix": [0, 12], "x": 12, "y": 0},
809 {"matrix": [0, 13], "x": 13, "y": 0},
810 {"matrix": [1, 13], "x": 14, "y": 0},
811
812 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
813 {"matrix": [1, 1], "x": 1.5, "y": 1},
814 {"matrix": [1, 2], "x": 2.5, "y": 1},
815 {"matrix": [1, 3], "x": 3.5, "y": 1},
816 {"matrix": [1, 4], "x": 4.5, "y": 1},
817 {"matrix": [1, 5], "x": 5.5, "y": 1},
818 {"matrix": [1, 6], "x": 6.5, "y": 1},
819 {"matrix": [1, 7], "x": 7.5, "y": 1},
820 {"matrix": [1, 8], "x": 8.5, "y": 1},
821 {"matrix": [1, 9], "x": 9.5, "y": 1},
822 {"matrix": [1, 10], "x": 10.5, "y": 1},
823 {"matrix": [1, 11], "x": 11.5, "y": 1},
824 {"matrix": [1, 12], "x": 12.5, "y": 1},
825
826 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
827 {"matrix": [2, 1], "x": 1.75, "y": 2},
828 {"matrix": [2, 2], "x": 2.75, "y": 2},
829 {"matrix": [2, 3], "x": 3.75, "y": 2},
830 {"matrix": [2, 4], "x": 4.75, "y": 2},
831 {"matrix": [2, 5], "x": 5.75, "y": 2},
832 {"matrix": [2, 6], "x": 6.75, "y": 2},
833 {"matrix": [2, 7], "x": 7.75, "y": 2},
834 {"matrix": [2, 8], "x": 8.75, "y": 2},
835 {"matrix": [2, 9], "x": 9.75, "y": 2},
836 {"matrix": [2, 10], "x": 10.75, "y": 2},
837 {"matrix": [2, 11], "x": 11.75, "y": 2},
838 {"matrix": [2, 12], "x": 12.75, "y": 2},
839 {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2},
840
841 {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
842 {"matrix": [3, 1], "x": 1.25, "y": 3},
843 {"matrix": [3, 2], "x": 2.25, "y": 3},
844 {"matrix": [3, 3], "x": 3.25, "y": 3},
845 {"matrix": [3, 4], "x": 4.25, "y": 3},
846 {"matrix": [3, 5], "x": 5.25, "y": 3},
847 {"matrix": [3, 6], "x": 6.25, "y": 3},
848 {"matrix": [3, 7], "x": 7.25, "y": 3},
849 {"matrix": [3, 8], "x": 8.25, "y": 3},
850 {"matrix": [3, 9], "x": 9.25, "y": 3},
851 {"matrix": [3, 10], "x": 10.25, "y": 3},
852 {"matrix": [3, 11], "x": 11.25, "y": 3},
853 {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
854 {"matrix": [3, 13], "x": 14, "y": 3},
855
856 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
857 {"matrix": [4, 1], "x": 1.5, "y": 4},
858 {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
859 {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
860 {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
861 {"matrix": [4, 12], "x": 12.5, "y": 4},
862 {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
863 ]
864 },
865 "LAYOUT_60_iso_wkl": {
866 "layout": [
867 {"matrix": [0, 0], "x": 0, "y": 0},
868 {"matrix": [0, 1], "x": 1, "y": 0},
869 {"matrix": [0, 2], "x": 2, "y": 0},
870 {"matrix": [0, 3], "x": 3, "y": 0},
871 {"matrix": [0, 4], "x": 4, "y": 0},
872 {"matrix": [0, 5], "x": 5, "y": 0},
873 {"matrix": [0, 6], "x": 6, "y": 0},
874 {"matrix": [0, 7], "x": 7, "y": 0},
875 {"matrix": [0, 8], "x": 8, "y": 0},
876 {"matrix": [0, 9], "x": 9, "y": 0},
877 {"matrix": [0, 10], "x": 10, "y": 0},
878 {"matrix": [0, 11], "x": 11, "y": 0},
879 {"matrix": [0, 12], "x": 12, "y": 0},
880 {"matrix": [0, 13], "x": 13, "y": 0, "w": 2},
881
882 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
883 {"matrix": [1, 1], "x": 1.5, "y": 1},
884 {"matrix": [1, 2], "x": 2.5, "y": 1},
885 {"matrix": [1, 3], "x": 3.5, "y": 1},
886 {"matrix": [1, 4], "x": 4.5, "y": 1},
887 {"matrix": [1, 5], "x": 5.5, "y": 1},
888 {"matrix": [1, 6], "x": 6.5, "y": 1},
889 {"matrix": [1, 7], "x": 7.5, "y": 1},
890 {"matrix": [1, 8], "x": 8.5, "y": 1},
891 {"matrix": [1, 9], "x": 9.5, "y": 1},
892 {"matrix": [1, 10], "x": 10.5, "y": 1},
893 {"matrix": [1, 11], "x": 11.5, "y": 1},
894 {"matrix": [1, 12], "x": 12.5, "y": 1},
895
896 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
897 {"matrix": [2, 1], "x": 1.75, "y": 2},
898 {"matrix": [2, 2], "x": 2.75, "y": 2},
899 {"matrix": [2, 3], "x": 3.75, "y": 2},
900 {"matrix": [2, 4], "x": 4.75, "y": 2},
901 {"matrix": [2, 5], "x": 5.75, "y": 2},
902 {"matrix": [2, 6], "x": 6.75, "y": 2},
903 {"matrix": [2, 7], "x": 7.75, "y": 2},
904 {"matrix": [2, 8], "x": 8.75, "y": 2},
905 {"matrix": [2, 9], "x": 9.75, "y": 2},
906 {"matrix": [2, 10], "x": 10.75, "y": 2},
907 {"matrix": [2, 11], "x": 11.75, "y": 2},
908 {"matrix": [2, 12], "x": 12.75, "y": 2},
909 {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2},
910
911 {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
912 {"matrix": [3, 1], "x": 1.25, "y": 3},
913 {"matrix": [3, 2], "x": 2.25, "y": 3},
914 {"matrix": [3, 3], "x": 3.25, "y": 3},
915 {"matrix": [3, 4], "x": 4.25, "y": 3},
916 {"matrix": [3, 5], "x": 5.25, "y": 3},
917 {"matrix": [3, 6], "x": 6.25, "y": 3},
918 {"matrix": [3, 7], "x": 7.25, "y": 3},
919 {"matrix": [3, 8], "x": 8.25, "y": 3},
920 {"matrix": [3, 9], "x": 9.25, "y": 3},
921 {"matrix": [3, 10], "x": 10.25, "y": 3},
922 {"matrix": [3, 11], "x": 11.25, "y": 3},
923 {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
924
925 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
926 {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
927 {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
928 {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
929 {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
930 ]
931 },
932 "LAYOUT_60_iso_wkl_split_bs_rshift": {
933 "layout": [
934 {"matrix": [0, 0], "x": 0, "y": 0},
935 {"matrix": [0, 1], "x": 1, "y": 0},
936 {"matrix": [0, 2], "x": 2, "y": 0},
937 {"matrix": [0, 3], "x": 3, "y": 0},
938 {"matrix": [0, 4], "x": 4, "y": 0},
939 {"matrix": [0, 5], "x": 5, "y": 0},
940 {"matrix": [0, 6], "x": 6, "y": 0},
941 {"matrix": [0, 7], "x": 7, "y": 0},
942 {"matrix": [0, 8], "x": 8, "y": 0},
943 {"matrix": [0, 9], "x": 9, "y": 0},
944 {"matrix": [0, 10], "x": 10, "y": 0},
945 {"matrix": [0, 11], "x": 11, "y": 0},
946 {"matrix": [0, 12], "x": 12, "y": 0},
947 {"matrix": [0, 13], "x": 13, "y": 0},
948 {"matrix": [1, 13], "x": 14, "y": 0},
949
950 {"matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
951 {"matrix": [1, 1], "x": 1.5, "y": 1},
952 {"matrix": [1, 2], "x": 2.5, "y": 1},
953 {"matrix": [1, 3], "x": 3.5, "y": 1},
954 {"matrix": [1, 4], "x": 4.5, "y": 1},
955 {"matrix": [1, 5], "x": 5.5, "y": 1},
956 {"matrix": [1, 6], "x": 6.5, "y": 1},
957 {"matrix": [1, 7], "x": 7.5, "y": 1},
958 {"matrix": [1, 8], "x": 8.5, "y": 1},
959 {"matrix": [1, 9], "x": 9.5, "y": 1},
960 {"matrix": [1, 10], "x": 10.5, "y": 1},
961 {"matrix": [1, 11], "x": 11.5, "y": 1},
962 {"matrix": [1, 12], "x": 12.5, "y": 1},
963
964 {"matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
965 {"matrix": [2, 1], "x": 1.75, "y": 2},
966 {"matrix": [2, 2], "x": 2.75, "y": 2},
967 {"matrix": [2, 3], "x": 3.75, "y": 2},
968 {"matrix": [2, 4], "x": 4.75, "y": 2},
969 {"matrix": [2, 5], "x": 5.75, "y": 2},
970 {"matrix": [2, 6], "x": 6.75, "y": 2},
971 {"matrix": [2, 7], "x": 7.75, "y": 2},
972 {"matrix": [2, 8], "x": 8.75, "y": 2},
973 {"matrix": [2, 9], "x": 9.75, "y": 2},
974 {"matrix": [2, 10], "x": 10.75, "y": 2},
975 {"matrix": [2, 11], "x": 11.75, "y": 2},
976 {"matrix": [2, 12], "x": 12.75, "y": 2},
977 {"matrix": [2, 13], "x": 13.75, "y": 1, "w": 1.25, "h":2},
978
979 {"matrix": [3, 0], "x": 0, "y": 3, "w": 1.25},
980 {"matrix": [3, 1], "x": 1.25, "y": 3},
981 {"matrix": [3, 2], "x": 2.25, "y": 3},
982 {"matrix": [3, 3], "x": 3.25, "y": 3},
983 {"matrix": [3, 4], "x": 4.25, "y": 3},
984 {"matrix": [3, 5], "x": 5.25, "y": 3},
985 {"matrix": [3, 6], "x": 6.25, "y": 3},
986 {"matrix": [3, 7], "x": 7.25, "y": 3},
987 {"matrix": [3, 8], "x": 8.25, "y": 3},
988 {"matrix": [3, 9], "x": 9.25, "y": 3},
989 {"matrix": [3, 10], "x": 10.25, "y": 3},
990 {"matrix": [3, 11], "x": 11.25, "y": 3},
991 {"matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
992 {"matrix": [3, 13], "x": 14, "y": 3},
993
994 {"matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
995 {"matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
996 {"matrix": [4, 6], "x": 4, "y": 4, "w": 7},
997 {"matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
998 {"matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
999 ]
1000 }
1001 }
1002} \ No newline at end of file
diff --git a/keyboards/studiokestra/fairholme/keymaps/60_ansi/keymap.c b/keyboards/studiokestra/fairholme/keymaps/60_ansi/keymap.c
new file mode 100644
index 0000000000..f240a1c67e
--- /dev/null
+++ b/keyboards/studiokestra/fairholme/keymaps/60_ansi/keymap.c
@@ -0,0 +1,34 @@
1// Copyright 2024 Studio Kestra
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7 /*
8 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
9 * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│
10 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
11 * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ \ │
12 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
13 * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │
14 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤
15 * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │
16 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
17 * │Ctrl│GUI │Alt │ │ Alt│ GUI│ Fn │Ctrl│
18 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
19 */
20 [0] = LAYOUT_60_ansi(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
26 ),
27 [1] = LAYOUT_60_ansi( /* FN */
28 KC_NO, 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,
29 KC_NO, KC_NO, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
30 KC_NO, KC_HOME, KC_PGDN, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO,
31 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
32 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, KC_NO
33 )
34};
diff --git a/keyboards/studiokestra/fairholme/keymaps/60_ansi_split_bs_rshift/keymap.c b/keyboards/studiokestra/fairholme/keymaps/60_ansi_split_bs_rshift/keymap.c
new file mode 100644
index 0000000000..50299b26af
--- /dev/null
+++ b/keyboards/studiokestra/fairholme/keymaps/60_ansi_split_bs_rshift/keymap.c
@@ -0,0 +1,34 @@
1// Copyright 2024 Studio Kestra
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7 /*
8 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
9 * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ | │ ~ │
10 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
11 * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bcksp│
12 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
13 * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │
14 * ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
15 * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Fn │
16 * ├────┬───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
17 * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│
18 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
19 */
20 [0] = LAYOUT_60_ansi_split_bs_rshift(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
24 KC_LSFT, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
26 ),
27 [1] = LAYOUT_60_ansi_split_bs_rshift( /* FN */
28 KC_NO, 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_NO, KC_DEL,
29 KC_NO, KC_NO, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
30 KC_NO, KC_HOME, KC_PGDN, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO,
31 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______,
32 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
33 )
34};
diff --git a/keyboards/studiokestra/fairholme/keymaps/60_iso/keymap.c b/keyboards/studiokestra/fairholme/keymaps/60_iso/keymap.c
new file mode 100644
index 0000000000..67468d4ffb
--- /dev/null
+++ b/keyboards/studiokestra/fairholme/keymaps/60_iso/keymap.c
@@ -0,0 +1,34 @@
1// Copyright 2024 Studio Kestra
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7 /*
8 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐
9 * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ Backsp│
10 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤
11 * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │ │
12 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┐Ent │
13 * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ ` │ │
14 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┴────┤
15 * │Shft│ \ │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │ Shift │
16 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤
17 * │Ctrl│GUI │Alt │ │ Alt│ GUI│ Fn │Ctrl│
18 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
19 */
20 [0] = LAYOUT_60_iso(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSPC,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT,
24 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,
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, MO(1), KC_RCTL
26 ),
27 [1] = LAYOUT_60_iso( /* FN */
28 KC_NO, 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,
29 KC_NO, KC_NO, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO,
30 KC_NO, KC_HOME, KC_PGDN, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO, KC_NO,
31 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
32 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______, KC_NO
33 )
34};
diff --git a/keyboards/studiokestra/fairholme/keymaps/default/keymap.c b/keyboards/studiokestra/fairholme/keymaps/default/keymap.c
new file mode 100644
index 0000000000..15ad875016
--- /dev/null
+++ b/keyboards/studiokestra/fairholme/keymaps/default/keymap.c
@@ -0,0 +1,34 @@
1// Copyright 2024 Studio Kestra
2// SPDX-License-Identifier: GPL-2.0-or-later
3
4#include QMK_KEYBOARD_H
5
6const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
7 /*
8 * ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐
9 * │Esc│ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ 9 │ 0 │ - │ = │ | │ ~ │
10 * ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴───┤
11 * │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │ [ │ ] │Bcksp│
12 * ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤
13 * │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │ ; │ ' │ Enter │
14 * ├────┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────┬───┤
15 * │ Shift │ Z │ X │ C │ V │ B │ N │ M │ , │ . │ / │Shift │Fn │
16 * ├────┼───┴┬──┴─┬─┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬┴───┤
17 * │Ctrl│GUI │Alt │ │ Alt│ GUI│Menu│Ctrl│
18 * └────┴────┴────┴────────────────────────┴────┴────┴────┴────┘
19 */
20 [0] = LAYOUT_all(
21 KC_ESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_BSLS, KC_GRV,
22 KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSPC,
23 KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_ENT,
24 KC_LSFT, KC_NO, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RSFT, MO(1),
25 KC_LCTL, KC_LGUI, KC_LALT, KC_SPC, KC_RALT, KC_RGUI, KC_APP, KC_RCTL
26 ),
27 [1] = LAYOUT_all( /* FN */
28 KC_NO, 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_NO, KC_DEL,
29 KC_NO, KC_NO, KC_PGUP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_UP, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO,
30 KC_NO, KC_HOME, KC_PGDN, KC_END, KC_NO, KC_NO, KC_NO, KC_LEFT, KC_DOWN, KC_RGHT, KC_NO, KC_NO, KC_NO,
31 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, _______,
32 KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO, KC_NO
33 )
34};
diff --git a/keyboards/studiokestra/fairholme/readme.md b/keyboards/studiokestra/fairholme/readme.md
new file mode 100644
index 0000000000..b5b92bacc2
--- /dev/null
+++ b/keyboards/studiokestra/fairholme/readme.md
@@ -0,0 +1,27 @@
1# studiokestra/fairholme
2
3![studiokestra/fairholme](https://i.imgur.com/Ep6wkgS.png)
4
560% PCB developed as a successor to Cascade PCB powered by STM32F072.
6
7* Keyboard Maintainer: [studiokestra](https://github.com/studiokestra)
8* Hardware Supported: Geonworks F2-60
9* Hardware Availability: https://geon.works
10
11Make example for this keyboard (after setting up your build environment):
12
13 make studiokestra/fairholme:default
14
15Flashing example for this keyboard:
16
17 make studiokestra/fairholme: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 (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
26* **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
27* **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available