6

App+1 | Shortery,为 macOS 捷径增加自动化运行的新方式

 3 years ago
source link: https://sspai.com/post/72692
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
Shortery,为 macOS 捷径增加自动化运行的新方式
App+1 | Shortery,为 macOS 捷径增加自动化运行的新方式

在去年 WWDC21 上,Apple 推出的 macOS Monterey 将捷径带到了 macOS 上。不仅给 macOS 带来了一种新的执行重复步骤的方法,还使得捷径的编写方便了许多。

1

但是美中不足的是,Apple 并没有将 iOS 上的「捷径自动化」功能一并带来。在 iOS 的捷径上,我们通过「捷径自动化」功能在特定的时间、地点或者某个满足某个条件的时候,自动执行某个捷径。为了解决这一个痛点,所以来自德国的开发者 Lars Gerckens 就开发了 Shortery,为 macOS 上的捷径补齐了自动化的功能。

1

目前可以通过 官网 或者 App Store 下载并安装 Shortery(以下简称为它或者软件),初次打开它会看到如下的界面,左侧是作者已经创建好的触发器,点击左下角的「Add Shortcut Trigger」可以添加新的触发器。此处的触发器,就等同于 iOS 「捷径自动化」功能。

1

目前该软件可以支持多达 12 种的捷径触发方式,具体包含:

  1. 在应用启动、退出或是处于活跃/非活跃状态运行
  2. 指定时间运行,可选择每分钟,每小时,每天每周重复
  3. 电脑唤醒或休眠时运行
  4. 用户登录或登出时运行
  5. 使用键盘快捷键组合激活运行
  6. 当系统外观处于浅色或深色时运行
  7. 电池电量达到一定的百分比时运行
  8. 专注模式打开或关闭时运行
  9. 屏幕解锁或者锁定时运行
  10. 蓝牙、USB 设备、耳机接口连接或断开时运行
  11. 外接显示器的连接或断开时运行
  12. Wi-Fi 的连接或者断开时运行

点击右上角的 Preferences,可以在里面设置开启开机自启和 debug 模式,对于用户来说,只需要开启勾选「Start at login」即可。

1

接下来,作者就以一系列具体的例子,来向大家介绍 macOS 上的一些自动化实例。

电脑休眠自动关灯

在作者以前的 文章 中,为了实现关闭屏幕挂灯的同时并让电脑休眠,专门制作了一个捷径,可以一键切换电脑及挂灯的开关,但美中不足的是每次都要呼叫 Siri 或者手动执行一次捷径。

但有了该软件之后,可以省去主动执行的操作,全部由自动化实现。简而言之:添加一个电脑休眠的触发器,如果电脑进入休眠状态,就执行捷径,关闭 HomeKit 里的挂灯。

此处使用的挂灯是否是智能挂灯并不重要,重要的是确认挂灯是否支持断电记忆功能。作者使用的是明基的屏幕挂灯,是支持断电记忆功能的。所以为了能够将挂灯接入 HomeKit,我在挂灯的 USB 电源前面增加了一个智能插座,再将智能插座接入 Home App,这样变相就将挂灯接入 HomeKit 了。

1

接下来就是捷径制作了,这个案例中捷径也是非常简单的,选中挂灯并将其设置为关闭即可。

1

Shortery 触发器

打开 Shortery,点击左下角的「Add Shortcut Trigger」增加新的触发器。将触发条件设置为 Wake Up & Sleep,name 可以自定义,比如此处的「关闭挂灯」。在 Shortcut 一栏中选择刚刚创建的捷径,如果看不到刚刚创建的捷径,可以点击下方的「Reload Shortcut List」重新加载捷径列表。

在底部选择 Mac Sleep 的附加条件,即当 Mac 休眠的时候,运行该捷径。最后点击右上角的绿色的「Save」保存该触发器即可。

需要注意的是在 Shortery 初次运行之后,如果关闭了页面,再想开启就需要从状态栏中去开启。

1

保存好触发器之后,就可以开始测试一下是否好用了,点击左上角的「」选择休眠,然后就可以看到挂灯随之关闭的效果。但我这里还希望用更简单的方式让电脑进入休眠,前往「系统偏好设置 > 桌面与屏幕保护程序 > 触发角」,设置一个角启动屏幕保护程序,当鼠标移动到这个角落,就会启用屏保。屏保时间过了之后,电脑就会进入休眠状态,从而触发了 Shortery 里的触发器。

