Is It Possible to Assign Hotkey Triggers for Pallet Items, Which Are ONLY Active Hotkeys While the Palette Itself Is Displayed?

I apologize if this was already covered here and/or in the documentation--I'm still searching both.

Use case: I trigger all pallets I have with the F1 key--regardless of application. What I'd like to do, is assign F1, F2, F3 and F4 to my four most-used items in all of these various palettes, which could thereby (a) eliminate the need to use a mouse to trigger the item, and (b) keep my function keys "open" for assigning to other commonly-used macros.

For example, I don't want to let-go of triggering the MacOS Calculator app, from F4--one of my regularly used global macros.

Thanks in advance!

You may use this action to trigger the palette:

It will be a conflict palette.

You may then use the number keys 1, 2, etc. to trigger the 1st, 2nd, etc. item of the palette, presuming no macro name begins with these numbers. If a macro name begins with these numbers (excluding the ordering prefix 01), 02)), that corresponding macro will be triggered.

This is one of my favorite actions.

Great tip! This absolutely works exactly as you describe. Pinging @peternlewis to give this the 'ole "Captain Cook," because I think this might be a viable future enhancement.

Peter, I think my subject line for this thread sums up my vision. I think it would be fabulous to turn-on the "show triggers" check-box, for a palette, and only see F1, F2, F3 and F4 (in my case) show on the right-side of the displayed pallette, but not necessarily next to the very first four items. My desire is for these F-key triggers to only work while the palette itself is displayed. I have no idea if this is viable, but though I'd express interest in this sort of utility.

Martin's method (TY again for sharing this!) would require my four most-used actions, in every palette I made, to be positioned as the first four items in every palette. As lazy as this may sound, the number-key trigger method, would generally require looking at the number keys. If I trigger the palette itself with F1 (this is the trigger for all of my palettes), I like the idea of F1, F2, F3 and F4 showing up in that right margin, and not next to the first four items listed--because these keys, I don't need to go looking for with my eyes. I can pretend to be in deep-thought, staring at the screen, and trigger these four keys without looking.

Martin's method does show a palette, but it's not the same palette as the customized one I previously triggered with F1. For that reason, I'm reverting back to my previous workflow and not using the Show Palette of Macros action, as handy as it nevertheless is.

Ryan

Noted, but honestly, its not likely.

