タッチスクリーンとマウスを別々の入力として使用しますか?

タッチスクリーンとマウスを別々の入力として使用しますか?

誰かが私にこれを達成する方法について良い参考資料を与えることができますか?それとも、どのように行われたのか教えてもらえますか? Googleは常にタッチパッドの提案を提供しようとしているので、ここではあまり役に立ちません。

ベストアンサー1

タッチスクリーンが退屈な入力デバイスとして検出されている限り、これを行うことができますxinput。このツールを使用すると、新しいマスターポインタ(マウスポインタに似た仮想ポインタ)を定義し、スレーブポインタ(実際のハードウェアデバイス)を分離して接続できます。

だからあなたがすべきことは

  1. 新しい基本ポインタの生成
  2. この新しいデフォルトポインタにタッチスクリーンを再接続します。

同様に行われます。

  1. 新しいデフォルトポインタを作成します。

    $ xinput create-master touchy
    

    これにより、キーボードを「タッチキーボード」と呼び、ポインタを「タッチポインタ」という新しいデフォルトのキーボード/ポインタペアを作成します。

    $ xinput
       ⎡ Virtual core pointer                          id=2    [master pointer  (3)]
       ⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
       ⎜   ↳ SynPS/2 Synaptics TouchPad                id=10   [slave  pointer  (2)]
       ⎜   ↳ TPPS/2 IBM TrackPoint                     id=11   [slave  pointer  (2)]
       ⎜   ↳ My Cool™ Touchscreen                      id=14   [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)]
           ↳ Video Bus                                 id=7    [slave  keyboard (3)]
           ↳ Sleep Button                              id=8    [slave  keyboard (3)]
           ↳ AT Translated Set 2 keyboard              id=9    [slave  keyboard (3)]
           ↳ ThinkPad Extra Buttons                    id=12   [slave  keyboard (3)]
           ↳ HID 046a:0011                             id=13   [slave  keyboard (3)]
       ⎡ touchy pointer                                id=15   [master pointer  (16)]
       ⎜   ↳ touchy XTEST pointer                      id=17   [slave  pointer  (15)]
       ⎣ touchy keyboard                               id=16   [master keyboard (15)]
           ↳ touchy XTEST keyboard                     id=18   [slave  keyboard (16)]
    
  2. タッチスクリーンスレーブポインタを新しいマスターポインタに再接続する

    この例では、「My Cool™Touchscreen」が使用するデバイスであると仮定します(id=14)。

    $ xinput reattach 14 15
    

    結果は次のとおりです。

    $ xinput
      ⎡ Virtual core pointer                          id=2    [master pointer  (3)]
      ⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
      ⎜   ↳ SynPS/2 Synaptics TouchPad                id=10   [slave  pointer  (2)]
      ⎜   ↳ TPPS/2 IBM TrackPoint                     id=11   [slave  pointer  (15)]
      ⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
          ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
          ↳ Power Button                              id=6    [slave  keyboard (3)]
          ↳ Video Bus                                 id=7    [slave  keyboard (3)]
          ↳ Sleep Button                              id=8    [slave  keyboard (3)]
          ↳ AT Translated Set 2 keyboard              id=9    [slave  keyboard (3)]
          ↳ ThinkPad Extra Buttons                    id=12   [slave  keyboard (3)]
          ↳ HID 046a:0011                             id=13   [slave  keyboard (3)]
      ⎡ touchy pointer                                id=15   [master pointer  (16)]
      ⎜   ↳ My Cool™ Touchscreen                      id=14   [slave  pointer  (2)]
      ⎜   ↳ touchy XTEST pointer                      id=17   [slave  pointer  (15)]
      ⎣ touchy keyboard                               id=16   [master keyboard (15)]
          ↳ touchy XTEST keyboard                     id=18   [slave  keyboard (16)]
    

タッチスクリーンは別のポインティングデバイスのように動作します。

編集する:2番目のマウスポインタ(タッチスクリーンではかなり重複)を削除するには、次のようにします。これXInput2 拡張を利用してポインタを個別に変更するツールです。

おすすめ記事