Can OneShot be used with SpaceCadet on the same keys?

I’d like to use both OneShot and SpaceCadet on the same keys on the thumb-arcs. But I get the impression that these two plugins are not compatible. Ex: Using OneShot on a Left-Shift and SpaceCadet to use the Left-Shift for a Left-Parenthesis.

So instead, what I’m looking to see if there is a way to change the mappings dynamically, For example, use a Fn key combination to enable SpaceCadet, and when SC is active, it overrides (or disables) the OneShot plugin on the specific modifiers.

Is something like this feasible?



The closest thing I can think of is to use a layer: Fn would simply switch to a layer where the shifts are not one-shot, so SpaceCadet would work on them.

Thanks for the suggestion. I’ve read through the firmware docs a handful of times, and read through the forums, but still a little unclear as to LOCK_LAYER() and UNLOCK_LAYER(). Is it safe to say that LOCK_LAYER() is essentially “enable functionality for layer x”, whereas UNLOCK_LAYER() is “ignore layer x”? That would be the only way I could see this working.

For example, layers would be:

Where QWERTY contains the OneShot definitions, and the SPACE_CADET layer contains the original/non-OneShot key definitions.

The Keyboard would boot with UNLOCK_LAYER(SPACE_CADET), and upon triggering the SC key, it would both LOCK_LAYER(SPACE_CADET) and enable the SC plugin.

I’d also like to flash one of the LEDs based on the status of SpaceCadet. I’ve seen plugins that change an entire layer’s LEDs, but is there a way I can flash/turn on a LED for a specific key based on the status? For instance, if I map this SpaceCadet layer to Butteryfly-2, I’d like it to flash the 2-key GREEN if it is enabling SC, and RED if it is turning it off. Or something similar.