鼠标键作为修改器

时间:2018-12-12 10:35:59

标签: karabiner

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

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

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

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

1 个答案:

答案 0 :(得分:0)

我认为“同时”仍希望同时找到两个“按下事件”,我怀疑两个鼠标按键是否可以–但我可能会犯错。
[编辑:EventViewer使我意识到可以同时按下2个鼠标按钮。但是我使用带有2个按钮的鼠标。 K-E不会重新映射“ button1”,因此我无法测试您的情况。]

如果2个鼠标按钮的确不是“同时”被识别的,则可以尝试以下操作:

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

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