用好 Keyboard Maestro,一键切换输进法和阅读器
美国做家 H. Jackson Brown Jr. 说过一句很有名的话:
Never make fun of someone who speaks broken English. It means they know another language.
永久不要取笑说糟糕英语的人,因为那意味着他们懂另一门语言。
Never make fun of someone who speaks broken English. It means they know another language.
永久不要取笑说糟糕英语的人,因为那意味着他们懂另一门语言。
虽然那是一句给英语母语者的告诫,良多英语母语者对此也表达十分附和,然而我第一次看见那句话时,心里却充满了对英语母语者的羡慕,因为他们能够几乎不需要切换键盘输进法。而做为一名中文母语者,在电子输进设备上切换英文和中文输进法,则是我天天的高频操做。
macOS 供给了切换输进法和阅读器的系统级办法,好比通过灵敏键「轮换」输进法,或者利用 Caps Lock 键切换输进法。
macOS 系统供给的切换输进法的办法
然而,系统级的计划其实不完美,根本上只是「还能用」的程度,当前利用的到底是哪种输进法,良多时候仍是得靠「盲猜」,无法称心我的需求。正因如斯,良多切换输进法的第三方利用应运而生,它们一般供给了更为丰富的功用,好比为每种输进法自定义一个灵敏键,记住前次利用的输进法,展现当前的输进法,根据利用切换输进法等。
与切换输进法类似,切换系统默认阅读器也具有不异的问题。一般情状下,我们只能在系统设置中停止修改。
展开全文
在系统设置中切换默认阅读器
与切换输进法差别的是,我们还能够间接在阅读器内的设置中将其设置为系统默认阅读器。
在 Google Chrome 中将其设置为系统默认阅读器
然而,那两种办法都需要翻开特定的利用法式,操做起来很费事。可能恰是基于如许的痛点,市道上同样也有专门用于切换 macOS 默认阅读器的利用,好比:Browser Ninja、i-Picker、OpenIn。
不外那几个 App 都是收费利用,关于切换默认阅读器那个简单的功用来说,价格也其实算不上廉价。
我派良多用户的原则是首选利用系统自带利用,也就是第一方利用,关于第三方利用表达隆重。与此比拟,我的原则略微有一点差别:尽量利用高量量的利用,不管是第一方仍是第三方的。根据我的原则,很多专门用于切换输进法和阅读器的利用都不克不及算是高量量的第三方利用,而它们供给的功用现实上能够通过高量量的利用来完成。
基于以上原因,本文测验考试利用 macOS 主动化范畴的佼佼者——Keyboard Maestro来实现灵敏切换输进法和阅读器的功用。需要指出的是,Keyboard Maestro 并不是一个免费的利用,官网售价 36 美圆,但考虑到 Keyboard Maestro 可以实现的丰富功用,小我认为那个价格相当值得,因而十分选举进手。
▍切换输进法
在利用 Keyboard Maestro 切换输进法之前,我用的是 macOS 上强大的改键东西 Karabiner-Elements,并搭配 GitHub 上的 一个设置装备摆设,能够实现「短按左 ⌘ Command 键切换为中文输进法,短按左 ⌥ Option 键切换为英文输进法」。
我很喜好那种体例,因为它让英文和中文输进法别离有了一个对应的灵敏键,让我不消盲猜当前是什么输进法。构成肌肉记忆之后,输进英文前,短按一下左 ⌥ Option 键,输进中文前,短按一下左 ⌘ Command 键,打字时根本上不会出错。
利用 Karabiner-Elements 切换输进法
然而,如那个设置装备摆设文件所写的那样,那个办法的问题在于「可能会呈现切换失败的情状」,我在现实利用过程中也经常碰着切换失败或延迟的情状,十分影响打字效率。也恰是因为存在那个问题,我不断在觅觅灵敏准确地切换输进法的办法,于是将目光转向了 Keyboard Maestro。
Keyboard Maestro 中有一个喊做「Set Keyboard Layout」的动做,用于设置系统中已开启的输进法。与 Karabiner-Elements 比拟,那个动做相当快速并且非常准确,我从没有碰着延迟或切换失败的情状。
为了利用它,我们只需设置一个触发前提,就能够实现切换输进法的功用。你能够根据上面提到的 Kawa 那样,在 Keyboard Maestro 中抉择触发前提为「Hot Key Trigger」,为每种输进法设置一个零丁的灵敏键(不只限于英文和中文),但那种触发体例只能是组合灵敏键,不克不及是零丁的一个 ⌘ 或 ⌥ 等润色键(Modifier Keys)。
利用 Keyboard Maestro 切换英文 ABC 和中文双拼输进法
因为切换输进法是一个相当高频的操做,为了找回熟悉的灵敏切换体例,我没有利用灵敏键触发,而抉择的触发前提是「USB Device Key Trigger」,因为如许能够实现「短按左 ⌘ Command 键,切换为中文双拼输进法,短按左 ⌥ Option 键,切换为英文 ABC 输进法」,如下图所示。
短按左 ⌘ Command 键,切换为中文双拼输进法,短按左 ⌥ Option 键,切换为英文 ABC 输进法
需要提醒的是,上面的 Keyboard Maestro 宏之所以会展现「Karabiner DriverKit VirtualHIDKeyboard 1.6.0」,是因为我安拆了 Karabiner-Elements。别的,因为 ⌘ Command 是组合灵敏键的润色键,按下其他灵敏键的时候也会触发切换输进法的操做,好比按下右边的 ⌘ Command + A,也会将当前输进法切换为中文。
也就是说,无论零丁仍是组合按下 ⌘ Command/ ⌥ Option 键,城市触发切换输进法的操做,不外,好动静是那其实不会影响灵敏键的一般工做,因而并没有什么「副感化」。当然,假设你不喜好单个润色键的触发体例,能够根据键盘规划和小我偏好,设置为其他按键触发。
根据利用切换输进法
很多切换输进法的 App 能够「根据利用切换输进法」,那关于一些只需利用特定输进法的利用来说,十分适用,好比在 iTerm、VS Code中,一般不需要利用中文输进法,只需要利用 ABC 输进法。
借助 Keyboard Maestro 的「Set Keyboard Layout」动做,我们只需将触发前提设置为「特定利用激活时」,就能够十分简单地实现「根据利用切换输进法」那个功用,如下图所示。
一翻开 iTerm 就将输进法切换为 ABC
在阅读器地址栏切换为 ABC
在阅读器地址栏中,我们一般只会输进网址,因而期看光标定位到阅读器地址栏时,输进法主动切换为 ABC 输进法,而不是中文输进法。
虽然 Keyboard Maestro 无法将「光标定位到阅读器地址栏」做为触发前提,但我们能够用灵敏键盗窟一个类似的操做。在 Safari、Chrome、Firefox 等支流阅读器中,定位到地址栏的灵敏键是 ⌘ Command + L,它的名称一般喊做「Open Location…」。
因而,能够将触发前提设置为灵敏键 Command + L,然后将输进法切换为 ABC,再模仿按下灵敏键 Command + L,如下图所示。
在阅读器地址栏切换为 ABC 的 Keyboard Maestro 宏
利用灵敏键定位到阅读器地址栏时切换输进法为 ABC
关于切换输进法,还不能不提到 Vim,因为在 Vim 是基于英文开发的,在此中利用中文是一件十分痛苦的事。假设你在 Mac 上利用 Vim,想要进步利用中文输进的效率,选举利用 SmartIM那个插件,用于切换输进法。
▍切换阅读器
切换默认阅读器
Keyboard Maestro 论坛上有一位网友分享了一个切换系统默认阅读器的宏,但它需要安拆 Xcode,看起来十分复杂,因而我没有利用它。
Keyboard Maestro 论坛中的一个切换阅读器的复杂的宏
但也是在 Keyboard Maestro 论坛上相关的讨论中,我发现了 defaultbrowser那个号令行东西——用于切换 macOS 系统中的默认阅读器,能够利用 Homebrew来安拆它:
brew install defaultbrowser
你也能够下载源代码,然后自行构建并安拆它:
make make install
安拆完成之后,在末端中输进 defaultbrowser,会输出 Mac 上已安拆的所有阅读器的 上,输出成果为:
chrome
torbrowser
firefox
kagimacos
browser
iterm2
downie-setapp
folx3-setapp
safari
bettertouchtool-setapp
edgemac
以上输出成果中,大大都名称都能间接看出是哪个阅读器,但也有几个不是那么明显,好比 kagimacos 是 Orion 阅读器,browser 是 Arc 阅读器,edgemac 是 Microsoft Edge。
晓得了阅读器的编码,我们就能够通过 defaultbrowser 在号令行中来切换系统默认阅读器,例如设置为 Google Chrome:
defaultbrowser chrome
按下回车键施行上面那行号令之后,Mac 会弹出一个二次确认窗口,询问你能否确定要切换默认阅读器,你需要手动点击切换或不切换。
切换默认阅读器时 Mac 弹出的二次确认窗口
为了制止每次都要手动点击那个弹出式窗口,我们能够借助 下面的 Apple来主动停止确认:
tell application "System Events"
tell application process "CoreServicesUIAgent"
tell window 1
tell (first button whose name starts with "use")
perform action "AXPress"
end tell
end tell
end tell
end tell
因而,切换系统默认阅读器需要两个步调(以切换为 Google Chrome 为例):
在末端中输进 defaultbrowser chrome
为了便利灵敏地施行那两个步调,我在 Keyboard Maestro 中创建了一个切换阅读器的宏组,此中有 7 个宏,别离切换为我的 Mac 中可能会用到的阅读器。
Keyboard Maestro 中切换阅读器的宏
那 7 个宏的动做根本一致,都只要两个步调,第一步施行 Shell 脚本切换默认阅读器,第二步施行 Apple 停止确认。需要重视的是,在 Keyboard Maestro 中施行 Shell 脚本,需要指定可施行文件的绝对途径,不然无法运行胜利。因为我在 M1 Mac 上利用 Homebrew 安拆 defaultbrowser,因而第一栏中写的是:
/opt/homebrew/bin/defaultbrowser browser
那 7 个宏设置的触发前提都是统一个灵敏键 ⇧ + ⌥ + Right Arrow,目标是为了操纵 Keyboard Maestro 的 Conflict Palette,而那恰是能实现灵敏切换默认阅读器的关键。
通过 Keyboard Maestro 的 Conflict Palette 切换默认阅读器
在上面的演示图中,切换前的默认阅读器是 Safari,我一共按了两次键盘(有些按键没有被录造下来),将默认阅读器切换成了 Chrome。起首按下灵敏键 ⇧ + ⌥ + Right Arrow,因为那 7 个宏的触发体例都是那个灵敏键,因而 Keyboard Maestro 会调出 Conflict Palette,将 7 个宏同时展现出来。
按下灵敏键后弹出的 Conflict Palette
重视到每个宏名称的首字母是灰色的,与其他字母的颜色差别,而那就是它们的灵敏键。因而我们间接在键盘上按下对应的字母,好比 c,就能够将默认阅读器切换为 Chrome,而完全不需要利用鼠标停止点击,不能不说,Keyboard Maestro 不愧为名副其实的「键盘巨匠」。
在另一个阅读器翻开当前标签页
除了切换默认阅读器外,有时候我们也需要在特定阅读器中翻开某些网页。例如,我次要利用 Safari,但为了在某些网页中利用 Chrome 阅读器上独有的插件,需要将 Safari 中当前翻开的网页在 Chrome 中翻开。
当然,你能够抉择在 Safari 中复造当前网页标签的链接,然后粘贴到 Chrome 的地址栏中翻开,不外那显然不是一个高效的办法。借助 Keyboard Maestro,我们能够通过灵敏键,一步实现「在另一个阅读器翻开当前标签页」。
在另一个阅读器翻开当前标签页的 Keyboard Maestro 动做
上图中的那个宏通过灵敏键 ⌃ + ⌥ + ⇧ + ⌘ + J 触发,然后施行下面那段 Apple:
tell application "Safari"
activate
set sameURL to URL of document 1
end tell
tell application "Google Chrome"
open location (sameURL)
activate
end tell
就能够将 Safari 中当前翻开的网页窗口在 Chrome 中翻开,当然,你也能够修改那段 Apple,用于其他阅读器。
在 Chrome 中翻开 Safari 中的当前标签页
▍小结
在 macOS 上,良多藐小的功用没有供给系统级的撑持,用户不能不抉择安拆第三方利用来实现。例如,为了隐躲太多的菜单栏图标,不能不安拆 Bartender或类似的免费替代品,为了像 Windows 一样通过右键新建文件,需要安拆 iBoysoft MagicMenu。
虽然如斯,零丁下载一个 App 并不是必选项,发掘主动化利用的潜力,其实能够实现同样的功用,足以省下一些没必要要的开收。例如 BetterTouchTool就能够实现隐躲菜单栏图标的功用,而利用 Alfred,则能够通过键盘轻松新建文件。
Keyboard Maestro 是 macOS 上一个十分强大的主动化利用,假设善加操纵,足以取代良多没必要要的 App。本文介绍了利用 Keyboard Maestro 在 Mac 上实现切换输进法和阅读器,那是两个很常见的需求,能够极大地进步利用 Mac 的效率,期看对你有所搀扶帮助。
/ 更多热门文章 /