v0.8.16
NationalSecurityAgency/ghidrav0.8.16Oct 21, 2026by github-actions[bot]
Upgrading?
Full Release Notes
## macOS: shortcut keys now go through a virtual HID keyboard When a button sends a keyboard shortcut, OpenLogi now presses the keys on a virtual keyboard named "OpenLogi Virtual Keyboard" instead of posting software key events. macOS handles these keys the way it handles keys from a USB keyboard. This is for shortcuts that work from a real keyboard but did not work from OpenLogi ([#1653](https://github.com/AprilNEA/OpenLogi/issues/1653), [#744](https://github.com/AprilNEA/OpenLogi/issues/744)). Apple granted OpenLogi the restricted HID virtual-device entitlement for this, and the signed OpenLogi Agent carries it ([#1918](https://github.com/AprilNEA/OpenLogi/pull/1918), [#1929](https://github.com/AprilNEA/OpenLogi/pull/1929)). - You do not need to grant a new permission. The agent's signing identity did not change, so your Accessibility and Input Monitoring grants keep working. - If macOS does not let OpenLogi create the virtual keyboard, OpenLogi types the keys the old way. - Only the signed release builds have it. Builds from source and dev builds still use the old way. - To check that it is active, run `ioreg -r -c IOHIDUserDevice | grep "OpenLogi Virtual Keyboard"` while OpenLogi runs. - If a shortcut now behaves differently than in 0.8.15, please open an issue. ## What's Changed * chore: track rust 1.99 as the stable floor by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1877 * feat(inject): type synthesized macOS keys through a virtual HID keyboard by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1918 * fix(agent): relaunch when Input Monitoring is granted after launch by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1919 * fix(deps): bump rustls-webpki and webpki roots for emSign advisories by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1924 * feat(inject,gui): slide desktop switches like a three-finger swipe by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1921 * feat(macos,gui): say when Secure Input pauses key remapping by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1926 * test(inject): check that the host's choice decides the next desktop switch by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1928 * feat(xtask,ci): sign the macOS agent with its HID virtual-device profile by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1929 * feat(core,agent,gui): pointer speed and precision mode for 0x2205 mice by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1922 * feat(release): ship Sparkle delta updates by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1925 * fix(device,agent): move linked devices after a keyboard that switches by itself by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1920 * fix(desktop): show Pointer tab for mice and trackballs with software scroll inversion by @spartak8310 in https://github.com/AprilNEA/OpenLogi/pull/1880 * feat(hidpp,device,agent): precision mode on mice with adjustable DPI by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1932 * fix(hidpp): keep unmodelled backlight option bits on write by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1933 * fix(device): restore thumb-wheel reporting as found and harden its capture by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1935 * fix(hidpp,device): write all 0x8070 zones safely and gate v1 functions by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1936 * fix(hidpp): gate the illumination effective maximum in its wrapper by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1937 * fix(hidpp): bound 0x2111 torque and refuse a short capabilities reply by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1939 * feat(pointer): light the DPI LED in precision mode by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1934 * fix(hidpp,device): re-read settings on a 0x4521 disabled-key report by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1940 * fix(hidpp,device,cli): keep getFwInfo transport bytes 9-15 raw by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1945 * fix(gui): save a DPI only after the device confirms it by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1943 * fix(hidpp,device): reconcile DPI after a sensor calibration broadcast by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1947 * fix(agent): hand the haptic enable back after Actions Ring sessions by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1942 * fix(device): drop short 0x2121 movements and re-read SmartShift on a ratchet switch by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1944 * fix(hidpp): decode unified battery status bytes 3-5 by feature version by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1941 * fix(hidpp,device): publish 0x1b04 reporting changes made by other clients by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1946 * fix(device): read the 0x1000 battery capability before mapping levels by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1938 * fix(hidpp,device): read the 0x2201 default DPI only from feature version 1 by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1952 * fix(gui): choose the receiver before pairing a device by @hornej in https://github.com/AprilNEA/OpenLogi/pull/1614 * fix(hidpp): publish the 0x8071 nv-effect sync event as raw bytes by @AprilNEA in https://github.com/AprilNEA/OpenLogi/pull/1951 * chore: release v0.8.16 by @aprilnea[bot] in https://github.com/AprilNEA/OpenLogi/pull/1923 ## New Contributors * @spartak8310 made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/1880 * @hornej made their first contribution in https://github.com/AprilNEA/OpenLogi/pull/1614 **Full Changelog**: https://github.com/AprilNEA/OpenLogi/compare/v0.8.15...v0.8.16
Related Repositories
krahets/hello-algo★ 130,891
《Hello 算法》:动画图解、一键运行的数据结构与算法教程。支持简中、繁中、English、日本語,提供 Python, Java, C++, C, C#, JS, Go, Swift, Rust, Ruby, Kotlin, TS, Dart 等代码实现
iluwatar/java-design-patterns★ 94,809
Design patterns implemented in Java
OtterMind/Chat2DB★ 28,329
Chat2DB is a free, cross-platform, local-first database client and SQL workspace for developers, DBAs, analysts, and data teams. Connect to 40+ databases, manage data, edit and run SQL, and use your own AI model to generate, explain, and optimize queries. Available on desktop, web, Docker, and CLI, with MCP support.