I’ll start a thread once it’s more ready, but I have managed to rebuild my chording plugin to work with up-to-date Kaleidoscope.
I changed the mechanism from tracking chords to tracking queued keypresses; that has some performance and flexibility implications, so it currently lives in SimpleChords in my layout. On the other hand, it’s dramatically simpler - I managed to write the whole thing just logging the actions to take (since a malfunctioning keyboard is a pain to work with), and got the vast majority of it right. The last few bits got a bit ugly, though; particularly around the fact that if you release a key, but the press was ABORTed, the released key is number 65535; that required switching to tracking the addr in a few places, making it a bit inconsistent.
But regardless of quality, after hammering on some edge cases, I’m running that code on my Atreus now. I want to make one more functional change to overlapping macros - right now, a macro is consumed as soon as it is pressed, but if it’s a subset of a larger macro, it should be postponed - e.g., if AS and ASD are both macros, right now pressing ASD will press the AS macro followed by D, while pressing DSA will press the ASD macro.
But since I don’t personally care about that edge case yet, I’m going to prioritize cleaning this up to a point that it’s usable by people other than me. Hopefully that’ll happen in the next week or two, I’ll get that done and announce this officially.
edit: I meant to add that there are some still some edge cases around overlapping chords inherent to the approach I’m taking, but for simple use cases, this should Just Work the way you expect it to.