Compare commits
24 Commits
Author | SHA1 | Date | |
---|---|---|---|
45f9df45bb | |||
349cd91f66 | |||
5fbef47dde | |||
0b2415ac40 | |||
bf090a5b67 | |||
cd5638b988 | |||
39176aac3c | |||
02aa4cd6c2 | |||
47d8950fd4 | |||
9d04ddc8be | |||
394b44e9df | |||
2697df4352 | |||
f882f599ff | |||
f264f9c017 | |||
6b6b3db9cc | |||
b08c2fa792 | |||
8b4a2dc9f9 | |||
ef46068793 | |||
7b401e28b8 | |||
ef37cc4317 | |||
be99ea3d81 | |||
4cbe2d8e67 | |||
586e3d2010 | |||
cd28bee157 |
377
blank_keymap
377
blank_keymap
@ -1,377 +0,0 @@
|
|||||||
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 39
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 30
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 31
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 32
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 33
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 34
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 35
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 36
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 37
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 38
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 53
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 47
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 48
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 52
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 54
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 55
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 19
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 28
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 9
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 10
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 6
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 21
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 15
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 56
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 46
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 49
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 4
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 18
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 8
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 24
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 12
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 7
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 11
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 23
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 17
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 22
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 45
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 51
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 20
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 13
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 14
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 27
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 5
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 16
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 26
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 25
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"key": 29
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 53
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 30
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 31
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 32
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 33
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 34
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 35
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 36
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 37
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 38
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 39
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 47
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 48
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 52
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 54
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 55
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 19
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 28
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 9
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 10
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 6
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 21
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 15
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 56
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 46
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 49
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 4
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 18
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 8
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 24
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 12
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 7
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 11
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 23
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 17
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 22
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 45
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 51
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 20
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 13
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 14
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 27
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 5
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 16
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 26
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 25
|
|
||||||
},
|
|
||||||
: {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"key": 29
|
|
||||||
}
|
|
378
dvorak.json
378
dvorak.json
@ -1,378 +0,0 @@
|
|||||||
{
|
|
||||||
"0" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 39
|
|
||||||
},
|
|
||||||
"1" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 30
|
|
||||||
},
|
|
||||||
"2" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 31
|
|
||||||
},
|
|
||||||
"3" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 32
|
|
||||||
},
|
|
||||||
"4" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 33
|
|
||||||
},
|
|
||||||
"5" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 34
|
|
||||||
},
|
|
||||||
"6" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 35
|
|
||||||
},
|
|
||||||
"7" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 36
|
|
||||||
},
|
|
||||||
"8" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 37
|
|
||||||
},
|
|
||||||
"9" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 38
|
|
||||||
},
|
|
||||||
"`" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 53
|
|
||||||
},
|
|
||||||
"/" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 47
|
|
||||||
},
|
|
||||||
"=" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 48
|
|
||||||
},
|
|
||||||
"-" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 52
|
|
||||||
},
|
|
||||||
"w" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 54
|
|
||||||
},
|
|
||||||
"v" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 55
|
|
||||||
},
|
|
||||||
"l" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 19
|
|
||||||
},
|
|
||||||
"f" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 28
|
|
||||||
},
|
|
||||||
"u" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 9
|
|
||||||
},
|
|
||||||
"i" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 10
|
|
||||||
},
|
|
||||||
"j" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 6
|
|
||||||
},
|
|
||||||
"p" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 21
|
|
||||||
},
|
|
||||||
"n" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 15
|
|
||||||
},
|
|
||||||
"z" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 56
|
|
||||||
},
|
|
||||||
"]" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 46
|
|
||||||
},
|
|
||||||
"\\" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 49
|
|
||||||
},
|
|
||||||
"a" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 4
|
|
||||||
},
|
|
||||||
"r" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 18
|
|
||||||
},
|
|
||||||
"." : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 8
|
|
||||||
},
|
|
||||||
"g" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 24
|
|
||||||
},
|
|
||||||
"c" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 12
|
|
||||||
},
|
|
||||||
"e" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 7
|
|
||||||
},
|
|
||||||
"d" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 11
|
|
||||||
},
|
|
||||||
"y" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 23
|
|
||||||
},
|
|
||||||
"b" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 17
|
|
||||||
},
|
|
||||||
"o" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 22
|
|
||||||
},
|
|
||||||
"[" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 45
|
|
||||||
},
|
|
||||||
"s" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 51
|
|
||||||
},
|
|
||||||
"'" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 20
|
|
||||||
},
|
|
||||||
"h" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 13
|
|
||||||
},
|
|
||||||
"t" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 14
|
|
||||||
},
|
|
||||||
"q" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 27
|
|
||||||
},
|
|
||||||
"x" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 5
|
|
||||||
},
|
|
||||||
"m" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 16
|
|
||||||
},
|
|
||||||
"," : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 26
|
|
||||||
},
|
|
||||||
"k" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 25
|
|
||||||
},
|
|
||||||
";" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 29
|
|
||||||
},
|
|
||||||
"~" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 53
|
|
||||||
},
|
|
||||||
"!" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 30
|
|
||||||
},
|
|
||||||
"@" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 31
|
|
||||||
},
|
|
||||||
"#" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 32
|
|
||||||
},
|
|
||||||
"$" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 33
|
|
||||||
},
|
|
||||||
"%" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 34
|
|
||||||
},
|
|
||||||
"^" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 35
|
|
||||||
},
|
|
||||||
"&" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 36
|
|
||||||
},
|
|
||||||
"*" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 37
|
|
||||||
},
|
|
||||||
"(" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 38
|
|
||||||
},
|
|
||||||
")" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 39
|
|
||||||
},
|
|
||||||
"?" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 47
|
|
||||||
},
|
|
||||||
"+" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 48
|
|
||||||
},
|
|
||||||
"_" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 52
|
|
||||||
},
|
|
||||||
"W" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 54
|
|
||||||
},
|
|
||||||
"V" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 55
|
|
||||||
},
|
|
||||||
"L" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 19
|
|
||||||
},
|
|
||||||
"F" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 28
|
|
||||||
},
|
|
||||||
"U" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 9
|
|
||||||
},
|
|
||||||
"I" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 10
|
|
||||||
},
|
|
||||||
"J" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 6
|
|
||||||
},
|
|
||||||
"P" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 21
|
|
||||||
},
|
|
||||||
"N" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 15
|
|
||||||
},
|
|
||||||
"Z" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 56
|
|
||||||
},
|
|
||||||
"}" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 46
|
|
||||||
},
|
|
||||||
"|" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 49
|
|
||||||
},
|
|
||||||
"A" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 4
|
|
||||||
},
|
|
||||||
"R" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 18
|
|
||||||
},
|
|
||||||
">" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 8
|
|
||||||
},
|
|
||||||
"G" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 24
|
|
||||||
},
|
|
||||||
"C" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 12
|
|
||||||
},
|
|
||||||
"E" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 7
|
|
||||||
},
|
|
||||||
"D" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 11
|
|
||||||
},
|
|
||||||
"Y" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 23
|
|
||||||
},
|
|
||||||
"B" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 17
|
|
||||||
},
|
|
||||||
"O" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 22
|
|
||||||
},
|
|
||||||
"{" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 45
|
|
||||||
},
|
|
||||||
"S" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 51
|
|
||||||
},
|
|
||||||
"\"" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 20
|
|
||||||
},
|
|
||||||
"H" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 13
|
|
||||||
},
|
|
||||||
"T" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 14
|
|
||||||
},
|
|
||||||
"Q" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 27
|
|
||||||
},
|
|
||||||
"X" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 5
|
|
||||||
},
|
|
||||||
"M" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 16
|
|
||||||
},
|
|
||||||
"<" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 26
|
|
||||||
},
|
|
||||||
"K" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 25
|
|
||||||
},
|
|
||||||
":" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 29
|
|
||||||
}
|
|
||||||
}
|
|
274
ghid/keyboard.go
Normal file
274
ghid/keyboard.go
Normal file
@ -0,0 +1,274 @@
|
|||||||
|
package hid
|
||||||
|
|
||||||
|
import (
|
||||||
|
"bytes"
|
||||||
|
"encoding/json"
|
||||||
|
"fmt"
|
||||||
|
"io"
|
||||||
|
"io/ioutil"
|
||||||
|
"path"
|
||||||
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
"time"
|
||||||
|
"unicode"
|
||||||
|
"unicode/utf8"
|
||||||
|
)
|
||||||
|
|
||||||
|
type syncer interface {
|
||||||
|
Sync() error
|
||||||
|
}
|
||||||
|
|
||||||
|
// A Key is a USB HID value
|
||||||
|
type Key struct {
|
||||||
|
Modifier []string `json:"modifier"`
|
||||||
|
Decimal byte `json:"decimal"`
|
||||||
|
PressDelayDelimiter bool `json:"pressDelayDelimiter,omitempty"`
|
||||||
|
ReleaseDelayDelimiter bool `json:"releaseDelayDelimiter,omitempty"`
|
||||||
|
Comment bool `json:"comment,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
// A Keymap is a json representation of the unicode rune mapped to its USB HID value
|
||||||
|
type Keymap map[string]Key
|
||||||
|
|
||||||
|
// Keyboard is a type to attach the methods to if someone wants to use it
|
||||||
|
type Keyboard struct{}
|
||||||
|
|
||||||
|
// bit flag of modifier keys
|
||||||
|
const (
|
||||||
|
LCTRL byte = 1 << iota
|
||||||
|
LSHIFT
|
||||||
|
LALT
|
||||||
|
LSUPER
|
||||||
|
RCTRL
|
||||||
|
RSHIFT
|
||||||
|
RALT
|
||||||
|
RSUPER
|
||||||
|
NONE = 0
|
||||||
|
)
|
||||||
|
|
||||||
|
var (
|
||||||
|
PressDelay time.Duration // PressDelay is the time in ms to delay before sending a press event
|
||||||
|
ReleaseDelay time.Duration // ReleaseDelay is the time in ms to wait before sending the release event
|
||||||
|
KeymapOrder []string // Keymap Order is the order in which the specified keymaps cycle on the computer
|
||||||
|
KeymapShortcut [8]byte // KeymapShortcut is the key combo that will cycle the current keymap by one
|
||||||
|
ErrOnUnknownKey bool // ErrOnUnknownKey whether or not to fail if the unicode rune is invalid or is not in the specified keymaps
|
||||||
|
KeymapPath string // KeymapPath is the pathe to where the keymap files are stored
|
||||||
|
|
||||||
|
currentKeyMap int
|
||||||
|
keys = make(map[string]Keymap)
|
||||||
|
flags = map[string]byte{
|
||||||
|
"LSHIFT": LSHIFT,
|
||||||
|
"LCTRL": LCTRL,
|
||||||
|
"LALT": LALT,
|
||||||
|
"LSUPER": LSUPER,
|
||||||
|
"RSHIFT": RSHIFT,
|
||||||
|
"RCTRL": RCTRL,
|
||||||
|
"RALT": RALT,
|
||||||
|
"RSUPER": RSUPER,
|
||||||
|
"NONE": NONE,
|
||||||
|
}
|
||||||
|
Hidg0 io.Writer
|
||||||
|
)
|
||||||
|
|
||||||
|
func (k Keyboard) Write(p []byte) (n int, err error) {
|
||||||
|
return write(p)
|
||||||
|
}
|
||||||
|
|
||||||
|
func Write(r io.Reader) error {
|
||||||
|
_, err := io.Copy(Keyboard{}, r)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
// io.writer probably isn't the best interface to use for this
|
||||||
|
func write(p []byte) (n int, err error) {
|
||||||
|
var index int
|
||||||
|
for index < len(p) {
|
||||||
|
var (
|
||||||
|
r rune
|
||||||
|
s int
|
||||||
|
flag byte
|
||||||
|
report [8]byte
|
||||||
|
)
|
||||||
|
press:
|
||||||
|
for i := 2; i < 8 && index < len(p); i++ {
|
||||||
|
var (
|
||||||
|
mod byte
|
||||||
|
)
|
||||||
|
r, s = utf8.DecodeRune(p[index:])
|
||||||
|
if r == utf8.RuneError {
|
||||||
|
return index, fmt.Errorf("invalid rune: 0x%X", p[index]) // This probably screws things up if the last rune in 'p' is incomplete
|
||||||
|
}
|
||||||
|
cur, ok := CurrentKeymap()[string(r)]
|
||||||
|
if !ok {
|
||||||
|
if i == 2 { // can't press two keys from different keymaps
|
||||||
|
if !changeKeymap(r) && ErrOnUnknownKey {
|
||||||
|
return index, fmt.Errorf("rune not in keymap: %c", r)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
break press
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
switch {
|
||||||
|
case cur.PressDelayDelimiter:
|
||||||
|
var n int
|
||||||
|
n, PressDelay = parseDelay(p[index+s:])
|
||||||
|
index += s + n
|
||||||
|
break press
|
||||||
|
|
||||||
|
case cur.ReleaseDelayDelimiter:
|
||||||
|
var n int
|
||||||
|
n, ReleaseDelay = parseDelay(p[index+s:])
|
||||||
|
index += s + n
|
||||||
|
break press
|
||||||
|
|
||||||
|
case cur.Comment:
|
||||||
|
var n int
|
||||||
|
n = bytes.Index(p[index+s:], []byte("\n"))
|
||||||
|
if n < 0 {
|
||||||
|
n = 0
|
||||||
|
}
|
||||||
|
index += s + n
|
||||||
|
break press
|
||||||
|
|
||||||
|
default:
|
||||||
|
// Calculate next modifier byte
|
||||||
|
for _, v := range cur.Modifier {
|
||||||
|
mod = mod | flags[v]
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the modifier if it is the first key otherwise
|
||||||
|
// check if the next modifier byte is the same
|
||||||
|
if i == 2 {
|
||||||
|
flag = mod
|
||||||
|
} else if flag != mod {
|
||||||
|
break press
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check for duplicate key press. You can't press a key if it is already pressed.
|
||||||
|
for u := 2; u < i; u++ {
|
||||||
|
if cur.Decimal == report[u] {
|
||||||
|
break press
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
report[i] = cur.Decimal
|
||||||
|
index += s
|
||||||
|
if PressDelay > 0 {
|
||||||
|
break press
|
||||||
|
}
|
||||||
|
}
|
||||||
|
report[0] = flag
|
||||||
|
r, _ = utf8.DecodeRune(p[index-1:])
|
||||||
|
Press(report, Hidg0)
|
||||||
|
delay(PressDelay)
|
||||||
|
}
|
||||||
|
keymapto0() // To make it reproducible
|
||||||
|
return index, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func parseDelay(buffer []byte) (count int, delay time.Duration) {
|
||||||
|
var index int
|
||||||
|
sb := strings.Builder{}
|
||||||
|
for index < len(buffer) {
|
||||||
|
r, s := utf8.DecodeRune(buffer[index:])
|
||||||
|
if unicode.IsDigit(r) {
|
||||||
|
sb.WriteRune(r)
|
||||||
|
index += s
|
||||||
|
} else {
|
||||||
|
if r == '\r' {
|
||||||
|
index += s
|
||||||
|
r, s = utf8.DecodeRune(buffer[index:])
|
||||||
|
}
|
||||||
|
if r == '\n' {
|
||||||
|
index += s
|
||||||
|
}
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
i, err := strconv.Atoi(sb.String())
|
||||||
|
if err == nil || err == strconv.ErrRange {
|
||||||
|
return index, time.Millisecond * time.Duration(i)
|
||||||
|
}
|
||||||
|
return 0, 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func delay(Delay time.Duration) {
|
||||||
|
if Delay > 0 {
|
||||||
|
if syncCheck, ok := Hidg0.(syncer); ok {
|
||||||
|
syncCheck.Sync()
|
||||||
|
}
|
||||||
|
time.Sleep(Delay)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func Press(press [8]byte, file io.Writer) {
|
||||||
|
file.Write(press[:])
|
||||||
|
delay(ReleaseDelay)
|
||||||
|
file.Write([]byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})
|
||||||
|
}
|
||||||
|
|
||||||
|
func Hold(press [8]byte, file io.Writer) {
|
||||||
|
file.Write(press[:])
|
||||||
|
}
|
||||||
|
|
||||||
|
func keymapto0() {
|
||||||
|
if len(KeymapOrder) > 1 {
|
||||||
|
for i := 0; i < len(KeymapOrder)-(currentKeyMap); i++ {
|
||||||
|
Press([8]byte{LALT, 0x00, 0x39, 0x00, 0x00, 0x00, 0x00, 0x00}, Hidg0)
|
||||||
|
}
|
||||||
|
currentKeyMap = 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func changeKeymap(r rune) bool {
|
||||||
|
buf := bytes.NewBuffer(make([]byte, 0, 8*len(KeymapOrder))) // To batch shortcut presses
|
||||||
|
|
||||||
|
for i := 0; i < len(KeymapOrder); i++ {
|
||||||
|
_, ok := CurrentKeymap()[string(r)]
|
||||||
|
if ok {
|
||||||
|
Hidg0.Write(buf.Bytes())
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
Press(KeymapShortcut, buf)
|
||||||
|
if currentKeyMap == len(KeymapOrder)-1 {
|
||||||
|
currentKeyMap = 0
|
||||||
|
} else {
|
||||||
|
currentKeyMap++
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
func CurrentKeymap() Keymap {
|
||||||
|
keymap, ok := keys[KeymapOrder[currentKeyMap]]
|
||||||
|
if ok {
|
||||||
|
return keymap
|
||||||
|
}
|
||||||
|
return LoadKeymap(KeymapOrder[currentKeyMap])
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
func LoadKeymap(keymapName string) Keymap {
|
||||||
|
var (
|
||||||
|
err error
|
||||||
|
content []byte
|
||||||
|
file = path.Join(path.Join(KeymapPath, "hid"), keymapName+".json")
|
||||||
|
tmp = make(Keymap, 0)
|
||||||
|
)
|
||||||
|
fmt.Println(file)
|
||||||
|
content, err = ioutil.ReadFile(file)
|
||||||
|
if err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
err = json.Unmarshal(content, &tmp)
|
||||||
|
if err != nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
keys[keymapName] = tmp
|
||||||
|
return keys[keymapName]
|
||||||
|
}
|
405
keymaps/dvorak.json
Normal file
405
keymaps/dvorak.json
Normal file
@ -0,0 +1,405 @@
|
|||||||
|
{
|
||||||
|
"0": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 39
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 30
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 31
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 32
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 33
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 34
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 35
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 36
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 37
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 38
|
||||||
|
},
|
||||||
|
"!": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 30
|
||||||
|
},
|
||||||
|
"#": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 32
|
||||||
|
},
|
||||||
|
"$": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 33
|
||||||
|
},
|
||||||
|
"%": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 34
|
||||||
|
},
|
||||||
|
"&": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 36
|
||||||
|
},
|
||||||
|
"'": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 20
|
||||||
|
},
|
||||||
|
"(": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 38
|
||||||
|
},
|
||||||
|
")": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 39
|
||||||
|
},
|
||||||
|
"*": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 37
|
||||||
|
},
|
||||||
|
"+": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 48
|
||||||
|
},
|
||||||
|
",": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 26
|
||||||
|
},
|
||||||
|
"-": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 52
|
||||||
|
},
|
||||||
|
".": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 8
|
||||||
|
},
|
||||||
|
"/": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 47
|
||||||
|
},
|
||||||
|
":": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 29
|
||||||
|
},
|
||||||
|
";": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 29
|
||||||
|
},
|
||||||
|
"<": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 26
|
||||||
|
},
|
||||||
|
"=": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 48
|
||||||
|
},
|
||||||
|
">": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 8
|
||||||
|
},
|
||||||
|
"?": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 47
|
||||||
|
},
|
||||||
|
"@": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 31
|
||||||
|
},
|
||||||
|
"A": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 4
|
||||||
|
},
|
||||||
|
"B": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 17
|
||||||
|
},
|
||||||
|
"C": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 12
|
||||||
|
},
|
||||||
|
"D": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 11
|
||||||
|
},
|
||||||
|
"E": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 7
|
||||||
|
},
|
||||||
|
"F": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 28
|
||||||
|
},
|
||||||
|
"G": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 24
|
||||||
|
},
|
||||||
|
"H": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 13
|
||||||
|
},
|
||||||
|
"I": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 10
|
||||||
|
},
|
||||||
|
"J": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 6
|
||||||
|
},
|
||||||
|
"K": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 25
|
||||||
|
},
|
||||||
|
"L": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 19
|
||||||
|
},
|
||||||
|
"M": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 16
|
||||||
|
},
|
||||||
|
"N": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 15
|
||||||
|
},
|
||||||
|
"O": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 22
|
||||||
|
},
|
||||||
|
"P": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 21
|
||||||
|
},
|
||||||
|
"Q": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 27
|
||||||
|
},
|
||||||
|
"R": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 18
|
||||||
|
},
|
||||||
|
"S": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 51
|
||||||
|
},
|
||||||
|
"T": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 14
|
||||||
|
},
|
||||||
|
"U": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 9
|
||||||
|
},
|
||||||
|
"V": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 55
|
||||||
|
},
|
||||||
|
"W": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 54
|
||||||
|
},
|
||||||
|
"X": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 5
|
||||||
|
},
|
||||||
|
"Y": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 23
|
||||||
|
},
|
||||||
|
"Z": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 56
|
||||||
|
},
|
||||||
|
"[": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 45
|
||||||
|
},
|
||||||
|
"\"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 20
|
||||||
|
},
|
||||||
|
"\\": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 49
|
||||||
|
},
|
||||||
|
"]": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 46
|
||||||
|
},
|
||||||
|
"^": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 35
|
||||||
|
},
|
||||||
|
"_": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 52
|
||||||
|
},
|
||||||
|
"`": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 53
|
||||||
|
},
|
||||||
|
"a": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 4
|
||||||
|
},
|
||||||
|
"b": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 17
|
||||||
|
},
|
||||||
|
"c": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 12
|
||||||
|
},
|
||||||
|
"d": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 11
|
||||||
|
},
|
||||||
|
"e": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 7
|
||||||
|
},
|
||||||
|
"f": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 28
|
||||||
|
},
|
||||||
|
"g": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 24
|
||||||
|
},
|
||||||
|
"h": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 13
|
||||||
|
},
|
||||||
|
"i": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 10
|
||||||
|
},
|
||||||
|
"j": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 6
|
||||||
|
},
|
||||||
|
"k": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 25
|
||||||
|
},
|
||||||
|
"l": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 19
|
||||||
|
},
|
||||||
|
"m": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 16
|
||||||
|
},
|
||||||
|
"n": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 15
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 22
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 21
|
||||||
|
},
|
||||||
|
"q": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 27
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 18
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 51
|
||||||
|
},
|
||||||
|
"t": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 14
|
||||||
|
},
|
||||||
|
"u": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 9
|
||||||
|
},
|
||||||
|
"v": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 55
|
||||||
|
},
|
||||||
|
"w": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 54
|
||||||
|
},
|
||||||
|
"x": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 5
|
||||||
|
},
|
||||||
|
"y": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 23
|
||||||
|
},
|
||||||
|
"z": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 56
|
||||||
|
},
|
||||||
|
"{": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 45
|
||||||
|
},
|
||||||
|
"|": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 49
|
||||||
|
},
|
||||||
|
"}": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 46
|
||||||
|
},
|
||||||
|
"~": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 53
|
||||||
|
},
|
||||||
|
"\t": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 43
|
||||||
|
},
|
||||||
|
"\n": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 40
|
||||||
|
},
|
||||||
|
" ": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 44
|
||||||
|
},
|
||||||
|
"⏲": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 0,
|
||||||
|
"PressDelayDelimiter": true
|
||||||
|
},
|
||||||
|
"🐉": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 0,
|
||||||
|
"releaseDelayDelimiter": true
|
||||||
|
},
|
||||||
|
"⨌": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 0,
|
||||||
|
"comment": true
|
||||||
|
}
|
||||||
|
}
|
405
keymaps/qwerty.json
Normal file
405
keymaps/qwerty.json
Normal file
@ -0,0 +1,405 @@
|
|||||||
|
{
|
||||||
|
"1": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 30
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 31
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 32
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 33
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 34
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 35
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 36
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 37
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 38
|
||||||
|
},
|
||||||
|
"0": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 39
|
||||||
|
},
|
||||||
|
"-": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 45
|
||||||
|
},
|
||||||
|
"=": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 46
|
||||||
|
},
|
||||||
|
"!": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 30
|
||||||
|
},
|
||||||
|
"@": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 31
|
||||||
|
},
|
||||||
|
"#": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 32
|
||||||
|
},
|
||||||
|
"$": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 33
|
||||||
|
},
|
||||||
|
"%": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 34
|
||||||
|
},
|
||||||
|
"^": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 35
|
||||||
|
},
|
||||||
|
"&": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 36
|
||||||
|
},
|
||||||
|
"*": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 37
|
||||||
|
},
|
||||||
|
"(": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 38
|
||||||
|
},
|
||||||
|
")": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 39
|
||||||
|
},
|
||||||
|
"_": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 45
|
||||||
|
},
|
||||||
|
"+": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 46
|
||||||
|
},
|
||||||
|
"q": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 20
|
||||||
|
},
|
||||||
|
"w": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 26
|
||||||
|
},
|
||||||
|
"e": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 8
|
||||||
|
},
|
||||||
|
"r": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 21
|
||||||
|
},
|
||||||
|
"t": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 23
|
||||||
|
},
|
||||||
|
"y": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 28
|
||||||
|
},
|
||||||
|
"u": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 24
|
||||||
|
},
|
||||||
|
"i": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 12
|
||||||
|
},
|
||||||
|
"o": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 18
|
||||||
|
},
|
||||||
|
"p": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 19
|
||||||
|
},
|
||||||
|
"[": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 47
|
||||||
|
},
|
||||||
|
"]": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 48
|
||||||
|
},
|
||||||
|
"Q": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 20
|
||||||
|
},
|
||||||
|
"W": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 26
|
||||||
|
},
|
||||||
|
"E": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 8
|
||||||
|
},
|
||||||
|
"R": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 21
|
||||||
|
},
|
||||||
|
"T": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 23
|
||||||
|
},
|
||||||
|
"Y": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 28
|
||||||
|
},
|
||||||
|
"U": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 24
|
||||||
|
},
|
||||||
|
"I": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 12
|
||||||
|
},
|
||||||
|
"O": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 18
|
||||||
|
},
|
||||||
|
"P": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 19
|
||||||
|
},
|
||||||
|
"{": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 47
|
||||||
|
},
|
||||||
|
"}": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 48
|
||||||
|
},
|
||||||
|
"a": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 4
|
||||||
|
},
|
||||||
|
"s": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 22
|
||||||
|
},
|
||||||
|
"d": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 7
|
||||||
|
},
|
||||||
|
"f": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 9
|
||||||
|
},
|
||||||
|
"g": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 10
|
||||||
|
},
|
||||||
|
"h": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 11
|
||||||
|
},
|
||||||
|
"j": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 13
|
||||||
|
},
|
||||||
|
"k": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 14
|
||||||
|
},
|
||||||
|
"l": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 15
|
||||||
|
},
|
||||||
|
";": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 51
|
||||||
|
},
|
||||||
|
"'": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 52
|
||||||
|
},
|
||||||
|
"A": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 4
|
||||||
|
},
|
||||||
|
"S": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 22
|
||||||
|
},
|
||||||
|
"D": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 7
|
||||||
|
},
|
||||||
|
"F": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 9
|
||||||
|
},
|
||||||
|
"G": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 10
|
||||||
|
},
|
||||||
|
"H": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 11
|
||||||
|
},
|
||||||
|
"J": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 13
|
||||||
|
},
|
||||||
|
"K": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 14
|
||||||
|
},
|
||||||
|
"L": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 15
|
||||||
|
},
|
||||||
|
":": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 51
|
||||||
|
},
|
||||||
|
"\"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 52
|
||||||
|
},
|
||||||
|
"z": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 29
|
||||||
|
},
|
||||||
|
"x": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 27
|
||||||
|
},
|
||||||
|
"c": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 6
|
||||||
|
},
|
||||||
|
"v": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 25
|
||||||
|
},
|
||||||
|
"b": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 5
|
||||||
|
},
|
||||||
|
"n": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 17
|
||||||
|
},
|
||||||
|
"m": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 16
|
||||||
|
},
|
||||||
|
",": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 54
|
||||||
|
},
|
||||||
|
".": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 55
|
||||||
|
},
|
||||||
|
"/": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 56
|
||||||
|
},
|
||||||
|
"Z": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 29
|
||||||
|
},
|
||||||
|
"X": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 27
|
||||||
|
},
|
||||||
|
"C": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 6
|
||||||
|
},
|
||||||
|
"V": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 25
|
||||||
|
},
|
||||||
|
"B": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 5
|
||||||
|
},
|
||||||
|
"N": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 17
|
||||||
|
},
|
||||||
|
"M": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 16
|
||||||
|
},
|
||||||
|
"<": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 54
|
||||||
|
},
|
||||||
|
">": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 55
|
||||||
|
},
|
||||||
|
"?": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 56
|
||||||
|
},
|
||||||
|
"\\": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 49
|
||||||
|
},
|
||||||
|
"|": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 49
|
||||||
|
},
|
||||||
|
"`": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 53
|
||||||
|
},
|
||||||
|
"~": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 53
|
||||||
|
},
|
||||||
|
"\t": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 43
|
||||||
|
},
|
||||||
|
"\n": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 40
|
||||||
|
},
|
||||||
|
" ": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 44
|
||||||
|
},
|
||||||
|
"⏲": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 0,
|
||||||
|
"PressDelayDelimiter": true
|
||||||
|
},
|
||||||
|
"🐉": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 0,
|
||||||
|
"releaseDelayDelimiter": true
|
||||||
|
},
|
||||||
|
"⨌": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 0,
|
||||||
|
"comment": true
|
||||||
|
}
|
||||||
|
}
|
325
keymaps/tengwar-f.json
Normal file
325
keymaps/tengwar-f.json
Normal file
@ -0,0 +1,325 @@
|
|||||||
|
{
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 30
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 31
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 32
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 33
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 34
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 35
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 36
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 37
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 38
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 39
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 45
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 46
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 30
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 31
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 32
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 33
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 34
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 35
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 36
|
||||||
|
},
|
||||||
|
"*": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 37
|
||||||
|
},
|
||||||
|
"(": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 38
|
||||||
|
},
|
||||||
|
")": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 39
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 45
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 46
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 20
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 26
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 8
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 21
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 23
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 28
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 24
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 12
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 18
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 19
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 47
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 48
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 20
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 26
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 8
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 21
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 23
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 28
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 24
|
||||||
|
},
|
||||||
|
"I": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 12
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 18
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 4
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 22
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 7
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 9
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 10
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 11
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 13
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 14
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 15
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 51
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 52
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 4
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 22
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 15
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 29
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 27
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 6
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 25
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 5
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 17
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 16
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 54
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 55
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 29
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 27
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 55
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 49
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 53
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 53
|
||||||
|
},
|
||||||
|
"\t": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 43
|
||||||
|
},
|
||||||
|
"\n": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 40
|
||||||
|
},
|
||||||
|
" ": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 44
|
||||||
|
},
|
||||||
|
"⏲": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 0,
|
||||||
|
"PressDelayDelimiter": true
|
||||||
|
},
|
||||||
|
"🐉": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 0,
|
||||||
|
"releaseDelayDelimiter": true
|
||||||
|
},
|
||||||
|
"⨌": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 0,
|
||||||
|
"comment": true
|
||||||
|
}
|
||||||
|
}
|
393
keymaps/tengwar-u.json
Normal file
393
keymaps/tengwar-u.json
Normal file
@ -0,0 +1,393 @@
|
|||||||
|
{
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 30
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 31
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 32
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 33
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 34
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 35
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 36
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 37
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 38
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 39
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 45
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 46
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 30
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 31
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 32
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 35
|
||||||
|
},
|
||||||
|
"⁊": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 36
|
||||||
|
},
|
||||||
|
"⸭": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 37
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 38
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 39
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 45
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 46
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 20
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 26
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 8
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 21
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 23
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 28
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 24
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 12
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 18
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 19
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 47
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 48
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 20
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 26
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 8
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 21
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 23
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 28
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 24
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 12
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 18
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 19
|
||||||
|
},
|
||||||
|
"“": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 47
|
||||||
|
},
|
||||||
|
"‘": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 48
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 4
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 22
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 7
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 9
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 10
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 11
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 13
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 14
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 15
|
||||||
|
},
|
||||||
|
"჻": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 51
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 52
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 4
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 22
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 7
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 9
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 10
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 11
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 13
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 14
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 15
|
||||||
|
},
|
||||||
|
"⁝": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 51
|
||||||
|
},
|
||||||
|
"’": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 52
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 29
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 27
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 6
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 25
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 5
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 17
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 16
|
||||||
|
},
|
||||||
|
"⸱": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 54
|
||||||
|
},
|
||||||
|
"⁘": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 55
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 56
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 29
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 27
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 6
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 25
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 5
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 17
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 16
|
||||||
|
},
|
||||||
|
":": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 54
|
||||||
|
},
|
||||||
|
"⸬": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 55
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 56
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 49
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 49
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 53
|
||||||
|
},
|
||||||
|
"\t": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 43
|
||||||
|
},
|
||||||
|
"\n": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 40
|
||||||
|
},
|
||||||
|
" ": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 44
|
||||||
|
},
|
||||||
|
"⏲": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 0,
|
||||||
|
"PressDelayDelimiter": true
|
||||||
|
},
|
||||||
|
"🐉": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 0,
|
||||||
|
"releaseDelayDelimiter": true
|
||||||
|
},
|
||||||
|
"⨌": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 0,
|
||||||
|
"comment": true
|
||||||
|
}
|
||||||
|
}
|
577
keymaps/tiro.json
Normal file
577
keymaps/tiro.json
Normal file
@ -0,0 +1,577 @@
|
|||||||
|
{
|
||||||
|
"1": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 30
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 31
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 32
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 33
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 34
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 35
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 36
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 37
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 38
|
||||||
|
},
|
||||||
|
"0": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 39
|
||||||
|
},
|
||||||
|
"־": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 45
|
||||||
|
},
|
||||||
|
"֩": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 30
|
||||||
|
},
|
||||||
|
"֙": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 31
|
||||||
|
},
|
||||||
|
"֒": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 32
|
||||||
|
},
|
||||||
|
"֯": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 33
|
||||||
|
},
|
||||||
|
"ֺ": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 34
|
||||||
|
},
|
||||||
|
"ֹ": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 35
|
||||||
|
},
|
||||||
|
"ֿ": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 36
|
||||||
|
},
|
||||||
|
"ׂ": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 37
|
||||||
|
},
|
||||||
|
"ׁ": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 38
|
||||||
|
},
|
||||||
|
"֝": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 39
|
||||||
|
},
|
||||||
|
"֠": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 45
|
||||||
|
},
|
||||||
|
"ּ": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 46
|
||||||
|
},
|
||||||
|
"₪": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 33
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 34
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 35
|
||||||
|
},
|
||||||
|
"͏": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 36
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 37
|
||||||
|
},
|
||||||
|
"": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 38
|
||||||
|
},
|
||||||
|
"◌": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 39
|
||||||
|
},
|
||||||
|
"-": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 45
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 30
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 31
|
||||||
|
},
|
||||||
|
"3": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 32
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 33
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 34
|
||||||
|
},
|
||||||
|
"6": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 35
|
||||||
|
},
|
||||||
|
"7": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 36
|
||||||
|
},
|
||||||
|
"8": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 37
|
||||||
|
},
|
||||||
|
"9": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 38
|
||||||
|
},
|
||||||
|
"0": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 39
|
||||||
|
},
|
||||||
|
"_": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 45
|
||||||
|
},
|
||||||
|
"+": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 46
|
||||||
|
},
|
||||||
|
"̇": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 20
|
||||||
|
},
|
||||||
|
"׳": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 26
|
||||||
|
},
|
||||||
|
"ק": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 8
|
||||||
|
},
|
||||||
|
"ר": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 21
|
||||||
|
},
|
||||||
|
"א": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 23
|
||||||
|
},
|
||||||
|
"ט": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 28
|
||||||
|
},
|
||||||
|
"ו": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 24
|
||||||
|
},
|
||||||
|
"ן": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 12
|
||||||
|
},
|
||||||
|
"ם": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 18
|
||||||
|
},
|
||||||
|
"פ": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 19
|
||||||
|
},
|
||||||
|
"]": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 47
|
||||||
|
},
|
||||||
|
"[": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 48
|
||||||
|
},
|
||||||
|
"ׄ": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 20
|
||||||
|
},
|
||||||
|
"֬": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 26
|
||||||
|
},
|
||||||
|
"֫": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 8
|
||||||
|
},
|
||||||
|
"֟": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 21
|
||||||
|
},
|
||||||
|
"֓": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 23
|
||||||
|
},
|
||||||
|
"֞": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 28
|
||||||
|
},
|
||||||
|
"֜": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 24
|
||||||
|
},
|
||||||
|
"֡": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 12
|
||||||
|
},
|
||||||
|
"֕": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 18
|
||||||
|
},
|
||||||
|
"֔": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 19
|
||||||
|
},
|
||||||
|
"֗": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 47
|
||||||
|
},
|
||||||
|
"֘": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 48
|
||||||
|
},
|
||||||
|
"̈": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 20
|
||||||
|
},
|
||||||
|
"״": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 26
|
||||||
|
},
|
||||||
|
"€": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 8
|
||||||
|
},
|
||||||
|
"װ": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 24
|
||||||
|
},
|
||||||
|
"ש": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 4
|
||||||
|
},
|
||||||
|
"/": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 20
|
||||||
|
},
|
||||||
|
"'": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 26
|
||||||
|
},
|
||||||
|
"}": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 47
|
||||||
|
},
|
||||||
|
"{": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 48
|
||||||
|
},
|
||||||
|
"ד": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 22
|
||||||
|
},
|
||||||
|
"ג": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 7
|
||||||
|
},
|
||||||
|
"כ": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 9
|
||||||
|
},
|
||||||
|
"ע": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 10
|
||||||
|
},
|
||||||
|
"י": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 11
|
||||||
|
},
|
||||||
|
"ח": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 13
|
||||||
|
},
|
||||||
|
"ל": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 14
|
||||||
|
},
|
||||||
|
"ך": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 15
|
||||||
|
},
|
||||||
|
"ף": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 51
|
||||||
|
},
|
||||||
|
"֚": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 52
|
||||||
|
},
|
||||||
|
"ֽ": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 4
|
||||||
|
},
|
||||||
|
"ְ": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 22
|
||||||
|
},
|
||||||
|
"ֻ": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 7
|
||||||
|
},
|
||||||
|
"ִ": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 9
|
||||||
|
},
|
||||||
|
"ֱ": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 10
|
||||||
|
},
|
||||||
|
"ֶ": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 11
|
||||||
|
},
|
||||||
|
"ֵ": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 13
|
||||||
|
},
|
||||||
|
"ֳ": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 14
|
||||||
|
},
|
||||||
|
"ָ": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 15
|
||||||
|
},
|
||||||
|
"ֲ": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 51
|
||||||
|
},
|
||||||
|
"ַ": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 52
|
||||||
|
},
|
||||||
|
"ײ": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 11
|
||||||
|
},
|
||||||
|
"ױ": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 13
|
||||||
|
},
|
||||||
|
"ׇ": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 15
|
||||||
|
},
|
||||||
|
",": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 52
|
||||||
|
},
|
||||||
|
":": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 51
|
||||||
|
},
|
||||||
|
"\"": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 52
|
||||||
|
},
|
||||||
|
"ז": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 29
|
||||||
|
},
|
||||||
|
"ס": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 27
|
||||||
|
},
|
||||||
|
"ב": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 6
|
||||||
|
},
|
||||||
|
"ה": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 25
|
||||||
|
},
|
||||||
|
"נ": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 5
|
||||||
|
},
|
||||||
|
"מ": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 17
|
||||||
|
},
|
||||||
|
"צ": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 16
|
||||||
|
},
|
||||||
|
"ת": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 54
|
||||||
|
},
|
||||||
|
"ץ": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 55
|
||||||
|
},
|
||||||
|
"֭": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 56
|
||||||
|
},
|
||||||
|
"ׅ": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 29
|
||||||
|
},
|
||||||
|
"֤": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 27
|
||||||
|
},
|
||||||
|
"֪": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 6
|
||||||
|
},
|
||||||
|
"֦": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 25
|
||||||
|
},
|
||||||
|
"֥": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 5
|
||||||
|
},
|
||||||
|
"֧": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 17
|
||||||
|
},
|
||||||
|
"֛": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 16
|
||||||
|
},
|
||||||
|
"֑": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 54
|
||||||
|
},
|
||||||
|
"֖": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 55
|
||||||
|
},
|
||||||
|
"֣": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 56
|
||||||
|
},
|
||||||
|
"֢": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 6
|
||||||
|
},
|
||||||
|
"׆": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 5
|
||||||
|
},
|
||||||
|
".": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 56
|
||||||
|
},
|
||||||
|
">": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 54
|
||||||
|
},
|
||||||
|
"<": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 55
|
||||||
|
},
|
||||||
|
"?": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 56
|
||||||
|
},
|
||||||
|
"׀": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 49
|
||||||
|
},
|
||||||
|
"֨": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 49
|
||||||
|
},
|
||||||
|
"\\": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 49
|
||||||
|
},
|
||||||
|
"|": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 49
|
||||||
|
},
|
||||||
|
"׃": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 53
|
||||||
|
},
|
||||||
|
"֮": {
|
||||||
|
"modifier": ["LSHIFT"],
|
||||||
|
"decimal": 53
|
||||||
|
},
|
||||||
|
";": {
|
||||||
|
"modifier": ["RALT"],
|
||||||
|
"decimal": 53
|
||||||
|
},
|
||||||
|
"~": {
|
||||||
|
"modifier": ["RALT","LSHIFT"],
|
||||||
|
"decimal": 53
|
||||||
|
},
|
||||||
|
"\t": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 43
|
||||||
|
},
|
||||||
|
"\n": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 40
|
||||||
|
},
|
||||||
|
" ": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 44
|
||||||
|
},
|
||||||
|
"⏲": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 0,
|
||||||
|
"PressDelayDelimiter": true
|
||||||
|
},
|
||||||
|
"🐉": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 0,
|
||||||
|
"releaseDelayDelimiter": true
|
||||||
|
},
|
||||||
|
"⨌": {
|
||||||
|
"modifier": ["NONE"],
|
||||||
|
"decimal": 0,
|
||||||
|
"comment": true
|
||||||
|
}
|
||||||
|
}
|
147
main.go
147
main.go
@ -1,147 +1,40 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bufio"
|
"flag"
|
||||||
"encoding/binary"
|
|
||||||
"encoding/json"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
|
||||||
"io/ioutil"
|
|
||||||
"os"
|
"os"
|
||||||
"path"
|
|
||||||
"strings"
|
|
||||||
|
|
||||||
"github.com/alexflint/go-arg"
|
"timmy.narnian.us/hid/ghid"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Key struct {
|
|
||||||
Modifier string `json:"modifier"`
|
|
||||||
Decimal int `json:"decimal"`
|
|
||||||
}
|
|
||||||
|
|
||||||
type Keys map[string]Key
|
|
||||||
|
|
||||||
type Args struct {
|
|
||||||
SHORTCUT string `arg:"-S,help:Keymap cycle shortcut"`
|
|
||||||
ORDER []string `arg:"positional,help:Order of keymaps"`
|
|
||||||
}
|
|
||||||
|
|
||||||
const (
|
|
||||||
LCTRL byte = 1 << iota
|
|
||||||
LSHIFT
|
|
||||||
LALT
|
|
||||||
LSUPER
|
|
||||||
RCTRL
|
|
||||||
RSHIFT
|
|
||||||
RALT
|
|
||||||
RSUPER
|
|
||||||
)
|
|
||||||
|
|
||||||
func Press(press [8]byte, file io.Writer) {
|
|
||||||
binary.Write(file, binary.BigEndian, press[:])
|
|
||||||
binary.Write(file, binary.BigEndian, [8]byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})
|
|
||||||
fmt.Println(press)
|
|
||||||
fmt.Println([8]byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00})
|
|
||||||
}
|
|
||||||
|
|
||||||
func Hold(press [8]byte, file io.Writer) {
|
|
||||||
binary.Write(file, binary.BigEndian, press[:])
|
|
||||||
}
|
|
||||||
|
|
||||||
func changeKeymap(r rune, keys map[string]Keys, args Args, hidg0 *os.File, currentKeyMap *int) {
|
|
||||||
fmt.Println(*currentKeyMap)
|
|
||||||
fmt.Println(args)
|
|
||||||
kmap := args.ORDER[(*currentKeyMap)]
|
|
||||||
fmt.Println(kmap)
|
|
||||||
for keys[kmap][string(r)].Decimal == 0 {
|
|
||||||
Press([8]byte{LCTRL, 0x00, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00}, hidg0)
|
|
||||||
*currentKeyMap++
|
|
||||||
if *currentKeyMap == len(keys) {
|
|
||||||
panic("key not in keymap")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
var (
|
var (
|
||||||
args Args
|
SHORTCUT string
|
||||||
hidg0 *os.File
|
|
||||||
err error
|
|
||||||
keymapsF []os.FileInfo
|
|
||||||
keys = make(map[string]Keys)
|
|
||||||
cfgPath = "./" //path.Join(os.Getenv("XDG_CONFIG_HOME"), "hid")
|
|
||||||
stdin = bufio.NewReader(os.Stdin)
|
|
||||||
currentKeyMap int
|
|
||||||
)
|
)
|
||||||
arg.MustParse(&args)
|
|
||||||
keymapsF, err = ioutil.ReadDir(cfgPath)
|
flag.StringVar(&SHORTCUT, "shortcut", "", "Keymap cycle shortcut")
|
||||||
|
flag.StringVar(&SHORTCUT, "s", "", "Keymap cycle shortcut")
|
||||||
|
flag.StringVar(&hid.KeymapPath, "path", os.ExpandEnv("$XDG_CONFIG_HOME"), "Path to config dir default: $XDG_CONFIG_HOME")
|
||||||
|
flag.StringVar(&hid.KeymapPath, "p", os.ExpandEnv("$XDG_CONFIG_HOME"), "Path to config dir default: $XDG_CONFIG_HOME")
|
||||||
|
flag.Parse()
|
||||||
|
|
||||||
|
hid.KeymapOrder = flag.Args()
|
||||||
|
|
||||||
|
fmt.Println(hid.KeymapPath)
|
||||||
|
|
||||||
|
file, err := os.OpenFile("/dev/hidg0", os.O_APPEND|os.O_WRONLY, 0755)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
fmt.Println(cfgPath)
|
hid.Hidg0 = file
|
||||||
fmt.Println(keymapsF)
|
defer file.Close()
|
||||||
|
|
||||||
|
hid.Write(os.Stdin)
|
||||||
|
|
||||||
hidg0, err = os.OpenFile("/dev/hidg0", os.O_WRONLY, os.ModePerm)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, file := range keymapsF {
|
fmt.Println("Success!")
|
||||||
var (
|
|
||||||
ext string
|
|
||||||
)
|
|
||||||
|
|
||||||
ext = path.Ext(file.Name())
|
|
||||||
fmt.Println(ext)
|
|
||||||
if strings.ToLower(ext) == ".json" {
|
|
||||||
var (
|
|
||||||
tmp Keys
|
|
||||||
T *os.File
|
|
||||||
content []byte
|
|
||||||
)
|
|
||||||
fmt.Println(file.Name())
|
|
||||||
T, err = os.Open(file.Name())
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
content, err = ioutil.ReadAll(T)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
err = json.Unmarshal(content, &tmp)
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Println(strings.TrimSuffix(file.Name(), ext))
|
|
||||||
keys[strings.TrimSuffix(file.Name(), ext)] = tmp
|
|
||||||
T.Close()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fmt.Println(keys)
|
|
||||||
for {
|
|
||||||
var (
|
|
||||||
r rune
|
|
||||||
flag byte
|
|
||||||
report [6]byte
|
|
||||||
)
|
|
||||||
|
|
||||||
r, _, err = stdin.ReadRune()
|
|
||||||
fmt.Printf("%s\n", string(r))
|
|
||||||
if err != nil {
|
|
||||||
panic(err)
|
|
||||||
}
|
|
||||||
changeKeymap(r, keys, args, hidg0, ¤tKeyMap)
|
|
||||||
_, err = fmt.Sscanf(keys[args.ORDER[currentKeyMap]][string(r)].Modifier, "%b", flag)
|
|
||||||
binary.LittleEndian.PutUint16(report[:], uint16(keys[args.ORDER[currentKeyMap]][string(r)].Decimal))
|
|
||||||
fmt.Printf("report: % x\n", report)
|
|
||||||
fmt.Println("decimal: ", keys[args.ORDER[currentKeyMap]][string(r)].Decimal)
|
|
||||||
Press([8]byte{flag, 0, report[0], report[1], report[2], report[3], report[4], report[5]}, hidg0)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
hidg0.Close()
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
378
qwerty.json
378
qwerty.json
@ -1,378 +0,0 @@
|
|||||||
{
|
|
||||||
"0" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 39
|
|
||||||
},
|
|
||||||
"1" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 30
|
|
||||||
},
|
|
||||||
"2" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 31
|
|
||||||
},
|
|
||||||
"3" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 32
|
|
||||||
},
|
|
||||||
"4" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 33
|
|
||||||
},
|
|
||||||
"5" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 34
|
|
||||||
},
|
|
||||||
"6" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 35
|
|
||||||
},
|
|
||||||
"7" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 36
|
|
||||||
},
|
|
||||||
"8" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 37
|
|
||||||
},
|
|
||||||
"9" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 38
|
|
||||||
},
|
|
||||||
"`" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 53
|
|
||||||
},
|
|
||||||
"[" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 47
|
|
||||||
},
|
|
||||||
"]" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 48
|
|
||||||
},
|
|
||||||
"'" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 52
|
|
||||||
},
|
|
||||||
"," : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 54
|
|
||||||
},
|
|
||||||
"." : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 55
|
|
||||||
},
|
|
||||||
"p" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 19
|
|
||||||
},
|
|
||||||
"y" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 28
|
|
||||||
},
|
|
||||||
"f" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 9
|
|
||||||
},
|
|
||||||
"g" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 10
|
|
||||||
},
|
|
||||||
"c" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 6
|
|
||||||
},
|
|
||||||
"r" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 21
|
|
||||||
},
|
|
||||||
"l" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 15
|
|
||||||
},
|
|
||||||
"/" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 56
|
|
||||||
},
|
|
||||||
"=" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 46
|
|
||||||
},
|
|
||||||
"\\" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 49
|
|
||||||
},
|
|
||||||
"a" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 4
|
|
||||||
},
|
|
||||||
"o" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 18
|
|
||||||
},
|
|
||||||
"e" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 8
|
|
||||||
},
|
|
||||||
"u" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 24
|
|
||||||
},
|
|
||||||
"i" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 12
|
|
||||||
},
|
|
||||||
"d" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 7
|
|
||||||
},
|
|
||||||
"h" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 11
|
|
||||||
},
|
|
||||||
"t" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 23
|
|
||||||
},
|
|
||||||
"n" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 17
|
|
||||||
},
|
|
||||||
"s" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 22
|
|
||||||
},
|
|
||||||
"-" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 45
|
|
||||||
},
|
|
||||||
";" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 51
|
|
||||||
},
|
|
||||||
"q" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 20
|
|
||||||
},
|
|
||||||
"j" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 13
|
|
||||||
},
|
|
||||||
"k" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 14
|
|
||||||
},
|
|
||||||
"x" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 27
|
|
||||||
},
|
|
||||||
"b" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 5
|
|
||||||
},
|
|
||||||
"m" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 16
|
|
||||||
},
|
|
||||||
"w" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 26
|
|
||||||
},
|
|
||||||
"v" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 25
|
|
||||||
},
|
|
||||||
"z" : {
|
|
||||||
"modifier": "00000000",
|
|
||||||
"decimal": 29
|
|
||||||
},
|
|
||||||
"~" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 53
|
|
||||||
},
|
|
||||||
"!" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 30
|
|
||||||
},
|
|
||||||
"@" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 31
|
|
||||||
},
|
|
||||||
"#" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 32
|
|
||||||
},
|
|
||||||
"$" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 33
|
|
||||||
},
|
|
||||||
"%" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 34
|
|
||||||
},
|
|
||||||
"^" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 35
|
|
||||||
},
|
|
||||||
"&" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 36
|
|
||||||
},
|
|
||||||
"*" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 37
|
|
||||||
},
|
|
||||||
"(" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 38
|
|
||||||
},
|
|
||||||
")" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 39
|
|
||||||
},
|
|
||||||
"{" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 47
|
|
||||||
},
|
|
||||||
"}" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 48
|
|
||||||
},
|
|
||||||
"\"" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 52
|
|
||||||
},
|
|
||||||
"<" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 54
|
|
||||||
},
|
|
||||||
">" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 55
|
|
||||||
},
|
|
||||||
"P" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 19
|
|
||||||
},
|
|
||||||
"Y" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 28
|
|
||||||
},
|
|
||||||
"F" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 9
|
|
||||||
},
|
|
||||||
"G" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 10
|
|
||||||
},
|
|
||||||
"C" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 6
|
|
||||||
},
|
|
||||||
"R" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 21
|
|
||||||
},
|
|
||||||
"L" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 15
|
|
||||||
},
|
|
||||||
"?" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 56
|
|
||||||
},
|
|
||||||
"+" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 46
|
|
||||||
},
|
|
||||||
"|" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 49
|
|
||||||
},
|
|
||||||
"A" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 4
|
|
||||||
},
|
|
||||||
"O" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 18
|
|
||||||
},
|
|
||||||
"E" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 8
|
|
||||||
},
|
|
||||||
"U" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 24
|
|
||||||
},
|
|
||||||
"I" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 12
|
|
||||||
},
|
|
||||||
"D" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 7
|
|
||||||
},
|
|
||||||
"H" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 11
|
|
||||||
},
|
|
||||||
"T" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 23
|
|
||||||
},
|
|
||||||
"N" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 17
|
|
||||||
},
|
|
||||||
"S" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 22
|
|
||||||
},
|
|
||||||
"_" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 45
|
|
||||||
},
|
|
||||||
":" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 51
|
|
||||||
},
|
|
||||||
"Q" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 20
|
|
||||||
},
|
|
||||||
"J" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 13
|
|
||||||
},
|
|
||||||
"K" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 14
|
|
||||||
},
|
|
||||||
"X" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 27
|
|
||||||
},
|
|
||||||
"B" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 5
|
|
||||||
},
|
|
||||||
"M" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 16
|
|
||||||
},
|
|
||||||
"W" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 26
|
|
||||||
},
|
|
||||||
"V" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 25
|
|
||||||
},
|
|
||||||
"Z" : {
|
|
||||||
"modifier": "00000010",
|
|
||||||
"decimal": 29
|
|
||||||
}
|
|
||||||
}
|
|
Reference in New Issue
Block a user