Skip to content

Commit 6a9e657

Browse files
fix: computer keyboard language-independent playbility
1 parent 4daa424 commit 6a9e657

2 files changed

Lines changed: 18 additions & 85 deletions

File tree

src/functions/keyMapper.ts

Lines changed: 16 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -15,104 +15,37 @@
1515

1616
export default function keyMapper(key: string, base: number) {
1717
switch (key) {
18-
// Lowercase
19-
case "a":
18+
case "KeyA":
2019
return base;
21-
break;
22-
case "w":
20+
case "KeyW":
2321
return base + 1;
24-
break;
25-
case "s":
22+
case "KeyS":
2623
return base + 2;
27-
break;
28-
case "e":
24+
case "KeyE":
2925
return base + 3;
30-
break;
31-
case "d":
26+
case "KeyD":
3227
return base + 4;
33-
break;
34-
case "f":
28+
case "KeyF":
3529
return base + 5;
36-
break;
37-
case "t":
30+
case "KeyT":
3831
return base + 6;
39-
break;
40-
case "g":
32+
case "KeyG":
4133
return base + 7;
42-
break;
43-
case "y":
34+
case "KeyY":
4435
return base + 8;
45-
break;
46-
case "h":
36+
case "KeyH":
4737
return base + 9;
48-
break;
49-
case "u":
38+
case "KeyU":
5039
return base + 10;
51-
break;
52-
case "j":
40+
case "KeyJ":
5341
return base + 11;
54-
break;
55-
case "k":
42+
case "KeyK":
5643
return base + 12;
57-
break;
58-
case "o":
44+
case "KeyO":
5945
return base + 13;
60-
break;
61-
case "l":
46+
case "KeyL":
6247
return base + 14;
63-
break;
64-
case "p":
48+
case "KeyP":
6549
return base + 15;
66-
break;
67-
68-
// Uppercase
69-
case "A":
70-
return base;
71-
break;
72-
case "W":
73-
return base + 1;
74-
break;
75-
case "S":
76-
return base + 2;
77-
break;
78-
case "E":
79-
return base + 3;
80-
break;
81-
case "D":
82-
return base + 4;
83-
break;
84-
case "F":
85-
return base + 5;
86-
break;
87-
case "T":
88-
return base + 6;
89-
break;
90-
case "G":
91-
return base + 7;
92-
break;
93-
case "Y":
94-
return base + 8;
95-
break;
96-
case "H":
97-
return base + 9;
98-
break;
99-
case "U":
100-
return base + 10;
101-
break;
102-
case "J":
103-
return base + 11;
104-
break;
105-
case "K":
106-
return base + 12;
107-
break;
108-
case "O":
109-
return base + 13;
110-
break;
111-
case "L":
112-
return base + 14;
113-
break;
114-
case "P":
115-
return base + 15;
116-
break;
11750
}
11851
}

src/jss.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1817,7 +1817,7 @@ document.addEventListener("keydown", (event) => {
18171817
if (event.target === seqInput) {
18181818
return;
18191819
}
1820-
const keyIndex = keyMapper(event.key, base);
1820+
const keyIndex = keyMapper(event.code, base);
18211821
if (
18221822
keyIndex >= 0 &&
18231823
keyIndex <= 87 &&
@@ -1828,7 +1828,7 @@ document.addEventListener("keydown", (event) => {
18281828
});
18291829

18301830
document.addEventListener("keyup", (event) => {
1831-
const keyIndex = keyMapper(event.key, base);
1831+
const keyIndex = keyMapper(event.code, base);
18321832
if (keyIndex >= 0 && keyIndex <= 87 && keyboard.keys[keyIndex]._state.state) {
18331833
keyboard.toggleIndex(keyIndex, false);
18341834
}

0 commit comments

Comments
 (0)