Come posso disabilitare il touchpad durante la digitazione? Su Ubuntu 16.04 syndaemon non funziona


42

Voglio disattivare il touchpad durante la digitazione. Ho provato questo:

syndaemon -i 1 -d -t -K

Dovrebbe disattivare il tocco e lo scorrimento sul touchpad per 1 secondo e ignorare le combinazioni di modificatore + tasti ma dopo l'impostazione syndaemoncome descritto non viene modificato nulla. Il touchpad è sempre attivo ed è molto fastidioso.

Sto usando Ubuntu 16.04 su un Dell Precision 5510.


1
Tocca per fare clic è disabilitato per impostazione predefinita durante la digitazione, lo spostamento / scorrimento del cursore no. C'è un modo per disabilitare il touchpad stesso durante la digitazione ma non tramite syndaemon / synclient. Tuttavia, il metodo farà scomparire Impostazioni di sistema> Mouse e touchpad> Impostazioni touchpad. Alcune informazioni qui - bugs.launchpad.net/ubuntu/+source/xserver-xorg-input-synaptics/…
doug

4
Prova -syndaemon -i 1.0 -d -K
Doug,

1
@doug l'ho provato e non ha cambiato nulla
marsUbuntux

@doug dovrei provare a rimuovere il driver synaptics e il driver libinput Xorg?
marsUbuntux,

Il problema è che non avrai impostazioni del touchpad nelle impostazioni di sistema e dovrai aggiungere manualmente come nell'esempio nella segnalazione bug. Quello che stavi provando con syndaemon in origine era in realtà l'impostazione predefinita, vale a dire. - disabilita toccare per fare clic durante la digitazione ma non disabilitare lo spostamento del cursore. Tocca per fare clic su disabilitato durante la digitazione?
Doug

Risposte:


36

