Release Notes
Highlights
This release focuses on webOS streaming stability, controller lifecycle fixes, Full Keyboard usability, and improved Sunshine/Apollo compatibility.
Streaming / Video
- Added support for custom fractional FPS values, such as
119.94 FPS. - Custom FPS now also updates
clientRefreshRateX100, allowing the client to advertise refresh rates like11994to the host. - Preset FPS selection now clears the custom refresh override to avoid stale fractional values.
- Improved Sunshine color negotiation with full-range color support.
- Kept high-bitrate Sunshine streaming behavior without forcing conservative webOS decoder caps.
Input / Gamepad
- Fixed duplicate gamepad arrival behavior by avoiding the legacy multi-controller fallback when sending Sunshine controller arrival metadata.
- Added explicit controller removal handling to prevent stale virtual controllers on the host.
- Added tracking to avoid sending duplicate controller arrival events for the same gamepad.
- Added webOS filtering for controller-like HID devices that are not real gamepads, such as remote, pointer, mouse, keyboard, touch, or internal LG/webOS input devices.
- Added extra logging for controller candidates, including name, GUID, axes, buttons, and hats, to make future filtering/debugging easier.
- Improved controller lifecycle handling for
JOYDEVICEADDED,JOYDEVICEREMOVED, andCONTROLLERDEVICEREMOVED.
Full Keyboard / Remote
- Added support for long-pressing the webOS remote OK/Enter button to send a right mouse click to the host.
- Short OK/Enter presses still behave as normal Enter/confirm actions.
- Full Keyboard navigation remains local and no longer requires creating a virtual gamepad on the host.
Build / Packaging
- Bumped version to
1.0.3. - Fixed Docker webOS build environment by installing the missing
fileutility required by the SDK relocation script. - Forced a clean webOS Docker build directory to avoid stale or wrong-architecture static libraries.
Notes
- Rebuild cleanly before testing controller changes.
- If a non-gamepad device is still detected as a controller, check the new Aurora logs for
Controller-like device candidateandIgnoring ...entries.