使用bash / shell脚本我告诉我什么时候登录尝试失败,并在咆哮通知中显示坐在电脑前的人的照片。有没有办法可以使用growlnotify来启动预览,以便在点击通知时显示图片?
答案 0 :(得分:3)
您可以做的一件事就是将--url
选项传递给growlnotify
。
领衔Vaz的例子:
(
# load some cat pics... I promise they are actually cat pics but
# I don't promise they won't go link-dead since I linked to google image caches
# or something.
img1=/tmp/catpic1; curl -L bit.ly/16IRub3 > $img1
img2=/tmp/catpic2; curl -L bit.ly/XUCzHW > $img2
# schedule growls... replace this of course with whatever
# actually sends your growls
for i in $img1 $img2; do
( growlnotify -s -m "oh noes $i" --image $i --url "file://ABSOLUTE_PATH/$i" ) &
sleep 4
done
)
请注意,我从参数中删除了-w
以及后面的open
命令。由于我们使用的是--url
,growlnotify
会自行处理回调。您不需要暂停执行,这种方法可能会解决Vaz为多个通知公开的问题。通过将file://...
字符串传递给--url
,growlnotify
在单击通知后打开系统默认应用程序中的引用文件。
最终问题:--url
只会在传递一个以http://
开头的字符串时正确处理网址。 “google.com”或“www.google.com”无法使用。您的文件系统结构也是如此,您必须提供file:///Users/you/Pictures/cats.jpg
。
此功能自版本1.4开始提供,但是,根据我的检查,man
中缺少此功能。
来源: https://code.google.com/p/growl/issues/detail?id=341 https://groups.google.com/d/msg/growldiscuss/nUdYxOevkxI/oYjxdhSEi98J
希望它有所帮助!
答案 1 :(得分:0)
这是一种方法:
(
# load some cat pics... I promise they are actually cat pics but
# I don't promise they won't go link-dead since I linked to google image caches
# or something.
img1=/tmp/catpic1; curl -L bit.ly/16IRub3 > $img1
img2=/tmp/catpic2; curl -L bit.ly/XUCzHW > $img2
# schedule growls... replace this of course with whatever
# actually sends your growls
for i in $img1 $img2; do
( growlnotify -ws -m "oh noes $i" --image $i ; open -a preview $i ) &
sleep 4
done
)
这个问题的主要问题是,如果出现多个通知,单击一个会导致所有阻止growlnotify子shell解除阻塞(一次打开所有图片)。由于某种原因,这似乎是咆哮的标准行为。这可能不是一个问题,除非它的行为不如它正确地将它们排队好(我尝试用一些递归的子shell作业控制疯狂但我不认为bash会让我这样做。 ..当然可以采取更加复杂的方式来实际排队。)