Bisakah saya secara otomatis menonaktifkan touchpad saya ketika USB-mouse terhubung?

20

Saya tahu bahwa saya dapat memeriksa apakah touchpadnya aktif

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

dan saya dapat mengaturnya dinonaktifkan / diaktifkan dengan

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

Dengan lsusbsaya dapat melihat semua perangkat USB yang terhubung. Yang untuk mouse saya:

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

Informasi lebih lanjut dengan 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

Dan ini adalah informasi dari 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

Dan bahkan lebih banyak informasi:

$ 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

Bagaimana saya bisa menggunakan ini untuk secara otomatis menonaktifkan touchpad saya ketika USB-mouse terhubung dan mengaktifkannya lagi segera setelah USB-mouse menghilang?

Martin Thoma
sumber
Inilah autoscript askubuntu.com/questions/533266/…
Dawid Drozd

Jawaban:

10

Proyek ini tampaknya tidak lagi dipertahankan.

Untuk natty ada aplikasi indikator touchpad. itu dapat diatur untuk menonaktifkan / mengaktifkan touchpad ketika mouse dicolokkan ke dalam atau keluar. Saya tidak tahu apakah itu mungkin juga berfungsi untuk versi Ubuntu yang lebih lama.

https://launchpad.net/touchpad-indicator

sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator
Kristen
sumber
1
Alat itu tampaknya tidak berfungsi untuk Ubuntu 14.04 LTS. Gnome shell diuji.
NobbZ
Juga tidak berfungsi di Unity Ubuntu 14.04.3 saya.
Waldir Leoncio
yang berfungsi saat mengetik, tetapi bukan touchpad yang dinonaktifkan saat mouse terhubung.
vipin8169
Bekerja dengan baik untuk saya di Ubuntu 14,04 LTS (Unity). Terima kasih!
Kimberly W
Juga berfungsi dengan baik pada 15.04
PTS
6

Anda dapat mengatur udevaturan untuk menonaktifkan / mengaktifkan touchpad. ArchLinux wiki memiliki aturan-aturan ini untuk mengaktifkan touchpad Synaptic dari 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
sumber
Saya tidak bisa membuatnya bekerja. Saya menambahkan /etc/udev/rules.d/10-local.rulesdengan 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"dan kemudian sudo service udev reload; sudo udevadm trigger; sudo service udev restarttetapi tidak ada yang terjadi.
Martin Thoma
3

Saya tidak yakin apakah semua laptop menggunakan Synaptiks, tetapi Anda dapat mencoba menggunakannya. Jika Anda belum menginstal, tulis di terminal:, $sudo apt-get install kde-config-touchpadlalu $synaptiksdan akhirnya di menu «manajemen Touchpad» periksa:

  • Secara otomatis mulai saat masuk
  • Matikan touchpad secara otomatis, jika mouse dicolokkan

Saya harap informasi ini bermanfaat bagi Anda!

Brallan Aguilar
sumber
3

Anda dapat membuat skrip, dan menjalankannya saat Anda ingin menonaktifkan / mengaktifkan 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
sumber
Ini bekerja seperti hadiah!
aggsol
Bekerja seperti pesona !!!
robbycandra
0

Ini adalah jawaban yang lebih panjang dari jawaban yang serupa oleh realhu.

Script untuk menghidupkan / mematikan Touchpad dengan notifikasi layar

Kredit sebagian untuk posting ini ( Mengaktifkan / menonaktifkan touchpad )

Buat skrip toggle-touchpad

Buat direktori baru /home/USER/bindan kemudian gunakan gedit /home/USER/bin/toggle-touchpad. CATATAN: Ganti PENGGUNA dengan ID pengguna Anda. Salin dan tempel baris ini ke editor Anda:

#!/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

Tandai skrip toggle-touchpad sebagai yang dapat dieksekusi

Simpan file dan keluar dari editor. Sekarang tandai file tersebut sebagai executable use

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

Tetapkan skrip toggle-touchpad ke pintasan keyboard

Buka System SettingsKeyboardShortcutsCustom Shortcuts+

Layar ini muncul:

toggle-touchpad

Isi bidang Pintasan Khusus seperti ini:

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

Klik Applytombol untuk menyimpan.

Entri baru muncul dengan status Dinonaktifkan . Klik kanan pada Disabled dan gunakan Super+ Z(atau kombinasi shortcut lainnya yang tidak digunakan). Saya ingin menggunakan Super+ Ttapi itu sudah ditugaskan ke Nautilus Trashcan .

Ubah skrip toggle-touchpad ke nomor perangkat yang berbeda

Nomor perangkat default ditetapkan pada 14. Untuk mengetahui apa nomor perangkat Anda gunakan yang berikut ini:

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

Anda dapat memilih perangkat apa pun yang Anda suka, yaitu Touchpad = 14, Webcam = 12, dll.

Nomor perangkat mana pun yang Anda gunakan, cukup buka /home/USER/bin/toggle-touchpadskrip Anda dan ganti 14dengan nomor perangkat itu.

Ubah skrip toggle-touchpad untuk menggunakan ikon yang berbeda

Ketika gelembung pemberitahuan "Touchpad diaktifkan" / "Touchpad dinonaktifkan" ditampilkan, ikon ditampilkan di sebelah kiri teks. Ikon stok digunakan dari/usr/share/icons/gnome/256x256/status/ tetapi Anda dapat mengubahnya.

Untuk mengaktifkan touchpad ini ditampilkan:

pengguna tersedia

Untuk menonaktifkan touchpad ini ditampilkan:

pengguna sibuk

WinEunuuchs2Unix
sumber