Как отключить драйверы сенсорного экрана?

У меня сенсорный экран, но драйверы не работают должным образом и мешают работе мыши.

Можно ли отключить сенсорный экран, чтобы я снова мог нормально работать?

8 ответов

Решение

Вы можете попробовать отключить устройство ввода с помощью xinput команда. Сначала посмотрите, какие устройства ввода у вас есть, просто наберите:

xinput

И вы должны увидеть список вроде:

$ xinput 
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Atmel Atmel maXTouch Digitizer            id=9    [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=13   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=12   [slave  pointer  (2)]
...

Затем вы можете отключить желаемое устройство ввода с помощью этой команды:

xinput disable 9

Где 9 - идентификатор устройства, которое вы хотите отключить. Вы также можете использовать имя устройства между кавычками.

В xinput версии 1.5.99.1 вам нужно сделать xinput set-prop 9 'Device Enabled' 0 вместо. Как ни странно на xinput v1.6.2 первый способ работы.

xinput Решение не работает для меня. Я вместо этого следовал инструкциям в этой теме. Это отключит его во время загрузки.

  1. редактировать /usr/share/X11/xorg.conf.d/10-evdev.conf
  2. добавлять Option "Ignore" "on" до конца раздела с touchscreen идентификатор
  3. перезагружать

  • Для записи (Google) у меня есть Samsung Series 7, и мой сенсорный экран был указан как ELAN Touchscreen в xinput,
  • JFTR тоже в этом вопросе говорит, что разница в потребляемой мощности в основном незначительна.

Изменить файл файл с

sudo nano /usr/share/X11/xorg.conf.d/10-evdev.conf

Измените MatchIsTouchscreen с "on" на "off" в разделе "Сенсорный экран", чтобы он выглядел следующим образом:

Section "InputClass"
    Identifier "evdev touchscreen catchall"
    MatchIsTouchscreen "off"
    MatchDevicePath "/dev/input/event*"
    Driver "evdev"
    EndSection

Сохранить, имя и выход

Сенсорный экран отключен и больше не определяется в списке xinput.

Чтобы отключить сенсорный экран в Ubuntu 19.x и 20.x, вы можете:

  • Подождите экран входа
  • Нажмите Alt+F2
  • Отредактируйте конфигурацию «libinput» и отключите раздел сенсорного экрана, например:
      sudo nano /usr/share/X11/xorg.conf.d/40-libinput.conf 
      # Match on all types of devices but joysticks
#
# If you want to configure your devices, do not copy this file.
# Instead, use a config snippet that contains something like this:
#
# Section "InputClass"
#   Identifier "something or other"
#   MatchDriver "libinput"
#
#   MatchIsTouchpad "on"
#   ... other Match directives ...
#   Option "someoption" "value"
# EndSection
#
# This applies the option any libinput device also matched by the other
# directives. See the xorg.conf(5) man page for more info on
# matching devices.

Section "InputClass"
        Identifier "libinput pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Section "InputClass"
        Identifier "libinput keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Section "InputClass"
        Identifier "libinput touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

#Section "InputClass"                               <----
#        Identifier "libinput touchscreen catchall" <---- this one
#        MatchIsTouchscreen "on"                    <---- put # in
#        MatchDevicePath "/dev/input/event*"        <---- front of
#        Driver "libinput"                          <---- every line
#EndSection                                         <----   

Section "InputClass"
        Identifier "libinput tablet catchall"
        MatchIsTablet "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
EndSection

Мой сенсорный экран "Dell Inspiron" сломался. Курсор двигался повсюду и щелкал в случайных местах несколько раз в секунду. Я не смог даже войти в гном или даже получить доступ к биосу.

В качестве идентификатора изменений xinput при перезагрузке я добавил простой однострочный экран при загрузке сеанса:

#!/bin/bash
xinput --list | awk '/Atmel Atmel maXTouch Digitizer/ {print $7}' | awk '{split($0,a,"="); print a[2]}' | xargs xinput disable

Мое устройство называется "Atmel Atmel maXTouch Digitizer", измените его на своем устройстве (используйте xinput --list для имени устройства).

Если ваш сенсорный экран представляет собой экран сенсорной панели, такой как монитор USB, вы можете добавить драйвер ядра по умолчанию usbtouchscreen в файл черного списка modprobe (/etc/modprobe.d/blacklist.conf) и использовать свой собственный драйвер, такой как touchkit или же evtouch,

Чтобы отключить сенсорный экран в Ubuntu (Xorg или Xwayland), вы можете:

  • Дождитесь экрана входа в систему;
  • Нажмите Alt+F3, чтобы открыть консоль;
  • Найдите правильный идентификатор устройства
  • Отредактируйте /etc/rc.local, чтобы отключить устройство с сенсорным экраном;
  • Сделайте /etc/rc.local исполняемым и перезагрузитесь.
      $ cd /sys/bus/hid/drivers/hid-multitouch
$ ls -1
  0003:2A94:5241.0006         <- my touchscreen
  0018:06CB:7621.0001         <- my touchpad
  bind
  (...)

затем проверьте это:

      $ sudo bash
$ cd /sys/bus/hid/drivers/hid-multitouch
$ echo "0003:2A94:5241.0006" > unbind
$ killall -9 Xorg

Настройте rc.local, чтобы отключить его при запуске:

      $ sudo nano /etc/rc.local
  #!/bin/sh
  ls -1 /sys/bus/hid/drivers/hid-multitouch | grep 0003:2A94:5241 > /sys/bus/hid/drivers/hid-multitouch/unbind
$ sudo chmod +x /etc.rc.local
$ reboot

Я поступил так, потому что:

  • Другие мои мультитач-устройства не ломаются;
  • Он проще и работает на Xorg и Xwayland;
  • Последние 4 цифры устройства часто меняются при загрузке, поэтому мне нужно решение, которое находит правильное устройство на основе простого правила;
  • Сенсорный экран моего Dell Inspiron 5557 сломан таким образом, что я не могу получить доступ к BIOS или использовать графическую среду, поэтому мне нужно было консольное решение.

Как показывает ответ @romaia,xinput действительно правильный способ сделать это.

Однако мне нравится писать сценарий и прикреплять вызов этого сценария к сочетанию клавиш Ctrl+ Alt+ P, чтобы сделать это очень просто. Теперь я получаю такое автоматически закрывающееся окно, когда использую этот ярлык в первый раз:

... и если я снова воспользуюсь ярлыком:

Ах, красиво! Теперь я могу легко включить / отключить тачпад или сенсорный экран, а также исправить скорость прокрутки мыши, и все это с помощью одного удобного сочетания клавиш!

Загрузите последнюю версию этого скрипта здесь: https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/blob/master/toggle_touchpad.sh.

Вот его снимок на данный момент:

#!/bin/bash

# This file is part of eRCaGuy_dotfiles: https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles

# toggle_touchpad.sh
# - toggle the touchpad & touchscreen on and off, and enable/disable imwheel to fix scroll speed when using a mouse
#   instead of the touchpad

# Gabriel Staples
# Started: 2 Apr. 2018 
# Update History (newest on TOP): 
#   28 Jan. 2020 - added in lines to disable Touchscreen too, as well as show ID numbers of 
#                  Touchscreen & Touchpad
#   22 June 2019 - added in the imwheel stuff to not mess up track pad scrolling when
#                  track pad is in use

# References (in order of progression):
# 1. negusp described xinput: https://Ask-ubuntu.ru/questions/844151/enable-disable-touchpad/844218#844218
# 2. Almas Dusal does some fancy sed stuff & turns negusp's answer into a script: https://Ask-ubuntu.ru/questions/844151/enable-disable-touchpad/874865#874865
# 3. I turn it into a beter script, attach it to a Ctrl + Alt + P shortcut, & do a zenity GUI popup window as well:
#    https://Ask-ubuntu.ru/questions/844151/enable-disable-touchpad/1109515#1109515
# 4. I add imwheel to my script to also fix Chrome mouse scroll wheel speed problem at the same time:
#    https://Ask-ubuntu.ru/questions/254367/permanently-fix-chrome-scroll-speed/991680#991680
# 5. I put this script on Github, and posted a snapshot of it on this answer here: 
#    https://Ask-ubuntu.ru/questions/198572/how-do-i-disable-the-touchscreen-drivers/1206493#1206493 

# `xinput` search strings for these devices
# - Manually run `xinput` on your PC, look at the output, and adjust these search strings as necessary for your 
#   particular hardware and machine!
TOUCHPAD_STR="TouchPad"
TOUCHSCREEN_STR="Touchscreen"

read TouchpadId <<< $( xinput | sed -nre "/${TOUCHPAD_STR}/s/.*id=([0-9]*).*/\1/p" )
read TouchscreenId <<< $( xinput | sed -nre "/${TOUCHSCREEN_STR}/s/.*id=([0-9]*).*/\1/p" )
echo "TouchpadId = $TouchpadId" # Debug print
echo "TouchscreenId = $TouchscreenId" # Debug print

state=$( xinput list-props "$TouchpadId" | grep "Device Enabled" | grep -o "[01]$" )

PRINT_TEXT="Touchpad (ID $TouchpadId) &amp; Touchscreen (ID $TouchscreenId) "
if [ "$state" -eq '1' ];then
    imwheel -b "4 5" # helps mouse wheel scroll speed be better
    xinput --disable "$TouchpadId"
    xinput --disable "$TouchscreenId"
    zenity --info --text "${PRINT_TEXT} DISABLED" --timeout=2
else
    killall imwheel # helps track pad scrolling not be messed up by imwheel
    xinput --enable "$TouchpadId"
    xinput --enable "$TouchscreenId"
    zenity --info --text "${PRINT_TEXT} ENABLED" --timeout=2
fi

Список литературы (в порядке возрастания):

  1. negusp описал xinput: Включение / отключение тачпада
  2. Алмас Дусал делает какие-то причудливые вещи в sed и превращает ответ negusp в скрипт: Включить / отключить тачпад
  3. Я превращаю его в сценарий beter, прикрепляю к сочетанию клавиш Ctrl + Alt + P и также создаю всплывающее окно графического интерфейса zenity: Включить / отключить тачпад
  4. Я добавляю imwheel в свой скрипт, чтобы одновременно исправить проблему со скоростью колеса прокрутки мыши Chrome: навсегда исправить скорость прокрутки Chrome
  5. Я разместил этот скрипт на Github и разместил его снимок в этом ответе здесь: Как отключить драйверы сенсорного экрана?
  6. Получите последнюю версию этого скрипта здесь! https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/blob/master/toggle_touchpad.sh
Другие вопросы по тегам