Add ability to officially dismiss palettes with Escape key (without escape key being used up by other apps)

If I have a palette active like this one:

I would like to press Escape key and the palette dismisses with escape key being captured by my palette.

Right now in order to achieve this I have to add an empty action to ALL my palettes like this:

This is really annoying and I wish I could enable a dismiss key in Palette settings or perhaps make Escape key official escape key without having escape key being used up by other apps while palette is active.

I really hate having the Dismiss palette action in all my palettes to achieve this as I want to only have useful macros in my palettes and I always know that escape key will exit the palette if I change my mind.

I am sure there is no other way to get around this issue so I hope @peternlewis can add this in the future. I hope I am not alone in wishing for this.

Thank you.

That is exactly how it works for me now, and I’m not doing anything special.

You should NOT need that.

If pressing ESC once does NOT dismiss a palette, then you must have something else that is eating the ESC. After pressing the ESC the first time, take a look at either the KM Editor Recent Run Macros and/or the KM Engine log.

GoTo menu Help > Open Logs Folder, or just open this file:
~/Library/Logs/Keyboard Maestro/Engine.log


ESC does dismiss the palette. But it also sends ESC to the currently active application. For example if I am writing in this forum here and I have a palette active:

Pressing ESC will close the palette. But it will also close the editing area because ESC key will be received by Safari. I want to avoid that.

I can replicate the behavior you describe with palettes that are set to be shown for one action, but not for palettes that are only shown and hidden with the same hotkey or for conflict palettes. For palettes that are shown and hidden with the same hotkey, the Escape key goes straight to the frontmost app and has no effect on the palette whatsoever, and conflict palettes behave in the manner that @JMichaelTX describes, where pressing Escape closes the palette but has no effect on the frontmost application. What kind of palette are you using for your palettes now? If you can change them to make use of conflict palette-style palettes (which can be done fairly easily using KM8’s new Show Palette of Macros action) it seems like you should be able to have them behave how you want.

This is the palette I have:

I am not sure what you mean by If you can change them to make use of conflict palette-style palettes.

How can I make this palette have an ESC key act as Dismiss action without sending ESC to the front application?

By creating a new macro like this:

Show KM Groups Palette.kmmacros (1.4 KB)

Try disabling the current palette hot key you're using in the group and triggering the palette with this macro instead (you may need to make sure it points to the same group as the one you screenshotted, since while I could replicate its name I of course couldn't replicate the exact same group you have).

Escape cannot be used to close Macro Group palettes, because macro group palettes might be opened for extended periods of time. Maybe for “for one action” palettes, I’d have to look at that case, but it doesn’t make sense for other cases.


Yes please. I use one action palettes mostly. This feature is dearly needed. As I have so many palettes and I often like to check which palette has which actions and close the palette silently with no side effects with ESC.

Thank you for adding this.