Karabiner:如何防止发送 Shift+Alt?

Karabiner:如何防止发送 Shift+Alt?

Karabiner 的 JSON 配置是否可以指示在键入 Shift+Alt+other_key 时不应发送 Shift+Alt?

用例如下,从连接到 Windows 的 Microsoft 远程桌面内部:

  • 假设我想在 Windows 应用程序中键入 Shift+Alt+) 并插入“]”(就像法语键盘一样)。
  • 现在,当我按下 Shift+Alt 键时,Windows 切换键盘布局。我想在远程机器上保留此功能,但它不应干扰 Shift+Alt+other_key 组合。

因此,我希望当我键入 Shift+Alt+) 时在 Windows 远程机器上生成“]”,而无需使用 Shift+Alt 在键盘布局之间切换。

这是否可行并不明显,因为必须先按下 Shift+Alt,这必然会触发键盘布局切换。但是,如果 Karabiner 在按下 Shift+Alt 时不向 Windows 发送任何内容,然后仅在按下“)”时发送“]”,或者在按下 Shift+Alt 时激活布局切换,那么原则上可以实现。发布

我目前的配置是让 Shift+Alt+) 在 Microsoft 远程桌面(从法语键盘 MacBook)中生成“]”:

{
    "conditions": [
        {
            "bundle_identifiers": [
                "com\\.microsoft\\.rdc\\.(mac|osx|macos)"
            ],
            "type": "frontmost_application_if"
        }
    ],
    "from": {
        "key_code": "hyphen",
        "modifiers": {
            "mandatory": [
                "option",
                "shift"
            ]
        }
    },
    "to": [
        {
            "key_code": "close_bracket"
        }
    ],
    "type": "basic"
}

答案1

在纯 Windows 中,只要您一直按住这两个键, Shift+Alt本身就不会执行任何操作。只有当释放这两个键时,它才会生效。因此,我很难理解为什么当您只按下这两个键时,就会立即执行操作(但我不是在 Mac 上)。

一种可能的解决方案是在 Windows 上使用键盘重新映射器 自动热键

以下 AutoHotkey 脚本可能会 自行阻止Shift+ ,但会将+ +转换 为。它在英文版 Windows 10 上对我有用,也应该可以在您的环境中使用。AltShiftAlt(]

!Shift::return
!+):: Send, ]

也许值得测试一下脚本是否可以在没有最后一行的情况下运行。

安装 AutoHotKey 后,将上述文本放入一个.ahk文件中并双击进行测试。您可以通过右键单击托盘栏中的绿色 H 图标并选择退出来停止脚本。要让它在登录时运行,请将其放在 的启动组中 C:\Users\USER-NAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

AutoHotkey 参考:

相关内容