As much as I rely on our own Many Tricks' apps every day, there's one I rely on more: Keyboard Maestro (KM), the macro app for macOS that can do pretty much anything. How much do I rely on it? The shrunken image at right lists all of my macro groups—not macros, just the groups holding the macros. In terms of actual macros, there are over 425 at present. (These are not all user-facing; many are macros that support other macros.)
I use KM for everything from gathering monthly utility bills to inserting HTML code in blog posts to generating replacement license files for users to controlling iTunes to decrufting URLs when copying (future post coming on that one) to automatically naming and filing documents I scan to storing snippets for insertion into our apps' help files to opening oft-used URLs to adding key functionality to many apps such as Excel, Mail, Messages, Photos, Preview, Safari, etc. In short, it's the single most-used app on any of my Macs.
For as much as I love KM, it has one major shortcoming: All of those macros live in one large XML file. Yes, I back it up to many local and cloud locations, so I'm not worried about losing it. It does mean, though, that if I mangle a single macro while trying to fix something, there's no easy way to get back to the working version (assuming I've gone past the point of multiple undo steps).
But now I can recover from such stupidity, thanks to the amazing Macro Repository Suite from Dan Thomas. This suite consists of two macros: One that updates (and initially creates) the repository, and one that restores a given macro from the repository.
Yesterday, I noticed that the Stocks Dashboard widget in Mojave was no longer working. I couldn't find a similar (small window, always there, only stock prices) app that did what I wanted, but I did discover mop, a Go program that runs in Terminal. Using mop and Terminal's ability to save a window layout, I was able to craft a solution that worked for me.
Then commenter smayer97 asked…
Any solution to replace the mini-graphs at the bottom of the old Dashboard widget?
I didn't pay much attention to the graphs in the widget, so I hadn't considered them in my solution. And there's no way I was going to find a tidy graphing solution that also worked in Terminal. What I came up with isn't quite as convenient as having the graphs available at all times, but it's pretty close—I just have to click on a ticker symbol while holding down some modifier keys:
As you might have guessed, this is powered by a Keyboard Maestro macro, and I love how well it works.
Note: Revised on December 4, 2018 with a much better implementation of the pop-up palette, and some changes in timing and mouse movement.
One of the "problems" with Keyboard Maestro is that it's so useful I use it a lot, leading to a large collection of macros. Due to the number of macros, sometimes when I want to add a new shortcut, I can't remember if I've used that shortcut before or not. Today's tip comes in two flavors to address that problem: Simple and Complex.
The Simple solution
Short of just trying the shortcut, there's a way to check from within Keyboard Maestro itself: Type the macro's activation keys into the search box, as seen in the box at right.
You can't do this by pressing the actual shortcut keys—you have to type their character representations. You can do this with the "Show Emoji & Symbols" option under the flag icon in the menu bar, if you've enabled it in the Keyboard System Preferences panel. But finding those few special keys (if you even know how to search for them) is a pain.
Technically, you could also use the pop-up character palette macro I wrote, except there's an issue: When the palette activates, it deactivates the search box, so the characters don't make it there. It's also overkill for this task, because there are characters that wouldn't be part of keyboard shortcuts, and you'd never need the HTML codes, just the characters.
So I wrote what wound up being a set of new macros that make searching for assigned keyboard shortcuts much easier.
Last fall, I finally made the move from iPhoto to Photos…months later, I still find myself frustrated by many things in the Photos' user interface.
Today's aggravation dealt with cleaning up a bunch of older photo albums—some I just wanted to delete, others I wanted to convert from Smart Albums into normal albums (because I wouldn't be adding any more photos that used the keywords in the Smart Album). That meant I wanted to delete a bunch of albums—well over 100.
Deleting an album in Photos can only be done from either the My Albums overview, where you can select more than one (though not across folders), or via the contextual menu in the sidebar.
The My Albums view wasn't going to work for me, as I needed to look at and work with many of the albums, across many folders. But after the sixth time of doing the "right click, select Delete Album, tab to Delete in the confirmation dialog, press Return" dance, I was sick of it. Time for another Keyboard Maestro macro.
This one is very simple—it just replicates the actions required to delete an album. With it in place, I click on the album I wish to delete, then press Control-D. It's still more mouse interaction than I'd prefer—why can't I select albums via the keyboard?—but it's oh so much faster than using the contextual menu.
Yes, I posted a non-https image in the 'site is secure' post. Sigh.
So I took Jonathan's comment to heart, and created a Keyboard Maestro macro that ensures I post only relative URLs from now on.
Generally, I don't think such a thing would be worth sharing, as it's just a basic text replacement macro, right?. Mostly right, but in this case, I learned about a Keyboard Maestro feature that may be useful to others. So share I will…
Note: I'm leaving this up for historical purposes, but there's a new special character palette in town, and the new one is vastly superior to this version. This hint might be useful for general Keyboard Maestro knowledge, but really, use the new version if you want a special character palette.
Between blog posts and documentation for Many Tricks, I find myself typing the Mac's "special character" symbols quite often: ⌘ (Command), ⌃ (Control), ⌥ (Option), ⇧ (Shift), and (I think that's an Apple).
You can type some of these via keyboard shortcuts (the is ⇧⌥K), or by using the Emoji & Symbols viewer. But I find both those methods clunky and slow; instead, I used Keyboard Maestro to create a couple of pop-up palettes that show all the characters:
I use two palettes because while I typically can paste the character itself, that doesn't work in some spots—like here in the WordPress' blog post editor, for instance. In those places, I need to use the HTML code for each character—so that cute little appears when I insert . Ugh. Hence the character palette on the left and the HTML palette on the right.
When I want to insert a special character, I first type the activation keys for either the character (ccc) or HTML (hhh) palettes. When the palette appears, pressing one through five will insert the corresponding character or HTML code for that character. No keyboard shortcuts to memorize, no need to negotiate the Emoji & Symbols viewer. Just a few keystrokes, aided by a visual representation of each character, and I'm done.
Ever run into a program that has some pre-defined keyboard shortcuts you don't like? In most cases, they're associated with a menu item, which means you can use macOS' built-in keyboard shortcuts function to fix them. (In System Preferences > Keyboard > Shortcuts > App Shortcuts.)
But what if the shortcut isn't associated with any menu item? Such is the case in Excel 365, which replaced a couple easy-to-type shortcuts (⌃I and ⌃K for inserting and deleting rows and columns) with much harder to type versions: ⇧⌃= and ⌃-. If there's no corresponding entry in the app's menus, it seems impossible to remap the shortcuts—unless the app itself offers that feature, which Excel did in prior versions.
The good news is that it is possible to remap any keyboard shortcut in any app, as long as you're willing to add one more program to the mix: Some sort of macro app. My example uses Keyboard Maestro, but any app that can send a key sequence in response to another key sequence will do the trick.