Skip to content

Keyboard Maestro

Search sites from anywhere via shortcuts, version 3.0

Yes, it's the return of the return of Web Search via Shortcuts, now at version 3.0 and much better than either of the previous versions. This is my Keyboard Maestro macro that lets you easily search web sites via a pop-up menu and an abbreviation:

The above would search DuckDuckGo for the theory of everything, and open the results in your default browser. Here are the highlights of the 3.0 release:

  • The input dialog appears much more quickly—over 4x faster than in the 2.x series.
  • All customization is done within the macro itself; there's no need to muck about in the Keyboard Maestro editor.
  • You can modify (shortcut, description, URL) any search site, including the default sites.
  • A list of 80+ search sites is included, and you can activate any of them with a few clicks and the creation of a shortcut word for each site.
  • All updates are tracked in two small text files on your drive, which means future updates will be completely automatic.

Read on for the details, or if you'd like to get started with Web Search via Shortcuts version 3, download the macro now. (Current users can use the check for updates macro to download the new version directly from version 2.x.)
[continue reading…]



Search sites from anywhere via shortcuts, version two

Jan 14 2022: Version 2.5 is out, with a bug fix and a new check for updates button on the help panel. Download the macro, or get the update by manually running the Update check macro within the 2.4 release.

Jan 14 2022: Version 2.4 is out, with an optional "no text" input dialog, a default mode to search a favorite site without a shortcut, and faster processing of search terms.

Jan 9 2022: Version 2.3 is out, with a new download verification feature (which will be useful starting with the next update), a much simpler update checker, and some minor bug fixes.

Jan 4 2022: Version 2.2 is out, with a fix for an annoying bug I introduced in the update checking code that could cause the macro to quit after being invoked. Sorry!

Jan 2 2022: Version 2.1 is out. The most-obvious new feature is shown at right—a live-filter option for the list of shortcuts in help.

But there's lots more—check out the release notes to see the full list, including the newly-added shortcuts.

A week or so ago, I published the first version of Web Search via Shortcuts, my Keyboard Maestro macro that lets you, well, search the web from anywhere via shortcuts—you can type rob macros, for instance, to search this site for entries related to macros.

I was very happy with how the macro worked, but behind the scenes, it wasn't all that good. What started as a small project (make it easier for others to customize the list) turned into a near-total rewrite. So…introducing Web Search via Shortcuts, version 2.0:

If you need more general information on how the macro works, please refer to the original post; there's a lot there I'm not repeating here.
[continue reading…]



Search sites from anywhere via abbreviations

Note: This post is no longer updated. Please see the version 2.0 post for current details and download links. This post remains because it has a fair bit of information about the macro in general.

Nearly five years ago, I wrote about my simple Keyboard Maestro web search macro that let me search many web sites from anywhere within macOS. While it worked well, it felt a bit cumbersome—I had to scan a pop-up palette of sites, and then press the proper key to select the site I wanted to search (so I had to keep the list relatively short). Then I'd wait for a new prompt to appear, type the search terms, and press Return.

Because of my macro's convoluted interface, I found myself using our own Butler most of the time, as it offers an interface similar to SafariKeywordSearch (which works in Safari as an extension; I was reminded of it due to a recent post by @danmoren on Six Colors). Both it and Butler do keyword searches, so you can type d best home vacuums to search DuckDuckGo for best home vacuums, or gm Tokyo to search Google Maps for Tokyo.

I decided to rewrite my macro to work like those apps do, but with an added feature: I use a number of browsers, and there are times I want my search to run in something other than the default browser. Using my rewritten macro, I can now optionally specify a browser in which to run the search. So when I activate the macro, I can use one of two different formats for the search command:

Both of those searches will search the Apple Movie Store for movies with the keyword disaster; the one on the left will use my default browser (currently Safari); the one on the right will use Edge.
[continue reading…]



Simplify VPN connections via TunnelBlick

I use a VPN on our home router, which runs pfSense. When I'm on my laptop, I connect to the VPN for two reasons. The first is security when using unknown wifi connections. The second is for ease of access to my home Macs and network—when on the VPN, my laptop appears as part of the local network, so screen and file sharing are simple and 100% reliable.

To access the VPN, I use TunnelBlick, which runs as a menu bar application. Launch the app, activate its menu bar item, choose your VPN connection profile from the list, enter your password, and you're connected. But doing this several times a day gets annoying quite quickly. Thankfully, TunnelBlick includes AppleScript support.

Using that support and Keyboard Maestro, I wrote a few macros to simplify connecting to and disconnecting from our VPN, as well as changing the DNS address depending on whether I'm connected to the VPN or not.

