Как отключить тачпад во время набора текста? На Ubuntu 16.04 syndaemon не работает
Я хочу отключить сенсорную панель во время набора текста. Я попробовал это:
syndaemon -i 1 -d -t -K
Он должен деактивировать нажатие и прокрутку на сенсорной панели на 1 секунду и игнорировать комбинации модификатор + клавиши, но после настройки syndaemon
вроде описано ничего не изменилось. Тачпад всегда активен и очень раздражает.
Я использую Ubuntu 16.04 на Dell Precision 5510.
8 ответов
У вас могут быть запущены два драйвера сенсорной панели, и тогда syndaemon будет взаимодействовать с неправильным драйвером. У меня была такая же проблема на Dell XPS 13, и эта ветка ( http://ubuntuforums.org/showthread.php?t=2316240) помогла мне.
Если вы также видите два устройства с сенсорной панелью, попробуйте отключить одно. Поскольку у вас другой компьютер, приведенные в ссылке инструкции могут быть применимы или не применимы к вам буквально.
Из упомянутого поста процедура такова:
открыть файл /usr/share/X11/xorg.conf.d/51-synaptics-quirks.conf
как root с вашим текстовым редактором Вставьте следующий текст:
# Disable generic Synaptics device, as we're using
# "DLL0704:01 06CB:76AE Touchpad"
# Having multiple touchpad devices running confuses syndaemon
Section "InputClass"
Identifier "SynPS/2 Synaptics TouchPad"
MatchProduct "SynPS/2 Synaptics TouchPad"
MatchIsTouchpad "on"
MatchOS "Linux"
MatchDevicePath "/dev/input/event*"
Option "Ignore" "on"
EndSection
Перезагрузите или перезапустите Xorg с помощью команды sudo systemctl restart lightdm
Кредит переходит к дорогой от ubuntuforums.org.
Начиная с января 2018 года, Dell имеет официальную страницу в своей базе знаний по проблемам Ubuntu Touchpad/Mouse. На странице описывается это исправление для отключения "SynPS/2 Synaptics TouchPad", а также предлагается перейти к libinput, а не к synaptics в качестве драйвера коврика для мыши.
sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator
- Откройте индикатор сенсорной панели и щелкните значок индикатора.
- Вы можете изменить настройки (на вкладке действий), чтобы "отключить сенсорную панель при наборе текста"
Ура!
Я использую Ubuntu 17.10 и пробовал другое решение, предложенное здесь, в основном не работает. Специально для сенсорной панели программного обеспечения при запуске в Ubuntu 17.10 просто отключите тачпад, и я не смог найти способ включить его без перезагрузки ноутбука. теперь я нашел это решение, я думаю, которое все еще сейчас работает довольно хорошо: просто используйте эту команду,
synclient PalmDetect=1
Это, по крайней мере, предотвратит ненужное нажатие ладони на сенсорную панель, что в итоге дает лучшую жизнь.
В Ubuntu 19.04 я обнаружил, что было достаточно (для моих нужд) просто отключить функцию "Tap to Click":
Тем не менее, следствием этого является то, что вам придется использовать кнопки сенсорной панели (надеюсь, у вас есть кнопки), чтобы выполнить щелчок. Для меня это справедливый компромисс.
Хотелось бы, чтобы производитель ноутбуков не делал ноутбуки с неубранными тачпадами. Эти сенсорные панели, которые находятся на одном уровне с клавишами клавиатуры, вместо того, чтобы отступать глубже, очень раздражают меня.
После нескольких месяцев поиска решения я решил написать простую программу на Python для отключения сенсорной панели во время набора текста. Добавление программы в Startup Applications, чтобы она запускалась при каждом запуске компьютера. Вам нужно бежать xinput list
чтобы определить идентификатор вашей клавиатуры, в моем случае это 17.
xinput list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Microsoft Microsoft® Nano Transceiver v1.0 id=11 [slave pointer (2)]
⎜ ↳ Microsoft Microsoft® Nano Transceiver v1.0 id=12 [slave pointer (2)]
⎜ ↳ DLL082A:01 06CB:76AF Touchpad id=14 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=18 [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)]
↳ Power Button id=8 [slave keyboard (3)]
↳ Sleep Button id=9 [slave keyboard (3)]
↳ Microsoft Microsoft® Nano Transceiver v1.0 id=10 [slave keyboard (3)]
↳ Integrated_Webcam_HD id=13 [slave keyboard (3)]
↳ Intel Virtual Button driver id=15 [slave keyboard (3)]
↳ Intel HID events id=16 [slave keyboard (3)]
**↳ AT Translated Set 2 keyboard id=17 [slave keyboard (3)]**
↳ Dell WMI hotkeys id=19 [slave keyboard (3)]
↳ Microsoft Microsoft® Nano Transceiver v1.0 id=20 [slave keyboard (3)]
Вот программа
import time
import subprocess
import threading
def main():
subprocess.call('gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true', shell=True)
p = subprocess.Popen('xinput test 17', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
clickTime = [0, 0]
def checkTime():
keys = [37, 50, 62, 64, 105, 108, 133]
while True:
out = p.stdout.readline()
if len(out) < 1:
break
key = int(out.split()[-1])
if key not in keys:
clickTime[0] = time.time()
t = threading.Thread(target=checkTime)
t.start()
lastTime = 0
touchpad = True
while True:
inactive = time.time() - clickTime[0]
# print ('inactive for', inactive)
if inactive > 1:
if not touchpad:
print ('Enable touchpad')
subprocess.call('gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true', shell=True)
touchpad = True
else:
if touchpad:
print ('Disable touchpad')
subprocess.call('gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click false', shell=True)
touchpad = False
time.sleep(0.5)
retval = p.wait()
if __name__ == '__main__':
main()
Изучив параметры для xinput, я нашел эффективное и простое решение для отключения сенсорной панели Synaptics с помощью Ubuntu 16.04 и Lubuntu 16.04.
В окне терминала дайте себе административный доступ, введя sudo -s и введя свой пароль.
Используя ваш любимый редактор, такой как leafpad или gedit, создайте новый файл скрипта:
leafpad /usr/local/bin/tpadoff
и вставьте следующее:
#!/bin/bash
#/usr/local/bin/tpadoff - turn off touchpad
xinput --disable 'SynPS/2 Synaptics TouchPad'
Сохраните файл и выйдите из редактора. Затем введите команду:
chmod 755 /usr/local/bin/tpadoff
сделать файл исполняемым. Вы можете повторить, чтобы создать файл tpadon, просто измените "--disable" на "--enable".
Когда закончите, выйдите из окна терминала, чтобы отключить доступ администратора.
Записи рабочего стола можно создать, открыв новое окно терминала и используя ваш любимый редактор (в этом примере я снова использую leafpad):
cd Desktop
leafpad tpadoff.desktop
и вставьте следующий текст: [Desktop Entry] Имя =TouchPad Off Комментарий = Отключить Touchpad Exec=/usr/local/bin/tpadoff Terminal=false Тип = Приложение
Сохраните файл и выйдите из редактора. Затем введите следующую команду:
chmod 775 tpadoff.desktop
Вы также можете повторить создание tpadon.desktop, изменив все ссылки "off" на "on".
По завершении у вас будет два способа выключить (и при желании включить) сенсорную панель, дважды щелкнув значок на рабочем столе или введя "tpadoff" в окне терминала.
Если ваша сенсорная панель отличается, вам, возможно, придется использовать "xinput" в окнах терминала, чтобы найти точный синтаксис для вашей сенсорной панели. Затем отредактируйте файл / usr / local / bin / tpadoff, чтобы он соответствовал тому, что сообщил xinput.
Для пользователей Kubuntu...
На Kubuntu 16.04 - чтобы отключить тачпад во время набора текста, мне пришлось снять флажок "Отключить касания и только прокрутку" в настройках-> Устройства ввода-> тачпад-> Включить / отключить тачпад. Это может показаться очевидным, но...
Xubuntu 20.4.1:
- Нажмите на панель запуска меню
- Введите тачпад в поле поиска
- Щелкните мышью и сенсорной панелью
- Установите сенсорную панель в раскрывающемся меню устройства
- Щелкните вкладку Touchpad под раскрывающимся списком Device.
- Установите флажок "Отключить тачпад при вводе текста" в разделе "Общие".
xinput list |
while read line; do
if [[ $line == *Touchpad* ]]; then
tid="$(echo $line | cut -d '=' -f 2 | cut -c 1-2)"
xinput set-prop $tid "Device Enabled" 0
fi
done
или более кратко
xinput list | sed -nre 's/^.*Touchpad.*\sid=(\S+).*$/\1/p' | xargs -I{} -- xinput set-prop {} 'Device Enabled' 0