工具

·

13 min read

·

- Views

Keysmith:录制并重现你的操作

基于录制,为 macOS 自动化带来更多可能

Copied

Keysmith:录制并重现你的操作

This post is from the old blog, so may not be presented at the best

This post was updated 615 days ago and some of the ideas may be out of date

本文首发于 少数派 🎉

这里是 Setapp 应用介绍补完计划,该计划将收录 Setapp 上好用但还没被介绍的应用。

熟悉 macOS 的少数派们对于系统自带的 Automator「自动操作」一定不陌生。正如它的名字,Automator 允许用户在 macOS 上基于部分第一方应用或支持的第三方应用创建各种自动操作流程。作为一款隐藏的比较深的神器,少数派的作者们也挖掘出了很多「奇技淫巧」。

Automator 的操作类似加强版的 iOS「快捷指令」,采用模块化或录制的方式构建工作流程,不过有一定学习成本且支持的应用比较少。

[object Object]
Automator 对初学者来说略显复杂的界面

本文要介绍的是一款更为简单直观,任何人都可以轻松上手的自动化软件——Keysmith

特性一览👇:

  • 录制你的工作流,并用快捷键自动化复现
  • 支持录制本地应用和网页的操作
  • 可以调用 AppleScript 并与第三方联动
  • 具有「聚焦搜索」风格的快速启动器
  • 采用 Swift 语言编写,是使用起来无比丝滑的 macOS 原生应用
[object Object]
一眼望到底的清爽

全面拥抱「录制」带来的轻巧感

Keysmith 描述自己为「创建自定义快捷键」,实在是有些谦虚,看似简单的功能其实给了用户很大的想象空间。

与 Automator 相反,Keysmith 的设计十分克制,你并不可以凭空添加自动化动作,一切动作都始于你的「录制」。也正因这份克制,Keysmith 拥有十分简洁的界面。

[object Object]
新建 - 录制 - 管理,这就是它全部的界面和工作流了

人人上手就会的基本操作

新建一条 Macro 宏,你便可以点击右上角的「Record」按钮开始录制动作了。录制的过程中,Keysmith 会缩放到右上角并变成记录板,你可以在上面看到当前输入的动作和历史记录。录制好后只需点击「Stop recording」即可保存录制动作成宏指令

[object Object]
动作会按照目标 App 分类

录制完成后你也可以对录制好的动作进行微调,修改、删除或添加动作。在动作流中点击要修改的动作即可键入修改;点击动作右边的「More」按钮来删除或添加动作。支持添加的动作包括「键入文本」、「按压键位」、「点击元素」、「等待」、「运行 AppleScript」和「运行 Keysmith 宏指令」。没错,Keysmith 是可以「套娃」的。

[object Object]
注意,如果你删除了全部动作,就无法再添加了,只能重新录制

接下来,你可以给你录制的宏指令命名(支持 Emoji)并设置快捷键生效位置

Keysmith 的快捷键设置支持无限长的修饰键 + 单个其他键的组合,如果愿意你也可以将单键设置为宏指令的快捷键(不过会弹出警告⚠️,因为这意味着每次按到那个键都会运行宏指令)。

有些快捷键你希望全局生效,比如通过快捷键打开某些软件;而针对某一软件内的具体操作,更合适的做法是只在这一软件内生效。Keysmith 支持自定义指令生效的位置,全局、指定应用都可以,你可以很方便地给常用的软件们分别添加个性化的自动操作,大大提高了 Keysmith 功能的可塑性。

[object Object]
这么长的快捷键也是可以的

完成这些操作后,你就可以按下之前设置的快捷键激活你的自动化宏指令了。

由于 Keysmith 会在前台复现你录制好的动作,在指令运行的过程中最好不要键入或点击,以免干扰到自动化正常运作

如有需要,可以在设置中勾选开机启动或设置软件快捷键如「快速记录动作」、「运行上一次的宏指令」、云同步等。

[object Object]
存储位置可以修改到云上,实现同步

总结下整个流程:新建 - 录制 - 设定快捷键等信息 - 运行,仅需 4 步、短短几秒就可以实现一键处理那些繁琐的操作流程。在这个忙碌的时代,「快」是 KeySmith 的核心竞争力之一。

举个例子

下面随手举个简单的实例说明下,我现在希望实现一个快捷操作:打开音乐 app - 开启「秒选随机播放」- 关闭音乐 app 窗体

