macOS使用Karabiner-Elements解决罗技鼠标G304连击、单击变双击的故障

记录一下罗技鼠标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添加以下规则:

javascript 复制代码
{
    "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

相关推荐
明月(Alioo)8 小时前
机器学习入门,用Lima在macOS免费搭建Docker环境,彻底解决镜像与收费难题!
macos·docker·容器
小江村儿的文杰8 小时前
UE4 Mac构建编译报错 no template named “is_void_v” in namespace “std”
macos·ue4
MonkeyKing_sunyuhua9 小时前
mac怎么安装uv工具
python·macos·uv
猫头虎11 小时前
IDE mac M芯片安装报错:如何解决“InsCode.app 已损坏”,无法打开
ide·vscode·macos·inscode·编辑器·idea·mac
笑尘pyrotechnic11 小时前
push pop 和 present dismiss
macos·ui·ios·objective-c·cocoa
lichong95113 小时前
【混合开发】Android+Webview+VUE播放视频之视频解析工具mediainfo-Macos
android·macos·架构·vue·音视频·api·postman
小妖66615 小时前
mac 安装 nginx
运维·nginx·macos
魔道不误砍柴功15 小时前
Mac 能够连Wife,但是不能上网问题解决
网络·macos·php
daizhe15 小时前
Mac M4环境下基于VMware Fusion虚拟机安装Ubuntu24.04 LTS ARM版
ubuntu·macos
伐尘1 天前
【mac】如何在 macOS 终端中高效查找文件:五种实用方法
运维·macos