Hello. At https://github.com/keyboardio/Kaleidoscope-Macros/blob/master/src/MacroSteps.h#L34:
#define Dc(k) MACRO_ACTION_STEP_KEYCODEDOWN, (Key_ ## k).keyCode
#define Uc(k) MACRO_ACTION_STEP_KEYCODEUP, (Key_ ## k).keyCode
#define Tc(k) MACRO_ACTION_STEP_TAPCODE, (Key_ ## k).keyCode
What are these
Uc useful for? The readme doesn’t talk about them and they aren’t used in any of the Kaleidoscope code.
They are an optimization.
Tr() & friends require three bytes of PROGMEM, one for the step, two for the keycode.
Tc() & co need only two, because we don’t store the key flags. When one’s low on free PROGMEM space, yet, wants to use macros, this is one way to save a few bytes. The downside is that this only works for keys where the flags are empty (so, only normal keyboard keys; no mouse keys, no consumer keys, etc).