Input routes to hosts physical display, not headless GNOME Remote Login session, using portal capture

Abierto
#6,072 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
18/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
cpp, linux
Área
desktop

Línea de trabajo

Start with the online log gist and the related capture-side thread in #5750 and PR #5701, which describe how the portal handshake already performs a SelectDevices step. Compare that path against Sunshine's uinput input backend to confirm the hypothesis that injected events land on the physical seat rather than the headless Remote Login session. The likely direction is delivering input via the RemoteDesktop portal / ConnectToEIS (libei) when capture is set to XDG Portal Grab on Linux; done means Moonlight mouse and keyboard reach the captured session. This is design work across subsystems with no patch sketched, so treat it as a discussion with maintainers before writing code.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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?

None

Describe the Bug

Description
Using portal capture with Sunshine running inside a GDM Remote Login session (headless RDP), it streams video and audio correctly to moonlight; however mouse and keyboard inputs from Moonlight, never reach the streamed session. Instead the inputs are displayed on the host machines physical monitor, showing the GDM Login screen.

Steps to Reproduce:
Connect via GDM Remote Login (RDP) so a headless session starts. No local session is logged in.
Run sunshine inside that session (capture = portal, encoder = vulkan, adapter_name = /dev/dri/renderD128).
Connect from Moonlight and launch Steam Big Picture.
Move the mouse and type. The stream doesn’t react, but the hosts physical display does.

Expected Behavior

Moonlight input is delivered to the RDP Remote Login session which is being captured.

Additional Context

This report was put together with AI assistance (Claude, Anthropic), which helped troubleshoot this and draft the report. The cause below is a hypothesis from the log and from how uinput works, not something I’ve confirmed in Sunshine’s source.

My hypothesis is that Sunshine injects input through uinput devices, which belong to the physical seat. A headless Remote Login session has no seat and doesn’t read evdev devices, so the events reach the physical console session instead. If I’m reading the debug logs in #5750’s related PR #5701 correctly, Sunshine’s portal handshake already includes a SelectDevices step. Would it be possible to deliver input through the RemoteDesktop portal (or ConnectToEIS/libei) when using portal capture? Third-party bridges for headless KWin and cage exist for the same reason.

Related: #5750 (the capture side, now working).

Host Operating System

Linux

Operating System Version

Linux 7.2.11-arch1-1

Architecture

amd64/x86_64

Package

Linux - LizardByte/pacman-repo

GPU Type

AMD

GPU Model

AMD RX 7900 XTX (AMD iGPU also present)

GPU Driver/Mesa Version

mesa 1:26.2.5-1

Capture Method

XDG Portal Grab (FreeBSD/Linux)

Apps
All Apps - Steam Big Picture Was My Test
Log output

Online logs

https://gist.github.com/NovaStorm775/e242895c353da180122c5e07fdcac28e

Lenguaje dominante
C++
Estrellas
43k
Forks
2.4k
Merge medio
1 d 15 h
PR fusionados (30 d)
105

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de LizardByte/Sunshine

Todos los issues de LizardByte/Sunshine

Issues similares

Más issues de C++

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.