鼠标按钮作为修饰符
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)。
我想将鼠标上的一个按钮用作单击另一个按钮时的修饰符。
我找到了这个 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)。