Skip to content

Commit a7e09c4

Browse files
committed
feat: add more keyboard geometries
1 parent 5fb7060 commit a7e09c4

File tree

11 files changed

+735
-7
lines changed

11 files changed

+735
-7
lines changed

packages/keybr-keyboard-generator/lib/cldr.ts

+1
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ const keyMapping: {
6161
B08: "Comma",
6262
B09: "Period",
6363
B10: "Slash",
64+
B11: "IntlRo",
6465
// Row A
6566
A03: "Space",
6667
};

packages/keybr-keyboard-ui/lib/keys.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ const standard = new Map<string, ReactNode>([
4343
<Symbol x={0} y={34} text="ローマ字" />
4444
</>,
4545
],
46+
["Lang1", <Symbol x={5} y={25} text="한/영" />],
47+
["Lang2", <Symbol x={10} y={25} text="한자" />],
4648
[
4749
"PageUp",
4850
<>

packages/keybr-keyboard/lib/data/geometry.ts

+4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
1+
export { BRAZILIAN_104 } from "./geometry/brazilian_104.ts";
2+
export { BRAZILIAN_104_FULL } from "./geometry/brazilian_104_full.ts";
13
export { JAPANESE_106 } from "./geometry/japanese_106.ts";
24
export { JAPANESE_106_FULL } from "./geometry/japanese_106_full.ts";
5+
export { KOREAN_103 } from "./geometry/korean_103.ts";
6+
export { KOREAN_103_FULL } from "./geometry/korean_103_full.ts";
37
export { MATRIX } from "./geometry/matrix.ts";
48
export { STANDARD_101 } from "./geometry/standard_101.ts";
59
export { STANDARD_101_FULL } from "./geometry/standard_101_full.ts";
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,330 @@
1+
import { type GeometryDict } from "../../types.ts";
2+
3+
// See https://www.w3.org/TR/uievents-code/#keyboard-104
4+
export const BRAZILIAN_104: GeometryDict = {
5+
Backquote: {
6+
x: 0,
7+
y: 0,
8+
finger: "pinky",
9+
},
10+
Digit1: {
11+
x: 1,
12+
y: 0,
13+
finger: "pinky",
14+
},
15+
Digit2: {
16+
x: 2,
17+
y: 0,
18+
finger: "ring",
19+
},
20+
Digit3: {
21+
x: 3,
22+
y: 0,
23+
finger: "middle",
24+
},
25+
Digit4: {
26+
x: 4,
27+
y: 0,
28+
finger: "indexLeft",
29+
},
30+
Digit5: {
31+
x: 5,
32+
y: 0,
33+
finger: "indexLeft",
34+
},
35+
Digit6: {
36+
x: 6,
37+
y: 0,
38+
finger: "indexRight",
39+
},
40+
Digit7: {
41+
x: 7,
42+
y: 0,
43+
finger: "indexRight",
44+
},
45+
Digit8: {
46+
x: 8,
47+
y: 0,
48+
finger: "middle",
49+
},
50+
Digit9: {
51+
x: 9,
52+
y: 0,
53+
finger: "ring",
54+
},
55+
Digit0: {
56+
x: 10,
57+
y: 0,
58+
finger: "pinky",
59+
},
60+
Minus: {
61+
x: 11,
62+
y: 0,
63+
finger: "pinky",
64+
},
65+
Equal: {
66+
x: 12,
67+
y: 0,
68+
finger: "pinky",
69+
},
70+
Backspace: {
71+
x: 13,
72+
y: 0,
73+
w: 2,
74+
h: 1,
75+
finger: "pinky",
76+
},
77+
Tab: {
78+
x: 0,
79+
y: 1,
80+
w: 1.5,
81+
h: 1,
82+
finger: "pinky",
83+
},
84+
KeyQ: {
85+
x: 1.5,
86+
y: 1,
87+
finger: "pinky",
88+
},
89+
KeyW: {
90+
x: 2.5,
91+
y: 1,
92+
finger: "ring",
93+
},
94+
KeyE: {
95+
x: 3.5,
96+
y: 1,
97+
finger: "middle",
98+
},
99+
KeyR: {
100+
x: 4.5,
101+
y: 1,
102+
finger: "indexLeft",
103+
},
104+
KeyT: {
105+
x: 5.5,
106+
y: 1,
107+
finger: "indexLeft",
108+
},
109+
KeyY: {
110+
x: 6.5,
111+
y: 1,
112+
finger: "indexRight",
113+
},
114+
KeyU: {
115+
x: 7.5,
116+
y: 1,
117+
finger: "indexRight",
118+
},
119+
KeyI: {
120+
x: 8.5,
121+
y: 1,
122+
finger: "middle",
123+
},
124+
KeyO: {
125+
x: 9.5,
126+
y: 1,
127+
finger: "ring",
128+
},
129+
KeyP: {
130+
x: 10.5,
131+
y: 1,
132+
finger: "pinky",
133+
},
134+
BracketLeft: {
135+
x: 11.5,
136+
y: 1,
137+
finger: "pinky",
138+
},
139+
BracketRight: {
140+
x: 12.5,
141+
y: 1,
142+
finger: "pinky",
143+
},
144+
Enter: {
145+
x: 13.5,
146+
y: 1,
147+
w: 1.5,
148+
h: 2,
149+
shape: "m 0,0 0,38 10,0 0,40 48,0 0,-80 z",
150+
finger: "pinky",
151+
},
152+
CapsLock: {
153+
x: 0,
154+
y: 2,
155+
w: 1.75,
156+
h: 1,
157+
finger: "pinky",
158+
},
159+
KeyA: {
160+
x: 1.75,
161+
y: 2,
162+
finger: "pinky",
163+
},
164+
KeyS: {
165+
x: 2.75,
166+
y: 2,
167+
finger: "ring",
168+
},
169+
KeyD: {
170+
x: 3.75,
171+
y: 2,
172+
finger: "middle",
173+
},
174+
KeyF: {
175+
x: 4.75,
176+
y: 2,
177+
finger: "indexLeft",
178+
features: ["homing"],
179+
},
180+
KeyG: {
181+
x: 5.75,
182+
y: 2,
183+
finger: "indexLeft",
184+
},
185+
KeyH: {
186+
x: 6.75,
187+
y: 2,
188+
finger: "indexRight",
189+
},
190+
KeyJ: {
191+
x: 7.75,
192+
y: 2,
193+
finger: "indexRight",
194+
features: ["homing"],
195+
},
196+
KeyK: {
197+
x: 8.75,
198+
y: 2,
199+
finger: "middle",
200+
},
201+
KeyL: {
202+
x: 9.75,
203+
y: 2,
204+
finger: "ring",
205+
},
206+
Semicolon: {
207+
x: 10.75,
208+
y: 2,
209+
finger: "pinky",
210+
},
211+
Quote: {
212+
x: 11.75,
213+
y: 2,
214+
finger: "pinky",
215+
},
216+
Backslash: {
217+
x: 12.75,
218+
y: 2,
219+
finger: "pinky",
220+
},
221+
ShiftLeft: {
222+
x: 0,
223+
y: 3,
224+
w: 1.25,
225+
h: 1,
226+
finger: "pinky",
227+
},
228+
IntlBackslash: {
229+
x: 1.25,
230+
y: 3,
231+
finger: "pinky",
232+
},
233+
KeyZ: {
234+
x: 2.25,
235+
y: 3,
236+
finger: "pinky",
237+
},
238+
KeyX: {
239+
x: 3.25,
240+
y: 3,
241+
finger: "ring",
242+
},
243+
KeyC: {
244+
x: 4.25,
245+
y: 3,
246+
finger: "middle",
247+
},
248+
KeyV: {
249+
x: 5.25,
250+
y: 3,
251+
finger: "indexLeft",
252+
},
253+
KeyB: {
254+
x: 6.25,
255+
y: 3,
256+
finger: "indexLeft",
257+
},
258+
KeyN: {
259+
x: 7.25,
260+
y: 3,
261+
finger: "indexRight",
262+
},
263+
KeyM: {
264+
x: 8.25,
265+
y: 3,
266+
finger: "indexRight",
267+
},
268+
Comma: {
269+
x: 9.25,
270+
y: 3,
271+
finger: "middle",
272+
},
273+
Period: {
274+
x: 10.25,
275+
y: 3,
276+
finger: "ring",
277+
},
278+
Slash: {
279+
x: 11.25,
280+
y: 3,
281+
finger: "pinky",
282+
},
283+
IntlRo: {
284+
x: 12.25,
285+
y: 3,
286+
finger: "pinky",
287+
},
288+
ShiftRight: {
289+
x: 13.25,
290+
y: 3,
291+
w: 1.75,
292+
h: 1,
293+
finger: "pinky",
294+
},
295+
ControlLeft: {
296+
x: 0,
297+
y: 4,
298+
w: 1.5,
299+
h: 1,
300+
finger: "pinky",
301+
},
302+
AltLeft: {
303+
x: 1.5,
304+
y: 4,
305+
w: 1.5,
306+
h: 1,
307+
finger: "pinky",
308+
},
309+
Space: {
310+
x: 3,
311+
y: 4,
312+
w: 9,
313+
h: 1,
314+
finger: "thumb",
315+
},
316+
AltRight: {
317+
x: 12,
318+
y: 4,
319+
w: 1.5,
320+
h: 1,
321+
finger: "pinky",
322+
},
323+
ControlRight: {
324+
x: 13.5,
325+
y: 4,
326+
w: 1.5,
327+
h: 1,
328+
finger: "pinky",
329+
},
330+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { type GeometryDict } from "../../types.ts";
2+
import { BRAZILIAN_104 } from "./brazilian_104.ts";
3+
import { EXTRA } from "./extra.ts";
4+
5+
export const BRAZILIAN_104_FULL: GeometryDict = {
6+
...BRAZILIAN_104,
7+
...EXTRA,
8+
};

0 commit comments

Comments
 (0)