0

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

我发现了这个https://github.com/tekezo/Karabiner-Elements/issues/1223但由于不活动而关闭。

我曾尝试在定义中同时使用,但它不起作用。

{
    "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显然也适用于鼠标按钮

4

1 回答 1

0

我认为“同时”仍然希望同时找到两个“向下事件”,我怀疑 2 个鼠标按钮是否可以——但我可能会犯错。
[编辑:EventViewer 让我意识到可以同时按下 2 个鼠标按钮。但我用的是带 2 个按钮的鼠标;“button1”不会被KE重新映射,所以我无法测试你的情况。]

如果 2 个鼠标按钮真的不能“同时”识别,你可以试试这个:

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

我建议您添加一个“to_delayed_action”——比如说 2 秒后——在任何情况下都会重置“mb3_down”(否则下次单独使用 button_6 时它可能会意外关闭一些窗口)。

于 2018-12-12T11:52:48.750 回答