¿Puedo desactivar automáticamente mi panel táctil cuando se conecta un mouse USB?

20

Sé que puedo verificar si el panel táctil está activo con

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

y puedo configurarlo deshabilitado / habilitado con

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

Con lsusbpuedo ver todos los dispositivos USB conectados. Que es para mi mouse:

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

Más información con 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

Y aquí está la información 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

Y aún más información:

$ 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

¿Cómo puedo usar esto para desactivar automáticamente mi panel táctil cuando se conecta un mouse USB y activarlo nuevamente tan pronto como el mouse USB desaparezca?

Martin Thoma
fuente

Respuestas:

10

Parece que este proyecto ya no se mantiene.

Para natty hay una aplicación de indicador de panel táctil. se puede configurar para deshabilitar / habilitar el panel táctil cuando se conecta o desconecta un mouse. No tengo idea si también podría funcionar para versiones anteriores de Ubuntu.

https://launchpad.net/touchpad-indicator

sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator
cristiano
fuente
1
Esa herramienta no parece funcionar para Ubuntu 14.04 LTS. Gnome shell probado.
NobbZ
Tampoco funciona en mi Unity Ubuntu 14.04.3.
Waldir Leoncio
eso funciona mientras se escribe, pero no se desactiva el panel táctil cuando el mouse está conectado.
vipin8169
Me funcionó bien en Ubuntu 14.04 LTS (Unity). ¡Gracias!
Kimberly W
También funciona bien el 15.04
PTS
6

Puede configurar udevreglas para deshabilitar / habilitar el panel táctil. El wiki de ArchLinux tiene estas reglas para alternar un panel táctil Synaptic desde 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
fuente
No pude hacerlo funcionar. Agregué /etc/udev/rules.d/10-local.rulescon 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"y luego, sudo service udev reload; sudo udevadm trigger; sudo service udev restartpero no pasó nada.
Martin Thoma
3

No estoy seguro de si todas las computadoras portátiles usan Synaptiks, pero podría intentar usarlo. En caso de que no lo haya instalado, escriba en un terminal:, $sudo apt-get install kde-config-touchpadluego $synaptiksy finalmente en el menú «Gestión del panel táctil» compruebe:

  • Iniciar automáticamente al iniciar sesión
  • Apague automáticamente el panel táctil, si un mouse está conectado

¡Espero que esta información haya sido valiosa para ti!

Brallan Aguilar
fuente
3

Puede crear un script y ejecutarlo cuando desee deshabilitar / habilitar el panel táctil.

/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
fuente
¡Esto funciona como un regalo!
aggsol
Trabajar como un encanto !!!
robbycandra
0

Esta es una respuesta más larga de una similar por realhu.

Script para activar / desactivar el panel táctil con notificación de pantalla

Crédito parcial a esta publicación ( activar / desactivar panel táctil )

Crear secuencia de comandos de panel táctil

Cree un nuevo directorio /home/USER/biny luego use gedit /home/USER/bin/toggle-touchpad. NOTA: Reemplace USUARIO con su ID de usuario. Copie y pegue estas líneas en su 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 la secuencia de comandos del panel táctil como ejecutable

Guarde el archivo y salga del editor. Ahora marque el archivo como ejecutable usando

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

Asignar secuencia de comandos de teclado táctil al método abreviado de teclado

Abre System SettingsKeyboardShortcutsCustom Shortcuts+

Esta pantalla aparece:

panel táctil

Complete los campos de acceso directo personalizado de esta manera:

  • Nombre = Toggle Touchpad
  • Comando = /home/USER/bin/toggle-touchpad

Haga clic en el Applybotón para guardar.

La nueva entrada aparece con el estado Deshabilitado . Haga clic derecho en Desactivado y use Super+ Z(o cualquier otra combinación de atajos no utilizada). Quería usar Super+ Tpero eso ya está asignado a Nautilus Trashcan .

Modificar la secuencia de comandos del panel táctil para alternar a un número de dispositivo diferente

El número de dispositivo predeterminado se establece en 14. Para averiguar cuál es el número de su dispositivo, utilice lo siguiente:

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

Puede elegir cualquier dispositivo que desee, es decir, Touchpad = 14, Webcam = 12, etc.

Cualquiera que sea el número de dispositivo que use, simplemente abra su /home/USER/bin/toggle-touchpadscript y reemplácelo 14con ese número de dispositivo.

Modifique la secuencia de comandos del panel táctil para usar diferentes iconos

Cuando se muestra la burbuja de notificación "Panel táctil habilitado" / "Panel táctil deshabilitado", se muestra un icono a la izquierda del texto. Se utilizan iconos de archivo, /usr/share/icons/gnome/256x256/status/pero puede cambiarlos.

Para habilitar el panel táctil, esto se muestra:

usuario disponible

Para deshabilitar el panel táctil, esto se muestra:

usuario ocupado

WinEunuuchs2Unix
fuente