Posso disattivare automaticamente il mio touchpad quando è collegato un mouse USB?


20

So che posso verificare se il touchpad è attivo con

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

e posso impostarlo disabilitato / abilitato con

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

Con lsusbposso vedere tutti i dispositivi USB collegati. Quale è per il mio mouse:

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

Ulteriori informazioni 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

Ed ecco le informazioni da 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 ancora più informazioni:

$ 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

Come posso utilizzarlo per disattivare automaticamente il mio touchpad quando è collegato un mouse USB e riattivarlo non appena il mouse USB scompare?


Risposte:


10

Questo progetto sembra non essere più mantenuto.

Per natty c'è un'app indicatore touchpad. può essere impostato per disabilitare / abilitare il touchpad quando un mouse è collegato o disconnesso. Non ho idea se potrebbe funzionare anche con le versioni precedenti di Ubuntu.

https://launchpad.net/touchpad-indicator

sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator

1
Questo strumento non sembra funzionare con Ubuntu 14.04 LTS. Testata shell Gnome.
NobbZ,

Inoltre, non funziona nel mio Unity Ubuntu 14.04.3.
Waldir Leoncio,

funziona durante la digitazione, ma non disabilita il touchpad quando il mouse è collegato.
vipin8169,

Ha funzionato bene per me su Ubuntu 14.04 LTS (Unity). Grazie!
Kimberly W,

Funziona bene anche il 15.04
PTS

6

È possibile impostare udevregole per disabilitare / abilitare il touchpad. La wiki di ArchLinux ha queste regole per attivare / disattivare un touchpad Synaptic da 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"

Non riuscivo a farlo funzionare. Ho aggiunto /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"e poi sudo service udev reload; sudo udevadm trigger; sudo service udev restartma non è successo niente.
Martin Thoma,

3

Non sono sicuro che tutti i laptop utilizzino Synaptiks, ma potresti provare a usarlo. Nel caso in cui non sia stato installato, scrivere in un terminale:, $sudo apt-get install kde-config-touchpadquindi $synaptikse infine nel menu «Gestione touchpad» controllare:

  • Avvia automaticamente all'accesso
  • Disattiva automaticamente il touchpad, se è collegato un mouse

Spero che queste informazioni siano state preziose per te!


3

È possibile creare uno script ed eseguirlo quando si desidera disabilitare / abilitare il 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

Funziona a meraviglia!
aggsol,

Lavora come un incanto !!!
Robbycandra,

0

Questa è una risposta più lunga di una simile da parte di realhu.

Script per attivare / disattivare il touchpad con notifica sullo schermo

Credito parziale per questo post ( abilita / disabilita il touchpad )

Crea script toggle-touchpad

Creare una nuova directory /home/USER/bine quindi utilizzare gedit /home/USER/bin/toggle-touchpad. NOTA: sostituire USER con il proprio ID utente. Copia e incolla queste righe nel tuo 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

Contrassegna lo script toggle-touchpad come eseguibile

Salvare il file ed uscire dall'editor. Ora contrassegna il file come eseguibile usando

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

Assegna lo script toggle-touchpad alla scorciatoia da tastiera

Apri System SettingsKeyboardShortcutsCustom Shortcuts+

Questa schermata appare:

ginocchiera touchpad

Compila i campi del collegamento personalizzato in questo modo:

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

Fare clic sul Applypulsante per salvare.

La nuova voce appare con lo stato Disabilitato . Fai clic destro su Disabilitato e usa Super+ Z(o qualsiasi altra combinazione di scorciatoie non utilizzata). Volevo usare Super+ Tma questo è già assegnato a Nautilus Trashcan .

Modifica lo script toggle-touchpad con un numero di dispositivo diverso

Il numero predefinito del dispositivo è impostato su 14. Per scoprire qual è il tuo numero di dispositivo, utilizza quanto segue:

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

Puoi scegliere qualsiasi dispositivo che ti piace, ad esempio Touchpad = 14, Webcam = 12, ecc.

Qualunque sia il numero di dispositivo che usi, apri semplicemente lo /home/USER/bin/toggle-touchpadscript e sostituiscilo 14con quel numero di dispositivo.

Modifica lo script toggle-touchpad per utilizzare icone diverse

Quando viene visualizzato il fumetto di notifica "Touchpad abilitato" / "Touchpad disabilitato", viene visualizzata un'icona a sinistra del testo. Le icone di riserva vengono utilizzate /usr/share/icons/gnome/256x256/status/ma è possibile modificarle.

Per abilitare il touchpad viene visualizzato:

utente disponibile

Per disabilitare il touchpad viene visualizzato:

utente occupato

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.