次の問題がバグであるか、xinputの使用の制限であるかはわかりません。
設定は次のとおりです。 2つのnvidiaグラフィックカードは、xscreen0に4つのタッチスクリーン、xscreen1に2つのスクリーンで構成され、そのうちの1つだけがタッチスクリーンです。
変換行列を調整して、タッチデバイスの位置に合わせて調整することができました。タッチデバイスがxscreen0(DISPLAY =:0.0)にある限り、すべてがうまく機能します。 xscreen1にタッチデバイスを追加しようとすると、非常に奇妙な動作が発生します。
各画面は1920×1080で、xscreen0の画面は90°回転して互いに整列しています。
それでは、この問題について話しましょう。
xinputを使用して正しい変換行列を使用してタッチデバイスをDISPLAY=:0.1
画面に割り当てると、通常は正しい座標が得られます。なぜなら、ポイントをタッチしてからマウスを動かすと、マウスポインタがタッチしたところで正確に動き始めるからです。
ただし、マウスクリックイベントが正しい位置になく、タッチスクリーンにウィンドウを移動しようとするたびに、画面から完全にジャンプしてからそのまま残ります(これがマウスの動きがどこにジャンプするかを見る方法です)。
つまり、クリックイベントや移動などが正しく機能しないため、実際にタッチスクリーンのタッチが使用できないことを意味します。だから私の質問は、この特定のタッチデバイスがxscreen1に割り当てられていることをシステムに知らせることができるかどうかです。 xorg.confやxinputの他のパラメータ変更のようなものですか?
情報:
xinput_calibratorもまったく機能しないため、xinputを介して手動で実行します。
xinputのバージョンは1.6.1です。
evtestはタッチデバイスが正しい座標を提供することを確認しました。
また、xscreen0の画面にタッチデバイスを割り当てると正常に機能し、マウスクリックも正常に機能します。
編集:機器の小道具を追加しましたが、何かが欠けている可能性があります。
Device 'AFO Co., Ltd. AFO TCM10J-400 HID':
Device Enabled (153): 1
Coordinate Transformation Matrix (155): 1.000000, 0.000000, 0.000000, 0.000000, 0.147540, 0.704920, 0.000000, 0.000000, 1.000000
Device Accel Profile (304): 0
Device Accel Constant Deceleration (305): 1.000000
Device Accel Adaptive Deceleration (306): 1.000000
Device Accel Velocity Scaling (307): 10.000000
Device Product ID (296): 9590, 3
Device Node (297): "/dev/input/event24"
Evdev Axis Inversion (308): 0, 0
Evdev Axis Calibration (309): <no items>
Evdev Axes Swap (310): 0
Axis Labels (311): "Abs MT Position X" (302), "Abs MT Position Y" (303), "None" (0), "None" (0)
Button Labels (312): "Button Unknown" (299), "Button Unknown" (299), "Button Unknown" (299), "Button Wheel Up" (159), "Button Wheel Down" (160)
Evdev Scrolling Distance (313): 0, 0, 0
Evdev Middle Button Emulation (314): 0
Evdev Middle Button Timeout (315): 50
Evdev Third Button Emulation (316): 0
Evdev Third Button Emulation Timeout (317): 1000
Evdev Third Button Emulation Button (318): 3
Evdev Third Button Emulation Threshold (319): 20
Evdev Wheel Emulation (320): 0
Evdev Wheel Emulation Axes (321): 0, 0, 4, 5
Evdev Wheel Emulation Inertia (322): 10
Evdev Wheel Emulation Timeout (323): 200
Evdev Wheel Emulation Button (324): 4
Evdev Drag Lock Buttons (325): 0
答え1
ところで、マウスクリックイベントが正しい位置になく、タッチスクリーンでウィンドウを移動しようとするたびに画面から完全に離れてその位置にとどまります。
おめでとうございます。バグが見つかったようです。指を動かすと正しい座標が表示されますが、クリックしたときにクリックイベントの座標が同じ座標を持たない場合は、バグが見つかりました。
これを報告してください。 1つのタッチスクリーンで0:0に再現し、1つのタッチスクリーンで0:1に再現できる場合は、テストが簡単になります。
もう一つの質問は、タッチスクリーンが90°回転するのですか?これと関連があるかもしれませんし、回さないように努力することもできます。 その他には臭いがします。
に行ってくださいhttps://en.opensuse.org/openSUSE:Submitting_bug_reportsエラーを報告します。