Ubuntuを完全に廃棄して他のことを試してみる方が簡単かもしれないと思っている限り、悪夢になりつつある問題があります。 Ubuntu 12.04を実行しているHP PCがあります。マウスで左クリックすると、ダブルクリックすることがあります(おそらく50%の時間)。
これまでのところ、未完成のメールをランダムに送信し、メールを書いている間に削除したくないものをランダムに強調表示して削除します(veryイライラする)、 1つではなく2つのブラウザタブを(数回)ランダムに削除し、デスクトップ上でウィンドウを移動したり、ターミナルウィンドウからカットアンドペーストしようとしたときに、非常にイライラするエンドユーザーエクスペリエンス。よかった Alt-F7 —しかし、私は使用しているすべてのプログラムとOSのキーボードショートカットを学ぶ必要はありません(コピーペーストできないことは私にとって大きな損失です)。
私がこの問題を抱えているのは私だけではありませんが、グーグルは、複数の理由が考えられることを示しています。私がオンラインで読んだ修正のどれも私のために働いていません。他の人には機能したが私には機能しなかった修正を含め、すべてを見てみましょう。ああ— hp光学式マウスを持っています。
壊れたマウスではありません。私のシステムで2匹のマウスを試しましたが、どちらも問題を示しています。これらのマウスはどちらも、Ubuntu 12.04を実行している自宅のラップトップで正常に動作します。
私の/etc/X11/xorg.conf
は数行の長さで、「InputDevice」セクションはありません。
Haldがないか、halパッケージがインストールされていません。
それは約1週間前に始まりましたが、良くも悪くもなっていないようです。
必死で12.10にアップグレードしましたが、これで問題は修正されず、LTSではないディストリビューションを実行しています(したがって、私にとっては理想的ではありません:-\)
しかし、それは私のシステムを非常に使いにくくしている。
おそらく重要な更新:xevでいくつかの調査を試みました。これらのマウスでは接続が悪いように見えますが、これはよくあることですか?マウスボタンを押したままにすると、(マウスクリック)(一時停止)(マウスリリース)(非常に短い一時停止)(マウスクリック)(一時停止)(マウスリリース)(非常に短い一時停止)(マウスクリック)などを取得できます。例えば他のオペレーティングシステムは、「0.05秒以内にリリースしてから再度クリックすることはできないため、これはグリッチであったに違いないので、ボタンがリリースされなかったと仮定します」と言います。 Ubuntuにrelease-and-then-reclick-almost-instantlyイベントを無視するように指示できますか?
これは、マウスの問題のようです。たぶん、新しいマウスを探し出すべきですか?私は非常に古いものだけを試しました:-\
影響を受けるマシンでxevを使用して広範なテストを行い、さまざまなシステムでさまざまなマウスを切り替えると、この問題は解決したと思います。もちろん、YMMV。
私の解決策:それは壊れたマウスです。
より正確には、クリック時にアクティブになったコネクタが少し古いか汚れているか、またはボタンを押したままにすると接続が確立され、その後一時的に切断されてから再度接続され、ダブルクリックが発生します。
反対意見:しかし、マウスをWindowsマシンに接続すると正常に機能します!
カウンター:ドライバーまたはOSに次の擬似コードを入れるのは簡単なことではないでしょうか:「ユーザーがマウスをクリックしてから0.05秒以内に再度クリックした場合、それはおそらく汚いコネクターです。無視してください」。したがって、マウスを別のOSを実行している別のコンピューターに切り替えたり、別のハードウェアで別のドライバーを使用したりすると(同じOSでも別のハードウェアを使用できますよね?)、異なる結果が得られる可能性はありません。 ?
異論:しかし、別の古いマウスを試してみたところ、同じ問題が発生しました!
カウンター:同じ会社の2匹の古いネズミが両方とも同じように壊れるのは驚くべきことですか?そして、あなたが試した2番目の古いマウスが別のハードウェアに差し込まれたときに問題を示さなかったので、あなたは気づきませんでした(前のカウンターを参照)。
マウスが壊れていると本当に思わない場合は、テストします。
$ xev
次に、背景が黒の正方形を見つけてクリックし、出力を確認します。間違いなく、常に、1回の "クリック"だけを取得しますか?私はしばしばきれいなクリックを取得しますが、ときどき「バウンス」(クリック、クリック解除)をクリックします。おそらくもっと良い:
$ xev | grep ButtonRelease
ここで、マウスを黒いアウトライン(またはそのウィンドウ内の任意の場所)の正方形に貼り付け、20回クリックしてクリック解除します。ボタンを放すたびに「ButtonRelease」行を取得する必要があります。クリックするとたまに手に入れます。
悪夢は終わりました。
Zenおよびマウスのメンテナンス。多くの人がワンクリックが適用されたときにマウスのダブルクリックに問題があるようです。マウスボタンはマイクロスイッチです。現実には、スイッチの接点は跳ね返ります。実際には跳ね返るのではなく、こすります。とにかくバウンスと呼びます。なんらかの理由で、プログラマーはこれにボールを落としました。連絡先が読む前に落ち着くために、十分な期間の待機ループを適用する必要があります。何も提案せず、私のソリューションのサンプルでは、スイッチの接点にコンデンサを配置することでした。私はマウスの中にうまく収まる小さなサイズのものを持っている以外、特別な理由で0.1uFキャップを使用しませんでした。最適な値を見つけるための滞留時間、時定数、または意思決定レベルの高度な分析は行っていません。とにかく、さまざまなモデルには異なるパラメーターがあります。
私はしばらくこの修正を使用してきましたが、これまでのところ問題は表面化していません。
Modを適用するには。マウスケースの内側に収まる小さな物理的寸法のコンデンサを見つけます。私は0.1uFを使用していました。これはナイス数ですが、他の値はおそらく機能しますが、大きすぎたり小さすぎたりしないでください。大きすぎたり小さすぎたりするのは、実験の問題です。大きすぎると、意図したダブルクリックに影響する可能性があり、小さすぎると目的の効果が得られません。キャップの片方の足を、マウスの内部構造を汚さない、ボードの銅側の0ボルトプレーン(ご希望であればアースプレーン)にハンダ付けしました。スイッチへのキャップのもう一方の脚は、細いワイヤーでアクティブにします。脚が短いリサイクル部品を使用しました。新しいものには、必要な場所に到達するのに十分な長さの足がある可能性があります。作業には、適切な先端のはんだごてが必要です。
コンデンサがわからない場合。 0.1uFコンデンサは、0.1uFまたは104または100nFと指定するか、茶色の黒黄色のバンドを付けることができます。表面実装タイプも適しています。細いワイヤーのいくつかのストランドでそれを引っ掛けます。ボードの接続面を上にして接着できます。
次回に試すか、現在の計画が最終的に失敗した場合に、計画Bがあります。 spst PCBマウント触覚メンブレンスイッチのマイクロスイッチを捨てることで、問題を解決できます。これはキーボードとキーパッドで使用されるスイッチのタイプであり、この問題は発生しません。フットプリントは、マイクロスイッチのようなものではありません。高さ7mmのスイッチが利用可能で、既存のマイクロスイッチと同じ高さになります。小さいスイッチは、正しい高さまで間隔をあける必要があります。脚をスイッチ本体に直角に曲げ、ボードに接着して、アクチュエータがマイクロスイッチアクチュエータが占める位置に合うようにします。マウスボタンは正しい場所にヒットする必要があります。スイッチの接点を細い線で配線しますが、理論上はすべて正常です。
Ubuntu 14.10用のパッチを適用したxserver-xorg-input-evdev
を作成しました。 http://blog.guntram.de/?p=16 (パッチは here および here )にあります。 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
edit:@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
この問題は、ジャックガンスルによって説明されています。ここでは 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の「コンタクトスプレー」。
追加のボタンを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回実行されません。
(誰かがそれをコピーまたは修正したい場合に備えて、私は自分のソリューションを共有すると思った。)
ソフトウェアのバグがあり、2014年6月の時点で修正されていません。すべてのマウスモデルで発生するわけではありません。私のロジクールのマウスは大丈夫ですが、他のほとんどは何をしても失敗します。これは、RHEL、CentOS、およびUbuntu用です。すべてのマウスは純粋なWindowsボックスで動作しますが、KVMでも同じ問題があります。
解決策はまだありません。開発者はそれを知っています。
乾杯。ドン。
私の場合、それはハードウェアであり、より正確には、マウスボタンマイクロスイッチの機械的な問題でした。
古いマウスのLogitech m-uv69と約1年前に購入した別のマウスの2つのマウスでこの問題が発生しました。これは私がやったことです:
その後、意図しないダブルクリックはほぼすべてなくなりました。マイクロスイッチ内部で何が発生したのか正確にはわかりません。たぶんそれは汚れや何かになったとすぐにそれを押すと汚れが消えます。
スプレーWD40は、rac rac racノイズを含むヘッドフォンのボリュームホイールを含む多くの問題の魔法であり、マウスクリックのこの問題を修復するためにも…
テストは非常に高速で、マウスを開いたり、ヘッドフォンを開いたり、スプレーしたりする必要はありません。