一度クリックするとマウスがダブルクリックすることがある


39

Ubuntuを完全に廃棄して他のことを試す方が簡単かもしれないと考えている限り、悪夢になりつつある問題があります。Ubuntu 12.04を実行しているHP PCがあります。マウスで左クリックすると、ダブルクリックすることがあります(おそらく50%の時間)。

これまでのところ、未完成のメールをランダムに送信する、メールを書いている間に削除したくないものをランダムに強調表示して削除する(非常にイライラする)、1つではなく2つのブラウザタブをランダムに削除する(数回)、そして(ある意味で)最も煩わしい)ウィンドウをデスクトップ上で移動したり、ターミナルウィンドウからカットアンドペーストしたりする際の非常にイライラするエンドユーザーエクスペリエンス。以下のための良さをありがとうAlt- F7-しかし、私は私が使用するすべてのプログラムのためだけでなく、OSのキーボードショートカットを習得する必要がありますする必要はありません(と貼り付けをコピーすることができないことは私にとって大きな損失です)。

私がこの問題を抱えているのは私だけではありませんが、グーグルでは複数の理由が考えられます。私がオンラインで読んだ修正のどれも私のために働いていません。他の人には機能したが私には機能しなかった修正を含め、すべてを見てみましょう。ああ— hp光学式マウスを持っています。

  • 壊れたマウスではありません。私のシステムで2匹のマウスを試しましたが、どちらも問題を示しています。これらのマウスはどちらも、Ubuntu 12.04を実行している自宅のラップトップで正常に動作します。

  • My /etc/X11/xorg.confは数行の長さで、「InputDevice」セクションはありません。

  • haldがないか、halパッケージがインストールされていません。

  • それは約1週間前に始まりましたが、良くも悪くもなっていないようです。

  • 必死になって12.10にアップグレードしましたが、これで問題は解決せず、LTSではないディストリビューションを実行しています(したがって、私にとっては理想的ではありません:-\)

しかし、それは私のシステムを非常に使いにくくしている。

おそらく重要な更新:xevでいくつかの調査を試みました。これらのマウスでは接続が悪いように見えますが、これはよくあることですか?マウスボタンを押したままにすると、(マウスクリック)(一時停止)(マウスリリース)(非常に短い一時停止)(マウスクリック)(一時停止)(マウスリリース)(非常に短い一時停止)(マウスクリック)などを取得できますたとえば、他のオペレーティングシステムが「リリースしてから0.05秒以内に再度クリックすることはできないので、これはグリッチだったに違いないので、ボタンがリリースされなかったと仮定します」と言うのでしょうか。Ubuntuにrelease-and-then-reclick-almost-instantlyイベントを無視するように指示できますか?

これは、マウスの問題のようです。たぶん、新しいマウスを掘り下げる必要がありますか?私は非常に古いものだけを試しました:-\


ランチパッドのバグとして報告しましたか?
アルヴァ

一週間前に何が起こったのかを思い出せますか?
-hytromo

1週間前に起こったことは、まさに毎週起こることです。「アップグレードのインストール」をクリックし、「コンピューターを再起動してインストールを完了する」をクリックするだけです。このシステムはすぐに使用できます-デフォルトでインストールされているパッケージ以外にインストールしたパッケージは、sparkleshareを実行するのに必要な数個だけだったと思います。
ケビンバザード

@Alvar:このバグについてランチパッドで混乱しているようです。私の一般的な印象は、一部の人はこの問題を抱えており、問題はマウスが壊れていること、一部の人はこの問題を抱えており、問題はロジクールドライバー、一部の人はこの問題を抱えており、別の場所にあるということです。私は...それを報告し、ノイズを低減しようとします
ケビン・バザード

私は、Firefoxのジェスチャと組み合わせて壊れたマウスだと思った関連する問題にぶつかりましたが、「firefox back」を行うマウスのサイドボタンであることが判明しました
Matija Nalis

回答:


