mirror of
https://github.com/monkeytypegame/monkeytype.git
synced 2024-09-22 00:06:16 +08:00
Fixed non-qwerty layouts with layout emulator
This commit is contained in:
parent
6e206d3daa
commit
d138775563
|
@ -17,7 +17,7 @@ const layouts = {
|
|||
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
|
||||
"qQ","wW","fF","pP","gG","jJ","lL","uU","yY",";:","[{","]}","\\|",
|
||||
"aA","rR","sS","tT","dD","hH","nN","eE","iI","oO","'\"",
|
||||
"zZ","xX","cC","vV","bB","Kk","mM",",<",".>","/?",
|
||||
"zZ","xX","cC","vV","bB","kK","mM",",<",".>","/?",
|
||||
" "
|
||||
]
|
||||
}
|
|
@ -148,26 +148,28 @@ function initWords() {
|
|||
function emulateLayout(event){
|
||||
if (config.layout == "qwerty")
|
||||
return event;
|
||||
const qwertyMasterLayout = {"Backquote":"`~","Digit1":"1!","Digit2":"2@","Digit3":"3#","Digit4":"4$","Digit5":"5%","Digit6":"6^","Digit7":"7&","Digit8":"8*","Digit9":"9(","Digit0":"0)","Minus":"-_","Equal":"=+","KeyQ":"qQ","KeyW":"wW","KeyE":"eE","KeyR":"rR","KeyT":"tT","KeyY":"yY","KeyU":"uU","KeyI":"iI","KeyO":"oO","KeyP":"pP","BracketLeft":"[{","BracketRight":"]}","KeyA":"aA","KeyS":"sS","KeyD":"dD","KeyF":"fF","KeyH":"hH","KeyJ":"jJ","KeyK":"kK","KeyL":"lL","Semicolon":";:","Quote":"'\"","Backslash":"\\|","KeyZ":"zZ","KeyX":"xX","KeyC":"cC","KeyV":"vV","KeyB":"bB","KeyN":"nN","KeyM":"mM","Comma":",<","Period":".>","Slash":"/?","Space":" "}
|
||||
let layoutMap = layouts[config.layout];
|
||||
let qwertyMap = layouts["qwerty"];
|
||||
|
||||
let qwertyKey = qwertyMasterLayout[event.code];
|
||||
let mapIndex;
|
||||
let newKey;
|
||||
let shift = false;
|
||||
let shift = event.shiftKey ? 1 : 0;
|
||||
for (let i = 0; i < qwertyMap.length; i++) {
|
||||
const key = qwertyMap[i];
|
||||
let keyIndex = key.indexOf(event.key);
|
||||
let keyIndex = key.indexOf(qwertyKey);
|
||||
if (keyIndex != -1){
|
||||
mapIndex = i;
|
||||
shift = keyIndex;
|
||||
}
|
||||
}
|
||||
|
||||
if (!shift && /[A-Z]/gm.test(event.key)){
|
||||
shift = 1;
|
||||
}
|
||||
newKey = layoutMap[mapIndex][shift];
|
||||
event.keyCode = newKey.charCodeAt(0);
|
||||
event.charCode = newKey.charCodeAt(0);
|
||||
event.which = newKey.charCodeAt(0);
|
||||
event.code = `key${newKey}`;
|
||||
event.key = newKey;
|
||||
return event;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue