mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-07 12:21:52 +09:00
291 lines
4.5 KiB
Plaintext
291 lines
4.5 KiB
Plaintext
let states = {"keylayouts":[[""],[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
["0",")","}","`"],
|
||
["1","!","!","|"],
|
||
["2",'"',"@",'"'],
|
||
["3","¤","#","£"],
|
||
["4","%","$","€"],
|
||
["5",":","%","∞"],
|
||
["6",",","^","¬"],
|
||
["7",".","&","¶"],
|
||
["8",";","*","√"],
|
||
["9","(","{","'"],
|
||
["*"],
|
||
["#"],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
["ф","Ф","ƒ","ƒ"],
|
||
["и","И","и","И"],
|
||
["с","С","≠","≠"],
|
||
["в","В","ћ","Ћ"],
|
||
["у","У","ќ","Ќ"],
|
||
["а","А","÷","÷"],
|
||
["п","П","©","©"],
|
||
["р","Р","₽","₽"],
|
||
["ш","Ш","ѕ","Ѕ"],
|
||
["о","О","°","•"],
|
||
["л","Л","љ","Љ"],
|
||
["д","Д","Δ","Δ"],
|
||
["ь","Ь","~","~"],
|
||
["т","Т","™","™"],
|
||
["щ","Щ","ў","Ў"],
|
||
["з","З","‘","‘"],
|
||
["й","Й","ј","Ј"],
|
||
["к","К","®","®"],
|
||
["ы","Ы","¤","¤"],
|
||
["е","Е","†","†"],
|
||
["г","Г","ѓ","Ѓ"],
|
||
["м","М","µ","µ"],
|
||
["ц","Ц","џ","Џ"],
|
||
["ч","Ч","≈","≈"],
|
||
["н","Н","њ","Њ"],
|
||
["я","Я","ђ","Ђ"],
|
||
["б","Б","≤","<"],
|
||
["ю","Ю","≥",">"],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[" "],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
["\n"],
|
||
["\x08"],
|
||
[">","<","]","["],
|
||
["-","_","—","–"],
|
||
["=","+","»","«"],
|
||
["х","Х","“","“"],
|
||
["ъ","Ъ","ъ","Ъ"],
|
||
["ё","Ё","ё","Ё"],
|
||
["ж","Ж","…","…"],
|
||
["э",'Э',"э",'Э'],
|
||
["/","?","„","„"],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
["0"],
|
||
["1"],
|
||
["2"],
|
||
["3"],
|
||
["4"],
|
||
["5"],
|
||
["6"],
|
||
["7"],
|
||
["8"],
|
||
["9"],
|
||
["/"],
|
||
["*"],
|
||
["-"],
|
||
["+"],
|
||
["."],
|
||
["."],
|
||
["\n"],
|
||
["="],
|
||
["("],
|
||
[")"],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined],
|
||
[undefined]
|
||
],
|
||
"code":0} // practically unused as long as there are no diacritics on the keyboard
|
||
let reset = () => {
|
||
states.code = 0
|
||
}
|
||
let inRange = (s,a,b) => (a <= s && s <= b)
|
||
let isDiacritics = (s) => s !== undefined && inRange(s.charCodeAt(0), 0x0300, 0x036F)
|
||
return Object.freeze({"n":"ЙЦУКЕН (Рус. Apple)","v":"none","c":"CuriousTo\uA75Bvald","m":"rewrite",
|
||
"t":states.keylayouts,
|
||
"l":"ruRU",
|
||
// return: [displayed output, composed output]
|
||
"accept":(headkey,shiftin,altgrin)=>{
|
||
let layer = 1*shiftin + 2*altgrin
|
||
states.code = 1
|
||
|
||
let s = (states.keylayouts[headkey][layer] || states.keylayouts[headkey][1*shiftin]) || states.keylayouts[headkey][0]
|
||
|
||
if (isDiacritics(s)) {
|
||
return ['1', '']
|
||
}
|
||
else {
|
||
reset()
|
||
return ['0', s]
|
||
}
|
||
},
|
||
"backspace":()=>{
|
||
reset()
|
||
return ''
|
||
},
|
||
"end":()=>{
|
||
reset()
|
||
return ''
|
||
},
|
||
"reset":()=>{ reset() },
|
||
"composing":()=>(states.code!=0)
|
||
}) |