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

相关推荐
Macdo_cn11 小时前
My Metronome for Mac v1.4.2 我的节拍器 支持M、Intel芯片
macos·音视频
吹泡泡的派大星12 小时前
从0-1搭建mac环境最新版
macos
zhouwu_linux12 小时前
MT7628基于原厂的SDK包, 修改ra1网卡的MAC方法。
linux·运维·macos
丁总学Java12 小时前
在 macOS 的 ARM 架构上按住 Command (⌘) + Shift + .(点)。这将暂时显示隐藏文件和文件夹。
macos
青木川崎12 小时前
Mac下常用命令
macos
ClaNNEd@12 小时前
Mac端homebrew安装配置
macos·brew
nicekwell13 小时前
macos sequoia 禁用 ctrl+enter 打开鼠标右键菜单功能
macos
丁总学Java17 小时前
在 Mac ARM 架构的 macOS 系统上启用 F1 键作为 Snipaste 的截屏快捷键
macos·snipaste
天下皆白_唯我独黑21 小时前
brew Nushell mac升级版本
macos
刘什么洋啊Zz1 天前
MacOS下使用Ollama本地构建DeepSeek并使用本地Dify构建AI应用
人工智能·macos·ai·ollama·deepseek