触摸屏和鼠标作为单独的输入?

触摸屏和鼠标作为单独的输入?

有人可以给我一个关于如何实现这一目标的良好参考,或者只是告诉我它是如何完成的吗?谷歌在这里并没有真正帮助我,因为它总是试图给我提供有关触摸板的建议:/

答案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)]
    

现在您的触摸屏应该像一个单独的指点设备一样工作。

编辑:要摆脱第二个鼠标指针(这对于触摸屏来说是相当多余的),您可以使用工具,它利用 XInput2 扩展来单独更改指针。

相关内容