网易首页 > 网易号 > 正文 申请入驻

用好 Keyboard Maestro,一键切换输入法和浏览器

0
分享至

美国作家 H. Jackson Brown Jr. 说过一句很有名的话:

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 上已安装的所有浏览器的 HTTP handler,这可以看作是浏览器的编码。例如在我的 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 弹出的二次确认窗口

为了避免每次都要手动点击这个弹出式窗口,我们可以借助 下面的 AppleScript 来自动进行确认:

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 为例):

  1. 在终端中输入 defaultbrowser chrome

  2. 执行 AppleScript 在弹出式窗口中进行确认

为了方便快捷地执行这两个步骤,我在 Keyboard Maestro 中创建了一个切换浏览器的宏组,其中有 7 个宏,分别切换为我的 Mac 中可能会用到的浏览器。

Keyboard Maestro 中切换浏览器的宏

这 7 个宏的动作基本一致,都只有两个步骤,第一步执行 Shell 脚本切换默认浏览器,第二步执行 AppleScript 进行确认。需要注意的是,在 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 触发,然后执行下面这段 AppleScript:

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 中打开,当然,你也可以修改这段 AppleScript,用于其他浏览器。

在 Chrome 中打开 Safari 中的当前标签页

小结

在 macOS 上,很多细小的功能没有提供系统级的支持,用户不得不选择安装第三方应用来实现。例如,为了隐藏太多的菜单栏图标,不得不安装 Bartender 或类似的免费替代品,为了像 Windows 一样通过右键新建文件,需要安装 iBoysoft MagicMenu 。

尽管如此,单独下载一个 App 并非必选项,挖掘自动化应用的潜力,其实可以实现同样的功能,足以省下一些不必要的开支。例如 BetterTouchTool 就可以实现 隐藏菜单栏图标 的功能,而使用 Alfred ,则可以通过键盘轻松 新建文件 。

Keyboard Maestro 是 macOS 上一个非常强大的自动化应用,如果善加利用,足以代替很多不必要的 App。本文介绍了使用 Keyboard Maestro 在 Mac 上实现切换输入法和浏览器,这是两个很常见的需求,可以极大地提高使用 Mac 的效率,希望对你有所帮助。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
瑞士“全球和平峰会”,必将成为文明的新起点

瑞士“全球和平峰会”,必将成为文明的新起点

近距离
2024-06-15 18:09:05
相差22岁!当莫德里奇06年第一次出战国际大赛时,亚马尔还没出生

相差22岁!当莫德里奇06年第一次出战国际大赛时,亚马尔还没出生

直播吧
2024-06-15 23:18:10
ASML要慌:EUV光刻机新光源出现,成本降50%,功耗降80%

ASML要慌:EUV光刻机新光源出现,成本降50%,功耗降80%

互联网.乱侃秀
2024-06-14 11:34:27
阿尔巴尼亚开场23秒闪击,欧洲杯历史最快进球诞生

阿尔巴尼亚开场23秒闪击,欧洲杯历史最快进球诞生

懂球帝
2024-06-16 03:13:12
是追缴还是赶尽杀绝?

是追缴还是赶尽杀绝?

叮当当科技
2024-06-16 00:25:33
魔笛创纪录一战太失望!9战大赛第3人,被过成木桩仅获6.3分

魔笛创纪录一战太失望!9战大赛第3人,被过成木桩仅获6.3分

奥拜尔
2024-06-16 01:40:16
一针69.7万,医保谈判到3万!可澳洲184块,为何却说中国价最低?

一针69.7万,医保谈判到3万!可澳洲184块,为何却说中国价最低?

风起云间
2024-06-14 21:44:22
俄杜马主席:一些乌议员已开始讨论普京停火提议

俄杜马主席:一些乌议员已开始讨论普京停火提议

参考消息
2024-06-15 19:12:10
奔驰车主持棍打女骑手后续:真实身份及朋友圈曝光,竟是个假富豪

奔驰车主持棍打女骑手后续:真实身份及朋友圈曝光,竟是个假富豪

洛洛女巫
2024-06-15 19:27:00
最新确认:杭州明晚起反转!全省预警多到快挂不下了!

最新确认:杭州明晚起反转!全省预警多到快挂不下了!

明珠电视
2024-06-15 16:55:04
新闻背后:贵州卫健委美女厅官杨慧落马,人上人到鬼中鬼的人生路

新闻背后:贵州卫健委美女厅官杨慧落马,人上人到鬼中鬼的人生路

肖飞说
2024-06-16 01:24:07
凯特王妃穿白衣现身,棱角分明表情严肃,9岁夏公主坐在爸爸对面

凯特王妃穿白衣现身,棱角分明表情严肃,9岁夏公主坐在爸爸对面

译言
2024-06-15 17:58:34
乌情报总局局长:俄最新型S-500防空系统部分部件已运抵克里米亚

乌情报总局局长:俄最新型S-500防空系统部分部件已运抵克里米亚

红星新闻
2024-06-15 20:16:15
2-1!中超倒第2爆冷掀翻国安,92分钟绝杀夺7轮首胜,逃离降级区

2-1!中超倒第2爆冷掀翻国安,92分钟绝杀夺7轮首胜,逃离降级区

体坛纪录片
2024-06-15 22:07:20
深圳大鹏古城部分城墙发生倒塌,目击者:系雷电击中所致

深圳大鹏古城部分城墙发生倒塌,目击者:系雷电击中所致

西虹市闲话
2024-06-15 21:34:52
563支AI队伍和姜萍答了同一份试卷:最高34分,无一入围决赛

563支AI队伍和姜萍答了同一份试卷:最高34分,无一入围决赛

经济观察报
2024-06-15 19:56:17
湘西龙山被殴打商户发声“有四五人动手”,城管局:我们有队员眼睛受伤

湘西龙山被殴打商户发声“有四五人动手”,城管局:我们有队员眼睛受伤

极目新闻
2024-06-15 21:00:21
距和平峰会只剩1天,15国退出了,泽连斯基意识到对中国说错了话

距和平峰会只剩1天,15国退出了,泽连斯基意识到对中国说错了话

莫将离
2024-06-14 22:28:53
欧洲杯B组积分榜:西班牙领跑死亡之组,意大利第二克罗地亚垫底

欧洲杯B组积分榜:西班牙领跑死亡之组,意大利第二克罗地亚垫底

直播吧
2024-06-16 05:09:10
倒查30年后补税是个危险信号

倒查30年后补税是个危险信号

深度财线
2024-06-15 22:03:47
2024-06-16 06:36:49
少数派sspai
少数派sspai
高品质数字消费指南
4273文章数 27762关注度
往期回顾 全部

科技要闻

TikTok开始找退路了?

头条要闻

欧洲杯-23秒丢球破纪录 意大利2-1逆转阿尔巴尼亚

头条要闻

欧洲杯-23秒丢球破纪录 意大利2-1逆转阿尔巴尼亚

体育要闻

莱夫利,让困难为我让路

娱乐要闻

江宏杰秀儿女刺青,不怕刺激福原爱?

财经要闻

新情况!高层对人民币的态度180°转弯

汽车要闻

东风奕派eπ008售21.66万元 冰箱彩电都配齐

态度原创

艺术
房产
家居
公开课
军事航空

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

房产要闻

万华对面!海口今年首宗超百亩宅地,重磅挂出!

家居要闻

空谷来音 朴素留白的侘寂之美

公开课

近视只是视力差?小心并发症

军事要闻

普京提停火和谈条件 美防长迅速回应

无障碍浏览 进入关怀版