[Linux][Wayland][GNOME/Mutter] Workaround for Native Pen/Touch Support coordinates misaligned with multiple displays
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 42/100
- issue の種類
- バグ
- 明瞭さ
- 説明が足りない
- 活発さ
- 活発
- 技術スタック
- cpp, linux
調査の方向性
まず、説明されている XDG Portal Grab セットアップを使用して、GNOME/Mutter と複数のディスプレイを備えた Linux Wayland 上でネイティブなタッチスクリーン入力を再現します。文書化されている GSettings コマンドで Sunshine のタッチスクリーンを出力に割り当てる前後の座標の挙動を比較します。システム固有の手動ワークアラウンドを必要とせず、タッチ座標がストリーミングされたディスプレイと一致すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
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
By default on GNOME/Mutter running Wayland, native touchscreen input from Moonlight can be spatially misaligned when multiple displays are connected.
The issue is not specific to Mutter virtual monitors. I encountered it while streaming to a Mutter virtual monitor and XDG Portal Grab, I had previously experienced the same touchscreen misalignment with a physical display created using a dummy HDMI/DP adapter and KMS capture.
Expected Behavior
Touch input should be mapped to the display being streamed, with the touch coordinates corresponding to the same physical/logical positions shown by Moonlight.
With multiple displays connected, touch input should not be offset or interpreted relative to another display.
Additional Context
here is a confirmed workaround on GNOME/Mutter that fixes the touchscreen alignment.
Mutter has a per-device touchscreen output setting that can explicitly associate a touchscreen with a specific display.
For example, on my system:
gsettings set \
'org.gnome.desktop.peripherals.touchscreen:/org/gnome/desktop/peripherals/touchscreens/1209:0004/' \
output "['MetaVendor', 'MetaVirtualMonitor', '0x00']"
After assigning the Sunshine touchscreen to the correct output, native touch coordinates from Moonlight are correctly aligned with that display.
The device ID and output tuple are system-specific. The values above correspond to my setup; physical displays will have their own output identity. For example, my Mutter virtual monitor exposes:
['MetaVendor', 'MetaVirtualMonitor', '0x00']
The important part is the explicit association between the Sunshine touchscreen and the output being streamed.
This also indicates that the issue is not inherently caused by virtual displays. I have reproduced the same touchscreen misalignment with a physical display created through a dummy HDMI/DP adapter and KMS capture. The common factor is having multiple outputs while using absolute/native touchscreen input.
The touchscreen itself appears to provide usable absolute coordinates; explicitly changing the Mutter output association changes the coordinate mapping and fixes the problem.
I am not suggesting that Sunshine necessarily needs to implement this exact GSettings mechanism. The purpose of this report is to document the confirmed GNOME/Mutter workaround and provide a concrete lead for determining where the appropriate long-term fix belongs.
There are also reports of similar multi-display touchscreen issues under other Wayland compositors, including KDE Plasma/KWin, but I have not independently verified an equivalent fix there, so I am not making a claim about the KDE implementation.
The main confirmed finding here is:
On GNOME/Mutter Wayland, explicitly mapping the Sunshine touchscreen device to the intended output fixes native touchscreen misalignment with multiple displays.
Host Operating System
Linux
Operating System Version
Arch Linux
Architecture
other, n/a
Package
Linux - flathub/flatpak
GPU Type
n/a
GPU Model
n/a
GPU Driver/Mesa Version
n/a
Capture Method
XDG Portal Grab (FreeBSD/Linux)
Apps
Log output
Online logs
No response
- 主要言語
- C++
- スター
- 43k
- フォーク
- 2.4k
- 平均マージ
- 1日 15時間
- マージ済み PR(30日)
- 105
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
LizardByte/Sunshine のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
LizardByte/Sunshine#6051 ·
メンテナーはふだん 1 日以内に返信
-
PIN pairing fails with "Missing CSRF token" - web UI never fetches/attaches the token再び着手できるかも このイシューのプルリクエストはマージされずにクローズされました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
LizardByte/Sunshine#5467 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 5/5 1週間以上 初心者へのやさしさ 18/100
LizardByte/Sunshine#6072 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
LizardByte/Sunshine#6063 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
LizardByte/Sunshine#6048 ·
メンテナーはふだん 1 日以内に返信
LizardByte/Sunshine の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
charmplusplus/charm#4210 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
メンテナーはふだん 1 日以内に返信
-
[BUG] VPN auth dialog spawned by the secret agent fails with "TLS support is not available" on NixOSオープンbug nixos umbriel
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
noctalia-dev/noctalia#5310 ·
メンテナーはふだん 1 日以内に返信
-
area/docdb kind/bug priority/medium status/awaiting-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
yugabyte/yugabyte-db#37426 ·
メンテナーはふだん 1 日以内に返信