la souris double parfois quand je clique une fois

40

J'ai un problème qui est en train de devenir un cauchemar, dans la mesure où je pense qu'il serait peut-être plus facile de supprimer complètement Ubuntu et d'essayer autre chose. J'ai un PC HP sous Ubuntu 12.04. Lorsque je clique avec la souris, il double parfois (peut-être 50% du temps).

Jusqu'à présent, cela a abouti à: envoyer des courriels inachevés de manière aléatoire, mettre en évidence et supprimer de manière aléatoire des éléments que je ne voulais pas supprimer lors de la rédaction d'e-mails ( très frustrant), supprimer de manière aléatoire deux onglets de navigateur au lieu d'un (plusieurs fois), et le plus gênant) est une expérience très frustrante pour l'utilisateur final qui tente de déplacer des fenêtres sur le bureau ou de couper / coller depuis une fenêtre de terminal. Dieu merci Alt- F7- mais je ne veux pas avoir à apprendre les raccourcis clavier pour chaque programme que j'utilise ainsi que pour le système d' exploitation (et ne pas être en mesure de copier-coller est une grande perte pour moi).

Je ne suis pas la seule personne à avoir ce problème, mais googler indique qu'il peut y avoir plusieurs raisons à cela. Aucune des corrections que j'ai lues en ligne n'a fonctionné pour moi. Laissez-moi passer en revue tout, y compris les correctifs qui ont fonctionné pour d'autres personnes mais pas pour moi. Oh, j'ai une souris optique hp.

  • Ce n'est pas une souris cassée. J'ai essayé deux souris sur mon système - les deux présentent le problème. Ces deux souris fonctionnent bien sur mon ordinateur portable à la maison fonctionnant également sous Ubuntu 12.04.

  • My /etc/X11/xorg.confne fait que quelques lignes et ne comporte pas de section "InputDevice".

  • Je n'ai pas hald ou le paquetage hal installé.

  • Cela a commencé il y a environ une semaine et ne semble pas devenir meilleur ou pire.

  • En désespoir de cause, je viens de passer à 12.10 mais cela n'a pas résolu le problème et maintenant je lance une distribution qui n'est pas un LTS (et qui n'est donc pas idéale pour moi: - \)

Mais cela rend mon système très difficile à utiliser.

Mise à jour peut-être importante : j'ai essayé de faire des recherches avec xev. Il me semble que cela ressemble à une mauvaise connexion chez ces souris - est-ce commun? Je peux maintenir le bouton de la souris enfoncé, puis obtenir un clic de souris (pause) (relâchement de la souris) (pause très très brève) (clic de souris) (pause) (relâchement de la souris) (pause très très brève) (clic de souris), etc. Je me demande si, par exemple, d’autres systèmes d’exploitation disent "vous ne pouvez pas relâcher puis cliquez à nouveau dans les 0,05 secondes, ce qui doit donc être un problème et je supposerai que le bouton n’a jamais été relâché". Puis-je dire à Ubuntu d'ignorer les événements release-and-then-reclick presque instantanément ??

Cela ressemble donc à un problème de souris. Peut-être que je devrais creuser une nouvelle souris? J'ai seulement essayé les très vieux: - \

Kevin Buzzard
la source
L'avez-vous signalé comme un bug sur le tableau de bord?
Alvar
Vous souvenez-vous de ce qui s'est passé il y a une semaine, lorsque tout a commencé?
hytromo
Ce qui s’est passé il ya une semaine correspond exactement à ce qui se passe chaque semaine: je clique simplement sur "installer les mises à jour" et parfois sur "redémarrer l’ordinateur pour terminer l’installation". Ce système est tout à fait à part. Je pense que les seuls packages que j'ai installés, à part ceux qui sont présents par défaut, étaient les quelques-uns dont j'avais besoin pour faire fonctionner sparkleshare.
Kevin Buzzard
@Alvar: il semble y avoir une confusion sur le tableau de bord à propos de ce bogue. Mon impression générale est que certaines personnes rencontrent ce problème et que le problème est que leur souris est cassée, certaines personnes l’obtiennent et le problème provient d’un pilote logitech. Certaines personnes l’obtiennent et le problème se situe ailleurs. Je vais essayer de le signaler et de réduire le bruit ...
Kevin Buzzard le
J'ai frappé le problème connexe que je pensais être une souris cassée en combinaison avec des gestes firefox, mais il s'est avéré qu'il s'agissait de boutons latéraux de la souris faisant "firefox back"
Matija Nalis

Réponses:

47

OK, après de nombreux tests utilisant xev sur la machine affectée et après avoir basculé entre plusieurs souris sur différents systèmes, je crois avoir résolu ce problème. Bien sûr, YMMV.

Ma solution: c'est une souris cassée.

Plus précisément, le connecteur activé lorsque vous cliquez est un peu vieux ou sale, et parfois, lorsque vous maintenez le bouton enfoncé, la connexion est établie, puis momentanément interrompue, puis à nouveau effectuée, ce qui provoque le double-clic.


Objection: Mais la souris fonctionne bien quand je la branche sur ma machine Windows!

Counter: Ne serait-il pas trivial de placer dans un pilote ou un système d’exploitation la ligne de pseudo-code suivante: "si l’utilisateur clique sur la souris et la clique à nouveau dans les 0,05 secondes, il s’agit probablement d’un connecteur sale, alors juste ignorer ça ". Ainsi, il n’est pas possible que si vous passez votre souris sur un autre ordinateur exécutant un autre système d’exploitation et / ou utilisant un autre pilote sur un matériel différent (même avec le même système d’exploitation, vous pourriez utiliser un matériel différent, non?), Vous pourriez obtenir des résultats différents. ?

Objection: Mais j'ai essayé une autre vieille souris qui présentait le même problème!

Counter: incroyable de voir comment deux vieilles souris de la même entreprise peuvent casser de la même manière, hein? Et vous ne l’avez jamais remarqué, car la deuxième souris que vous avez essayée ne présentait aucun problème lorsqu’elle était connectée à un matériel différent (voir compteur précédent).


Si vous ne croyez pas vraiment que votre souris est cassée, testez-la:

$ xev

Recherchez ensuite le carré avec le fond noir, cliquez dessus et regardez la sortie. Avez-vous définitivement, toujours, un simple "clic" et rien d’autre? J'obtenais souvent un clic propre mais occasionnellement un "rebond" (clic déclic clic). Encore mieux peut-être:

$ xev | grep ButtonRelease

Maintenant, placez la souris dans le carré avec le contour noir (ou n’importe où dans cette fenêtre) et cliquez et désélectionnez 20 fois. Vous devriez obtenir une ligne "ButtonRelease" à chaque fois que vous relâchez le bouton, et jamais autrement. Je voudrais parfois en obtenir un quand j'ai cliqué.

Cauchemar terminé.

Kevin Buzzard
la source
J'ai récemment remarqué deux clics inattendus de souris identiques, et je ne suis pas sûr que les deux se soient "épuisés" la même semaine. Votre xevtest ne m'a rien donné d'inhabituel mais je me demande s'il y a plus que cela?
Tom Brossman
D'accord - j'étais très méfiant à l'idée d'avoir deux souris et aucune d'entre elles travaillant sur une machine et les deux sur une autre. Je suis presque sûr qu'il y a des gens qui croient qu'il y a vraiment un problème autre que "des souris brisées et un système d'exploitation qui ne le compense pas aussi bien que les autres systèmes d'exploitation". D'autre part, j'ai définitivement quitté le navire ce matin - mon système fonctionnait à nouveau et j'étais convaincu la semaine dernière que la souris ne pouvait pas être le problème, mais pour moi c'était vraiment le cas.
Kevin Buzzard
2
Avec moi, j'ai passé 5 à 10 bonnes minutes à jouer avec xev et à regarder la sortie. Cliquez et dé-claquez constamment, etc., etc. et obtenez parfois des déclics inattendus alors que je ne les décliquais pas. Laissez-moi également dire que regarder la sortie de xev sur une fenêtre de terminal 80x24 peut être très trompeur, car un "clic-clic" peut entraîner la production d'une page complète d'informations par xev, et si le clic-clic se produit suffisamment rapidement (ce qui était le cas dans mon cas) alors vous pourriez même ne pas être capable de remarquer la sortie xev car elle est presque identique à la page précédente.
Kevin Buzzard
7
Mieux encore xev | awk '/ButtonRelease/ {print $1,i++}'.
Arekolek
Pour moi, cela se manifestait par le "bouton 3" (le bouton droit de la souris) envoyant un signal de temps en temps lorsque je faisais défiler la molette de la souris vers le haut. Bizarre.
carbocation
9

Maintenance zen et souris. Beaucoup semblent avoir un problème avec le double-clic de la souris lorsqu'un clic est appliqué. Le bouton de la souris est un micro-commutateur. Le fait de la vie est que les contacts de commutateur rebondissent. Ils ne rebondissent pas mais frottent. Nous l'appellerons de toute façon rebondir. Pour une raison quelconque, les programmeurs ont lâché la balle sur celui-ci. Une boucle d’attente d’une durée suffisante doit être appliquée pour que les contacts s’installent avant la lecture. À propos de rien et sur un échantillon de celui-ci ma solution a été de placer un condensateur à travers les contacts du commutateur. J’ai utilisé un bouchon de 0,1 µF sans autre raison que celle que j’avais dans une petite taille qui tiendrait bien dans la souris. Je n'ai fait aucune analyse sophistiquée du temps de passage, des constantes de temps ou des niveaux de décision pour trouver une valeur optimale. Différents modèles auront de toute façon des paramètres différents.

J'utilise cette modification depuis un certain temps et le problème n'a pas encore refait surface.

Appliquer le mod. Trouvez un condensateur de petites dimensions physiques qui conviendra à l’intérieur du boîtier de la souris. J'ai utilisé un 0,1uF parce que j'en avais un et que c'est un bon chiffre, mais d'autres valeurs fonctionneront probablement, mais n'allez pas trop grand ou trop petit. Ce qui est trop grand ou trop petit est une affaire d'expérimentation. Trop grand peut affecter les doubles clics prévus, trop petit ne produira pas l'effet souhaité. J'ai soudé un pied du capuchon à un emplacement pratique, où il ne s'est pas attaqué à la structure interne de la souris, du côté cuivre du tableau, au plan 0 volt (plan de terre si vous le souhaitez). L’autre jambe du capuchon du commutateur est active avec un peu de fil mince. J'ai utilisé un composant recyclé avec des jambes courtes. Un nouveau aurait probablement assez de jambes pour atteindre l'endroit où il est nécessaire. Vous aurez besoin d'un fer à souder à extrémité fine adaptée à votre travail.

Si vous ne connaissez pas les condensateurs. Un condensateur de 0,1 uF peut être désigné par 0,1 uF ou 104 ou 100 nF ou avoir des bandes de couleur brun noir-jaune. Un type de montage en surface serait également un bon choix. Accrochez-le avec quelques brins de fil fin. Pourrait le coller sur la connexion de la carte vers le haut.

J'ai un plan B que je pourrais essayer la prochaine fois ou si le plan actuel échoue. Atténuer le micro-commutateur pour un commutateur à membrane tactile à montage sur circuit imprimé spst devrait résoudre le problème. C'est le type de commutateur utilisé dans les claviers et les claviers et ne présente pas ce problème. Le pied ne rien imprimer comme le micro-interrupteur. Un interrupteur de 7 mm de haut est disponible et entrera à la même hauteur que le micro-interrupteur existant. Un interrupteur plus petit devrait être espacé à la bonne hauteur. Pliez les pattes perpendiculairement au corps du commutateur et collez-le sur la carte de sorte que l'actionneur s'aligne sur la position occupée par l'actionneur du micro-commutateur. Le bouton de la souris doit toucher le bon endroit. Câblez les contacts du commutateur avec un fil fin et tout devrait être bon en théorie.

utilisateur277786
la source
5
Bien que votre réponse soit correcte à 100%, il s'agit d'un site de questions-réponses sur les logiciels et non de questions-réponses sur le matériel. Donc, s'il vous plaît: 1 / ajoutez un avertissement respectable indiquant que vous donnez une solution matérielle à un problème de logiciel, 2 / raccourcissez votre réponse 3 / Ajoutez des liens vers des images expliquant comment faire cela 4 / C'est µF, pas uF.
Fabby
@Fabby Vos suggestions (1) et (3) sont excellentes, mais pas tellement avec (2), et (3) sont mesquines / inutiles. Est également un peu snarky / laconique. Vous devriez essayer d'être convivial avec les nouveaux utilisateurs! :)
@ Joe 1 / Regardez les votes positifs pour un commentaire. 2 / Oui, c'est un style de télégramme sans finesse, alors ça aurait pu être mieux. Pour ma défense: Je suis un Vorlon , pas un humain et je travaille encore sur mon empathie ... ;-)
Fabby
9

J'ai construit un patch xserver-xorg-input-evdevpour Ubuntu 14.10. J'ai utilisé les instructions de http://blog.guntram.de/?p=16 (les correctifs peuvent être trouvés ici et ici ) et un manuel d'emballage Debian.

Voici mes notes sur la construction d'un paquet.

#!/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
  • Bonne nouvelle: cela a fonctionné.
  • Mauvaise nouvelle: cela n'aide pas toujours. Le contact de mon bouton de la souris était si grave qu’il fallait un délai de 200 ms, ce qui m’empêche de double-cliquer. Une autre souris qui rebondit a commencé à bien fonctionner.

edit : Thanks @MatijaNalis, les étapes d'obtention de correctif pourraient être:

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
Victor Sergienko
la source
1
le script doit être modifié - "dquilt new" manque "$", "patch" doit être placé après "$ dquilt add" et avant "$ dquilt refresh", et le correctif sur blog.guntram.de est ancien, il est conseillé d'utiliser un autre .archlinux.org. "apt-get build-dep xserver-xorg-input-evdev" devrait également être ajouté. Devrait également utiliser des variables d'environnement quilt au lieu de fichiers de configuration (non spécifiés) - wiki.debian.org/UsingQuilt . Sinon, ça ressemble à une excellente solution de contournement pour la souris cassée ...
Matija Nalis
3
Une fonctionnalité anti-rebond a été ajoutée à libinput 1.9 ( unix.stackexchange.com/a/451864/116842 ).
Jérôme
5

Le problème, expliqué par Jack Ganssle, ici: http://www.eng.utah.edu/~cs5780/debouncing.pdf
- filtrage des contacts par contact. Le logiciel doit être présent dans toutes les applications, des simples ordinateurs à carte unique aux systèmes d'exploitation, sous une forme ou une autre.

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

À mesure que les contacts / boutons vieillissent, l’effet s’aggrave. Le WD40 n'est peut-être pas le meilleur spray à utiliser sur l'électronique, il en existe d'autres plus appropriés. Google "Spray de contact".

Hannu
la source
4

J'ai eu un problème avec un bouton supplémentaire en cliquant deux fois. Comme je l'avais déjà mis en correspondance avec xbindkeys(voir Comment puis-je affecter des actions à tous les boutons de ma souris? Pour plus d'informations à ce sujet), ma solution modifiait l'entrée de la ~/.xbindkeysrcmanière suivante:

"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

Cela crée un "fichier de verrouillage" pour chaque pression sur un bouton /dev/shm/(ce qui, je l'espère, repose sur la RAM) et le supprime au bout de 0,2 seconde. Et la xtecommande doit être effectuée par un clic de souris et ne doit pas être effectuée deux fois en 0,2 seconde.

(Je pensais partager ma solution, au cas où quelqu'un voudrait la copier ou la corriger.)

pirade
la source
C'est une excellente solution pour les cas où la souris envoie un flux d'événements ButtonPress / ButtonRelease continu, mais que vous souhaitez convertir en un seul événement. Cela se produit, par exemple, avec les boutons de la souris Bluetooth Microsoft et de la molette d'inclinaison.
Leo Alekseyev
2

Il y a un bogue logiciel et à partir de juin 2014, il n'y a pas de solution. Cela ne se produit pas sur tous les modèles de souris. Mes souris logitech vont bien, mais la plupart des autres échouent, peu importe ce que vous faites. Ceci est pour RHEL, CentOS et Ubuntu. Toutes les souris fonctionnent sur des machines Windows pures mais le même problème existe dans les KVM

Pas encore de solution, les développeurs le savent.

À votre santé. Don.

Don
la source
1
Pourriez-vous ajouter un lien vers le bogue et donner un peu de contexte à ce sujet?
Oli
1
Comme vous pouvez le constater dans les autres réponses (et le rapport de bogue), il ne s'agit pas en fait d'un bogue, mais d'une fonctionnalité manquante. Windows filtre par défaut les filtres anti-rebond sur les souris, contrairement à Linux.
Hjulle
1

Le spray WD40 est une solution magique pour de nombreux problèmes, y compris la molette de volume dans les écouteurs avec des bruits de course, ainsi que pour réparer ce problème de clics de souris…

Test, c'est un très rapide, pas besoin d'ouvrir la souris ni les écouteurs, vaporisez et allez bien une autre fois…

utilisateur259941
la source
1

Dans mon cas, c’était du matériel ou, plus précisément, un problème mécanique avec le micro-commutateur du bouton de la souris.

J'ai eu ce problème avec 2 souris: l'ancienne Logitech m-uv69 et une autre souris achetée il y a environ un an et j'ai réussi à réparer les deux sans trop d'effort. Voici ce que j'ai fait:

  • a décollé le couvercle de la souris
  • directement enfoncé rapidement plusieurs fois le micro-bouton

Après cela, presque tous les doublons non intentionnels ont disparu. Je ne sais pas ce qui les a causés exactement à l'intérieur du micro-commutateur. Probablement il est devenu sale ou quelque chose et le pousser rapidement fait disparaître la saleté.

ks1322
la source