前两天,无痛升级到 macOS 10.12 Sierra,没感觉太大区别,忽然发现之前修改的键位失效了,没了 Command(Win) 与 Option(Alt) 键位互换,实在难受。
赶紧去 Karabainer官网 查看,只见赫然写着「Karabiner does not work on macOS Sierra at the moment.」,绝望之际,又看到一行「We are developing Karabiner-Elements which provides simple key modification for macOS Sierra at first.」顿时希望重生。
来到项目主页,看到有下载链接,版本似乎每天一更,有需要的同学,还是自己下载最新版吧。https://github.com/tekezo/Karabiner-Elements
用法,官方已经介绍的很清楚了。(尼玛,是今天才更新的吧,我第一次安装好之后,搞了好久都不会用)果然,今天才更新 使用用法!
那我来写个简单中文版用法说明。
- 下载并安装 Karabiner-Elements (参考上边地址)
- 编辑配置文件,参考 官方例子,比如我需要PC键盘映射Mac键盘,打开 pc_keyboard_to_mac….文件,复制json文件的内容
- 打开Mac的命令行,输入
vim ~/.karabiner.d/configuration/karabiner.json
创建配置文件。在vim编辑器中,将复制内容粘贴保存即可。(vim使用提示:i 开始编辑,Comond+v 粘贴,:wq 保存退出)
大功告成!
当然,如果仅仅想替换 Command 与 Option键位, 系统已经支持了,请注意,要想系统生效,必须删除 Karabiner 软件。
如何绑定「一对多」键位?
2019.10.19 更新,Karabiner 官方已支持复杂键位映射
2017.04.29 更新,感谢 Weslie_6b9d 反馈
使用 complex_modifications
选项实现,Karabiner 官方提供了部分线上规则一键导入功能:Karabiner-Elements complex_modifications rules,如果有合适配置直接 import 。
那么如何手动设置自己的规则?简单!
1. 编辑自己规则 json 文件
可以参考文档或别人的配置文件,比如我想 f10
映射为 Mac 屏幕睡眠快捷键 left_control + left_shift + eject
,新建一个 F10ToSleepMoniter.json
文件(名称随意),内容如下:
{
"title": "F10 to Sleep Monitor",
"rules": [
{
"description": "F10 to Sleep Monitor",
"manipulators": [
{
"from": {
"key_code": "f10",
"modifiers": {
"optional": ["any"]
}
},
"to": [
{
"key_code": "eject",
"modifiers": ["left_control", "left_shift"]
}
],
"type": "basic"
}
]
}
]
}
2. 放到 complex_modifications 文件夹
配置文件位置在 https://pqrs.org/osx/karabiner/json.html 有说明。
主配置:~/.config/karabiner/karabiner.json
complex_modifications 配置:~/.config/karabiner/assets/complex_modifications
打开 Karabiner / complex_modifications
tab
点击 Enable 即可!
此部分已不推荐
如果需要绑定:一个按键 => 多个按键 映射,请在 Karabiner-Elements 下载支持此特性的 fork 版本。
然后在配置文件~/.config/karabiner/karabiner.json
,在one_to_many_mappings
里设置你要的映射,比如我绑定了 delete 键为 mac 中删除的快捷键。
别忘了给大神的 Git 分支点赞啊,共享如此福利~~
如何查看按键名称?
安装 karabiner - Element 时代了一个 karabiner - EventViewer(图标是查找),
点开后在此软件下点任何你想知道名字的按键即可看到 name