不要一上来就啪啪啪一阵乱点,我们应当首先思考确认每一步要操作什么,避免重复录制,比如:

  • 打开音乐 app:我将点击程序坞里的音乐 app 图标,因为我平常将它固定在我 Dock 栏的固定位置。
  • 开启「妙选随机播放」:我可能并不会首选按住 ⌥ Option 并点击播放键边上的按钮的方式,而会采用点击顶部菜单栏中的「控制」选单,然后点击「妙选随机播放」或使用快捷键 ⌥ Option + 空格(如果该快捷键没有被占用的话)。
  • 关闭音乐 app 窗体:我可能会首选 ⌘ Cmd + w 关闭窗体。

如此操作有些其实是冗余的,这里例举出来只是为了给大部分自动化场景一个参考,让它们适用且稳定可靠,在后文中「注意事项和小贴士」板块会详细介绍这一点。

思考好流程后就十分简单了,新建、录制后走一遍流程,最后绑定快捷键就成功了🎉。

[object Object]
这样做其实是麻烦了

其实我们可以将第一步的「in Dock」操作删除,只留「Open 音乐」也会正常打开 app,如遇到无法识别的应用,也可以手动指定路径;在这个案例中,鼠标操作或是键盘快捷键都是可以正常识别的,所以最终简化版如下:

[object Object]
简单易懂吧,你还可以导出并分享你的宏指令,点击 这里 获取上述指令

按下自定义的 ⇧ Shift + ⌘ Cmd + M 尝试一下:

[object Object]
完美,这可不是我手动在点哈🙈

是不是十分方便快捷?当然你还可以制作更简单的操作,比如给常用的应用添加快速启动快捷键等等;你也可以制作更复杂的操作,比如…… 我们接着往后看:

不仅操控本地,也能操控云端

是的,Keysmith 还支持制作操控网页的自动化宏指令,这需要我们安装对应的浏览器插件。目前,Keysmith 支持 Chrome 和 Firefox 浏览器,你可以在初始化设置时安装或前往浏览器应用商城自行安装。

[object Object]
虽然知道不太可能,但还是希望能适配 Safari ……

这样,Keysmith 就可以根据 Chrome 浏览器中的网页响应和 DOM 结构来制作基于网页的自动化流程了。比如下图就演示了在少数派首页查看「关注」标签页的例子,可以看到有一个「Wait for the page to load」即等待页面加载,这是由你录制时候的行为决定的。如果你在录制的时候等待网页完全加载了,那么在动作中也会记录下这一倾向。

[object Object]
此指令 会跳转到少数派主页的「关注」标签页

对于 <li> 标签的列表结构,Keysmith 还支持点选列表首位或末位元素。

[object Object]
老实说,这个功能容易失效

锦上添花,与第三方联动

你可能注意到了 Keysmith 支持在动作中添加 AppleScript 和用户已创建的 Keysmith 指令,脚本和「套娃」的支持极大地扩展了 Keysmith 的上线,你可以在少数派中查看「AppleScript」相关文章 学习脚本的编写。

除此之外,我还想再提一个让苹果效率用户快乐的词——URL Schemes。简单来说,URL Schemes 是可以链接到软件内部的链接,第三方软件可以通过它跳转到某一软件或调用其功能,关于「URL Schemes」少数派中也有大佬做过 详细介绍

[object Object]
URL Schemes 意味着更多的联动可能

Keysmith 中每一条指令都有其对应的 URL Schemes。右键创建好的宏指令,点击「Copy Macro URL」即可复制形如 keysmith://run-macro/F1FCD7CD-E276-4C87-848F-12F3CB8D5878 的 URL Schemes。

[object Object]
带上链接去创造吧

接下来你就可以用 URL Schemes 去和脍炙人口的效率工具们联动了,比如同在 Setapp 里的 BetterTouchTool 以及 Alfred、Keyboard Maestro 等,相信你能探索出更多玩法。

另外官方 博客 中还提供了在不同平台和编程语言中使用 URL Schemes 的教程供你参考。

注意事项、小贴士和其他问题

除了上面提到的「运行时尽量不要操作」外,你可能还需要关注以下几件事👇。

不可忽视的录制技巧

