Можно ли автоматически отключить сенсорную панель при подключении USB-мыши?
Я знаю, что могу проверить, активен ли тачпад
gconftool-2 --get /desktop/gnome/peripherals/touchpad/touchpad_enabled
и я могу установить его отключенным / включенным с
gconftool-2 --set --type boolean /desktop/gnome/peripherals/touchpad/touchpad_enabled true
С lsusb
Я вижу все подключенные USB-устройства. Что для моей мыши:
Bus 003 Device 002: ID 046d:c00e Logitech, Inc. M-BJ58/M-BJ69 Optical Wheel Mouse
Больше информации с lsusb -v
:
Bus 005 Device 002: ID 046d:c00e Logitech, Inc. M-BJ58/M-BJ69 Optical Wheel Mouse
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 8
idVendor 0x046d Logitech, Inc.
idProduct 0xc00e M-BJ58/M-BJ69 Optical Wheel Mouse
bcdDevice 11.10
iManufacturer 1
iProduct 2
iSerial 0
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 34
bNumInterfaces 1
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xa0
(Bus Powered)
Remote Wakeup
MaxPower 98mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 1 Boot Interface Subclass
bInterfaceProtocol 2 Mouse
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.10
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 52
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0004 1x 4 bytes
bInterval 10
А вот информация из tail -n 10 -f /var/log/messages
:
Aug 27 08:36:47 pc08 kernel: [ 1795.936583] usb 5-2: USB disconnect, address 3
Aug 27 08:36:55 pc08 kernel: [ 1804.208042] usb 5-2: new low speed USB device using uhci_hcd and address 4
Aug 27 08:36:56 pc08 kernel: [ 1804.384272] usb 5-2: configuration #1 chosen from 1 choice
Aug 27 08:36:56 pc08 kernel: [ 1804.400743] input: Logitech USB-PS/2 Optical Mouse as /devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.0/input/input13
Aug 27 08:36:56 pc08 kernel: [ 1804.400923] generic-usb 0003:046D:C00E.0004: input,hidraw0: USB HID v1.10 Mouse [Logitech USB-PS/2 Optical Mouse] on usb-0000:00:1d.0-2/input0
И еще больше информации:
$ udevadm info --query=all --name=/dev/input/mouse1
P: /devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.0/input/input15/mouse1
N: input/mouse1
S: char/13:33
S: input/by-id/usb-Logitech_USB-PS_2_Optical_Mouse-mouse
S: input/by-path/pci-0000:00:1d.0-usb-0:2:1.0-mouse
E: UDEV_LOG=3
E: DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.0/input/input15/mouse1
E: MAJOR=13
E: MINOR=33
E: DEVNAME=/dev/input/mouse1
E: SUBSYSTEM=input
E: ID_INPUT=1
E: ID_INPUT_MOUSE=1
E: ID_VENDOR=Logitech
E: ID_VENDOR_ENC=Logitech
E: ID_VENDOR_ID=046d
E: ID_MODEL=USB-PS_2_Optical_Mouse
E: ID_MODEL_ENC=USB-PS\x2f2\x20Optical\x20Mouse
E: ID_MODEL_ID=c00e
E: ID_REVISION=1110
E: ID_SERIAL=Logitech_USB-PS_2_Optical_Mouse
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030102:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=pci-0000:00:1d.0-usb-0:2:1.0
E: DEVLINKS=/dev/char/13:33 /dev/input/by-id/usb-Logitech_USB-PS_2_Optical_Mouse-mouse /dev/input/by-path/pci-0000:00:1d.0-usb-0:2:1.0-mouse
Как я могу использовать это, чтобы автоматически деактивировать сенсорную панель, когда подключена USB-мышь, и активировать ее снова, как только исчезнет USB-мышь?
5 ответов
Этот проект больше не поддерживается.
Для natty есть приложение индикатора сенсорной панели. его можно отключить или включить сенсорную панель, когда мышь подключена или отключена. Я понятия не имею, может ли это также работать для более старых версий Ubuntu.
https://launchpad.net/touchpad-indicator
sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator
Вы можете настроить udev
правила отключения / включения сенсорной панели. ArchLinux Wiki имеет эти правила для переключения тачпада Synaptic из udev
:
ACTION=="add", SUBSYSTEM=="input", KERNEL=="mouse[1-9]", ENV{DISPLAY}=":0.0",
ENV{XAUTHORITY}="/home/USERNAME/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/usr/bin/synclient TouchpadOff=1"
ACTION=="remove", SUBSYSTEM=="input", KERNEL=="mouse[1-9]", ENV{DISPLAY}=":0.0",
ENV{XAUTHORITY}="/home/USERNAME/.Xauthority", ENV{ID_CLASS}="mouse", RUN+="/usr/bin/synclient TouchpadOff=0"
Вы можете создать скрипт и выполнить его, когда хотите отключить / включить сенсорную панель.
/usr/local/bin/touchpad_toggle.sh
#!/bin/bash
declare -i ID
ID=`xinput list | grep -Eio '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."
# notify-send 'Touchpad' 'Disabled' -i /usr/share/icons/Adwaita/48x48/devices/input-touchpad.png
else
xinput enable $ID
# echo "Touchpad enabled."
# notify-send 'Touchpad' 'Enabled' -i /usr/share/icons/Adwaita/48x48/devices/input-touchpad.png
fi
Я не уверен, что все ноутбуки используют Synaptiks, но вы можете попробовать использовать его. Если вы еще не установили, напишите в терминале: $sudo apt-get install kde-config-touchpad
, затем $synaptiks
и наконец в меню "Управление тачпадом" проверьте:
- Автоматический запуск при входе
- Автоматическое отключение сенсорной панели, если мышь подключена
Я надеюсь, что эта информация была полезна для вас!
Это более длинный ответ на аналогичный ответ от realhu.
Скрипт для включения / выключения сенсорной панели с уведомлением на экране
Частичный кредит на этот пост ( включить / отключить тачпад)
Создать скрипт с тачпадом
Создать новый каталог /home/USER/bin
а затем использовать gedit /home/USER/bin/toggle-touchpad
, ПРИМЕЧАНИЕ. Замените ПОЛЬЗОВАТЕЛЯ своим идентификатором пользователя. Скопируйте и вставьте эти строки в ваш редактор:
#!/bin/bash
# NAME: toggle-touchpad
# PATH: /home/$USER/bin
# DESC: Update pulseaudio output device when HDMI TV plugged / unplugged
# CALL: called from Keyboard Shortcut `Super`+`T`
# DATE: Created Dec 23, 2016.
# NOTE: Written for AU question: http://Ask-ubuntu.ru/questions/863746/keyboard-shortcut-to-disable-the-laptop-touchpad/863750?noredirect=1#comment1333958_863750
# Use device number matching touchpad, in this case 14
if [[ $(xinput list 14 | grep -Ec "disabled") -eq 1 ]]; then
xinput enable 14
DISPLAY=:0 notify-send --urgency=critical --icon=/usr/share/icons/gnome/256x256/status/user-available.png "Touchpad enabled"
else
xinput disable 14
DISPLAY=:0 notify-send --urgency=critical --icon=/usr/share/icons/gnome/256x256/status/user-busy.png "Touchpad disabled"
fi
exit 0
Пометить скрипт тачпада как исполняемый
Сохраните файл и выйдите из редактора. Теперь отметьте файл как исполняемый файл, используя
chmod +x /home/USER/bin/toggle-touchpad
Назначить скрипт переключения тачпада сочетанию клавиш
Открыть System Settings
⟶ Keyboard
⟶ Shortcuts
⟶ Custom Shortcuts
⟶ +
Этот экран появляется:
Заполните поля Custom Shortcut, как это:
- Имя =
Toggle Touchpad
- Command =
/home/USER/bin/toggle-touchpad
Нажмите кнопку Применить, чтобы сохранить.
Новая запись появляется со статусом Отключено. Щелкните правой кнопкой мыши по Disabled и используйте Super + Z (или любую другую неиспользованную комбинацию клавиш). Я хотел использовать Super + T, но это уже назначено Nautilus Trashcan.
Изменить скрипт переключения тачпада на другой номер устройства
Номер устройства по умолчанию установлен на 14. Чтобы узнать номер вашего устройства, используйте следующее:
───────────────────────────────────────────────────────────────────────────────
USER@host:~/bin$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Logitech Performance MX id=10 [slave pointer (2)]
⎜ ↳ Logitech K800 id=11 [slave pointer (2)]
⎜ ↳ AlpsPS/2 ALPS GlidePoint id=14 [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_HD id=12 [slave keyboard (3)]
↳ Dell WMI hotkeys id=15 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=13 [slave keyboard (3)]
───────────────────────────────────────────────────────────────────────────────
USER@host:~/bin$
Вы можете выбрать любое устройство, которое вам нравится, например Touchpad = 14, Webcam = 12 и т. Д.
Какой бы номер устройства вы не использовали, просто откройте /home/USER/bin/toggle-touchpad
сценарий и заменить 14
с этим номером устройства.
Модифицируйте скрипт переключения-тачпада, чтобы использовать разные значки
Когда отображается всплывающее уведомление "Сенсорная панель включена" / "Сенсорная панель отключена", слева от текста отображается значок. Фондовые иконки используются с /usr/share/icons/gnome/256x256/status/
но вы можете изменить их.
Для включения сенсорной панели это отображается:
Для отключения сенсорной панели это отображается: