Сенсорный экран и мышь как отдельные входы?

10

Может кто-нибудь дать мне хороший совет о том, как этого добиться, или просто сказать, как это делается? Google на самом деле мне здесь не помогает, так как всегда пытается дать мне рекомендации по сенсорной панели: /

Alko
источник

Ответы:

9

Пока ваш сенсорный экран определяется как скучное устройство ввода, вы можете сделать это с помощью 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 для индивидуального изменения указателей.

Андреас Визе
источник
офигенно, спасибо: D Мой крутой новый указатель устройства работает! Но теперь я вижу 2 мыши на экране: P
Alko
2
Смотрите Редактировать. К сожалению (AFAIK) нет стандартной утилиты, которая предоставляет полный XInput2-API (который необходим для обработки настроек с несколькими входами и выполнения таких операций, как смена отдельных курсоров).
Андреас Визе
@AndreasWiese Спасибо за информацию, xicursorsetу меня не работает в KDE, ничего не происходит. Есть идеи?
Айберк Озгюр