Prevent Automatic Downloads in macOS

Quoting Apple’s own support document: Prevent your Mac from downloading updates in the background

You can set your App Store preferences to “Download newly available updates in the background”. If you’re using OS X El Capitan v10.11.5 or later, these updates include major new macOS versions, like macOS Sierra. Your Mac then notifies you when the updates are ready to install.

This is a not-good decision, Apple.

There is a difference between these two things:

  1. I want to automatically download updates to my computer.

  2. I want to automatically download a 5+ GB new version of the operating system.

And that difference is obvious to just about everyone.

There ought to be a separate option for the latter choice.

Shortcut: Open in Browser

It seemed simple enough, at first.

I was looking at something on Amazon via the Amazon app, and I wanted to view it in Safari, instead of the app.

Seems simple to you, too, right?

Well, it wasn’t. First off, there was no Share item for “Open in Safari” which seemed odd. There was one for iCab but not Safari.

“Ok,” I thought, “I’ll just make a quick shortcut that will take the URL from the Amazon app and open in Safari.”

That’s when things got weird.

Where would you like to go? Where would you like to go?

I figured if I was going to make a shortcut to open the URL in Safari, I might as well make it offer to open in iCab and Chrome, too.

The first thing that I noticed was that the page opened twice in Safari.

It didn’t open at all in iCab.

It didn’t open at all in Chrome.

I added an “Alert” to show me exactly what was being sent to the browsers, and it was the URL from Amazon… twice.

Why twice? I have no idea. If I used the Share link in the Amazon app to send to Drafts, I only got the URL once. But the shortcut was getting it twice.

“Fine,” I thought, “I’ll just delete the second URL from the input.”

Except I couldn’t figure out how to do that. So instead I settled on running a loop (“Repeat with Each” in Shortcuts), and putting an “Exit Shortcut” at the bottom of the block, so it will only process the URL once.

“Genius!” I thought. For about 12 seconds.

After I managed to get the URL to only be sent once… it still didn’t work. I was sending the URL to iCab via x-callback-url, but it was launching, but the URL wasn’t opened (I’m completely willing to admit that might have been my fault for something I was doing wrong, but it seemed to work sometimes, and then stopped).

Safari no longer opened the URL twice… but instead it immediately redirected me back to the Amazon app.

Chrome worked fine.


I searched around for a way to stop Safari from doing that, but the only suggestion was to uninstall the Amazon app.

Not helpful.

Finally, I decided to implement a decidedly-stupid workaround which works: I created a small PHP page which will accept a URL as a query string, and then redirect the browser to that URL. If I send that to Safari, it will open the page as expected.

iCab and 1Password

Something made me remember that I used to be able to send links from Safari to iCab by using a bookmarklet which changed “http:“ to “web:“ and “https:“ to “webs:“. I changed my shortcut (using “Replace Text”) to change those protocols before opening the URLs, and suddenly I could open the page in iCab too.

That made me remember that 1Password also had a way to open URLs in its built-in browser., but I couldn’t remember what it was, and “onepassword:” didn’t seem to work. However, a little Googling led me to a MacStories post from 5½ years ago which reminded me that the protocols I needed were “ophttp:” and “ophttps”. I had a vague memory that 1Password had deprecated support for opening URLs this way, but it still works.

The End Result

Finally, I have a shortcut that can take a URL (from Amazon’s app or anywhere else) and offers to open it in Safari, iCab, Chrome, or 1Password.

You’re welcome to use it too, if you like. You can find it here: Open In Browser (v.1.0).

If I make changes/improvements to it, I’ll post those here and update the link.

Shortcut: Due Schedule Call

I often want to set a reminder to call someone at a specific time.

In the past, what I have done is gone to Due and added a note which would say something like “Call AppleCare” and then set the time/date when I want to be reminded.

(If you haven’t used Due, one of the things everyone loves about it is that it will keep reminding you to do something until you actually do it. You can have the reminders repeat every minute, every 5, 15, 30, etc. It’s the most-reliable way to get yourself to do something at a specific time or close to it.)

The problem with my method has always been that the reminder would do off, and then I’d have to do to the phone app, look up the person I wanted to call, and then select the phone number.

It’s that little bit of friction that doesn’t seem like much, but can make you resistant to actually doing the thing you need to do when the reminder goes off. Also, it’s easy (at least for me) to get distracted after I’ve dismissed the reminder from Due but before I actually make the call.

TIL: Due has a feature to make this easier.

I’m sure this is mentioned in the documentation somewhere, but I stumbled across it by accident.

I set a reminder in Due, but this time I added the phone number of the person I needed to call in the reminder in Due. When I dismissed the reminder in Due, it automatically prompted me to call the number.

Obviously, that’s much better.

