记录一下罗技鼠标G304单击变双击的软件解决过程和方案(适用于macOS, 如果是Windows,使用AutoHotKey也有类似解决办法、方案,改日提供):
背景:通过罗技Logitech G HUB软件对罗技的游戏鼠标侧键button4做了映射,映射到了command+w,用于快速关闭窗口或标签,但此侧健使用2年后出现了鼠标按键连击现象,单击变双击,经常连续关闭2个标签页。可以通过罗技售后维修,但由于已经过保,通过研究找到了软件的解决办法:
首先通过罗技Logitech G HUB软件,通过该软件把该鼠标设定到on-board模式(软件模式下Karabiner-Elements跟踪不到button4按键)
然后通过Karabiner-Elements对侧键进行修改,首先要在Devices栏确保对此鼠标有做监控和跟踪Modify events:
然后转到Misc, 打开配置文件夹,并编辑配置文件karabiner.json:
直接通过代码对karabiner.json添加以下规则:
{
"description": "button4 twice",
"manipulators": [
{
"conditions": [
{
"name": "press_button4",
"type": "variable_if",
"value": 1
}
],
"from": {
"pointing_button": "button4"
},
"to": [
{
"key_code": "w",
"modifiers": [
"left_command"
]
}
],
"type": "basic"
},
{
"from": {
"pointing_button": "button4"
},
"parameters": {
"basic.to_delayed_action_delay_milliseconds": 100
},
"to": [
{
"set_variable": {
"name": "press_button4",
"value": 1
}
}
],
"to_delayed_action": {
"to_if_canceled": [
{
"set_variable": {
"name": "press_button4",
"value": 0
}
}
],
"to_if_invoked": [
{
"set_variable": {
"name": "press_button4",
"value": 0
}
},
{
"key_code": "w",
"modifiers": [
"left_command"
]
}
]
},
"type": "basic"
}
]
}
代码中to_delayed_action_delay_milliseconds 指定了双击判定的毫秒间隔,设置为100毫秒,100毫秒内的双击将视同单击。 此值可自由设定。 若100毫秒内无双击,则继续执行原单击to_if_invoked。
至此,问题搞定。
官方参考文档:
to_delayed_action | Karabiner-Elements
Karabiner-Elements是一个很强大的专门用于修改macOS按键映射的开源免费软件:
Karabiner-Elements官网链接:
Karabiner-Elements