47

影響を受けるマシンでxevを使用して広範なテストを行い、さまざまなシステムでさまざまなマウスを切り替えると、この問題は解決したと思います。もちろん、YMMV。

私の解決策:それは壊れたマウスです。

より正確には、クリック時にアクティブになったコネクタが少し古いか汚れているなどであり、ボタンを押したままにすると接続が行われ、その後一時的に切断されてから再度接続され、ダブルクリックが発生します。


異論:しかし、マウスをWindowsマシンに接続すると正常に動作します!

カウンター:ドライバーまたはOSに次の擬似コード行を追加するのは簡単ではないでしょうか:「ユーザーがマウスをクリックしてから0.05秒以内に再度クリックした場合、それはおそらく汚いコネクタです。無視してください」。したがって、マウスを別のOSを実行している別のコンピューターに切り替えたり、別のハードウェアで別のドライバーを使用したりすると(同じOSでも別のハードウェアを使用できる可能性がありますよね?)、異なる結果が得られる可能性があります?

異論:しかし、私は別の古いマウスを試してみましたが、同じ問題が発生しました!

カウンター:同じ会社の2匹の古いネズミが両方とも同じように壊れるのは驚くべきことですよね?そして、あなたが試した2番目の古いマウスが別のハードウェアに接続されたときに問題を示さなかったので、あなたは気づきませんでした(前のカウンターを参照)。


マウスが壊れていると本当に思わない場合は、テストします。

$ xev

次に、背景が黒い正方形を見つけ、クリックして出力を確認します。あなたは間違いなく、常に、1つのきれいな「クリック」を得るだけですか?私はしばしばきれいなクリックを取得しますが、時折「バウンス」(クリッククリック解除クリック)を取得します。おそらくもっと良い:

$ xev | grep ButtonRelease

ここで、マウスを黒いアウトライン(またはそのウィンドウ内の任意の場所)の正方形に貼り付け、20回クリックしてクリック解除します。ボタンを放すたびに「ButtonRelease」行を取得する必要があります。クリックするとたまに手に入れます。

悪夢は終わりました。


最近、予期しないクリックに気付いた2つの同一のマウスがあり、同じ週に両方が「使い果たされた」かどうかはわかりません。あなたのxevテストは私に異常なものを何も与えませんでしたが、これにもっとあるかどうか疑問に思う必要がありますか?
トム・ブロスマン

正しい-私は2匹のマウスが1台のマシンで動作せず、両方が別のマシンで動作することを非常に疑っていました。「すべてのマウスが壊れており、OSが他のOSと同様にそれを補っていない」以外の問題があると信じている人々がいることは確かです。一方、私は今朝間違いなく船に飛び乗りました-私のシステムは再び動作し、先週マウスが問題になることはないと確信しましたが、私にとっては本当にそうでした。
ケビンバザード

2
私と一緒にxevで遊んで出力を見るのに5-10分費やしました。絶えずクリックやクリック解除など-そして、クリックしていないときにたまに予期しないクリック解除が発生することがありました。80x24ターミナルウィンドウでxevの出力を見ることは非常に誤解を招く可能性があることを言ってください(私の場合はそうでした)xevの出力は以前のページとほとんど同じであるため、xevの出力に気付かないかもしれません。
ケビンバザード

7
まだ良いxev | awk '/ButtonRelease/ {print $1,i++}'
-arekolek

私にとってこれは、マウスホイールを上にスクロールするときに信号を時々送信する「ボタン3」(マウスの右ボタン)として現れました。奇妙な。
カルボカチオン

9

