4

bash/shell スクリプトを使用して、growlnotify を使用して、ログイン試行が失敗したときに通知し、コンピューターの前に座っている人の写真をうなり通知で表示します。growlnotify を使用してプレビューを起動し、通知がクリックされたときに画像を表示する方法はありますか?

4

2 に答える 2

3

できることの 1 つは、 に--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://...に文字列を渡すことで、通知をクリックした後、参照されたファイルをシステムのデフォルト アプリケーションで開きます--urlgrowlnotify

最後の落とし穴:--urlで始まる文字列を渡した場合にのみ、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

それが役に立てば幸い!

于 2013-05-08T18:55:40.290 に答える
0

これを行う1つの方法は次のとおりです。

(
  # 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
)

これに関する主な問題は、複数の通知が表示された場合、1 つをクリックすると、ブロックしているすべての growlnotify サブシェルのブロックが解除される (すべての写真が一度に開く) ことです。これは、何らかの理由でうなり声の標準的な動作のようです。それは実際には問題ではないかもしれませんが、適切にキューに入れられた場合と同じように動作しません (再帰的なサブシェル ジョブ コントロールの狂気でこれを実行しようとしましたが、bash では実行できないと思います。 ..実際にそれらをキューに入れるには、もっと複雑な方法があります。)

于 2013-04-08T22:36:57.277 に答える