Позвольте/запретите сенсорную панель

Мне удалось установить Ubuntu 16.04 на моем asus ux501 vw, но часть моего ярлыка не работает. Я не надеюсь фиксировать их всех, но всего один: ярлык, которые позволяют мне включать или отключать сенсорную панель, таким образом, я могу записать длинные документы с работой о сенсорной панели.

Я пытался найти его на Google, но я ничего не получил.

Кто-то может объяснить меня, как зафиксировать это? Спасибо!

16
задан 1 November 2016 в 04:06

8 ответов

Я создал этот сценарий удара от ответ negusp. Это находит и переключает устройство TouchPad. Можно настроить пользовательский ярлык на него в параметрах настройки системы.

#!/bin/bash

read TPdevice <<< $( xinput | sed -nre '/TouchPad|Touchpad/s/.*id=([0-9]*).*/\1/p' )
state=$( xinput list-props "$TPdevice" | grep "Device Enabled" | grep -o "[01]$" )

if [ "$state" -eq '1' ];then
    xinput --disable "$TPdevice" && notify-send -i emblem-nowrite "Touchpad" "Disabled"
else
    xinput --enable "$TPdevice" && notify-send -i input-touchpad "Touchpad" "Enabled"
fi

я устанавливаю Ctrl + Сдвиг + F9 для сенсорной панели переключателя включает и отключает как это:

enter image description here

Редактирование: Вы, возможно, должны сделать свой сценарий к исполняемому файлу с командой chmod +x имя файла или ввести /bin/bash/filepath к полю Command Пользовательского окна ярлыка.

24
ответ дан 23 November 2019 в 02:29

Протестированный и работы над Ubuntu 14.04, 16.04, и 18.04.

Действительно любят ответ @Almas Dusal , которому действительно нравится ответ @negusp , кроме использования мой измененный сценарий вместо этого, так как это имеет 3 дополнительных выгоды ( ОБНОВЛЕНИЕ: преимущества 1 и 3 ниже были добавлены 12 сентября 2019 ):

  1. Это ищет вывод xinput и для Touchpad И ДЛЯ TouchPad, так как некоторые системы имеют P, использованный для своей выгоды, в то время как другие не делают. Это делает мой сценарий совместимым с большим количеством систем (надо надеяться, ВСЕ системы).
  2. Это добавляет 2 вторых автозаключительных всплывающие окна через zenity, чтобы показать, включена ли Ваша сенсорная панель теперь или ОТКЛЮЧЕНА. См. снимки экрана этих всплывающих окон ниже.
  3. Это правильно фиксирует Вашу скорость колесика прокрутки, включая imwheel (который решает Вашу медленную проблему колесика прокрутки в Ubuntu/Linux при использовании колесика прокрутки мыши), когда Вы используете мышь при отключении imwheel при использовании сенсорной панели, так как imwheel иначе делает сенсорную панель, прокручивающую действительно glitchy при включении.
#!/bin/bash

# GS_toggle_touchpad.sh
# - toggle the touchpad on and off

# Gabriel Staples
# Written: 2 Apr. 2018 
# Updated: 12 Sept. 2019 

# References:
# - https://askubuntu.com/a/874865/327339
# - https://askubuntu.com/questions/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: 
    # https://askubuntu.com/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: 
    # https://askubuntu.com/a/991680/327339
    # killall imwheel
fi

Примечание, что imwheel вещь только требуется, если Вы следуете этому ответу для фиксации скорости колесика прокрутки также: Постоянно фиксируют скорость прокрутки Chrome .

Теперь, присвойте ему сочетание клавиш Ctrl + Высокий звук + P (или независимо от того, что Вы выбираете ['P' поддерживает touch'P'ad в моем случае]). Мое дополнение к сценарию выше zenity закрывающаяся автоматически часть всплывающего окна, которая я описываю больше в своем ответе здесь ( https://superuser.com/a/1310142/425838).

Теперь, когда я использую ярлык выше, я вижу это всплывающее окно, которое автозакрывается после 2 секунд:

enter image description here

И если я нажимаю его снова, я получаю это всплывающее окно, которое автозакрывается после 2 секунд:

enter image description here

Прекрасный!

, Поскольку добавленная премия, если Вы - тяжелый пользователь мыши, просто добавляет команду, которая называет Ваш сценарий выше к Вашим программам запуска в Ubuntu, таким образом, это выполняет и отключает Вашу сенсорную панель каждый раз Ваши запуски компьютера! у меня есть этот набор, таким образом, я могу выйти из столкновения сенсорной панели с основой моей руки и удаления материала случайно все время! Теперь, когда моя рука ударяет сенсорную панель, ничего не происходит, потому что она отключена. :)

Примечание: это все работает отлично в Ubuntu 18.04, а также более старых версиях. Я протестировал его в Ubuntu 18.04 и Ubuntu 14.04. Вот снимок экрана из окна настроек ярлыка в 18,04:

enter image description here

Связанный:

  1. Постоянно фиксируют скорость прокрутки Chrome
1
ответ дан 23 November 2019 в 02:29

