il mouse a volte fa doppio clic quando faccio clic una volta


39

Ho un problema che sta diventando un incubo, nella misura in cui sto pensando che potrebbe essere più semplice eliminare completamente Ubuntu e provare qualcos'altro. Ho un PC HP con Ubuntu 12.04. Quando faccio clic con il pulsante sinistro del mouse, a volte fa doppio clic (forse il 50% delle volte).

Finora ciò ha portato a: inviare casualmente e-mail non finite, evidenziare e cancellare casualmente cose che non volevo cancellare mentre scrivevo e-mail ( molto frustrante), cancellare casualmente due schede del browser anziché una (più volte) e (in un certo senso) la più fastidiosa) un'esperienza per l'utente finale molto frustrante quando si tenta di spostare finestre sul desktop o di tagliare e incollare da una finestra terminale. Grazie a Dio per Alt- F7- ma non voglio imparare le scorciatoie da tastiera per ogni programma che uso così come per il sistema operativo (e non essere in grado di copiare e incollare è una grande perdita per me).

Non sono l'unica persona con questo problema, ma googling indica che potrebbero esserci più ragioni per questo; nessuna delle correzioni che ho letto online ha funzionato per me. Lasciami esaminare tutto, comprese le correzioni che hanno funzionato per altre persone ma non per me. Oh - Ho un mouse ottico HP.

  • Non è un topo rotto. Ho provato due topi sul mio sistema - entrambi presentano il problema. Entrambi questi mouse funzionano perfettamente sul mio laptop di casa con Ubuntu 12.04.

  • My ha /etc/X11/xorg.confsolo poche righe e non ha una sezione "InputDevice".

  • Non ho hald o il pacchetto hal installato.

  • È iniziato circa una settimana fa e non sembra migliorare o peggiorare.

  • Nella disperazione ho appena eseguito l'aggiornamento a 12.10 ma questo non ha risolto il problema e ora sto eseguendo una distro che non è un LTS (e quindi non è l'ideale per me: - \)

Ma sta rendendo il mio sistema molto difficile da usare.

Eventualmente aggiornamento importante : ho provato a fare alcune indagini con xev. Mi sembra che in questi topi sembri una cattiva connessione - è comune? Posso tenere premuto il pulsante del mouse, quindi ottenere (clic del mouse) (pausa) (rilascio del mouse) (pausa molto breve) (clic del mouse) (pausa) (rilascio del mouse) (pausa molto breve) (clic del mouse) ecc Mi chiedo se ad esempio altri sistemi operativi dicono "non è possibile rilasciare e quindi fare nuovamente clic entro 0,05 secondi, quindi deve essere stato un problema tecnico e suppongo che il pulsante non sia mai stato rilasciato". Posso dire a Ubuntu di ignorare gli eventi di rilascio e quindi di clic quasi istantaneamente?

Sembra quindi un brutto problema con il mouse. Forse dovrei scavare un mouse più recente? Ho provato solo quelli molto vecchi: - \


l'hai segnalato come bug sul launchpad?
Alvar,

Riesci a ricordare cosa è successo una settimana fa, quando è iniziato tutto?
hytromo,

Ciò che è accaduto una settimana fa è esattamente ciò che accade ogni settimana: faccio semplicemente clic su "Installa aggiornamenti" e occasionalmente su "Riavvia il computer per terminare l'installazione". Questo sistema è subito pronto per l'uso - penso che gli unici pacchetti che ho installato oltre a quelli che sono lì di default erano i pochi che mi servivano per far funzionare sparkleshare.
Kevin Buzzard,

@Alvar: sembra esserci confusione sul launchpad per questo bug. La mia impressione generale è che alcune persone hanno questo problema e il problema è che il loro mouse è rotto, alcune persone hanno questo problema e il problema è un driver logitech, e alcune persone hanno questo problema e il problema è altrove. Proverò a segnalarlo e a ridurre il rumore ...
Kevin Buzzard,

Ho colpito il problema correlato che pensavo fosse il mouse rotto in combinazione con i gesti di firefox, ma si è rivelato essere pulsanti laterali sul mouse che eseguivano "firefox back"
Matija Nalis,

Risposte:


47

OK dopo test approfonditi utilizzando xev sulla macchina interessata e passando da un mouse all'altro su vari sistemi, credo di aver risolto questo problema. Certo YMMV.

La mia soluzione: è un topo rotto.

Più precisamente, il connettore attivato quando si fa clic è un po 'vecchio o sporco o qualcosa del genere, e talvolta, quando si tiene premuto il pulsante, la connessione viene stabilita, quindi momentaneamente interrotta e quindi ripristinata, causando il doppio clic.


Obiezione: Ma il mouse funziona bene quando lo collego al mio computer Windows!

