当我单击一次时,鼠标有时会双击


39

我遇到的一个问题正在变成一场噩梦,以至于我认为完全废弃Ubuntu并尝试其他方法可能会更容易。我有一台运行Ubuntu 12.04的HP PC。当我用鼠标左键单击时,有时会双击(可能是50%的时间)。

到目前为止,这导致:随机发送未完成的电子邮件,随机突出显示和删除在编写电子邮件时不想删除的内容(非常令人沮丧),随机删除两个浏览器选项卡,而不是一个(几次),以及(在某种意义上)最烦人的)是尝试在桌面上移动窗口或从终端窗口剪切并粘贴时的非常令人沮丧的最终用户体验。谢天谢地Alt- F7-但我不希望有学习键盘快捷键为每一个节目我用,以及对OS(和不能够复制粘贴是一个巨大的损失对我来说)。

我并不是唯一遇到此问题的人,但是谷歌搜索表明可能有多种原因。我在网上阅读的所有修复程序都没有对我有用。让我仔细阅读所有内容,包括对其他人有用但对我无效的修复程序。哦-我有一个hp光电鼠标。

  • 这不是一只坏老鼠。我在系统上尝试了两只鼠标-都出现了问题。这两种鼠标在运行Ubuntu 12.04的家用笔记本电脑上都可以正常工作。

  • /etc/X11/xorg.conf只有几行,没有“ InputDevice”部分。

  • 我没有暂停,也没有安装hal软件包。

  • 它始于大约一周前,并且似乎并没有变得越来越好。

  • 无奈之下,我刚刚升级到12.10,但这并不能解决问题,现在我正在运行的不是LTS的发行版(因此对我来说不是理想的:-\)

但这使我的系统很难使用。

可能重要的更新:我尝试使用xev做一些调查。在我看来,这些老鼠之间的连接似乎很差-这很常见吗?我可以按住鼠标按钮,然后获取(鼠标单击)(暂停)(鼠标释放)(非常短的暂停)(鼠标单击)(暂停)(鼠标释放)(非常短的暂停)(鼠标单击)等我不知道其他操作系统是否例如说“您不能释放并在0.05秒内再次单击,因此一定是小故障,并且我将假定按钮从未释放”。我可以告诉Ubuntu几乎立即释放然后重新单击的事件吗?

因此,这看起来像是鼠标的问题。也许我应该挖出更新的鼠标?我只尝试了很老的:-\


您是否将其报告为启动板上的错误?
2013年

您能记得一周前一切开始时发生的事情吗?
hytromo

一周前发生的事情恰好是每周发生的事情-我只需单击“安装升级”,偶尔单击“重新启动计算机以完成安装”。这个系统可以直接使用-我认为除了默认安装的那些软件包以外,我安装的唯一软件包是我运行sparkleshare所需的软件包。
凯文·巴扎德

@Alvar:在启动板上似乎对此错误感到困惑。我的总体印象是,有些人遇到了这个问题,而问题是他们的鼠标坏了,有些人遇到了这个问题,而这个问题是一些Logitech驱动程序,有些人遇到了这个问题,而这个问题又出在其他地方。我将尝试报告它并减少噪音...
凯文·巴扎德

我碰到了一个相关的问题,我以为是用Firefox手势将鼠标弄坏了,但结果却是鼠标侧面的按钮在做“ Firefox退后”
Matija Nalis

Answers:


47

在受影响的机器上使用xev进行广泛测试并在各种系统上的各种鼠标之间切换之后,我确定可以解决此问题。当然是YMMV。

我的解决方案:这是一只坏老鼠。

更准确地说,单击时激活的连接器有点旧或变脏或有些东西,有时,按住按钮时会建立连接,然后暂时断开,然后再进行连接,从而导致双击。


异议:但是,当我将鼠标插入Windows计算机时,鼠标可以正常工作!

