Ekran dotykowy i mysz jako osobne wejścia?

10

Czy ktoś może mi dać dobre wskazówki, jak to osiągnąć, lub po prostu powiedzieć, jak to zrobić? Google tak naprawdę mi tu nie pomaga, ponieważ zawsze stara się udzielać rekomendacji na touchpadzie: /

Alko
źródło

Odpowiedzi:

9

Tak długo, jak ekran dotykowy jest wykrywany jako nudne urządzenie wejściowe, możesz to zrobić za pomocą xinput. To narzędzie pozwala zdefiniować nowe wskaźniki główne (wirtualny wskaźnik, który przypomina jeden wskaźnik myszy) oraz odłączyć i dołączyć wskaźniki podrzędne (rzeczywiste urządzenia sprzętowe) od niego i do niego.

Więc wszystko, co musisz zrobić, to

  1. utwórz nowy wskaźnik główny
  2. ponownie podłącz ekran dotykowy do tego nowego wskaźnika głównego

Odbywa się to podobnie do tego:

  1. Utwórz nowy wskaźnik główny:

    $ xinput create master touchy
    

    W ten sposób tworzona jest nowa para główna klawiatura / wskaźnik, w której klawiatura nosi nazwę »klawiatura dotykowa«, a wskaźnik »klawiatura dotykowa«:

    $ 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. Podłącz wskaźnik niewolnika ekranu dotykowego do nowego urządzenia nadrzędnego

    W tym przykładzie założę, że »My Cool ™ Touchscreen« jest urządzeniem, którego należy użyć ( id=14):

    $ xinput reattach 14 15
    

    Spowoduje to:

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

Teraz ekran dotykowy powinien działać jak pojedyncze urządzenie wskazujące.

Edycja: Aby pozbyć się drugiego wskaźnika myszy, który jest zbyteczny dla ekranu dotykowego, możesz użyć tego narzędzia, które wykorzystuje rozszerzenie XInput2 do indywidualnej zmiany wskaźników.

Andreas Wiese
źródło
super, dzięki: D my Cool nowe urządzenie wskaźnikowe działa! Ale teraz widzę 2 myszy na ekranie: P
Alko
2
Zobacz Edycja. Niestety (AFAIK) nie ma standardowego narzędzia, które udostępnia pełny interfejs XInput2-API (który jest wymagany do obsługi konfiguracji z wieloma wejściami i wykonywania takich czynności, jak zmiana indywidualnych kursorów).
Andreas Wiese
@AndreasWiese Dzięki za informacje, xicursorsetnie działa dla mnie w KDE, nic się nie dzieje. Jakieś pomysły?
Ayberk Özgür