Contatore: non sarebbe semplicemente banale inserire in un driver, o in un sistema operativo, la seguente riga di pseudocodice: "se l'utente decomprime il mouse e poi lo fa di nuovo clic entro 0,05 secondi, allora è probabilmente un connettore sporco, quindi cerchiamo di ignoralo ". Quindi non è possibile che se si sposta il mouse su un altro computer che esegue un altro sistema operativo e / o si utilizza un altro driver su hardware diverso (anche con lo stesso sistema operativo si potrebbe benissimo utilizzare hardware diverso, giusto?), Si potrebbero ottenere risultati diversi ?

Obiezione: Ma ho provato un altro vecchio topo e ha mostrato lo stesso problema!

Contatore: incredibile come due vecchi topi della stessa compagnia possano rompere entrambi allo stesso modo, eh? E non l'hai mai notato perché quel secondo vecchio mouse che hai provato non mostrava problemi quando era collegato a hardware diverso (vedi contatore precedente).


Se davvero non credi che il tuo mouse sia rotto, allora prova:

$ xev

e poi trova il quadrato con lo sfondo nero, fai clic su di esso e guarda l'output. Sicuramente, sempre, ottieni un "clic" pulito e nient'altro? Vorrei spesso ottenere un clic pulito, ma a volte un "rimbalzo" (fare clic su clic clic). Ancora meglio forse:

$ xev | grep ButtonRelease

Ora attacca il mouse al quadrato con il contorno nero (o ovunque in quella finestra) e fai clic e sblocca 20 volte. Dovresti ottenere una riga "ButtonRelease" ogni volta che rilasci il pulsante e mai altrimenti. Di tanto in tanto ne prendevo uno quando facevo clic.

Incubo finito.


Ho due topi identici con cui ho notato un clic inaspettato di recente, e non sono così sicuro che entrambi si siano "consumati" nella stessa settimana. Il tuo xevtest non mi ha dato nulla di insolito ma devo chiedermi se c'è di più in questo?
Tom Brossman,

Giusto - Ero molto sospettoso di avere due topi e nessuno dei due lavorava su una macchina ed entrambi lavoravano su un'altra. Sono abbastanza sicuro che ci siano persone là fuori che credono che ci sia davvero un problema diverso da "mouse rotti e sistema operativo non compensato così come altri sistemi operativi". D'altra parte, stamattina ho sicuramente saltato la nave: il mio sistema funziona di nuovo ed ero convinto la scorsa settimana che il mouse non poteva essere il problema, ma per me lo era davvero.
Kevin Buzzard,

2
Con me ho trascorso 5-10 minuti buoni giocando con xev e guardando l'output. Facendo clic e riattivando continuamente ecc. Ecc. E poi occasionalmente ricevendo inaspettati riattacchi quando non lo stavo facendo. Consentitemi anche di dire che guardare l'output di xev su una finestra del terminale 80x24 può essere molto fuorviante, perché "click-click" può comportare che un'intera pagina piena di informazioni venga emessa da xev, e se il click-click avviene in modo sufficientemente rapido (che era il caso nel mio caso) allora potresti non essere nemmeno in grado di notare l'output xev perché è quasi identico alla pagina precedente.
Kevin Buzzard,

7
Meglio ancora xev | awk '/ButtonRelease/ {print $1,i++}'.
Arekolek,

Per me, questo si è manifestato come "pulsante 3" (il pulsante destro del mouse) che inviava un segnale di tanto in tanto quando scorrevo sulla rotellina del mouse. Bizzarro.
carbocation

9

Manutenzione Zen e mouse. Sembra che molti abbiano un problema con il doppio clic del mouse quando viene applicato un clic. Il pulsante del mouse è un microinterruttore. Il fatto della vita è che i contatti di commutazione rimbalzano. In realtà non rimbalzano ma strofinano. Lo chiameremo comunque rimbalzo. Per qualche ragione i programmatori hanno lasciato cadere la palla su questo. È necessario applicare un circuito di attesa di durata sufficiente affinché i contatti si stabilizzino prima di leggere. A proposito di nulla e su un campione di uno la mia soluzione è stata quella di posizionare un condensatore attraverso i contatti dell'interruttore. Ho usato un cappuccio da 0,1 uF per nessun motivo particolare se non quello di uno di piccole dimensioni che si adattava perfettamente all'interno del mouse. Non ho fatto analisi fantasiose di tempo di permanenza, costanti di tempo o livelli di decisione per trovare un valore ottimale. Diversi modelli avranno comunque parametri diversi.

Sto usando questa modifica da un po 'di tempo e il problema non è ancora riemerso.

