Bagaimana saya bisa menonaktifkan touchpad saat mengetik? Di Ubuntu 16,04 syndaemon tidak berfungsi


42

Saya ingin menonaktifkan panel sentuh saat mengetik. Saya mencoba ini:

syndaemon -i 1 -d -t -K

Ini harus menonaktifkan penyadapan dan menggulir pada touchpad selama 1 detik dan mengabaikan kombo pengubah + tombol tetapi setelah pengaturan syndaemonseperti dijelaskan tidak ada yang berubah. Touchpad selalu aktif dan sangat menjengkelkan.

Saya menggunakan Ubuntu 16.04 pada Dell Precision 5510.


1
Ketuk untuk mengklik dinonaktifkan secara default saat mengetik, gerakan kursor / gulir tidak. Ada cara untuk menonaktifkan touchpad itu sendiri saat mengetik tetapi tidak melalui syndaemon / synclient. Namun metode ini akan menyebabkan Pengaturan Sistem> Mouse dan Panel Sentuh> Pengaturan Panel Sentuh menghilang. Beberapa info di sini - bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/…
doug

4
Coba -syndaemon -i 1.0 -d -K
doug

1
@Apakah saya mencobanya dan itu tidak mengubah apa pun
marsUbuntux

@ apakah saya harus mencoba menghapus driver synaptics dan libinput Xorg?
marsUbuntux

Masalahnya adalah Anda tidak akan memiliki pengaturan touchpad di pengaturan sistem & harus secara manual menambahkan seperti contoh dalam laporan bug. Apa yang Anda coba dengan syndaemon awalnya sebenarnya adalah default, yaitu. - Nonaktifkan ketuk untuk mengklik saat mengetik tetapi jangan menonaktifkan gerakan kursor. Apakah ketuk untuk mengklik dinonaktifkan saat Anda mengetik?
doug

Jawaban:


36

