Skip to content

v0.1.109-preview

Latest

Choose a tag to compare

@github-actions github-actions released this 12 Aug 19:55
· 1 commit to main since this release

This preview adds mapped Virtual Keyboards, Windows speaker-volume support for
Audio Relay, and a broad set of Client and Studio reliability improvements.

Highlights

Virtual Keyboards

  • Added configurable Virtual Keyboard devices to Device Routing. Physical
    controller buttons, hats, and axes can produce held keys or chords, key taps,
    repeat-while-held actions, threshold and detent actions, and short bounded
    macros.
  • Added a visual key and modifier picker, dedicated mapping editor, validation,
    and keyboard Live Preview so mappings can be configured without typing HID
    key names or guessing their resulting state.
  • Virtual Keyboards can be routed as their own USB keyboard, use the Client's
    Bluetooth LE keyboard, or join a grouped USB HID device to conserve a Client
    USB gadget lane.
  • Multiple active mappings are merged into one bounded boot-keyboard state with
    eight modifiers and six ordinary key slots. Released mappings cannot
    accidentally release keys that remain held by another mapping.

Audio Relay volume

  • Windows speaker volume and mute changes on the Client USB audio device now
    control the relayed speaker/headphone stream.
  • Volume is applied to captured PCM before Opus encoding, keeping the Host
    playback path and realtime network format unchanged.
  • Clarified the difference between Audio Relay's network-jitter preset and the
    Host speaker output buffer so each setting describes the part of playback it
    actually controls.

Client reliability and efficiency

  • Client output runtime now starts before Windows USB enumeration, preventing
    the initial gadget state from blocking profile startup when an endpoint is
    not yet writable.
  • Added stable per-Client USB gadget serial numbers. A Client retains its
    Windows-facing USB identity across profile changes and updates instead of
    deriving it from transient route details.
  • Optimized mapped joystick and route lookup paths to reduce repeated work on
    the Pi Zero 2 W while preserving ordered button and hat transitions.
  • Bounded the Client control API's concurrent connections, request headers,
    request bodies, and deadlines so stalled or malformed callers cannot consume
    resources without limit.
  • Hardened Client-to-Host control requests with partial-write handling, bounded
    responses, strict HTTP validation, and one absolute connect/send/receive
    deadline.

Studio and documentation

  • Split the largest Studio views and view models into focused components and
    reusable commands while preserving the existing workflows and theme styling.
  • Hardened Virtual Joystick mapping validation and improved provisioning
    guidance.
  • Updated SSH.NET to the patched 2026.0.0 release used by Studio provisioning.
  • Added a user-focused FAQ
    covering roles, routing, grouping, networking, audio, security, upgrades, and
    recovery.

Upgrade notes

Update Studio and its bundled Host and Client payloads together. Virtual
Keyboard mappings and the Client runtime changes require the current Studio and
Client versions.

Reprovisioning is not required. Use the normal Update action for each Pi.
Existing routes, Bluetooth bonds, Audio Relay settings, security identity, and
other device configuration are preserved.

After the Client update, Windows may refresh its USB device information the
first time the gadget reconnects. The new stable Client serial is then reused
across subsequent route and profile changes.

GhostInput control APIs use HTTP and realtime traffic uses UDP without
encryption. Run GhostInput on a private network you trust and do not expose its
ports directly to the internet.

Full changelog

Compare v0.1.108-preview...v0.1.109-preview