Feature Request: Nested Folders For Macro Groups (Macro Group Management)


Hi Peter,

My KM scrolling finger hasn't minded the enormous list of Macro Groups until today - it's pretty crazy now. Per the image, the lack of a folder structure has meant, for me, careful nomenclature of Macro Groups (which, as associative to palettes, can be ugly or non-optimal) so I can at least isolate by function (core, HID, keystroke, palette), focus app, task-use group. "Flavours" and alts of Macro Groups sometimes want folderizing. But it still makes for a VERY LONG LIST with hundreds of Macro Groups. :slight_smile:

Much of my KM use/ideas come out of the Pro Tools (#protools) universe. You may have heard about the big wing-flap recently that PT finally got folders and folder-tracks after 23 years. It's a sad, sad, bloated implementation causing ripple effects on the functionality of the rest of the app. I empathize that major architecture shifts can be difficult/involved.

I don't think it would be too daunting for a beginner to be faced with the difference between Macro Groups and 'MGGs' (Macro Group Groups?) if they were simply called 'Folders' or 'Macro Group Folders'?

My organization would be like:


Immediately, people would want programmatic, hierarchical control of these Folders, and also to Import/Export within this scheme. For me, these would be nice-haves of course, but just a GUI folderizing scheme in the left panel of the Editor Window. Would be useful.

Often it's the case that until you try building an organizing schema and then forcing yourself to use it, you suddenly realize how utterly essential it is to your workflow. Revelations have been had recently with Pro Tools, and I suspect it could be time for this in KM as well.

Am I missing anything? Is there an organizing scheme beyond naming, Macro Groups and Smart Macro Groups that I could be using for this?

Thanks for your time.


Folders for Macro Groups is on the wishlist, but it is probably not something I am going to implement. It adds a lot of complexity in terms of both UI and support code, and benefits only a tiny fraction of Keyboard Maestro users, which is not a good combination.

Thanks Peter. Yeah, i figured this might be the case.

And it might be a little lazy on my side, as i could export and library
the macro groups/macros i no longer use on a regular basis - keep it
clean. a bit greedy to want it all out and open so i can grab the ideas
from here and there.

it does kind of infer an aspect of limitation, but you're right - i'm
probably in the 8% who go that hard with it.

thanks for getting back to me

Tags might be more useful anyway.

1 Like

If you aren't using them, you can disable them and then turn off View ➤ Show Disabled Macro Groups, which hides all the disabled macro groups.

I agree. I have about 162 KM Macro Groups now, and would have many more if KM supported sub-Groups.

May I ask how do you know that?

We are all used to having folders and sub-folders in the Finder.
So it is a very natural organizational tool.

Evernote took this same design attitude from the beginning.
Today, there are many, many EN users who continue to complain/request sub-notebooks (sub-folders).

I don't understand this. We have had tree UI structures for decades now, and surely there is a lot of support for implementing this.


I know people use tags very effectively. But for my own workflows, hierarchies are tags with meta/semantics in-built. A folder is a defined, checkable entity whereas tags are a bit iffy for my uses. I recently had a roll through a Shopify job where the navigation is the the tags, but this is only effective because there's a structure displaying the tagged items (items outside the nav scheme are space dust).

But perhaps what we're asking for is a tagging system for Macro Groups, and then a Shopify-style nav system which will round up tagged items in a sensible structure. This could be a GUI-level thing without having to rebuild the whole app from scratch.

Unfortunately, seeing a Macro Group disabled and greyed out is as important as confirming the ones that are running; ie. knowing which of the set is active at a glance is key. Scanning the list is important. I'd just like disclosure triangles to be able to put active/disabled related MGs into their own home, to be used in a daily, minute-to-minute way.

The simplest example of splitting out forum lessons from one's own work sells the idea. Using a prefix naming system is fine until you're into the hundreds. :slight_smile:

I'm very grateful that KM doesn't collect analytics data. Native Instruments seems to give consent boxes but then goes ahead and ships off the collected data anyhow. I'm sure @peternlewis knows how his demographic breaks down into single-fix-users, casual users and lifers.

I know the UI would be a pain, especially because directories take up a lot of horizontal space when the Macro Groups panel is already tight (but this is partially because MG names have to be so long in absence of nav).

The extended ideas of being able to programmatically active/inactive a folder of MGs, or access macros through their nav... and that level of work... this is overkill. I would think that a simple database lookup in the prefs of MG_idnumber against a nested array of what lives where. Dragging around folder to folder would be nice, but you could use the "Move ->" plan from Things 3 or similar. Something akin to the bookmarks org in Firefox or WordPress level nav. It's making me nauseous just to think about it, so I can see why this would be daunting and horrible.

My only point in this reply is that GUI/pretty is the only thought, nothing adding to the functionality or meta of KM. We specifically want the MGs to perform correctly as we shuffle them around for the human brain into context.

Tags is actually the opposite gesture - add geographical meaning within the app where hundreds of Macros each inside hundreds of MGs are hard to track after a certain threshold (which will be different for everybody).


The reason I had to double-check myself that a folder system didn't already exist is because there is ALREADY a MG nav implied with the programmatic Macro folders at the top of the Groups panel.

I would also be very happy with the more experiential Apache type web-browser type scheme, where you "drill in" and have a _parent_folder link at the top of wherever you are.


Imagine clicking on the Enable Macros folder and then you're "in" it, faced with more files and folders. This is also compact, horizontally.

Native Instruments Kontakt has a similar system, compact and space-saving, but it is less enjoyable and fussy.

Increased organization could be something to look at for KM v10.

I don't know if anyone cares or not, but a bunch of the macros I've uploaded to this forum, that a lot of people use, would break if nested folders were implemented. I don't have the time or energy to fix them, so for me personally, I'm thankful @peternlewis isn't going to implement this. :smile:


specifically so they wouldn't break, the idea was to continue to reference macros/macro groups by name or id or however he s currently doing it. (if you move these things aroubd they still get found). nav tree as I suggested would be UI convenience only with no changes to ref ids internally.


Ah, I get it.

But a refid is an inscrutable thing.

the scrutiny is PNL's alone. we don't want to scrutinize any parameters
or fields, or add any feature-complexity to KM, simply to have a means
to UI visual organization of hundreds of Macro Groups, and also create
an analog in import/export.

each macro group quite obviously already carries some unique id number
since scripts can reference them. we just need an array in the prefs of
where these can live in a nested folder tree. it shouldn't break

1 Like

Just adding my +1 to this request as well. Even if there was a way to "tag" Macros or Folders, and then create some sort of Smart Folder system, that would be great for organization.

KM already has a “Smart Groups” concept available. Check it out here: https://wiki.keyboardmaestro.com/manual/Smart_Groups

Neither of these address the prodigy of ten years plus of KM development
since QuicKeys perished, and also the fruits of that preceding era.
Unfortunately the massive need is for a GUI solution within an app-based
development system which addresses real work.

I've just rebuilt my TV mixing template in Pro Tools which has also
grown beyond the limits of their GUI's restrictions - fortunately, a
number of Folder Tracks options have arrived in Pro Tools Ultimate and
sanity is finally achievable. These exact problems were also present in
necessary Pro Tools workflow: active/inactive, hiding/showing, fussy
naming, 'announcement tracks', colourizing, etc. Folder Tracks has
brought agriculture to the savages. Is being a savage the correct way to
live - I would say yes. But to remain competitive in 2021, I would say
no. :slight_smile:

I'm essentially asking for the same in KM. The audio track/MIDI
track/aux/master level is analogous to the Macro Group level in KM. The
solution is nested folders with disclosure triangles. Colourizing within
Macro Group lists/hierarchy is also a secret ticket. Humans (most of us)
respond to colour. Any quick review of the power of Folder Tracks in Pro
Tools (a specific $1200 upgrade to a version that addressed this, led to
much missionary-style videos on the subject)... will IMMEDIATELY bring
into focus the dire need for this in KM.

For those of you punters who have a couple of dozen Macro Groups will be
dismissive. But for those of us who have been serious with development,
and 'mode use alternatives', we have HUNDREDS of Macro Groups, even the
storage of ERAs of multiple tunings of multiple systems and have had to
rely on alphabetical naming hierarchy including cryptic shorthand
(including emoji ffs in my case) to get it all to fit into one
hierarchical level.

The scrolling takes forever, the time to destination is exhausting, and
the need for Nested Macro Group Folders is absolutely non-trivial.

A separate organization window, such as would be found in Firefox for
History or Bookmarks, would be an easy solution without breaking any of
the existing. Even a window like this that could pop up a New Editor
Window based on double-click in the Organization window. Naturally,
though, the first pane of existing 3-pane GUI wants upgrade to include
nested folders/disclosure of Macro Groups. The existing editor window is
really good. The organization window could also be detachable, as with a
Photoshop module. (I currently have no fewer than three simultaneous
Editor Windows open at any one time, dragging and dropping macro
references, copying and pasting blocks between macros. It's not
unrealistic to have an Organizer window among the fray.)

I can't take seriously the in-the-bin approach of tags/search/results
which offers no real visual organization, when multiple application
clusters, projects, mode-cases and workflow are at risk of disappearing
into a black hole.

As Macro development increases by an ever-expanding user-base, this
aspect of KM will also increase; addressing this need is unavoidable

To give an example, last night I again came upon Defaulter from Quiet
Art NZ who offer in-built KM scripts via a button on the plugin.
Naturally, they put their Macros in a Defaulter Macro Group.

But this doesn't suffice for an incoming KM asset - what is required is
to move it into its proper home upon installation:

Macro Groups/external/Quiet Art/Defaulter/210329-1805/Defaulter/v10

and with their next update:

Macro Groups/external/Quiet Art/Defaulter/210330-1815/Defaulter/v11

There is tremendous potential in the power of this organization - none
of the hidden KM Macro IDs need to change, things don't need to break -
it's just organization within the app. Just an additional meta-grid
against which the Macro Group knows where it lives. This folder
information need not even be imported/exported. (Again, Pro Tools is an
easy reference for how to do import/export of hierarchy as well.) I
don't see this as a ground-up rebuild thing, just a GUI write/read to a
multidimensional array in a preference file.

One additional note: Using Folder Tracks in Pro Tools, there is
hierarchical and logic based active/inactive on the Folder Tracks as
well as content tracks. There is an interesting logic to this, and also
great potential for power. A folder containing some active, some
inactive children, will remember these settings and revive those states,
so a folder remembers whether it itself is active/inactive and also
governs its child content.

In the Defaulter case, imagine being able to choose:
Macro Groups/all_my_stuff/(macros)
Macro Groups/incoming/Quiet Art/Defaulter

And being able with one button to shut off everything except just the
test macros. Fantastic for troulbleshooting.

Sure, you could select all groups, with the exception of the
"downloaded incoming apps dubious problems Quiet Art Defaulter v11
210330-1824-" Macro Group, and then disable all but focus.

But if you HAD the option to do it in a more delightful, less
hours-consuming way, would you? The whole ethos of KM is 'person-hours
saved', why would we not do this on a meta level as well? :slight_smile:

The towering culmination of human endeavour thusly defeating our
original aims. If Folder Hierarchy creates time wasted for people, then
absolutely don't include it. If it helps KM speed us all up, in
development and also daily use, then it's a vital aspect which simply
must be included.

Hey Renton,

Now you've gotten that off your chest again...  :sunglasses:

I refer you to post #2.

I get where you're coming from and have some 164 macro groups myself.

I was wishing again just yesterday for nested groups, but Peter says we're an extreme minority – and it's not worth his development time, effort, and dollars.

Put up a cool million US dollars, and you might incentivize a change in his perspective – but your considered arguments aren't likely to build any ships.

So... We have to live with what we've got.

These macros by @DanThomas are worth looking at if you haven't seen them and might just ease your way a bit.

MACRO: [KMFAM] Favorite Actions and Macros

MACRO: Go To Group by Name (Spotlight)

Go To Macro by Name (Spotlight)

MACRO: Execute (Trigger) Macro by Name (Spotlight)


1 Like

Thanks for the links, Chris. I've got my flow, it's not ideal, but
obviously we're all productivity/workflow nuts. (I'm probably a little
greedy not doing a monthly pack-away of Macros I'm not using. It's just
nice to have the whole history available for when something jogs

Interesting USD figure - doesn't feel like we're talking about Avid
behemoth-style steerage, just a wee read/write to the existing prefs and
a bit of GUI work. It would incentivize upgrades to KM10. I do realize
software dev is always 100x what it looks like on the front end.

It's the ideas that bring the real value, and I've provided many
scenarios for this, gratis. I did appreciate the thorough MIDI build-out
which may have been partially inspired by my notes. If it opens up
options for a portion of the community that's a beautiful thing.

Just trying to help; hope it doesn't read as whining.