Aktifkan / nonaktifkan touchpad

17

Saya berhasil menginstal Ubuntu 16.04 pada asus ux501 vw saya, tetapi beberapa jalan pintas saya tidak berfungsi. Saya tidak ingin memperbaiki semuanya, tetapi hanya satu: cara pintas yang memungkinkan saya untuk mengaktifkan atau menonaktifkan touchpad, sehingga saya dapat menulis dokumen panjang dengan bekerja tentang touchpad.

Saya mencoba menemukannya di google tetapi saya tidak mendapatkan apa-apa.

Bisakah seseorang menjelaskan kepada saya bagaimana cara memperbaikinya? Terima kasih!

Rei
sumber

Jawaban:

24

Saya membuat skrip bash ini dari jawaban negusp . Ia menemukan dan menghidupkan perangkat TouchPad. Anda dapat mengonfigurasi pintasan khusus untuknya di pengaturan sistem.

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

Saya sedang mengatur Ctrl+ Shift+ F9untuk mengaktifkan dan menonaktifkan touchpad seperti ini:

masukkan deskripsi gambar di sini

Sunting: Anda mungkin perlu membuat skrip Anda dapat dieksekusi dengan perintah chmod + x nama file atau input / bin / bash / filepath ke bidang Perintah pada jendela pintasan kustom.