If the Macro Group palette’s activate matches the palette display (which it does for all except the “always” cases, then you already have what you want by just setting the hot key triggers.

And the whole purpose of the “always” cases is so the hot key or other triggers can work when the palette is not displayed.

Hey Ryan,

Something like this?

image

-Chris

Hey there, Chris.

So far, I think @martin has come closest (and Martin; I should tell you, I have since reverted back to your method--I'll take speed/functionality over aesthetics any day of the week).

Chris, I'll explain what I'm visioning. I use this as my day-to-day keyboard, which groups Function keys 1-4, then 5-8 etc. It would be really awesome to just reach for those keys to trigger not only a palette (F1, in my case) but also, after the palette itself activates to essentially have my function keys that are already assigned as one-key hotkey triggers for other tasks, to not work for those other tasks, and instead only work for triggering items on the palette itself. Once an F key is pressed for that purpose, the macro runs, the palette disappears, and the function keys revert back to "listening" for the triggers I use them for--i.e. like calling-up the calculator with F4 and no modifiers.

These palettes were styled using a method shared on here, I think first by @Kourosh, with solid colors, i.e. like so
scr 2021-11-06 at 3.48.06 PM

If the whole purpose is to eliminate the mouse, I think the method Martin showed me will work fine, by replacing the solid-color squares, instead with numerals. So instead, something like this:
scr 2021-11-06 at 3.55.14 PM

It will take some getting used to, but is much more efficient. Martin, TY again.

1 Like

You're using the conflict palette here.

But you may have missed that my palette has several single key hotkeys. The upshot of this is that you can have more control over the single-key macro activation in a palette.

-Chris

I think I did misunderstand your post with the image. Are all or some of the triggers in your screenshot only triggers that work when the palette is displayed?

Will delve into documentation/Wiki as the term "conflict palette" is a new one.

Also, wondering if you or someone could clarify what Peter meant by:

If the Macro Group palette’s activate matches the palette display (which it does for all except the “always” cases, then you already have what you want

I'm starting to wonder if I've been doing this wrong, but I think you get the jist of what I was looking for: key triggers that could be used for one purpose when the palette displays (to trigger items within it), and for another purpose, when the palette is not displayed.

Thanks for the help!

edit: Did more research. After testing some things, I'm convinced that using the Conflict Palette is the best approach for triggering palette items with one single key. These are number keys--not the desired function keys, but a perfectly usable alternative for my needs.

I do currently have function keys trigger various macros as single-key triggers (no modifiers). Some of these are global macros and others only work in specific applications. These need to stay as-is--that's a fundamental requirement for me--so this number-key trigger, via the Conflict Palette which displays all the items from pre-existing palette with all the same items, is a really good alternative. I'm fine with it.

The general workflow is to first kill the hotkey trigger for the palette that I wanted to be able to select items in from my keyboard (no mouse). All of my palettes launch with the F1 key (one-key trigger), from within various applications. I then made an application-specific macro to launch the Show Palette of Macros action, as detailed above by Martin, and set this to trigger by way of the F1 key from when the specified program is active/at front. The only loss is that I don't think the appearance can be customized. But really, that's extremely minor. This is a huge boost in efficiency, and for that, I'm pleased.

Correct.

I have several macro groups set up to open a palette on command:

image

The hotkeys are only active when the palette is visible.

I don't understand what Peter meant, so you'll have to ask him.

Right.

The issue with my method is that it won't automatically override all other macros with the same hotkey in the same context.

However – you can create an activate/deactivate macro that disables other macros or macro groups when it is activated and re-enables them when it is disabled.

This is not exactly simple, but it's doable.

It may be that the simplicity of the conflict palette method is something you want to stick with, but you do have options.

Conflict Palette

-Chris

2 Likes

WOW! Suddenly it clicked!! This, is a game-changer. For some reason, I never stopped to consider/contemplate what the purpose of "activate for one action" meant. This is what @peternlewis was trying to get into my head!

So to recap, we absolutely can have single-key hotkey triggers, for multiple macros within the very same application---without conflict---i.e. without the Conflict Palette popping up, because more than one macro was assigned to the same key.

Holy smokes! This is a huge game-changer! Thank you for this, Chris!

2 Likes

I may have popularized the color coding, but someone else came up with it. Unfortunately, I cannot recall where I'd originally seen it.

The short answer, is "No." But if you are cool with number keys as triggers for the items in the order they appear (I am!), the workaround proposed by Martin, is the next best thing.

For simplicity sake, let's assume all macros in this example palette, cannot be independently triggered by hotkeys (even if they can be):

Pros:

  • Number keys are now one-key triggers for the items on this palette. They are only are active while the palette is displayed.

Cons:

  • You must rearrange your palette to take advantage of this. (see Run Palette Organizer 1.2 to pull that off.)
  • All palettes you wish to behave like this will have to have a standardized appearance, which nevertheless is fully customizable in Preferences.
  • The first letter of macro names in the palette, are subdued (I assume because those letters themselves can be letter-key triggers?)
  • An item will be added at the bottom, as shown in the screenshot (when clicked, the KM editor launches into the original/"calling" macro group).

The numerals that appear in the screenshot are just unicode emoji images converted to PNG, which I pasted manually after doing the rearranging. (For me, these are essential--counting-down to #7 on a list, is far more involved than simply clicking on the item!).

Configuration steps, with all credit here to @martin:

  1. Delete the keyboard/hotkey trigger for a palette you want to behave as described above (if you have one already).
  2. Establish a new macro for the application associated with the palette you are working on. This macro need-not be placed inside a palette (I would say, it's better it is NOT). This is a one-action macro comprised of the Show a Palette of Macros action. Configure this to trigger from the same hotkey you removed in Step-1.
  3. Then hit the plus sign, then select the pre-existing Palette you are working on.
  4. Open KM Preferences, select Palettes tab, select "Conflict Palette Style" and customize as you wish ALL palettes to appear that use this (number key, as trigger) functionality.
1 Like