鼠标按钮作为修饰符

Mouse button as modifier

我想将鼠标上的一个按钮用作单击另一个按钮时的修饰符。

我找到了这个 https://github.com/tekezo/Karabiner-Elements/issues/1223 但由于不活动它已关闭。

我尝试在 from 定义中使用 simultaneous,但它不起作用。

{
    "description": "Maps button6 and button3 to close action (cmd-w)",
    "manipulators": [
        {
            "from": {
                "modifiers": [
                    {
                        "pointing_button": "button6"
                    }
                ],
                "pointing_button": "button3"
            },
            "to": [
                {
                    "key_code": "w",
                    "modifiers": [
                        "left_command"
                    ],
                    "repeat": false
                }
            ],
            "type": "basic"
        }
    ]
}

知道怎么做吗?

编辑:

我最后是这样的:

{
    "description": "Maps button2 to close action (cmd-w) when button6 is pressed",
    "manipulators": [
        {
            "conditions": [
                {
                    "type": "variable_if",
                    "name": "button6_down",
                    "value": 1
                }
            ],
            "from": {
                "pointing_button": "button2"
            },
            "to": [
                {
                    "key_code": "w",
                    "modifiers": [
                        "left_command"
                    ],
                    "repeat": false
                }
            ],
            "type": "basic"
        }
    ]
},
{
    "description": "Maps button6 to variable",
    "manipulators": [
        {
            "from": {
                "pointing_button": "button6"
            },
            "to": [
                {

                    "set_variable": {
                        "name": "button6_down",
                        "value": 1
                    }
                }
            ],
            "to_after_key_up": [
                {

                    "set_variable": {
                        "name": "button6_down",
                        "value": 0
                    }
                }
            ],
            "type": "basic"
        }
    ]
}

to_after_key_up 显然也适用于鼠标按钮

我认为 "simultaneous" 仍然希望同时找到两个 "down events",我怀疑是否可以找到 2 个鼠标按钮 – 但我可能会犯错。
[编辑:EventViewer 让我意识到可以同时按下 2 个鼠标按钮。但是我使用的鼠标有 2 个按钮; "button1" 不会被 K-E 重新映射,所以我无法测试你的情况。]

如果 2 个鼠标按钮确实无法识别"simultaneous"仅,您可以试试这个:

定义一个变量"mb3_down",由button_3设置为“1”,而在第二个操纵器中, button_6(如果 "mb3_down" = 1)应该首先调用 Cmd-W,然后将 "mb3_down" 重置为“0”。我相信这应该有效。

我建议您添加一个 "to_delayed_action",让我们说在 2 秒后 - 在任何情况下都会重置 "mb3_down"(否则下次您单独使用 button_6它可能会意外关闭一些 window)。