Almas Dusal
sumber
2
Jarang ada kebutuhan untuk rantai grepdan sed. Anda dapat dengan mudah menggabungkan keduanya sed -nre '/TouchPad/s/.*id=([0-9]*).*/\1/p'.
David Foerster
3
Sebuah koreksi kecil dalam skrip untuk Ubuntu 17.10 setelah mendapatkan garis kesalahan 6: [:: ekspresi integer diharapkan tidak dapat menemukan perangkat Ubah TouchPad ke Touchpad
Gregor Grajzar
1
Jawaban yang luar biasa! Hanya penambahan saya untuk menambah zenity --info --text "Touchpad DISABLED" --timeout=2dan zenity --info --text "Touchpad ENABLED" --timeout=2untuk Anda ifdan elseblok, masing-masing, untuk memunculkan jendela yang mengumumkan negara baru kemudian autocloses di 2 detik.
Gabriel Staples
1
Lihat sedikit modifikasi saya di sini: askubuntu.com/a/1109515/327339
Gabriel Staples
1
Perbarui: beberapa sistem menunjukkan Touchpadalih-alih TouchPadpada keluaran dari xinput, jadi saya telah memperbarui jawaban saya untuk mencari keduanya. Juga, saya sudah membuatnya benar memperbaiki masalah roda gulir lambat juga, menggunakan imwheel. Lihat ans lengkap di sini: askubuntu.com/questions/844151/enable-disable-touchpad/…
Gabriel Staples
11

Anda ingin pintasan, tetapi Anda dapat dengan mudah meletakkan 2 skrip di desktop dan menjalankannya.

Pertama, pergi ke terminal. Jenis xinput. Contoh Keluaran:

⎡ 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 

Temukan Touchpad. Dalam contoh ini, touchpad terdaftar sebagai id = 12

Buat skrip pertama dengan ini:

#!/bin/bash
xinput enable 12

Simpan dan touchpadenable.shberi nama , dan di terminal, tandai sebagai dapat dieksekusi dengan:

chmod +x touchpadenable.sh

Lakukan hal yang persis sama lagi, tetapi ganti nama file tersebut dengan touchpaddisable.sh(atau apa pun), dan alih-alih

xinput enable 12

Gunakan perintah

xinput disable 12

Simpan, tandai sebagai executable, dan Anda harus dapat menjalankan skrip dari desktop. Catatan: Anda mungkin harus mengklik kanan skrip, mengklik properti, dan membiarkannya dijalankan.

negusp
sumber
Hai terima kasih atas jawabannya! Saya akan menggunakan sesuatu seperti ini! Hanya satu hal yang menurut Anda akan mungkin jika saya membuatnya pada 1 file skrip sehingga saya dapat menggunakan cara pintas yang sama?
Rei
@ Thomas Lihat jawaban ini: askubuntu.com/questions/597395/…
negusp
6

Anda harus melakukan seperti jawaban negusp , periksa dulu perangkat sentuh Anda, dan akan menunjukkan sesuatu seperti ini:

~ $ xinput
⎡ Virtual core pointer id = 2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id = 4 [pointer slave (2)]
⎜ ↳ PixArt Dell MS116 USB Optical Mouse id = 10 [pointer slave (2)]
⎜ ↳ SynPS / 2 Synaptics TouchPad id = 14 [pointer slave (2)]
⎜ ↳ DLLC6B2: 00 06CB: 75BF Touchpad id = 12 [pointer slave (2)]
⎣ Id keyboard inti virtual = 3 [keyboard master (2)]
    ↳ Id keyboard virtual inti XTEST = 5 [keyboard slave (3)]
    ↳ Tombol Daya id = 6 [keyboard slave (3)]
    ↳ Video Bus id = 7 [keyboard slave (3)]
    ↳ Tombol Daya id = 8 [keyboard slave (3)]
    ↳ Tombol Tidur id = 9 [keyboard slave (3)]
    ↳ Integrated_Webcam_HD id = 11 [keyboard slave (3)]
    ↳ AT Diterjemahkan Set 2 keyboard id = 13 [keyboard slave (3)]
    ↳ Tombol cepat Dell WMI id = 15 [keyboard slave (3)]
    ↳ Id hotkey nirkabel DELL = 16 [keyboard slave (3)]

Dalam kasus saya adalah perangkat dengan id = 12, sekarang buat skrip bash dengan nama "toggle-touch" di folder Desktop Anda di bawah folder bernama "bin", akan menjadi "~ / Desktop / bin" dan salin kode berikutnya, periksa variabel perangkat diarahkan ke id sentuh saya = 12, perbaiki dengan case Anda:

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

Setel ke izin eksekusi skrip ini:

chmod 775 /Desktop/bin/toggle-touch

Akhirnya Anda dapat menambahkan path ini ke ".bashrc" dari folder home Anda, cukup tambahkan baris ini ke akhir file:

PATH=$PATH:~/Desktop/bin

perbarui jalur dengan:

. .bashrc

Maka Anda dapat menjalankan skrip ini dari mana saja, saya harap bantuan ini.

hermeslm
sumber
1

Di Ubuntu saya 18,04 jawaban Almas Dusal tidak bekerja sampai saya mengubah 'p' menjadi huruf kecil di TouchPaddalam baris kode berikut:

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

Setelah itu touchpad berhasil dinonaktifkan dan diaktifkan oleh skrip tetapi itu tidak tercermin di layar pengaturan Mouse & Touchpad . Saya membuat skrip baru berikut yang mengaktifkan panel sentuh sambil memperbarui tampilan pengaturan.

#!/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
Samuli Asmala
sumber
1

Diuji dan berfungsi di Ubuntu 14.04, 16.04, dan 18.04.

Lakukan seperti jawaban @Almas Dusal , yang memang menyukai jawaban @ negusp , kecuali gunakan skrip saya yang dimodifikasi karena memiliki 3 manfaat tambahan ( PEMBARUAN: manfaat 1 dan 3 di bawah ditambahkan 12 September 2019 ):

  1. Ini mencari output xinputuntuk kedua TouchpadAND TouchPad, karena beberapa sistem memiliki P dikapitalisasi sedangkan yang lain tidak. Ini membuat skrip saya kompatibel dengan lebih banyak sistem (semoga SEMUA sistem).
  2. Ini menambahkan jendela popup 2-penutupan otomatis melalui zenityuntuk menunjukkan apakah touchpad Anda sekarang DIAKTIFKAN atau DINONAKTIFKAN. Lihat tangkapan layar dari jendela sembulan di bawah ini.
  3. Itu benar memperbaiki kecepatan roda gulir Anda, mengaktifkan imwheel(yang memperbaiki masalah roda gulir lambat Anda di Ubuntu / Linux saat menggunakan roda gulir mouse) ketika Anda menggunakan mouse, sementara menonaktifkan imwheelketika menggunakan touchpad, karena imwheeljika tidak membuat scrolling touchpad benar-benar glitchy saat diaktifkan.
#!/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

Perhatikan bahwa hal imwheel hanya diperlukan jika Anda mengikuti jawaban ini untuk memperbaiki kecepatan roda gulir Anda juga: Secara permanen memperbaiki kecepatan gulir Chrome .

Sekarang, tetapkan itu tombol pintas Ctrl+ Alt+ P(atau apa pun yang Anda pilih ['P' singkatan dari touch'P'ad dalam kasus saya]). Penambahan saya pada skrip di atas adalah zenitybagian jendela popup yang menutup sendiri, yang saya jelaskan lebih banyak dalam jawaban saya di sini ( /superuser//a/1310142/425838 ).

Sekarang, ketika saya menggunakan cara pintas di atas, saya melihat jendela sembulan ini, yang ditutup secara otomatis setelah 2 detik:

masukkan deskripsi gambar di sini

Dan jika saya tekan lagi saya mendapatkan jendela sembulan ini, yang ditutup secara otomatis setelah 2 detik:

masukkan deskripsi gambar di sini

Sempurna!

Sebagai bonus tambahan, jika Anda adalah pengguna mouse yang berat, cukup tambahkan perintah yang memanggil skrip Anda di atas untuk program startup Anda di Ubuntu sehingga itu berjalan dan menonaktifkan track pad Anda setiap kali komputer Anda dinyalakan! Saya memiliki set ini sehingga saya bisa berhenti menabrak track pad dengan dasar tangan saya dan menghapus hal-hal yang tidak sengaja sepanjang waktu! Sekarang, ketika tangan saya menabrak track pad, tidak ada yang terjadi karena dinonaktifkan. :)

Catatan: ini semua berfungsi dengan baik di Ubuntu 18.04 dan juga versi yang lebih lama. Saya sudah mengujinya di Ubuntu 18.04 dan Ubuntu 14.04. Berikut screenshot dari jendela pengaturan pintasan di 18.04:

masukkan deskripsi gambar di sini

Terkait:

  1. Perbaiki kecepatan gulir Chrome secara permanen
Gabriel Staples
sumber
Tidak dapat diaktifkan kembali pada HP Probook saya. Ada 2 item dalam xinput, SynPS/2 Synaptics TouchPaddan SYNA306A:00 06CB:CD0B Touchpad. Eksekusi pertama menonaktifkan satu, yang kedua menonaktifkan yang lain. Dari sana itu akan beralih yang kedua, tetapi tidak pernah yang pertama.
rtaft
0

Meninggalkan skrip saya di sini (kurang lebih sama seperti di atas). Bekerja di luar kotak, tidak perlu mencari ID perangkat terlebih dahulu.

#!/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
erosb
sumber
0

Buat skrip shell dan tempelkan kode di bawah ini ke dalamnya dan beri nama touchPadDisable.sh

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

Buat skrip shell lain dan tempelkan kode di bawah ini ke dalamnya dan beri nama touchPadEnable.sh

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

Skrip pertama akan menonaktifkan touchpad dan yang kedua akan mengaktifkan touchpad.

Anda dapat menambahkan skrip ini ke pintasan khusus di keyboard.

Shrinivas Kulkarni
sumber