Orbiscreen v0.31.0
Remove mouse cursor lag and motion queuing by introducing a persistent WebSocket input channel, confine uinput touchscreen, touchpad, and pointer devices strictly to the Orbiscreen virtual display in KWin/Wayland via dynamic kwinrc configuration and D-Bus reload, add full in-session display resolution controls (chips and custom dimensions) in the Android client settings sheet, remove unwrap() panics across production daemon and transport code, and remove all internal source comments while standardizing configuration comments.
Performance & Low-Latency Input
- WebSocket Input Channel (
crates/orbiscreen-transport/src/lib.rs,InputDispatcher.kt):- Added dedicated
/input/wsWebSocket upgrade endpoint in the transport daemon for sub-millisecond motion event dispatch directly toDisplayCtl. - Upgraded Android
InputDispatcherto stream pointer and touch movement events over WebSocket, removing HTTP per-event round-trip latency, connection setup overhead, and queue backpressure timeouts. - Retained reliable HTTP fallback for discrete button and key events when WebSocket connection is initializing or reconnecting.
- Added dedicated
KWin / Wayland Display Confinement
- Dedicated Output Mapping (
crates/orbiscreen-input/src/x11.rs):- Added
configure_kwin_deviceto automatically register uinput mouse/keyboard, touchscreen, and tablet devices in~/.config/kwinrcunder[InputDevice][<name>]withOutputName=<virtual-output>. - Invokes
qdbus org.kde.KWin /KWin reconfigureupon device creation under Wayland, confining pointer, touch, and touchpad inputs strictly to the Orbiscreen virtual monitor instead of bleeding across all physical displays.
- Added
Android In-Session Resolution Controls
- Resolution Switcher (
StreamScreen.kt,StreamViewModel.kt,PrefsStore.kt):- Added resolution preset chips (Native, 720p, 1080p, 1440p, 2K (2560x1600)) and custom Width × Height inputs to the
ConnectionSettingsSheet. - Dynamically adapts dimension orientation (landscape vs portrait) and immediately reconfigures stream dimensions via host control without session drop.
- Persists user resolution preference in
PrefsStoreand automatically restores it upon subsequent connections.
- Added resolution preset chips (Native, 720p, 1080p, 1440p, 2K (2560x1600)) and custom Width × Height inputs to the
Changed
- Panic & Crash Removal (
client_display.rs,fec.rs,lib.rs,StreamScreen.kt):- Replaced
unwrap()calls in production code paths with idiomatic safe alternatives (.cloned(),let Some(...) = ... else, safe slice indexing). - Removed non-null assertion crash risks (
!!) in Android key mapping. - Removed unused
quinn-protoandtracingdependencies. - Removed all internal source comments across
.rsand.ktfiles, verifying 0 internal comments.
- Replaced
Changed
- Bumped workspace package version to
0.31.0. - Incremented Android client
versionCodeto115and updatedversionNameto"0.31.0". - Updated
tauri.conf.jsonversion to0.31.0. - Bumped PKGBUILD
pkgverto0.31.0. - Added
0.31.0-1release entry todebian/changeloganddata/orbiscreen-copr.spec.