Skip to content

Releases: strain08/LGSTrayEx

Release 3.2.0

25 Mar 17:47

Choose a tag to compare

✨ New Features

  • Centurion protocol - support for headsets G522 (tested), PRO X 2, etc.

All credits for Centurion protocol reverse-engineering and providing a c# implementation go to:
Ken Ksanislo @ksanislo

What's Changed

  • fix: 0x50 variant TX frames missing device address byte by @ksanislo in #19
  • Here's another PR covering what I saw in the G522 logs from the user. by @ksanislo in #20
  • refr: FrameLayout cleanup and passive transport guard by @strain08 in #21
  • Feat/centurion headset battery by @strain08 in #22

New Contributors

Full Changelog: v3.1.9...v3.2.0

Release 3.1.9

11 Mar 21:05

Choose a tag to compare

✨ New Features

  • UI - configurable colors for battery level bar in icon mode, dark/light theme

Full Changelog: v3.1.8...v3.1.9

Release 3.1.8

03 Mar 18:31

Choose a tag to compare

What's Changed

🔴 Bug fixes and improvements

fix: system resume event from S3 was handled twice

Full Changelog: v3.1.7...v3.1.8

Release 3.1.7

17 Feb 19:41

Choose a tag to compare

What's Changed

🔴 Bug fixes and improvements

impr: add option to limit log size
fix: regression, B330 was not detected
fix: possible deadlock in OnRefChanged (possible ui lockup)
fix: named pipe crash (possible shutdown crash)
fix: race condition when disposing read threads (possible shutdown crash)
fix: exclude receivers from mode switch tracking

Full Changelog: v3.1.6...v3.1.7

Release 3.1.6

08 Feb 16:15

Choose a tag to compare

What's Changed

🔴 Bug fixes and improvements

  • impr: numeric display added configurable colored battery bar to better identify multiple devices

  • Modify Lightspeed device compatibility in README by @darmach in #11

New Contributors

Full Changelog: v3.1.5...v3.1.6

Release 3.1.5

21 Jan 06:44

Choose a tag to compare

What's Changed

🔴 Bug fixes and improvements

  • impr: MQTT Removed per-device status sensor, added per host sensor,
  • impr: MQTT Removed lwt option since new default functionality does not disturb battery readings
  • fix: MQTT Reconnect after server restart and sleep wake up
  • impr:WebServer use stable device signature for all devices
  • fix: mode-switch: mode switch delay active only when suppressModeSwitchNotifications is true
  • Update readme.md - add g705 by @nyakze in #9

New Contributors

  • @nyakze made their first contribution in #9

Full Changelog: v3.1.4...v3.1.5

Release 3.1.4

13 Jan 08:29

Choose a tag to compare

✨ New Features

  • MQTT client, advertise in Home Assistant
    Only Native devices are reported.
    Http server must be disabled for MQTT reporting to work
    See appSettings.toml for new configuration options.

🔴 Bug fixes and improvements

  • fix: AppSettings: merge and repair between releases
  • fix: AppSettings: wrong or missing settings should no longer crash application
  • fix: Mode-switch: usb device no longer detected after unplug
  • impr: UI: Mode-switch devices supress notifications and "?" mark when plugging/unplugging usb cable, configurable
  • fix: UI: fixed battery thresholds notifications, added more tests
  • impr: HTTPServer: added new <is_online> key to http xml
  • impr: HTTPServer: batteryPercentage no longer reports -1 as device off. When device off it reports last known value.
  • fix: Multi-User: crash and other issues when running in multi-user multi-instance setup. See MULTI_USER_HOW_TO.MD

Full Changelog: v3.1.3...v3.1.4

Release 3.1.3

05 Jan 06:47

Choose a tag to compare

What's Changed

Full Changelog: v3.1.2...v3.1.3-strain08

✨ New Features

  • Experimental support for monitoring devices that connect both wired and wireless

🔴 Bug fixes and improvements

  • fix: better filtering/matching for battery events (removed band-aid 15% filtering)
  • impr: retry with exponential backoff for hidpp commands
  • impr: co-existence with logi apps
  • impr: devices were reinitialized when a logiapp was launched
  • impr: config options for tuning retry logic
  • fix: potential race condition results in buffer overwrite before read in CommandCorrelator
  • impr: distinct battery full / high threshold (almost full) notifications
  • impr: ping device before requesting battery data (ensures device awake)
  • fix: polling was not stopping immediatly on request
  • fix: other race condition fixes and event leaks

v3.1.2

30 Dec 11:11

Choose a tag to compare

What's changed

Full Changelog: v3.1.1...v3.1.2

✨ New Features

  • Ghub and Native devices: identifiable by source in menu and tray
  • Option keepOfflineDevices: configures tray icon behaviour

🔴 Bug fixes and improvements

  • Better device management: selection recall, workaround ghub device changing id's
  • fixed "Rediscover devices" menu did not refresh icons
  • Improved suspend/resume behaviour: devices are properly managed across S3 and S0 (Modern Standby)
  • App correctly detects if another instance is running
  • UI improved font rendering for numeric display
  • UI improved icon rendering
  • UI improved charging indicator in numeric display
  • Added logging options in appsettings.toml

v3.1.1

22 Dec 09:57

Choose a tag to compare

Full Changelog: v3.1.0...v3.1.1

** Migrated to .NET 10, we now have dark menu !

Known issues

** The single instance mutex crashes the new instance

What's changed

Critical Stability Fixes

This release focuses on eliminating crashes and fixing critical bugs that affected icon management and thread safety.

The Big Fixes:

  • No more duplicate/ghost icons in the system tray
  • No more crashes during theme changes or rapid device reconnections
  • No more application freezes during device discovery
  • Prevents multiple instances from running simultaneously

🔴 Critical Bug Fixes

Fixed: Orphaned Icons in System Tray

Problem: Icons would remain in the taskbar even after devices were removed from the menu, creating "ghost icons" you couldn't remove.

Fixed:

  • Icons are now properly disposed when devices are removed
  • Stale device stubs cleaned up correctly
  • No more duplicates when devices reconnect with new IDs

Fixed: Application Crashes

Problem: Application could crash when:

  • Changing Windows theme (light/dark mode)
  • Multiple devices updating simultaneously
  • Rapidly checking/unchecking devices
  • Using "Rediscover Devices" button

Fixed:

  • Thread-safe ref counting prevents race conditions
  • Proper disposal pattern eliminates access violations
  • Timer callbacks properly synchronized
  • Collection access marshaled to UI thread

Fixed: Visual Glitches

Problem: Main icon would flicker during device rediscovery

Fixed: Added 500ms debounce delay before showing main icon

✨ New Features

Single Instance Application

  • Ensures only one copy of LGSTray runs at a time