Skip to content

feat(macos): support VirtualHIDDevice v8 - #2123

Merged
jtroo merged 1 commit into
jtroo:mainfrom
malpern:agent/driverkit-0.4.0
Jul 28, 2026
Merged

feat(macos): support VirtualHIDDevice v8#2123
jtroo merged 1 commit into
jtroo:mainfrom
malpern:agent/driverkit-0.4.0

Conversation

@malpern

@malpern malpern commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

Summary

  • update karabiner-driverkit from 0.3.x to 0.4.0
  • update the lockfile to the published 0.4.0 crate
  • document VirtualHIDDevice v8.0.0 as the supported macOS driver
  • document the protocol-7 compatibility cut from protocol-5/v6.2.0

Why

Karabiner-Elements 16.1 uses VirtualHIDDevice v8. Kanata currently depends on the protocol-5 driverkit client and documents VirtualHIDDevice v6.2.0, so it cannot communicate with the current v8 daemon.

karabiner-driverkit 0.4.0 adds the protocol-7/v8 client support. This intentionally updates Kanata to v8 rather than maintaining two IPC implementations. Users of the standalone v6.2.0 driver must upgrade the driver and Kanata together.

Closes #2105.

Runtime validation

The driverkit migration was validated in a disposable macOS 15.7.7 ARM VM during psych3r/driverkit#20. The validated scenarios included:

  • startup before and after daemon availability
  • keyboard and pointing output readiness
  • daemon loss and in-process recovery
  • repeated reconnects
  • clean shutdown
  • two simultaneous output clients and recovery after daemon restart

The controlled v6/v8 comparison found the same same-device exclusive-input behavior in both versions; it was not introduced by the v8 migration.

Local checks

  • cargo fmt --all --check
  • RUSTFLAGS="-Dwarnings" cargo build --all-targets
  • RUSTFLAGS="-Dwarnings" cargo test --all
  • RUSTFLAGS="-Dwarnings" cargo clippy --all -- -D warnings
  • RUSTFLAGS="-Dwarnings" cargo test --all --features=cmd
  • RUSTFLAGS="-Dwarnings" cargo clippy --all --features=cmd -- -D warnings
  • RUSTFLAGS="-Dwarnings" cargo build --release
  • RUSTFLAGS="-Dwarnings" cargo build --release --features=cmd

@jtroo
jtroo merged commit 9356feb into jtroo:main Jul 28, 2026
5 checks passed
@malpern
malpern deleted the agent/driverkit-0.4.0 branch July 29, 2026 23:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bug: kanata not working since updating karabiner-elements to 16.1.0

2 participants