Skip to content

Repository files navigation

dao

中文

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)

Features

  • 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).

Install

  1. Download dao-0.1.0.dmg from Releases.
  2. Open the DMG and drag dao to Applications.
  3. First launch: right-click → Open if Gatekeeper blocks an unsigned build.
  4. Complete onboarding permissions when prompted.

Current release builds are not Developer ID signed / notarized. macOS may warn on open.

Build from source

brew install xcodegen cmake swiftlint
xcodegen generate
xcodebuild -project dao.xcodeproj -scheme dao -configuration Debug \
  -destination 'platform=macOS' build

Tests:

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.dmg

Full signed / notarized pipeline (fill credentials in build.sh first):

./build.sh 0.1.0

Architecture (short)

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.

Requirements

  • macOS 14.0+
  • Xcode (to build), optional: XcodeGen, cmake, SwiftLint
  • Runtime: system may prompt for Automation if AppleScript media fallback is used

Third-party

Bundled / linked under their own licenses (MIT unless noted):

License

MIT. Vendor and SPM dependencies keep their own terms.

Links

About

Native macOS Dynamic Island: media controls, file shelf, system monitors

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages