鼠标双击最小间隔

Ano*_*ous 9 linux mouse operating-systems double-click mouse-click

这是第二只老鼠因为开关不好而死在我身上!在大多数操作系统下,有一个选项可以设置处理两次鼠标单击的最大时间间隔,就像双击一样。

从逻辑上讲,必须有一种方法来设置最小双击时间间隔!

我当然可以更换损坏的开关,但新开关需要成本、时间和基本焊接。显然,这应该是最后一步。

首先我想尝试让电脑处理坏掉的鼠标。我正在寻找 Windows 的修复程序,尤其是 linux (ubuntu) 系统。

E:正如 Matt Eckert 提到的,问题是鼠标开关松了,只需按一个键就会产生两个信号。我从来没有提到我想在鼠标内设置任何东西。抱歉造成误会,我还以为这个问题经常出现,让大家看明白问题,给个信息。

在 Windows 下,只有设置识别双击的最大时间间隔的选项。我需要设置最小时间间隔。换句话说,只有当两次鼠标点击之间的时间差至少为例如半毫秒时,才应识别双击。

小智 6

对于 linux 解决方案:http : //blog.guntram.de/?p=16

如果您重新编译 evdev 并应用补丁,它可能适用于每个发行版。以下摘自该链接:

  • 通过从原始作者帖子我的镜像中复制/粘贴来获取事件去抖动补丁。

  • 安装evdev的源码和构建环境,并编译。警告:第一个 apt-get 会将源代码安装到当前目录的子目录中,因此首先 cd 到合适的位置。

    apt-get source xserver-xorg-input-evdev-dev
    sudo apt-get build-dep xserver-xorg-input-evdev-dev
    cd xserver-xorg-input-evdev-2.8.2/
    patch -p 1 < ../evdev-debounce.patch
    dch -i
    debuild -us -uc -b
    cd ..
    
    Run Code Online (Sandbox Code Playgroud)
  • 这将在您开始的目录中为您提供一个名为 xserver-xorg-input-evdev_2.8.2-1ubuntu2_amd64.deb 的文件。或者,如果您使用的是 32 位系统,则使用 amd64 代替 x86。如果你不想自己编译,你可以从我的镜像下载文件。这是针对 Ubuntu 14.04 的,因此根据您阅读本文的时间,我的文件将过时,您必须自己构建它。

  • 使用安装此 .deb 文件

    sudo dpkg -i xserver-xorg-input-evdev_2.8.2-1ubuntu2_amd64.deb
    
    Run Code Online (Sandbox Code Playgroud)
  • 现在,注销并重新登录;这应该启动 X 服务器并加载新包。

  • 接下来是配置去抖动;未配置,新软件不会改变任何东西。使用 xinput –list 找出鼠标设备的 ID——在我的例子中是 Razer 鼠标,ID=10:

    $ xinput --list
     ? Virtual core pointer id=2 [master pointer (3)]
     ? ? Virtual core XTEST pointer id=4 [slave pointer (2)]
     ? ? Razer Razer Copperhead Laser Mouse id=10 [slave pointer (2)]
     ? Virtual core keyboard id=3 [master keyboard (2)]
     ? Virtual core XTEST keyboard id=5 [slave keyboard (3)]
     ....
    
    Run Code Online (Sandbox Code Playgroud)
  • 当您知道您的鼠标设备 ID 后,请列出该设备的属性。属性之一——通常是最后一个——是新的去抖动延迟。您将需要它的 id(在本例中为 286):

    $ xinput --list-props 10
     .....
     Evdev Debounce Delay (286): 0
     .....
    
    Run Code Online (Sandbox Code Playgroud)
  • 最后,将该属性更改为去抖动的最大值。如果你把这个设置得太高,快速真正的双击也可能会“去抖动”——20 的值对我来说效果很好,如果你的鼠标开关磨损严重,你可能想使用 50:

    $ xinput --set-prop --type=int --format=32 10 286 20
    
    Run Code Online (Sandbox Code Playgroud)
  • 一旦你找到你喜欢的值,你就可以把上面的命令放到你的 $HOME/.xprofile 中。或者,要安装系统范围的配置文件,将以下内容放入/usr/share/X11/xorg.conf.d/12-evdev-debounce.conf - 这个文件是新的,你需要以root身份编写它:

    Section "InputClass"
     Identifier "evdev pointer debounce"
     MatchIsPointer "on"
     MatchDriver "evdev"
     Option "DebounceDelay" "20"
     EndSection
    
    Run Code Online (Sandbox Code Playgroud)


小智 5

您正在寻找的是一个软件debouncer

此线程中有两个适用于 Windows 的AutoHotkey解决方案。

第一个是来自名为 HotKeyIt 的用户的简短脚本:

LButton::   
    If (A_TimeSincePriorHotkey < 150) ;hyperclick
        Return
    Click Down
    KeyWait, LButton
    Click Up
Return
Run Code Online (Sandbox Code Playgroud)

然后还有一个更长的解决方案:Buggy-Mouse.ahk - 修复有问题的鼠标。当您尝试单击时,阻止它双击。

至于 Linux,您可以尝试使用IronAHK,这是一个 AutoHotkey 的端口,用于支持Mono 的平台,但我不确定它的功能。