Fast, lightweight, open source media player for Windows, macOS, and Linux.
Built with Flutter + media_kit (libmpv).
Dacx is a desktop music and video player focused on speed and low overhead, with modern playback controls, media session integration, and broad format support.
- Windows
- macOS
- Linux
- Audio + video playback for MP3, FLAC, WAV, OGG, AAC, Opus, MP4, MKV, AVI, WebM, and more (anything libmpv handles).
- 10-band equalizer with presets.
- Multi-audio-track mixing via
lavfi-complex(experimental and currently unstable). - Resume playback from where you left off.
- Compact mode and always-on-top window.
- System media-session integration: lock-screen / Now Playing / SMTC controls, artwork, and scrubbing.
- File associations + custom document icon on Windows and Linux.
- Built-in update checker against GitHub releases.
- Notarized & Signed DMG and ZIP for macOS; signed installers via GPG for Windows and Linux.
Note
This project uses Flutter/Dart but also NodeJS. Its a little bit messy and not the best of practices I know, im just the most familiar and confident with js scripting and node so thats how the project is controlled. Sorry :P
# Install Node.js dependencies (build scripts)
npm install
# Install Flutter dependencies
flutter pub get
# Run in development mode
npm run dev
# Run tests
npm run test:all
# Build for current platform
npm run build:win # Windows
npm run build:mac # macOS
npm run build:linux # LinuxOnly the macOS build is code-signed end-to-end (Apple Developer ID + notarization). Windows MSIs and Linux DEB/RPM/TAR.GZ artifacts are signed with a GPG detached signature (the project's release key) — there is no Authenticode certificate for Windows.
This means:
scripts/flutter-build-macos.jsrequiresAPPLE_TEAM_IDin.env. Self-update pins against the team id. SetDACX_BUILD_DEV_NO_TEAM_ID=1to skip for local dev:DACX_BUILD_DEV_NO_TEAM_ID=1 npm run build:mac
scripts/flutter-build-windows.jsacceptsWINDOWS_SIGNING_CERT_THUMBPRINT(orDACX_WINDOWS_SIGNER_THUMBPRINT) optionally for local dev. If unset, the MSI is unsigned at the OS level and self-update relies on the Ed25519-signed update manifest. On release VMs, set the thumbprint in.envand addDACX_REQUIRE_WINDOWS_SIGNER=1sonpm run build:winfails when the thumbprint is missing (seeSECURITY.md).scripts/flutter-build-linuxis not affected by either.
The macOS build targets macOS 15 (Sequoia) or newer. Older macOS versions are not supported.
