Is it possible to copy a macro to a different macro group without multiple instances appearing in the All Macros group category? I guess I’m trying to make a reference to a macro instead of actually copying it, or something.
The best way is to, in fact, make a reference to the macro. Use the Execute Macro action to run a macro from a different location.
I also wanted to add that @DanThomas created a very useful macro for creating macros that execute other macros through that action. If you do it frequently, Dan’s Make Macro Alias might become very useful to you. MACRO: Make Macro Alias
Maybe I’m confused, but each of the macros I’m referring to contains only one action. I want the same macro to appear in several different palette groups without multiple instances appearing in All Macros. The macro needs to appear in different groups to aid in navigating between palettes. If I understand correctly, an action must be contained by a macro, so every action needs at least one macro. Multiple instances in All Macros would appear to be the cost of using the same one-action macro in multiple palettes.
Correct. One macro can only appear in one group. It’s a 1:1 relationship. To make the same macro appear in multiple groups, you could duplicate the macro across each of the groups, but that means you’d have to change every one of those copies if you ever need to edit the macro. Better is to keep one copy of the macro and then “aliases” to it, or macros whose only actions are to execute the original macro.
Unless someone has another idea?
I’ve given this some thought, and I don’t see a way to avoid having the same macro (or aliases to the macro) appear multiple times in the “All Macros” list, if you want to include that macro in multiple Group Palettes.
###What you can do is mitigate the impact of these showing multiple times in the All Macros list:
- Use a prefix of these aliases that will sort at the bottom (like “zz”)
- Make good use of the KM Editor Global Find Qualifiers (KM Wiki)
- My “All Macros” list is far too long (> 1250) to be of any use visually
- So, using the Qualifiers above, I can quickly filter the list to something very manageable
- Use the MACRO: Go To Macro by Name (Spotlight) by @DanThomas to search for a macro to view/edit.
- You could even modify it to exclude the “zz” aliases, but it probably won’t matter.
###Having said all that, here are some ideas/questions: * If you have one macro (or more) that needs to be available in all (or many) groups, then put it in a "Global" group with it's own trigger (no palette) * If you have many of these "common" macros, put them in their own "global" group, with a palette triggered by some shortcut. Then you could bring up the list/palette at any time. * I have my macros organized mostly by App, with a very few (< 5) by function (like "Test", "Examples", "Dev"), so I really don't need/use the _All Macros_ group that often. * How do you have your macros organized? * To be more helpful, I would need more details about your workflow, and real examples of what you are trying to accomplish. Questions/comments?
Thanks iampariah and JMichaelTX.
Yes, I think relying less on All Macros is the best strategy. I don’t have 1250 macros in KM yet, but I do have over 1K shortcuts in QK. In QK I worked out a way to have a short string (3 consecutive keystrokes at the most) to access 512 shortcuts from an entry level choice of 8 keystrokes that trigger category palettes that I can drill into using visual cues provided in the palettes. An example: ⇧⌃⌥ 3 (Utilities), then a single numeric character such as 2 (maintenance utilities) followed by the final single numeric character such as 1 (Onyx). The 512 comes from the three levels of 8 choices each (8X8X8). It’s all about having quick access in one palette to many shortcuts that I may or may not use very frequently. Such an arrangement often helps me find launchers for apps and routines I haven’t used recently even when I can’t remember their names or their triggers. Each palette contains a macro for navigating to a higher level aa well as a macro to proceed to the next palette in the group or in the case of the last in the group, the first palette of the next group. I even have one palette that contains all of the 8 top level palettes in case I get really lost. The convenience comes from being able to navigate up and down in the hierarchy of palettes with simple numeric keystrokes to guide myself through the matrix of macros when needed.
I worked out a way to provide the same organizational arrangement with palettes in KM and now I’m just trying to clean up a little so I can share my method with others who might be interested. I was thinking of calling it something like Cycle Matrix of Palettes.
I'm curious. Were all of these 512 shortcuts global shortcuts, that worked in all apps?
Out of my 1250+ KM macros, the most I have for any one app is about 40, and that's for Evernote.
Are you aware that you can overload KM hotkey triggers, meaning that you can assign the same trigger to multiple macros that are active only in different apps?
OR, if the macros are active at the same time, you will get an automatically generated conflict palette to select the macro you want, most of the time by just one keystroke.
For example, I have 3 Finder macros that deal with dates, and they are all triggered by ⌃⌥D:
I use the same trigger in Evernote:
Obviously the "D" is an easy-to-remember mnemonic, and I use the same modifer keys in both Finder and Evernote to reinforce my memory of those.
I have one macro that is my master for displaying a palette for any Group, whether or not that Group was setup to use a palette. It uses ⌃⇧P, and based on the app that is active, it shows the palette for the associated macro group, even though I have not specifically designed a palette for that group.
For, example, if Finder is active, I get this:
Notice that most of those macros have their own hotkey, which are also always active when Finder is frontmost. Using the master macro palette allows me to do that. For more info see MACRO: @Palette Show/Hide Palette for @FrontMost App.
My point is that rather than having a tree of macro palettes, maybe there is a better, or at least alternate method for KM.
My own design for using palettes is a work-in-progress, and I'm still very much learning how to use them. There are others here that have done some very creative things with palettes.
Each of us have our own preferences and work styles. The great thing about KM is that it is very flexible and allows each of us to design what works best for ourselves.
Good luck, and let us know how it goes.
Yes, most were, although they don't all need to, and some don't. The main requirement for doing this in KM is that only the entry level macros are always enabled. All others are shown in palettes for which only one action at a time is active. That means that although up to 64 macros can be triggered by simply typing "1" when its palette is active, only one of the 64 is active at that instant, and if escape is pressed, the palette disappears and none are active. It took a lot of experimentation to get the right combination of settings for the palettes, and if there's a mistake in any macro's trigger assignment, it all falls apart pretty quickly. Here's a screen shot that provides a clue as to how they are configured:
Here's a screen shot of one of the bottom level palettes:
Note that the top entry in the palette (triggered by 9) triggers the next sequential palette, and the bottom entry (triggered by 0) backs out of the palette to its containing palette level. This palette doesn't yet contain a macro triggered by 8, but it can easily be added.
I should probably prepare the full spec for Cycle Matrix of Palettes before trying to answer more individual questions. I have it working on one system, the configuration of which required much trial and error. I haven't yet arranged the configuration steps into a concise sequence.
If your system works for you, then that is great! It will probably work for others as well.
For me, it is too complex and hard to maintain. I just use Trigger Macro by Name action (KM Wiki) when I can’t remember (or don’t have) a specific hotkey/typed string trigger for a macro. I have, for some time, been putting keywords that start with a “@” into the names of my macros, so this makes it easy to find (or narrow down the list) a macro.