Posso desativar automaticamente meu touchpad quando um mouse USB está conectado?

20

Sei que posso verificar se o touchpad está ativo com

gconftool-2 --get /desktop/gnome/peripherals/touchpad/touchpad_enabled 

e posso configurá-lo desativado / ativado com

gconftool-2 --set --type boolean /desktop/gnome/peripherals/touchpad/touchpad_enabled true

Com lsusbeu posso ver todos os dispositivos USB conectados. Qual é o meu mouse:

Bus 003 Device 002: ID 046d:c00e Logitech, Inc. M-BJ58/M-BJ69 Optical Wheel Mouse

Mais informações com 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

E aqui estão as informações de 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

E ainda mais informações:

$ 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

Como usar isso para desativar automaticamente meu touchpad quando um mouse USB estiver conectado e ativá-lo novamente assim que o mouse USB desaparecer?

Martin Thoma
fonte
Aqui está o autoscript askubuntu.com/questions/533266/…
Dawid Drozd

Respostas:

10

Este projeto parece não ser mais mantido.

Para natty, há um aplicativo indicador de touchpad. pode ser configurado para desativar / ativar o touchpad quando um mouse é conectado ou desconectado. Eu não tenho idéia se ele também pode funcionar para versões mais antigas do Ubuntu.

https://launchpad.net/touchpad-indicator

sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator
cristão
fonte
11
Essa ferramenta parece não funcionar no Ubuntu 14.04 LTS. Shell Gnome testado.
NobbZ
Também não está funcionando no meu Unity Ubuntu 14.04.3.
Waldir Leoncio
que funciona durante a digitação, mas não o touchpad de desativação quando o mouse está conectado.
precisa saber é o seguinte
Funcionou muito bem para mim no Ubuntu 14.04 LTS (Unity). Obrigado!
Kimberly W
Também está funcionando bem em 15.04
PTS
6

Você pode configurar udevregras para desativar / ativar o touchpad. O wiki do ArchLinux possui estas regras para alternar um touchpad Synaptic de 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"
Piskvor
fonte
Não consegui fazê-lo funcionar. Eu adicionei /etc/udev/rules.d/10-local.rulescom ACTION=="add", SUBSYSTEMS=="input", KERNELS=="mouse[1-9]", RUN+="gconftool-2 --set --type boolean /desktop/gnome/peripherals/touchpad/touchpad_enabled false" ACTION=="remove", SUBSYSTEMS=="input", KERNELS=="mouse[1-9]", RUN+="gconftool-2 --set --type boolean /desktop/gnome/peripherals/touchpad/touchpad_enabled true"e, em seguida, sudo service udev reload; sudo udevadm trigger; sudo service udev restartmas nada aconteceu.
Martin Thoma 27/08
3

Não tenho certeza se todos os laptops usam Synaptiks, mas você pode tentar usá-lo. Caso você não tenha instalado, escreva em um terminal $sudo apt-get install kde-config-touchpad:, $synaptikse finalmente no menu «Gerenciamento do touchpad», verifique:

  • Iniciar automaticamente no logon
  • Desligar automaticamente o touchpad, se um mouse estiver conectado

Espero que esta informação tenha sido valiosa para você!

Brallan Aguilar
fonte
3

Você pode criar um script e executá-lo quando quiser desativar / ativar o touchpad.

/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
realhu
fonte
Isso funciona como um prazer!
11286 aggsol
Trabalhe como um encanto !!!
precisa saber é o seguinte
0

Esta é uma resposta mais longa de uma resposta similar de realhu.

Script para ativar / desativar o Touchpad com a notificação na tela

Crédito parcial para esta postagem ( ativar / desativar o touchpad )

Criar script de alternância do touchpad

Crie um novo diretório /home/USER/bine use gedit /home/USER/bin/toggle-touchpad. NOTA: Substitua USER pelo seu ID de usuário. Copie e cole estas linhas no seu editor:

#!/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://askubuntu.com/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

Marcar o script de alternância do touchpad como executável

Salve o arquivo e saia do editor. Agora sinalize o arquivo como executável usando

chmod +x /home/USER/bin/toggle-touchpad

Atribuir script de alternância do touchpad ao atalho de teclado

Abrir System SettingsKeyboardShortcutsCustom Shortcuts+

Esta tela aparece:

alternar-touchpad

Preencha os campos de atalho personalizado como este:

  • Name = Toggle Touchpad
  • Command = /home/USER/bin/toggle-touchpad

Clique no Applybotão para salvar.

A nova entrada aparece com o status Desativado . Clique com o botão direito do mouse em Desativado e use Super+ Z(ou qualquer outra combinação de atalhos não utilizada). Eu queria usar o Super+, Tmas isso já está atribuído ao Nautilus Trashcan .

Modifique o script de alternância do touchpad para um número de dispositivo diferente

O número do dispositivo padrão é definido como 14. Para descobrir qual é o número do seu dispositivo, use o seguinte:

───────────────────────────────────────────────────────────────────────────────
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$ 

Você pode escolher qualquer dispositivo que desejar, como Touchpad = 14, Webcam = 12, etc.

Qualquer que seja o número do dispositivo que você usa, basta abrir o /home/USER/bin/toggle-touchpadscript e substituí-lo 14pelo número do dispositivo.

Modifique o script de alternância do touchpad para usar ícones diferentes

Quando o balão de notificação "Touchpad ativado" / "Touchpad desativado" é exibido, um ícone é exibido à esquerda do texto. Ícones de ações são usados, /usr/share/icons/gnome/256x256/status/mas você pode alterá-los.

Para ativar o touchpad, isso é exibido:

usuário disponível

Para desativar o touchpad, isso é exibido:

usuário ocupado

WinEunuuchs2Unix
fonte