Native macOS Dynamic Island for the menu bar notch: media controls, a file shelf, and system monitors in a floating capsule.
macOS 14+ · v0.1.0 · no Dock icon (menu bar accessory)
- Media — Now playing (artwork, title, artist, seekable progress), play / pause / next / previous, volume. Follows the system now-playing session (last active source). MediaRemote bridge with AppleScript fallback (Apple Music, Spotify, and more).
- File shelf — Drop files, text, or links onto the island; preview (Quick Look), drag out, or share via AirDrop.
- System — CPU, memory, and disk usage with live bars.
- Settings — Launch at login, Chinese / English UI, default player, quit.
- Non-notch displays — Optional virtual notch / minimal capsule.
Quit from the power icon inside the island settings drawer (no Dock / menu bar icon).
- Download
dao-0.1.0.dmgfrom Releases. - Open the DMG and drag dao to Applications.
- First launch: right-click → Open if Gatekeeper blocks an unsigned build.
- Complete onboarding permissions when prompted.
Current release builds are not Developer ID signed / notarized. macOS may warn on open.
brew install xcodegen cmake swiftlint
xcodegen generate
xcodebuild -project dao.xcodeproj -scheme dao -configuration Debug \
-destination 'platform=macOS' buildTests:
xcodebuild test -project dao.xcodeproj -scheme dao -destination 'platform=macOS'Unsigned local DMG (no Developer ID):
# after a Release build of dao.app
STAGE=$(mktemp -d)
cp -R path/to/dao.app "$STAGE/"
ln -s /Applications "$STAGE/Applications"
hdiutil create -volname dao -srcfolder "$STAGE" -ov -format UDZO dao-0.1.0.dmgFull signed / notarized pipeline (fill credentials in build.sh first):
./build.sh 0.1.0| Path | Role |
|---|---|
dao/App/ |
Entry, AppDelegate, AppCoordinator |
dao/Managers/ |
Media, shelf, monitors |
dao/Views/ |
Notch panel, drawers, settings, onboarding |
dao/Config/AppConfig |
Geometry and timing constants |
Vendor/mediaremote-adapter |
MediaRemote bridge (BSD-3) |
project.yml |
XcodeGen source of truth |
Window stays fixed at expanded size (400×166); collapse/expand is a visual mask (NotchShape), not an NSWindow resize.
- macOS 14.0+
- Xcode (to build), optional: XcodeGen, cmake, SwiftLint
- Runtime: system may prompt for Automation if AppleScript media fallback is used
Bundled / linked under their own licenses (MIT unless noted):
- Defaults, LaunchAtLogin
- Lottie, Sparkle
- mediaremote-adapter — BSD-3-Clause
MIT. Vendor and SPM dependencies keep their own terms.