初衷
一开始是左手手指有点酸,估计是尾指按键盘左边的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 –