But…aren’t the Macros almost the same as the Workflows?
Nope, I love Keyboard Maestro macros but have never been able to wrap my head around Alfred’s workflow. Your mileage may vary.
I was in the same place as you as few yrs ago. I just ended up using Alfred and BetterTouchTool for everything. They do everything I need from them. Alfred alone is enough I’d say. However, I still pay for Keyboard Maestro upgrades as the dev is amazing, I like the one-time payment model, and I find some useful scripts on their forum to build Alfred workflows .
Alfred’s workflow is triggered from the keyboard. KM triggers are not limited to just keyboard. I have KM macro triggers when I unlocked the Mac, when I plug in my scanner, when I press a button in Stream Deck. And I also have macros that only runs when certain app is in front or when certain apps are at the background.
I use both and I’d say they complement each other.
Keyboard Maestro macros are much more powerful for complicated things. (or I see it that way). It is really almost a complete computer language.
In particular, Loops and Conditionals are built into the KM macro language and are very complete. Anyone who has programmed will be familiar with the basic concepts.
Some examples of commands that allow creating a sophisticated logical structure:
Group
Until
While
Repeat
If Then Else
Switch/Case
For Each
Try/Catch
Throw
Execute a Subroutine
Continue Loop
Break From Loop
Retry This Loop
For simple macros that consists of a few steps without a lot of internal logic I am less concerned about where I am getting that macro from. But KM is incredibly rich if you need it. It handles very simple macros fine, but my use is largely trying to coordinate a multitude of programs to complete some task hundreds of time. All of it could be done by hand but it would take forever and you would go crazy. KM for me is making essentially impossible tasks possible.
I would caution that because I am so happy with KM I may not have dug as deep as would be necessary in BTT or Alfred. But when I take a look at these tools they do not seem to be as deep particularly with looping and conditionals.
KM macros are Turing complete.
Great answer from @rlivingston
A few other points/reminders from a long-time user and fan of both:
- the KM forum is much better.
- Alfred’s ML is a big plus over KM and reason to have both IMO
- I dont know python, which gets in my way with Alfred, whereas I do know some AppleScript which helps in KM if you want to get fancy. Not that either are required, but when I hit a wall, see #1.
- if you are a power user who gets joy from making your Mac do something new, KM is a must.
Like I said, I really like both products and their developers. If I had to choose one, KM in a heartbeat because it can do way more than Alfred. And I don’t mean that as a slight on Alfred, just to demonstrate how great KM is.
May I ask you how you use BTT?
I have it, but I use it only for windows management and some trackpad gestures.
I’ve never been able to find more advanced uses on the Web.
I used to use it A LOT with the touchbar, but here are three uses still in play for me:
- Trackpad gestures, both tied to BTT actions and to launch Keyboard Maestro macros and Aflred workflows
- Window Snapping and Snap areas
- Keyboard shortcuts that include the Function key. I don’t know how he manages to make this work, but it unlocks a bunch more key combos if that’s what you’re into
Oh, BetterTouchTool is a workhorse. It is supremely underrated and I’m surprised how useful and cheap it is (I bought it for $21 lifetime - it’s even cheaper than Alfred and I use them the same amount). Most users think of it as a trackpad/mouse tool - I think that’s because the developer doesn’t market the features well enough.
A few macros/features I use in BTT
- Time-based triggers: Every day at X time, it shows a Heads Up Display for me to do something, you can have it do anything, run a shell script/JS,Python, whatevre you want)
- App specific shortcuts: I standardize my shortcuts across apps so I don’t have to remember shortcuts available in the app. For example, some apps use ⌘+F as a search everywhere, and some use ⌘+⇧+F, I set it to ⌥+F, and regardless of the app, it opens the search everywhere feature of the app.
- Open Apps with multiple actions: I use ⌥+C for Calendar, ⌥+m for email etc. These are global shortcuts. One could also set it up as open this app and then do A, B, C steps.
- Custom Floating Apps: I’m in love with this new feature. Basically, you can open a webpage as a floating view, build a dashboard of your choice and it shows up anywhere on the screen. I have it open ChatGPT as a floating window. Some people do other stuff.
- Custom Menu bar Icons/apps: I added a microphone to my menu bar and it turns red every time the mic is on. If I click it, I can turn the mic input vol on/off. Double clicking the menu bar also hides all the icons left to the BTT icon. No need for Bartender lol
- Custom Context menu: One can build custom context menu and have them open on any trigger. I have them on ⌥+Two finger tap
- Trackpad: this is the most used feature. I use three finger swipe to navigate tabs, 4 finger swipe down to close the tab/application. Basically any gesture you can think of can be configured in this
- Window Management
- Multiple Clipboards
- Text Processing
- System based triggers: When laptop turns on > do this, then wifi is switched > do this, etc etc
These are just a few features. I can go on and on
PS: You can see the floating window and also the mic in the menu bar
Interesting little detail there! I have been struggling to find meaningful keyboard shortcuts without constantly having to figure out conflicts but for some reason, it didn’t occur to me to use Fn (maybe because it’s in such an inconvenient place on my Satechi keyboard). Could you elaborate
a) what the challenges of using Fn are (and which BTT handles better than KM)?
b) how you use Fn shortcuts?
a. I don’t see any challenges to using fn key. I mostly use the keyboard on my MBP or an apple keyboard. As you mentioned it also doesn’t conflict with anything.
b. My uses are sporadic. E.g. fn + C=opens ChatGPT, fn + G=opens grammarly + opens new document + pastes the text there. Fn+y=search selected text on YouTube. You get the idea.
The reason I asked about challenges with using Fn was that you wrote
Emphasis on better. From that, I assumed that there are some challenges that BTT handles better.
On my MBP I keep pressing Fn instead of Ctrl and I thought that was because I’m not using A Magic Keyboard on my Mac Mini, but now I verified that also the Magic Keyboard has the fn key above the delete key, i.e. in a completely different place than where it is on the MacBook. Not very Apple to have this kind of inconsistency.
So, I guess I can’t use Fn as a modifier of its own (because I would constantly be triggering the wrong shortcut) but combine it with ⌥ or so…
Since you mention Grammarly: are you also annoyed by how its overlay is constantly in the way? Like right now it’s at the bottom of the editor field, which is exactly where my cursor is, so I always need to add a couple of blank lines.
I thought it they’d fix that pretty soon, because it’s such an obvious UI design flaw, but it looks like - well how ironic. I was just going to write “but it looks like it’s not enough of an issue for them to fix it” and in that very moment the cursor arrives at the overlay and this happens:
The overlay minimizes to a red dot. Wow! I’ll shut up here.