是否可以禁用 Mac OS X Lion 中的 command-tab 应用程序切换器?

是否可以禁用 Mac OS X Lion 中的 command-tab 应用程序切换器?

这个快捷键让我抓狂。我想在编码时重新映射命令选项卡以插入代码片段,但切换器却碍事……

答案1

您可以使用以下方式将 command-tab 映射到另一个组合键登山扣元件

<autogen>__KeyToKey__ KeyCode::TAB, VK_COMMAND | ModifierFlag::NONE, KeyCode::F19</autogen>

这将禁用 command-tab 和 shift-command-tab:

<autogen>__KeyToKey__ KeyCode::TAB, VK_COMMAND | ModifierFlag::NONE, KeyCode::VK_NONE</autogen>
<autogen>__KeyToKey__ KeyCode::TAB, VK_COMMAND | VK_SHIFT | ModifierFlag::NONE, KeyCode::VK_NONE</autogen>

答案2

您可以将其作为汇编级别执行。对于 ML 10.8.3,此Cmd+Tab注册发生在地址 0x10000b258 的子程序中。在伪代码中,它看起来像:

rax = CPSRegisterForKeyOnConnection(*(int32_t *)rbx, 0x1002cd078, 0x1, 0x1);
if (rax != 0x0) {
    fprintf(**__stderrp, "Error registering cmd-tab key, %d\\n");
}
rax = CPSRegisterForKeyOnConnection(*(int32_t *)0x1002ccda8, 0x1002cd078, 0x2, 0x1);
if (rax != 0x0) {
    fprintf(**__stderrp, "Error registering cmd-shift-tab key, %d\\n");
}

因此,如果你替换以下字节码:

488D35691C2C008B3BBA01000000B901000000E85CD71B0085C0741A488B0DD5FC2400488B39488D355B341C0089C230C0E892C51B00488D0563192C008B38488D352A1C2C00BA02000000B901000000E81FD71B0085C0741A488B0D98FC2400488B39488D3541341C0089C230C0E855C51B00

和:

90909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090909090

然后重新签名你的 Dock.app,它就可以正常工作了。你还必须在执行此操作之前取消对 Dock 二进制文件的保护,因为 Dock 二进制文件是加密的。

答案3

使用 Karabiner Elements 添加到 John 的答案中。截至 2022 年 5 月 22 日安装时,我似乎找不到添加 xml 配置的方法。一切都在 json 中!所以这就是我的做法:

在偏好设置中,单击“打开配置文件夹”按钮。

在此处输入图片描述

您将被带到一个包含karabiner.json文件的文件夹。打开该文件进行编辑。

在文件中你会看到一个simple_modifications字段。这是我添加到其中以禁用的CMD+Tab

            "simple_modifications": [
                {
                    "from": {
                        "key_code": "left_command"
                    },
                    "to": [
                        {
                            "key_code": "left_option"
                        }
                    ]
                },
                {
                    "from": {
                        "key_code": "left_option"
                    },
                    "to": [
                        {
                            "key_code": "left_command"
                        }
                    ]
                },
                {
                    "from": {
                        "key_code": "tab",
                        "modifiers": {
                            "mandatory": [
                                "command"
                            ]
                        }
                    },
                    "to": [
                        {
                            "key_code": "f13"
                        }
                    ]
                }
            ],

在我的例子中,您可以看到我首先交换了左选项和左命令。然后我禁用了 CMD + Tab。看来 key_codef13是不执行任何操作的选项。

希望这可以帮助!

答案4

可接受的答案是否包括重映射它?

当我第一次插入 Mac OS X Lion(10.7)时,它很难检测到键盘布局。但按照说明操作后(即按下左 Shift 右侧的键等),它可以正确识别布局。

在系统偏好设置中,Lion 有一个精彩的键盘面板:

Lion 的键盘面板的屏幕截图

接下来,转到修饰键...

在此处输入图片描述

宾果,现在 CapsLock 充当 Control。

或者,您可以尝试实现键绑定:

编辑默认的键绑定文件 ~/Library/KeyBindings/DefaultKeyBinding.dict。如果目录和/或文件尚不存在,请创建它们,并使其看起来像这样:

{
  /* Remap Home / End to be correct */
  "\UF729" = "moveToBeginningOfLine:"; /* Home */
  "\UF72B" = "moveToEndOfLine:"; /* End */
  "$\UF729" = "moveToBeginningOfLineAndModifySelection:"; /* Shift + Home */
  "$\UF72B" = "moveToEndOfLineAndModifySelection:"; /* Shift + End */
}

如果 DefaultKeyBinding.dict 中已有条目,只需将上述 4 个新映射添加到文件的主要部分即可。可能需要重新启动才能使其生效。

您需要根据要执行的操作调整上述代码

相关内容