如何使用 Karabiner 按住一个键让 mac 进入睡眠状态?

How to make mac go to sleep with holding down a key with Karabiner?

我想做一个复杂的修改,让 macOS 在我按住 F6/☾ 键时进入睡眠状态。

当我释放立即唤醒 OS 的键时,以下配置正在运行。

也许它可以与 to_after_key_up 结合,但找不到如何做。

{
    "description": "Map F6 (Do Not Disturb) to Cmd+Opt+Eject for Sleep Mac",
    "manipulators": [{
            "from": {
                "key_code": "f6"
            },
            "type": "basic",
            "parameters": {
                "basic.to_if_alone_timeout_milliseconds": 250,
                "basic.to_if_held_down_threshold_milliseconds": 1000
            },
            "to_if_alone": [
                {
                    "key_code": "f6"
                }
            ],
            "to_if_held_down": [
                {
                    "repeat": false,
                    "consumer_key_code": "eject",
                    "modifiers": ["left_gui", "left_alt"]
                }
            ]
    }]
}

找不到密钥释放问题的解决方案,因此我创建了一个通过双击 F6/☾ 键实现相同功能的解决方案:

{
    "description": "Map 2x F6 (Do Not Disturb) to Cmd+Opt+Eject for Sleep Mac",
    "manipulators": [
            {
                "type": "basic",
                "conditions": [
                    {
                            "type": "variable_if",
                            "name": "sleep",
                            "value": 1
                    }
                ],
                "from": {
                    "key_code": "f6"
                },
                "to_after_key_up": [{
                    "repeat": false,
                    "consumer_key_code": "eject",
                    "modifiers": ["left_gui", "left_alt"]
                }]
            },
            {
                "type": "basic",
                "from": {
                    "key_code": "f6"
                },
                "to": [
                    {
                            "set_variable": {
                                "name": "sleep",
                                "value": 1
                            }
                    }
                ],
                "to_delayed_action": {
                    "to_if_invoked": [
                            {
                                "set_variable": {
                                    "name": "sleep",
                                    "value": 0
                                }
                            },
                            {
                                "key_code": "f6"
                            }
                    ],
                    "to_if_canceled": [
                            {
                                "set_variable": {
                                    "name": "sleep",
                                    "value": 0
                                }
                            }
                    ]
                },
                "parameters": {
                    "basic.to_delayed_action_delay_milliseconds": 200
                }
            }
    ]
}

我想区别于按 F6 键的原因是我在文件浏览器中使用它在面板之间移动文件。