Протестировано и работает на Ubuntu 14.04, 16.04 и 18.04.
Вам нравится ответ @Almas Dusal , который похож на ответ @ negusp , за исключением того, что вместо этого используйте мой измененный сценарий, поскольку он имеет 3 дополнительных преимущества ( ОБНОВЛЕНИЕ: ниже добавлены преимущества 1 и 3, 12 сентября 2019 г. ):
- Он ищет выходные данные
xinput
как для Touchpad
AND TouchPad
, так как некоторые системы имеют заглавную букву P, а другие - нет. Это делает мой скрипт совместимым с большим количеством систем (надеюсь, ВСЕ системы).
- Он добавляет 2-секундные автоматически закрывающиеся всплывающие окна
zenity
, чтобы показать, включена ли ваша сенсорная панель в настоящее время или отключена. Смотрите скриншоты этих всплывающих окон ниже.
- Он корректно фиксирует скорость колеса прокрутки, включая
imwheel
(что устраняет проблему с медленным колесом прокрутки в Ubuntu / Linux при использовании колеса прокрутки мыши), когда вы используете мышь, и отключая его imwheel
при использовании сенсорной панели, поскольку в imwheel
противном случае прокрутка сенсорной панели становится по-настоящему глючной. когда включено. Не забудьте раскомментировать соответствующие строки, чтобы сделать эту работу. Пример: # imwheel -b "4 5"
и # killall imwheel
.
#!/bin/bash
# GS_toggle_touchpad.sh
# - toggle the touchpad on and off
# Gabriel Staples
# Written: 2 Apr. 2018
# Updated: 12 Sept. 2019
# References:
# - /ubuntu//a/874865/327339
# - /ubuntu/844151/enable-disable-touchpad/1109515#1109515 <-- my own ans!
# Search for id number of "TouchPad" OR "Touchpad" in `xinput` list; manually type `xinput` to see all your devices
read TouchPadDeviceId <<< $( xinput | sed -nre '/TouchPad|Touchpad/s/.*id=([0-9]*).*/\1/p' )
state=$( xinput list-props "$TouchPadDeviceId" | grep "Device Enabled" | grep -o "[01]$" )
echo "TouchPadDeviceId = $TouchPadDeviceId"
echo "state = $state"
if [ "$state" -eq '1' ];then
xinput --disable "$TouchPadDeviceId"
zenity --info --text "Touchpad DISABLED" --timeout=2
# Next line required only if using imwheel to fix slow scroll speed in Chrome, for ex; see here:
# /ubuntu//a/991680/327339
# imwheel -b "4 5"
else
xinput --enable "$TouchPadDeviceId"
zenity --info --text "Touchpad ENABLED" --timeout=2
# Next line required only if using imwheel to fix slow scroll speed in Chrome, for ex; see here:
# /ubuntu//a/991680/327339
# killall imwheel
fi
Обратите внимание, что функция imwheel требуется только в том случае, если вы следуете этому ответу, чтобы также зафиксировать скорость колеса прокрутки: навсегда исправить скорость прокрутки Chrome .
Теперь назначьте ему комбинацию клавиш Ctrl+ Alt+ P(или что бы вы ни выбрали [в моем случае «P» обозначает touch'P »). Моим дополнением к приведенному выше сценарию является zenity
самозакрывающаяся часть всплывающего окна, которую я опишу более подробно в своем ответе здесь ( /superuser//a/1310142/425838 ).
Теперь, когда я использую ярлык выше, я вижу это всплывающее окно, которое автоматически закрывается через 2 секунды:
И если я нажимаю его снова, я получаю это всплывающее окно, которое автоматически закрывается через 2 секунды:
Отлично!
В качестве дополнительного бонуса, если вы интенсивно пользуетесь мышью, просто добавьте команду, которая вызывает ваш скрипт выше, в ваши программы запуска в Ubuntu, чтобы она запускалась и отключала трекпад каждый раз при запуске компьютера! У меня есть этот набор, так что я могу перестать ударять по трекпаду основанием моей руки и случайно все время удалять! Теперь, когда моя рука ударяется о дорожку, ничего не происходит, потому что она отключена. :)
Примечание: все это прекрасно работает в Ubuntu 18.04, а также в более старых версиях. Я тестировал его в Ubuntu 18.04 и Ubuntu 14.04. Вот скриншот из окна настроек ярлыка от 18.04:
Связанный:
- Навсегда исправить скорость прокрутки Chrome
grep
иsed
. Вы можете легко объединить два кsed -nre '/TouchPad/s/.*id=([0-9]*).*/\1/p'
.