Macros Broken After Recent Update

Hi,

Long-time user, since 2018. I recently updated my firmware, and my macros stopped working in the same way. They still work, but for example, I have a macro to do Ctrl+C with the fn key and j, which is the QWERTY c key on my keyboard. (I use Dvorak, it’s meant to let me keep some similarity to QWERTY.)

Before the update, I could do fn + Shift + j to get Ctrl+Shift+c, for copying and pasting into my terminal. Now, it doesn’t work. This same sort of thing has happened to all of my macros that I want to combine with other keys. Sometimes, if I have the other key (usually Shift) pressed before I start the macro, it will work, but sometimes it does not.

Does anyone have any guesses as to what the issue is?

  1. There is a guide to upgrading Macros. It looks like you’ve seen it, but I want that link here for others who read this post.
  2. I will look into the problem shortly. A quick glance at your sketch doesn’t suggest anything wrong to me.
  3. The good new is that you can replace (almost?) all those Macros with simple Key values with modifier flags, and not bother with Macros at all. Try replacing M(MACRO_CTRL_C) in your keymap with LCTRL(Key_C), and M(MACRO_CTRL_ALT_T) with LCTRL(LALT(Key_T)).
2 Likes

I forgot to ask: When it doesn’t work, what does happen, if anything?

What happens is that the macro is executed without the extra modifier key.

I am going to try those extra modifier flags.

I am an idiot.

For future people who see this, this was entirely my fault, not a bug in Kaleidoscope.

I replaced the ___ on my function layer where Key_Shift was on the lower layer to Key_LeftAlt. Because there was no ___ to keep the key the same on the function layer, it was not sending Shift.

You can see the replacement at https://git.yzena.com/gavin/Model01-Firmware/src/commit/0234070791/Model01-Firmware.ino#L324.

Putting ___ fixes the problem. However, I will also be implementing the LCTRL suggestion. It seems cleaner. :slight_smile:

Thank you!

2 Likes