Touchscreen und Maus als separate Eingänge?

10

Kann mir jemand eine gute Referenz geben, wie ich das erreichen kann, oder mir einfach sagen, wie es gemacht wird? Google hilft mir hier nicht wirklich, da es immer versucht, mir Empfehlungen auf dem Touchpad zu geben: /

Alko
quelle

Antworten:

9

Solange Ihr Touchscreen als langweiliges Eingabegerät erkannt wird, können Sie dies mit tun xinput. Mit diesem Tool können Sie neue Master-Zeiger (den virtuellen Zeiger, der einem Mauszeiger ähnelt) definieren und Slave-Zeiger (die eigentlichen Hardwaregeräte) von und an diesen trennen und anhängen.

Alles was Sie tun müssen, ist

  1. Erstellen Sie einen neuen Master-Zeiger
  2. Schließen Sie Ihren Touchscreen wieder an diesen neuen Master-Zeiger an

Dies geschieht ähnlich wie folgt:

  1. Erstellen Sie den neuen Master-Zeiger:

    $ xinput create master touchy
    

    Dadurch wird ein neues Master-Tastatur / Zeiger-Paar erstellt, bei dem die Tastatur als »Touch-Tastatur« und der Zeiger als »Touchy-Zeiger« bezeichnet wird:

    $ 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. Bringen Sie Ihren Touchscreen-Slave-Zeiger wieder am neuen Master an

    In diesem Beispiel gehe ich davon aus, dass »My Cool ™ Touchscreen« das zu verwendende Gerät ist ( id=14):

    $ xinput reattach 14 15
    

    Dies führt zu Folgendem:

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

Jetzt sollte sich Ihr Touchscreen wie ein einzelnes Zeigegerät verhalten.

Bearbeiten: Um den zweiten Mauszeiger zu entfernen, der für einen Touchscreen eher überflüssig ist, können Sie dieses Tool verwenden, das die XInput2-Erweiterung verwendet, um die Zeiger einzeln zu ändern.

Andreas Wiese
quelle
super, danke: D mein cooles neues Zeigergerät funktioniert! Aber jetzt sehe ich 2 Mäuse auf dem Bildschirm: P
Alko
2
Siehe Bearbeiten. Leider (AFAIK) gibt es kein Standarddienstprogramm, das die vollständige XInput2-API verfügbar macht (die erforderlich ist, um Setups mit mehreren Eingaben zu handhaben und beispielsweise den Cursor einzeln zu wechseln).
Andreas Wiese
@AndreasWiese Danke für die Info, xicursorsetfunktioniert bei mir unter KDE nicht, nichts passiert. Irgendwelche Ideen?
Ayberk Özgür