Potresti avere due driver del touchpad in esecuzione, in cui Syndaemon interagirebbe con quello sbagliato. Ho avuto lo stesso problema su un Dell XPS 13 e questo thread ( http://ubuntuforums.org/showthread.php?t=2316240 ) mi ha aiutato.

Se vedi anche due dispositivi touchpad, prova a disabilitarne uno. Dato che hai un computer diverso, le istruzioni nel link potrebbero essere o non essere letteralmente applicabili per te.

Dal posto cui si fa riferimento, la procedura è:

apri il file /usr/share/X11/xorg.conf.d/51-synaptics-quirks.confcome root con il tuo editor di testo Inserisci il seguente testo:

# 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

Riavvia o riavvia Xorg con il comando sudo systemctl restart lightdm Credit va a darling da ubuntuforums.org.

Da gennaio 2018, Dell ha una pagina ufficiale nella sua Knowledge Base sui problemi del touchpad / mouse di Ubuntu . La pagina descrive questa correzione per disabilitare "SynPS / 2 Synaptics TouchPad" e suggerisce anche di passare a libinput anziché a synaptics come driver del mousepad.


ha avuto la tua stessa situazione:> DLL06E5: 01 06CB: 7A13 Touchpad id = 14 [puntatore slave (2)]> SynPS / 2 Synaptics TouchPad id = 16 [puntatore slave (2)] Ha fatto la stessa cosa descritta nel link hai pubblicato. Ha funzionato! Ora il touchpad funziona come voglio. Grazie
marsUbuntux il

La soluzione citata ha funzionato anche per Dell Lattitude 3570.
Chanux,

È fantastico, ho sempre pensato che non fosse risolvibile, il che mi risparmiava il giro. Molte grazie. Questo è davvero utile
realhu,

Poiché questa risposta merita più credito, l'ho aggiornata per chiarire un po 'di più.
William S,

2
Potrebbe valere la pena inserire la soluzione dal forum nella risposta, nel caso in cui il collegamento scompaia.
BeepDog,

30
sudo add-apt-repository ppa:atareao/atareao
sudo apt-get update
sudo apt-get install touchpad-indicator
  • Aprire l'indicatore del touchpad e fare clic sull'icona dell'indicatore.
  • Puoi modificare le preferenze (nella scheda azione) per "disabilitare il touchpad durante la digitazione"

Saluti!


1
Questo è disponibile come estensione gnome: extensions.gnome.org/extension/131/touchpad-indicator
zamnuts

2
non ha funzionato per me su Ubuntu Budgie-Remix 16.04.3
r3wt

per chiarire il commento di zamnuts: puoi accedere alle preferenze solo se lo installi da un'estensione di gnome secondo il link che ha fornito (o almeno non sono stato in grado di farlo altrimenti). Non ho la possibilità di disabilitare il touchpad durante la digitazione.
glS

Inavvertitamente ho votato (devo aver digitato il sonno) e ora non posso rimuoverlo a meno che la risposta non sia aggiornata. (Evidentemente askubuntu.com è impostato in questo modo.) Ho provato ad aggiungere solo spazi ma sono necessari almeno 8 (diversi?) Caratteri. Se si desidera modificare la risposta e aggiungere qualcosa come "Suggerimento: impostare l'applicazione touch pad per l'avvio automatico, quindi non è necessario avviarlo manualmente ad ogni accesso.", Dovrei vedere una notifica e quindi poter rimuovere il mio voto negativo.
st2000,

10

sto usando Ubuntu 17.10 e ho provato diverse soluzioni suggerite qui per lo più non funziona. specialmente il software indicatore del touchpad all'avvio in Ubuntu 17.10 disabilita semplicemente il touchpad e non sono riuscito a trovare alcun modo per riattivarlo senza riavviare il laptop. ora ho trovato questa soluzione penso che ancora adesso funziona abbastanza bene: basta usare questo comando,

synclient PalmDetect = 1

Questo almeno eviterà di toccare inutilmente il palmo della mano sul touchpad che alla fine dà una vita migliore.


Questa è un'ottima soluzione ed è una soluzione a una riga. L'ho già fatto prima, ma l'ho perso. Grazie per la pubblicazione!
Thomas Dignan,

Non perfetto, ma aiuta molto il 17.10, grazie.
Jack

Funziona perfettamente. Sono sorpreso che non sia un valore predefinito, ma è solo Linux, immagino.
Gunchars,

@tareqalam: questo comando persiste un riavvio?
Lonnie Best

2

Dopo aver esaminato le opzioni per "xinput", ho trovato una soluzione efficace e semplice per disabilitare il touchpad Synaptics usando Ubuntu 16.04 e Lubuntu 16.04

In una finestra del terminale, concediti l'accesso amministrativo inserendo 'sudo -s' e inserendo la tua password.

Utilizzando il tuo editor preferito, come leafpad o gedit, crea un nuovo file di script:

leafpad /usr/local/bin/tpadoff

e inserisci quanto segue:

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

Salvare il file ed uscire dall'editor. Quindi immettere il comando:

chmod 755 /usr/local/bin/tpadoff

per rendere eseguibile il file. Puoi ripetere per creare un file tpadon, basta cambiare '--disable' in '--enable'.

Al termine, "uscire" dalla finestra del terminale per disabilitare l'accesso dell'amministratore.

Le voci del desktop possono essere create aprendo una nuova finestra del terminale e usando il tuo editor preferito (in questo esempio, sto usando di nuovo il leafpad):

cd Desktop
leafpad tpadoff.desktop

e inserire il seguente testo: [Voce desktop] Nome = TouchPad disattivato Commento = Disattiva Touchpad Exec = / usr / local / bin / tpadoff Terminale = false Tipo = Applicazione

Salvare il file ed uscire dall'editor. Quindi immettere il seguente comando:

 chmod 775 tpadoff.desktop 

Puoi anche ripetere per creare un tpadon.desktop, cambiando tutti i riferimenti "off" in "on".

Al termine, avrai due modi per spegnere (e facoltativamente accendere) il touchpad facendo doppio clic sull'icona del desktop o inserendo "tpadoff" in una finestra del terminale.

Se il touchpad è diverso, potrebbe essere necessario utilizzare "xinput" nelle finestre di un terminale per trovare la sintassi esatta per il touchpad. Quindi modifica il file '/ usr / local / bin / tpadoff' in modo che corrisponda a quanto riportato da xinput.


1
La domanda riguarda la disabilitazione del touchpad durante la digitazione (cioè automaticamente), quindi mentre non dai una risposta diretta apprezzo molto la qualità della tua risposta.
Guntbert,

2

Dopo mesi di ricerca di una soluzione, ho deciso di scrivere un semplice programma Python per disabilitare il touchpad durante la digitazione. Aggiunta del programma alle applicazioni di avvio per farlo funzionare ogni volta che si avvia il computer. Devi correre xinput listper determinare l'id della tua tastiera, nel mio caso è 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)]

Ecco il programma

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

Soluzione eccezionale, semplicemente monitorando l'attività della tastiera utilizzando xinput e polling per vedere se si verificano nuovi eventi ogni 0,5 secondi. Ciò ha un impatto piuttosto ridotto sull'attività della CPU, ma sarebbe comunque bello se ci fosse un modo per far sì che il comportamento si verifichi solo sugli eventi della tastiera. C'è un motivo per cui hai escluso alcuni tasti come la freccia sinistra e lo spazio, o è solo una preferenza personale?
theferrit32

2

In Ubuntu 19.04, ho trovato adeguato (per le mie esigenze) disabilitare semplicemente la funzione "Tap to Click":

inserisci qui la descrizione dell'immagine

Tuttavia, la conseguenza di ciò è che dovrai effettivamente usare i pulsanti del touchpad (speriamo che tu abbia dei pulsanti) per fare clic. Per me è un giusto compromesso.

Se in realtà non hai pulsanti "sinistro e destro" (separati dal tuo touch-pad) puoi invece calibrare la sensibilità del tuo touchpad . Ho imparato questo da Peter Hutterer, in questa segnalazione di bug .

Vorrei che i produttori di laptop non avessero realizzato laptop con touchpad non receduti. Questi touchpad a livello dei tasti della tastiera (anziché retrocessi) sono un difetto di progettazione.

Per favore, fai sapere ai produttori di laptop i problemi che ti hanno causato da questo cattivo design, altrimenti continueranno ciecamente nei prossimi modelli.


1
Confermato che funziona molto bene. Ho notato una cosa minore che posso ignorare: quando i miei palmi grassi toccano il touchpad durante la digitazione, posso vedere il cursore del mouse muoversi un po ', ma almeno non gli permette di fare clic da qualche altra parte, il che sta facendo perdere molto tempo. Idealmente, sarei ancora in grado di avere il comportamento Tap To Click, ma almeno sul mio laptop, quella funzionalità non ha mai funzionato così bene comunque. Quindi il compromesso è davvero giusto.
bgoodr,

1

Per gli utenti di Kubuntu ...

Su Kubuntu 16.04 - per disabilitare il touchpad durante la digitazione ho dovuto deselezionare la casella di controllo "Disabilita solo i tocchi e lo scorrimento" in Impostazioni-> Dispositivi di input-> Touchpad-> Abilita / disabilita touchpad. Potrebbe sembrare ovvio ma ...


ubuntu 16.04 funziona
Nazmul Hasan il

Nessuna sub-opzione su Ubuntu 18.04, né Impostazioni né in 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

o più concisamente

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

correggi la formattazione
Pierre.Vriens,

1
Benvenuti in Ask Ubuntu! Consiglio di modificare questa risposta per espanderla con dettagli specifici su ciò che fa questo comando (sequenza). Un comando semplice (sequenza) viene raramente considerato una risposta. (Vedi anche Come faccio a scrivere una buona risposta? Per consigli generali su quali tipi di risposte sono considerate più preziose su Ask Ubuntu.)
David Foerster,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.