这里触发角功能虽然可以直接让电脑进入休眠状态,但是我并不推荐那么做,主要原因是触发角功能会有一定概率误触,而误触同样会触发捷径关灯。

1

接下来就需要设置一下屏保的时间了,前往「系统偏好设置 > 电池」,选择自己认为合适的关闭显示器时间,作者在这里选择的是 15 分钟。macOS 在接入电源和不接入电源的时候,可以使用两套偏好设置,刚才设置的是单纯使用电池的状态,所以需要再切换到「电源适配器」选项,同样去设置一个自己认为合适的休眠时间。

1

这样两个步骤设置完成后,就可以实现真正的自动化了。当长时间不触碰电脑或者将鼠标移动到右下角 → 启动屏幕保护程序 → 屏幕保护程序显示 15分钟 → 时间到后电脑休眠 → 触发器运行捷径关闭挂灯。要另外说明一下的是,「长时间不触碰电脑」启动屏幕保护程序,需要在「系统偏好设置 > 桌面与屏幕保护程序 」中勾选「此时间段后显示屏幕保护程序」,接下来就来看看效果吧。

5d004efca2e9154eacae467697e599e3.gif

有了上面这个例子之后,就可以再创建一个「电脑唤醒之后,自动开灯」的触发器了。简单来来说就是制作一个捷径,控制挂灯开关打开;再新建一个触发器,Weke Up & Sleep 触发条件、运行刚才开灯的捷径、当 App is Mac Wake Up 时触发,点击「Save」保存。

1

最后效果如下,视频进行了加速处理,实际用时 17 秒,因为 MacBook 唤醒、连接显示器、重新调整窗口等都需要一定的时间。但是十几秒在实际使用中,倒也无所谓了,正好可以趁这个时间,从手边上的热水机上接一杯水,喝水了再开始今天一天新的工作。

3bb0af401944cc1ffc87a8a7abaa3deb.gif

文本格式清除

在学习或者工作中,有时候将富文本文字复制到其他编辑器里,可能会将文字的格式一起复制过去。例如我在最近的课程设计要求画程序流程图,从 IDEA 复制到 OmniGraffle 中会带有背景颜色,必须通过其他文本编辑器中转一下,才能去掉这个背景颜色。

1

在这种情况下,就可以使用快捷键对剪切板的文字清除格式,相当于将捷径做为了格式过滤器使用。新建一个捷径,添加一个文本框,内容来自「剪切板」变量,然后后面跟着一个「拷贝到剪切板」,使用「文本」过滤一下,就可以变成纯文本了。

1

添加一个新的触发器,这次的触发器类型需要选择 Keyboard,也就是键盘快捷键触发。自定义 Name 为「格式清除」并指定相应的捷径,在底部按下合适的快捷键然后保存即可。

1

在使用的时候,先复制一串文字,再按下 ⌥+⌘+V 清除格式,使之成为纯文本,再按下 ⌘+V 就可以得到纯文本粘贴效果。相比起打开文本编辑器,在那里面复制粘贴一遍去除格式,节省了一些精力。

1

文本格式化为中英文加上空格

在互联网上每个人的写作风格不尽相同,有时候如果我们需要摘录其中的一段话,但是这段话和自己日常的写作风格不同,就可以考虑使用捷径来作一个简单的格式化捷径,来对文本进行格式化,例如在中英文之间加上空格。

文本格式化捷径 使用了 JavaScript 实现,从剪切板读取文本,通过 JavaScript 代码代码格式化,然后将结果再拷贝回剪切板。由于该捷径是调用网页内嵌的 JavaScript 实现的,运行速度可能稍微慢一点,所以在最后加入了一个通知,当格式化完成后发送通知提示。

1

捷径制作好了之后,去 Shortery 里创建快捷键触发器;在使用的时候,先复制一串文字,再按下⌃+⌥+f 为中英文之间加入空格,再按下 ⌘+V 就可以得到纯文本粘贴效果。

1

