Problem with Intermittent Hotkey Trigger

I have a macro that is set to use a trigger and works fine the first time then will not run using the trigger again until I stop KM engine and restart then it runs one time only then has to be restarted.

I have tried different triggers with no success .

Here is the log listing for the last few entries.

Thanks
Roger

KM Version: 10.0.1, Mac OSX: 11.6 (20G165)

Solved the problem... I had it using the trigger hot key and also to show up on the Status menu. I guess I thought you could do both but must be once it pops up in the menu that takes precedence?

Hey Roger,

I think not. You've got something else going on.

Why is the Keyboard Maestro Engine quitting?

How is it possible that it's starting up again when KM is dead in the water? !!!

Try my test macro – make sure both macro and macro group are enabled.

-Chris


TEST ⇢ Hotkey vs Status Menu Trigger v1.00.kmmacros (6.8 KB)
Keyboard Maestro Export

Chris

Your test macro works with both the hotkey and status menu.

One clarification - On my macro the Keyboard Maestro engine died but to get it restarted I used the Quit Keyboard Maestro Engine then I Quit the editor then restarted the editor and that restarted the Keyboard Maestro engine.

I will try to get a smaller macro to fail and will post it.

Thanks
Roger

KM Version: 10.0.1, Mac OSX: 11.6 (20G165)

Chris,

Here is a Test Master Hotkey macro. To make it fail put both your test macro and my test in the same Group named Test Trigger

When you run my test it will work one time and then you can not use the hot key to run it again. At least on my mac

Thanks
Roger

KM Version: 10.0.1, Mac OSX: 11.6 (20G165)

Test Master Hotkey vs Status Menu Trigger.kmmacros (2.3 KB)
image

Hey @peternlewis,

I know why this is happening.

It's because the Show Palette for One Action action is IN the macro group that is shown.

What I don't understand is why the macro group entire is deactivated – nor do I see offhand any way to determine that it is in fact deactivated.

Please explain.

TIA.

-Chris

Chris

I have no idea how to explain why. I do know that if I put them in separate groups it works.

Thanks
Roger W Wells

That's why I'm asking Peter.  :wink:

If a Macro Group is shown as a palette, then the macro group is active if and only if the palette is displayed unless the activation settings for the Macro Group are "Always Activated and…".

So, unless the macro group is configured as "Always Activated and…", once you show the macro group as a palette, the macro group would be deactivated when the palette goes away.

I get that.

But I don't see any way to determine by eye, by Keyboard Maestro action, or by script (except by an absence of macros) that the group is not active.

Am I missing something?

If not – it seems to me this will be a troubleshooting problem in future.

As it is there is still user confusion between enabled and active.

-Chris

Activation is a transient state, so no, it can only be determined by its affect on behaviour.

Just the same as you cannot tell whether a Macro Group that is active in Mail is active or not, except by the consequences of it being active.

If you have a macro in the group with the Status Menu trigger then you can see if it is displayed in the status menu.

Or you can ask the Engine for the list of active macros via AppleScript I believe.

Peter

I have the macro group set to always active and still have the same problem.

Screen Shot 2021-11-22 at 7.09.40 AM

Okay, that seems like the easiest way to help a user determine if a macro is active.

Thanks.

Hey Roger,

You missed the salient portion of that:

Don't worry – I had to look twice myself to figure out what Peter meant.

:sunglasses:

-Chris

“Always activated” is not one of the “Always activated and …” options.

With “Always activated”, the macro group activation will stay synchronised with the displaying of any palette once a palette is shown by any means.

Use “Always activated and shows a palette when” (with no additional settings) if you want to to be always activated even when a palette is shown and then closed.