前情提要
先悄咪咪吹一波阿米洛花旦娘,真的是太好看了叭,吹爆!!!
上一把键盘是 IKBC 的 Poker,习惯了68键布局,各种快捷键按起来也是噼里啪啦,超有感觉。
看中68键也是因为紧凑布局,打起字来手基本就不用动了,动动手指就行。
然鹅阿米洛不支持可编程,比较遗憾,想着能不能在软件层面改一改键,继承之前 Poker 的键位设置。
于是就找到了 Karabiner Elements 这个改键神器。
Karabiner Elements
「 Karabiner Elements 」 是 macOS 上一款强大的改键软件,从简单的单键映射,到复杂的组合键映射全部都有,还可以自己定义映射规则,灵活性很高,然后还免费!
完美符合我的需求有木有!
先介绍下我之前的键位设置。
最大的变化是将 CAPSLOCK 键改成了 Fn 键,然后以此为基础新加了许多 Fn + X 形式的组合键。
感觉 CAPSLOCK 不是很常用,就把它换成常用的功能键 Fn了。CAPSLOCK 则变成了 Fn + /
之后就是方向键 ⬆️ ⬇️ ⬅️ ➡️ 和编程常用的 ~ 和 ` 键了。
如果熟悉 vim 键位的话,可以把方向键绑到 H,J,K,L 键位上,即 Fn + H / J / K / L。
阿米洛默认是 Win 布局,对于 macOS 用户,可以交换 Win 和 ALT 键,正好就和 MacBook 上的 Option 和 Command 键对应了。
还有几个比较方便编程的快捷键,比如说光标的快速移动
- 光标移动到行首:Fn + M
- 光标移动到行尾:Fn + .
- 光标向前跳过一个单词:Fn + F
- 光标回退一个单词:Fn + B
最后就是 PageUp 和 PageDown 的设置了。
改键步骤
设计好自己习惯的快捷键后,就可以用 Karabiner Elements 进行改键了。
开整前照例先看看官方 doc 。
Karabiner 的安装和简单键的映射修改,可以参考这篇博文 「Karabiner Elements 安装及简单按键映射」。
因为我们自定义快捷键要改的键有点多,就直接选择 Use more complex rules。
在步骤 Step1 里,如果你有看到合适的 rules,可以直接从云端导入别人写好的。
不过我们身为程序员,当然是选择自己造轮子啦。
配置文件
把Karabiner 的自定义配置文件 custom.json
放在 ~/.config/karabiner/assets/complex_modifications/
文件夹下,Karabiner 会自动加载这些自定义配置。
custom.json 的数据结构
Karabiner 采用 json格式储存键位配置,大致的 数据结构 如下
{
"title": "Title for the list of rules/complex modifications."
"rules": [
{
"description": "This description is shown in Preferences.",
"manipulators": [
{
"type": "basic",
"from": from event definition,
"to": [
to event definition,
to event definition,
...
]
},
{
"type": "basic",
...
},
...
]
},
{
"description": "...",
"manipulators": [
...
]
},
...
]
}
编写 varmilo.json
如何知道某个按键对应的 key_code 呢?
Karabiner Elements 提供另一个app,「 Karabiner EventViewer 」,通过它我们可以看到每一个按键对应的 key_code。
终于可以开始写阿米洛的快捷键配置了。
举个例子吧,将 CapsLock 键重新定义为 Fn 键
在 Karabiner EventViewer 中找到 CapsLock 和 Fn 的 key_code,caps_lock 和 fn,填入之前的数据结构中。
{
"description": "Change CapsLock to Fn",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "caps_lock"
},
"to": [
{
"key_code": "fn"
}
]
}
]
},
是不是很简单!
再举个例子吧,将 Fn -> H 重新定义为 左箭头 ⬅️
如何表示组合键呢?
我们要在 json 里加上 modifiers,表示对基础键的修饰。
mandatory 表示必须与基础键一起出现的键,这里是 Fn。
{
"description": "Change Fn-HJKL to Arrow left,down,up,right",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "h", // 基础键
"modifiers": {
"mandatory": ["fn"], // 组合键
"optional": [
"caps_lock",
"option",
"command",
"shift",
"control"
]
}
},
"to": [
{
"key_code": "left_arrow"
}
]
},
...
]
}
加载自定义快捷键
当我们写好了所有规则后,保存 custom.json 到 ~/.config/karabiner/assets/complex_modifications/
文件夹下,打开 Karabiner Elements。
选择 Complex modifications,点击 Add rule。
这时我们就能看到 Karabiner 已经自动加载我们刚刚写好的所有键位设置了。
就可以开始愉快地写码
打游戏了。
最后
如果有小伙伴需要阿然君的键位配置,在这里 拿走不谢。
如果有帮到你,就不要脸地求个 Star。
最后,阿米洛真香!静电容真香!
- 本文链接:https://www.aranne.me/posts/vermilo-keyboard-with-karabiner-elements/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。