Subroutines and Palettes: Should the subroutines go in a separate Group to "hide" from Palette

I'm just learning about Palettes and need some guidance please.
I made a number of macros and put them all into a group. In that same group I also have a number of subroutines that are called by the macros in that group. I put them all in one group as they are all for use with a single App (Family tree maker).
I have selected "Always Active and hides/shows palette when ctrl opt cmd F is pressed"... and that does indeed show a palette BUT it includes all the subroutines. So how do I hide the subroutines? should I put them in a separate group that is also only active when Family tree Maker is running?.. or is there a better/more elegant way?

I use two alternative methods to do this:

  1. If you "Disable" the Subroutine Macros they will still work as Subroutines but will not show up in the Palettes. (You can disable a Macro by unchecking the "Triggered by..." checkbox at its head, or from the right-click menu or from the main Menu View>Disable Macro). Disabled Macros are also greyed out in your list of Macros.

This method is good if the Subroutines are specific to a Group of Macros as it makes them easy to find and edit but hides them from the Palettes.

  1. Or, put the Subroutines into a different Group. That Group can be left as "Available in all Apps". I have a Group called "Subroutines" where I keep Subroutines that are used by other Macros in other Groups.

So, this second method is good for general Subroutines that are called by various Macros, for example a Subroutine that converts a date to a different format.

ALSO - one very good thing about Subroutines is they will still work even if they are later dragged into a different Group. The Caller Macro will still find them. So, you can change your organisation of them in the future without breaking anything.

EDIT - method 1 probably shouldn't really work as the Subroutine's only trigger might be to be executed as a Subroutine when it is Enabled and that has been unchecked. But it does work and is useful. It is probably a legacy thing from before "Subroutine" as a trigger existed.

I tried method #1 and for me it worked beautifully. I'll keep your edit in mind should that change. I just learned about subroutines (actually I am just learning KM in general) and I'm even more of a fan now you've explained another benefit of them.
Your explanations were very clear and helpful... thank you very much


1 Like