Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 14 additions & 7 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,24 +6,31 @@

| <img height="20" src="https://github.com/user-attachments/assets/340d360e-79b1-4c70-bfab-d944085f75df" /> Windows | <img height="20" src="https://github.com/user-attachments/assets/42d7e887-4616-4e8c-b1d3-e44e01340f8c" /> MacOS | <img height="20" src="https://github.com/user-attachments/assets/e0cc4f33-4516-408b-9c5c-be71a3ac316b" /> Linux |
| :--- | :--- | :--- |
| **MSI (Recommended): [x64](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.3/Dacx-Windows-x64.msi)**<!-- / [arm64](https://github.com/BurntToasters/S3-Sidekick/releases/download/v0.9.1/S3-Sidekick-Windows-arm64.msi)** -->| **[Universal DMG](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.3/Dacx-macOS.dmg)** | **AppImage:** [x64](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.3/Dacx-Linux-x86_64.AppImage) |
| <!-- <div align="center"><a href="https://apps.microsoft.com/detail/9pkgd6lkcl5j?referrer=appbadge&mode=full"><img src="https://get.microsoft.com/images/en-us%20light.svg" width="150"/></a></div>--> | **[Universal ZIP](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.3/Dacx-macOS.zip)** | **DEB:** [x64](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.3/Dacx-Linux-amd64.deb) <!--/ [arm64](https://github.com/BurntToasters/IYERIS/releases/download/v1.0.4/IYERIS-Linux-arm64.deb)--> |
| <!--*See MSI note below*--> | | **RPM:** [x64](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.3/Dacx-Linux-x86_64.rpm) <!--/ [arm64](https://github.com/BurntToasters/IYERIS/releases/download/v1.0.4/IYERIS-Linux-aarch64.rpm)--> |
| | | **Flatpak:** [x64](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.3/Dacx-Linux-x86_64.flatpak) |
| | | **TAR (Generic Linux):** [x64](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.3/Dacx-Linux-x86_64.tar.gz) <!--/ [arm64](https://github.com/BurntToasters/IYERIS/releases/download/v1.0.4/IYERIS-Linux-aarch64.flatpak)--> |
| **MSI: [x64](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.4/Dacx-Windows-x64.msi)**<!-- / [arm64](https://github.com/BurntToasters/S3-Sidekick/releases/download/v0.9.1/S3-Sidekick-Windows-arm64.msi)** -->| **[Universal DMG](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.4/Dacx-macOS.dmg)** | **AppImage:** [x64](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.4/Dacx-Linux-x86_64.AppImage) |
| <!-- <div align="center"><a href="https://apps.microsoft.com/detail/9pkgd6lkcl5j?referrer=appbadge&mode=full"><img src="https://get.microsoft.com/images/en-us%20light.svg" width="150"/></a></div>--> | **[Universal ZIP](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.4/Dacx-macOS.zip)** | **DEB:** [x64](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.4/Dacx-Linux-amd64.deb) <!--/ [arm64](https://github.com/BurntToasters/IYERIS/releases/download/v1.0.4/IYERIS-Linux-arm64.deb)--> |
| <!--*See MSI note below*--> | | **RPM:** [x64](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.4/Dacx-Linux-x86_64.rpm) <!--/ [arm64](https://github.com/BurntToasters/IYERIS/releases/download/v1.0.4/IYERIS-Linux-aarch64.rpm)--> |
| | | **Flatpak:** [x64](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.4/Dacx-Linux-x86_64.flatpak) |
| | | **TAR (Generic Linux):** [x64](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.4/Dacx-Linux-x86_64.tar.gz) <!--/ [arm64](https://github.com/BurntToasters/IYERIS/releases/download/v1.0.4/IYERIS-Linux-aarch64.flatpak)--> |

> [!IMPORTANT]
The `.asc` files are my normal GPG signatures which you can verify using my GPG Public Key: https://tuxedo.rosie.run/GPG/BurntToasters_0xF2FBC20F_public.asc.
⚠️ Arm64 Linux and Windows Binaries are *NOT* available at the moment. Its something I may get around to in the future but its not a priority.
*This app is currently unstable. Bugs, issues, and rough edges are expected.*

## Changes in `v0.9.0-beta.4:`

- **NEW - Localization completeness:** All user-facing hardcoded strings are now localized. Covered in this pass: transport control tooltips ("Previous Track", "Next Track", "Play Queue"); folder + URL button and dialog labels; media info metadata labels (Source, Duration, Resolution, Audio Tracks, etc.); folder scan and queue-truncation error feedback; update progress dialog (installing/progress/failure states and all error-outcome messages); post-update result snackbars; debug log panel UI (title, buttons, empty state); accessibility `Semantics` labels (seek bar, accent color picker, mini-player exit button). Previously orphaned `snackDebugLogCopied`/`snackDebugLogCleared` keys are now used.
- **Testing:** 342 tests passing. Code verified clean with zero lint issues.
- **Codebase:** All l10n keys auto-generated via `flutter gen-l10n`.
- **PKG:** Updated packages.

## Changes in `v0.9.0-beta.3:`
* **Updater:** Addressed an issue where the security policies on URLs did not have the new github redirect cdn added. (Beta users on 0.9.0 Beta 1 and Beta 2 need to manually update; sorry! Good thing for betas amiright :P)

## Changes in `v0.9.0-beta.2:`
* **Linux:** Added AppImage and Flatpak support! Both are experimental until 0.9.0 is not in a beta.
* **AppImage:** [x64](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.3/Dacx-Linux-x86_64.AppImage) — portable, no installation needed.
* **Flatpak:** [x64](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.3/Dacx-Linux-x86_64.flatpak) — sandboxed package for app-store distributions (Flathub support planned).
* **AppImage:** [x64](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.4/Dacx-Linux-x86_64.AppImage) — portable, no installation needed.
* **Flatpak:** [x64](https://github.com/BurntToasters/Dacx/releases/download/v0.9.0-beta.4/Dacx-Linux-x86_64.flatpak) — sandboxed package for app-store distributions (Flathub support planned).

## Changes in `v0.9.0-beta.1:`
### UI - Major UI Overhaul!
Expand Down
3 changes: 2 additions & 1 deletion flatpak/run.rosie.dacx.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# x-version: 0.9.0-beta.3
# x-version: 0.9.0-beta.4
app-id: run.rosie.dacx
runtime: org.freedesktop.Platform
runtime-version: "25.08"
Expand All @@ -14,6 +14,7 @@ finish-args:
- --filesystem=xdg-music:ro
- --filesystem=xdg-videos:ro
- --filesystem=xdg-download:ro
- --filesystem=xdg-pictures:create
# Arbitrary paths use the Freedesktop file portal (file_picker).
- --talk-name=org.freedesktop.Notifications
- --talk-name=org.mpris.MediaPlayer2.dacx
Expand Down
100 changes: 100 additions & 0 deletions lib/l10n/app_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -150,9 +150,25 @@
"@snackSkippedUnreadableFiles": {
"placeholders": { "count": { "type": "int", "example": "3" } }
},
"snackInvalidStreamUrl": "Enter a valid http:// or https:// URL.",
"snackNoSupportedMediaInFolder": "No supported media found in that folder.",
"snackFolderScanFailed": "Could not scan folder. {detail}",
"@snackFolderScanFailed": {
"placeholders": { "detail": { "type": "String", "example": "Permission denied" } }
},
"snackFolderScanSkipped": "Skipped {count} unsupported or unreadable item(s).",
"@snackFolderScanSkipped": {
"placeholders": { "count": { "type": "int", "example": "4" } }
},
"snackQueueRemovedMissing": "Removed {count} missing item(s).",
"@snackQueueRemovedMissing": {
"placeholders": { "count": { "type": "int", "example": "2" } }
},

"emptyStateMessage": "Drop a file here or click Open",
"buttonOpenFile": "Open File",
"buttonOpenFolder": "Open Folder",
"buttonOpenUrl": "Open URL",
"buttonReopenLast": "Reopen Last",

"dialogAudioTrackTitle": "Audio track",
Expand All @@ -165,8 +181,24 @@
"dialogPlayQueueAddFiles": "Add files…",
"dialogKeyboardShortcutsTitle": "Keyboard shortcuts",
"dialogKeyCaptureTitle": "Press a key combination",
"dialogOpenUrlTitle": "Open URL",
"dialogOpenUrlHint": "https://example.com/stream.m3u8",
"dialogMediaInfoTitle": "Media info",
"dialogMacInstallLocationTitle": "Move Dacx to Applications",
"dialogMacInstallLocationMessage": "Dacx is meant to run from /Applications/Dacx.app. Move it to the Applications folder for the best update experience.",
"mediaInfoSource": "Source",
"mediaInfoType": "Type",
"mediaInfoDuration": "Duration",
"mediaInfoResolution": "Resolution",
"mediaInfoAudioTracks": "Audio tracks",
"mediaInfoSubtitleTracks": "Subtitle tracks",
"mediaInfoChapters": "Chapters",
"mediaInfoAudioSelection": "Selected audio",
"mediaInfoSubtitleSelection": "Selected subtitles",
"mediaInfoTypeUrlStream": "URL stream",
"mediaInfoTypeAudioFile": "Audio file",
"mediaInfoTypeVideoFile": "Video file",
"mediaInfoUnknown": "Unknown",

"menuTakeScreenshot": "Take screenshot",
"menuMixAllAudioTracks": "Mix all audio tracks",
Expand Down Expand Up @@ -213,7 +245,9 @@
"actionClear": "Clear",
"actionCancel": "Cancel",
"actionSave": "Save",
"actionOpen": "Open",
"actionRemove": "Remove",
"actionRemoveMissing": "Remove missing",
"actionSetNewBinding": "Set new binding",
"actionResetToDefault": "Reset to default",

Expand All @@ -224,7 +258,73 @@
"tooltipMore": "More",
"tooltipSettings": "Settings",
"tooltipOpenFile": "Open file",
"tooltipOpenFolder": "Open folder",
"tooltipOpenUrl": "Open URL",
"tooltipRecentFiles": "Recent files",
"tooltipMediaInfo": "Media info",
"tooltipPreviousTrack": "Previous Track (PageUp)",
"tooltipNextTrack": "Next Track (PageDown)",
"tooltipPlayQueue": "Play Queue",
"tooltipExitMiniPlayer": "Exit mini-player",

"semanticsSeekBar": "Seek bar",
"semanticsAccentColor": "Accent color {name}",
"@semanticsAccentColor": {
"placeholders": { "name": { "type": "String" } }
},

"updateDialogInstallingTitle": "Installing Dacx {version}",
"@updateDialogInstallingTitle": {
"placeholders": { "version": { "type": "String", "example": "0.9.0" } }
},
"updateDialogDownloadingVerifying": "Downloading and verifying in the update helper...",
"updateDialogVerifyingSignature": "Verifying signature...",
"updateDialogDownloadingProgress": "Downloading {downloaded} / {total}",
"@updateDialogDownloadingProgress": {
"placeholders": {
"downloaded": { "type": "String", "example": "1.2 MB" },
"total": { "type": "String", "example": "8.4 MB" }
}
},
"updateDialogDownloading": "Downloading...",
"updateDialogWillClose": "Dacx will close to apply the update.",
"updateDialogFailedTitle": "Update failed",
"updateDialogOpenReleasePage": "Open release page",
"updateActionInstall": "Install",
"updateActionView": "View",

"snackUpdatedToVersion": "Updated to v{version}",
"@snackUpdatedToVersion": {
"placeholders": { "version": { "type": "String", "example": "0.9.0" } }
},
"snackUpdateMayHaveFailed": "Update to v{version} may have failed.",
"@snackUpdateMayHaveFailed": {
"placeholders": { "version": { "type": "String", "example": "0.9.0" } }
},

"debugLogTitle": "Debug Log",
"debugLogEntryCount": "{count} entries",
"@debugLogEntryCount": {
"placeholders": { "count": { "type": "int" } }
},
"debugLogCopyButton": "Copy Log",
"debugLogClearButton": "Clear Log",
"debugLogEmpty": "No debug events yet.",

"updateOutcomeUnsupportedPlatform": "Self-update is not supported on this platform.",
"updateOutcomeMissingAsset": "The release does not include an installer for this platform.",
"updateOutcomeMissingChecksums": "The release does not include a checksums file. Cannot verify download.",
"updateOutcomeMissingSignature": "The release does not include a signed update manifest. Cannot verify update authenticity.",
"updateOutcomeDownloadFailed": "Download failed.",
"updateOutcomeChecksumMismatch": "Downloaded file failed checksum verification. Refusing to install.",
"updateOutcomeExtractionFailed": "Could not extract the update package.",
"updateOutcomeSignatureInvalid": "Downloaded app failed code-signature verification.",
"updateOutcomeBundleIdMismatch": "Downloaded app has an unexpected bundle identifier. Refusing to install.",
"updateOutcomeVersionMismatch": "Downloaded app version does not match the selected update. Refusing to install.",
"updateOutcomeTeamIdMismatch": "Downloaded app is signed by an unexpected developer. Refusing to install.",
"updateOutcomeGatekeeperRejected": "Self-update is not available on this build (missing signing configuration).",
"updateOutcomeSpawnFailed": "Could not launch the installer.",
"updateOutcomeStarted": "Update started.",

"windowMinimize": "Minimize window",
"windowMaximize": "Maximize window",
Expand Down
Loading
Loading