前后的对比效果如下图所示:

1

达到 80% 电量停止充电

1

对于电池保养来说,有一个基本原则就是不要过冲过放。虽然 macOS 内置了一个「优化电池充电」的功能,但这个功能需要一定的学习周期,而且一旦某一天充电模式有轻微的改变 macOS 就会自动帮你充满电。市面上即使有第三方的替代品,比如 AlDente,但想要实现维持在一个电量区间往往需要额外进行付费。事实上,我们同样可以通过 Shortery 实现达到 80% 电量停止充电,并将电量维持在一个区间内。

1

编注:为了不被 macOS 内置的「优化电池充电」干扰这个自动化,请在使用前关闭 macOS 内置的这项功能。

在 macOS 上可以通过设置 SMC 的 CHoB 和 CHoC 两个参数来控制电池是否充电,而 GitHub 上的 battery 就是一个封装好的脚本,可以通过命令行直接设置充电或者停止充电,不过该命令不提供 Homebrew 的安装包,需要手动编译安装。所以接下来就来看看如何编译安装该命令。由于 battery 命令依赖于 smc 命令,所以需要先编译安装 smc,然后才是 battery,接下来就来看看如何编译安装 smc

# 下载 smc 源代码

git clone https://github.com/hholtmann/smcFanControl



# 进入源代码文件夹

cd smcFanControl/smc-command



# 编译命令

make



# 将编译好的命令移动到系统命令目录下

sudo mv smc /usr/local/bin/
1

在编译过程中会出现一些警告,但是警告不影响程序的正常编译,可以忽略。当输入 smc 命令运行之后,出现如下所示的命令提示即安装成功。

1

接下来开始安装 battery 命令,编译安装命令如下:

# 下载 battery 源码

git clone https://github.com/actuallymentor/battery



# 进入源代码文件夹

cd battery



# 将 sh 脚本移动到系统命令目录下

sudo mv battery.sh /usr/local/bin/battery



# 赋予脚本可执行权限

chmod +x /usr/local/bin/battery



# 授予 battery 命令永久 root 权限

battery visudo
1

运行 battery 命令显示出帮助信息页面,根据提示信息手动设置充电或者停止充电,如果没有要求输入用户密码,则表示成功安装并赋权正确。

1

接下来就是制作捷径的步骤了,添加一个捷径特有的运行 Shell 脚本,将捷径命名为暂停充电,Shell 内运行命令:battery sets CH0B to 02

1

创建一个基于电量的触发器,当电量达到 80% 以上的时候,运行捷径「停止充电」,点击「Save」保存触发器之后即可。

1

想要维持一定区间的电量,除了要有暂停充电的捷径,还要有一个「达到一定百分比,继续充电」的捷径,否则一直这么暂停下去,会把电池用到没电的。所以相应地在创建一个名为「继续充电」的捷径,这次的命令需要更换为:battery sets CH0B to 00

1

再次创建一个基于电量的触发器,当电量低于 70% 的时候,运行捷径「继续充电」,点击「Save」保存触发器之后即可。此处的 70% 可以根据自己的实际需求去设置。

1

到此,一个可以自动将电量维持在 70% ~ 80% 之间的自动化任务就创建好了,这样可以尽可能地保证电池处于一个比较健康的状态,以延长电池的使用寿命。如果你需要充满电,或者需要将充电管理逻辑重新交还给系统,只需要将上述两个自动化开关重新关上即可。

通过上文的几个例子,相信读者们也能感受到当 Shortcuts 结合了 Shortery 之后的强大之处,本文只使用了「电脑休眠」、「键盘快捷键」以及「电池电量」三个触发条件,相信有兴趣的读者们可以举一反三,做出一些更有趣更加实用的触发器,提高自己的生产效率,或者解放自己的双手。

参考资料

Thread by @Megabits_mzq on Thread Reader App – Thread Reader App

actuallymentor/battery: CLI for managing the battery charging status for M1 Macs

hholtmann/smcFanControl: Control the fans of every Intel Mac to make it run cooler

> 下载 少数派 2.0 客户端、关注 少数派公众号,解锁全新阅读体验 📰

> 实用、好用的 正版软件,少数派为你呈现 🚀


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK