Dokunmatik yüzeyi etkinleştirme / devre dışı bırakma


17

Ubuntu 16.04'ü asus ux501 vw'ye yüklemeyi başardım, ancak kısayolumdan bazıları çalışmıyor. Hepsini düzeltmek istemiyorum, sadece bir tane: touchpad'i etkinleştirmemi veya devre dışı bırakmamı sağlayan kısayol, böylece touchpad hakkında çalışarak uzun belgeler yazabiliyorum.

Google'da bulmaya çalıştım ama hiçbir şeyim yok.

Birisi bana bunu nasıl düzeltebileceğimi açıklayabilir mi lütfen? Teşekkürler !

Yanıtlar:


24

Bu bash betiğini negusp'un cevabından yarattım . Dokunmatik Yüzey aygıtını bulur ve değiştirir. Sistem ayarlarında özel bir kısayol yapılandırabilirsiniz.

#!/bin/bash

read TPdevice <<< $( xinput | sed -nre '/TouchPad|Touchpad/s/.*id=([0-9]*).*/\1/p' )
state=$( xinput list-props "$TPdevice" | grep "Device Enabled" | grep -o "[01]$" )

if [ "$state" -eq '1' ];then
    xinput --disable "$TPdevice" && notify-send -i emblem-nowrite "Touchpad" "Disabled"
else
    xinput --enable "$TPdevice" && notify-send -i input-touchpad "Touchpad" "Enabled"
fi

Dokunmatik yüzey etkinleştirmek ve devre dışı bırakmak için Ctrl+ Shift+ ayarını şu şekilde yapıyorum F9:

resim açıklamasını buraya girin

Düzenleme: Komut dosyanızı chmod + x dosyaadı komutuyla veya / kısayol / bash / filepath komutuyla Özel kısayol penceresinin Komut alanına çalıştırılabilir hale getirmeniz gerekebilir .


2
Zincirleme grepve nadiren ihtiyaç vardır sed. İkisini kolayca birleştirebilirsiniz sed -nre '/TouchPad/s/.*id=([0-9]*).*/\1/p'.
David Foerster

3
Hata satırı 6'yı aldıktan sonra Ubuntu 17.10 için küçük bir düzeltme: [:: tamsayı ifadesinin cihaz bulamaması bekleniyor Dokunmatik Yüzey'i Touchpad'e Değiştir
Gregor Grajzar

1
Müthiş cevap! Benim tek eklemeler eklemek için vardır zenity --info --text "Touchpad DISABLED" --timeout=2ve zenity --info --text "Touchpad ENABLED" --timeout=2sizin için ifve elsebloklar sırasıyla ardından yeni devlet duyurdu 2 saniyede autocloses bir pencere açılır.
Gabriel Staples

1
Benim küçük değişiklikimi burada görebilirsiniz: askubuntu.com/a/1109515/327339
Gabriel Staples

1
Güncelleme: bazı sistemler çıktı Touchpadyerine yerine gösterir , bu yüzden her ikisini de arama cevabımı güncelledim. Ayrıca, yavaş kaydırma tekerleği problemini de kullanarak düzgün bir şekilde düzelttim . Tam ans buraya bakın: askubuntu.com/questions/844151/enable-disable-touchpad/…TouchPadxinputimwheel
Gabriel Staples

11

Kısayol istiyorsunuz, ancak masaüstüne kolayca 2 komut dosyası koyabilir ve yürütebilirsiniz.

İlk önce terminale gidin. Tür xinput. Çıktı Örneği:

⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=12   [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_1.3M             id=10   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=11   [slave  keyboard (3)]
    ↳ Dell WMI hotkeys 

Dokunmatik Yüzeyi bulun. Bu örnekte, dokunmatik yüzey id = 12 olarak listelenmiştir

Bununla ilk komut dosyasını oluşturun:

#!/bin/bash
xinput enable 12

Kaydedin ve adlandırın touchpadenable.shve terminalde aşağıdakilerle yürütülebilir olarak işaretleyin:

chmod +x touchpadenable.sh

Aynı şeyi tekrar yapın, ancak dosyayı touchpaddisable.sh(veya herhangi bir şekilde) olarak yeniden adlandırın .

xinput enable 12

Komutu kullanın

xinput disable 12

Kaydedin, yürütülebilir olarak işaretleyin ve komut dosyalarını masaüstünden çalıştırabilmelisiniz. Not: komut dosyalarını sağ tıklatmanız, özellikleri tıklatmanız ve yürütülmesine izin vermeniz gerekebilir.


Hey cevap için teşekkürler! Böyle bir şey kullanacağım! Sadece bir şey, aynı kısayolu kullanabilmeniz için 1 komut dosyasında yapmanın mümkün olacağını düşünüyor musunuz?
Rei

@Thomas Bu yanıta bakın: askubuntu.com/questions/597395/…
negusp

6

Sen gibi yapmak gerekir negusp ilk dokunmatik cihazını kontrol, s yanıt' ve irade gösterileri böyle bir şey:

~ $ xinput
⎡ Sanal çekirdek işaretçi kimliği = 2 [ana işaretçi (3)]
Core ↳ Sanal çekirdek XTEST işaretçi kimliği = 4 [bağımlı işaretçi (2)]
Art ↳ PixArt Dell MS116 USB Optik Fare kimliği = 10 [bağımlı işaretçi (2)]
PS ↳ SynPS / 2 Synaptics Dokunmatik Yüzey id = 14 [bağımlı işaretçi (2)]
C ↳ DLLC6B2: 00 06CB: 75BF Dokunmatik yüzey kimliği = 12 [bağımlı işaretçi (2)]
Core Sanal çekirdek klavye kimliği = 3 [ana klavye (2)]
    Core Sanal çekirdek XTEST klavye kimliği = 5 [bağımlı klavye (3)]
    ↳ Güç Düğmesi kimliği = 6 [bağımlı klavye (3)]
    ↳ Video Veri Yolu kimliği = 7 [bağımlı klavye (3)]
    ↳ Güç Düğmesi kimliği = 8 [bağımlı klavye (3)]
    ↳ Uyku Düğmesi kimliği = 9 [bağımlı klavye (3)]
    ↳ Integrated_Webcam_HD id = 11 [bağımlı klavye (3)]
    Trans AT Çeviri Seti 2 klavye kimliği = 13 [bağımlı klavye (3)]
    ↳ Dell WMI kısayol tuşları id = 15 [bağımlı klavye (3)]
    ELL DELL Kablosuz kısayol tuşları id = 16 [bağımlı klavye (3)]

Benim durumumda id = 12 olan cihaz, şimdi "bin" adlı bir klasörün altındaki Masaüstü klasöründe "toggle-touch" adında bir bash betiği oluşturun, "~ / Desktop / bin" olur ve bir sonraki kodu kopyalayın, kontrol edin cihaz değişkeni dokunma id = 12'ye işaret ediyor, durumunuzla düzeltin:

#!/bin/bash

device=12
state=`xinput list-props "$device" | grep "Device Enabled" | grep -o "[01]$"`

if [ $state == '1' ];then
  xinput --disable $device
else
  xinput --enable $device
fi

Bu komut dosyası yürütme iznine ayarlayın:

chmod 775 /Desktop/bin/toggle-touch

Son olarak bu klasörü ana klasörünüzden ".bashrc" dosyasına ekleyebilirsiniz, bu satırı dosyanın sonuna ekleyin:

PATH=$PATH:~/Desktop/bin

yolu şu şekilde güncelleyin:

. .bashrc

Sonra bu komut dosyasını herhangi bir yerden yürütebilirsiniz, umarım bu yardım.


1

Ubuntu 18.04'te Almas Dusal'ın cevabı TouchPad, kodunu aşağıdaki satırda küçük harfle değiştirene kadar işe yaramadı :

read TPdevice <<< $( xinput | sed -nre '/Touchpad/s/.*id=([0-9]*).*/\1/p' )

Bundan sonra dokunmatik yüzey başarıyla devre dışı bırakıldı ve komut dosyası tarafından etkinleştirildi, ancak bu Fare ve Dokunmatik Yüzey ayarları ekranına yansıtılmadı . Ayarlar görünümünü güncellerken dokunmatik yüzeyi değiştiren aşağıdaki yeni komut dosyasını oluşturdum.

#!/bin/bash

state=$( gsettings get org.gnome.desktop.peripherals.touchpad send-events )

if [ "$state" = "'enabled'" ];then
    gsettings set org.gnome.desktop.peripherals.touchpad send-events 'disabled' \
        && notify-send -i touchpad-disabled-symbolic "Touchpad" "Disabled"
else
    gsettings set org.gnome.desktop.peripherals.touchpad send-events 'enabled' \
        && notify-send -i input-touchpad-symbolic "Touchpad" "Enabled"
fi

1

Ubuntu 14.04, 16.04 ve 18.04 üzerinde test edildi ve çalışıyor.

Sevdiniz @Almas Dusal cevabı sevmediği, @ negusp cevabı kullanımı dışında sahip olduğu yerine beri benim modifiye senaryoyu 3 ek faydalar ( : faydaları 1 ve 3 altında 2019 12 Eylül'de eklenmiştir GÜNCELLEME ):

  1. Her xinputiki TouchpadAND'in çıktısını arar TouchPad, çünkü bazı sistemlerde P büyük harfle yazılırken diğerleri içermez. Bu, betiğimi daha fazla sistemle uyumlu hale getirir (umarım TÜM sistemler).
  2. zenityDokunmatik yüzeyin şimdi ETKİN veya DEVRE DIŞI olup olmadığını göstermek için 2 saniyelik otomatik kapanma açılır pencerelerini ekler . Bu açılır pencerelerin ekran görüntülerini aşağıda görebilirsiniz.
  3. Düzgün sağlayarak, kaydırma tekerleği hızını belirleyen imwheelbir fare kullanırken devre dışı bırakırken, (bir farenin kaydırma tekerleğini kullanırken Ubuntu / Linux içinde yavaş kaydırma tekerleği sorunu giderir olan) imwheelbir dokunmatik ekranı kullanarak ne zamandan beri, imwheelaksi gerçekten glitchy kaydırma dokunmatik yüzeyi yapar etkinleştirildiğinde. Bu işi yapmak için ilgili satırları kaldırdığınızdan emin olun. Örn: # imwheel -b "4 5"ve # killall imwheel.
#!/bin/bash

# GS_toggle_touchpad.sh
# - toggle the touchpad on and off

# Gabriel Staples
# Written: 2 Apr. 2018 
# Updated: 12 Sept. 2019 

# References:
# - /ubuntu//a/874865/327339
# - /ubuntu/844151/enable-disable-touchpad/1109515#1109515 <-- my own ans!

# Search for id number of "TouchPad" OR "Touchpad" in `xinput` list; manually type `xinput` to see all your devices
read TouchPadDeviceId <<< $( xinput | sed -nre '/TouchPad|Touchpad/s/.*id=([0-9]*).*/\1/p' ) 

state=$( xinput list-props "$TouchPadDeviceId" | grep "Device Enabled" | grep -o "[01]$" )

echo "TouchPadDeviceId = $TouchPadDeviceId"
echo "state = $state"

if [ "$state" -eq '1' ];then
    xinput --disable "$TouchPadDeviceId"
    zenity --info --text "Touchpad DISABLED" --timeout=2
    # Next line required only if using imwheel to fix slow scroll speed in Chrome, for ex; see here: 
    # /ubuntu//a/991680/327339
    # imwheel -b "4 5"
else
    xinput --enable "$TouchPadDeviceId"
    zenity --info --text "Touchpad ENABLED" --timeout=2
    # Next line required only if using imwheel to fix slow scroll speed in Chrome, for ex; see here: 
    # /ubuntu//a/991680/327339
    # killall imwheel
fi

Çarkın sadece kaydırma tekerleğinizin hızını düzeltmek için bu cevabı izliyorsanız gerekli olduğunu unutmayın: Chrome kaydırma hızını kalıcı olarak düzeltin .

Şimdi, Ctrl+ Alt+ kısayol tuşunu atayın P(veya seçtiğiniz her şey ['P' benim durumumda 'P'ad dokunuşunu temsil eder]). Yukarıdaki betiğe ek olarak zenity, burada yanıtımda daha fazla açıkladığım kendiliğinden kapanan açılır pencere bölümü ( /superuser//a/1310142/425838 ).

Şimdi, yukarıdaki kısayolu kullandığımda, 2 saniye sonra otomatik olarak kapanan bu açılır pencereyi görüyorum:

resim açıklamasını buraya girin

Ve tekrar basarsam 2 saniye sonra otomatik olarak kapanan bu açılır pencereyi alırım:

resim açıklamasını buraya girin

Mükemmel!

Ek bir bonus olarak, eğer ağır bir fare kullanıcısıysanız, yukarıdaki komut dosyanızı çağıran komutu Ubuntu'daki başlangıç ​​programlarınıza eklemeniz yeterlidir, böylece bilgisayarınız her başlatıldığında izleme panelinizi çalıştırır ve devre dışı bırakır! Bu set var, böylece elimin tabanı ile track pad'i çarpmayı bırakabilir ve her zaman yanlışlıkla bir şeyler silebilirim! Şimdi, elim izleme tuşunu çarptığında, hiçbir şey olmuyor çünkü devre dışı. :)

Not: Bu, Ubuntu 18.04 ve eski sürümlerde harika çalışıyor. Ubuntu 18.04 ve Ubuntu 14.04'te test ettim. İşte 18.04'teki kısayol ayarları penceresinden bir ekran görüntüsü:

resim açıklamasını buraya girin

İlişkili:

  1. UDPATE: Bu betiğin en son sürümünü buradan edinin! https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/blob/master/toggle_touchpad.sh
  2. Chrome kaydırma hızını kalıcı olarak düzeltin

HP Probook'umda yeniden etkinleştirilemez. Xinput SynPS/2 Synaptics TouchPadve öğelerinde 2 öğe vardır SYNA306A:00 06CB:CD0B Touchpad. İlk yürütme birini devre dışı bırakır, ikincisi diğerini devre dışı bırakır. Oradan ikinciyi değiştirecek, ama asla ilkini değiştirmeyecek.
rtaft

0

Senaryomu burada bırakarak (aşağı yukarı yukarıdakiyle aynı). Kutudan çıkar çıkmaz çalışır, cihaz kimliğinin önceden aranmasına gerek yoktur.

#!/bin/bash

function query_device_id {
    xinput list | grep -i touchpad | sed 's/.*id=\([0-9]*\).*/\1/g'
}

let device_id=$(query_device_id)

let state=$(xinput list-props $device_id | grep Enabled | awk '{print $4;}')

let new_state=$((1 - $state))

xinput set-prop $device_id "Device Enabled" $new_state

0

Bir kabuk komut dosyası oluşturun ve kodun altına yapıştırın ve touchPadDisable.sh olarak adlandırın.

#!/bin/bash
temp=$(xinput | grep -i "Elantech Touchpad" | cut -d"=" -f 2 | cut -d"[" -f 1)
xinput disable $temp

Başka bir kabuk betiği oluşturun ve kodun altına yapıştırın ve touchPadEnable.sh olarak adlandırın.

#!/bin/bash
temp=$(xinput | grep -i "Elantech Touchpad" | cut -d"=" -f 2 | cut -d"[" -f 1)
xinput enable $temp

İlk komut dosyası dokunmatik yüzeyi devre dışı bırakır, ikincisi dokunmatik yüzeyi etkinleştirir.

Bu komut dosyasını klavyelerdeki özel kısayollara ekleyebilirsiniz.


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.