Skip to content

v0.8.16

Latest

Choose a tag to compare

@github-actions github-actions released this 21 Oct 16:27
Immutable release. Only release title and notes can be modified.
cc77685

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, #744). Apple granted OpenLogi the restricted HID virtual-device entitlement for this, and the signed OpenLogi Agent carries it (#1918, #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 #1877
  • feat(inject): type synthesized macOS keys through a virtual HID keyboard by @AprilNEA in #1918
  • fix(agent): relaunch when Input Monitoring is granted after launch by @AprilNEA in #1919
  • fix(deps): bump rustls-webpki and webpki roots for emSign advisories by @AprilNEA in #1924
  • feat(inject,gui): slide desktop switches like a three-finger swipe by @AprilNEA in #1921
  • feat(macos,gui): say when Secure Input pauses key remapping by @AprilNEA in #1926
  • test(inject): check that the host's choice decides the next desktop switch by @AprilNEA in #1928
  • feat(xtask,ci): sign the macOS agent with its HID virtual-device profile by @AprilNEA in #1929
  • feat(core,agent,gui): pointer speed and precision mode for 0x2205 mice by @AprilNEA in #1922
  • feat(release): ship Sparkle delta updates by @AprilNEA in #1925
  • fix(device,agent): move linked devices after a keyboard that switches by itself by @AprilNEA in #1920
  • fix(desktop): show Pointer tab for mice and trackballs with software scroll inversion by @spartak8310 in #1880
  • feat(hidpp,device,agent): precision mode on mice with adjustable DPI by @AprilNEA in #1932
  • fix(hidpp): keep unmodelled backlight option bits on write by @AprilNEA in #1933
  • fix(device): restore thumb-wheel reporting as found and harden its capture by @AprilNEA in #1935
  • fix(hidpp,device): write all 0x8070 zones safely and gate v1 functions by @AprilNEA in #1936
  • fix(hidpp): gate the illumination effective maximum in its wrapper by @AprilNEA in #1937
  • fix(hidpp): bound 0x2111 torque and refuse a short capabilities reply by @AprilNEA in #1939
  • feat(pointer): light the DPI LED in precision mode by @AprilNEA in #1934
  • fix(hidpp,device): re-read settings on a 0x4521 disabled-key report by @AprilNEA in #1940
  • fix(hidpp,device,cli): keep getFwInfo transport bytes 9-15 raw by @AprilNEA in #1945
  • fix(gui): save a DPI only after the device confirms it by @AprilNEA in #1943
  • fix(hidpp,device): reconcile DPI after a sensor calibration broadcast by @AprilNEA in #1947
  • fix(agent): hand the haptic enable back after Actions Ring sessions by @AprilNEA in #1942
  • fix(device): drop short 0x2121 movements and re-read SmartShift on a ratchet switch by @AprilNEA in #1944
  • fix(hidpp): decode unified battery status bytes 3-5 by feature version by @AprilNEA in #1941
  • fix(hidpp,device): publish 0x1b04 reporting changes made by other clients by @AprilNEA in #1946
  • fix(device): read the 0x1000 battery capability before mapping levels by @AprilNEA in #1938
  • fix(hidpp,device): read the 0x2201 default DPI only from feature version 1 by @AprilNEA in #1952
  • fix(gui): choose the receiver before pairing a device by @hornej in #1614
  • fix(hidpp): publish the 0x8071 nv-effect sync event as raw bytes by @AprilNEA in #1951
  • chore: release v0.8.16 by @AprilNEA[bot] in #1923

New Contributors

Full Changelog: v0.8.15...v0.8.16