我试图为emacs编写一个插件,它使用OS的本机通知显示来显示通知。
我遇到过工作正常的terminal-notifier
,但这是一种依赖关系,并不适用于每台mac。另外,应该让用户意识到他们需要安装软件包。
我想要做的是调用一个进程osascript -e
并让它显示通知。问题是,更改图标的唯一方法是从外部包中更改图标。有没有办法让osascript -e
显示我想要的。
启动sudo osascript
似乎可以做到这一点,但它的设计似乎很糟糕,而且我还需要找到一种方法来每次传递根密码。
发布于 2018-03-02 23:40:03
你不能。这根本不是向macOS公开的AppleScript特性。
如果您需要一个自定义图标,可以考虑使用弹出“对话框”而不是Notification弹出。通过超时和按钮,您可以重新创建大部分功能,但并不是集成或美观。
在“显示对话框”中,如果您希望使用标准图标: 0、1或2(停止、注意或警告),则可能没有显示图标的程序。例如,查找器:
osascript -e 'tell application "Finder"' -e 'activate' -e 'display dialog \
"this is the note icon." with icon note' -e 'end tell'
或者没有tell application…
,您可以通过直接引用来使用您选择的图标,例如终端应用程序的图标:
osascript -e 'display dialog "Terminal icon" with icon alias \
"Macintosh HD:Applications:Utilities:Terminal.app:Contents:Resources:Terminal.icns"'
我不知道你是什么意思,“改变图标的唯一方法是从一个外部包。有什么方法可以让osascript -e
显示我想要的东西吗?”确切地说,你想要什么?你试过什么?
这是苹果文档中的显示对话框部分。
发布于 2019-11-18 13:32:07
事实上,这是有可能的。
只需将脚本保存为应用程序,然后将应用程序的applet.icns
文件夹中的Contents/Resources
文件切换到所需的图标。
从您的脚本发送的任何通知都将使用该图标。
发布于 2019-04-02 00:49:37
不幸的是,“显示通知”文档显示您不能:
display notification
使用notification发布通知,其中包含标题、字幕和解释,并可选择播放声音。 语法display notification
-文本,必需with title
-文本,可选subtitle
-文本,可选sound name
-文本,可选
(即使使用来自tell application "..."
的https://stackoverflow.com/a/49079025/3528技巧,也会为您留下默认的通知图标。)
据我所知,terminal-notifier
之所以能做到这一点,是因为它是直接使用Notification,据我所知,它并没有提供一个接口。
https://stackoverflow.com/questions/48856158
复制相似问题