私はubuntu 12.04と2つのモニターを持っています。最初はタッチスクリーンです。
システムは、解像度を3840 * 1080解像度の1つの大画面として認識します。
問題は、タッチキャリブレーションを使用する場合、キャリブレーター画面が両方の画面でサイズ変更されることです。そのため、画面に触れると、ポインターはX軸上で2回移動します。
解決策はありますか?
グラフィック:Twin wiewを搭載したNVIDIA
最初に、xinput --list
を使用してすべての入力ソースをリストします。
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Sony Vaio Jogdial id=8 [slave pointer (2)]
⎜ ↳ Advanced Silicon S.A CoolTouch(TM) System id=11 [slave pointer (2)]
⎜ ↳ HID-compliant Mouse HID-compliant Mouse id=13 [slave pointer (2)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Sony Vaio Keys id=7 [slave keyboard (3)]
↳ Video Bus id=9 [slave keyboard (3)]
↳ Power Button id=10 [slave keyboard (3)]
↳ IR camera id=12 [slave keyboard (3)]
↳ Cherry USB keyboard id=14 [slave keyboard (3)]
↳ Cherry USB keyboard id=15 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=16 [slave keyboard (3)]
興味のあるデバイス(この場合、「Advanced Silicon S.A CoolTouch(TM)System」を使用しています)を取り出し、そのIDをメモします。
次に、入力デバイスをマップするディスプレイを見つける必要があります。最も簡単な方法は、xrandr
を使用することです。
Screen 0: minimum 8 x 8, current 3200 x 1080, maximum 16384 x 16384
HDMI-0 connected 1280x1024+1920+0 (normal left inverted right x axis y axis) 338mm x 270mm
1280x1024 60.02*+
1280x960 60.00
1280x720 60.00 59.94
1152x864 75.00 70.00
1024x768 60.00
800x600 60.32
720x480 59.94
640x480 59.94 59.93
LVDS-0 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 531mm x 299mm
1920x1080 60.00*+ 59.94
この場合、タッチデバイスを出力LVDS-0
にマップします。
最初のステップのID(ここの11
)と2番目のステップの画面名(ここのLVDS-0
)を組み合わせて、次のコマンドを実行します。
xinput --map-to-output INPUT-IDSCREEN
私の例では、このコマンドは次のようになります。
xinput --map-to-output 11 LVDS-0
タッチデバイスは入力デバイスに適切にマッピングされてはならず、追加の構成は必要ありません。
これらの設定は、リブート間で保持されません。 xinput
コマンドを永続化する方法 でこの質問を参照してください。
Archlinux wikiはこれを解決する方法の最良の説明ですが、ここにもう少し具体的なものがあります。
Xinput --listを実行して、入力デバイスの名前を特定する必要があります。変換値を計算するスプレッドシートを作成しました。
スプレッドシートはこちら: https://docs.google.com/spreadsheets/d/13CNQjWfzpEkHM4ZdCcUWDTdQNaFqQ6TYTwatQsYcHcQ/edit?usp=sharing
あなたの番号を実行しました(デュアル1920x1080ディスプレイ)。
タッチスクリーンが左側にある場合、コマンドは次のようになります(「アドバンストシリコンS.A CoolTouch(TM)システム」は入力デバイスの名前です。次のものに置き換えてください)。
xinput set-prop 'Advanced Silicon S.A CoolTouch(TM) System' --type=float 'Coordinate Transformation Matrix' 0.5 0 0 0 1 0 0 0 1
権利については、次のようにする必要があります。
xinput set-prop 'Advanced Silicon S.A CoolTouch(TM) System' --type=float 'Coordinate Transformation Matrix' 0.5 0 0.5 0 1 0 0 0 1
これはこの問題の最初のGoogle検索結果であるため、私にとってシンプルに見えるソリューションを投稿することにしました。
これを見つけました archlinuxのリンク
xinput --map-to-output <stylus device ID> <screen ID>
だから、「座標変換マトリックス」で遊ぶ必要はありません...
参照: https://wiki.archlinux.org/index.php/Calibrating_Touchscreen
マトリックスは次のいずれかです。
Touch screen on the left: 0. 5 0 0 0 1 0 0 0 1
Touch screen on the right: 0. 5 0 0. 5 0 1 0 0 0 1
私はほとんど同じ構成を持っています(ただし、1つが他のものの上に表示されます)。上記のリンクの一番下の行で説明されているように、正しいマトリックスを設定した後、複数回クリックします。 Ubuntuでxorg-server
を再構築する方法が見つかりません。記載されている手順が機能しないことを確認してください。