我正在设置我的新 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 中使用它CapsLock,Command并且不适用任何传递重映射)。