你应该发现了,Keysmith 的设计理念其实和 Automator 并不相同——前者强调实际的点击或键入,是可视的、是在「明处」的;而后者则强调流程和步骤的输入输出,大多数情况可以是不可视的、是在「暗处」的。

意识到这一点在实际使用中是十分重要的,这意味着我们录制动作时需要考虑到不同场景下的「可复用性」,下面是一些坑:

  • 建议使用更普适的动作和路径,比如尽量直接使用「Open 某 App」 的动作或点击程序坞中的固定图标、通过终端命令行打开文件或文件夹等,其次是通过 Spotlight 或启动台打开,这样可以避免出现可能的定位错误或依附于无法录入的滑动操作等情况;
  • 优先选择最先加载出来的左上角菜单栏,其次是键盘快捷键最后是鼠标点击,这是因为键盘快捷键和左上角菜单栏的设定很固定、很少做改动且生效很快,保证了自动化的鲁棒性;
  • 当使用网页自动化的时候,需要注意 Keysmith 是无法辨别多个相同元素的,比如少数派首页的「一派」和「Matrix 精选」都有「查看全部」按钮,Keysmith 就不知道该点哪个了,这时只能使用点击某固定点的方式了;
    [object Object]
    遇到网页中相同元素时,表示困惑的 Keysmith 浏览器插件
  • 使用「点击元素」这个功能时要好好考虑,因为当你点击的地方没有检测到可点击控件或结构时,它便会点击元素在窗口的相对位置,而很多时候目标元素会随着窗口大小的变化而位移,并没有键盘操作或菜单栏来得可靠。
[object Object]
长这样,箭头 + 数字代表着从某一边按照箭头方向到目标点的距离

不过经过大量测试,即使是网页,大部分情况下 KeySmith 都可以很好地识别控件或 DOM 结构,你只需要留意操作过程中识别是否正常即可。

不知道要弄些啥?来看看官方的案例参考

如果你不知道该用 Keysmith 做些什么,官方网站有不少 案例 也许可以给你带来一些灵感。

官方将国外一些常见的办公、协作软件作为例子展示了软件的各种特性, GitHub、Google Docs、Slack、Trello、Zoom 等等都是我们所熟悉且可以模仿学习的,最后列举出的 AppleScipt 也很值得参考。

[object Object]
点击卡片右下角就可以直接导入官方指令

指令太多,快捷键记不住?请使用快速启动器

当我们创建了太多指令后,难免会忘记对应的快捷键,这时只要按下 ⌥ Option + ⌘ Cmd + 空格 即可激活一个很清爽的快速启动器,不得不说作者想的很周到。当你通过快速启动器搜索、点选你想要的指令后,无需跳转到 Keysmith 便可执行指令。

[object Object]
如果可以把全局和当前软件的指令分开就完美了

我是 Keyboard Maestro 用户,Keysmith 和它有什么区别?

我知道,Keyboard Maestro 用户看本文可能急死了,Automator 开头都提了,更加强悍的 Keyboard Maestro 呢?!是的,Keyboard Maestro 作为老牌效率软件口碑很好、很棒、很强大,两款相似又好用的工具难免被拉来做对比,具体区别就不在本文赘述了。简单来说,Keyboard Maestro 确实拥有更多的复杂功能 ,但 Keysmith 更加简洁,更加面向大众。对此 Keysmith 官方打了个也许不是那么恰当的比喻👇。

If using Keyboard Maestro is like driving a stick shift, using Keysmith is like driving an automatic. Both are fine choices – it’s largely a matter of personal preference.
[object Object]
官方认为 Keysmith 之于 Keyboard Maestro 就像手动挡之于自动挡,那么你更倾向于哪个呢?

感兴趣的可以看看官方的 对比博文

获取方式与价格

你可以在订阅制应用商城 Setapp 中 获取它 ,或在 官网 购买 29 美元的单设备许可证(目前只支持银行卡支付)。

[object Object]
只支持 macOS Catalina 之后的版本,对少数派上的大家肯定不是问题

以上就是关于 Keysmith 的介绍,它是 2020 年下半年刚出的一款「新生儿」软件,这个时代渐渐拥抱极简,相信它可以做的越来越好。当我在 Setapp 里第一次看到它,便被它的创意吸引,期待它可以支持更复杂的逻辑。我认为 Keysmith 的威力不止于此,本文只是抛砖引玉,期待大家挖掘出更多新奇的玩法。