Как отключить драйверы сенсорного экрана?
У меня сенсорный экран, но драйверы не работают должным образом и мешают работе мыши.
Можно ли отключить сенсорный экран, чтобы я снова мог нормально работать?
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
Решение не работает для меня. Я вместо этого следовал инструкциям в этой теме. Это отключит его во время загрузки.
- редактировать
/usr/share/X11/xorg.conf.d/10-evdev.conf
- добавлять
Option "Ignore" "on"
до конца раздела сtouchscreen
идентификатор - перезагружать
- Для записи (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) & 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
Список литературы (в порядке возрастания):
- negusp описал xinput: Включение / отключение тачпада
- Алмас Дусал делает какие-то причудливые вещи в sed и превращает ответ negusp в скрипт: Включить / отключить тачпад
- Я превращаю его в сценарий beter, прикрепляю к сочетанию клавиш Ctrl + Alt + P и также создаю всплывающее окно графического интерфейса zenity: Включить / отключить тачпад
- Я добавляю imwheel в свой скрипт, чтобы одновременно исправить проблему со скоростью колеса прокрутки мыши Chrome: навсегда исправить скорость прокрутки Chrome
- Я разместил этот скрипт на Github и разместил его снимок в этом ответе здесь: Как отключить драйверы сенсорного экрана?
- Получите последнюю версию этого скрипта здесь! https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/blob/master/toggle_touchpad.sh