web-dev-qa-db-fra.com

la souris double parfois lorsque je clique une fois

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 ordinateur HP sous Ubuntu 12.04. Lorsque je clique avec la souris, il double parfois (peut-être 50% du temps).

Jusqu'ici, cela a abouti à: envoyer au hasard des courriels inachevés, 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 frustrants), supprimer au hasard deux onglets de navigateur une (plusieurs fois) et (en un sens le plus ennuyeux) une expérience utilisateur très frustrante lorsqu’on tente de déplacer des fenêtres sur le bureau ou de couper/coller depuis une fenêtre de terminal. Dieu merci pour 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 (ne pas pouvoir 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.

  • Mon /etc/X11/xorg.conf ne contient 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 donc ce n'est pas idéal pour moi: - \)

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

Mise à jour probablement importante: J'ai essayé de faire quelques 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 par exemple si D'autres systèmes d'exploitation disent "vous ne pouvez pas relâcher, puis cliquer à nouveau dans les 0,05 secondes, ce qui doit donc être un problème et je suppose 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: - \

38
Kevin Buzzard

OK, après de nombreux tests utilisant xev sur la machine affectée et après avoir basculé entre plusieurs souris sur divers 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 est impossible 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 bien utiliser un matériel différent, n'est-ce pas?), 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é parce que 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 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é.

47
Kevin Buzzard

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 pour aucune raison particulière, à part celle de petite taille qui rentre parfaitement dans la souris. Je n’ai pas fait d’analyses sophistiquées 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é 0,1 uF parce que j’en avais un et qu’il s’agissait d’un chiffre sympa, mais d’autres valeurs fonctionneront probablement, mais ne grossissez pas trop. 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. Assouplir le micro-commutateur pour un commutateur à membrane tactile à montage spst PCB 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.

9
user277786

J'ai construit un xserver-xorg-input-evdev corrigé pour Ubuntu 14.10. J'ai utilisé les instructions de http://blog.guntram.de/?p=16 (le correctif peut être trouvé 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 : Merci @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
9

Le problème, expliqué par Jack Ganssle, ici: http://www.eng.utah.edu/~cs5780/debouncing.pdf
- filtrage des rebonds de 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".

5
Hannu

J'ai eu un problème avec un bouton supplémentaire en cliquant deux fois. Comme je l'avais déjà mappé 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 dans le ~/.xbindkeysrc comme suit:

"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 de bouton dans /dev/shm/ (qui, je l'espère, repose sur la RAM) et le supprime après 0,2 seconde. Et la commande xte doit être effectuée par 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 réparer.)

3
pirad

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.

2
Don

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 d'autres souris achetées 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 provoqués à l'intérieur du micro-commutateur Probablement il est devenu sale ou quelque chose et le pousser rapidement fait disparaître la saleté.

1
ks1322

Spray WD40 est magique pour de nombreux problèmes, y compris la molette de volume dans les écouteurs avec des bruits de rac rac rac, également 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…

1
user259941