计数器:将以下几行伪代码放入驱动程序或操作系统中不是一件容易的事:“如果用户取消单击鼠标,然后在0.05秒内再次单击它,那可能是肮脏的连接器,所以让我们那就别理了。” 因此,如果您将鼠标切换到另一台运行其他操作系统和/或在不同硬件上使用其他驱动程序的计算机(即使使用相同的操作系统,您很可能会使用不同的硬件,对吗?),您可能会得到不同的结果。 ?

异议:但是我尝试了另一只旧鼠标,它也出现了同样的问题!

柜台:令人惊讶的是,同一家公司的两只老老鼠怎么都可以以相同的方式折断,是吗?而且您从未注意到,因为您尝试使用的第二只旧鼠标在插入其他硬件时没有出现任何问题(请参见上一个计数器)。


如果您真的不相信鼠标坏了,请对其进行测试:

$ xev

然后找到带有黑色背景的正方形,单击它,然后观察输出。您是否肯定总是获得一次干净的“点击”,而没有其他?我通常会得到干净的点击,但偶尔会出现“反弹”(点击取消点击)。甚至更好:

$ xev | grep ButtonRelease

现在,将鼠标插入带有黑色轮廓的正方形(或该窗口中的任何位置),然后单击并取消单击20次。每次释放按钮时,您都应该获得“ ButtonRelease”行,否则就不会。单击时偶尔会得到一个。

噩梦结束了。


我有两只完全相同的鼠标,最近我注意到它们有意外的点击,但我不确定这两只鼠标是在同一周“耗尽”的。您的xev测试并没有给我带来任何异常,但是我想知道是否还有其他功能?
汤姆·布鲁斯曼

是的-我非常怀疑有两只老鼠,但它们都不在一台机器上工作,而都在另一台机器上工作。我敢肯定,有人相信除了“老鼠全部坏掉,操作系统无法像其他操作系统一样补偿它”以外,确实存在问题。另一方面,我今天早上肯定跳船了-我的系统又在工作,上周我确信鼠标可能不是问题,但对我而言确实如此。
凯文·巴扎德

2
与我一起,我花了5-10分钟的时间玩xev并观看输出。不断单击和取消单击等-然后偶尔在我不单击时得到意外的单击。我还要说,在80x24终端窗口上查看xev的输出可能会产生很大的误导,因为“ unclick-click”会导致xev输出完整的信息页面,并且如果unclick-click发生得足够快, (在我的情况下就是这种情况),那么您甚至可能无法注意到xev输出,因为它与之前的页面几乎相同。
凯文·巴扎德

7
更好了xev | awk '/ButtonRelease/ {print $1,i++}'
arekolek

对我来说,这表现为“按钮3”(鼠标右键),当我向上滚动鼠标滚轮时偶尔会发送信号。奇怪
carbocation

9

Zen和鼠标维护。似乎许多鼠标单击时都出现了鼠标双击问题。鼠标按钮是一个微动开关。有生命的事实是开关触点会弹跳。他们实际上并没有反弹而是摩擦。我们还是称它为弹跳。由于某种原因,程序员已经放弃了这一点。应该在读取之前应用足够长的等待循环,以使触点稳定。大概什么也没有,我的解决方案样本就是在开关触点之间放置一个电容器。我没有特别的理由使用0.1uF的电容,只是我有一个尺寸很小的电容,可以很好地放入鼠标中。我没有对停留时间,时间常数或决策水平进行任何花哨的分析来找到最佳值。无论如何,各种模型将具有不同的参数。

我已经使用此修改已有一段时间了,到目前为止该问题尚未浮出水面。

要应用mod。寻找一个物理尺寸小的电容器,该电容器将适合鼠标盒的内部。我使用了一个0.1uF,因为我有一个,这是一个不错的数字,但其他值可能会起作用,但不要太大或太小。太大或太小需要实验。太大可能会影响预期的双击,而太大则无法达到预期的效果。我在一个方便的位置焊接了一只帽子的脚,在那儿,它没有碰到鼠标内部结构的问题,在板子的铜侧上,它焊接到了0伏特平面(如果需要的话,是接地平面),我钩住了帽的另一端用一点细线激活。我使用了腿短的可回收部件。一个新的腿可能有足够长的腿,可以到达需要的地方。您将需要一个合适的细尖烙铁来完成这项工作。