Having the number right there means no searching for it, I can just do it. The friction has been removed.

The only problem is that in order to do that, I needed to copy the phone number from my into Due.

Which means that I won’t actually put the phone number into Due very often, even though I know it would make things easier for me later on.

Complication #2: Google Voice

(Note: Even if you don’t use Google Voice, there is an option of this shortcut for you. Keep reading!)

Adding to my resistance is the fact that many of the calls that I make are actually not made with via the iOS

I use Google Voice for all of my calls related to my day-job, and I need/want to use Google Voice for those calls because then the caller-ID will show the phone number that work-related people have for me, instead of my actual iPhone number.

So there’s another piece of friction.

If only there was some way to make this easier…

Cue “Shortcuts”

As most of the people who are reading this probably know, Apple just introduced an app called “Shortcuts” which is basically version 2 of an app which was previously not-by-Apple. Version 1 of the app was called “Workflow”.

I never really used Workflow much. Although Apple had approved it and let it into the App Store, I was certain that Apple would eventually kick it out of the App Store, and then I would be sad if I had built a bunch of things with it.

Well, as it turns out, not only was I wrong, but I was wrong in about as big of a way as possible. Instead of kicking Workflow out of the App Store, Apple bought Workflow, and renamed it “Shortcuts” which is now available for iOS 12.

Now that it is an official Apple app, I decided to start using it. But this was the first time that I had a problem that I really wanted to solve with automation on the iPhone:

“How can I make it easier to schedule calls on my iPhone?”

I was poking around in Shortcuts when I realized that I could send the name and phone number of a contact to Due fairly easily.

All I had to do was choose the person from my, and the shortcut could automatically copy the name and phone number, and sent both pieces of information to Due. Then all I had to do was pick a date/time for the reminder.

But what about Google Voice? Unfortunately the official Google Voice app doesn’t support Shortcuts (yet?), but there is another iPhone app for Google Voice called GV Connect which has an URL scheme, meaning that we can use it with Shortcuts.

“Due Schedule Call”

Putting all of this together, I made my first real Shortcut, which has 3 (or possibly 4) steps.

  1. Select a contact from my contacts list
  2. If the contact has more than one phone number, it will prompt you to choose which one to use.
  3. Next it will ask if you want to use Google Voice or the regular Phone app
  4. Finally it will send that information to Due, so you can set a time/date for the reminder.

Step #2 was the last piece that I figured out. If I didn’t have some way to have the user choose a phone number, I was either left with the option of sending all of the phone numbers to Due (which was a terrible idea) or just automatically picking the first one (which wasn’t a great idea, although better than the previous alternative).

After that, the real magic happens between steps 3 and 4, and it happens completely in the background.

If I choose the, the shortcut just sends the name and number to Due. But, if I choose Google Voice, the shortcut reformats the phone number into the proper syntax for GV Connect, and includes that in the reminder text that is sent to Due.

By front-loading all of the decisions into the first part of the process (making the reminder), I have made it easier for Future-Me to actually make the phone call. It’s easier than it has ever been.

When I “check off” the reminder, Due will let me trigger the call with almost zero effort.

For the first time ever it is just as easy for me to use Google Voice as it is to use the built-in Phone app!1

See For Yourself

I made a short (about 1 minute) screencast of this shortcut in action.

In it, I setup 2 reminders:

  1. I selected a contact named “Apple” (which has multiple phone numbers) and scheduled a call to be made with the Phone app.

  2. I selected a contact named “AppleCare” (which only has 1 phone number) and scheduled a call to be made via GV Connect.

You can see it here:

(Be sure to make it full-screen so you can see things more easily.)

You can get the shortcut here.


Thanks to Andreas Amann, GV Connect’s developer, who helped improve this shortcut.

Thanks also to Raymond Velasquez who helped me solve another part of the puzzle via a post on <>, which is a great place to get automation help for iOS or Mac.

As a final side note: if you aren’t listening to Automators with Rose Orchard and David Sparks, you really should be.

Update 2018-10-13

It occurs to me that this shortcut might be useful to more people if I offered a variant without the Google Voice portion. After all, if you don’t use Google Voice, there’s no sense in having to choose the phone app each time this shortcut runs.

So I made a version without Google Voice. You can find it here:

Due Schedule Call (without Google Voice)

  1. In fact, it’s actually one less tap to use Google Voice rather than the regular phone app, because when you use the Phone app, Due offers to let you call or message the phone number, whereas with GV Connect I can specify that I want to make a call, not send an SMS. 

He really needs to learn to relax. #shasta

Hello ( World!

If you are looking for older posts, they may be available at <>.

I got fed up with Tumblr’s “quirks” and decided to try something new.

Copyright 2018 Timothy J. Luoma