首页 > 解决方案 > 使用 AppleScript 切换设置

问题描述

我会先说脚本/编码/开发不在我的驾驶室里,所以提前为我的语法/普遍缺乏我正在做的事情道歉。

我正在尝试创建一个快速操作,它运行和我编写/拼凑在一起的 AppleScript。

目标是打开和关闭“请勿打扰”,并打开或关闭应用程序 Amphetamine 中的无限期会话,以便我的计算机不会进入睡眠状态。这实际上是在我的计算机上运行演示文稿之前和之后的拨动开关。

以下是我所拥有的:

tell application "Amphetamine"

if session is active end session

else

start new session

ignoring application responses
    tell application "System Events" to keystroke "d" using {command down, option down, control down}
end ignoring

我收到了我不理解的错误。“预期为“结束”或“开启”,但发现脚本结束。” 一个注释,DND 的全部击键是我在 Stack Overflow 上找到的一个建议,它说,为 DND 创建一个键盘快捷键并通过 Apple Script 调用它。

我的假设是我的脚本说——嘿,如果安非他明正在运行会话,请将其关闭,否则启动会话。顺便说一句,只需将 DND 切换到当前的相反状态。

我愿意接受任何建议以获得预期的效果。

谢谢!

标签: applescript

解决方案


这是一种方法,使用您的方法通过键盘快捷键切换“请勿打扰”,以及名为 的内置程序caffeinate,它执行Amphetamine所做的事情(如果这是它在引擎盖下使用的,我不会感到惊讶) .

Automator 工作流程的屏幕截图

看起来很忙,但实际上并没有太多的事情发生。Run Shell Script动作切换开caffeinate/关,反转之前的状态。当它关闭时,您的系统和显示器将正常运行;当它打开时,系统和显示器都不会空闲或进入睡眠状态——对于显示器来说,这意味着它将保持打开状态,除非您主动选择将其关闭。例如,我的 MacBook 上有一个热角,这样我的鼠标就可以通过移动到那个角来关闭我的显示器;当我的机器“含咖啡因”时,如果需要,我可以通过热角关闭显示屏,然后关闭翻盖,但机器仍会运行,但过热风险略低。

Run AppleScript操作没有从 shell 脚本接收任何输入——您可以看到它们没有连接。但是,它们仍然按顺序运行。因此,一旦咖啡因状态被切换,这用于将“请勿打扰”模式设置为与咖啡因一致,即如果咖啡因被激活,则 DND 被激活,如果它还没有被激活;如果不含咖啡因,如果 DND 处于活动状态,则 DND 将被停用。在这两种情况下,都会弹出一个警报,因为在 DND 处于活动状态时不会看到通知。如果它太侵入性,您可以删除与显示警报相关的代码 - DND 处于活动状态的微妙迹象是任务栏中通知中心的图标将变暗。

这是您可以从 GitHub 获取的工作流程的副本。


推荐阅读