EjectBar

Since getting the new MacBook Pro in 2016, I have used it with an OWC Thunderbolt Dock. This dock is highly convenient and delivers on the potential of the laptop’s Thunderbolt 3 ports; I plug in one cable for power, network access, and accessories.

For several years, I relied on a Synology for my Time Machine backups. In the latter half of last year, though, this workflow started exhibiting problems. On a daily basis, I would get errors from Time Machine that my backup was inconsistent and it needed to start over. I was used to getting that error about once a month, but it triggering every day was untenable. It meant every morning, my machine would spend five hours copying the entire contents of its SSD to the network storage.

After several rounds of troubleshooting, I gave up on Synology for Time Machine and plugged in a local hard drive to the OWC dock instead. I have found this much more reliable. In fact, since switching over, I am yet to see a Time Machine verification failure.

However, this set up came with its own annoyances. Namely, every evening when it came time to unplug the laptop, I would have to remember to eject and unmount the locally-connected drive. The highly convenient one-port lifestyle was now mired by another mandatory step. This wasn’t a problem with the always-on networked Synology, but the local drive is bus-powered and macOS will complain that the disk was “Not Ejected Properly” if you don’t go through the ceremony to eject it first.

I messed around with some Mac automation — bash and cron — but the result was unsatisfactory. At the start of 2020, my colleague Zac Hall also switched from an iMac to a laptop-and-dock solution, and started being annoyed by similar disk ejection requirements.

This was the ultimate motivation to package up my shell scripts into a finished app. EjectBar is the result. EjectBar is available in the Mac App Store. It’s a menu bar app that you can click on to show your connected drives and eject them one-by-one, or you can right click on the icon and it ejects all of them immediately. You can also set a schedule for EjectBar to eject drives automatically at a specific time of day. I set mine for 6 PM, which means I never have to remember to do anything when I’m packing up my desk at nighttime.

It’s designed to be aesthetically discreet; a simple monochrome menu bar icon that even dims when no drives are connected. And it’s available in the Mac App Store, so you don’t have to mess around with installers or hacky permissions.