Skip to content

Linux/X11: absolute mouse moves from Moonlight iOS "Touchscreen" mode are dropped (libvirtualhid single mouse device); clicks work #5642

Description

@dankizana

Is there an existing issue for this?

  • I have searched the existing issues

Is your issue described in the documentation?

  • I have read the documentation

Is your issue present in the latest beta/pre-release?

This issue is present in the latest pre-release

Describe the Bug

Host: Sunshine 2026.906.222525 (deb), Linux Mint 22.3, X11/Cinnamon 6.6.9, NVIDIA RTX 4080 (driver 610.43.02), capture x11, otherwise default config.
Client: Moonlight iOS on , iOS , input mode "Touchscreen".

Steps:

  1. Stream the Desktop app from Moonlight iOS with the input mode set to "Touchscreen".
  2. Tap anywhere on the stream; try a drag.

Result: taps produce clicks at the pointer's current position; the pointer never moves to the tapped position. "Touchpad" mode (relative motion) works. Keyboard and gamepad work.

Debug log: the host receives the client's absolute-move packets correctly, one per tap/drag sample (298 in a 90 s session), e.g.

--begin absolute mouse move packet--
x [559]
y [128]
width [697]
height [392]
--end absolute mouse move packet--
--begin mouse button packet--

No warnings follow them. No touchscreen or pen device is created (the client sends absolute mouse, not native touch).

The only pointer device libvirtualhid creates is a single uinput device, "libvirtualhid Mouse", which declares BOTH relative and absolute axes and is udev-tagged as a mouse:

/sys/class/input/event28/device/capabilities: ev=f abs=3 rel=1943 props=0
udev: ID_INPUT=1 ID_INPUT_MOUSE=1
xinput: "libvirtualhid Mouse" id=26 [slave pointer]

libinput handles a mouse-tagged device that has REL_X/REL_Y as a relative pointer and does not deliver ABS_X/ABS_Y motion from it (its absolute device classes are touchscreens and tablets), so the absolute moves are silently dropped while the BTN_* events still land. The inputtino backend created a separate absolute-mouse device for this path; the same client mode worked on v2026.516.143833.

Expected Behavior

Absolute mouse moves from the client position the host pointer, as they did with the inputtino backend: a dedicated absolute pointer device (ABS_X/ABS_Y without REL_X/REL_Y, or a tablet-class / INPUT_PROP_DIRECT device) rather than absolute axes added to the relative mouse.

Additional Context

  • X11 session with the libinput X driver; single 3840x2160 display (HDMI-1), output_name set to it.
  • Working on the same host and build: relative mouse (Touchpad mode), keyboard, DualSense and Xbox gamepads, HEVC NVENC streaming to Apple TV and iOS.
  • Same result on the Apple TV client is not applicable (no touch input there).
  • Full debug-level log of the tap session in the linked gist (hostname masked).
  • Latest pre-release: same result.

Host Operating System

Linux

Operating System Version

Linux Mint 22.3 (Ubuntu 24.04 noble base)

Architecture

amd64/x86_64

Package

Linux - deb

GPU Type

NVIDIA

GPU Model

GeForce RTX 4080

GPU Driver/Mesa Version

610.43.02 (NVIDIA proprietary)

Capture Method

X11 (FreeBSD/Linux)

Apps

Not an app specific issue.

Log output

Full debug log (2,542 lines, Sunshine start through the tap session) in the gist linked below. Excerpt, one tap:
[2026-09-08 12:58:01.950]: Debug: --begin absolute mouse move packet--
x      [559]
y      [128]
width  [697]
height [392]
--end absolute mouse move packet--
[2026-09-08 12:58:01.950]: Debug: --begin mouse button packet--

Online logs

https://gist.github.com/dankizana/305eeae8f26f445809232057c8411fd1

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

No labels
No labels

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions