Yazarken dokunmatik yüzeyi nasıl devre dışı bırakabilirim? Ubuntu'da 16.04 syndaemon çalışmıyor


42

Yazarken dokunmatik yüzeyi devre dışı bırakmak istiyorum. Bunu denedim:

syndaemon -i 1 -d -t -K

1 saniye boyunca dokunmatik yüzeye dokunarak ve kaydırmayı devre dışı bırakmalı ve değiştirici + tuş kombinasyonlarını görmezden gelmelidir, ancak syndaemonaçıklandığı gibi ayar yapıldıktan sonra hiçbir şey değişmez. Dokunmatik yüzey her zaman aktif ve çok can sıkıcı.

Dell Precision 5510'da Ubuntu 16.04 kullanıyorum.


1
Tıklatma için dokunun, yazarken varsayılan olarak devre dışı bırakılır, imleç taşıma / kaydırma değildir. Yazarken Touchpad'in kendisini devre dışı bırakmanın bir yolu var, ancak syndaemon / synclient ile değil. Ancak yöntem Sistem Ayarları> Fare ve Dokunmatik Yüzey> Dokunmatik Yüzey ayarlarının kaybolmasına neden olacaktır. Burada bazı bilgiler - bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/…
doug

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

1
@doug ben denedim ve hiçbir şey değişti
marsUbuntux

@doug bunun yerine synaptics sürücüsünü ve libinput Xorg sürücüsünü kaldırmayı denemeli miyim?
marsUbuntux

Bununla ilgili sorun, sistem ayarlarında dokunmatik yüzey ayarlarına sahip olmayacağınız ve hata raporundaki örnekte olduğu gibi manuel olarak eklemek zorunda kalacaksınız. Sözdizimi ile denediğiniz şey aslında aslen varsayılandı, yani. - yazarken tıklamak için dokunun devre dışı bırakma ancak imleç hareketini devre dışı bırakma. Siz yazarken tıklamak için tıklamanız devre dışı mı?
Doug

Yanıtlar:


36

Çalışan iki touchpad sürücünüz olabilir; burada syndaemon daha sonra yanlış olanla etkileşime girer. Dell XPS 13'te de aynı sorunu yaşadım ve bu konu ( http://ubuntuforums.org/showthread.php?t=2316240 ) bana yardımcı oldu.

Ayrıca iki dokunmatik yüzey cihazı görüyorsanız, birini devre dışı bırakmayı deneyin. Farklı bir bilgisayarınız olduğundan, bağlantıdaki talimatlar sizin için tam anlamıyla uygulanabilir veya olmayabilir.

Bahsedilen postadan prosedür şöyledir:

dosyayı /usr/share/X11/xorg.conf.d/51-synaptics-quirks.confmetin düzenleyicinizle kök olarak açın Aşağıdaki metni yerleştirin:

# 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

sudo systemctl restart lightdm Xorg'u yeniden başlatın ya da yeniden başlatın, Credit komutuyla “ ubuntuforums.org” dan uzaklaşmaya gider.

Ocak 2018’den bu yana Dell’in Ubuntu Dokunmatik Yüzey / Fare Sorunları ile ilgili Bilgi Bankası'nda resmi bir sayfası vardır . Sayfa "SynPS / 2 Synaptics TouchPad" i devre dışı bırakmak için bu düzeltmeyi açıklar ve ayrıca mousepad sürücüsü olarak synaptics yerine libinput'a geçmenizi önerir.


senin gibi aynı durum vardı:> DLL06E5: 01 06CB: 7A13 Dokunmatik yüzey id = 14 [slave pointer (2)]> SynPS / 2 Synaptics Dokunmatik Yüzey id = 16 [slave pointer (2)] Bağlantıda açıklananla aynı şeyi yaptı sen gönderdin. İşe yaradı! Artık touchpad istediğim gibi çalışıyor. Teşekkür ederim
marsUbuntux

Burada bahsedilen çözüm Dell Lattitude 3570 için de işe yaradı.
chanux

Bu şaşırtıcı, her zaman bunun tamir edilemez olduğunu düşündüm. Çok teşekkürler. Bu gerçekten kullanışlıdır.
realhu

Bu cevap daha fazla krediyi hak ettiğinden, biraz daha açıklığa kavuşturmak için güncelledim.
William

2
Bağlantı koparsa, çözümü forumdan cevabın içine çekmeye değer olabilir.
BeepDog

30
sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator
  • Dokunmatik yüzey göstergesini açın ve gösterge simgesine tıklayın.
  • Tercihleri ​​(eylem sekmesinde) "yazarken dokunmatik yüzeyi devre dışı bırak" olarak değiştirebilirsiniz

Şerefe!


1
Bu bir gnome uzantısı olarak kullanılabilir: extensions.gnome.org/extension/131/touchpad-indicator
zamnuts

2
Ubuntu Budgie-Remix'te benim için işe yaramadı 16.04.3
r3wt

Zamnuts'un yorumunu netleştirmek için: Tercihlere yalnızca, sağladığı linke göre cilveli bir uzantı olarak kurarsanız erişebilirsiniz (ya da en azından başka türlü yapamadım). Yine de yazarken dokunmatik yüzeyi devre dışı bırakma seçeneğim yok.
glS

Yanlışlıkla oy kullandım (uyku yazıyor olmalı) ve cevap güncellendiği sürece şimdi kaldıramıyorum. (Açıkçası askubuntu.com bu şekilde kurulur.) Yalnızca boşluk eklemeye çalıştım, ancak en az 8 (farklı?) Karakter gerekiyor. Cevabı düzenlemek ve "Öneri: Dokunmatik yüzey uygulamasını otomatik başlatmaya ayarlayın, böylece her oturum açışında manuel olarak başlatmanıza gerek kalmaz." aşağı oy.
st2000

10

Ubuntu 17.10 kullanıyorum ve burada önerilen farklı çözümler denedim, çoğunlukla işe yaramaz. ubuntu 17.10'da başladığınızda özellikle dokunmatik yüzey gösterge yazılımı sadece dokunmatik yüzeyi devre dışı bırakın ve dizüstü bilgisayarı yeniden başlatmadan yeniden etkinleştirmenin bir yolunu bulamadım. şimdi bu çözümü buldum, bence hangisi hala oldukça iyi çalışıyor: sadece bu komutu kullanın,

synclient PalmDetect = 1

Bu, en azından sonunda daha iyi bir yaşam sağlayan dokunmatik yüzeyde avuç içi gereksiz yere dokunmasını önleyecektir.


Bu çok iyi bir çözüm ve tek satırlık bir düzeltmedir. Bunu daha önce yaşadım ama kaybettim. Gönderdiğiniz için teşekkür ederiz!
Thomas Dignan

Mükemmel değil, ama 17.10'da çok yardımcı oluyor, teşekkürler.
Jack,

Bu mükemmel çalışıyor. Sanırım varsayılan değil, ama bu sadece Linux yolu sanırım.
Gunchars

@ tareqalam: Bu komut yeniden başlatmaya devam ediyor mu?
Lonnie En İyi

2

'Xinput' seçeneklerine baktıktan sonra, Ubuntu 16.04 ve Lubuntu 16.04 kullanarak Synaptics dokunmatik ekranı devre dışı bırakmak için etkili ve kolay bir çözüm buldum

Bir terminal penceresinde, 'sudo -s' yazıp şifrenizi yazarak kendinize idari erişim sağlayın.

Leafpad veya gedit gibi favori editörünüzü kullanarak yeni bir script dosyası oluşturun:

leafpad /usr/local/bin/tpadoff

ve aşağıdakileri ekleyin:

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

Dosyayı kaydedin ve editörden çıkın. Ardından komutu girin:

chmod 755 /usr/local/bin/tpadoff

dosyayı çalıştırılabilir hale getirmek için. Bir tpadon dosyası oluşturmak için tekrarlayabilirsiniz, sadece '--disable' ı '--enable' olarak değiştirin.

İşlem tamamlandığında, yönetici erişimini devre dışı bırakmak için terminal penceresinden 'çıkın'.

Yeni bir terminal penceresi açarak ve en sevdiğiniz düzenleyiciyi kullanarak masaüstü girişleri oluşturulabilir (bu örnekte tekrar leafpad kullanıyorum):

cd Desktop
leafpad tpadoff.desktop

ve aşağıdaki metni ekleyin: [Masaüstü Girişi] Ad = Dokunmatik Yüzey Kapalı Yorum = Kapat Dokunmatik Yüzey Çalıştır = / usr / yerel / bin / tpadoff Terminal = yanlış Tür = Uygulama

Dosyayı kaydedin ve editörden çıkın. Ardından aşağıdaki komutu girin:

 chmod 775 tpadoff.desktop 

Tüm 'off' referanslarını 'açık' olarak değiştirerek, bir tpadon.desktop oluşturmak için de tekrarlayabilirsiniz.

Tamamlandığında, bir masaüstü simgesine çift tıklayarak veya bir terminal penceresine 'tpadoff' girerek dokunmatik yüzeyi kapatmanın (ve isteğe bağlı olarak açmanın) iki yolu olacak.

Dokunmatik yüzeyiniz farklıysa, dokunmatik yüzeyinizin tam sözdizimini bulmak için terminal pencerelerinde 'xinput' kullanmanız gerekebilir. Ardından '/ usr / local / bin / tpadoff' dosyasını xinput'un bildirdiği şekilde eşleştirin.


1
Soru, yazarken (yani otomatik olarak) dokunmatik yüzeyi devre dışı bırakmakla ilgilidir - yani doğrudan bir cevap vermemeniz durumunda cevabınızın kalitesini çok takdir ediyorum.
guntbert

2

Aylarca bir çözüm aradıktan sonra, yazarken dokunmatik yüzeyi devre dışı bırakmak için basit bir Python programı yazmaya karar verdim. Bilgisayarınızı her başlattığınızda çalışmasını sağlamak için programı Başlangıç ​​Uygulamaları'na ekleme. Sen çalıştırmak için gereken xinput listbenim durumumda 17 olduğunu, klavyenizin kimliği tespit etmek.

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)]

İşte program

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()

Müthiş çözüm, sadece 0,5 saniyede bir yeni olay olup olmadığını görmek için xinput ve yoklama kullanarak klavye etkinliğini izleyerek. Bunun CPU etkinliği üzerinde oldukça az bir etkisi var, ancak davranışı yalnızca klavye olaylarında gerçekleşmesi için tetiklemenin bir yolu olsaydı yine de iyi olurdu. Sol ok ve boşluk gibi bazı tuşları dışlamanızın bir nedeni var mı, yoksa sadece kişisel tercih mi?
theferrit32 1

2

Ubuntu 19.04'te, "Tıkla Dokunun" özelliğini devre dışı bırakmanın (ihtiyaçlarım için) yeterli olduğunu gördüm:

görüntü tanımını buraya girin

Bununla birlikte, bunun sonucu olarak, aslında tıklamanız için dokunmatik yüzeyin düğmelerini (umarım düğmeleriniz vardır) kullanmak zorunda kalacaksınız. Benim için bu adil bir takas.

Eğer "sol ve sağ" tıklama düğmelerine sahip değilseniz (dokunmatik yüzeyinizden ayrı olarak) dokunmatik yüzeyinizin hassasiyetini kalibre edebilirsiniz . Bunu, bu hata raporunda Peter Hutterer'den öğrendim .

Dizüstü bilgisayar üreticilerinin keşfedilmemiş dokunmatik yüzeyli dizüstü bilgisayarlar yapmalarını diliyorum. Klavyenin tuşları ile aynı hizada olan bu dokunmatik yüzeyler (yerine basılmış) bir tasarım hatasıdır.

Lütfen dizüstü bilgisayarınızın üreticilerinin bu kötü tasarım nedeniyle size neden oldukları sorunları bilmelerini sağlayın, aksi halde gelecekteki modellerde bunu yapmaya devam ederler.


1
Bunun çok iyi çalıştığını doğruladı. Görmezden gelebileceğim küçük bir şey fark ettim: Yağ avuçlarım yazı yazarken touchpad'e dokunduğunda, fare imlecinin biraz hareket ettiğini görebiliyorum ama en azından zaman kaybına neden olan başka bir yere tıklamasına izin vermiyor. İdeal olarak, Tıkla Tıkla davranışını yine de yapabildim, ancak en azından dizüstü bilgisayarımda bu işlev hiçbir zaman bu kadar iyi çalışmadı. Yani takas gerçekten adil.
bgoodr

1

Kubuntu kullanıcıları için ...

Kubuntu 16.04'te - yazarken dokunmatik yüzeyi devre dışı bırakmak için ayarlar-> giriş aygıtları-> dokunmatik yüzey -> Dokunmatik yüzeyi etkinleştir / devre dışı bırak altından "Yalnızca muslukları kapat ve kaydır" adlı onay kutusunu temizlemem gerekiyordu. Açık gözükebilir ama ...


ubuntu 16.04 çalışma
Nazmul Hasan

Ubuntu 18.04'te böyle bir alt seçenek yoktur, ne Ayarlar ne de Tweaks'tir.
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

veya daha net bir şekilde

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

lütfen biçimlendirmeyi düzeltin
Pierre.Vriens 21:18

1
Ubuntu'ya Sormaya Hoş Geldiniz! Bu komutun (dizinin) ne yaptığı ile ilgili ayrıntılı bilgi vermek için bu cevabı düzenlemenizi tavsiye ederim . Düz bir komut (sıra) nadiren bir cevap olarak kabul edilir. (Ayrıca bkz ? Ben iyi bir cevap yazmak nasıl cevap sıralar yaptığınız hakkında genel tavsiyeler için Ubuntu Ask en değerli kabul edilir.)
David Foerster
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.