Zenおよびマウスのメンテナンス。多くの人がワンクリックが適用されたときにマウスのダブルクリックに問題があるようです。マウスボタンはマイクロスイッチです。現実には、スイッチの接点は跳ね返ります。彼らは実際にはバウンドしませんが、こすります。とにかくバウンスと呼びます。なんらかの理由で、プログラマーはこれにボールを落としました。連絡先が読む前に落ち着くために、十分な期間の待機ループを適用する必要があります。何も提案せず、私のソリューションのサンプルでは、​​スイッチの接点にコンデンサを配置することでした。私は、マウスの中にうまく収まる小さなサイズのものを持っている以外、特別な理由で0.1uFキャップを使用しませんでした。最適な値を見つけるために、滞留時間、時定数、または意思決定レベルの高度な分析を行ったことはありません。とにかく、さまざまなモデルには異なるパラメーターがあります。

私はしばらくの間この変更を使用してきましたが、これまでのところ問題は表面化していません。

modを適用します。マウスケースの内側に収まる小さな物理的寸法のコンデンサを見つけます。0.1uFを使用していたので、これは良い数値ですが、他の値はおそらく機能しますが、大きすぎたり小さすぎたりしないでください。大きすぎたり小さすぎたりするのは、実験の問題です。大きすぎると、意図したダブルクリックに影響する可能性があり、小さすぎると目的の効果が得られません。キャップの片方の足を、マウスの内部構造を汚さない、ボードの銅側の0ボルトプレーン(必要に応じてアースプレーン)にハンダ付けしました。スイッチへのキャップの他の脚は、細いワイヤでアクティブにします。脚が短いリサイクル部品を使用しました。新しいものには、必要な場所に到達するのに十分な長さの足がある可能性があります。作業には、適切な先端のはんだごてが必要です。

コンデンサがわからない場合。0.1uFコンデンサは、0.1uFまたは104nFまたは100nFと指定するか、茶色、黒色、黄色の帯を付けることができます。表面実装タイプも適しています。細いワイヤーのいくつかのストランドでそれを引っ掛けます。ボードの接続面を上にして接着できます。

私は計画Bを持っています。これは、次回に試すか、現在の計画が最終的に失敗する場合に使用します。spst PCBマウントの触覚メンブレンスイッチのマイクロスイッチを捨てることで、問題を解決できるはずです。これは、キーボードとキーパッドで使用されるスイッチのタイプであり、この問題は発生しません。フットプリントは、マイクロスイッチのようなものではありません。高さ7mmのスイッチが利用可能で、既存のマイクロスイッチと同じ高さになります。小さいスイッチは、正しい高さまで間隔をあける必要があります。脚をスイッチ本体に直角に曲げてボードに接着し、アクチュエータがマイクロスイッチアクチュエータの占める位置に合うようにします。マウスボタンは正しい場所にヒットする必要があります。スイッチの接点を細い線で配線しますが、理論上はすべて正常です。


5
あなたの答えは100%正しいですが、これはソフトウェアのQ&Aサイトであり、ハードウェアのQ&Aではありません。1 / SWの問題に対してハードウェアソリューションを提供しているというかなりの警告を追加する、2 /回答を短縮する3 /これを行う方法に関する写真へのリンクを追加する4 / uFではなくµFです。
ファビー

@Fabbyあなたの提案(1)と(3)は優れていますが、(2)とそれほど重要ではありません。また、少しぎこちない/簡潔になります。新しいユーザーに親しみを持たせるようにしてください!:)

@Joe 1 /賛成票を見てコメントしてください。2 /ええ、それはちょっとした工夫のない電報スタイルです。私の弁護では:私は人間ではなく、Vorlonであり、今でも私の共感に取り組んでいます... ;-)
Fabby

9

xserver-xorg-input-evdevUbuntu 14.10用のパッチを作成しました。私はhttp://blog.guntram.de/?p=16(パッチはここここにあります)の指示とDebianパッケージングマニュアルを使用しました。

パッケージの作成に関する注意事項を以下に示します。

#!/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
  • 良いニュース:うまくいきました。
  • 悪いニュース:それは常に役立つとは限りません。マウスボタンの接触がひどく、200ミリ秒の遅延が必要だったため、ダブルクリックできなくなりました。別の跳ねるマウスが正常に動作し始めました。

