Ano*_*ous 9 linux mouse operating-systems double-click mouse-click
这是第二只老鼠因为开关不好而死在我身上!在大多数操作系统下,有一个选项可以设置处理两次鼠标单击的最大时间间隔,就像双击一样。
从逻辑上讲,必须有一种方法来设置最小双击时间间隔!
我当然可以更换损坏的开关,但新开关需要成本、时间和基本焊接。显然,这应该是最后一步。
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 的平台,但我不确定它的功能。
归档时间: |
|
查看次数: |
5819 次 |
最近记录: |