如何通过 Apple Watch 解锁 Mac

如果你使用过带 Touch ID 的 MacBook Air 或者 MacBook Pro,那么一定会被指纹解锁的便捷性所深深打动。除了解锁 Mac,Touch ID 现在还被 1Password、Day One、MoneyWiz 等第三方 App 用来登录解锁,真的是属于用过就回不去的一个功能。如果你像我一样不愿意信赖一款第三方 App 获得系统密码管理工具的访问权限,那么可以试试我今天介绍的这个方法,前提是你要有一块 Apple Watch,并且保证所有设备都升级到了最新的系统。

这个方案,最关键的一点是 Apple 在 macOS Catalina 中增加了 Apple Watch 的功能,除了在登录的时候解锁,还可以在备忘录 App、Safari 中的密码、系统偏好设置等场景下用来提供授权。虽然 Ulysses 已经提供了通过 Apple Watch 来解锁 App 的功能,但是我不清楚是不是利用了这个新特性,1Password 也至今没有推出这个功能。

所以,这套方案的思路大致如下:

  • 打开 Safari,并依次点击「偏好设置…-密码」,这时候系统会提示你输入密码,你可以直接手动输入密码、使用 Touch ID,也可以通过在 Apple Watch 上双击电源键来解锁
  • 预先在密码中新增一个登录项,网址可以设置为 1password.com,密码一栏填写为 1Password 的主密码;
  • 选择并聚焦于第一行,这时候密码一列会显示一定长度的密码,所以务必把你的 1Password 主密码设置地「又臭又长」;
  • 打开 1Password 并模拟键盘输入「储存于 Safari 密码中的 1Password 主密码」,然后继续模拟键盘输入「回车键」。


其中,第二点是可以优化的,如果你了解 AppleScript,那么可以尝试让脚本自动搜索到你填写 1Password 主密码的那一行。如果你像我一样不怎么了解,那么不管网址填什么,只要确保这个登录项在按网址排序后位于第一行就行。你只需在 Safari 的「偏好设置-密码」中排序一次,系统就会永远记住你的排序,直到你重新排序。

操作过程

首先,在「系统偏好设置-安全性与隐私-隐私」中的「辅助功能」中确保添加并启用了相关的自动化 App,如 Keyboard Maestro、脚本编辑器、自动操作、LaunchBar、Alfred 等。因为这一套自动化流程是通过 AppleScript 来完成的,所以你可以根据自己的喜好来选择触发的工具。

其次,在「系统偏好设置-安全性与隐私-通用」中勾选「使用您的 Apple Watch 来解锁 App 和 Mac」。

最后,以 Keyboard Maestro 为例,新建一个 macro,trigger 设置为「This hot key」,然后录入自己喜欢的快捷键,action 中使用「Execute an AppleScript」,然后粘贴如下代码:

tell application "Safari"
activate
end tell

tell application "System Events" to tell application process "Safari"
set frontmost to true
delay 0.1
keystroke "," using {command down} set tb to toolbar 1 of window 1
set buttonName to (name of button 4 of tb as string) click button 4 of tb tell application "System Events" to tell application process "Safari"
set frontmost to true
end tell
delay 2
set prefsWin to window 1
set theTable to table 1 of scroll area 1 of group 1 of group 1 of prefsWin
tell theTable select the row 1
set focused to true
set thePass to the value of static text of item 1 of UI element 3 of row 1
do shell script "ps -ef | grep 'Safari' | grep -v grep | awk '{print $2}' | xargs kill -9"
do shell script "ps -ef | grep '1Password 7' | grep -v grep | awk '{print $2}' | xargs kill -9"
delay 0.1
tell application "1Password 7"
activate
end tell
tell application "System Events" to tell application process "1Password 7"
set frontmost to true
end tell
delay 1
tell application "System Events" to keystroke thePass tell application "System Events" to key code 36
end tell
end tell

这里我必须得说明一下,我知道代码写得烂,大家看一下思路就行,有能力的可以自己动手改造,和我一样不太会的可以直接搬用上面的代码到触发工具里使用。

最后的实现效果如下:

发布了23 篇原创文章 · 获赞 2 · 访问量 2511

猜你喜欢

转载自blog.csdn.net/fox_lori/article/details/104183343