Macro: AppWatcher: Categorize apps automatically as they're installed

These macros will probably only appeal to a few people, but they scratch an itch for me. Backstory: In the "good old days," the OS (and apps) didn't care where you put them, or how you organized them. I prefer to organize my apps by what they do—Audio, Video, Editors, Utilities, etc., and in recent years, that's become somewhere between hard and impossible to do: App Store apps have to go in /Applications; many independent apps have to be there as well, and some apps don't like being in subfolders, etc.

So I decided to give in, and just let cruft pile up in /Applications. But I still wanted categorized access to my apps, hence the creation of AppWatcher. This is a set of three macros—AppAdd, AppDel, and AppLauncher—that work together to categorize and launch apps.

UPDATE: Please re-download if you happened to grab version 1.0 There was an error in the update code, which will cause an error when the update check runs. Download the new 1.1 versions below, and sorry about that!

AppWatcher (33.0 KB)

Here's how they look in action—click each link to watch the movies:

AppAdd and AppDel

If you don't want to watch the short videos, basically AppAdd pops up a categorization menu when it finds a new addition in /Applications. You can easily add (but not delete) new categories, and then pick which category to assign to the newly-added application.

The macro will then create an alias to the app in the chosen category folder, and (optionally) try to add a green label (so you can visually see which apps have been categorized) to the app. This step fails if the app requires authorization to add labels, as is true of App Store apps, which is partly why it's disabled by default.

AppLauncher then lets you easily launch apps by browsing the categories:

And finally, AppDel watches for deleted apps, and then finds and deletes the corresponding alias, so you aren't left with a bunch of orphaned aliases.

All three macros include my macro updater code, so you'll be notified when new versions are available. They also all include (set to disabled) the command to track their usage in my Macro Usage Tracker.

Note that I only really included AppLauncher to show one way to use the other two macros, and it probably won't get any updates in the future. I personally use a different tool—Butler (disclaimer: It's one of our products)—to launch the apps, as it presents as a traditional macOS menu, and can appear under my mouse:

(There are a number of other apps out there that can do similar stuff.)

The AppAdd macro is not overly robust. It will probably break if you add multiple items to /Applications at once, for instance. It's also possible apps that use installers that do weird things may also cause the macro issues, though I haven't seen any here in testing.

There's also no management of categories built into the macros—you can add them, but you can't delete, rearrange, or rename them. For that, you'll need to switch to Finder.

For me, though, the real benefit is that the macro automatically forces me to categorize apps when they're added to my system (and keeps the aliases clean when I remove them).

If you do happen to try these, and have any feedback, please let me know what you think.



I just released version 1.2 of all three macros. Unfortunately, I found yet another bug in the updater code, which means you'll have to download these manually—the updater in 1.1 will give an error. So here they are:

AppWatch Suite.kmmacros (225 KB)

While only a .1 version number change, this is more of a total rewrite...

The launcher macro used to present a two-level dialog, which was cumbersome to use. I rewrote it as a single panel, grouped by category:

This is a much quicker way to both find and launch the app I'm looking for. Building the list is incredibly fast, thanks to a Terminal command (find -s /path/to/folder) that returns a list of very file in every subfolder of the specified folder.

The add macro now lets you specify if you want color labels or not, and which color to use—it only asks once then stores those values in two global variables. Side note: Emoji support in KM's menu in input boxes can be very useful:

It also now displays a notification (instead of an intrusive dialog) for App Store apps that require admin permission when setting a label. I also remove ".app" from the alias name, as it seems redundant and ugly when I have Finder set to display all extensions.

The delete macro is much better about finding and deleting the matching alias when you delete an app, and is also faster at doing so. It will also work whether or not the aliases end in .app.