Skip to content

GalaxyBudsClient v4.6.0

Compare
Choose a tag to compare
@timschneeb timschneeb released this 13 Mar 14:01
· 638 commits to master since this release

SmartScreen & Gatekeeper notice

The current Windows installer may trigger a SmartScreen ('unrecognized developer') warning on some systems, because I'm publishing these installers as unsigned binaries.
The macOS installer warns you that "macOS cannot verify that this app is free from malware" because there is no Apple Developer ID associated with the project, and hence there is no code signing certificate.

Unfortunately, using a proper code signing certificate for Windows or macOS is not an option since I cannot afford recurring monthly payments for an open-source app with zero budget.

What's new

macOS port

Thanks to @nift4, the macOS port has been finalized and is available for download below.
Both Intel and newer ARM macOS devices are supported.

Hotkey support for Linux

The Linux version now supports global hotkey actions on X11.

This feature has no effect on Wayland, as their protocols do not support global hotkeys by design. As a workaround, you could manually set-up hotkeys in your desktop environment using the new command-line interface.

Basic command-line interface and D-Bus IPC

The app can now be controlled by CLI operations which allows for scripting possibilities.
At the moment, only basic operations are available, such as:

  • Trigger actions such as toggling the ANC/ambient mode, the 'find my buds' feature, and more.
  • List device properties, such as battery levels, wear states, version information and more.
  • Trigger the battery info popup
  • Bring the application window to the foreground
Example commands (click to expand)

Print current device status as JSON: ./GalaxyBudsClient device --get-all --json

{
  "Name": "Galaxy Buds Pro (2B00)",
  "Address": "64:03:7F:2E:00:00",
  "Model": "BudsPro",
  "BatteryLeft": 67,
  "BatteryRight": 76,
  "BatteryCase": 101,
  "VoltageLeft": 3.86,
  "VoltageRight": 3.9,
  "ThermistorLeftCelsius": 34.1,
  "ThermistorRightCelsius": 36.0,
  "WearStateLeft": "Wearing",
  "WearStateRight": "Wearing",
  "FirmwareVersion": "R190XXU0AVF1",
  "HardwareVersion": "rev0.2",
  "SkuLeft": "SM-R190NZKAEUD",
  "SkuRight": "SM-R190NZKAEUD"
}

Toggle ANC: ./GalaxyBudsClient action -e AncToggle

You can invoke the CLI usage help by adding the --help parameter.

D-Bus IPC

Third-party scripts and apps can also connect to the D-Bus IPC service (me.timschneeberger.galaxybudsclient), which provides similar integrations.

On Linux, the service is registered on the system's session bus. On other platforms, a custom D-Bus server will be hosted on the TCP port 54533.

You can use introspection tools such as qdbusviewer or d-spy if you want to experiment with the exposed APIs.

Other new features

  • Galaxy Buds FE support (although mostly untested)
  • Implemented new Buds2 features, including the earbud fit test by @nift4 in #465
  • Dynamic tray icons
  • Connection popup: show the real device name in the title
  • Added additional safeguards to the firmware installer to prevent users from installing firmware for the wrong device model
  • Localization support for RTL languages
  • Linux: auto-start support (except flatpak packages)

Bug fixes

  • Application startup time improvements
  • Fixed crash when BlueZ on Linux is unavailable
  • Fixed window focus issue with some dialogs
  • Fixed broken battery check before firmware updates
  • Fixed inverted touchpad lock reading on Buds2/Buds2Pro by @nift4 in #442
  • Fixed Bixby is not being visible when hotkeys are not supported by @nift4 in #444
  • Fixed application shutdown event under KDE plasma by @ninjaoflight in #453

Other changes

  • Application upgraded to Avalonia 11.1 and NET 8.0
  • Update application icon by @sidevesh in #455
  • Use buds icon for menubar by @sidevesh in #454

Translation updates

New Contributors


Note to Linux users

  • x86_64-musl binaries are only compatible with libc-musl based distributions (e.g., Alpine Linux).
  • You need to give the binary execute permissions before launching it: chmod +x GalaxyBudsClient

Privacy

  • This application collects crash dumps in case of fatal application crashes and sends them to my sentry.io dashboard (can be disabled in settings).
  • To help me support Buds models I don't own, this app includes a crowdsourcing feature to share data about Samsung's proprietary Bluetooth serial protocol on demand. You can disable this permanently by navigating to 'Settings > Crowdsourcing'.

Q: How to fix connection issues (on Windows)

A: If you experience issues while connecting or using the Galaxy Buds with this app, you can do the following:

  1. Unregister your earbuds in the app if not already done, like this: Options > Unregister device
  2. Proceed to the device selection page
  3. Disable the switch with the label 'Use alternative Bluetooth backend' (Windows only)
  4. Select your earbuds from the list and continue

Thank you for 3000+ stars on GitHub!

Full Changelog: 4.5.4...4.6.0