Увімкнути / вимкнути тачпад


17

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

Я намагався знайти його в google, але нічого не отримав.

Може хтось пояснить мені, як це виправити? Спасибі !

Відповіді:


24

Я створив цей сценарій bash з відповіді negusp . Він знаходить і перемикає пристрій сенсорної панелі. Ви можете налаштувати спеціальний ярлик до нього в налаштуваннях системи.

#!/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+ Shift+ F9для ввімкнення та відключення перемикача, як це:

введіть тут опис зображення

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


2
Рідко виникає потреба в ланцюжку grepі sed. Ви можете легко консолідувати два sed -nre '/TouchPad/s/.*id=([0-9]*).*/\1/p'.
Девід Фоерстер

3
Невелика корекція сценарію для Ubuntu 17.10 після отримання рядка помилки 6: [:: ціле вираження очікується, що не вдасться знайти пристрій Змінити сенсорну панель на тачпад
Грегор Грайзар

1
Дивовижна відповідь! Моє тільки доповнення додати zenity --info --text "Touchpad DISABLED" --timeout=2і zenity --info --text "Touchpad ENABLED" --timeout=2ваші ifі elseблоки, відповідно, спливаюче вікно , яке оголошує новий стан , то autocloses в 2 сек.
Габріель Степлес

1
Дивіться мою незначну модифікацію тут: askubuntu.com/a/1109515/327339
Габріель

1
Оновлення: деякі системи показуються Touchpadзамість TouchPadвихідних даних xinput, тому я оновив свою відповідь на пошук обох. Крім того, я правильно вирішив проблему з повільним прокруткою колеса, використовуючи imwheel. Дивіться повні анси
Габріель

11

Ви хочете отримати ярлик, але ви можете легко поставити 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

Збережіть, позначте як виконуваний файл, і ви зможете запускати сценарії з робочого столу. Примітка: можливо, вам доведеться клацнути правою кнопкою миші сценарії, натисніть властивості та дозволити її виконання.


Гей, дякую за відповідь! Я буду використовувати щось подібне! Лише одна річ, на вашу думку, це було б можливим, якби я зробив це в одному файлі сценарію, щоб я міг використовувати той самий ярлик?
Рей

@Thomas Дивіться цю відповідь: askubuntu.com/questions/597395/…
negusp

6

Ви повинні робити як негусп , спочатку перевірити свій сенсорний пристрій і покаже щось подібне:

~ $ xinput
⎡ віртуальний вказівник ядра id = 2 [головний вказівник (3)]
⎜ ↳ Virtual core XTEST pointer id = 4 [slave pointer (2)]
⎜ ↳ PixArt Dell MS116 USB Optical Mouse id = 10 [підлеглий покажчик (2)]
⎜ ↳ SynPS / 2 Synaptics TouchPad id = 14 [підлеглий покажчик (2)]
⎜ ↳ DLLC6B2: 00 06CB: 75BF тачпад id = 12 [підлеглий вказівник (2)]
Id Ідентифікатор віртуальної основної клавіатури = 3 [головна клавіатура (2)]
    Id Ідентифікатор віртуальної ядра XTEST клавіатури = 5 [підлеглий клавіатура (3)]
    ↳ Кнопка живлення id = 6 [підлеглий клавіатура (3)]
    Id Ідентифікатор відео шини = 7 [підлеглий клавіатура (3)]
    ↳ Кнопка живлення id = 8 [підлеглий клавіатура (3)]
    ↳ Кнопка сну id = 9 [підлеглий клавіатура (3)]
    ↳ Integrated_Webcam_HD id = 11 [підлеглий клавіатура (3)]
    ↳ AT Translated Set 2 id клавіатури = 13 [підлеглий клавіатура (3)]
    Hot гарячі клавіші Dell WMI id = 15 [підлеглий клавіатура (3)]
    ↳ Клавіші швидкого доступу DELL id = 16 [підлеглий клавіатура (3)]

У моєму випадку це пристрій з id = 12, тепер створіть скрипт bash з назвою "toggle-touch" у вашій папці Desktop під папкою під назвою "bin", буде "~ / 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

Тоді ви можете виконати цей скрипт з будь-якого місця, сподіваюся, це допоможе.


1

У моїй Ubuntu 18.04 відповідь Алмаса Дасала не працювала, поки я не змінив 'p' на малі регістриTouchPad у наступному рядку його коду:

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

Після цього тачпад було успішно вимкнено та увімкнено сценарієм, але це не відображалось на екрані налаштувань миші та сенсорної панелі. Я створив наступний новий сценарій, який перемикає тачпад під час оновлення подання налаштувань.

#!/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

Випробуваний та працює на 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іншому випадку робить прокрутка сенсорної панелі дійсно глянцевою коли ввімкнено. Обов’язково коментуйте відповідні рядки, щоб зробити цю роботу. Наприклад: # 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

Зауважте, що річ косого колеса потрібна лише в тому випадку, якщо ви дотримуєтесь цієї відповіді, щоб також виправити швидкість колеса прокрутки: Постійно фіксуйте швидкість прокрутки Chrome .

Тепер призначте їй клавішу швидкого доступу Ctrl+ Alt+ P(або все, що ви вибрали ["P" означає сенсорний "P'ad у моєму випадку"). Моє доповнення до вищезазначеного сценарію - це zenityсамозакриваюча частина спливаючого вікна, про яку я більше описуюсь у своїй відповіді тут ( /superuser//a/1310142/425838 ).

Тепер, коли я використовую ярлик вище, я бачу це спливаюче вікно, яке автоматично закриється через 2 секунди:

введіть тут опис зображення

Якщо я натисну його ще раз, я отримаю це спливаюче вікно, яке автоматично закриється через 2 секунди:

введіть тут опис зображення

Ідеально!

Як додатковий бонус, якщо ви є користувачем важкої миші, просто додайте команду, яка викликає ваш сценарій вище, до ваших запуску програм в Ubuntu, щоб він запускався та вимикав ваш трек-майданчик кожного разу, коли комп'ютер запускається! У мене цей набір, щоб я міг кинути натикатись на дорожку колодкою за основу руки та випадково видаляти речі весь час! Тепер, коли моя рука натикається на доріжку, нічого не відбувається, тому що вона відключена. :)

Примітка. Це все чудово працює в Ubuntu 18.04, а також у старих версіях. Я перевірив його в Ubuntu 18.04 і Ubuntu 14.04. Ось знімок екрана з вікна налаштувань ярлика 18.04:

введіть тут опис зображення

Пов'язані:

  1. UDPATE: Отримайте останню версію цього сценарію тут! https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/blob/master/toggle_touchpad.sh
  2. Постійно фіксуйте швидкість прокрутки Chrome

Не можна повторно використовувати в моєму HP Probook. У xinput є 2 елементи SynPS/2 Synaptics TouchPadта SYNA306A:00 06CB:CD0B Touchpad. Перше виконання відключає одне, друге вимикає інше. Звідти воно переключить друге, але ніколи перше.
rtaft

0

Залишаючи свій сценарій тут (більш-менш такий же, як вище). Працює з коробки, не потрібно попереднього пошуку ідентифікатора пристрою.

#!/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

Створіть скрипт оболонки та вставте в нього код нижче та назви його 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

Перший скрипт відключить тачпад, а другий включить тачпад.

Цей сценарій можна додати до спеціальних ярликів на клавіатурах.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.