Per applicare il mod. Trova un condensatore di piccole dimensioni fisiche che si adatterà all'interno della custodia del mouse. Ho usato un 0.1uF perché ne avevo uno ed è un bel numero, ma probabilmente altri valori funzioneranno ma non vanno troppo grandi o troppo piccoli. Ciò che è troppo grande o piccolo è una questione di esperimento. Troppo grande può influire sui doppi clic previsti, troppo piccolo non otterrà l'effetto desiderato. Ho saldato una gamba del cappuccio in una posizione comoda, dove non correva fallo della struttura interna del mouse, sul lato in rame della scheda, al piano 0 volt (piano terra se lo desideri) Ho agganciato il l'altra gamba del cappuccio allo switch attiva con un filo di filo sottile. Ho usato un componente riciclato con le gambe corte. Una nuova avrebbe probabilmente le gambe abbastanza lunghe da raggiungere dove è necessario. Sarà necessario un saldatore a punta fine adatto per il lavoro.

Se non conosci i condensatori. Un condensatore da 0,1uF può essere indicato con 0,1uF o 104 o 100nF o avere bande colorate di colore marrone nero giallo. Un tipo a montaggio superficiale sarebbe anche una buona scelta. Agganciarlo con alcuni fili di filo sottile. Potrebbe incollarlo con il collegamento della scheda rivolto verso l'alto.

Ho un piano B che potrei provare la prossima volta o se il piano attuale alla fine fallisce. L'abbandono del microinterruttore per un interruttore a membrana tattile con montaggio su PCB spst dovrebbe risolvere il problema. Questo è il tipo di interruttore utilizzato in tastiere e tastiere e non presenta questo problema. Il piede non lo stampa come il microinterruttore. È disponibile un interruttore alto 7 mm che arriverà alla stessa altezza del microinterruttore esistente. Un interruttore più piccolo dovrebbe essere distanziato fino all'altezza corretta. Piegare le gambe ad angolo retto rispetto al corpo dell'interruttore e incollarlo sulla scheda in modo che l'attuatore si allinei con la posizione occupata dall'attuatore del microinterruttore. Il pulsante del mouse deve colpire il punto corretto. Collegare i contatti dell'interruttore con un filo sottile e tutto dovrebbe essere buono in teoria.


5
Sebbene la risposta sia corretta al 100%, si tratta di un sito di domande e risposte sul software, non di domande e risposte sull'hardware. Quindi per favore: 1 / aggiungi un rispettabile avvertimento che stai dando una soluzione HW per un problema SW, 2 / accorcia la tua risposta 3 / Aggiungi alcuni collegamenti alle immagini su come fare questo 4 / È µF, non uF.
Fabby,

@Fabby I tuoi suggerimenti (1) e (3) sono eccellenti, ma non così tanto con (2), e (3) è meschino / non necessario. Inoltre viene fuori come un po 'snarky / terse. Dovresti provare ad essere amichevole con i nuovi utenti! :)

@Joe 1 / Guarda i voti positivi per un commento. 2 / Sì, è lo stile del telegramma senza nessun dettaglio, quindi avrebbe potuto essere migliore. A mia difesa: sono un Vorlon , non un essere umano e sto ancora lavorando sulla mia empatia ... ;-)
Fabby,

9

Ho creato un patch xserver-xorg-input-evdevper Ubuntu 14.10. Ho usato le istruzioni da http://blog.guntram.de/?p=16 (la patch può essere trovata qui e qui ) e un manuale di packaging Debian.

Ecco i miei appunti sulla costruzione di un pacchetto.

#!/bin/bash
# http://blog.guntram.de/?p=16
#

apt-get build-dep xserver-xorg-input-evdev

dquilt="quilt --quiltrc=${HOME}/.quiltrc-dpkg"

wget --output-document=evdev-debounce.patch http://blog.guntram.de/?ddownload=20
apt-get source xserver-xorg-input-evdev

cd xserver-xorg-input-evdev-*

$dquilt new debounce.patch
$dquilt add include/evdev-properties.h src/Makefile.am src/debounce.c src/evdev.c src/evdev.h src/debounce.c
patch -p1 <../evdev-debounce.patch

$dquilt refresh
$dquilt header -e

debuild -us -uc -b
cd ..

sudo dpkg -i xserver-xorg-input-evdev_*.deb
  • Buone notizie: ha funzionato.
  • Cattive notizie: non sempre aiuta. Il contatto con il pulsante del mouse era così grave che richiedeva un ritardo di 200 ms, che mi impedisce di fare doppio clic. Un altro topo che rimbalza iniziò a funzionare bene.

modifica : Grazie a @MatijaNalis, la patch per ottenere i passaggi potrebbe essere:

wget https://aur.archlinux.org/packages/xf/xf86-input-evdev-debounce/xf86-input-evdev-debounce.tar.gz
tar xzf xf86-input-evdev-debounce.tar.gz
# ...
patch -p1 < ../xf86-input-evdev-debounce/debounce.patch

