Tela sensível ao toque e mouse como entradas separadas?

9

Alguém pode me dar uma boa referência sobre como conseguir isso, ou apenas me diga como isso é feito? O Google não está me ajudando aqui, já que sempre tenta me dar recomendações sobre o touchpad: /

    
por Alko 14.05.2014 / 13:20

1 resposta

9

Desde que sua tela sensível ao toque seja detectada como um dispositivo de entrada chato, você poderá fazer isso com xinput . Essa ferramenta permite definir novos ponteiros principais (o ponteiro virtual que se assemelha a um ponteiro do mouse) e separar e anexar ponteiros escravos (os dispositivos de hardware reais) de e para ele.

Então tudo que você precisa fazer é

  1. crie um novo ponteiro mestre
  2. reconecte sua tela sensível ao toque a esse novo ponteiro mestre

Isso é feito da seguinte forma:

  1. Crie o novo ponteiro principal:

    $ xinput create master touchy
    

    Isso cria um novo par de teclado / ponteiro principal, onde o teclado é chamado »touch keyboard« e o ponteiro »touchy pointer«:

    $ 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. Retorne o ponteiro escravo da tela sensível ao toque para o novo mestre

    Neste exemplo, assumirei que "My Cool ™ Touchscreen" é o dispositivo a ser usado ( id=14 ):

    $ xinput reattach 14 15
    

    Isso resultará no seguinte:

    $ 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)]
    

Agora, sua tela sensível ao toque deve agir como um dispositivo apontador individual.

Editar: Para se livrar do segundo ponteiro do mouse, que é bastante supérfluo para uma tela sensível ao toque, você pode usar esta ferramenta , que utiliza a extensão XInput2 para alterar os ponteiros individualmente.

    
por 14.05.2014 / 14:38