New API Upgrade: Different behavior of shifted keys in macros?

after upgrading to the new Kaleidoscope API recently I got different characters when hitting keys bound to macros:
I use a macro to make the c key emit ‘.’ and ‘@’ (shifted). System (Linux) keymap is set to german.
After the upgrade I got Greek_Omega instead of ‘@’ for the shifted key.

const macro_t *macroAction(uint8_t macroIndex, uint8_t keyState) {
bool shifted = Keyboard.isModifierActive(Key_LeftShift.keyCode) ||

switch (macroIndex) {

if (shifted) {
return MACRODOWN(D(RightAlt), T(Q), U(RightAlt));
else {
return MACRODOWN(T(Period));

I had to undo the Shift in the macro to get the ‘@’ again:

return MACRODOWN(U(LeftShift), D(RightAlt), T(Q), U(RightAlt));

Is this an intended behavior?

regards, jo

This is intended behaviour, macros do not clear modifiers when doing their thing, so if you had shift pressed when triggering the macro, it will be pressed throughout the macro. So the new behaviour is the one we’d expect, and manually releasing shift is the way around it. If the macro produced @ before the upgrade, that was a bug.

As for Ω, that gets input because AltGr + Shift + q is omega on the German layout, at least under Linux.

Thanks a lot for the clarification!

regards, jo