Skip to content

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

Closed
LizardByte/libvirtualhid
#129

Description

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

  1. ReenigneArcher commented on Sep 8, 2026

    @ReenigneArcher
    Member

    Thanks for reporting this. I have a fix in the works. Are you able to self compile Sunshine with LizardByte/libvirtualhid#129 applied to test the fix?

  2. Zenmusashi commented on Sep 8, 2026

    @Zenmusashi

    I have the same issue, Linux Mint distro, vm running and a proxmox host, just did my weekly round of updates then bam frozen mouse, it work fine when the mouse is dragged off the moonlight window, but frozen in place when in the window, it repsonds to clicks, when i go via novnc in proxmox mouse movement is just fine, testing on windows systems, all work fine

  3. k4yt3x commented on Sep 8, 2026

    @k4yt3x

    I'm on Linux and I think what I ran into might be related to this. Xorg logs show:

    [   155.625] (EE) libinput: libvirtualhid Mouse: Discarding absolute event from relative device. Please file a bug
    [   155.627] (EE) libinput: libvirtualhid Mouse: Discarding absolute event from relative device. Please file a bug
    [   155.630] (EE) libinput: libvirtualhid Mouse: Discarding absolute event from relative device. Please file a bug
    ...
    

    Sorry I don't have time to submit a proper PR but I got my agent to patch it so I can do work. Sharing the patch that's proven to work just in case it helps this in anyway: libvirtualhid-split-absolute-mouse-device.patch.

    After this patch absolute mouse movements (optimize mouse for remote desktop in Moonlight Qt) works for me again.

    Sunshine version is v2026.906.222525; system is Arch Linux x86_64 7.2.3.

  4. Sidefix commented on Sep 8, 2026

    @Sidefix

    Just tossing in this report as well, I have had a small issue with Cities Skylines (first one) recently, seems possibly related to the switch to libvirtualhid.

    Up until the previous version, holding down right click would adjust the camera angle in Cities Skylines. Now since v2026.906.222525 it does nothing. No other games seem impacted as right click seem to work fine in everything else I've tested.

  5. Zenmusashi commented on Sep 8, 2026

    @Zenmusashi

    [2026-09-08 07:59:10.328]: Info: Sunshine version: 2026.906.222525 commit: cb72dff
    [2026-09-08 07:59:10.328]: Info: Package Publisher: LizardByte
    [2026-09-08 07:59:10.328]: Info: Publisher Website: https://app.lizardbyte.dev
    [2026-09-08 07:59:10.328]: Info: Get support: https://app.lizardbyte.dev/support
    [2026-09-08 07:59:10.328]: Info: config: 'controller' = disabled
    [2026-09-08 07:59:10.329]: Error: Couldn't load cuda: -1
    [2026-09-08 07:59:10.329]: Error: Failed to gain CAP_SYS_ADMIN
    [2026-09-08 07:59:10.329]: Info: /dev/dri/card1 -> virtio_gpu
    [2026-09-08 07:59:10.339]: Error: Failed to gain CAP_SYS_ADMIN
    [2026-09-08 07:59:10.339]: Error: Couldn't get handle for DRM Framebuffer [43]: Probably not permitted
    [2026-09-08 07:59:10.339]: Error: AppImage and Flatpak do not support KMS capture. Use another capture method.
    [2026-09-08 07:59:10.339]: Error: [wayland] Environment variable WAYLAND_DISPLAY has not been defined
    [2026-09-08 07:59:10.339]: Info: Detecting displays
    [2026-09-08 07:59:10.340]: Info: Detected display: Virtual-1 (id: 0)Virtual-1 connected: true
    [2026-09-08 07:59:10.345]: Error: [portalgrab] Could not create RemoteDesktop session: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.freedesktop.portal.RemoteDesktop” on object at path /org/freedesktop/portal/desktop
    [2026-09-08 07:59:10.345]: Error: [portalgrab] Could not create ScreenCast session: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.freedesktop.portal.ScreenCast” on object at path /org/freedesktop/portal/desktop
    [2026-09-08 07:59:10.345]: Warning: [portalgrab] Failed to connect to portal. Cannot enumerate displays, returning empty list.
    [2026-09-08 07:59:10.375]: Info: // Testing for available encoders, this may generate errors. You can safely ignore those errors. //
    [2026-09-08 07:59:10.375]: Info: Trying encoder [nvenc]
    [2026-09-08 07:59:10.375]: Info: Screencasting with X11
    [2026-09-08 07:59:10.390]: Warning: Couldn't get info for requested display [], defaulting to recording entire virtual desktop
    [2026-09-08 07:59:10.424]: Info: Creating encoder [h264_nvenc]
    [2026-09-08 07:59:10.424]: Info: Color coding: SDR (Rec. 601)
    [2026-09-08 07:59:10.424]: Info: Color depth: 8-bit
    [2026-09-08 07:59:10.424]: Info: Color range: JPEG
    [2026-09-08 07:59:10.425]: Error: Couldn't load cuda: -1
    [2026-09-08 07:59:10.425]: Info: Creating encoder [h264_nvenc]
    [2026-09-08 07:59:10.425]: Info: Color coding: SDR (Rec. 601)
    [2026-09-08 07:59:10.425]: Info: Color depth: 8-bit
    [2026-09-08 07:59:10.425]: Info: Color range: JPEG
    [2026-09-08 07:59:10.425]: Error: Couldn't load cuda: -1
    [2026-09-08 07:59:10.425]: Info: Encoder [nvenc] failed
    [2026-09-08 07:59:10.425]: Info: Trying encoder [vulkan]
    [2026-09-08 07:59:10.425]: Info: Screencasting with X11
    [2026-09-08 07:59:10.425]: Error: Could not initialize x11 display with the given hw device type
    [2026-09-08 07:59:10.625]: Info: Screencasting with X11
    [2026-09-08 07:59:10.625]: Error: Could not initialize x11 display with the given hw device type
    [2026-09-08 07:59:10.825]: Info: Encoder [vulkan] failed
    [2026-09-08 07:59:10.825]: Info: Trying encoder [vaapi]
    [2026-09-08 07:59:10.825]: Info: Screencasting with X11
    [2026-09-08 07:59:10.840]: Warning: Couldn't get info for requested display [], defaulting to recording entire virtual desktop
    [2026-09-08 07:59:10.840]: Info: Creating encoder [h264_vaapi]
    [2026-09-08 07:59:10.840]: Info: Color coding: SDR (Rec. 601)
    [2026-09-08 07:59:10.840]: Info: Color depth: 8-bit
    [2026-09-08 07:59:10.841]: Info: Color range: JPEG
    [2026-09-08 07:59:10.863]: Warning: EGL: context priority set to MEDIUM but CAP_SYS_NICE capability is missing
    [2026-09-08 07:59:10.866]: Info: /usr/lib/x86_64-linux-gnu/GL/lib/dri/virtio_gpu_drv_video.so init failed
    [2026-09-08 07:59:10.866]: Error: Couldn't initialize va display: resource allocation failed
    [2026-09-08 07:59:10.867]: Info: Creating encoder [h264_vaapi]
    [2026-09-08 07:59:10.867]: Info: Color coding: SDR (Rec. 601)
    [2026-09-08 07:59:10.867]: Info: Color depth: 8-bit
    [2026-09-08 07:59:10.867]: Info: Color range: JPEG
    [2026-09-08 07:59:10.879]: Warning: EGL: context priority set to MEDIUM but CAP_SYS_NICE capability is missing
    [2026-09-08 07:59:10.881]: Info: /usr/lib/x86_64-linux-gnu/GL/lib/dri/virtio_gpu_drv_video.so init failed
    [2026-09-08 07:59:10.881]: Error: Couldn't initialize va display: resource allocation failed
    [2026-09-08 07:59:10.882]: Info: Encoder [vaapi] failed
    [2026-09-08 07:59:10.889]: Info: Trying encoder [software]
    [2026-09-08 07:59:10.889]: Info: Screencasting with X11
    [2026-09-08 07:59:10.905]: Warning: Couldn't get info for requested display [], defaulting to recording entire virtual desktop
    [2026-09-08 07:59:10.906]: Info: Creating encoder [libx264]
    [2026-09-08 07:59:10.906]: Info: Color coding: SDR (Rec. 601)
    [2026-09-08 07:59:10.906]: Info: Color depth: 8-bit
    [2026-09-08 07:59:10.906]: Info: Color range: JPEG
    [2026-09-08 07:59:10.906]: Info: Streaming bitrate is 1000000
    [2026-09-08 07:59:10.906]: Info: [libx264 @ 0x60f648788ec0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [2026-09-08 07:59:10.907]: Info: [libx264 @ 0x60f648788ec0] profile High, level 4.2, 4:2:0, 8-bit
    [2026-09-08 07:59:10.919]: Info: [libx264 @ 0x60f648788ec0] frame I:1 Avg QP:31.00 size: 1203
    [2026-09-08 07:59:10.919]: Info: [libx264 @ 0x60f648788ec0] mb I I16..4: 99.9% 0.0% 0.0%
    [2026-09-08 07:59:10.919]: Info: [libx264 @ 0x60f648788ec0] 8x8 transform intra:0.0%
    [2026-09-08 07:59:10.919]: Info: [libx264 @ 0x60f648788ec0] coded y,uvDC,uvAC intra: 0.0% 0.0% 0.0%
    [2026-09-08 07:59:10.919]: Info: [libx264 @ 0x60f648788ec0] i16 v,h,dc,p: 97% 0% 3% 0%
    [2026-09-08 07:59:10.919]: Info: [libx264 @ 0x60f648788ec0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 0% 0% 75% 12% 0% 0% 0% 0% 12%
    [2026-09-08 07:59:10.919]: Info: [libx264 @ 0x60f648788ec0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 0% 0% 100% 0% 0% 0% 0% 0% 0%
    [2026-09-08 07:59:10.919]: Info: [libx264 @ 0x60f648788ec0] i8c dc,h,v,p: 100% 0% 0% 0%
    [2026-09-08 07:59:10.919]: Info: [libx264 @ 0x60f648788ec0] kb/s:577.44
    [2026-09-08 07:59:10.922]: Info: Screencasting with X11
    [2026-09-08 07:59:10.923]: Warning: Couldn't get info for requested display [], defaulting to recording entire virtual desktop
    [2026-09-08 07:59:10.923]: Info: Creating encoder [libx264]
    [2026-09-08 07:59:10.923]: Info: Color coding: SDR (Rec. 601)
    [2026-09-08 07:59:10.923]: Info: Color depth: 8-bit
    [2026-09-08 07:59:10.923]: Info: Color range: JPEG
    [2026-09-08 07:59:10.923]: Info: Streaming bitrate is 1000000
    [2026-09-08 07:59:10.924]: Info: [libx264 @ 0x60f648788ec0] using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX FMA3 BMI2 AVX2
    [2026-09-08 07:59:10.924]: Info: [libx264 @ 0x60f648788ec0] profile High 4:4:4 Predictive, level 4.2, 4:4:4, 8-bit
    [2026-09-08 07:59:10.941]: Info: [libx264 @ 0x60f648788ec0] frame I:1 Avg QP:31.00 size: 1300
    [2026-09-08 07:59:10.942]: Info: [libx264 @ 0x60f648788ec0] mb I I16..4: 100.0% 0.0% 0.0%
    [2026-09-08 07:59:10.942]: Info: [libx264 @ 0x60f648788ec0] 8x8 transform intra:0.0%
    [2026-09-08 07:59:10.942]: Info: [libx264 @ 0x60f648788ec0] coded y,u,v intra: 0.0% 0.0% 0.0%
    [2026-09-08 07:59:10.942]: Info: [libx264 @ 0x60f648788ec0] i16 v,h,dc,p: 97% 0% 3% 0%
    [2026-09-08 07:59:10.942]: Info: [libx264 @ 0x60f648788ec0] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 0% 0% 75% 12% 0% 0% 0% 0% 12%
    [2026-09-08 07:59:10.942]: Info: [libx264 @ 0x60f648788ec0] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 0% 0% 100% 0% 0% 0% 0% 0% 0%
    [2026-09-08 07:59:10.942]: Info: [libx264 @ 0x60f648788ec0] kb/s:624.00
    [2026-09-08 07:59:10.956]: Info: Screencasting with X11
    [2026-09-08 07:59:10.957]: Warning: Couldn't get info for requested display [], defaulting to recording entire virtual desktop
    [2026-09-08 07:59:10.957]: Info: Screencasting with X11
    [2026-09-08 07:59:10.973]: Warning: Couldn't get info for requested display [], defaulting to recording entire virtual desktop
    [2026-09-08 07:59:10.973]: Info: Screencasting with X11
    [2026-09-08 07:59:10.989]: Warning: Couldn't get info for requested display [], defaulting to recording entire virtual desktop
    [2026-09-08 07:59:10.990]: Info: Screencasting with X11
    [2026-09-08 07:59:11.006]: Warning: Couldn't get info for requested display [], defaulting to recording entire virtual desktop
    [2026-09-08 07:59:11.007]: Info: Screencasting with X11
    [2026-09-08 07:59:11.009]: Warning: Couldn't get info for requested display [], defaulting to recording entire virtual desktop
    [2026-09-08 07:59:11.009]: Info: Screencasting with X11
    [2026-09-08 07:59:11.023]: Warning: Couldn't get info for requested display [], defaulting to recording entire virtual desktop
    [2026-09-08 07:59:11.024]: Info:
    [2026-09-08 07:59:11.024]: Info: // Ignore any errors mentioned above, they are not relevant. //
    [2026-09-08 07:59:11.024]: Info:
    [2026-09-08 07:59:11.024]: Info: Found H.264 encoder: libx264 [software]
    [2026-09-08 07:59:11.026]: Info: Starting system tray
    [2026-09-08 07:59:11.029]: Info: Configuration UI available at [https://localhost:47990]
    [2026-09-08 07:59:11.032]: Info: Adding avahi service Mints
    [2026-09-08 07:59:11.148]: Warning: Qt: Qt: Session management error: Could not open network socket
    [2026-09-08 07:59:11.157]: Info: System tray created
    [2026-09-08 07:59:11.157]: Info: Starting main loop
    [2026-09-08 07:59:11.853]: Info: Avahi service Mints successfully established.
    [2026-09-08 07:59:16.271]: Info: Opening UI from system tray
    [2026-09-08 07:59:16.274]: Info: Opened url [https://localhost:47990]
    [2026-09-08 07:59:21.615]: Info: Web UI: [127.0.0.1] -- not authorized

    this is what my log looks like

  6. ReenigneArcher commented on Sep 8, 2026

    @ReenigneArcher
    Member

    Original issue will be fixed when libvirtualhid is updated in Sunshine.

    If you have a separate issue, create a separate proper bug report.

  7. marked Touch input failure #5721 as a duplicate of this issue on Sep 14, 2026
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