tag:github.com,2008:https://github.com/Oppzippy/OpenSCQ30/releases Release notes from OpenSCQ30 2026-02-21T06:01:32Z tag:github.com,2008:Repository/564186892/v2.5.0 2026-02-21T22:06:29Z v2.5.0 <h3>General</h3> <h4>Features</h4> <ul> <li>Add support for Soundcore Liberty 5 (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/diegok/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/diegok">@diegok</a>)</li> </ul> <h3>GUI</h3> <h4>Fixes</h4> <ul> <li>Resizing causes window to freeze on x11</li> <li>Crash when running with ICED_BACKEND=tiny-skia on x11</li> <li>Attempt at fixing connection issues for Motion+ and Liberty 2 Pro</li> </ul> <h3>Android</h3> <h4>Fixes</h4> <ul> <li>Add device not working on Android 12 and older</li> <li>Widget radio button label color ignoring light/dark theme</li> </ul> Oppzippy tag:github.com,2008:Repository/564186892/v2.4.0 2026-01-23T03:13:20Z v2.4.0 <h3>General</h3> <h4>Features</h4> <ul> <li>Add power off action for Soundcore Motion+</li> </ul> <h3>GUI</h3> <h4>Fixes</h4> <ul> <li>Temporarily disable Hebrew language due to text rendering related crash</li> </ul> <h3>Android</h3> <h4>Fixes</h4> <ul> <li>Crash when adding a device on android 12</li> </ul> Oppzippy tag:github.com,2008:Repository/564186892/v2.3.1 2026-01-15T07:05:57Z v2.3.1 <h3>Android</h3> <h4>Fixes</h4> <ul> <li>Adding a device should automatically refresh the device listing</li> </ul> Oppzippy tag:github.com,2008:Repository/564186892/v2.3.0 2026-01-15T06:53:24Z v2.3.0 <h3>General</h3> <h4>Github Releases</h4> <ul> <li>Enable <a href="https://docs.github.com/en/code-security/concepts/supply-chain-security/immutable-releases">immutable releases</a></li> </ul> <h4>Localization</h4> <ul> <li>Add Hebrew translations (thanks to Lotzi)</li> <li>Update Japanese translations</li> </ul> <h3>Android</h3> <h4>Features</h4> <ul> <li>Add widget for connecting to devices and displaying a configurable setting</li> </ul> <a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/2236514/536081724-747559b4-c93e-4aab-8344-f8a82b7ec85c.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzE3MjEyMjYsIm5iZiI6MTc3MTcyMDkyNiwicGF0aCI6Ii8yMjM2NTE0LzUzNjA4MTcyNC03NDc1NTliNC1jOTNlLTRhYWItODM0NC1mOGE4MmI3ZWM4NWMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDIyMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjAyMjJUMDA0MjA2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9N2IzMDI0ZGNkZjI1NTBkODdiMmRiNDA5ZjRmMzVkZTk3Y2JiZmJkZmZjNjAxMmUwOGMxNDZkYzU2YmRlMTU1OCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ._RGn9CRN7-xZ7Mtzl1ZxPYoVLd4rjina2GEwfS6yuz4"><img width="335" height="116.6666666666667" alt="disconnected" src="https://private-user-images.githubusercontent.com/2236514/536081724-747559b4-c93e-4aab-8344-f8a82b7ec85c.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzE3MjEyMjYsIm5iZiI6MTc3MTcyMDkyNiwicGF0aCI6Ii8yMjM2NTE0LzUzNjA4MTcyNC03NDc1NTliNC1jOTNlLTRhYWItODM0NC1mOGE4MmI3ZWM4NWMucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDIyMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjAyMjJUMDA0MjA2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9N2IzMDI0ZGNkZjI1NTBkODdiMmRiNDA5ZjRmMzVkZTk3Y2JiZmJkZmZjNjAxMmUwOGMxNDZkYzU2YmRlMTU1OCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ._RGn9CRN7-xZ7Mtzl1ZxPYoVLd4rjina2GEwfS6yuz4" content-type-secured-asset="image/png" style="max-width: 100%;"></a> <a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/2236514/536081713-a8ed4772-f904-48e1-ae23-5cc54d8d6f91.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzE3MjEyMjYsIm5iZiI6MTc3MTcyMDkyNiwicGF0aCI6Ii8yMjM2NTE0LzUzNjA4MTcxMy1hOGVkNDc3Mi1mOTA0LTQ4ZTEtYWUyMy01Y2M1NGQ4ZDZmOTEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDIyMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjAyMjJUMDA0MjA2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YjY4ZTA2ZDJkNGE5ZmU2OTdkMTVjYTU2NmNkM2MyMzI0ZGFiYTIwZTI1ZWM0MjhkOTJhOWQ1MGZlYWQ5ZWYyOCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.hocWuEHOXSfMZdhJCI52eSSwGA6OMeUMIgDw_s4O5bs"><img width="335" height="116.6666666666667" alt="connected" src="https://private-user-images.githubusercontent.com/2236514/536081713-a8ed4772-f904-48e1-ae23-5cc54d8d6f91.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzE3MjEyMjYsIm5iZiI6MTc3MTcyMDkyNiwicGF0aCI6Ii8yMjM2NTE0LzUzNjA4MTcxMy1hOGVkNDc3Mi1mOTA0LTQ4ZTEtYWUyMy01Y2M1NGQ4ZDZmOTEucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI2MDIyMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNjAyMjJUMDA0MjA2WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9YjY4ZTA2ZDJkNGE5ZmU2OTdkMTVjYTU2NmNkM2MyMzI0ZGFiYTIwZTI1ZWM0MjhkOTJhOWQ1MGZlYWQ5ZWYyOCZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.hocWuEHOXSfMZdhJCI52eSSwGA6OMeUMIgDw_s4O5bs" content-type-secured-asset="image/png" style="max-width: 100%;"></a> <h4>Fixes</h4> <ul> <li>Attempt to fix crash on some android versions when adding a device</li> </ul> Oppzippy tag:github.com,2008:Repository/564186892/v2.2.1 2026-01-04T08:24:58Z v2.2.1 <h3>General</h3> <h4>Fixes</h4> <ul> <li>Bluetooth not working at all on Windows</li> </ul> Oppzippy tag:github.com,2008:Repository/564186892/v2.2.0 2026-01-04T05:10:54Z v2.2.0 <h3>General</h3> <h4>Features</h4> <ul> <li>Add support for Soundcore Space One</li> <li>Add support for Soundcore P20i / Soundcore P25i / Soundcore R50i</li> <li>Add support for Soundcore P40i (thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JessFairbairn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JessFairbairn">@JessFairbairn</a>)</li> </ul> <h4>Fixes</h4> <ul> <li>Fix bluetooth adapters other than the default one being ignored on Linux</li> </ul> Oppzippy tag:github.com,2008:Repository/564186892/v2.1.0 2025-12-27T22:17:23Z v2.1.0 <h3>General</h3> <h4>Fixes</h4> <ul> <li>Changing from transparency mode to normal mode with the Soundcore Space A40 no longer makes unnecessary intermediate steps, selecting noise canceling along the way</li> </ul> <h4>Packaging</h4> <ul> <li>Added just recipes for building and outputting files to <code>./build-output/</code> for stability, so that when the process changes, fewer changes are required on packagers' end. See the build group when running <code>just --list</code> in the project root.</li> <li>Added fast release build profile for packages that build from source on the user's machine (AUR, etc.). This cuts the build time in half (or more with more cpu cores) by using thin LTO instead of fat. When it's 1 build per 1 user instead of 1 build per total number of users, build time matters a lot more.</li> <li><code>just install</code> no longer builds as well. Since there are multiple build options now, it shouldn't force a specific one. Also, a pkgbuild from an AUR comment had a patch to remove the build from <code>just install</code>, which will now be unnecessary.</li> </ul> <h3>CLI</h3> <h4>Features</h4> <ul> <li>Add proper --help text with examples</li> <li>Add <code>openscq30 list-models</code> command to list supported device models (and importantly, their names, so that one can discover that Soundcore Life Q30's device model is SoundcoreA3028 for example). This makes <code>openscq30 paired-devices add</code> usable.</li> </ul> <h4>Fixes</h4> <ul> <li>Fix <code>openscq30 device list-settings</code>'s <code>--no-categories</code> flag having opposite effect when <code>--json</code> is used</li> <li>Crash in <code>openscq30 device list-settings</code> when a setting is not present (such as when firmware is old and doesn't support a feature)</li> </ul> <h3>Android</h3> <h4>Fixes</h4> <ul> <li>Missing page transitions when pairing a device</li> </ul> Oppzippy tag:github.com,2008:Repository/564186892/v2.0.1 2025-12-22T05:07:01Z v2.0.1 <h3>General</h3> <h4>Fixes</h4> <ul> <li>Soundcore Space A40 case battery should be out of 10</li> <li>Soundcore Space A40 sound modes not working</li> </ul> <h3>Android</h3> <h4>Packaging</h4> <ul> <li>Separate building for different cpu architectures into their own gradle tasks so when building for a specific one, you don't have to build the rust code for all.</li> <li>Fix timestamps of locale files breaking reproducible builds</li> </ul> Oppzippy tag:github.com,2008:Repository/564186892/v2.0.0 2025-12-19T15:41:21Z v2.0.0 <p>This includes all changes since v1.19.3. For those that have been using the beta versions, there have been no notable changes since v2.0.0-beta7.</p> <h3>General</h3> <h4>Breaking Changes</h4> <ul> <li>Custom equalizer profiles are now device specific. Legacy equalizer profiles can be migrated after connecting to a device.</li> <li>Quick presets are now stored in a different format, and no automatic migration is available, so they must be re-created.</li> <li>Device model auto detection is removed, so you now need to select the device model when connecting.</li> </ul> <h4>Features</h4> <ul> <li>All clients now share the same database format, so it is possible to share the sqlite file amongst them.</li> <li>Connecting to a demo device is now a runtime option rather than compile time. As an exmaple of what this can be used for, exporting a custom equalizer profile without physically having your device with you is now possible.</li> <li>Quick presets now include any setting available for the device rather than having to add support for each setting individually.</li> <li>Add support for new devices <ul> <li>Soundcore Q20i</li> <li>Soundcore A20i</li> <li>Soundcore R50i</li> <li>Soundcore Liberty 4 NC</li> <li>Soundcore Space Q45</li> <li>Soundcore Motion+</li> <li>Soundcore P30i</li> </ul> </li> <li>Show case battery level for relevant devices</li> <li>Add toggles for Gaming Mode, Sound Leak Compensation, Surround Sound, Auto Play/Pause, Wearing Tone, Touch Lock, Low Battery Prompt, and Wearing Detection</li> </ul> <h4>Localization</h4> <ul> <li>Add German translations (thanks to Ireozar)</li> <li>Add Turkish translations (thanks to ozer4 and Ferry7466)</li> <li>Add Japanese translations</li> </ul> <h3>GUI</h3> <h4>Breaking Changes</h4> <ul> <li>To migrate legacy equalizer profiles, see the Legacy Equalizer Profile Migration tab after connecting to a device.</li> <li>Rewrite using <a href="https://github.com/pop-os/libcosmic">libcosmic</a></li> <li>Executable renamed from openscq30_gui to openscq30-gui</li> </ul> <h4>Features</h4> <ul> <li>Add settings page with option to change preferred language. Use this if you want OpenSCQ30 to be in a different language than the one your operating system is set to.</li> </ul> <h4>Packaging Changes</h4> <ul> <li>GTK4 and libadwaita are no longer required</li> <li><a href="https://github.com/pop-os/cosmic-icons/">cosmic-icons</a> is required on Linux</li> </ul> <h4>Fixes</h4> <ul> <li>On Windows, a terminal window will no longer be shown unless openscq30-gui is launched from the terminal. This change is made to match behavior on Linux.</li> </ul> <h3>CLI</h3> <h4>Breaking Changes</h4> <ul> <li>All commands have changed, so any scripts making use of the CLI will need to be updated</li> <li>Executable renamed from openscq30_cli to openscq30</li> </ul> <h4>Features</h4> <ul> <li>Add support for custom equalizer profiles</li> <li>It is now possible to set/get multiple settings all in one go, rather than having to invoke openscq30_cli multiple times. This improves performance by only connecting once rather than once per get/set.</li> <li>Flag for JSON output</li> </ul> <h3>Android</h3> <h4>Breaking Changes</h4> <ul> <li>To migrate legacy equalizer profiles, see the Legacy Equalizer Profile Migration menu after connecting to a device.</li> </ul> <h4>Features</h4> <ul> <li>Add support for <a href="https://developer.android.com/guide/topics/resources/app-languages" rel="nofollow">per-app language preferences</a></li> </ul> <h4>Packaging</h4> <ul> <li>Protobuf is no longer used, so <code>protoc</code> is no longer needed when building</li> <li>The APK is now split by ABI to reduce file size (in particular, to avoid coming close to the IzzyOnDroid 30MB file size limit). The universal APK is still available, however.</li> </ul> <h3>Web</h3> <ul> <li>Removed web application due to it being impossible to support some devices on this platform. The v1 branch will continue to be available at the <a href="https://oppzippy.github.io/OpenSCQ30/" rel="nofollow">same URL</a> for the foreseeable future.</li> </ul> Oppzippy tag:github.com,2008:Repository/564186892/v2.0.0-beta7 2025-12-05T07:50:38Z v2.0.0-beta7 <p>I intend to release v2.0.0 by the end of the year, so there will be at most one more beta.</p> <p>See <a href="https://docs.flathub.org/docs/for-users/installation" rel="nofollow">https://docs.flathub.org/docs/for-users/installation</a> for information on installing the beta version from flathub.</p> <h3>General</h3> <h4>Features</h4> <ul> <li>Add support for Soundcore Motion+</li> <li>Add support for Soundcore P30i</li> <li>Show battery level as percentage</li> </ul> <h4>Fixes</h4> <ul> <li>Soundcore R50i NC should not have transparency modes</li> <li>Soundcore R50i NC had manual and automatic nosie canceling mixed up, causing various issues</li> <li>Gaming mode not working on devices other than Soundcore Liberty 4 NC</li> </ul> <h4>Localization</h4> <ul> <li>Update Turkish translations (thanks to ozer4 and Ferry7466)</li> <li>Update German translations (thanks to Ireozar)</li> <li>Update Japanese translations</li> </ul> <h3>GUI</h3> <h4>Features</h4> <ul> <li>Add settings page with option to change preferred language. Use this if you want OpenSCQ30 to be in a different language than the one your operating system is set to.</li> </ul> <h3>CLI</h3> <h4>Features</h4> <ul> <li>Show battery level as fraction (for example, 2/5 instead of 2)</li> </ul> <h3>Android</h3> <h4>Features</h4> <ul> <li>Add support for <a href="https://developer.android.com/guide/topics/resources/app-languages" rel="nofollow">per-app language preferences</a></li> </ul> Oppzippy