Anda mungkin memiliki dua driver touchpad yang sedang berjalan, di mana syndaemon kemudian akan berinteraksi dengan yang salah. Saya memiliki masalah yang sama pada Dell XPS 13, dan utas ini ( http://ubuntuforums.org/showthread.php?t=2316240 ) membantu saya.

Jika Anda juga melihat dua perangkat touchpad, coba nonaktifkan satu. Karena Anda memiliki komputer yang berbeda, instruksi dalam tautan tersebut mungkin atau mungkin tidak berlaku bagi Anda.

Dari pos yang dimaksud, prosedurnya adalah:

buka file /usr/share/X11/xorg.conf.d/51-synaptics-quirks.confsebagai root dengan editor teks Anda. Masukkan teks berikut:

# Disable generic Synaptics device, as we're using
# "DLL0704:01 06CB:76AE Touchpad"
# Having multiple touchpad devices running confuses syndaemon
Section "InputClass"
Identifier "SynPS/2 Synaptics TouchPad"
      MatchProduct "SynPS/2 Synaptics TouchPad"
      MatchIsTouchpad "on"
      MatchOS "Linux"
      MatchDevicePath "/dev/input/event*"
      Option "Ignore" "on"
EndSection

Baik reboot atau restart Xorg dengan perintah sudo systemctl restart lightdm Credit pergi ke ddarling dari ubuntuforums.org.

Sejak Januari 2018, Dell memiliki halaman resmi dalam Basis Pengetahuan tentang Masalah Touchpad / Mouse Ubuntu . Halaman ini menjelaskan perbaikan ini untuk menonaktifkan "SynPSics / 2 Synaptics TouchPad", dan juga menyarankan untuk pindah ke libinput daripada synaptics sebagai driver mousepad.


memiliki situasi yang sama seperti Anda:> DLL06E5: 01 06CB: 7A13 Touchpad id = 14 [pointer slave (2)]> SynPS / 2 Synaptics TouchPad id = 16 [pointer slave (2)] Melakukan hal yang sama seperti yang dijelaskan dalam tautan kamu memposting Berhasil! Sekarang touchpad berfungsi seperti yang saya inginkan. Terima kasih
marsUbuntux

Solusi yang disebutkan di sana juga berfungsi untuk Dell Lattitude 3570.
chanux

Itu luar biasa, saya selalu berpikir ini tidak bisa diperbaiki. Ini menghemat laptap saya. Terima kasih banyak. Ini sangat berguna.
realhu

Karena jawaban ini layak mendapat kredit lebih banyak, saya memperbaruinya untuk menjelaskan lebih banyak.
William S

2
Mungkin ada baiknya menarik solusi dari forum ke jawaban, jika tautannya hilang.
BeepDog

30
sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator
  • Buka indikator panel sentuh dan klik ikon indikator.
  • Anda dapat mengubah preferensi (dalam tab aksi) untuk "menonaktifkan panel sentuh saat mengetik"

Tepuk tangan!


1
Ini tersedia sebagai ekstensi gnome: extensions.gnome.org/extension/131/touchpad-indicator
zamnuts

2
tidak bekerja untuk saya di Ubuntu Budgie-Remix 16.04.3
r3wt

untuk mengklarifikasi komentar zamnuts: Anda hanya dapat mengakses preferensi jika Anda menginstal ini dari sebagai ekstensi gnome sesuai tautan yang ia berikan (atau setidaknya saya tidak dapat melakukannya sebaliknya). Saya tidak memiliki opsi untuk menonaktifkan touch pad saat mengetik.
glS

Saya secara tidak sengaja turun memilih (pasti mengetik tidur) dan sekarang tidak dapat menghapusnya kecuali jawabannya diperbarui. (Jelas askubuntu.com diatur dengan cara ini.) Saya mencoba hanya menambahkan spasi tetapi minimal 8 (berbeda?) Karakter diperlukan. Jika Anda ingin mengedit jawaban dan menambahkan sesuatu seperti "Saran: Atur aplikasi panel sentuh untuk memulai otomatis sehingga Anda tidak perlu memulai secara manual di setiap login.", Daripada saya akan melihat pemberitahuan dan kemudian harus dapat menghapus suara turun saya.
st2000

10

saya menggunakan ubuntu 17.10 dan mencoba berbagai solusi yang disarankan di sini kebanyakan tidak berfungsi khususnya perangkat lunak indikator touchpad ketika dijalankan di ubuntu 17.10 cukup nonaktifkan touchpad dan saya tidak dapat menemukan cara untuk mengaktifkannya kembali tanpa me-restart laptop. sekarang saya menemukan solusi ini saya pikir yang masih berfungsi dengan baik: cukup gunakan perintah ini

sinkronisasi PalmDetect = 1

Ini setidaknya akan mencegah penyadapan yang tidak perlu pada touchpad yang pada akhirnya memberikan kehidupan yang lebih baik.


Ini adalah solusi yang sangat bagus dan ini adalah perbaikan satu baris. Saya pernah mengalami hal ini sebelumnya tetapi hilang. Terima kasih untuk posting!
Thomas Dignan

Tidak sempurna, tetapi banyak membantu pada 17.10, terima kasih.
Jack

Ini bekerja dengan sempurna. Saya terkejut itu bukan default, tapi itu hanya cara Linux, saya kira.
Gunchars

@tareqalam: Apakah perintah ini tetap melakukan reboot?
Lonnie Best

2

Setelah melihat opsi untuk 'xinput', saya menemukan solusi yang efektif dan mudah untuk menonaktifkan Synaptics touchpad menggunakan Ubuntu 16.04 dan Lubuntu 16.04

Di jendela terminal, beri diri Anda akses administratif dengan memasukkan 'sudo -s' dan memasukkan kata sandi Anda.

Menggunakan editor favorit Anda, seperti leafpad atau gedit, buat file skrip baru:

leafpad /usr/local/bin/tpadoff

dan masukkan yang berikut ini:

#!/bin/bash
#/usr/local/bin/tpadoff - turn off touchpad
xinput --disable  'SynPS/2 Synaptics TouchPad'

Simpan file dan keluar dari editor. Kemudian masukkan perintah:

chmod 755 /usr/local/bin/tpadoff

untuk membuat file dapat dieksekusi. Anda dapat mengulangi untuk membuat file tpadon, cukup ubah '--disable' menjadi '--enable'.

Setelah selesai, 'keluar' dari jendela terminal untuk menonaktifkan akses administrator.

Entri desktop dapat dibuat dengan membuka jendela terminal baru dan menggunakan editor favorit Anda (dalam contoh ini, saya menggunakan leafpad lagi):

cd Desktop
leafpad tpadoff.desktop

dan masukkan teks berikut: [Entri Desktop] Nama = TouchPad Off Komentar = Matikan Touchpad Exec = / usr / local / bin / tpadoff Terminal = false Type = Application

Simpan file dan keluar dari editor. Kemudian masukkan perintah berikut:

 chmod 775 tpadoff.desktop 

Anda juga dapat mengulangi untuk membuat tpadon.desktop, mengubah semua referensi 'tidak aktif' menjadi 'aktif'.

Ketika selesai, Anda akan memiliki dua cara untuk mematikan (dan secara opsional menyalakan) touchpad dengan mengklik dua kali ikon desktop atau memasukkan 'tpadoff' di jendela terminal.

Jika touchpad Anda berbeda, Anda mungkin harus menggunakan 'xinput' di jendela terminal untuk menemukan sintaks yang tepat untuk touchpad Anda. Kemudian edit file '/ usr / local / bin / tpadoff' untuk mencocokkan apa yang dilaporkan xinput.


1
Pertanyaannya adalah tentang menonaktifkan touchpad saat mengetik (yaitu secara otomatis) - jadi saat Anda tidak memberikan jawaban langsung, saya sangat menghargai kualitas jawaban Anda.
guntbert

2

Setelah berbulan-bulan mencari solusi, saya memutuskan untuk menulis program Python sederhana untuk menonaktifkan touchpad saat mengetik. Menambahkan program ke Aplikasi Startup untuk membuatnya berjalan setiap kali Anda memulai komputer Anda. Anda perlu menjalankan xinput listuntuk menentukan id keyboard Anda, dalam kasus saya ini adalah 17.

xinput list
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® Nano Transceiver v1.0    id=11   [slave  pointer  (2)]
⎜   ↳ Microsoft Microsoft® Nano Transceiver v1.0    id=12   [slave  pointer  (2)]
⎜   ↳ DLL082A:01 06CB:76AF Touchpad             id=14   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=18   [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)]
    ↳ Microsoft Microsoft® Nano Transceiver v1.0    id=10   [slave  keyboard (3)]
    ↳ Integrated_Webcam_HD                      id=13   [slave  keyboard (3)]
    ↳ Intel Virtual Button driver               id=15   [slave  keyboard (3)]
    ↳ Intel HID events                          id=16   [slave  keyboard (3)]
    **↳ AT Translated Set 2 keyboard                id=17   [slave  keyboard (3)]**
    ↳ Dell WMI hotkeys                          id=19   [slave  keyboard (3)]
    ↳ Microsoft Microsoft® Nano Transceiver v1.0    id=20   [slave  keyboard (3)]

