Add an Eject All External HDs Button in macOS

Saturday, July 3, 2021 @ 5:49 PM

Last edited: Wednesday, November 8, 2023 @ 4:54 AM


The Joy and Pain of a Docking Station

I love having a docking station to connect my power, second monitor, audio interface, HD camera, external hard drives, etc. all through one port to my MacBook Pro. It's super convenient and makes switching from "full-on workstation" to "lounging around the house" mode fast and (nearly) painless.

However, one big pain in the butt that used to plague me was that if I didn't eject the external hard drives before pulling the cable, I'd get a bunch of notifications telling me that I hadn't ejected those. I only have two physical external hard drives, but they're partitioned into multiple drives each so those notifications pile up pretty quick.

That pain is a thing of the past with this nifty little Touch Bar button that I built using Automator. Hopefully this "Eject All External HDs" button can help you out if you're in a similar place. Here's how to add it to your MacBook.

Create the Automator Quick Action

First, open the Automator app and select the Quick Action document type.

Selecting Quick Action in Automator

Set the Workflow receives option to no input and select an Image that you like.

Workflow receives with no input and image selected

Use the search bar to look for the Run Shell Script action, and add it to your Quick Action.

Run Shell Script
action

Add the following line as the script to run (thanks for the script go to the author of this StackOverflow answer):

osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'

Script with content added

You could leave it at this, but then when you run the task you'd have to open Finder or Disk Utility to see when all the disks have been ejected. Let's fix that by adding a second action. Select the Display Notification action, and add it to your Quick Action.

Display notification action option

Set a title/subtitle/message that works for you. I have mine configured like this:

Display notification action with message

Save the Quick Action with a title that makes sense to you, I call mine Eject External Disks.

Make the Quick Action a Touch Bar Button

The most convenient way for me to fire off this task is using the Touch Bar, but you can also access it from the Services Menu if you like, or if your MacBook doesn't have a Touch Bar.

To add it to the Touch Bar, go to System Preferences -> Extensions -> Touch Bar and ensure it's selected.

Touch Bar with new Quick Action selected

Next, click Customize Control Strip... and drag the Quick Actions button down onto your Touch Bar.

Customizing the control strip

Enjoy the Lack of Pain When Pulling Away from Your Docking Station

Now, the next time you need to eject all the external hard drives from your MacBook before disconnecting your docking station, just tap the Quick Actions icon in your Touch Bar and hit the Eject External Disks button, then wait for the Automator notification to pop up.

Successful notification for eject all

2025 All rights reserved.
Privacy policy