Вы хотите ярлык, но можно легко поместить 2 сценария на рабочий стол и выполнить их.

Во-первых, перейдите к терминалу. Ввести xinput. Выходной пример:

⎡ 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=12

Создайте первый сценарий с этим:

#!/bin/bash
xinput enable 12

Сохраните его и назовите его touchpadenable.sh, и в терминале, отметьте его как исполняемый файл с:

chmod +x touchpadenable.sh

Сделайте ту же самую вещь снова, но переименуйте файл как touchpaddisable.sh (или безотносительно), и вместо

xinput enable 12

Используйте команду

xinput disable 12

Сохраните, метка как исполняемый файл, и необходимо смочь запустить скрипты от рабочего стола.Примечание: Вам, вероятно, придется щелкнуть правой кнопкой по сценариям, нажать свойства и позволить этому выполняться.

10
ответ дан 23 November 2019 в 02:29

Вы должны, чтобы сделать как ответ negusp, сначала проверить Ваше сенсорное устройство, и будет показывать что-то вроде этого:

~$ xinput
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ PixArt Dell MS116 USB Optical Mouse       id=10   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=14   [slave  pointer  (2)]
⎜   ↳ DLLC6B2:00 06CB:75BF 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)]
    ↳ Integrated_Webcam_HD                      id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=13   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys                          id=15   [slave  keyboard (3)]
    ↳ DELL Wireless hotkeys                     id=16   [slave  keyboard (3)]

В моем случае устройство с id=12, теперь создайте сценарий удара с именем "касание переключателя" в Вас, папка Desktop под папкой, названной "мусорным ведром", была бы "~/Desktop/bin" и скопировала бы следующий код, проверить, что на переменную устройства указывают на мое касание id=12, зафиксируйте его со своим случаем:

#!/bin/bash

device=12
state=`xinput list-props "$device" | grep "Device Enabled" | grep -o "[01]$"`

if [ $state == '1' ];then
  xinput --disable $device
else
  xinput --enable $device
fi

Набор к этому разрешению выполнения сценария:

chmod 775 /Desktop/bin/toggle-touch

Наконец можно добавить этот путь к ".bashrc" от домашней папки, просто добавить эту строку в конец файла:

PATH=$PATH:~/Desktop/bin

обновите путь с:

. .bashrc

Затем можно выполнить этот сценарий от любого места, я надеюсь эта справка.

6
ответ дан 23 November 2019 в 02:29

Отъезд моего сценария здесь (более или менее то же как выше). Работы из поля, никакой потребности в предшествующем поиске идентификатора устройства.

#!/bin/bash

function query_device_id {
    xinput list | grep -i touchpad | sed 's/.*id=\([0-9]*\).*/\1/g'
}

let device_id=$(query_device_id)

let state=$(xinput list-props $device_id | grep Enabled | awk '{print $4;}')

let new_state=$((1 - $state))

xinput set-prop $device_id "Device Enabled" $new_state
0
ответ дан 23 November 2019 в 02:29

Создайте сценарий оболочки и вставку ниже кода в к нему и назовите его touchPadDisable.sh

#!/bin/bash
temp=$(xinput | grep -i "Elantech Touchpad" | cut -d"=" -f 2 | cut -d"[" -f 1)
xinput disable $temp

Создайте другой сценарий оболочки и вставку ниже кода в к нему и назовите его touchPadEnable.sh

#!/bin/bash
temp=$(xinput | grep -i "Elantech Touchpad" | cut -d"=" -f 2 | cut -d"[" -f 1)
xinput enable $temp

Первый сценарий отключит сенсорную панель, и второй включит сенсорную панель.

Можно добавить этот сценарий к пользовательским ярлыкам в клавиатурах.

0
ответ дан 23 November 2019 в 02:29

В моей Ubuntu 18.04 не работал ответ Almas Dusal, пока я не изменил 'p' на нижний регистр в TouchPad в следующей строке его кода:

read TPdevice <<< $( xinput | sed -nre '/Touchpad/s/.*id=([0-9]*).*/\1/p' )

После того, как та сенсорная панель была успешно отключена и включена сценарием, но это не было отражено на экране настроек Mouse & Touchpad. Я создал следующий новый сценарий, который переключает сенсорную панель при обновлении представления настроек.

#!/bin/bash

state=$( gsettings get org.gnome.desktop.peripherals.touchpad send-events )

if [ "$state" = "'enabled'" ];then
    gsettings set org.gnome.desktop.peripherals.touchpad send-events 'disabled' \
        && notify-send -i touchpad-disabled-symbolic "Touchpad" "Disabled"
else
    gsettings set org.gnome.desktop.peripherals.touchpad send-events 'enabled' \
        && notify-send -i input-touchpad-symbolic "Touchpad" "Enabled"
fi
1
ответ дан 23 November 2019 в 02:29

Другой альтернативой является загрузка этого расширения gnome. https://extensions.gnome.org/extension/935/toggle-touchpad/

0
ответ дан 6 January 2020 в 16:41

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

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