Mac Power Users 484: Unlocking Keyboard Maestro

2 Likes

I took the Keyboard Maestro Field Guide. This is my story.

7 Likes

Fun with Palettes!

MacSparky really nailed it with this new video field guide. I’ve been using Keyboard Maestro for years, and I’d never figured out half this stuff. I’m especially stoked about palettes. Wow. I finally get it.

Still, it’s frustrating to have to use the mouse to select items on the Global Macro Palette. (***Feature request?***) Someone on the Keyboard Maestro forum had the same question: How do I get Group Palette key response behavior to imitate Conflict Palette?. You can follow that link for more on this (with some terrific videos that happen to be in German), but the upshot seems to be this…

Never use the Global Macro Palette.

Instead, assign the hotkey that you would use for the Global Macro Palette (in MacSparky’s case, F20; for me it’s hyperkey-A = “⇧⌘⌥⌃A”) to all of the items (including palettes) that you want to include in your globally available Über-palette of macros. This generates a Conflict Palette, which means that you can type the highlighted characters to launch a specific action or palette. This way, your hands never have to leave the keyboard.

For bonus points, you can use fixate the order of the items on a palette by starting a line with a number followed by closed parentheses, like this: 01)Primary macro (which then appears as “Primary Macro”.)

Here’s an example (just for illustration, it’s not particularly useful). It shows how you can make items appear out of alphabetical order (with the numbers at the beginning) and how you can add a character at the beginning, to make it the hotkey that appears in my iTunes Palette.

This is a screenshot from the Keyboard Maestro Editor:

And this is what it looks like once the palette is activated:
40

Hope this is useful.

5 Likes

Hey there @ismh and @MacSparky, have you ever seen the KM Engine in a runaway mode like this screenshot?

It was incrementing multiple times a second and was apparently interfering with keyboard input - SUUUPER slow typing response and many missed characters.

I had just made a macro that launched Firefox for a particular use and went to a particular URL. Nothing fancy, but it seems that it got sent into some kind of loop.

(BTW - I bought the Field Guide and would recommend that anyone who is interested in KM to do the same. Great stuff in there!)

This was a great episode of MPU and I have been loving the KM Field Guide so far. There was a suggestion that we post any cool macros we are working on or have worked out. Is there a separate thread for this? I haven’t found it yet if there is. I put together a macro that does something fairly specialized - it prints a Keynote presentation into a handout with two slides per page in portrait mode (instead of landscape) which I use all the time to post class materials to the learning management system at the University I work at. If anyone wants to see it I would be happy to share. So far it works great on both my home and work 15" MacBook Pros. Thanks for all your work on this @MacSparky! And for a great show this week from you both.

2 Likes

The notifications will be reported in the Engine.log file (Help ➤ Open Logs Folder), but this sort of runaway notification is pretty much always this issue: Allow JavaScript From Apple Events.

Basically, you have something like a Pause Until that is trying to access the web browser, and the web browser is failing the request because you need to enable Allow JavaScript from AppleScript, and Keyboard Maestro reports this, but then the pause loops and the thing repeats, including another notification.

The next version of Keyboard Maestro will have a rate limit on this notification.

7 Likes

As others have said— really liking the field guide. Learning a lot.

Is anyone else having the problem when you complete a lesson it doesn’t check it off? Is there something I need to reset?

Had the same issue until I noticed the “Complete and Continue” arrow on the upper right of the video. That’s the only way to check off the tick boxes.

1 Like

Excellent episode. Thanks so much for unpacking in layperson’s terms how Keyboard Maestro works, and why it’s worth learning. Can’t wait to go through @MacSparky’s field guide!

Can someone point me to the “10 clipboards” trick that @MacSparky mentioned in the podcast (somewhere in the first half)? Just looking for the appropriate section # in the FG.

Nevermind … I figured it out. Thanks!

Hello. I am new to KM and am testing the app to see if I can find some uses. I have used Textexpander, hazel and other automation software for years so I am somewhat familiar with the uses.

I am wondering whether I could use KM to set up a keyboard command to automatcally forward an email to a set person each time. In other words, in Apple Mail, hit the keyboard command and it auto forwards the email to the same person everytime. I need to forward emails to the same person 6-10 times a day and anyway to automate this would be great.

Thank you in advance for any advice.

Hi David,

One way to do this would be is in the image attached. I’m sure there’s a way to do this via Applescript, but I’m not very practiced at Applescript, so I’m showing a more rudimentary way.

Note that this script sends the message immediately. If you want to send after reviewing it, then remove that last line. I’d also recommend putting this macro in a Macro Group that’s limited in scope to Apple Mail, so that its less likely to fire off if your finger slips. The “Pause” Steps are in there to give the commands time to execute. They might not be needed.

As I read your OP, you’re sending to one email address every time. If you want to select from a short list of a few email addresses, you can change around the macro to look like the second image attached (steps that are collapsed are the same as the previous one).

Hope that helps a little. LMK if it doesn’t work

2 Likes

Wow, this is great SamKale. I greatly appreciate this and will play with it today. I appreciate your help :slight_smile:

HI SamKale. I tried the first example with the just one email, and it appears to be breaking down in the SEND action
37%20PM

Hmmm … that’s interesting. Looks like Mail.app won’t allow an email to be sent programatically. I tried replacing the “Select Menu” item with the keyboard shortcut (⇧ ⌘ D) and it would not let me do it. But if I select the menu item or press the keyboard shortcut manually, the email sends just fine.

Only thing I can think of right now is to eliminate the “send” step. Means you’d have to do two keypresses instead of one … one to invoke the Macro and another to send the email.

Ugh … sorry …

Ok. Thanks again for your help. I will keep playing with it and see if I can figure anything else. This is very helpful though and thank you

1 Like

Triggering Keyboard Maestro from Omnifocus tasks with URL schemes
Hello everyone!

I really, really loved Dave’s latest Field Guide. For years I wanted to try Keyboard Maestro, and this FG has provided the exact momentum I needed. Thank you, David!
I have one use case that I was sure David would cover, but it did not make the cut (so far…): In my mind, one of the most obvious triggers for a KM action would be an OmniFocus task. I try hard to maintain my task manager full of actionable tasks. What would be more natural then than to use OMF tasks as the trigger to action KM?
Surprisingly, you find many suggestions online to use KM to create OMF tasks or to access given OMF perspectives. David himself explains this. But the converse, which seems so natural to me, is not as documented. At least I could not find many references.
One possible solution is to use a URL scheme in the notes field of the OmniFocus task. kmtrigger://macro=YourMacroName seems to do the trick.
To give an “Orchard-like” example, say you have a set of tasks in OmniFocus to help to get ready for an airborne trip - something like a templated project, as discussed in “Automators”. At one point there is a task to remind you to check-in, deferred to 24h before the flight. To automate my check-ins, I have created a KM action:

  • It enables the user to pick up an airline in a preset menu.
  • It activates Safari and opens a new tab with the URL of the company’s check-in webpage.
  • On the side of Safari, it opens one note in Evernote where I store my personal data (passport number, frequent flyer numbers, etc.) to help me checking in.

This action is called ‘Airline Check-in’.
I have added in my (template of) OMF task a note field that reads:
kmtrigger://macro=Airline%20Check-in
(I also include the reservation reference number, but this is a detail.)
Now, when my OMF task appears as available, I just have to click on the link in the field notes to run Keyboard Maestro and get everything in place for my check-in.

Coming back to Dave’s use cases, another possible use would be if you have a reminder in your task manager to prompt you to prep for a meeting, it may include such a link to trigger the setup for the meeting.

This is a recursive situation where you can use Keyboard Maestro to generate Omnifocus tasks, that include URLs to trigger Keyboard Maestro actions, that may create new OMF tasks, and so on.

At one point, David will have to work on a new Field Guide to show how one integrates all the tools he describes so well!
Nicolas

1 Like

I wanted to share a couple of my favorite KM macros. Some I’ve migrated over from Alfred for consolidation, others are ones that were just generally easier to do through KM.

  1. Copy link from Mail.app

I have mapped ⌘ ⇧ C to “Copy link to message” in Mail.app. This way I can have a link going directly to an email in apps like Omnifocus

  1. Switch to different audio output when USB device is detected

I use an audio DAC at work so that I don’t have to hook up my headphones each time I dock my computer. Whenever KM notices that the DAC has been plugged in on my hub, it switches the audio source. I also detect when it’s been removed and set my mute volume so that I don’t accidentally blast my music when I take my computer away from my desk.

  1. Formatting JSON

I copy JSON often, but as a single line. I have a way to nicely format JSON so that it’s easier to read


I would have included images for each macro, but apparently new users can’t post more than one image.

1 Like