如果您不了解电容器。一个0.1uF的电容器可以指定为0.1uF或104或100nF,或者具有棕黑色黄色带。表面安装类型也是一个不错的选择。用几股细线钩住它。可以将其胶​​粘到板连接面朝上。

我有一个计划B,下次可以尝试,或者如果当前计划最终失败,则可以尝试。放弃将微型开关用于spst PCB安装的触觉薄膜开关应该可以解决该问题。这是键盘和键盘上使用的开关类型,不会出现此问题。脚不会像微动开关那样印它。提供7mm高的开关,其高度与现有的微型开关相同。需要将较小的开关隔开到正确的高度。将支脚与开关主体成直角弯曲,然后将其粘在板上,以使执行器与微动开关执行器所占据的位置对齐。鼠标按钮必须击中正确的位置。用一些细线将开关触点连接起来,理论上都应该是好的。


5
尽管您的答案是100%正确,但这是软件问答网站,而不是硬件问答网站。因此,请:1 /添加一个可敬的警告,警告您正在为软件问题提供硬件解决方案,2 /缩短答案3 /添加一些图片链接以说明如何执行此操作4 /这是µF,而不是uF。
Fabby 2015年

@Fabby您的建议(1)和(3)很好,但与(2)相比并没有那么多,并且(3)很小/不必要。还会显得有些生涩/简洁。您应该尝试对新用户友好!:)

@Joe 1 /查看评论以发表评论。2 /是的,它是没有任何细微差别的电报样式,因此可能会更好。为了我的辩护:我是福隆人,而不是人类,我仍在努力换位... ;-)
Fabby

9

我已经xserver-xorg-input-evdev为Ubuntu 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。否则,看起来是解决折断鼠标的好方法...
Matija Nalis 2015年

3
在libinput 1.9(unix.stackexchange.com/a/451864/116842)中添加了一个反跳功能。
杰罗姆


4

我有一个附加按钮单击两次的问题。正如我已经将其映射到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秒内执行两次。

(只是以为我会分享我的解决方案,以防万一有人想要复制或修复它。)


对于鼠标发送连续的ButtonPress / ButtonRelease事件流,但您希望将其转换为单个事件的情况,这是一个极好的解决方案。这发生在例如Microsoft蓝牙鼠标和倾斜滚轮按钮上。
Leo Alekseyev '18年

2

没有软件错误,截至2014年6月,尚无修复程序。并非所有的小鼠模型都发生这种情况。我的Logitech鼠标很好,但是无论您做什么,其他大多数鼠标都会失败。这适用于RHEL,CentOS和Ubuntu。所有的鼠标都可以在纯净的窗户盒上工作,但是KVM中存在相同的问题

尚无解决方案,开发人员确实对此有所了解。

干杯。唐


1
您能否添加一个指向错误的链接并提供一些背景知识?
奥利(Oli)


1
从其他答案(和错误报告)中可以看出,这实际上不是错误,而是缺少的功能。Windows会默认对鼠标进行反跳过滤,而Linux不会。
Hjulle

1

WD40喷雾可以解决许多问题,包括带有rac rac噪声的大音量滚轮式耳机,还可以解决此鼠标单击问题。

测试,速度非常快,不需要打开鼠标或打开耳机,再喷一次就可以了……


1

就我而言,这是硬件,或更确切地说是鼠标微动开关的一些机械问题。

我有2只老鼠遇到了这个问题:旧的罗技m-uv69和大约一年前我买的另一只老鼠,我设法不费力地修理了它们。这是我所做的:

  • 脱下鼠标顶盖
  • 直接快速多次按下微动开关小按钮

之后,几乎所有意外的双击都消失了。我不知道是什么原因导致了微型开关内部的故障。可能弄脏了或有什么东西,迅速推开它会使灰尘消失。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.