diff --git a/icons.config.js b/icons.config.js index b9a19daf..d8a197c0 100644 --- a/icons.config.js +++ b/icons.config.js @@ -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", diff --git a/src/lib/assets/tests/actions/capitalize.yml b/src/lib/assets/tests/actions/capitalize.yml new file mode 100644 index 00000000..84a2a1e4 --- /dev/null +++ b/src/lib/assets/tests/actions/capitalize.yml @@ -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 diff --git a/src/lib/assets/tests/actions/capitalize_no_space.yml b/src/lib/assets/tests/actions/capitalize_no_space.yml new file mode 100644 index 00000000..e3558c81 --- /dev/null +++ b/src/lib/assets/tests/actions/capitalize_no_space.yml @@ -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 diff --git a/src/lib/assets/tests/actions/dup/dup.yml b/src/lib/assets/tests/actions/dup/dup.yml new file mode 100644 index 00000000..1721f47e --- /dev/null +++ b/src/lib/assets/tests/actions/dup/dup.yml @@ -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 diff --git a/src/lib/assets/tests/actions/dup/modifiers.yml b/src/lib/assets/tests/actions/dup/modifiers.yml new file mode 100644 index 00000000..66c49fdb --- /dev/null +++ b/src/lib/assets/tests/actions/dup/modifiers.yml @@ -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 diff --git a/src/lib/assets/tests/actions/dup/release_keys.yml b/src/lib/assets/tests/actions/dup/release_keys.yml new file mode 100644 index 00000000..e41a652a --- /dev/null +++ b/src/lib/assets/tests/actions/dup/release_keys.yml @@ -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 diff --git a/src/lib/assets/tests/actions/quickfix/general.yml b/src/lib/assets/tests/actions/quickfix/general.yml new file mode 100644 index 00000000..dc718939 --- /dev/null +++ b/src/lib/assets/tests/actions/quickfix/general.yml @@ -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 diff --git a/src/lib/assets/tests/actions/quickfix/prepended.yml b/src/lib/assets/tests/actions/quickfix/prepended.yml new file mode 100644 index 00000000..1268f443 --- /dev/null +++ b/src/lib/assets/tests/actions/quickfix/prepended.yml @@ -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 diff --git a/src/lib/assets/tests/actions/quickfix/smart.yml b/src/lib/assets/tests/actions/quickfix/smart.yml new file mode 100644 index 00000000..bb2683c1 --- /dev/null +++ b/src/lib/assets/tests/actions/quickfix/smart.yml @@ -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 diff --git a/src/lib/assets/tests/actions/quickfix/smart_prepended.yml b/src/lib/assets/tests/actions/quickfix/smart_prepended.yml new file mode 100644 index 00000000..c2afad52 --- /dev/null +++ b/src/lib/assets/tests/actions/quickfix/smart_prepended.yml @@ -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 diff --git a/src/lib/assets/tests/arpeggiates/capitalize.yml b/src/lib/assets/tests/arpeggiates/capitalize.yml new file mode 100644 index 00000000..f0975a43 --- /dev/null +++ b/src/lib/assets/tests/arpeggiates/capitalize.yml @@ -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 diff --git a/src/lib/assets/tests/arpeggiates/capitalize_no_space.yml b/src/lib/assets/tests/arpeggiates/capitalize_no_space.yml new file mode 100644 index 00000000..58f3f6fe --- /dev/null +++ b/src/lib/assets/tests/arpeggiates/capitalize_no_space.yml @@ -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 diff --git a/src/lib/assets/tests/arpeggiates/custom_period.yml b/src/lib/assets/tests/arpeggiates/custom_period.yml new file mode 100644 index 00000000..559f56b2 --- /dev/null +++ b/src/lib/assets/tests/arpeggiates/custom_period.yml @@ -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 diff --git a/src/lib/assets/tests/arpeggiates/prepended/capitalize.yml b/src/lib/assets/tests/arpeggiates/prepended/capitalize.yml new file mode 100644 index 00000000..01d53c21 --- /dev/null +++ b/src/lib/assets/tests/arpeggiates/prepended/capitalize.yml @@ -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 diff --git a/src/lib/assets/tests/arpeggiates/prepended/capitalize_no_space.yml b/src/lib/assets/tests/arpeggiates/prepended/capitalize_no_space.yml new file mode 100644 index 00000000..56e5f219 --- /dev/null +++ b/src/lib/assets/tests/arpeggiates/prepended/capitalize_no_space.yml @@ -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 diff --git a/src/lib/assets/tests/arpeggiates/prepended/custom_period.yml b/src/lib/assets/tests/arpeggiates/prepended/custom_period.yml new file mode 100644 index 00000000..34bb3690 --- /dev/null +++ b/src/lib/assets/tests/arpeggiates/prepended/custom_period.yml @@ -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 diff --git a/src/lib/assets/tests/arpeggiates/smart/capitalize.yml b/src/lib/assets/tests/arpeggiates/smart/capitalize.yml new file mode 100644 index 00000000..206eb961 --- /dev/null +++ b/src/lib/assets/tests/arpeggiates/smart/capitalize.yml @@ -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 diff --git a/src/lib/assets/tests/arpeggiates/smart/capitalize_no_space.yml b/src/lib/assets/tests/arpeggiates/smart/capitalize_no_space.yml new file mode 100644 index 00000000..99568879 --- /dev/null +++ b/src/lib/assets/tests/arpeggiates/smart/capitalize_no_space.yml @@ -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 diff --git a/src/lib/assets/tests/arpeggiates/smart/custom_period.yml b/src/lib/assets/tests/arpeggiates/smart/custom_period.yml new file mode 100644 index 00000000..c635c97a --- /dev/null +++ b/src/lib/assets/tests/arpeggiates/smart/custom_period.yml @@ -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 diff --git a/src/lib/assets/tests/arpeggiates/smart_prepended/custom_period.yml b/src/lib/assets/tests/arpeggiates/smart_prepended/custom_period.yml new file mode 100644 index 00000000..daa835ae --- /dev/null +++ b/src/lib/assets/tests/arpeggiates/smart_prepended/custom_period.yml @@ -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 diff --git a/src/lib/assets/tests/autocorrect/dup_chord.yml b/src/lib/assets/tests/autocorrect/dup_chord.yml new file mode 100644 index 00000000..db1efbd2 --- /dev/null +++ b/src/lib/assets/tests/autocorrect/dup_chord.yml @@ -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 diff --git a/src/lib/assets/tests/autocorrect/smart_prepended/dup_chord.yml b/src/lib/assets/tests/autocorrect/smart_prepended/dup_chord.yml new file mode 100644 index 00000000..02ce9b12 --- /dev/null +++ b/src/lib/assets/tests/autocorrect/smart_prepended/dup_chord.yml @@ -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 diff --git a/src/lib/assets/tests/chording/chord.yml b/src/lib/assets/tests/chording/chord.yml new file mode 100644 index 00000000..5433584b --- /dev/null +++ b/src/lib/assets/tests/chording/chord.yml @@ -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 diff --git a/src/lib/assets/tests/chording/chord_nospace.yml b/src/lib/assets/tests/chording/chord_nospace.yml new file mode 100644 index 00000000..63ac6bb1 --- /dev/null +++ b/src/lib/assets/tests/chording/chord_nospace.yml @@ -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 diff --git a/src/lib/assets/tests/chording/compound.yml b/src/lib/assets/tests/chording/compound.yml new file mode 100644 index 00000000..f8fe95ee --- /dev/null +++ b/src/lib/assets/tests/chording/compound.yml @@ -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 diff --git a/src/lib/assets/tests/chording/dup_input.yml b/src/lib/assets/tests/chording/dup_input.yml new file mode 100644 index 00000000..f67d85ab --- /dev/null +++ b/src/lib/assets/tests/chording/dup_input.yml @@ -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 diff --git a/src/lib/assets/tests/chording/min_chord_inputs.yml b/src/lib/assets/tests/chording/min_chord_inputs.yml new file mode 100644 index 00000000..cb1a8a42 --- /dev/null +++ b/src/lib/assets/tests/chording/min_chord_inputs.yml @@ -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 diff --git a/src/lib/assets/tests/chording/space_input.yml b/src/lib/assets/tests/chording/space_input.yml new file mode 100644 index 00000000..5d8a36f2 --- /dev/null +++ b/src/lib/assets/tests/chording/space_input.yml @@ -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 diff --git a/src/lib/assets/tests/debounce/basic.yml b/src/lib/assets/tests/debounce/basic.yml new file mode 100644 index 00000000..ebe83a58 --- /dev/null +++ b/src/lib/assets/tests/debounce/basic.yml @@ -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 diff --git a/src/lib/assets/tests/fnshift.yml b/src/lib/assets/tests/fnshift.yml new file mode 100644 index 00000000..0cb05346 --- /dev/null +++ b/src/lib/assets/tests/fnshift.yml @@ -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 diff --git a/src/lib/assets/tests/hyperspace/camel_case.yml b/src/lib/assets/tests/hyperspace/camel_case.yml new file mode 100644 index 00000000..7bcd24c0 --- /dev/null +++ b/src/lib/assets/tests/hyperspace/camel_case.yml @@ -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 diff --git a/src/lib/assets/tests/hyperspace/kebab_case.yml b/src/lib/assets/tests/hyperspace/kebab_case.yml new file mode 100644 index 00000000..dc0d3e89 --- /dev/null +++ b/src/lib/assets/tests/hyperspace/kebab_case.yml @@ -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 diff --git a/src/lib/assets/tests/hyperspace/prepended/camel_case.yml b/src/lib/assets/tests/hyperspace/prepended/camel_case.yml new file mode 100644 index 00000000..2787ce1d --- /dev/null +++ b/src/lib/assets/tests/hyperspace/prepended/camel_case.yml @@ -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 diff --git a/src/lib/assets/tests/hyperspace/prepended/kebab_case.yml b/src/lib/assets/tests/hyperspace/prepended/kebab_case.yml new file mode 100644 index 00000000..2890b094 --- /dev/null +++ b/src/lib/assets/tests/hyperspace/prepended/kebab_case.yml @@ -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 diff --git a/src/lib/assets/tests/modifiers/capitalize.yml b/src/lib/assets/tests/modifiers/capitalize.yml new file mode 100644 index 00000000..94de66a0 --- /dev/null +++ b/src/lib/assets/tests/modifiers/capitalize.yml @@ -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 diff --git a/src/lib/assets/tests/prepended/compound.yml b/src/lib/assets/tests/prepended/compound.yml new file mode 100644 index 00000000..046fc93e --- /dev/null +++ b/src/lib/assets/tests/prepended/compound.yml @@ -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 diff --git a/src/lib/assets/tests/smart_detection/general.yml b/src/lib/assets/tests/smart_detection/general.yml new file mode 100644 index 00000000..e732c29a --- /dev/null +++ b/src/lib/assets/tests/smart_detection/general.yml @@ -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 diff --git a/src/lib/assets/tests/smart_detection/newline.yml b/src/lib/assets/tests/smart_detection/newline.yml new file mode 100644 index 00000000..ea6fbb51 --- /dev/null +++ b/src/lib/assets/tests/smart_detection/newline.yml @@ -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 diff --git a/src/lib/assets/tests/tap_dance/arpeggiate_override.yml b/src/lib/assets/tests/tap_dance/arpeggiate_override.yml new file mode 100644 index 00000000..2b7d67a2 --- /dev/null +++ b/src/lib/assets/tests/tap_dance/arpeggiate_override.yml @@ -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 diff --git a/src/lib/assets/tests/tap_dance/arpeggiate_period.yml b/src/lib/assets/tests/tap_dance/arpeggiate_period.yml new file mode 100644 index 00000000..b1506a05 --- /dev/null +++ b/src/lib/assets/tests/tap_dance/arpeggiate_period.yml @@ -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 diff --git a/src/lib/assets/tests/tap_dance/general.yml b/src/lib/assets/tests/tap_dance/general.yml new file mode 100644 index 00000000..022a03f7 --- /dev/null +++ b/src/lib/assets/tests/tap_dance/general.yml @@ -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 diff --git a/src/lib/assets/tests/tap_dance/smart/arpeggiate_override.yml b/src/lib/assets/tests/tap_dance/smart/arpeggiate_override.yml new file mode 100644 index 00000000..3858be5b --- /dev/null +++ b/src/lib/assets/tests/tap_dance/smart/arpeggiate_override.yml @@ -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 diff --git a/src/lib/assets/tests/tap_dance/smart/arpeggiate_period.yml b/src/lib/assets/tests/tap_dance/smart/arpeggiate_period.yml new file mode 100644 index 00000000..a10028d0 --- /dev/null +++ b/src/lib/assets/tests/tap_dance/smart/arpeggiate_period.yml @@ -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 diff --git a/src/lib/assets/tests/tap_dance/smart/general.yml b/src/lib/assets/tests/tap_dance/smart/general.yml new file mode 100644 index 00000000..d61a952d --- /dev/null +++ b/src/lib/assets/tests/tap_dance/smart/general.yml @@ -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 diff --git a/src/lib/components/layout/KeyText.svelte b/src/lib/components/layout/KeyText.svelte index 39f02fef..b55e0e27 100644 --- a/src/lib/components/layout/KeyText.svelte +++ b/src/lib/components/layout/KeyText.svelte @@ -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} diff --git a/src/lib/components/layout/KeyboardKey.svelte b/src/lib/components/layout/KeyboardKey.svelte index 84e1a7bb..f6778fe2 100644 --- a/src/lib/components/layout/KeyboardKey.svelte +++ b/src/lib/components/layout/KeyboardKey.svelte @@ -103,6 +103,7 @@ [-rotY, -rotX], [-rotX, -rotY], [rotX, rotY], + [rotY, rotX], ]} /> {/if} diff --git a/src/lib/serial/device.ts b/src/lib/serial/device.ts index 28d606c7..2c40c505 100644 --- a/src/lib/serial/device.ts +++ b/src/lib/serial/device.ts @@ -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); diff --git a/src/routes/recipes/+page.svelte b/src/routes/recipes/+page.svelte new file mode 100644 index 00000000..318ab6c4 --- /dev/null +++ b/src/routes/recipes/+page.svelte @@ -0,0 +1,28 @@ + + +
These are example uses, taken directly from our E2E testing library.
+ +