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


10

これを達成する方法について誰かが私に良い参照を与えることができますか、それともそれがどのように行われたかを私に教えてもらえますか?グーグルはここで私を本当に助けていない。なぜならそれは常に私にタッチパッド上の推奨を与えようとするからである:/

回答:


9

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

だからあなたがする必要があるのは

  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拡張機能を使用してポインターを個別に変更するこのツールを使用できます。


かっこいい、ありがとう:D私のクールな新しいポインターデバイスは動作しています!しかし今、私は画面上に2匹のマウスを見ています:P
Alko

2
編集を参照してください。残念ながら(AFAIK)完全なXInput2-APIを公開する標準ユーティリティはありません(これは、マルチ入力セットアップを処理し、個々のカーソルの変更などを行うために必要です)。
Andreas Wiese 2014年

@AndreasWiese情報をありがとう、xicursorsetKDEでは機能しません。何も起こりません。何か案は?
AyberkÖzgür2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.