Technically, the DNS address shouldn't have to be switched—I have the VPN and Tunnelblick configured to automatically switch on connect, but for whatever reason, it's just not happening. So I included DNS address switching in my macros.
[continue reading…]



Remove tracking data from copied URLs

A while back, my friend James and I were discussing the amount of tracking cruft in many URLs. In my case, I subscribe to a ton of email newsletters, and I noticed that those URLs are just laden with tracking information—and most go through a URL processor, so you don't really see those tracking details until you've clicked the link, at which point it's too late to avoid any tracking.

I wanted a way to clean up these URLs such that the least-possible tracking information was sent to a server—and in particular, to prevent any browser cookie creation. In addition, if I want to share a link with friends, I don't want to send them a crufty tracker-laden link—I wanted a nice clean shareable URL.

Note: I wrote all of this before I knew about Jeff Johnson's Link Unshortener, which does all of this (and more) in a "real" app. If you'd like the easy solution, Jeff's app is the way to go. Mine is definitely a do-it-yourself concoction that's not for the faint of heart.

tl;dr version: Install this macro group (v8.3) in Keyboard Maestro to remove tracking details from copied URLs in a set of defined apps.

Latest Update: Apr 11 2022 Fixed a bug related to custom domains, added aliexpress as a decrufting URL, and updated the in-app help boxes.

Going forward, all future updates to this macro will be found in this post on the Keyboard Maestro forums.

[continue reading…]



Archiving and version control for Keyboard Maestro

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.

[continue reading…]



Copy links in Chrome, Firefox, and Safari in one step

Something I do a lot is copy links—whether for articles here, or for pasting into Messages or Signal or Twitter, or for corresponding with Many Tricks' customers, I copy a lot of links.

Web browsers—at least the "big three" of Chrome, Firefox, and Safari—bury their copy link commands in a contextual menu. If I want to copy a link, it's a right-click and then either using the keyboard (press C then Return in Chrome and Safari) or mouse (Firefox) to select then activate the Copy Link command.

If you use Chrome or Firefox as your browser, you're in luck: You can install a simple extension in each that lets you copy a link by simply hovering over the link and pressing Commmand- or Control-C:

Now, about Safari. I couldn't find a Safari extension to handle this seemingly simple task, so I turned to Keyboard Maestro.

[continue reading…]



View charts for stocks in the mop Terminal app

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.

[continue reading…]



How to display the size of an app’s frontmost window

A user asked me a question about Moom

Say I’ve resized a window to the dimensions I want. Is there a way to figure out what these are so I can create a resize action in Moom?

Basically, the user wants to save a window size as a custom action, to make it easy to reapply that action to any window. (If it were just one window in one app, you could use Moom's Save Window Layout feature to save that layout for easy recall.)

There is a way to see this info in Moom, but it requires enabling our debug log and digging through a bunch of output. As an easier alternative, I was certain that AppleScript could do this; I fiddled a bit on my own, and did some web searching, which led me to this thorough post on StackExchange.

Using the very first bit of the first script there, I came up with this version:

Run the above, assuming Safari is running and has an open window, and you'll see this system notification:

Change Safari to whichever app you're interested in, re-run the script, and you'll have that app's window dimensions. This script is incredibly basic (no error checking, hardcoded app), but it works1If you see a message about ScriptEditor needing Accessibility access, open System Preferences > Security & Privacy > Privacy, click on Accessibility in the left panel, click the lock icon to unlock the panel, click the plus sign to add an app, and navigate to Script Editor in Applications > Utilities, then click Open..

Of course, me being me, I decided I'd spend a couple hours making it more useful, even though I probably won't use it all that often. So I modified it to work for whichever app is frontmost, and made it run from Keyboard Maestro. I then assigned it a gesture trigger with my mouse, so I can easily see any window's dimensions with a simple mouse movement.

[continue reading…]



How to copy non-visible formula results from Excel

I use Excel for a ton of stuff, both personal and work. As an example, on the work side I use an Excel workbook to track our apps' hidden prefs—which are set using a long ugly Terminal command1Something like this: defaults write com.manytricks.Moom "PMWindowFadingDuration" -float 0.

These hidden prefs can be used to invoke features we're testing, or to revert a behavior we've changed at some point, etc. For example, Moom has hidden prefs to use the full screen grid without clicking in the big box and to disable the fade in/out of the keyboard controller.

We don't publish all of these, as we're not necessarily ready for them to be put to use by everyone (otherwise, they'd be visible prefs). But there are cases when a user has a specific need for a setting, or when troubleshooting, that these hidden prefs can be very useful. As such, I often have to send someone a defaults write command.

Read on to see how I use Excel's formatting features—plus the ever-valuable Keyboard Maestro—to disguise some of this workbook's formula results, yet still easily copy them for sending to a user.

[continue reading…]