Как отключить тачпад?
Я хочу, чтобы моя сенсорная панель была отключена при использовании мыши. Как я могу это сделать?touchpad-indicator
перестал работать на 11.10. Раньше работал 11.04. Gnome3 не является решением, так как мне это не нравится, и я нахожу его глючным.
33 ответа
Запустите следующую команду в терминале:
xinput list
Вы получите вывод, который выглядит следующим образом:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=12 [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)]
↳ Laptop_Integrated_Webcam_1.3M id=10 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
↳ Dell WMI hotkeys id=13 [slave keyboard (3)]
Он отображает все подключенные устройства ввода. Обратите внимание, что все они имеют идентификатор. Поскольку 12 является идентификатором для моей сенсорной панели, выполнение следующей команды отключит его.
xinput set-prop 12 "Device Enabled" 0
В версиях Ubuntu >12.04
Вы также можете напрямую отключить через
xinput --disable 12
(и включить с помощью аналогичной команды)
- Поиск мышки
- Нажмите на мышь и тачпад
- Нажмите кнопку включения / выключения справа от настроек сенсорной панели.
Проверить эту ссылку: Как отключить-включить тачпад в Ubuntu 11.10
Найденный ответ действительно опрятен:
sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator
После этого вы получите переключатель в области уведомлений.
Единственное, что мне хотелось бы, - это установить клавишу Fn+F8 (это тачпад на клавиатуре...
Основываясь на ответе @Peng Wu, я создал скрипт bash, который можно использовать...
#!/bin/bash
declare -i ID
ID=`xinput list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}'`
xinput set-prop $ID "Device Enabled" 0
echo 'Touchpad has been disabled.'
Вы можете запустить его вручную или запустить при запуске. Затем вы можете запустить скрипт при загрузке.
Еще один скрипт bash для переключения сенсорной панели:
#!/bin/bash
declare -i ID
ID=`xinput list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}'`
declare -i STATE
STATE=`xinput list-props $ID|grep 'Device Enabled'|awk '{print $4}'`
if [ $STATE -eq 1 ]
then
xinput disable $ID
echo "Touchpad disabled."
else
xinput enable $ID
echo "Touchpad enabled."
fi
Просто в терминале:
synclient TouchpadOff=1
Однако вышеперечисленное, похоже, больше не работает в Ubuntu 16.04. В этом случае, то xinput
еще работает:
xinput set-prop `xinput --list | awk '/[Tt]ouch[Pp]ad.*pointer/ {print $7}' | sed 's/id=\(.*\)/\1/'` "Device Enabled" 0
ОБНОВЛЕННОЕ РЕШЕНИЕ:
Вместо xinput
с переменными id, которые могут меняться, лучше использовать synclient
как указано в других ответах, как это.
sudo apt install xserver-xorg-input-synaptics
Чтобы отключить сенсорную панель:
synclient TouchpadOff=1
Включать:
synclient TouchpadOff=0
Для использования с пусковыми установками или ярлыками, как указано ниже.
Это всего лишь применение команд в этом ответе под настоящим вопросом. Приведенное ниже решение ограничено Xfce/ Xubuntu, но, хотя я сделал это случайно, я нахожу его слишком элегантным, не слишком делиться им здесь. Итак, я изначально создал отдельный вопрос, только для Xubuntu. Этот вопрос не может не быть дубликатом этого вопроса и может быть закрыт по этой причине, поэтому я осмелюсь опубликовать этот ответ здесь.
Это об этих двух командах:
Отключение:
xinput set-prop 15 "Device Enabled" 0
Включить:
xinput set-prop 15 "Device Enabled" 1
Идентификационный номер будет найден при запуске
xinput list
Это способ автоматического отключения сенсорной панели при запуске. Этот метод позволяет более безопасно отключить панель по имени, а не по идентификатору. Вот как узнать название вашей сенсорной панели:
$ xinput list --name-only | grep -i Touchpad
ETPS/2 Elantech Touchpad
Создайте файл сценария bash. Я добавил файл в Ubuntu Startup Applications, чтобы он запускался при каждом перезапуске. Не забудьте сделать файл исполняемым. Вот содержимое:
#!/bin/bash
$ xinput disable 'ETPS/2 Elantech Touchpad'
Я использую следующий скрипт для включения / выключения сенсорной панели. Я также назначил это сочетанию клавиш.
Использование: toggle_touchpad.sh [on|off
]
если вы запускаете без аргументов, он просто инвертирует текущее состояние сенсорной панели.
#!/bin/bash
# toggle_touchpad.sh
is_off=`synclient | grep -Pio "TouchpadOff.*?(\d)" | grep -Eo "[01]"`
if [ -z "$1" ]; then
echo "Inverting touchpad state"
if [ "$is_off" -eq '0' ];then
synclient TouchpadOff=1
notify-send "Touchpad Disabled"
else
synclient TouchpadOff=0
notify-send "Touchpad Enabled"
fi
else
if [ "$1" == "on" ]; then
echo "Turning on touchpad"
synclient TouchpadOff=0
notify-send "Touchpad Enabled"
elif [ "$1" == "off" ]; then
echo "Turning off touchpad"
synclient TouchpadOff=1
notify-send "Touchpad Disabled"
else
echo "Unknown arg! Pass no args or on/off !"
fi
fi
В моем случае сочетание клавиш Fn + F9 отображается на переключатель тачпада.
Но клавиша ничего не делает, просто показывает значок сенсорной панели в правой верхней части экрана, как это.
Вот решение для переключения сенсорной панели простым нажатием на ярлык.
1. Получение идентификатора вашей сенсорной панели
$ xinput list
2. Написание скрипта для переключения тачпада
Итак, я получил файл сценария bash для переключения сенсорной панели с помощью команды xinput (оригинальный сценарий можно найти здесь).
В моем случае идентификатор сенсорной панели был 12.
#!/bin/bash
device=12
state=`xinput list-props "$device" | grep "Device Enabled" | grep -o "[01]$"`
if [ "$state" -eq '1' ];then
xinput --disable "$device"
else
xinput --enable "$device"
fi
Сохраните приведенный выше файл скрипта как .toggleTouchPad.sh
где вы хотите.
3. Сочетание клавиш для запуска скрипта
И последний шаг - добавление сочетания клавиш для запуска файла скрипта.
Так что просто пиши sh /PATH/TO/SCRIPT
в Command
вашего окна быстрого доступа.
4. Попробуйте ярлык
Нажмите ярлык и проверьте, не переключена ли сенсорная панель.
Он работал на ноутбуке ASUS A556UA и на Ubuntu14.04 x64.
Вещи, которые будут улучшены.
- назначение переключателя тачпада вышеупомянутому пользовательскому ярлыку не будет работать
- он просто показывает значок сенсорной панели в правой верхней части экрана
- поэтому мне пришлось назначить другую клавишу (super + F9) вместо клавиши переключения сенсорной панели (fn + F9).
Пожалуйста, предложите способ назначения сенсорной кнопки на собственное сочетание клавиш для полного решения.
Это сработало для меня в 11.10:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=12 [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)]
↳ Laptop_Integrated_Webcam_1.3M id=10 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
↳ Dell WMI hotkeys id=13 [slave keyboard (3)]
Он отображает все подключенные устройства ввода. Обратите внимание, что все они имеют идентификатор. Поскольку 12 является идентификатором для моей сенсорной панели, выполнение следующей команды отключит его.
xinput set-prop 12 "Device Enabled" 0
и я бы положил его в.bashrc или что-то еще, за исключением того, что я не уверен, что устройство 12 (на самом деле 11 для меня) всегда тачпад.
Теперь, если бы я мог просто заставить стрелку вверх наутилиуса работать и посмотреть.dirs
Определить сочетания клавиш
(этот ответ был скопирован из неверного редактирования)
Вместо того, чтобы запоминать эту команду каждый раз, когда вы хотите включить / отключить сенсорную панель, вы можете вместо этого добавить ее в качестве сочетания клавиш.
Под настройками в сочетаниях клавиш нажмите "Добавить". Дайте имя ярлыку, например "Отключить сенсорную панель" или что-то в этом роде, и добавьте команду, которую вы обнаружили выше.
xinput set-prop <id> "Device Enabled" 0
и нажмите применить. Затем добавьте еще один ярлык под названием "Включить сенсорную панель" или что-то похожее на первый и измените предыдущую команду на 1 в конце
xinput set-prop <id> "Device Enabled" 1
те выключены / включены соответственно.
Теперь, когда они добавлены, нажмите на столбец "Включить ярлык сенсорной панели" (должен быть "отключен") и введите желаемое сочетание клавиш, я выбрал Win+1 (удерживайте клавишу Windows и нажмите цифру 1). Сделайте то же самое для Disable Touchpad, я выбрал Win+2.
Теперь Win+1 включает мою сенсорную панель, а Win+2 отключает ее.
Для Ubuntu 16.04
Для отключения сенсорной панели:
xinput --disable $(xinput --list | grep -i 'touchpad' | grep -o 'id=[0-9]*' | sed 's/id=//')
и для включения сенсорной панели:
xinput --enable $(xinput --list | grep -i 'touchpad' | grep -o 'id=[0-9]*' | sed 's/id=//')
Сначала проверьте, есть ли на вашем ноутбуке возможность включения / выключения сочетания клавиш сенсорной панели, случайно! На моем Lenovo Thinkpad T500 это Fn+F8
https://bitbucket.org/barseghyanartur/xinput
Это очень маленький код, который позволяет вам отключить / включить сенсорную панель от терминала.
Просто следуйте инструкциям ниже:
Установка:
$ pip install xinput
Отключить сенсорную панель:
$ disable-touchpad
Включить тачпад:
$ enable-touchpad
На самом деле очень просто отключить тачпад в Ubuntu. Просто удалите пакет xserver-xorg-input-synaptics
что требуется для использования сенсорных панелей в Ubuntu!
sudo apt-get remove xserver-xorg-input-synaptics
Это единственный способ навсегда отключить тачпад, который работал для меня. Другие способы были только временными:
xinput list
xinput set-prop IDOFTOUCHPAD "Device Enabled" 0
synclient TouchpadOff=1
Я использую LXDE и не смог автоматически отключить тачпад, добавив эти строки в ~/.config/lxsession/LXDE/autostart
или же /etc/xdg/lxsession/LXDE/autostart
с @
-префикс. Это было просто проигнорировано.
И я попытался отключить тачпад с помощью dconf-editor (org.gnome.desktop.peripherals.touchpad) и gconf-editor (desktop.gnome.peripherals.TOUCHPADNAME), но оба не работали. Настройки в dconf-editor вообще не влияют, а в gconf-editor отображается сообщение об ошибке "Этот ключ не имеет схемы".
Установить приложение Юпитер. Вы можете отключить тачпад с ним, и он запоминается. Это сработало для меня и на Lenovo IdeaPad, и на ThinkPad 11.04, 11.10 и 12.04.
Просто добавьте пару функций bash в ваш.bashrc, чтобы переключиться...
#toggle-touchpad on|off
function touchpadon { /usr/bin/xinput --enable $(xinput --list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}') ; echo "touchpad enabled";}
function touchpadoff { /usr/bin/xinput --disable $(xinput --list | grep -Eo 'TouchPad\s*id\=[0-9]{1,2}' | grep -Eo '[0-9]{1,2}') ; echo "touchpad disabled";}
Я попытался использовать функциональную клавишу ноутбука (Fn), чтобы отключить указатель, и он работает. Это не сработало в течение моих 11.04 дней, так что попробуйте.
Как это часто бывает, это не одна проблема, а две.
Итак, сначала мы получаем идентификатор тачпада.
Затем мы можем отключить и включить этот идентификатор.
# Get the touchpad's id.
touchpad_id=$(
xinput list |
grep Touchpad |
grep -E -o id=[0-9]* |
grep -o [0-9]* \
;
);
# Enable.
xinput --enable ${touchpad_id};
# Disable.
xinput --disable ${touchpad_id};
Если на клавиатуре вашего ноутбука нет специальной функциональной клавиши включения / выключения сенсорной панели, возможно, вы найдете виртуальную клавиатуру на экране, которая имитирует ее (хотя я не нашел ее).
Если не считать этого, это хорошо работает:
sudo apt-get install gpointing-device-settings
Я нашел хорошее решение создания привязки клавиш, которая будет вызывать команду:
xdotool key 199
где 199 - это код клавиши, распознаваемый как XF86TouchpadToggle. Таким образом, можно выбрать комбинацию клавиш по своему выбору, чтобы вести себя как специальная клавиша. Некоторые ноутбуки вынуждены переключать тачпад, поскольку настольные среды, такие как Mate или Cinnamon, прекрасно справляются с этим. Вы можете проверить коды клавиш с помощью этой команды:
xmodmap -pke
Я создал инструкции в своем блоге: https://artofcode.wordpress.com/2017/10/01/how-to-add-a-key-binding-to-toggle-a-touchpad-under-linux/
Мое решение - следующий скрипт tp:
#!/bin/bash
TT=`xinput --list | grep -i touchpad | sed -e "
s/(//
s/)//
s/ //g
"`
set $TT
(( $2 ))
xinput list | grep -iq mouse &&{
xinput --disable $id
}||{
xinput --enable $id
}
Сенсорная панель отключается, если мышь обнаружена, и включается, если нет.
Идентификатор тачпада определяется сценарием.
Что у меня сработало на Ubuntu 12.04 LTS с ноутбуком Dell
Я хотел отключить указатель, который находится в середине клавиатуры и создает много проблем при наборе текста. Так:
$ xinput list
⎡ Virtual core pointer id=2
⎜ ↳ Virtual core XTEST pointer id=4
⎜ ↳ Wacom Graphire2 4x5 eraser id=9
⎜ ↳ Wacom Graphire2 4x5 cursor id=10
⎜ ↳ Wacom Graphire2 4x5 id=11
⎜ ↳ AlpsPS/2 ALPS DualPoint TouchPad id=14
⎜ ↳ Macintosh mouse button emulation id=15
⎜ ↳ DualPoint Stick id=13
⎣ Virtual core keyboard id=3
↳ Virtual core XTEST keyboard id=5
↳ Video Bus id=6
↳ Power Button id=7
↳ Sleep Button id=8
↳ AT Translated Set 2 keyboard id=12
The device I want to disable has id 13. Use xinput to list its properties:
$ xinput -list-props 13
Device 'DualPoint Stick':
Device Enabled (115): 0
[...several lines removed...]
$ xinput -set-prop 13 115 0
Это отключило карту Dualpoint. Но ни один из других ответов не работал для меня. я сделал
устанавливать dconf-tools
:
sudo apt-get install dconf-tools
dconf-editor
Затем перейдите в org -> gnome -> settings-daemon -> Периферия -> сенсорная панель и снимите флажок с сенсорной панелью
Итак, объединив ответы Кшиштофа Томашевского и JaeJun LEE, я пришел к этому решению.
Создайте следующее toggleTouchPad.sh
Сценарий и сохраните его в любом месте:
#!/bin/bash
device=14
state=`xinput list-props "$device" | grep "Device Enabled" | grep -o "[01]$"`
if [ "$state" -eq '1' ];then
xinput --disable "$device" && sleep 1 && xdotool key 201
else
xinput --enable "$device" && sleep 1 && xdotool key 200
fi
где 14 - твой TouchDevice Id (см . ответ JaeJun LEE)
Зайдите в Настройки Ubuntu -> Устройства -> Клавиатура
В конце списка нажмите на
+
добавить новый пользовательский ярлыкНазови это
Toggle Touchpad
, с командованием/path/to/.toggleTouchPad.sh
и любую комбинацию клавиш, которую вы хотите (я только что выбрал Super + F7).
Теперь, когда вы нажимаете выбранную комбинацию клавиш, она не только переключает сенсорную панель, но и отображает значок уведомления благодаря xdotool
Чтобы отключить среднюю палку моей dell latitude, я поставил это на.profile Ubuntu, чтобы каждый раз, когда я запускаю / перезагружаю свой ноутбук, он отключал этот ввод.
Я использовал --id-only
чтобы избежать несоответствия в grep
declare -i ID
ID=`xinput list --id-only 'AlpsPS/2 ALPS DualPoint Stick' | grep -Eo '[0-9]{1,2$
declare -i STATE
STATE=`xinput list-props $ID|grep 'Device Enabled'|awk '{print $4}'`
if [ $STATE -eq 1 ]
then
echo "id" $ID
xinput disable $ID
echo "Touchpad disabled."
else
echo "id" $ID
xinput enable $ID
echo "Touchpad enabled."
fi
Этот метод работает, но я не могу использовать кнопку "выиграть". Поэтому я использовал CtrlF1 & F2 для этого.
В настоящее время мой ноутбук работает под управлением Ubuntu 14.04LTS.
О, нужно выяснить xinput < id >
с помощью команды ниже. Для Ubuntu 14.04 это "SynPS/2 Synaptics TouchPad"
xinput list
SynPS/2 Synaptics TouchPad id=###
Сначала используйте список xinput для получения имени базового устройства вашей сенсорной панели... затем добавьте команду xinput disable с полным именем устройства (в двойных кавычках, чтобы принять пробел) в файл ~/.bashrc (т.е. отключение xinput "SynPS/2 Synaptics TouchPad") вышеприведенные скрипты оказались очень удачными.
Я попробовал все предыдущие ответы здесь безуспешно.
То, что работало для меня на Ubuntu 16.10, было
killall syndaemon
syndaemon -i 1 -KRd
Вы можете изменить значение от 1 до 0,5.
Альтернативное решение, которое работает для всех сенсорных панелей, без идентификатора.
откройте терминал и напишите "gedit toggle_touchpad.sh"
#!/bin/bash
condition="$(gsettings get org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled)"
if [ "$condition" == "false" ]; then
gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled true
elif [ "$condition" == "true" ]; then
gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled false
fi
Сохраните файл и выйдите. Теперь у вас есть файл с именем "toggle_touchpad.sh"
Запустите команду chmod +x toggle_touchpad.sh
сделать файл исполняемым.
Поместите файл в любую папку, которая вам нравится. Предположим, что у вас это есть в папке /home/username/myscripts/.
Из меню в правом верхнем углу перейдите к system-settings->keyboard->shortcuts->custom-shortcuts
,
Создайте новый ярлык и введите в качестве имени все, что вы хотите. Поставить как команду /home<username>;/myscripts/toggle_touchpad.sh
где "username" - это ваше имя пользователя
Назначьте любую комбинацию клавиш по вашему желанию.
Готовы:)
PS Лично я положил файл в /opt/myscripts/
папку, но, чтобы поместить ее туда, вы должны выполнить следующие команды после создания файла:
sudo mkdir /opt/myscripts/
sudo mv toggle_touchpad.sh /opt/myscripts/
sudo chown <username>:<username> /opt/myscripts/toggle_touchpad.sh
chmod +x /opt/myscripts/toggle_touchpad.sh
где "username" - это ваше имя пользователя
Затем, когда вы создадите ярлык, вы будете использовать путь "/opt/myscripts/toggle_touchpad.sh" вместо указанного выше
Альтернатива: использование
awk
и
xbindkeys
(автоматическое определение)
Сначала добавьте
touchpad_toggle
сценарий в вашем
~/bin
каталог:
#!/bin/bash
tpad_device=`xinput list | grep Touchpad | awk '{print $6}' | sed -e 's/id=//'`
tpad_enable=`xinput --list-props $tpad_device | grep 'Device Enable' | awk '{print $4}'`
if [ "$tpad_enable" == "1" ]; then
xinput --disable $tpad_device
elif [ "$tpad_enable" == "0" ]; then
xinput --enable $tpad_device
else
echo "!WARNNING touchpad device not found!"
fi
В твоем
~/.xbindkeysrc
Добавить:
#touchpad_toggle
"touchpad_toggle"
m:0x0 + c:199
XF86TouchpadToggle