1
lo script deve cambiare - "dquilt new" misses "$", "patch" dovrebbe essere dopo "$ dquilt add" e prima di "$ dquilt refresh", e la patch su blog.guntram.de è vecchia, si dovrebbe usare un'altra da aur .archlinux.org. Dovrebbe essere aggiunto anche "apt-get build-dep xserver-xorg-input-evdev". Inoltre, è necessario utilizzare le variabili di ambiente quilt anziché i file di configurazione (non specificati) - wiki.debian.org/UsingQuilt . Altrimenti, sembra un'ottima soluzione per il mouse rotto ...
Matija Nalis

3
Una funzione di debouncing è stata aggiunta a libinput 1.9 ( unix.stackexchange.com/a/451864/116842 ).
Jérôme,

5

Il problema, spiegato da Jack Ganssle, qui: http://www.eng.utah.edu/~cs5780/debouncing.pdf
- filtro di rimbalzo dei contatti. Il software deve essere presente in qualsiasi applicazione, dai semplici computer a scheda singola ai sistemi operativi, in qualche modo.

https://www.google.se/?gfe_rd=cr&safe=off#q=%2Bcontact+%2Bbounce+%2Bsoftware&safe=off

Man mano che i contatti / pulsanti invecchiano, l'effetto peggiorerà. Il WD40 potrebbe non essere lo spray migliore da utilizzare sull'elettronica, ce ne sono altri più adatti. Google "Spray contatti".


4

Ho riscontrato un problema facendo clic due volte su un pulsante aggiuntivo. Dato che l'avevo già mappato con xbindkeys(vedi Come posso assegnare azioni a tutti i miei pulsanti del mouse? Per maggiori informazioni a riguardo) la mia soluzione stava cambiando la voce nel modo ~/.xbindkeysrcseguente:

"if [ ! -e /dev/shm/button ]; then touch /dev/shm/button; /usr/bin/xte 'keydown Control_L' 'key Page_Down' 'keyup Control_L'; sleep 0.2; rm  /dev/shm/button; fi"
b:7

Questo crea un "file di blocco" per ogni pulsante premuto /dev/shm/(che spero si trovi sulla RAM) e lo rimuove dopo 0,2 secondi. E il xtecomando deve essere eseguito con un clic del mouse e non deve essere eseguito due volte in 0,2 secondi.

(Ho pensato di condividere la mia soluzione, nel caso in cui qualcuno volesse copiarla o ripararla.)


Questa è un'ottima soluzione per i casi in cui il mouse invia un flusso di eventi ButtonPress / ButtonRelease continuo, ma si desidera convertirlo in un singolo evento. Questo accade ad es. Con il mouse bluetooth Microsoft e i pulsanti della rotella di inclinazione.
Leo Alekseyev,

2

Si è verificato un bug del software e da giugno 2014 non è stato risolto alcun problema. Non succede su tutti i modelli di topi. I miei mouse logitech vanno bene, ma molti altri falliscono, qualunque cosa tu faccia. Questo è per RHEL, CentOS e Ubuntu. Tutti i topi funzionano su scatole di Windows pure, ma lo stesso problema è presente in KVM

Nessuna soluzione ancora, gli sviluppatori lo sanno.

Saluti. Don.


1
Potresti aggiungere un link al bug e dare un po 'di informazioni al riguardo?
Oli


1
Come puoi vedere dalle altre risposte (e dalla segnalazione di bug), questo non è in realtà un bug, ma piuttosto una caratteristica mancante. Windows rimpiazza il filtro sui mouse per impostazione predefinita, mentre Linux non lo fa.
Hjulle,

1

Spray WD40 è magico per molti problemi, volume incluso nelle cuffie con rumori rac rac rac, anche per riparare questo problema dei clic del mouse ...

Test, è molto veloce, non è necessario aprire il mouse o aprire le cuffie, spruzzare e andare bene un'altra volta ...


1

Nel mio caso era hardware o, più precisamente, qualche problema meccanico con il microinterruttore del pulsante del mouse.

Ho avuto questo problema con 2 topi: il vecchio Logitech m-uv69 e un altro topo che ho comprato circa un anno fa e sono riuscito a ripararli entrambi senza troppi sforzi. Questo è quello che ho fatto:

  • ha rimosso la copertura superiore del mouse
  • pulsante microinterruttore a pressione diretta direttamente più volte più volte

Dopo che quasi tutti i doubleclicks non intenzionali sono andati via. Non so cosa li abbia causati esattamente all'interno del microinterruttore. Probabilmente si è sporcato o qualcosa del genere e spingendolo rapidamente lo sporco scompare.

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.