FLUTTER ECOSYSTEM

BurntToasters/Dacx

Player de música e vídeo desktop rápido para Windows, macOS e Linux. Feito com Flutter e libmpv; suporte a listas de reprodução, equalizador e ampla variedade de formatos.

Capa do projeto Dacx
Stars
1
Forks
1
Último push (UTC)
9 de set. de 2026
Status do projeto
Ativo
BurntToasters GitHub avatar
GITHUB User

BurntToasters ↗

I do internet things. Things on the internet is what i do

LinguagensDartJavaScriptC++SwiftShellCMakePowerShellPythonCRuby

Tópicos técnicos

Dependências usadas

Lista de dependências 29 itens

Categorias de apps

README original

Texto original em inglês. Visite o GitHub para a versão atual.

Expandir / recolher README

Dacx: Cross-Platform Music and Video Player

Fast, lightweight, open source desktop media player for Windows, macOS, and Linux.

Built with Flutter + media_kit (libmpv). Website: rosie.run/dacx

Latest Release Downloads Tests License: GPLv3

Dacx is a lightweight desktop music and video player focused on speed and low overhead — a modern libmpv-based alternative for local playback on Windows, macOS, and Linux, with playlists, a 10-band equalizer, media-session controls, and broad format support.

Dacx logo

Dacx desktop music and video player on macOS  

⬇️ Download Dacx

Need assistance? Check out the Installation Documentation!

https://github.com/user-attachments/assets/340d360e-79b1-4c70-bfab-d944085f75df Windows https://github.com/user-attachments/assets/42d7e887-4616-4e8c-b1d3-e44e01340f8c MacOS https://github.com/user-attachments/assets/e0cc4f33-4516-408b-9c5c-be71a3ac316b Linux
MSI: x64 DMG: Universal AppImage: x64
ZIP: Universal DEB: x64
RPM: x64
Flatpak: x64
TAR.GZ: x64

Platforms

  • Windows
  • macOS
  • Linux

Features

  • Audio + video playback for MP3, FLAC, WAV, OGG, AAC, Opus, MP4, MKV, AVI, WebM, and more (anything libmpv handles).
  • Playlist files (.m3u / .pls import + save queue as .m3u); HLS .m3u8 streams via mpv.
  • Playback speed control (transport chip + [ / ] / \ shortcuts).
  • External audio / subtitle track load from the more menu.
  • 10-band equalizer with presets.
  • Experimental Features (off by default): unfinished ideas such as Linux compositor blur. Multi-audio mix is implemented but withdrawn from the UI until linked libmpv has amix/aformat on every platform (docs/ideas/multi-audio-mix.md).
  • Optional seek thumbnails (Playback settings; uses extra memory).
  • Window transparency / background blur on Windows and macOS (Appearance settings). Linux compositor blur remains experimental.
  • Resume a file from its previous position when you reopen it; relaunch starts at the empty home screen.
  • Compact mode and always-on-top window.
  • System media-session integration: lock-screen / Now Playing / SMTC / MPRIS controls, artwork, rate, and scrubbing.
  • File associations + custom document icon on Windows, macOS, and Linux.
  • Built-in update checker: in-app self-update on Windows (MSI) and macOS (/Applications). On Linux, prefer the AppImage managed with AppManager for install + updates (no in-app Linux installer).
  • Notarized & signed DMG/ZIP for macOS. Official Windows MSIs are Authenticode-signed with Azure Artifact Signing (SmartScreen still may warn on first run). Linux packages carry GPG detached signatures. See SECURITY.md.

Support contract (v1 readiness)

  • UI language: English only (lib/l10n).
  • macOS: 15 (Sequoia) or newer.
  • CPU arch: Windows/Linux ship x64 only (arm64 not a priority).
  • Linux (recommended): AppImage + AppManager for desktop install and updates. AppImage / tar / Flatpak bundle libmpv. deb/rpm declare a distro libmpv dependency instead. Flatpak is GitHub-sideload only (not Flathub).
  • Experimental Features: Long-lived opt-in lane (off by default) for unfinished / in-progress ideas (Linux compositor blur, …). Multi-audio mix stays in code but is not user-facing. Features may graduate to stable settings (like Win/mac blur) or stay experimental indefinitely; not a blocker for 1.0.
  • Windows portable ZIP: No longer shipped; use the MSI.

Development

[!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 / repair FVM and Flutter (.fvmrc), then fetch packages and l10n
npm run setup:flutter

# 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 # Linux
Signing model

macOS releases are fully code-signed and notarized. Windows releases are fully code-signed using Azure Artifact Signing. Linux DEB/RPM/TAR.GZ artifacts are signed with a GPG detached signature (the project's release key). Ed25519 remains the primary self-update trust, and Authenticode signing provides OS-level trust verification (see SECURITY.md).

This means:

  • scripts/flutter-build-macos.js requires APPLE_TEAM_ID in .env. Self-update pins against the team id. Set DACX_BUILD_DEV_NO_TEAM_ID=1 to skip for local dev:
    DACX_BUILD_DEV_NO_TEAM_ID=1 npm run build:mac
    
  • scripts/flutter-build-windows.js signs official MSIs with Azure Artifact Signing when AZURE_CLIENT_ID, AZURE_TENANT_ID, AZURE_CLIENT_SECRET, AZURE_ARTIFACT_SIGNING_ENDPOINT, AZURE_ARTIFACT_SIGNING_ACCOUNT, AZURE_ARTIFACT_SIGNING_PROFILE, and AZURE_ARTIFACT_SIGNING_PUBLISHER are set. The publisher string is baked in as --dart-define=DACX_WINDOWS_SIGNER_PUBLISHER=.... Set SKIP_WIN_CODESIGN=1 for local unsigned builds. The Windows build also ships dacx-update-helper.exe next to dacx.exe for post-exit MSI install.
  • scripts/flutter-build-linux is not affected by either.
macOS support

The macOS build targets macOS 15 (Sequoia) or newer. Older macOS versions are not supported.

License

GPLv3