編集:ありがとう@MatijaNalis、パッチを取得する手順は次のとおりです。

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
スクリプトの変更が必要-「dquilt new」が「$」を逃し、「patch」が「$ dquilt add」の後、「$ dquilt refresh」の前にあり、blog.guntram.deのパッチが古い場合、aurの他のパッチを使用する必要があります.archlinux.org。「apt-get build-dep xserver-xorg-input-evdev」も追加する必要があります。また、(指定されていない)構成ファイル-wiki.debian.org/UsingQuiltの代わりにキルト環境変数を使用する必要があります。壊れたマウスのための偉大な回避策のようなそうでない場合は、ルックス...
マティヤNalis

3
デバウンス機能がlibinput 1.9に追加されました(unix.stackexchange.com/a/451864/116842)。
ジェローム

5

この問題は、ジャックガンスルによって説明されています。http://www.eng.utah.edu/~cs5780/debouncing.pdf-
コンタクトバウンスフィルタリング。ソフトウェアは、単純なシングルボードコンピューターからオペレーティングシステムに至るまで、何らかのアプリケーションに存在する必要があります。

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

連絡先/ボタンが古くなると、効果は悪化します。WD40は、電子機器で使用するのに最適なスプレーではないかもしれませんが、他にも適したスプレーがあります。Googleの「コンタクトスプレー」。


4

追加のボタンを2回クリックすると問題が発生しました。既にマップされていたのでxbindkeys(詳細については、すべてのマウスボタンにアクションを割り当てる方法を参照してください)、ソリューションは~/.xbindkeysrc次のようにエントリを変更していました。

"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

これにより、ボタンを押すたびに「ロックファイル」が作成され/dev/shm/(RAM上にあることを望みます)、0.2秒後に削除されます。また、xteコマンドはマウスクリックで実行され、0.2秒で2回実行されません。

(誰かがそれをコピーまたは修正したい場合に備えて、私は自分のソリューションを共有すると思った。)


これは、マウスが連続したButtonPress / ButtonReleaseイベントストリームを送信するが、それを単一のイベントに変換する場合の優れたソリューションです。これは、たとえばMicrosoft Bluetoothマウスやチルトホイールボタンで発生します。
レオアレクセイエフ

2

ソフトウェアのバグがあり、2014年6月の時点で修正されていません。すべてのマウスモデルで発生するわけではありません。私のロジクールのマウスは大丈夫ですが、他のほとんどは何をしても失敗します。これは、RHEL、CentOS、およびUbuntu用です。すべてのマウスは純粋なWindowsボックスで動作しますが、KVMでも同じ問題があります。

解決策はまだありません。開発者はそれを知っています。

乾杯。ドン。


1
バグへのリンクを追加して、それについて少し背景を教えていただけますか?
オリ


1
他の回答(およびバグレポート)からわかるように、これは実際にはバグではなく、機能の欠落です。Windowsはデフォルトでマウスのフィルタリングをデバウンスしますが、Linuxはそうではありません。
ユール

1

スプレーWD40は、rac rac racノイズを含むヘッドフォンのボリュームホイールを含む多くの問題の魔法であり、マウスクリックのこの問題の修復にも…

テストは非常に高速で、マウスを開いたり、ヘッドフォンを開いたり、スプレーしたりする必要はありません。


1

私の場合、それはハードウェアであり、より正確には、マウスボタンマイクロスイッチの機械的な問題でした。

古いマウスのLogitech m-uv69と約1年前に購入した別のマウスの2つのマウスでこの問題が発生しました。これは私がやったことです:

  • マウスの上部カバーを外しました
  • マイクロスイッチの小さなボタンを何回も直接素早く押す

その後、意図しないダブルクリックはほとんどなくなりました。マイクロスイッチ内で何が発生したのか正確にはわかりません。おそらくそれは汚れや何かになったし、それをすばやく押すと汚れが消えます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.