mirror of
https://github.com/CharaChorder/DeviceManager.git
synced 2025-12-10 21:06:17 +00:00
feat: 4th layer support
This commit is contained in:
@@ -34,6 +34,7 @@ const config = {
|
||||
"abc",
|
||||
"function",
|
||||
"cloud_done",
|
||||
"counter_4",
|
||||
"backup",
|
||||
"cloud_download",
|
||||
"cloud_off",
|
||||
@@ -149,6 +150,7 @@ const config = {
|
||||
counter_1: "f784",
|
||||
counter_2: "f783",
|
||||
counter_3: "f782",
|
||||
counter_4: "f781",
|
||||
ios_share: "e6b8",
|
||||
light_mode: "e518",
|
||||
upload_file: "e9fc",
|
||||
|
||||
36
src/lib/assets/tests/actions/capitalize.yml
Normal file
36
src/lib/assets/tests/actions/capitalize.yml
Normal file
@@ -0,0 +1,36 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[c, p]]
|
||||
output: [CAPITALIZE]
|
||||
- input: [[a, b]]
|
||||
output: [a, b, c]
|
||||
idle: true
|
||||
|
||||
- press: [c, p]
|
||||
keys: [c, p]
|
||||
- release: [c, p]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
keys: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
35
src/lib/assets/tests/actions/capitalize_no_space.yml
Normal file
35
src/lib/assets/tests/actions/capitalize_no_space.yml
Normal file
@@ -0,0 +1,35 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[c, p]]
|
||||
output: [CAPITALIZE, KSC_00]
|
||||
- input: [[a, b]]
|
||||
output: [JOIN, a, b, c, KSC_00]
|
||||
idle: true
|
||||
|
||||
- press: [c, p]
|
||||
keys: [c, p]
|
||||
- release: [c, p]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
keys: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: []
|
||||
idle: true
|
||||
33
src/lib/assets/tests/actions/dup/dup.yml
Normal file
33
src/lib/assets/tests/actions/dup/dup.yml
Normal file
@@ -0,0 +1,33 @@
|
||||
test:
|
||||
- remap:
|
||||
A1:
|
||||
- [d, DUP]
|
||||
idle: true
|
||||
|
||||
- press: [a]
|
||||
keys: [a]
|
||||
- release: [a]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- press: [d]
|
||||
keys: [a]
|
||||
- release: [d]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- press: [c]
|
||||
keys: [c]
|
||||
- release: [c]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- press: [d]
|
||||
keys: [c]
|
||||
- release: [d]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
24
src/lib/assets/tests/actions/dup/modifiers.yml
Normal file
24
src/lib/assets/tests/actions/dup/modifiers.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
test:
|
||||
- remap:
|
||||
A1:
|
||||
- [d, DUP]
|
||||
idle: true
|
||||
|
||||
- press: [a]
|
||||
keys: [a]
|
||||
- release: [a]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- press: [LEFT_SHIFT]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- press: [d]
|
||||
keys: [a]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- release: [LEFT_SHIFT, d]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
25
src/lib/assets/tests/actions/dup/release_keys.yml
Normal file
25
src/lib/assets/tests/actions/dup/release_keys.yml
Normal file
@@ -0,0 +1,25 @@
|
||||
test:
|
||||
- remap:
|
||||
A1:
|
||||
- [d, DUP]
|
||||
idle: true
|
||||
|
||||
- press: [a]
|
||||
keys: [a]
|
||||
- release: [a]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [a]
|
||||
keys: [a]
|
||||
- press: [d]
|
||||
keys: []
|
||||
- keys: [a]
|
||||
- release: [a, d]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
81
src/lib/assets/tests/actions/quickfix/general.yml
Normal file
81
src/lib/assets/tests/actions/quickfix/general.yml
Normal file
@@ -0,0 +1,81 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
remap:
|
||||
A1:
|
||||
- [q, QUICKFIX]
|
||||
addChords:
|
||||
- input: [[t, s, e]]
|
||||
output: [t, e, s, t]
|
||||
- input: [[t, s]]
|
||||
output: [s, e, t]
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [s, t]
|
||||
keys: [s, t]
|
||||
- release: [s, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [s]
|
||||
- keys: [e]
|
||||
- keys: [t]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [q]
|
||||
keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- release: [q]
|
||||
step: 16
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
83
src/lib/assets/tests/actions/quickfix/prepended.yml
Normal file
83
src/lib/assets/tests/actions/quickfix/prepended.yml
Normal file
@@ -0,0 +1,83 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
remap:
|
||||
A1:
|
||||
- [q, QUICKFIX]
|
||||
addChords:
|
||||
- input: [[t, s, e]]
|
||||
output: [t, e, s, t]
|
||||
- input: [[t, s]]
|
||||
output: [s, e, t]
|
||||
settings:
|
||||
chording:
|
||||
concatenation style: prepended
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [s, t]
|
||||
keys: [s, t]
|
||||
- release: [s, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [SPACE]
|
||||
- keys: [s]
|
||||
- keys: [e]
|
||||
- keys: [t]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [q]
|
||||
keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- release: [q]
|
||||
step: 16
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [SPACE]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: []
|
||||
idle: true
|
||||
65
src/lib/assets/tests/actions/quickfix/smart.yml
Normal file
65
src/lib/assets/tests/actions/quickfix/smart.yml
Normal file
@@ -0,0 +1,65 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
remap:
|
||||
A1:
|
||||
- [q, QUICKFIX]
|
||||
addChords:
|
||||
- input: [[t, s, e]]
|
||||
output: [t, e, s, t]
|
||||
- input: [[t, s]]
|
||||
output: [s, e, t]
|
||||
settings:
|
||||
chording:
|
||||
detection method: smart
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [s, t]
|
||||
- release: [s, t]
|
||||
- step: 16
|
||||
keys: [s]
|
||||
- keys: [e]
|
||||
- keys: [t]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [q]
|
||||
- release: [q]
|
||||
step: 16
|
||||
keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
65
src/lib/assets/tests/actions/quickfix/smart_prepended.yml
Normal file
65
src/lib/assets/tests/actions/quickfix/smart_prepended.yml
Normal file
@@ -0,0 +1,65 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
remap:
|
||||
A1:
|
||||
- [q, QUICKFIX]
|
||||
addChords:
|
||||
- input: [[t, s, e]]
|
||||
output: [t, e, s, t]
|
||||
- input: [[t, s]]
|
||||
output: [s, e, t]
|
||||
settings:
|
||||
chording:
|
||||
detection method: smart
|
||||
concatenation style: prepended
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [s, t]
|
||||
- release: [s, t]
|
||||
- step: 16
|
||||
keys: [SPACE]
|
||||
- keys: [s]
|
||||
- keys: [e]
|
||||
- keys: [t]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [q]
|
||||
- release: [q]
|
||||
step: 16
|
||||
keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: [SPACE]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: []
|
||||
idle: true
|
||||
79
src/lib/assets/tests/arpeggiates/capitalize.yml
Normal file
79
src/lib/assets/tests/arpeggiates/capitalize.yml
Normal file
@@ -0,0 +1,79 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[a, b]]
|
||||
output: [a, b, c]
|
||||
settings:
|
||||
arpeggiates:
|
||||
enable: 1
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
keys: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
keys: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [LEFT_SHIFT]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- release: [LEFT_SHIFT]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [x]
|
||||
keys: [x]
|
||||
- release: [x]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- press: [LEFT_SHIFT]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- release: [LEFT_SHIFT]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
74
src/lib/assets/tests/arpeggiates/capitalize_no_space.yml
Normal file
74
src/lib/assets/tests/arpeggiates/capitalize_no_space.yml
Normal file
@@ -0,0 +1,74 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[a, b]]
|
||||
output: [a, b, c, KSC_00]
|
||||
settings:
|
||||
arpeggiates:
|
||||
enable: 1
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
keys: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
keys: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [LEFT_SHIFT]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- release: [LEFT_SHIFT]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [x]
|
||||
keys: [x]
|
||||
- release: [x]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- press: [LEFT_SHIFT]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- release: [LEFT_SHIFT]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
65
src/lib/assets/tests/arpeggiates/custom_period.yml
Normal file
65
src/lib/assets/tests/arpeggiates/custom_period.yml
Normal file
@@ -0,0 +1,65 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[a, b]]
|
||||
output: [a, b, c]
|
||||
- input: [[ARPEGGIATE, .]]
|
||||
output: [JOIN, ., CAPITALIZE, JOIN]
|
||||
settings:
|
||||
arpeggiates:
|
||||
enable: 1
|
||||
autocorrect:
|
||||
maximum attempts: 0
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
keys: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
keys: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
keys: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [.]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
keys: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
80
src/lib/assets/tests/arpeggiates/prepended/capitalize.yml
Normal file
80
src/lib/assets/tests/arpeggiates/prepended/capitalize.yml
Normal file
@@ -0,0 +1,80 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[a, b]]
|
||||
output: [a, b, c]
|
||||
settings:
|
||||
arpeggiates:
|
||||
enable: 1
|
||||
chording:
|
||||
concatenation style: prepended
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
keys: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
keys: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [SPACE]
|
||||
- keys: [a]
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [LEFT_SHIFT]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- release: [LEFT_SHIFT]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [SPACE]
|
||||
- keys: [a]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [x]
|
||||
keys: [x]
|
||||
- release: [x]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- press: [LEFT_SHIFT]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- release: [LEFT_SHIFT]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
@@ -0,0 +1,76 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[a, b]]
|
||||
output: [a, b, c, KSC_00]
|
||||
settings:
|
||||
arpeggiates:
|
||||
enable: 1
|
||||
chording:
|
||||
concatenation style: prepended
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
keys: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
keys: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [LEFT_SHIFT]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- release: [LEFT_SHIFT]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [x]
|
||||
keys: [x]
|
||||
- release: [x]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- press: [LEFT_SHIFT]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- release: [LEFT_SHIFT]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
63
src/lib/assets/tests/arpeggiates/prepended/custom_period.yml
Normal file
63
src/lib/assets/tests/arpeggiates/prepended/custom_period.yml
Normal file
@@ -0,0 +1,63 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[a, b]]
|
||||
output: [a, b, c]
|
||||
- input: [[ARPEGGIATE, .]]
|
||||
output: [JOIN, ., CAPITALIZE, JOIN]
|
||||
settings:
|
||||
arpeggiates:
|
||||
enable: 1
|
||||
chording:
|
||||
concatenation style: prepended
|
||||
autocorrect:
|
||||
maximum attempts: 0
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
keys: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
keys: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
keys: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [.]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
keys: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [SPACE]
|
||||
- keys: [a]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: []
|
||||
idle: true
|
||||
55
src/lib/assets/tests/arpeggiates/smart/capitalize.yml
Normal file
55
src/lib/assets/tests/arpeggiates/smart/capitalize.yml
Normal file
@@ -0,0 +1,55 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[a, b]]
|
||||
output: [a, b, c]
|
||||
settings:
|
||||
chording:
|
||||
detection method: smart
|
||||
arpeggiates:
|
||||
enable: 1
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: [a]
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [LEFT_SHIFT]
|
||||
- release: [LEFT_SHIFT]
|
||||
- step: 16
|
||||
keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [x]
|
||||
- release: [x]
|
||||
- step: 16
|
||||
keys: [x]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [LEFT_SHIFT]
|
||||
- release: [LEFT_SHIFT]
|
||||
- step: 16
|
||||
modifiers:
|
||||
lshift: true
|
||||
- modifiers: {}
|
||||
idle: true
|
||||
@@ -0,0 +1,51 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[a, b]]
|
||||
output: [a, b, c, KSC_00]
|
||||
settings:
|
||||
chording:
|
||||
detection method: smart
|
||||
arpeggiates:
|
||||
enable: 1
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: [a]
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [LEFT_SHIFT]
|
||||
- release: [LEFT_SHIFT]
|
||||
- step: 16
|
||||
keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [x]
|
||||
- release: [x]
|
||||
- step: 16
|
||||
keys: [x]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [LEFT_SHIFT]
|
||||
- release: [LEFT_SHIFT]
|
||||
- step: 16
|
||||
modifiers:
|
||||
lshift: true
|
||||
- modifiers: {}
|
||||
idle: true
|
||||
59
src/lib/assets/tests/arpeggiates/smart/custom_period.yml
Normal file
59
src/lib/assets/tests/arpeggiates/smart/custom_period.yml
Normal file
@@ -0,0 +1,59 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[a, b]]
|
||||
output: [a, b, c]
|
||||
- input: [[ARPEGGIATE, .]]
|
||||
output: [JOIN, ., CAPITALIZE, JOIN]
|
||||
settings:
|
||||
chording:
|
||||
detection method: smart
|
||||
arpeggiates:
|
||||
enable: 1
|
||||
autocorrect:
|
||||
maximum attempts: 0
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: [.]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: [a]
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: [BKSP]
|
||||
- keys: [.]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: [a]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
@@ -0,0 +1,51 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[a, b]]
|
||||
output: [a, b, c]
|
||||
- input: [[ARPEGGIATE, .]]
|
||||
output: [JOIN, ., CAPITALIZE, JOIN]
|
||||
settings:
|
||||
arpeggiates:
|
||||
enable: 1
|
||||
chording:
|
||||
detection method: smart
|
||||
concatenation style: prepended
|
||||
autocorrect:
|
||||
maximum attempts: 0
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: [.]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: [a]
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: [.]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [a, b]
|
||||
- release: [a, b]
|
||||
- step: 16
|
||||
keys: [SPACE]
|
||||
- keys: [a]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: []
|
||||
idle: true
|
||||
76
src/lib/assets/tests/autocorrect/dup_chord.yml
Normal file
76
src/lib/assets/tests/autocorrect/dup_chord.yml
Normal file
@@ -0,0 +1,76 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
remap:
|
||||
A1:
|
||||
- [d, DUP]
|
||||
addChords:
|
||||
- input: [[h, z]]
|
||||
output: [t, h, e]
|
||||
- input: [[m, o, h, DUP, a, y]]
|
||||
output: [m, o, t, i, v, a, t, i, o, n]
|
||||
settings:
|
||||
chording:
|
||||
detection method: smart
|
||||
concatenation style: prepended
|
||||
idle: true
|
||||
|
||||
- press: [x]
|
||||
- release: [x]
|
||||
- step: 16
|
||||
keys: [x]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [h, z]
|
||||
- release: [h, z]
|
||||
- step: 16
|
||||
keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [h]
|
||||
- keys: [e]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [d]
|
||||
- press: [m, h, a, y]
|
||||
- release: [d, m, h, a, y]
|
||||
- step: 16
|
||||
keys: [e, a, h, m, y]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [d]
|
||||
- press: [m, o, h, a, y]
|
||||
- release: [d, m, o, h, a, y]
|
||||
- step: 16
|
||||
keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [SPACE]
|
||||
- keys: [m]
|
||||
- keys: [o]
|
||||
- keys: [t]
|
||||
- keys: [i]
|
||||
- keys: [v]
|
||||
- keys: [a]
|
||||
- keys: [t]
|
||||
- keys: [i]
|
||||
- keys: [o]
|
||||
- keys: [n]
|
||||
- keys: []
|
||||
idle: true
|
||||
@@ -0,0 +1,67 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
remap:
|
||||
A1:
|
||||
- [d, DUP]
|
||||
addChords:
|
||||
- input: [[h, z]]
|
||||
output: [t, h, e]
|
||||
- input: [[m, o, h, DUP, a, y]]
|
||||
output: [m, o, t, i, v, a, t, i, o, n]
|
||||
settings:
|
||||
chording:
|
||||
detection method: smart
|
||||
concatenation style: prepended
|
||||
autocorrect:
|
||||
maximum attempts: 0
|
||||
idle: true
|
||||
|
||||
- press: [x]
|
||||
- release: [x]
|
||||
- step: 16
|
||||
keys: [x]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [h, z]
|
||||
- release: [h, z]
|
||||
- step: 16
|
||||
keys: [t]
|
||||
- keys: [h]
|
||||
- keys: [e]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [d]
|
||||
- press: [m, h, a, y]
|
||||
- release: [d, m, h, a, y]
|
||||
- step: 16
|
||||
keys: [e, a, h, m, y]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [d]
|
||||
- press: [m, o, h, a, y]
|
||||
- release: [d, m, o, h, a, y]
|
||||
- step: 16
|
||||
keys: [m]
|
||||
- keys: [o]
|
||||
- keys: [t]
|
||||
- keys: [i]
|
||||
- keys: [v]
|
||||
- keys: [a]
|
||||
- keys: [t]
|
||||
- keys: [i]
|
||||
- keys: [o]
|
||||
- keys: [n]
|
||||
- keys: []
|
||||
idle: true
|
||||
24
src/lib/assets/tests/chording/chord.yml
Normal file
24
src/lib/assets/tests/chording/chord.yml
Normal file
@@ -0,0 +1,24 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[t, s, e]]
|
||||
output: [t, e, s, t]
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
23
src/lib/assets/tests/chording/chord_nospace.yml
Normal file
23
src/lib/assets/tests/chording/chord_nospace.yml
Normal file
@@ -0,0 +1,23 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[t, s, e]]
|
||||
output: [t, e, s, t, KSC_00]
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: []
|
||||
idle: true
|
||||
78
src/lib/assets/tests/chording/compound.yml
Normal file
78
src/lib/assets/tests/chording/compound.yml
Normal file
@@ -0,0 +1,78 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[i, n, g]]
|
||||
output: [t, h, i, n, g]
|
||||
- input: [[t, s, e]]
|
||||
output: [t, e, s, t]
|
||||
- input: [[i, n, g], [t, s, e]]
|
||||
output: [t, e, s, t, i, n, g]
|
||||
idle: true
|
||||
|
||||
- press: [i, n, g]
|
||||
keys: [g, i, n]
|
||||
- release: [i, n, g]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [h]
|
||||
- keys: [i]
|
||||
- keys: [n]
|
||||
- keys: [g]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [i, n, g]
|
||||
keys: [g, i, n]
|
||||
- release: [i, n, g]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: [i]
|
||||
- keys: [n]
|
||||
- keys: [g]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
45
src/lib/assets/tests/chording/dup_input.yml
Normal file
45
src/lib/assets/tests/chording/dup_input.yml
Normal file
@@ -0,0 +1,45 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
remap:
|
||||
A1:
|
||||
- [d, DUP]
|
||||
addChords:
|
||||
- input: [[DUP, s, e]]
|
||||
output: [t, e, s, t]
|
||||
settings:
|
||||
autocorrect:
|
||||
maximum attempts: 0
|
||||
idle: true
|
||||
|
||||
- press: [s]
|
||||
keys: [s]
|
||||
- release: [s]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [s]
|
||||
keys: [s]
|
||||
- press: [d]
|
||||
keys: []
|
||||
- keys: [s]
|
||||
- press: [e]
|
||||
keys: [s, e]
|
||||
- release: [d, e, s]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
27
src/lib/assets/tests/chording/min_chord_inputs.yml
Normal file
27
src/lib/assets/tests/chording/min_chord_inputs.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[t]]
|
||||
output: [t, e, s, t]
|
||||
idle: true
|
||||
|
||||
- press: [t]
|
||||
keys: [t]
|
||||
- release: [t]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [t]
|
||||
keys: [t]
|
||||
- press: [LEFT_SHIFT]
|
||||
keys: [t]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- release: [LEFT_SHIFT, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
58
src/lib/assets/tests/chording/space_input.yml
Normal file
58
src/lib/assets/tests/chording/space_input.yml
Normal file
@@ -0,0 +1,58 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[SPACE, s]]
|
||||
output: [a, b]
|
||||
idle: true
|
||||
|
||||
- press: [a]
|
||||
keys: [a]
|
||||
- release: [a]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- press: [SPACE]
|
||||
keys: [SPACE]
|
||||
- release: [SPACE]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [SPACE]
|
||||
keys: [SPACE]
|
||||
- press: [s]
|
||||
keys: [SPACE, s]
|
||||
- release: [SPACE, s]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
- keys: [b]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [s]
|
||||
keys: [s]
|
||||
- press: [SPACE]
|
||||
keys: [s, SPACE]
|
||||
- release: [SPACE, s]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
- keys: [b]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
28
src/lib/assets/tests/debounce/basic.yml
Normal file
28
src/lib/assets/tests/debounce/basic.yml
Normal file
@@ -0,0 +1,28 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[t, h, e]]
|
||||
output: [t, h, e]
|
||||
settings:
|
||||
keyboard:
|
||||
debounce press: 4
|
||||
debounce release: 5
|
||||
idle: true
|
||||
|
||||
- press: [t]
|
||||
keys: [t]
|
||||
- release: [t]
|
||||
- press: [a]
|
||||
keys: [t, a]
|
||||
- release: [a]
|
||||
- keys: [a]
|
||||
- press: [t]
|
||||
- keys: []
|
||||
- step: 1
|
||||
- step: 1
|
||||
- keys: [t]
|
||||
- release: [t]
|
||||
- step: 1
|
||||
- step: 1
|
||||
- keys: []
|
||||
idle: true
|
||||
34
src/lib/assets/tests/fnshift.yml
Normal file
34
src/lib/assets/tests/fnshift.yml
Normal file
@@ -0,0 +1,34 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
remap:
|
||||
A1:
|
||||
- [l, KM_3_L]
|
||||
- [r, KM_3_R]
|
||||
- [a, a]
|
||||
A2:
|
||||
- [l, KM_3_L]
|
||||
- [r, KM_3_R]
|
||||
- [a, b]
|
||||
A3:
|
||||
- [l, KM_3_L]
|
||||
- [r, KM_3_R]
|
||||
- [a, c]
|
||||
idle: true
|
||||
|
||||
- press: [a]
|
||||
keys: [a]
|
||||
- release: [a]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [l]
|
||||
- press: [a]
|
||||
keys: [c]
|
||||
- release: [l, a]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
82
src/lib/assets/tests/hyperspace/camel_case.yml
Normal file
82
src/lib/assets/tests/hyperspace/camel_case.yml
Normal file
@@ -0,0 +1,82 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[h, y]]
|
||||
output: [CAPTURE, CAPITALIZE, CAPTURE]
|
||||
- input: [[t, s, e]]
|
||||
output: [t, e, s, t]
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [h, y]
|
||||
keys: [h, y]
|
||||
- release: [h, y]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: []
|
||||
idle: true
|
||||
83
src/lib/assets/tests/hyperspace/kebab_case.yml
Normal file
83
src/lib/assets/tests/hyperspace/kebab_case.yml
Normal file
@@ -0,0 +1,83 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[h, y]]
|
||||
output: [CAPTURE, "-", CAPTURE]
|
||||
- input: [[t, s, e]]
|
||||
output: [t, e, s, t]
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [h, y]
|
||||
keys: [h, y]
|
||||
- release: [h, y]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: ["-"]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: ["-"]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: ["-"]
|
||||
- keys: []
|
||||
idle: true
|
||||
85
src/lib/assets/tests/hyperspace/prepended/camel_case.yml
Normal file
85
src/lib/assets/tests/hyperspace/prepended/camel_case.yml
Normal file
@@ -0,0 +1,85 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[h, y]]
|
||||
output: [CAPTURE, CAPITALIZE, CAPTURE]
|
||||
- input: [[t, s, e]]
|
||||
output: [t, e, s, t]
|
||||
settings:
|
||||
chording:
|
||||
concatenation style: prepended
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [h, y]
|
||||
keys: [h, y]
|
||||
- release: [h, y]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: []
|
||||
idle: true
|
||||
85
src/lib/assets/tests/hyperspace/prepended/kebab_case.yml
Normal file
85
src/lib/assets/tests/hyperspace/prepended/kebab_case.yml
Normal file
@@ -0,0 +1,85 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[h, y]]
|
||||
output: [CAPTURE, "-", CAPTURE]
|
||||
- input: [[t, s, e]]
|
||||
output: [t, e, s, t]
|
||||
settings:
|
||||
chording:
|
||||
concatenation style: prepended
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [h, y]
|
||||
keys: [h, y]
|
||||
- release: [h, y]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: ["-"]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: ["-"]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: []
|
||||
idle: true
|
||||
28
src/lib/assets/tests/modifiers/capitalize.yml
Normal file
28
src/lib/assets/tests/modifiers/capitalize.yml
Normal file
@@ -0,0 +1,28 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[a, b]]
|
||||
output: [a, b, c]
|
||||
idle: true
|
||||
|
||||
- press: [LEFT_SHIFT]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- press: [LEFT_SHIFT, a, b]
|
||||
modifiers:
|
||||
lshift: true
|
||||
keys: [a, b]
|
||||
- release: [LEFT_SHIFT, a, b]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
80
src/lib/assets/tests/prepended/compound.yml
Normal file
80
src/lib/assets/tests/prepended/compound.yml
Normal file
@@ -0,0 +1,80 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[i, n, g]]
|
||||
output: [t, h, i, n, g]
|
||||
- input: [[t, s, e]]
|
||||
output: [t, e, s, t]
|
||||
- input: [[i, n, g], [t, s, e]]
|
||||
output: [t, e, s, t, i, n, g]
|
||||
settings:
|
||||
chording:
|
||||
concatenation style: prepended
|
||||
idle: true
|
||||
|
||||
- press: [i, n, g]
|
||||
keys: [g, i, n]
|
||||
- release: [i, n, g]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [h]
|
||||
- keys: [i]
|
||||
- keys: [n]
|
||||
- keys: [g]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [s, e, t]
|
||||
keys: [e, s, t]
|
||||
- release: [s, e, t]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [SPACE]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [i, n, g]
|
||||
keys: [g, i, n]
|
||||
- release: [i, n, g]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [SPACE]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: [i]
|
||||
- keys: [n]
|
||||
- keys: [g]
|
||||
- keys: []
|
||||
idle: true
|
||||
45
src/lib/assets/tests/smart_detection/general.yml
Normal file
45
src/lib/assets/tests/smart_detection/general.yml
Normal file
@@ -0,0 +1,45 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[h, z]]
|
||||
output: [t, h, e]
|
||||
settings:
|
||||
chording:
|
||||
detection method: smart
|
||||
concatenation style: prepended
|
||||
autocorrect:
|
||||
maximum attempts: 0
|
||||
idle: true
|
||||
|
||||
- press: [x]
|
||||
- release: [x]
|
||||
- step: 16
|
||||
keys: [x]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [h, z]
|
||||
- release: [h, z]
|
||||
- step: 16
|
||||
keys: [t]
|
||||
- keys: [h]
|
||||
- keys: [e]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [x]
|
||||
- release: [x]
|
||||
- step: 16
|
||||
keys: [x]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [x]
|
||||
- step: 120
|
||||
keys: [x]
|
||||
- release: [x]
|
||||
keys: []
|
||||
idle: true
|
||||
49
src/lib/assets/tests/smart_detection/newline.yml
Normal file
49
src/lib/assets/tests/smart_detection/newline.yml
Normal file
@@ -0,0 +1,49 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[h, z]]
|
||||
output: [t, h, e]
|
||||
settings:
|
||||
chording:
|
||||
detection method: smart
|
||||
idle: true
|
||||
|
||||
- press: [ENTER]
|
||||
- release: [ENTER]
|
||||
- step: 16
|
||||
keys: [ENTER]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [h, z]
|
||||
- release: [h, z]
|
||||
- step: 16
|
||||
keys: [t]
|
||||
- keys: [h]
|
||||
- keys: [e]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- press: [ENTER]
|
||||
- release: [ENTER]
|
||||
- step: 16
|
||||
keys: [ENTER]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [h, z]
|
||||
- release: [h, z]
|
||||
- step: 16
|
||||
keys: [t]
|
||||
- keys: [h]
|
||||
- keys: [e]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
109
src/lib/assets/tests/tap_dance/arpeggiate_override.yml
Normal file
109
src/lib/assets/tests/tap_dance/arpeggiate_override.yml
Normal file
@@ -0,0 +1,109 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[t, s]]
|
||||
output: [t, e, s, t]
|
||||
- input: [[ARPEGGIATE, .]]
|
||||
output: [JOIN, ., CAPITALIZE, JOIN]
|
||||
- input: [[., .]]
|
||||
output: [JOIN, ., KSC_00]
|
||||
- input: [[., ., .]]
|
||||
output: [JOIN, ., ., ., CAPITALIZE, JOIN]
|
||||
settings:
|
||||
chording:
|
||||
tap dance tolerance: 175
|
||||
autocorrect:
|
||||
maximum attempts: 0
|
||||
arpeggiates:
|
||||
enable: 1
|
||||
idle: true
|
||||
|
||||
- press: [t, s]
|
||||
keys: [s, t]
|
||||
- release: [t, s]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
keys: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [.]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
keys: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [.]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
keys: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [.]
|
||||
- keys: []
|
||||
- keys: [.]
|
||||
- keys: []
|
||||
- keys: [.]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [t, s]
|
||||
keys: [s, t]
|
||||
- release: [t, s]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
102
src/lib/assets/tests/tap_dance/arpeggiate_period.yml
Normal file
102
src/lib/assets/tests/tap_dance/arpeggiate_period.yml
Normal file
@@ -0,0 +1,102 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[t, s]]
|
||||
output: [t, e, s, t]
|
||||
- input: [[., .]]
|
||||
output: [JOIN, ., CAPITALIZE, JOIN]
|
||||
- input: [[., ., .]]
|
||||
output: [JOIN, ., ., ., CAPITALIZE, JOIN]
|
||||
settings:
|
||||
chording:
|
||||
tap dance tolerance: 175
|
||||
autocorrect:
|
||||
maximum attempts: 0
|
||||
idle: true
|
||||
|
||||
- press: [t, s]
|
||||
keys: [s, t]
|
||||
- release: [t, s]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
keys: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
keys: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [.]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
keys: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [.]
|
||||
- keys: []
|
||||
- keys: [.]
|
||||
- keys: []
|
||||
- keys: [.]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [t, s]
|
||||
keys: [s, t]
|
||||
- release: [t, s]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [t]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
103
src/lib/assets/tests/tap_dance/general.yml
Normal file
103
src/lib/assets/tests/tap_dance/general.yml
Normal file
@@ -0,0 +1,103 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[a, a]]
|
||||
output: [b, c]
|
||||
- input: [[a, a, a, a, a]]
|
||||
output: [d, e]
|
||||
settings:
|
||||
chording:
|
||||
tap dance tolerance: 175
|
||||
autocorrect:
|
||||
maximum attempts: 0
|
||||
idle: true
|
||||
|
||||
- press: [a]
|
||||
keys: [a]
|
||||
- release: [a]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- step: 180
|
||||
idle: true
|
||||
|
||||
- press: [a]
|
||||
keys: [a]
|
||||
- release: [a]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [a]
|
||||
keys: [a]
|
||||
- release: [a]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [a]
|
||||
keys: [a]
|
||||
- release: [a]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
- keys: []
|
||||
- keys: [a]
|
||||
- keys: []
|
||||
- keys: [a]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [a]
|
||||
keys: [a]
|
||||
- release: [a]
|
||||
- step: 16
|
||||
keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [a]
|
||||
keys: [a]
|
||||
- release: [a]
|
||||
- step: 16
|
||||
keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [d]
|
||||
- keys: [e]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
88
src/lib/assets/tests/tap_dance/smart/arpeggiate_override.yml
Normal file
88
src/lib/assets/tests/tap_dance/smart/arpeggiate_override.yml
Normal file
@@ -0,0 +1,88 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[t, s]]
|
||||
output: [t, e, s, t]
|
||||
- input: [[ARPEGGIATE, .]]
|
||||
output: [JOIN, ., CAPITALIZE, JOIN]
|
||||
- input: [[., .]]
|
||||
output: [JOIN, ., KSC_00]
|
||||
- input: [[., ., .]]
|
||||
output: [JOIN, ., ., ., CAPITALIZE, JOIN]
|
||||
settings:
|
||||
chording:
|
||||
tap dance tolerance: 175
|
||||
detection method: smart
|
||||
autocorrect:
|
||||
maximum attempts: 0
|
||||
arpeggiates:
|
||||
enable: 1
|
||||
idle: true
|
||||
|
||||
- press: [t, s]
|
||||
- release: [t, s]
|
||||
- step: 16
|
||||
keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: [BKSP]
|
||||
- keys: [.]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [.]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: [BKSP]
|
||||
- keys: [.]
|
||||
- keys: []
|
||||
- keys: [.]
|
||||
- keys: []
|
||||
- keys: [.]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [t, s]
|
||||
- release: [t, s]
|
||||
- step: 16
|
||||
keys: [t]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
85
src/lib/assets/tests/tap_dance/smart/arpeggiate_period.yml
Normal file
85
src/lib/assets/tests/tap_dance/smart/arpeggiate_period.yml
Normal file
@@ -0,0 +1,85 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[t, s]]
|
||||
output: [t, e, s, t]
|
||||
- input: [[., .]]
|
||||
output: [JOIN, ., CAPITALIZE, JOIN]
|
||||
- input: [[., ., .]]
|
||||
output: [JOIN, ., ., ., CAPITALIZE, JOIN]
|
||||
settings:
|
||||
chording:
|
||||
tap dance tolerance: 175
|
||||
detection method: smart
|
||||
autocorrect:
|
||||
maximum attempts: 0
|
||||
idle: true
|
||||
|
||||
- press: [t, s]
|
||||
- release: [t, s]
|
||||
- step: 16
|
||||
keys: [t]
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: [.]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [.]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [.]
|
||||
- release: [.]
|
||||
- step: 16
|
||||
keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [.]
|
||||
- keys: []
|
||||
- keys: [.]
|
||||
- keys: []
|
||||
- keys: [.]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [t, s]
|
||||
- release: [t, s]
|
||||
- step: 16
|
||||
keys: [t]
|
||||
modifiers:
|
||||
lshift: true
|
||||
- keys: [e]
|
||||
- keys: [s]
|
||||
- keys: [t]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
92
src/lib/assets/tests/tap_dance/smart/general.yml
Normal file
92
src/lib/assets/tests/tap_dance/smart/general.yml
Normal file
@@ -0,0 +1,92 @@
|
||||
test:
|
||||
- clearChords: true
|
||||
addChords:
|
||||
- input: [[a, a]]
|
||||
output: [b, c]
|
||||
- input: [[a, a, a, a, a]]
|
||||
output: [d, e]
|
||||
settings:
|
||||
chording:
|
||||
tap dance tolerance: 175
|
||||
detection method: smart
|
||||
autocorrect:
|
||||
maximum attempts: 0
|
||||
idle: true
|
||||
|
||||
- press: [a]
|
||||
- release: [a]
|
||||
- step: 16
|
||||
keys: [a]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 180
|
||||
idle: true
|
||||
|
||||
- press: [a]
|
||||
- release: [a]
|
||||
- step: 16
|
||||
keys: [a]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [a]
|
||||
- release: [a]
|
||||
- step: 16
|
||||
keys: [BKSP]
|
||||
- keys: [b]
|
||||
- keys: [c]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [a]
|
||||
- release: [a]
|
||||
- step: 16
|
||||
keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [a]
|
||||
- keys: []
|
||||
- keys: [a]
|
||||
- keys: []
|
||||
- keys: [a]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [a]
|
||||
- release: [a]
|
||||
- step: 16
|
||||
keys: [a]
|
||||
- keys: []
|
||||
idle: true
|
||||
|
||||
- step: 16
|
||||
idle: true
|
||||
|
||||
- press: [a]
|
||||
- release: [a]
|
||||
- step: 16
|
||||
keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: []
|
||||
- keys: [BKSP]
|
||||
- keys: [d]
|
||||
- keys: [e]
|
||||
- keys: [SPACE]
|
||||
- keys: []
|
||||
idle: true
|
||||
@@ -69,7 +69,7 @@
|
||||
style:rotate="{rotate}deg"
|
||||
use:action={{ title: tooltip }}
|
||||
>
|
||||
{#if code !== 0}
|
||||
{#if code !== 0 && code != 1023}
|
||||
{dynamicMapping || icon || display || id || `0x${code.toString(16)}`}
|
||||
{/if}
|
||||
{#if !isApplied}
|
||||
|
||||
@@ -103,6 +103,7 @@
|
||||
[-rotY, -rotX],
|
||||
[-rotX, -rotY],
|
||||
[rotX, rotY],
|
||||
[rotY, rotX],
|
||||
]}
|
||||
/>
|
||||
{/if}
|
||||
|
||||
@@ -178,13 +178,16 @@ export class CharaDevice {
|
||||
this.version = await this.send(1, ["VERSION"]).then(
|
||||
([version]) => version,
|
||||
);
|
||||
if (semverGte(this.version, "2.2.0-beta.4")) {
|
||||
this.profileCount = 3;
|
||||
}
|
||||
const [company, device, chipset] = await this.send(3, ["ID"]);
|
||||
this.company = company as typeof this.company;
|
||||
this.device = device as typeof this.device;
|
||||
this.chipset = chipset as typeof this.chipset;
|
||||
if (semverGte(this.version, "2.2.0-beta.4")) {
|
||||
this.profileCount = this.chipset === "M0" ? 2 : 3;
|
||||
}
|
||||
if (semverGte(this.version, "2.2.0-beta.20")) {
|
||||
this.layerCount = this.chipset === "M0" ? 3 : 4;
|
||||
}
|
||||
this.keyCount = KEY_COUNTS[this.device];
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
|
||||
28
src/routes/recipes/+page.svelte
Normal file
28
src/routes/recipes/+page.svelte
Normal file
@@ -0,0 +1,28 @@
|
||||
<script lang="ts">
|
||||
import Recipe from "./Recipe.svelte";
|
||||
|
||||
const tests = import.meta.glob("$lib/assets/tests/**/*.yml");
|
||||
</script>
|
||||
|
||||
<h1>Recipes</h1>
|
||||
|
||||
<p>These are example uses, taken directly from our E2E testing library.</p>
|
||||
|
||||
<div class="recipes">
|
||||
{#each Object.entries(tests) as [path, resolver]}
|
||||
{#await resolver() then module}
|
||||
<section>
|
||||
<Recipe test={module.default} />
|
||||
</section>
|
||||
{/await}
|
||||
{/each}
|
||||
</div>
|
||||
|
||||
<style lang="scss">
|
||||
.recipes {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 2rem;
|
||||
overflow-y: auto;
|
||||
}
|
||||
</style>
|
||||
148
src/routes/recipes/Recipe.svelte
Normal file
148
src/routes/recipes/Recipe.svelte
Normal file
@@ -0,0 +1,148 @@
|
||||
<script lang="ts">
|
||||
import CharRecorder from "$lib/charrecorder/CharRecorder.svelte";
|
||||
import type { Replay } from "$lib/charrecorder/core/types";
|
||||
import type { E2eTest } from "./test-types";
|
||||
|
||||
let { test }: { test: E2eTest } = $props();
|
||||
|
||||
const replace = new Map<string, string>([
|
||||
["SPACE", "Space"],
|
||||
["ENTER", "Enter"],
|
||||
["BKSP", "Backspace"],
|
||||
["e", "KeyE"],
|
||||
["t", "KeyT"],
|
||||
]);
|
||||
|
||||
const replaceOut = new Map<string, string>([
|
||||
["SPACE", " "],
|
||||
["ENTER", "\n"],
|
||||
["BKSP", "Backspace"],
|
||||
]);
|
||||
|
||||
let timescale = $state(10);
|
||||
let idleHold = $state(500);
|
||||
let replayDelay = $state(1000);
|
||||
|
||||
let replay: Replay = $derived.by(() => {
|
||||
const replay: Replay = {
|
||||
start: 0,
|
||||
finish: 0,
|
||||
keys: [],
|
||||
};
|
||||
let timeIndex = 0;
|
||||
let held = new Map<string, any>();
|
||||
for (const it of test.test) {
|
||||
if (it.keys) {
|
||||
for (const key of it.keys) {
|
||||
if (held.has(key)) continue;
|
||||
held.set(key, [
|
||||
replaceOut.get(key) ?? key,
|
||||
replace.get(key) ?? key,
|
||||
timeIndex,
|
||||
0,
|
||||
]);
|
||||
replay.keys.push(held.get(key));
|
||||
}
|
||||
for (const [key, value] of held) {
|
||||
if (!it.keys.includes(key)) {
|
||||
value[3] = timeIndex - value[2];
|
||||
held.delete(key);
|
||||
}
|
||||
}
|
||||
}
|
||||
timeIndex += timescale * (it.step ?? 1);
|
||||
if (it.idle) {
|
||||
timeIndex += idleHold;
|
||||
}
|
||||
}
|
||||
|
||||
replay.finish = timeIndex;
|
||||
return replay;
|
||||
});
|
||||
|
||||
let graph = $derived.by(() => {
|
||||
const rows: string[][] = [[]];
|
||||
for (const it of test.test) {
|
||||
if (it.keys?.includes("BKSP")) {
|
||||
if (rows.at(-1)!.at(-1) === " ") {
|
||||
rows.at(-1)!.pop();
|
||||
} else {
|
||||
rows.push(Array.from({ length: rows.at(-1)!.length - 1 }, () => " "));
|
||||
}
|
||||
} else {
|
||||
for (const key of it.keys ?? []) {
|
||||
if (key === "SPACE") {
|
||||
rows.at(-1)!.push("␣");
|
||||
} else if (key === "ENTER") {
|
||||
rows.at(-1)!.push("↵");
|
||||
} else {
|
||||
rows.at(-1)!.push(key);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return rows;
|
||||
});
|
||||
</script>
|
||||
|
||||
<section>
|
||||
<div class="replay">
|
||||
<CharRecorder
|
||||
{replay}
|
||||
cursor={true}
|
||||
ondone={() => setTimeout(() => (replay = { ...replay }), replayDelay)}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<details>
|
||||
<summary>Breakdown</summary>
|
||||
<div class="graph">
|
||||
{#each graph as row, i}
|
||||
{#each row as char, j}
|
||||
{#if char !== " "}
|
||||
<div
|
||||
class:deleted={(graph[i + 1]?.findIndex((it) => it !== " ") ??
|
||||
Infinity) <= j}
|
||||
style:grid-row={i + 1}
|
||||
style:grid-column={j + 1}
|
||||
>
|
||||
{char}
|
||||
</div>
|
||||
{/if}
|
||||
{/each}
|
||||
{/each}
|
||||
</div>
|
||||
</details>
|
||||
</section>
|
||||
|
||||
<style lang="scss">
|
||||
section {
|
||||
font-family: monospace;
|
||||
}
|
||||
|
||||
summary {
|
||||
cursor: pointer;
|
||||
margin-top: 0.5rem;
|
||||
font-weight: bold;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.replay {
|
||||
background: #f0f0f0;
|
||||
padding: 0.6rem;
|
||||
font-weight: bold;
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
|
||||
.graph {
|
||||
display: grid;
|
||||
align-items: center;
|
||||
justify-items: center;
|
||||
width: min-content;
|
||||
}
|
||||
|
||||
.deleted {
|
||||
opacity: 0.6;
|
||||
text-decoration: line-through;
|
||||
}
|
||||
</style>
|
||||
20
src/routes/recipes/test-types.ts
Normal file
20
src/routes/recipes/test-types.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
export interface E2eAddChord {
|
||||
input: string[][];
|
||||
output: string[];
|
||||
}
|
||||
|
||||
export interface E2eTestItem {
|
||||
keys?: string[];
|
||||
modifiers?: Record<string, boolean>;
|
||||
press?: string[];
|
||||
release?: string[];
|
||||
step?: number;
|
||||
idle?: boolean;
|
||||
clearChords?: boolean;
|
||||
addChords?: E2eAddChord[];
|
||||
settings: Record<string, Record<string, string | number>>;
|
||||
}
|
||||
|
||||
export interface E2eTest {
|
||||
test: E2eTestItem[];
|
||||
}
|
||||
Reference in New Issue
Block a user