remote-input-to-ui

Installation
SKILL.md

Remote Input to an ovui Interface

Overview

ovstream delivers InputEvents and composed text on its worker thread; ovui's input must be written on the thread that ticks it, before the tick. The application queues events, drains them once per tick, decides per event whether the UI or the scene camera receives it, and injects the UI's share through omni.ui._ui._inject_*.

Hand-off and routing

Pointer events go to whichever surface the pointer is over: the chrome (everything outside the viewport) receives ovui injection in window coordinates, the viewport drives the camera. Keyboard and text follow the last click, so a click on the panel gives it keyboard focus and a click in the scene takes it back. When the pointer leaves the panel, ovui is sent a move out of bounds and a left-button release so no drag stays stuck.

Source: examples/python/app_stream/app_stream/app.py snippet input-routing

Injecting into ovui

Mouse position first, then buttons and wheel; keyboard events as ImGui keys; composed text (Server.on_unicode) as text input. The ovstream key codes are StreamSDK's NVST codes; the example carries a compact table to ImGui keys.

Source: examples/python/app_stream/app_stream/ui/host.py snippet inject-input and examples/python/app_stream/app_stream/ui/keymap.py

Cursor

Installs
1
GitHub Stars
14
First Seen
3 days ago