Как отключить тачпад?

Я хочу, чтобы моя сенсорная панель была отключена при использовании мыши. Как я могу это сделать?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

(и включить с помощью аналогичной команды)

  1. Поиск мышки
  2. Нажмите на мышь и тачпад
  3. Нажмите кнопку включения / выключения справа от настроек сенсорной панели.

первый шаг

введите описание здесь

Проверить эту ссылку: Как отключить-включить тачпад в 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)

  1. Зайдите в Настройки Ubuntu -> Устройства -> Клавиатура

  2. В конце списка нажмите на + добавить новый пользовательский ярлык

  3. Назови это 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 
Другие вопросы по тегам