【问题标题】:Add "Close" button to macOS notifications向 macOS 通知添加“关闭”按钮
【发布时间】:2019-09-29 09:17:58
【问题描述】:
我正在为我的 shell 使用一个插件,当长时间运行的命令完成时会显示通知。 To do this on macOS, it's using AppleScript:
osascript -e "display notification \"$message\" with title \"$title\""
当这个通知弹出时,要超时才能消失;我不能忽略它。
这经常阻止我,因为它覆盖了屏幕右上角的浏览器选项卡。
我见过类似的带有关闭按钮的通知,例如松弛消息通知。
如何在通知中添加“关闭”按钮?
【问题讨论】:
标签:
macos
notifications
applescript
osascript
【解决方案1】:
“Mac Automation Scripting Guide”就是一个例子。
指南指出差异取决于您的设置。
通知显示为警报或横幅,具体取决于用户的设置
要更改通知设置以包含按钮,请转到
系统偏好设置 > 通知 > 脚本编辑器 > 警报样式 > 警报
目前尚不清楚在使用默认“横幅”通知样式时如何更改 AppleScript 命令以包含按钮。这可能是因为其他应用程序总是用按钮显示它们的通知。
有关 AppleScript 命令及其参数的更多信息,(1) 启动脚本编辑器并 (2) 打开标准添加字典,然后 (3) 导航到命令的定义。
【解决方案2】:
扩展丹尼斯的回答:
您可以在以下位置为每个应用设置通知样式:
系统偏好设置 > 通知 > 脚本编辑器 > 警报样式 > 警报
在他回答的屏幕截图中,他正在更改“脚本编辑器”应用生成的通知设置。
我必须在“Automator”中更改它以使我的自定义脚本具有关闭按钮。
【解决方案3】:
您可能感兴趣,GitHub 上有一个开源命令行实用程序https://github.com/vjeantet/alerter,它允许您执行此操作,并在逐个警报的基础上指定更多通知选项。与 AppleScript 的 display notification 相比,Alerter 让您可以更好地控制警报。
Alerter 允许您创建具有多种选项的警报:自定义图标、自定义按钮标签、最多三种不同类型的操作来替换警报上的默认“显示”按钮、要打开的指定应用程序或 URL单击警报时,收到 iMessage 时的回复框,分组和删除以前显示的警报的方法等等。
Alerter 可以让您完全控制每个警报显示的按钮,方法是在您输入的 shell 命令中指定选项以创建每个警报。您可以指定单击警报时要打开的应用程序或 URL,或者,如果您在警报中使用多个选项,您的脚本将必须处理返回的文本以确定选择了哪个选项。
(注意:https://github.com/julienXX/terminal-notifier 是 Alerter 的原始项目。Terminal-notifier 包含一些 Alerter 没有的额外小功能,但不会为您提供对按钮的相同控制。如果您想包含更多功能,这两个项目可能都值得回顾。)
我不参与警报器或终端通知器,只是一个用户。