OneShot Shift stopped working with Ctrl+Arrow

Just half an hour back I recursively pulled all the latest updates to my local avr/libraries and seem to have noticed some changes to some keyboard HID library or such (unfortunately I don’t recall exactly and that console app has since been closed so the screen output isn’t available now).

Not sure which library is the culprit but OSM(Shift) has stopped working in combination with my Ctrl+Arrow keys used for word left/right.

I am still able to do OSM(Ctrl) + OSM(Shift) + Arrow, to get the desired behaviour, but if I do OSM(Shift) + Ctrl(Arrow) (whether in sequence or holding the OneShot key down), only the LCtrl(Arrow) works and the OSM(Shift) is ignored so that I am unable to select word left/right this way.

If I replace OSM(Shift) on my keymap with plain Shift then it works fine with Ctrl(Arrow) as before.

The OneShot library hasn’t had any recent changes so it probably isn’t the culprit.

I hope this problem can be set right…

It is likely the Kaleidoscope-HIDAdaptor-KeyboardioHID library (see here). For now, reverting that change should fix the issue.

Longer-term, I need to rework OneShot anyway, but I’m not sure when I’ll get around to do that.

Are you saying that that library is on the way forward but it breaks the current OneShot implementation and it is actually OneShot which needs to be updated?

I’m saying it is likely the plugin that breaks OneShot, something we did not realize prior to merging the patch. I do not yet know what the correct way to fix the issue is.

There are plenty of other issues with OneShot, which would warrant a major rework. If we can fix this one at the same time, so much the better. But like I sad, at this time, all I have is a suspicion.

Now the only reason I pulled the latest libs in full was that at some point in my work, trying to compile got me the following errors:

BOARD_HARDWARE_PATH="/home/samjnaa/bn/kbdio//hardware" /home/samjnaa/bn/kbdio//hardware/keyboardio/avr/libraries/Kaleidoscope/bin//kaleidoscope-builder flash
Building output/Model01-Firmware/Model01-Firmware (0.0.0-gv1.22-52-gc1d9-dirty) ...
/tmp/tmp.AJ2UgXhdsi/libraries/Kaleidoscope-NumPad/Kaleidoscope-NumPad.a(Kaleidoscope-NumPad.cpp.o): In function `syncNumlock(bool)':
/home/samjnaa/bn/kbdio/mine/Kaleidoscope-NumPad/src/Kaleidoscope-NumPad.cpp:28: undefined reference to `kaleidoscope::hid::pressKey(kaleidoscope::Key, bool)'
/tmp/tmp.AJ2UgXhdsi/libraries/Kaleidoscope/Kaleidoscope.a(key_events.cpp.o): In function `handleKeyswitchEventDefault':
/home/samjnaa/bn/kbdio/mine/Kaleidoscope/src/key_events.cpp:39: undefined reference to `kaleidoscope::hid::pressKey(kaleidoscope::Key, bool)'
collect2: error: ld returned 1 exit status

I am not sure what sequence of events led to this.

Any idea on what to do to fix this?

Hmm I had to revert the corresponding changes not only in Kaleidoscope-HIDAdaptor-KeyboardioHID but also in Kaleidoscope itself and now it’s compiling…

… not only compiling but OneShot keys work as before, so it is indeed the culprit…