Macbook:在系统中将 CapsLock 重新映射到 Command,在 iTerm2 中将 Right Command 重新映射到 Control,从而实现传递重新映射,解决方法?

Macbook:在系统中将 CapsLock 重新映射到 Command,在 iTerm2 中将 Right Command 重新映射到 Control,从而实现传递重新映射,解决方法?

我正在设置我的新 Macbook 系统。我在系统设置中将 CapsLock 键重新映射为 Command。然后在 iTerm2 设置中将右 Command 重新映射为 Control。

似乎此设置间接重新映射了 iTerm2 的 CapsLock -> Control。虽然当我将左 Command 重新映射到 Control 时,一切都按预期工作:CapsLock 作为 Command 工作,左 Command 作为 Control 工作。因此,我假设问题在于在系统设置中将 CapsLock 重新映射到 Command 会将其重新映射到正确的命令。似乎这种行为从 MacOS Sonoma (14) 开始。

是否可以将系统设置重新映射 CapsLock 到左边命令具体以其他方式解决这个问题?

答案1

问题确实归结于系统重新映射CapsLock到一些奇怪的键。我发现这个问题,它帮助我查看了哪个键CapsLock被重新映射到了(通过使用defaults -currentHost read -g)。在一切正常的系统中,它看起来像这样:

"com.apple.keyboard.modifiermapping.1452-833-0" =     (
            {
        HIDKeyboardModifierMappingDst = 30064771299;
        HIDKeyboardModifierMappingSrc = 30064771129;
    }
);

在我的新系统上它看起来像这样:

"com.apple.keyboard.modifiermapping.0-0-0" =     (
            {
        HIDKeyboardModifierMappingDst = 30064771303;
        HIDKeyboardModifierMappingSrc = 30064771129;
    }
);

30064771299因此我使用以下命令将 dst 修饰符更改为:

defaults -currentHost write -g com.apple.keyboard.modifiermapping.0-0-0 -array '<dict><key>HIDKeyboardModifierMappingSrc</key><integer>30064771129</integer><key>HIDKeyboardModifierMappingDst</key><integer>30064771299</integer></dict>'

系统重启后,一切都按预期工作(我能够在 iTerm2 中使用它CapsLockCommand并且不适用任何传递重映射)。

相关内容