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

相关推荐
SoraLuna5 小时前
「Mac畅玩鸿蒙与硬件28」UI互动应用篇5 - 滑动选择器实现
macos·ui·harmonyos
追风林5 小时前
mac 本地docker-mysql主从复制部署
mysql·macos·docker
yqcoder5 小时前
mac 安装 nodemon
macos
一ge科研小菜鸡5 小时前
macOS开发环境配置与应用开发(详细讲解)
macos
hairenjing11235 小时前
使用 Mac 数据恢复从 iPhoto 图库中恢复照片
windows·stm32·嵌入式硬件·macos·word
zorchp12 小时前
在 MacOS 上跑 kaldi
macos·kaldi
德育处主任12 小时前
Mac和安卓手机互传文件(ADB)
android·macos
土小帽软件测试13 小时前
jmeter基础01-2_环境准备-Mac系统安装jdk
java·测试工具·jmeter·macos·软件测试学习
小沈同学呀15 小时前
Mac M1 Docker创建Rocketmq集群并接入Springboot项目
macos·docker·java-rocketmq·springboot
Mac分享吧19 小时前
Bartender 5 for Mac 菜单栏管理软件 安装教程【保姆级教程,操作简单小白轻松上手使用】
macos·苹果电脑·菜单栏管理·软件分享·操作系统工具·系统软件管理·bartender