CharaChorder / DeviceManager

The device manager and configuration tool for CharaChorder devices.
http://manager.charachorder.com/
GNU Affero General Public License v3.0
6 stars 3 forks source link

impulse chord "delete" keystroke creates misleading chord #132

Closed stellarsquall closed 3 months ago

stellarsquall commented 3 months ago

I'm not sure if this is actually a bug, or just a documentation request.

I misunderstood that impulse chord output cannot be corrected during creation. For example:

I<mpulse output: education

If I correct this chord by deleting the input and changing it to the following:

I<mpulse output: educate

then I get the following in Device Manager:

2024-06-17_12-26-03

In the screenshot there are three examples:

cdeu -> educate detu -> edutest cdetu -> education

For edutest, I didn't trigger the delete key during creation, to ensure the issue only occurs when deleting keystrokes during impulse chord output.

It's somewhat obvious that CCOS is doing more work than needed when the chord was trigged, but since the result is the correct chord you might not notice unless you see the salad in Device Manager.

This is probably the desired behavior, since you might want to trigger delete at the beginning of a chord. But it should be documented that this will occur if you make any mistakes setting up the impulse chord output, and you should cancel the impulse chord using esc and start over. I couldn't find any documentation that explained this, and spent significant time cleaning up my library since I noticed the mistakes using Device Manager.

stellarsquall commented 3 months ago

I've created docs PR 65 with a suggestion for how this could be called out, although it might still be worth finding a way to call this out for device manager users like me wondering why they have so many chords with botched input

Theaninova commented 3 months ago

You are correct, this is intentional behavior as it enables stuff like suffixes and cursor warp. We know though that it comes up as a really weird thing when you don't want to create a macro. We eventually plan to separate macros from chords in impulse to resolve this, until then this is working as intended.