Bir USB fare bağlandığında dokunmatik yüzeyimi otomatik olarak devre dışı bırakabilir miyim?


20

Dokunmatik yüzeyin etkin olup olmadığını kontrol edebileceğimi biliyorum

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

ve ile devre dışı / etkin ayarlayabilirsiniz

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

İle lsusbI bağlı tüm USB aygıtlarını görebilirsiniz. Farem için hangisi:

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

Daha fazla bilgi için 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

Ve işte bilgi 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

Ve daha da fazla bilgi:

$ 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

Bunu, bir USB fare bağlandığında dokunmatik yüzeyimi otomatik olarak devre dışı bırakmak ve USB fare kaybolduğu anda tekrar etkinleştirmek için nasıl kullanabilirim?


Yanıtlar:


10

Bu proje artık korunmuyor gibi görünüyor.

Natty için bir touchpad gösterge uygulaması var. bir fare takılıyken veya çıkarıldığında dokunmatik yüzeyi devre dışı bırakmak / etkinleştirmek üzere ayarlanabilir. Eski Ubuntu sürümleri için de işe yarayabilir mi bilmiyorum.

https://launchpad.net/touchpad-indicator

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

1
Bu araç Ubuntu 14.04 LTS için çalışmıyor gibi görünüyor. GNOME kabuğu test edildi.
NobbZ

Ayrıca Unity Ubuntu'mda çalışmıyor 14.04.3.
Waldir Leoncio,

Yazarken çalışır, ancak fare bağlandığında dokunmatik yüzeyi devre dışı bırakmaz.
vipin8169

Ubuntu 14.04 LTS'de (Unity) benim için gayet iyi çalıştı. Teşekkür ederim!
Kimberly W

Ayrıca 15.04
PTS

6

udevDokunmatik yüzeyi devre dışı bırakmak / etkinleştirmek için kurallar belirleyebilirsiniz. ArchLinux wiki'de Synaptic dokunmatik yüzeyini şu konumlardan değiştirmek için şu kurallara sahiptir 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"

Çalışmasını sağlayamadım. Eklediğim /etc/udev/rules.d/10-local.rulesile 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"ve daha sonra sudo service udev reload; sudo udevadm trigger; sudo service udev restartama hiçbir şey olmadı.
Martin Thoma

3

Tüm dizüstü bilgisayarların Synaptiks kullanıp kullanmadığından emin değilim, ancak kullanmayı deneyebilirsiniz. Takmadığınız takdirde bir terminale yazın: $sudo apt-get install kde-config-touchpadsonra da $synaptiksnihayet «Dokunmatik ekran yönetimi» menüsünde kontrol edin:

  • Oturum açıldığında otomatik olarak başla
  • Fare takılıysa dokunmatik yüzeyi otomatik olarak kapat

Umarım bu bilgi sizin için değerli olmuştur!


3

Bir komut dosyası oluşturabilir ve dokunmatik yüzeyi devre dışı bırakmak / etkinleştirmek istediğinizde uygulayabilirsiniz.

/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

Bu bir muamele gibi çalışıyor!
aggsol

Bir cazibe gibi çalışın !!!
robbycandra

0

Bu, realhu tarafından benzerinin daha uzun bir cevabıdır.

Dokunmatik Ekranı açmak / kapatmak için ekran bildirimi ile komut dosyası

Bu yayına kısmi kredi ( Dokunmatik yüzeyi etkinleştirme / devre dışı bırakma )

Geçiş dokunmatik yüzey komut dosyası oluşturma

Yeni bir dizin oluşturun /home/USER/binve kullanın gedit /home/USER/bin/toggle-touchpad. NOT: KULLANICI'yı kullanıcı kimliğinizle değiştirin . Bu satırları kopyalayıp editörünüze yapıştırın:

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

Geçişli dokunmatik yüzey komut dosyasını yürütülebilir olarak işaretleyin

Dosyayı kaydedin ve editörden çıkın. Şimdi dosyayı kullanarak çalıştırılabilir olarak işaretleyin

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

Geçiş-dokunmatik yüzey komut dosyasını klavye kısayoluna atama

System SettingsKeyboardShortcutsCustom Shortcuts+

Bu ekran görünür:

Geçiş-dokunmatik yüzey

Özel Kısayol alanlarını aşağıdaki gibi doldurun:

  • İsim = Toggle Touchpad
  • Komut = /home/USER/bin/toggle-touchpad

ApplyKaydetmek için düğmeye tıklayın .

Yeni giriş Devre Dışı durumu ile belirir . Disabled'a sağ tıklayın ve Super+ Z(veya kullanılmayan diğer kısayol kombinasyonlarını) kullanın. Super+ Kullanmak istedim Tama bu zaten Nautilus Trashcan'a atandı .

Geçişli dokunmatik yüzey komut dosyasını farklı cihaz numarasına göre değiştirme

Varsayılan cihaz numarası 14 olarak ayarlanmıştır. Cihaz numaranızın ne olduğunu bulmak için aşağıdakileri kullanın:

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

İstediğiniz herhangi bir cihazı seçebilirsiniz, örneğin, Dokunmatik Yüzey = 14, Web Kamerası = 12 vb.

Hangi cihaz numarasını kullanırsanız kullanın, /home/USER/bin/toggle-touchpadkomut dosyanızı açın ve 14bu cihaz numarasıyla değiştirin .

Farklı simgeler kullanmak için toggle-touchpad komut dosyasını değiştirin

"Dokunmatik yüzey etkin" / "Dokunmatik yüzey devre dışı" bildirim balonu görüntülendiğinde, metnin solunda bir simge görüntülenir. Stok simgeleri kullanılır /usr/share/icons/gnome/256x256/status/ancak bunları değiştirebilirsiniz.

Dokunmatik ekranı etkinleştirmek için bu görüntülenir:

Kullanıcı mevcut

Dokunmatik yüzeyi devre dışı bırakmak için bu görüntülenir:

Kullanıcı meşgul

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.