実行中のすべてのXモニターに通知を表示する

実行中のすべてのXモニターに通知を表示する

コマンドラインを使用して実行中のすべてのXモニターに通知を表示したいと思います。 (そしてコンソール実行)

それは次のとおりです。

notify-send-all 'Warning' 'Nuclear launch in 5 minutes, please evacuate'

これができるプログラムはありますか?そうでない場合は、bashを使用して実装できますか?

ベストアンサー1

Command Wall を使用してすべてのコンソールにメッセージを送信できます。

X から通知を送信するには、通知の送信を使用して、現在のモニターの現在のユーザーに通知を送信できます。 (あなたの質問で判断すると、すでに知っているようです。)いくつかのbashスクリプトを使用してこれを構築できます。デフォルトでは、どのユーザーがどのX-Displayにいるかを調べる必要があります。この情報があれば、次の通知を使用して送信できます。

DISPLAY=:0 sudo -u fschmitt notify-send "Message"

ここで fschmitt はディスプレイ 0 のユーザーです。 「who」コマンドの出力を解析して、すべてのユーザーとその表示を見つけることができます。出力は次のとおりです

[edinburgh:~]$ who
markmerk3 tty7         2010-09-23 10:59 (:0)
markmerk3 pts/1        2010-09-30 13:30 (:0.0)
fschmitt pts/2        2010-10-08 11:44 (ip-77-25-137-234.web.vodafone.de)
markmerk3 pts/0        2010-09-29 18:51 (:0.0)
seamonkey pts/6        2010-09-27 15:50 (:1.0)
markmerk3 pts/5        2010-09-27 14:04 (:0.0)
seamonkey tty8         2010-09-27 15:49 (:1)
markmerk3 pts/13       2010-09-28 17:23 (:0.0)
markmerk3 pts/3        2010-10-05 10:40 (:0.0)

X セッションを実行する 2 人のユーザー、つまりモニター 0 の markmerk3 とモニター 1 の seamonkey があることがわかります。私の考えでは、tty [0-9] *をgrepし、行の末尾に(:[0 -9.] *)があることを確認してコンソールログインを削除してディスプレイIDを抽出する必要があると思います。括弧の間に文字列があります。

おすすめ記事