Inilah programnya

import time 
import subprocess
import threading

def main():
    subprocess.call('gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true', shell=True)
    p = subprocess.Popen('xinput test 17', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    clickTime = [0, 0]
    def checkTime():
        keys = [37, 50, 62, 64, 105, 108, 133]
        while True:
            out = p.stdout.readline()

            if len(out) < 1:
                break
            key = int(out.split()[-1])
            if key not in keys:
                clickTime[0] = time.time()

    t = threading.Thread(target=checkTime)
    t.start()

    lastTime = 0
    touchpad = True
    while True:
        inactive = time.time() - clickTime[0]
        # print ('inactive for', inactive)
        if inactive > 1:            
            if not touchpad:
                print ('Enable touchpad')
                subprocess.call('gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click true', shell=True)
            touchpad = True
        else:
            if touchpad:
                print ('Disable touchpad')
                subprocess.call('gsettings set org.gnome.desktop.peripherals.touchpad tap-to-click false', shell=True)
            touchpad = False
        time.sleep(0.5)

    retval = p.wait()

if __name__ == '__main__':
    main()

Solusi luar biasa, dengan hanya memantau aktivitas keyboard menggunakan xinput dan polling untuk melihat apakah acara baru terjadi setiap 0,5 detik. Itu memiliki dampak yang sangat minimal pada aktivitas CPU, tetapi akan lebih baik jika ada cara untuk memicu perilaku hanya terjadi pada acara keyboard. Apakah ada alasan Anda mengecualikan kunci tertentu seperti panah kiri dan spasi, atau hanya preferensi pribadi?
theferrit32

2

Di Ubuntu 19.04, saya merasa cukup (untuk kebutuhan saya) cukup dengan menonaktifkan fitur "Ketuk untuk Klik":

masukkan deskripsi gambar di sini

Namun, konsekuensinya, Anda harus benar-benar menggunakan tombol touchpad (semoga Anda memiliki tombol) untuk mengklik. Bagi saya, itu pertukaran yang adil.

Jika Anda sebenarnya tidak memiliki tombol klik "kiri dan kanan" (terpisah dari pad sentuh Anda), Anda dapat mengkalibrasi sensitivitas touchpad Anda . Saya belajar tentang ini dari Peter Hutterer, dalam laporan bug ini .

Saya berharap produsen Laptop, tidak membuat laptop dengan touchpads non-surut. Papan sentuh ini yang sejajar dengan tombol keyboard (bukan surut) adalah cacat desain.

Harap beri tahu produsen laptop Anda tentang masalah yang disebabkan oleh desain yang buruk ini, jika tidak mereka akan membabi buta terus melakukan hal ini di model mendatang.


1
Dikonfirmasi ini bekerja dengan sangat baik. Saya perhatikan hal kecil yang bisa saya abaikan: ketika telapak tangan saya menyentuh touchpad saat mengetik, saya bisa melihat kursor mouse bergerak sedikit, tetapi setidaknya tidak membiarkannya mengklik di tempat lain yang sangat membuang waktu. Idealnya, saya masih dapat memiliki perilaku Tap To Click, tetapi setidaknya pada laptop saya, fungsi itu tidak pernah bekerja dengan baik. Jadi kompromi memang adil.
bgoodr

1

Untuk pengguna Kubuntu ...

Pada Kubuntu 16.04 - untuk menonaktifkan panel sentuh saat mengetik saya harus mengosongkan kotak centang yang disebut "Nonaktifkan keran dan hanya menggulir" di bawah pengaturan-> perangkat input-> touchpad-> Mengaktifkan / menonaktifkan panel sentuh. Mungkin terlihat jelas tapi ...


ubuntu 16.04 bekerja
Nazmul Hasan

Tidak ada sub-opsi pada Ubuntu 18.04, baik Pengaturan maupun di Tweaks.
dskrvk

0
xinput list |
while read line; do
    if [[ $line == *Touchpad* ]]; then
        tid="$(echo $line | cut -d '=' -f 2 | cut -c 1-2)"
        xinput set-prop $tid "Device Enabled" 0
    fi
done

atau lebih ringkas

xinput list | sed -nre 's/^.*Touchpad.*\sid=(\S+).*$/\1/p' | xargs -I{} -- xinput set-prop {} 'Device Enabled' 0

tolong perbaiki pemformatan
Pierre.Vriens

1
Selamat Datang di Tanya Ubuntu! Saya sarankan untuk mengedit jawaban ini untuk memperluasnya dengan perincian spesifik tentang apa yang dilakukan perintah ini (urutan). Perintah sederhana (urutan) jarang dianggap sebagai jawaban. (Lihat juga Bagaimana cara saya menulis jawaban yang baik? Untuk saran umum tentang jenis jawaban apa yang dianggap paling berharga di Ask Ubuntu.)
David Foerster
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.