By Joe Rosensteel
May 6, 2022 2:44 PM PT
How short can a Shortcut be if a Shortcut is cut short?
Every so often, I get the smart idea that I should smooth over an everyday problem I have with the power of computers. I know some Python. I work in Nuke, which is a big pile of procedural code blobs that operate on inputs. And I’m capable of using Stack Overflow. I also have plenty of repetitive problems — or more accurately, annoyances — that would be easily fixed with silicon and electricity.
However, other than a handful of little snippety bits and bobs, my life is remarkably manual. Everyone else seems to be living longer, healthier, happier lives with Apple’s Shortcuts — Jason Snell has done some really impressive stuff that goes far beyond mending the ordinary paper-cuts of life. Let me explain my issues (in regards to automation, at least) and perhaps someone out there will have some wild idea for one of them.
I love Nodes
A common smear lobbed by Real Programmers against Shortcuts (and Workflow and Automator before it) is that it’s just a toy to make tools of colorful blocks, rather than the more alpha-masculine energy of monospaced characters with spaces, or tabs, or semicolons.
This is not a problem at all for me, because I love flow charts populated with colorful blocks (or Nodes, as Nuke calls them). I use them all the time, every day. They’re a great way to do procedural work where data needs to be routed, and the format makes it easy to debug because you can “walk up the tree” to see just where an unexpected result is coming from.
Shortcuts has some of that functionality, but not all. It doesn’t branch into a tree, but is very vertical1. There’s a little gray line that connects actions in Shortcuts, except when it doesn’t, and many connections are invisible because they rely on variables. In Nuke, connections between nodes get a little green line that denotes a connection between parameters. You can also change your perspective on the tree, letting you evaluate from where you’re viewing it. That’s great for debugging, and I wish there was a way for me to do something similar in Shortcuts without having to edit my Shortcut to produce diagnostic stuff.
More bothersome is Shortcuts’ lack of detail on what actions are capable of doing. I was looking into the options for the Focus Mode action and I can set it to a time, but not a duration, or until an event ends. Well, what’s an event? “Event – The event after which to turn off the Focus.” That cleared it up!
These aren’t big deals. Anyone can get around those minor annoyances, and I do—but I’d love it if I didn’t feel so vertically constrained.
The real place where Shortcuts falls down for me is a lack of triggers and actions that apply to my needs. I want my automations to leap into action when certain events occur—and that’s frustratingly difficult, if not impossible. This is largely the fault of app developers not providing any useful Shortcuts functionality, but even when I find workarounds for that, I still run into issues with triggers.
Example 1: On the day a new episode of a TV show was available, people would tweet about the TV show, and if I didn’t have the chance to watch the show yet, then I would see stuff from the show. Some people would tweet the show name, or a hashtag, which could be easily filtered, with the assumption being people set up and remove filters on a weekly basis timed perfectly to coincide with when they watched the media and expiring when the have finished watching the media.
That’s not a good assumption that those people were making, of course, but it is the kind of thing that could be automated. However, the official Twitter app doesn’t expose any actions for setting or deleting mutes. Neither do Twitterrific or Tweetbot. It can be done with the Twitter web client if you do automated web page navigation hacks and use something like Keyboard Maestro, but that would be ridiculous. That’s not Apple’s fault at all, but it does show the dearth of useful actions.
Example 2: I want to set the Focus Mode on my Mac and iPhone to Do Not Disturb when I received a call on Microsoft Teams on my Mac. That’s not possible at all! The iOS version of Teams exposes four Shortcuts actions for Teams:
- Open Cortana in Teams
- Join my meeting
There’s no way to trigger an automation based on receiving a call, and no way to incorporate automating answering a call other than joining a meeting (which is not, strictly speaking, the same thing as a call). Why Cortana is there at all is a complete mystery.
Even those few actions aren’t available on the Mac version of Microsoft Teams. Nothing for AppleScript either. So no way to automate or trigger anything at all, right? Well… There’s the orange dot. You see, macOS knows my microphone is active and audio is being used, because that’s how it can show me that orange dot in the corner. Apple hasn’t exposed any automation triggers for that, though, so I can’t change Focus when the microphone is in use.
I can do things like make a menu option that turns on Do Not Disturb — but that’s already in Control Center, so why make a Shortcut for that? Why make a keybinding for it? Why can’t I hook into something and use that to drive something else?
Example 3: I want to unmount my Time Machine volume during the day. I don’t need to hear it churning away cleaning up files while I’m working over a remote desktop connection to my office. It’s not doing anything, but also doing everything.
There is a Disk Utility action to unmount the drive. There’s no Disk Utility action to remount the drive. Why? But I can do it on the command line with
diskutil. Great. I’ll just add it to a personal automation in Shortcuts… except that the macOS version of Shortcuts doesn’t offer personal automations. Why can’t any of that be consistent? It’s just mounting and unmounting a Time Machine volume at certain times.
Maybe after WWDC?
It’s early days for Shortcuts on the Mac. But those early days are painful. I’m finding it hard to discover situations where I can use Shortcuts to solve all those little issues in my life. I hope that this year’s WWDC announcements offer continued forward momentum for Shortcuts on the Mac.
That includes more ways to fire off triggers based on the state of the system. And more outreach to small indie devs like Twitter and Microsoft to get them to support Shortcuts properly.
Because there’s nothing worse than knowing you have this annoying little thing that could be automated away, that should be automated away… and finding out that it just can’t be.
- You can build subroutines into separate shortcuts, and execute them from the main shortcut, but this can get messy in a hurry—and they’re completely separate visually. ↩