v0.8.14

kaifcodec/user-scannerv0.8.14Oct 15, 2026by github-actions[bot]

Upgrading?

AI Summary

Primarily bug fixes and documentation updates (translations). Features include Logitech G735 headset detection and camera control exposure improvements.

Key Highlights

  • Logitech G735 headset dongle detection
  • Camera control exposure (pan, tilt, gain, backlight compensation)
  • Custom action Tap/Hold recorder in button picker

New Features

  • Logitech G735 headset detection
  • Camera control exposure
  • Custom action Tap/Hold recorder

Full Release Notes

## What's Changed
* fix(gui): prefer the Buttons panel over Keys when kind resolution is wrong by @4ni1ak in https://github.com/AprilNEA/OpenLogi/pull/1702
* docs(readme): add Spanish translation by @eibidia in https://github.com/AprilNEA/OpenLogi/pull/1314
* fix(gui): let the theme card name shrink so the badge fits by @4ni1ak in https://github.com/AprilNEA/OpenLogi/pull/1435
* fix(hook): carry the mouse's vendor/product ID onto its uinput mirror by @4ni1ak in https://github.com/AprilNEA/OpenLogi/pull/1453
* fix(cli): let macOS prompt for Input Monitoring before diag opens a device by @4ni1ak in https://github.com/AprilNEA/OpenLogi/pull/1256
* fix(gui): draw the client-side titlebar only where the compositor declines one by @4ni1ak in https://github.com/AprilNEA/OpenLogi/pull/945
* fix(inject): distinguish Linux Capture Region from Screenshot by @4ni1ak in https://github.com/AprilNEA/OpenLogi/pull/1433
* fix(hook): preserve low-res wheel events during Linux pass-through by @nathan-fontenele in https://github.com/AprilNEA/OpenLogi/pull/1693
* fix(i18n): use Spain's Spanish terms in the es catalog by @eibidia in https://github.com/AprilNEA/OpenLogi/pull/1326
* docs(i18n): add Portuguese README translation by @obrenoalvim in https://github.com/AprilNEA/OpenLogi/pull/1371
* fix(windows): enable HID++ side-button gestures by @c1m-Chenym in https://github.com/AprilNEA/OpenLogi/pull/1635
* fix(agent): emit scroll input queued across a smoothing toggle instead of dropping it by @isleofgreg in https://github.com/AprilNEA/OpenLogi/pull/1721
* fix(agent): honor an overflow cancel from a generation the scroll worker has not seen by @isleofgreg in https://github.com/AprilNEA/OpenLogi/pull/1720
* feat(device): Detect Logitech G735 headset dongle by @xvilo in https://github.com/AprilNEA/OpenLogi/pull/1040
* fix(i18n): translate the custom-action input error in Czech by @Imbecile6197 in https://github.com/AprilNEA/OpenLogi/pull/1728
* fix(overlay): set the macOS activation policy before gpui_platform starts by @4ni1ak in https://github.com/AprilNEA/OpenLogi/pull/1692
* fix(hid): capture alternate gesture controls by @4dux in https://github.com/AprilNEA/OpenLogi/pull/1561
* feat(camera): expose pan, tilt, gain and backlight compensation by @yuzi-co in https://github.com/AprilNEA/OpenLogi/pull/1020
* feat(gui): add precise camera control entry by @vinayaksodar in https://github.com/AprilNEA/OpenLogi/pull/1047
* fix(device): omit raw-xy flags when diverting or restoring keyboard controls by @henius98 in https://github.com/AprilNEA/OpenLogi/pull/1726
* fix(inject): send hi-res wheel events for Linux scroll actions (by @RisenID) by @Fede2782 in https://github.com/AprilNEA/OpenLogi/pull/1719
* fix(assets): resolve variants for depots whose manifests key on depot name or stem by @felipecadal in https://github.com/AprilNEA/OpenLogi/pull/1295
* fix(gui): render camera depots that ship no hotspot metadata by @MattijsE in https://github.com/AprilNEA/OpenLogi/pull/1265
* fix(inject): give App Expose/Mission Control/Show Desktop/Launchpad a GNOME implementation by @4ni1ak in https://github.com/AprilNEA/OpenLogi/pull/1446
* fix(gui): open the config folder from the fail-closed config screen by @yuzi-co in https://github.com/AprilNEA/OpenLogi/pull/942
* fix(gui): give MenuRow-based list rows an accessible name by @4ni1ak in https://github.com/AprilNEA/OpenLogi/pull/1448
* fix(camera): collapse a Brio's IR node into one Linux camera entry by @4ni1ak in https://github.com/AprilNEA/OpenLogi/pull/1234
* docs: add Turkish README translation by @4ni1ak in https://github.com/AprilNEA/OpenLogi/pull/1734
* feat(hook): reverse the wheel in software for devices without 0x2121 by @4ni1ak in https://github.com/AprilNEA/OpenLogi/pull/847
* feat(gui): add custom-shortcut Tap/Hold recorder to the button picker by @fahadjibransheikh in https://github.com/AprilNEA/OpenLogi/pull/1396
* fix(agent): reapply volatile settings on device reconnection and retry disagreeing DPI writes by @isleofgreg in https://github.com/AprilNEA/OpenLogi/pull/1270
* fix(overlay): properly position and scale Actions Ring on Windows mixed-DPI displays by @c1m-Chenym in https://github.com/AprilNEA/OpenLogi/pull/1745
* fix(camera): pass the pan/tilt payload by value by @SMRehan in https://github.com/AprilNEA/OpenLogi/pull/1740
* feat(core): add an action that holds modifiers and taps the key once by @Rick0525 in https://github.com/AprilNEA/OpenLogi/pull/1161
* feat(gui): update macOS through Sparkle by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1744
* docs(ipc): move PROTOCOL_VERSION once per release by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1760
* fix(hidpp): write 0x1990 non-linear level tables whole by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1765
* fix(hidpp): read the 0x4530 platform with function 0 by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1766
* fix(hidpp): write each 0x0007 name chunk at its own offset by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1767
* fix(hidpp): preserve device state OpenLogi does not own on writes by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1753
* fix(device): encode 0x8080 tail frames and 0x8070 fixed colour per device by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1758
* fix(device): write SmartShift torque and DPI only as the device advertises by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1759
* fix(device): give the Litra Beam its own brightness range by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1763
* fix(device): stop misreading 0x1000 and 0x1001 battery states by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1768
* fix(device): stop committing 0x8080 frames the keyboard rejected by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1764
* fix(device): own RGB software control for the agent session by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1769
* fix(hidpp): require the 0x8081 zone echo before reporting a write by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1771
* fix(hidpp): refuse short 0x1990 info and level replies by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1772
* fix(device): confirm the haptic repair from the device's reply by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1773
* fix(device): confirm SmartShift writes from the device's reply by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1775
* fix(agent-core): close the RGB release races left by #1769 by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1770
* fix(hidpp): require the sensor echo in DPI replies by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1776
* fix(device): end a thumb-wheel roll whose Stop never arrives by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1777
* docs(hidpp): say that a None remap keeps the current mapping by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1778
* fix(hidpp): hold 0x8060 and 0x8061 rates to what the features define by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1779
* fix(hidpp): decode every 0x2121 capability flag and the horizontal delta by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1780
* fix(hidpp): decode 0x1c00 empty actions and status, and 0x4531 OS bits by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1781
* fix(hidpp): keep 0x0003 firmware entity types without a name by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1783
* fix(hidpp): refuse a short 0x40A3 reply instead of zero-filling it by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1782
* fix(hidpp): treat a Bolt protocol byte in 0x41 as an encrypted link by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1784
* fix(device): reconcile inventory on 0x1000/0x1001 battery broadcasts by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1787
* fix(device): wait for the Unifying lock to open before searching by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1785
* fix(device): report no percentage for a 0x1004 battery without a gauge by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1788
* fix(hidpp): check the echoed index in 0x8070/0x8071 info and 0x0007 name reads by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1789
* fix(hidpp): read a non-BCD 0x0003 firmware version as binary by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1790
* fix(device): re-read settings the device changes itself by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1791
* fix(device): drive Fn-lock on keyboards that only have 0x40a0 by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1792
* fix(device): play only the haptic waveforms the device advertises by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1796
* feat(camera): name webcams that report no USB product string by @DonovanMontoya in https://github.com/AprilNEA/OpenLogi/pull/1793
* chore(deps): bump rustls to 0.23.46 by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1805
* feat(device): keep multi-platform keyboards on the host OS layout by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1806
* feat(device): adjust the report rate of mice with 0x8060 or 0x8061 by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1808
* feat(device): set keyboard backlight automatic brightness, level and battery saving by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1811
* feat(desktop): control the keyboard backlight from the Device tab by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1812
* fix(device): refuse haptic plays while 0x19b0 reports a non-zero status by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1817
* fix(linux): settle the uinput action device before its first emit by @4ni1ak in https://github.com/AprilNEA/OpenLogi/pull/1810
* fix(device): don't let a stuck Empty host-slot status refuse a real pairing by @4ni1ak in https://github.com/AprilNEA/OpenLogi/pull/1813
* fix(agent): divert a keyboard key explicitly bound to Action::None by @4ni1ak in https://github.com/AprilNEA/OpenLogi/pull/1819
* fix(device): discard the stale first raw-XY report of every gesture hold by @DonovanMontoya in https://github.com/AprilNEA/OpenLogi/pull/1786
* fix(scroll): post phaseless continuous scroll events on macOS by @isleofgreg in https://github.com/AprilNEA/OpenLogi/pull/1157
* fix(gui): gate debug diagnostics imports in release builds by @gitsacha in https://github.com/AprilNEA/OpenLogi/pull/1815
* fix(agent): anchor the recovery-scan timer to scan start, not scan end by @4ni1ak in https://github.com/AprilNEA/OpenLogi/pull/1809
* fix(agent): queue HID requests before response timeout by @sh3ll3x3c in https://github.com/AprilNEA/OpenLogi/pull/936
* fix(linux): open the Actions Ring at the cursor on Wayland by @AalmanSadath in https://github.com/AprilNEA/OpenLogi/pull/1004
* fix(agent): hand off capture across receiver routes by @justinechang39 in https://github.com/AprilNEA/OpenLogi/pull/1198
* Horizontal Scroll Reversed #1120 by @romanr in https://github.com/AprilNEA/OpenLogi/pull/1140
* feat(device): read Easy-Switch host names and OS, and rename hosts (0x1815) by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1824
* fix(overlay): configure accessory policy after GPUI initialization by @gitsacha in https://github.com/AprilNEA/OpenLogi/pull/1814
* fix(hook): keep software scroll inversion applied when the agent intercepts the wheel by @4ni1ak in https://github.com/AprilNEA/OpenLogi/pull/1749
* feat(desktop): show Easy-Switch hosts on the Device tab and rename them by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1825
* fix(hook): keep the pixel delta when inverting a macOS wheel event by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1827
* chore: release v0.8.14 by @aprilnea[bot] in https://github.com/AprilNEA/OpenLogi/pull/1718

## New Contributors
* @nathan-fontenele made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/1693
* @obrenoalvim made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/1371
* @c1m-Chenym made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/1635
* @xvilo made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/1040
* @4dux made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/1561
* @vinayaksodar made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/1047
* @henius98 made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/1726
* @Fede2782 made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/1719
* @felipecadal made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/1295
* @MattijsE made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/1265
* @fahadjibransheikh made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/1396
* @SMRehan made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/1740
* @Rick0525 made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/1161
* @DonovanMontoya made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/1793
* @gitsacha made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/1815
* @justinechang39 made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/1198
* @romanr made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/1140

**Full Changelog**: https://github.com/AprilNEA/OpenLogi/compare/v0.8.13...v0.8.14

Related Repositories