Как отключить тачпад ноутбука на USB-мышью, подключите (и медленнее последний)? [Дубликат]

Еще один (более длинный) вариант, который может быть полезен, если есть какая-либо функция nodejs ascii-banner.

$ sudo apt-get install npm
$ sudo npm -g install ascii-banner
$ node -e "var AsciiBanner = require('ascii-banner');AsciiBanner.write('Oh hai').out();"
  ______    __    __      __    __       ___       __  
 /  __  \  |  |  |  |    |  |  |  |     /   \     |  | 
|  |  |  | |  |__|  |    |  |__|  |    /  ^  \    |  | 
|  |  |  | |   __   |    |   __   |   /  /_\  \   |  | 
|  `--'  | |  |  |  |    |  |  |  |  /  _____  \  |  | 
 \______/  |__|  |__|    |__|  |__| /__/     \__\ |__| 

Он также имеет опции шрифта:

$ node -e "require('ascii-banner').write('Oh hai').font('Thin').out();"

,---.|        |         o
|   ||---.    |---.,---..
|   ||   |    |   |,---||
`---'`   '    `   '`---^`
1
задан 7 October 2014 в 21:13

2 ответа

Решение - автоматическое

Благодаря Esamo и его работе.

Чтобы добавить триггеры AUTO для подключения мыши при запуске:

Создайте файл: /etc/udev/rules.d/10-local.rules

Заполните это содержимое: (замените $ USER своим именем пользователя)

ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/$USER/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/$USER/scripts/touchpad_switcher.sh false"

ACTION=="remove", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/$USER/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/$USER/scripts/touchpad_switcher.sh true"

Решение - автоматическое

ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/dawid/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/dawid/scripts/touchpad_switcher.sh false"

ACTION=="remove", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/dawid/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/home/dawid/scripts/touchpad_switcher.sh true"

Затем поместите свой сценарий там, где хотите. Я поместил его в ~ / scripts

touchpad_switcher.sh

#!/bin/sh
enabled=$1
touchpad_id=$(xinput | grep -i "touchpad" | cut -f2 | cut -d '=' -f2);

if $enabled
then
  xinput set-prop $touchpad_id "Device Enabled" 1 | notify-send "The touchpad is now enabled." ""
else
  xinput set-prop $touchpad_id "Device Enabled" 0 | notify-send "Disabling the touchpad..." ""
fi

touchpad_switcher.sh

chmod +x touchpad_switcher.sh [!d13 ]

Теперь просто перезагрузитесь! (просто перезапуск udev, похоже, не работает ...)

Некоторые другие полезные вещи:

Некоторая информация об правилах udev

udev rules

Simlar question

9
ответ дан 24 May 2018 в 03:03
  • 1
    @Dawid Drozd Спасибо за этот ответ за важную функцию. К сожалению, он, похоже, не полностью работает на моем ноутбуке с Ubuntu 14.04. Уведомления отображаются (отключены, включены), когда мышь подключена и выключена, но сенсорная панель продолжает работать. Любой отзыв? – Filbuntu 1 August 2015 в 05:16
  • 2
    @Filbuntu, может быть, не может найти правильный идентификатор? Попробуйте xinput, и если ваше устройство тачпада не имеет «тачпада», на этом, вот в чем проблема. – Iazel 7 August 2015 в 17:10
  • 3
    @lazel Спасибо за ответ! xinput показывает тачпад: Virtual core pointer id=2 [master pointer (3)] ⎜ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ VGeneric USB K/B id=11 [slave pointer (2)] ⎜ V SIGMACHIP Usb Mouse id=12 [slave pointer (2)] ⎜ DLL0641:00 06CB:7621 UNKNOWN id=14 [slave pointer (2)] ⎜ **SynPS/2 Synaptics TouchPad** id=16 [slave pointer (2)] - какой-нибудь еще совет? – Filbuntu 8 August 2015 в 04:28

То, что @David Drozd опубликовано, не работает для меня на Ubuntu 16.04.

Кажется, что трюк с xinput не работает в udev. Только synclient TouchpadOff=[0|1] работал. Кроме того, ACTION="remove" не работал только.

Я, наконец, получил его при добавлении ENV{REMOVE_CMD}="/bin/sh -c '/usr/bin/synclient TouchpadOff=0'"

Полное решение: создайте файл /etc/udev/rules.d/10-local.rules со следующей строкой (замените $ USER с вашим именем пользователя)

ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[0-9]", ENV{DISPLAY}=":0",ENV{XAUTHORITY}="/home/$USER/.Xauthority", ENV{REMOVE_CMD}="/bin/sh -c '/usr/bin/synclient TouchpadOff=0'", RUN+="/bin/sh -c '/usr/bin/synclient TouchpadOff=1' "
1
ответ дан 24 May 2018 в 03:03

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

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