Merge pull request #109 from xZa-k:master

Layout emulation supports all system layouts
This commit is contained in:
Jack 2020-06-03 23:29:17 +01:00 committed by GitHub
commit 3dbd10cea8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 9 deletions

View file

@ -1,4 +1,5 @@
const layouts = {
default: [],
qwerty: [
"`~","1!","2@","3#","4$","5%","6^","7&","8*","9(","0)","-_","=+",
"qQ","wW","eE","rR","tT","yY","uU","iI","oO","pP","[{","]}","\\|",
@ -17,7 +18,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",",<",".>","/?",
" "
]
}

View file

@ -146,28 +146,30 @@ function initWords() {
}
function emulateLayout(event){
if (config.layout == "qwerty")
if (config.layout == "default")
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","KeyG":"gG","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;
}

View file

@ -18,7 +18,7 @@ let config = {
quickEnd: false,
caretStyle: "default",
flipTestColors: false,
layout:"qwerty"
layout:"default"
}
//cookies
@ -67,7 +67,7 @@ function loadConfigFromCookie() {
saveConfigToCookie();
}
if(config.layout == undefined){
config.layout = "qwerty";
config.layout = "default";
saveConfigToCookie();
}
}