初衷
一开始是左手手指有点酸,估计是尾指按键盘左边的Ctrl键次数有点多,为此把左边的Ctrl键盘跟CapsLock对换了一下,这样用了有一年,使用的软件是karabiner和它的一个组件Seil,之所以需要Seil,Karabiner说是CapsLock键的替换(重新映射)需要特殊处理,偶尔还会在 OSX 系统升级后出现映射失效,需要等待作者来做软件升级。
症状基本解决,而且也认同:Ctrl键位置调换后,一定程度上让各种快捷键用起来更为舒适。工作中是在系统自带终端下,启动tmux + vim,tmux的前缀键我使用的是ctrl+a。
因此大约一年后,这次是右手手臂酸了,是我坐姿的问题,也另发现,当我几条不用触摸板(我是触摸板的重度用户,各种手势,操作还算挺快挺频繁),改用鼠标,症状又有所缓解。用回触摸板,又恢复,依次循环几次后,觉得可以试试不用触摸板。
极端一些,能不能不用触摸板也不用鼠标?嗯,使用karabiner一年后才发现它也有提供这功能:mouse keys mode.
Karabiner
Karabiner 是一个修改键位映射的软件。由于我需要修改到CapsLock键盘,也安装有组件Seil。并把两者都加到我的开机启动项里。
模式
Karabiner预先设置后了多种模式,比如vim模式、emacs模式等,再加上最近发现的mouse keys mode模式,用于解放触摸板和鼠标。
在Karabiner设置里的第一个tab:Change key里搜索mouse keys就能看到这种模式了,当前是Mouse Keys Mode V2,相比 V1 版本,这个版本相对更容易触发这种模式,对输入干扰也相对少一些(考虑输入过程中突然需要移动鼠标到其他位置)。以下只说 V2 版本的使用,当然,先要在设置里选中Mouse Keys Mode V2,后续的各种快捷键才能生效。
激活
按住d键,再按 hjkl 中的任何一个键位来左下上右地移动鼠标。比如我要向上移动鼠标,只需按住d不放开,再按一下k。
鼠标移动后,光标并没移动,需要在鼠标确定位置后,再按一次鼠标左键,默认是d+v。比如我需要在当前文本里修改第10行第3列的错别字,需要两个步骤,先d+hjkl多次移动鼠标到第10行第3列这里,再按d+v,让光标定位在错别字后面,删除这个错别字,输入正确的字。
相应地,右键是d+n。
浏览网页一般需要向下滚动页面,即 scroll,取首字母s,跟d+hjkl的前缀键d组合,即d+s,再通过hjkl决定滚动的方向。在网页向下滚动的例子中,则是d+s+j。个人使用起来,先按住d,s稍微慢几百毫秒,成功率更高,需要时间适应。
组合起来后,当我操作鼠标时,基本需要一直按住d键……
老实说,无论是 v1 或 v2 版本,直接由字符键来激活模式,都觉得很不理想,影响输入。我在输入时需要用到d、s这几个键,都需要稍微滞钝一下,避免激活了模式,一旦激活,当前输入就无法获得我预期的词组。
参数
根据karabiner设置里的提示,我修改了两个参数:
__BlockUntilKeyUp__,其Timeout默认值是 200ms,我修改为 100ms,减少阻塞Holding Key to Key,其Holding Threshold默认直是 200ms,也修改为 100ms,降低阀值,更迅速地激活模式,这个参数还在测试中。
辅助快捷键
有时候只需要在字里行间稍微移动一下,通过emacs风格的几个快捷键,更为方便: control+pnbf,分别是上、下、左、右。
同时另有contrl+a移动到行首,control+e移动好行末。
搜索emacs mode,可按需开启更多快捷键。
配置文件
karabiner的配置文件放在 github 上。
karabiner先加载private.xml文件,路径默认为:
${HOME}'/Library/Application Support/Karabiner'/private.xml
在该配置文件中,我再包含了hhkb.xml和launch_app.xml相关的两个配置文件。
题外话
后续是题外话了。
模拟 HHKB
一个是我一直想买个hhkb键,假若我能适应这种无触摸板无鼠标的操作,那就可以剁手了。为此我也提前按hhkb的键位分布设置了一些映射。
- fn+asd:分别是音量减少、增大、静音
- fn+1~9:分别对应 F1~F9 的功能键
- fn+k、fn+,:分别对应首页、页末
- fn+l、fn+.:分别对应上一页、下一页
- fn+[、fn+/:分别是上、下
- fn+;、fn+’:分别是左、右
启动模式
开启karabiner的Launcher mode,以字母键o为前缀,再加一个其他键,来启动某个软件、或打开一个url,或执行一句shell。
自带的有:
- O+A: Activity Monitor
- O+Q: Dictionary
- O+D: show Desktop
- O+space: Launchpad
- O+M: Mail
- O+Tab: Mission Control
- O+F: Finder
- O+F,D: open Desktop folder by Finder
- O+F,F: open Home folder by Finder
- O+S: Safari
- O+T: Terminal
其他
- 把
CapsLock键修改为Control键之外,设置双击Control键来切换CapsLock shift+F1来启动Dashboard,Dashboard 中有豆瓣fm
同时另有escape键跟backquote键对换,delete键跟backslash键对换,则直接从karabiner自带的方案中启动即可。
ref
– EOF –