MAC shift切换中英文实现手段
使用Karabiner实现,这是一个键盘映射工具,主要是用来机械键盘的映射。我们用这个来吧shift映射到f18,这样就能实现和win一样的中英切换和大小写切换。
下载
下载地址:https://karabiner-elements.pqrs.org/
下载好之后有两个工具,Karabiner-Elements和Karabiner-EventViewer,主要设置在前者,后者可以查看按键输入具体是什么,可以用来检查设置是否成功。

提供权限(十分重要)
打开下面的权限

选择Device,打开Apple internal Keyboard

映射设置
软件自带的映射按键可能会不够用,我们这里使用自定义映射。(而且直接映射到Caps Lock会有点问题)
终端中运行:
nano ~/.config/karabiner/assets/complex_modifications/shift_switch.json
添加下面内容保存(主意f18是小写)
{
"title": "Shift 切换中英文",
"rules": [
{
"description": "单按 Left Shift 触发 F18",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "left_shift",
"modifiers": {
"optional": ["any"]
}
},
"to": [
{
"key_code": "left_shift"
}
],
"to_if_alone": [
{
"key_code": "f18"
}
]
}
]
}
]
}
打开Add predefind rule就能看到刚才添加的规则,打开。

最后可以用Eventsviewer检查一下

关闭 Mac 原本的 Caps Lock 切换
为了防止系统机制互相打架,我们需要把之前的设置关掉:
进入 Mac 的 系统设置 -> 键盘 -> 文字输入 (编辑),取消勾选 “使用大写锁定键 (Caps Lock) 切换中英文输入法”。
让 Mac 认识 F18
现在我们单按 Shift,Karabiner 已经会发出 F18 的信号了,但 Mac 还不认识它。我们需要手动绑定一下:
打开 Mac 的 系统设置 -> 键盘 -> 键盘快捷键 -> 输入法。
找到 “选择上一个输入法”(或者“选择输入法菜单中的下一个来源”)。
双击它后面现有的快捷键(比如 ^空格 或 ⌘空格),让它变成可编辑的输入状态。
单击一下shift,就可以设置上f18。

浙公网安备 33010602011771号