Как отключить/разрешить/переключить сенсорную панель в ноутбуке Dell

Я пытаюсь настроить сенсорную панель на Ubuntu 16.04, но ни один из обычных методов, кажется, не работает. например.

synclient touchpadOff=1

Это все еще работает!

$ xinput set-prop $DEVICE_ID "Device Enabled" 0
$ xinput list-props 15 |head -n2
  Device 'SynPS/2 Synaptics TouchPad':
    Device Enabled (168):   0

... это все еще работает!

Я могу отключить его из приложения Настроек. но я хочу смочь отобразить это на сочетание клавиш, таким образом, я ищу решение для командной строки.

Бонусные очки, если Вы отвечаете на работы в Shell Gnome, а также Единице :-)

Править: вывод xinput согласно просьбе в комментарии.

$ xinput
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ ELAN Touchscreen                          id=12   [slave  pointer  (2)]
⎜   ↳ DLL06E4:01 06CB:7A13 Touchpad             id=13   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=15   [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)]
    ↳ Video Bus                                 id=8    [slave  keyboard (3)]
    ↳ Power Button                              id=9    [slave  keyboard (3)]
    ↳ Sleep Button                              id=10   [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD                      id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=14   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=16   [slave  keyboard (3)]

Nb. Я использовал 15 для $DEVICE_ID

РЕДАКТИРОВАНИЕ - благодаря ответу ниже вот является моим сценарием переключателя

Можно сделать это в одном лайнере, но этот путь Вы получаете хорошее уведомление, также. Я присоединил это к сочетанию клавиш, и оно работает очарование. Спасибо все.

#!/bin/bash
if xinput list-props 13 | grep "Device Enabled (168):.*1" >/dev/null
then
  xinput disable 13
  notify-send -u low -i mouse "Trackpad disabled"
else
  xinput enable 13
  notify-send -u low -i mouse "Trackpad enabled"
fi
7
задан 29 March 2016 в 08:13

3 ответа

Можно выключить сенсорную панель с этой командой:

xinput disable 13

Включают его назад

xinput enable 13

, устройством не управляют psmouse. Этим управляют synaptics_i2c. И это - устройство 13.

можно также переключить это по имени, когда Вы пытались прежде, не зависеть от идентификатора. Но если Вы не подключаете новые устройства ввода данных, идентификатор должен остаться.

См. этот ответ для некоторых деталей.

Для удаления неправильно обнаруженного устройства необходимо добавить i8042.nopnp параметр начальной загрузки ядра.

9
ответ дан 23 November 2019 в 06:18

Я нахожусь на 16,04 также. Я обычно использующий немного сценария, что я поставил сочетание клавиш. Когда я выполняюсь, это выключает мою сенсорную панель... Но спустя несколько секунд после того, как это включает...

сценарий:

    #!/bin/sh

STATUS=`synclient | grep TouchpadOff | awk '{ print $3}'`

        if [ $STATUS != 1 ];
        then
                synclient touchpadOff=1;
        else
                synclient touchpadOff=2;
        fi
exit 0

я не пытаюсь использовать его, прежде чем я буду видеть Ваш вопрос...

1
ответ дан 23 November 2019 в 06:18

Используя gsettings

Если можно изменить настройки gsettings, обычно это - предпочтительный вариант. Так как можно позволить/запретить сенсорную панель из Параметров настройки системы, и я - вполне уверенные Параметры настройки системы, действительно использует gsettings, похоже, что метод ниже должен сделать задание на Вашем Dell также.

Сценарий для переключения сенсорной панели

14.04

#!/usr/bin/env python3
import subprocess

key = "org.gnome.settings-daemon.peripherals.touchpad" ;val = "touchpad-enabled"
curr = subprocess.check_output(["gsettings", "get", key, val]).decode("utf-8").strip()
newval = "false" if curr == "true" else "true"
subprocess.Popen(["gsettings", "set", key, val, newval])

15.04 +

#!/usr/bin/env python3
import subprocess

key = "org.gnome.desktop.peripherals.touchpad" ;val = "send-events"
curr = subprocess.check_output(["gsettings", "get", key, val]).decode("utf-8").strip()
newval = "disabled" if curr == "'enabled'" else "enabled"
subprocess.Popen(["gsettings", "set", key, val, newval])

Использовать его

  1. Скопируйте сценарий выше, для Вашей корректной версии Ubuntu, в пустой файл, сохраните его как toggle_touchpad.py
  2. Добавьте следующую команду к ярлыку:

    python3 /path/to/toggle_touchpad.py
    

    Выберите: Параметры настройки системы> "Клавиатура"> "Ярлыки"> "Пользовательские Ярлыки". Нажмите "+" и добавьте команду:

    python3 /path/to/toggle_touchpad.py
    

Объяснение

Команда для отключения сенсорной панели:

для 14,04:

gsettings set org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled false

для 15,04 +:

gsettings set org.gnome.desktop.peripherals.touchpad send-events disabled

Считайте текущее состояние

Если мы используем сценарий для чтения текущих настроек командой:

gsettings get org.gnome.settings-daemon.peripherals.touchpad touchpad-enabled

(14.04), или

gsettings get org.gnome.desktop.peripherals.touchpad send-events

(15.04 +)

Мы можем заставить сценарий установить противоположное значение и таким образом переключить сенсорную панель.



Править; версия удара сценария переключателя

Только быть завершенным, и потому что OP, обозначенная python сценарий (сценарии) работал, но не хотел использовать python, bash версия (версии) двух сценариев переключателя:

14.04

#!/bin/bash

key="org.gnome.settings-daemon.peripherals.touchpad"
val="touchpad-enabled" ;curr="$key $val"

if [ "$(gsettings get $curr)" == "false" ]
then
 gsettings set $key $val true
else
 gsettings set $key $val false
fi

15.04 +

#!/bin/bash

key="org.gnome.desktop.peripherals.touchpad"
val="send-events" ;curr="$key $val"

if [ "$(gsettings get $curr)" == "'enabled'" ]
then
 gsettings set $key $val disabled
else
 gsettings set $key $val enabled
fi

Подвергнуть сочетанию клавиш

  • Сохраните сценарий как toggle_touchpad.sh
  • подвергните следующую команду пользовательскому ярлыку:

    /bin/bash /path/to/toggle_touchpad.sh
    
3
ответ дан 23 November 2019 в 06:18

Другие вопросы по тегам:

Похожие вопросы: