Make a Macro Appear in a Palette Only in a Specific Application

This is what @noisneil's suggestion above does, but you need to make sure that the action is set to "Active macros" just as in his screenshot. Globally active macros that you add to the palette will be there all the time, Finder-only active macros only when the Finder is active, etc.

You then use this palette instead of whatever you are using now.

I'd like to see a screenshot of a Palette of macros to see what this looks like because it still seems to me you have to have a macro that calls the Show Palette Macros, which is visible all the time in the Palette. If you or someone could just show me what a Palette would actually look like where macros appear in the application for which they work then are gone completely when in another application, I'd really appreciate it. (I'm about to show 2 screen shots of what I'm trying to do.)
I've tried to implement your idea, but without seeing an actual example I'm left with imagining what it looks like.

In the Finder, the bottom macro would be visible to show/hide a Finder Window's sidebar.


Then, when not in the Finder, the Palette shows no evidence of that macro existing (in this case, in Opera). Also, there is no other macro that invokes a palette, which I also don't want.

As there are so many types, the terminology can get a bit muddled. What do you mean by "app-specific palettes"? My suggestion is app-specific, as are conflict palettes and group palettes.

You might be looking for the global macro palette. Each macro needs to have a trigger set to the global macro palette and then they show up in that palette (but only when their respective group is active)

@noisneil sure, but lol…my app specific palettes are built in the simplest way I guess, and are triggered everywhere with the same shortcut. No rocket science, probably everything as you expected it to be. Here is the example for the browser.

Ok so you mean Group Palettes. :+1:t3:

The only reason I tend not to use them is that they show everything in the group no matter what.

True, but you can just disable a maco that you don't want to see in the palette :slight_smile:

No, because you explicitly state what is on the palette and so can leave off the that macro. So if I want to show three global macros plus one ("PNG Optimize") that is only active in the Finder and another ("Script Editor Test") that is only active in Script Editor:


...will give the following as I switch apps:
Screenshot 2022-07-01 at 09.11.14
Screenshot 2022-07-01 at 09.11.27
Screenshot 2022-07-01 at 09.11.41

I don't know enough about palettes yet (I'm only here because @Frankb has convinced me I need to find out about them!) but, in addition to the limitations @Frankb noted above, this palette only seems to appear for one "user action". There may be an obvious way round that but, in the meantime, I've hacked up this -- it'll pop up on the hotkey trigger and remain available until the bottom keypress-with-modifiers ends the "Until" loop.

For OP's needs, probably better to have two Groups that are both active when the app is frontmost but only one of which has a palette -- they can then move macros between the groups depending on if it should or shouldn't be on the palette.

I'm guessing that the downside for them is that they'll need two palettes - one for global macros, one for app-specific. AFAIK you can't put one macro in two groups and you can't make a Smart Group that's dependant on "active" status (that's an Engine function, not an Editor one), so the only other solution I can think of is to duplicate your globals into each and every "App X Palette" group -- which would be a maintenance nightmare!

Exactly! I tried to explain that, but not as well as you.

lol .. really? How did I do that? :joy:

Very interesting and a good idea!!! Unfortunately, this does not change the other limitations of these palettes.

@Nige_S
Thank you for showing me an example, which I tried. Yours is a different approach but does accomplish what I was trying to do, namely, just have app-specific macros show up only in those applications to which they apply.

To Everyone:
I think my basic misunderstanding came from thinking you were telling me to put Show Palette of Macros in the palette itself! Based on @Nige_S's example, the Show Palette of Macros is simply in its own macro, not in the palette, which is why I kept saying the suggestions weren't accomplishing having macros "disappear" when not in the application they would operate in.

I hope I'm more on the right track now. When I have more time, I'll pursue this further.

1 Like