The Missing Eject Button for Photographers, Videographers, Content Creators, and More
Easy Eject for Content Creators
Eject and Clean CFexpress and SD Camera and Emulator Cards
Easy Eject is a lightweight native macOS utility that fixes the CFexpress ejection bug. It automatically separates your camera media from your permanent hard drives, allowing you to safely unmount your cards with one click or a global keyboard shortcut. It also scrubs hidden macOS files like .DS_Store that can display on other OSes like Android and Windows.

The Easy Eject and Cleaning Solution for CFexpress, SD Cards, Camera Media, and Android Emulators
Key Features
- Smart Sorting: Automatically separates CFexpress, XQD, and SD cards from your permanent external hard drives by checking for common camera folders like DCIM. Also scans for common emulation folders like ROMs and BIOS and classifies them as an emulation card for cleaning.
- Smart Grouping: Many cameras label all cards as “untitled.” This app will display if you are ejecting a CFexpress or SD card if both are connected simultaneously.
- One-Click Bulk Eject: Safely unmount all connected camera and emulation media simultaneously without accidentally disconnecting your working RAIDs or SSDs.
- Global Keyboard Shortcut: Press ⌃⌥⌘ + [Your Key] to instantly eject all camera cards, including CFexpress, from anywhere—Lightroom, Capture One, or Premiere Pro, without ejecting permanent SSD drives.
- Notification: The number of camera and emulation cards detected is shown in the menu bar. A quick notification dialog pops up about cards ejected and cleaned.
- Metadata Scrubber: Automatically wipes hidden macOS junk files (
.DS_Store,._AppleDouble) that clutter Android retro-consoles and Windows PCs. - Hardware Safety: Prevents CFexpress cards from overheating by making it easy to unmount them when not in use and warns you before ejecting non-camera drives.
- Zero Bloat: A native Swift background agent with a tiny memory footprint (less than 45MB). No ads, no cost, no tracking.
The Backstory: Why I Built This
Easy Eject was born out of a daily workflow headache. When I upgraded to the Sony A7RV, I made the jump to CFexpress cards, only to discover that Lightroom could no longer automatically eject them after importing. If you lazily leave the cards plugged in after importing, like I used to, CFexpress cards get incredibly hot because macOS accesses them like a permanent SSD. Furthermore, pulling them without ejecting risks corrupting your high-speed media. Moreover, I commonly insert both SD and CFexpress cards into my Mac, and they are both labeled “untitled,” so I never know which one I’m ejecting.
This isn’t just for photographers. Whether you are batch-importing raw photos or offloading 8K video into DaVinci Resolve, macOS views these cards as permanent drives. You may be getting tired of opening Finder just to safely remove them. After searching for a simple menu bar tool and finding nothing, I decided to build my own.
By the way, I LOVE this app because I created it perfectly for my needs. I can quickly hold down a few shortcut keys and eject all my camera cards, including CFexpress cards, instantly.
If you love this app too, please consider buying me a cup of coffee. I have to pay $99/year to Apple to notarize the app so it can be installed. The app is completely ad-free, and your support encourages me to keep pushing updates and solving user issues.
The Problem: The CFexpress “Identity Crisis”
If you shoot on standard SD cards, apps like Lightroom are great at auto-ejecting. But with CFexpress, those features suddenly fail.
The technical reality: Under the hood, a CFexpress card is literally a PCIe/NVMe solid-state drive. Because of this high-speed architecture, macOS and Windows report its hardware profile as a standard external hard drive. This is why standard “removable” flags fail and why your photo and video editing apps don’t recognize them as camera media.
The Solution: Smart Folder Detection
Instead of relying on flawed hardware flags, Easy Eject uses a “Smart Sorting” heuristic. It “peeks” at the file structure of your drives for brand-specific root folders. It uses these to separate the cards for easy cleaning and ejection. The app instantly recognizes cards formatted by:
- Canon (
CANONMSC) - Nikon (
NIKON) - Fujifilm (
FUJI) - GoPro (
GOPRO) - Sony & Panasonic Pro Video (
SONY,BPAV,XDROOT,PRIVATE,M4ROOT) - Standard DCIM (Digital Camera Images)
- Emulation Cards (ROMs, BIOS)
If it sees these folders, it automatically groups the drive under a dedicated “Camera Cards” or “Emulation Cards” section in your menu bar, cleanly separated from your permanent RAID arrays and backup drives.
Clean Hidden Mac Files (.DS_Store & ._ AppleDouble) Automatically for Android and Windows Drives
Have you ever loaded ROMs onto an SD card for an Android emulator console (like a Retroid or Anbernic), only to find the menu cluttered with hundreds of phantom files starting with ._*? Or plugged a drive into a Windows PC and found useless .DS_Store files in every folder?
The Problem: macOS silently litters every drive with invisible metadata. While these files are hidden on Mac, they are incredibly annoying on other systems:
- Android/Retro Consoles: Emulators mistake
._files for actual games, leading to a broken, double-entry library. - Windows PCs: Shows unsightly
.DS_Storefiles that clutter your view.
Easy Eject’s Metadata Scrubber automates the cleanup. When you select Clean & Eject, the app instantly wipes:
._*AppleDouble Files: The #1 cause of ghost games on retro consoles..DS_Store: Custom Mac folder settings that clutter Windows.__MACOSXfolders: Created when extracting zip files on a Mac.- .apdisk — Apple disk identification files
Out of safety, it skips deleting macOS system directories (.Spotlight-V100, .Trashes, .fseventsd) to avoid filesystem issues. I could add this feature if someone needs it.
Why Isn’t This App on the Mac App Store?
To publish an app on the Mac App Store, Apple strictly requires developers to enable the App Sandbox. The Sandbox is a security feature that traps an app in a restricted environment, preventing it from looking at or touching your external drives without a mandatory macOS pop-up asking for permission every single time you plug a card in.
If Easy Eject were sandboxed, it would completely lose its ability to automatically detect DCIM folders in the background or seamlessly scrub hidden .DS_Store junk files.
It is still 100% safe: the app is formally notarized by Apple. This means Apple’s servers perform an automated malware scan and cryptographically sign the app with a seal of approval, ensuring you get a flawless, warning-free installation.
Setup & Permissions Guide
1. How to Enable Full-Disk Access (For “Clean & Eject”)
To provide these professional features, macOS requires two specific permissions.
Since the app needs to delete hidden system-level files (like .DS_Store), you must give it permission to see the file system.
- Open System Settings > Privacy & Security > Full Disk Access.
- Find Easy Eject in the list and toggle it ON.
- If it’s not there: Click the [+] button, navigate to your Applications folder, and add it.
- Select Quit & Reopen when prompted.
2. How to Enable Accessibility (For Global Shortcuts)
To allow the keyboard shortcut (⌃⌥⌘ + Key) to work while you are inside other apps like Photoshop or DaVinci Resolve, Easy Eject requires accessibility access.
- Open System Settings > Privacy & Security > Accessibility.
- Find Easy Eject and toggle it ON.
- If the app isn’t in the list, click the [+] button and add it from your Applications folder.
- Once enabled, the shortcut will begin working immediately—no restart required!
Download & Support
License: Easy Eject is released as freeware. Use at your own risk. The developer is not responsible for any data loss. Always maintain backups of your important photo and video files. I tried to make this app very safe, but I can’t plan for everything.
If you run into any issues with a drive not appearing, enable “Debug Logging” in the app menu to see exactly how your Mac is identifying your hardware, and feel free to reach out via my contact page!
