web-dev-qa-db-ja.com

端末からローカルでログインしているユーザーへのメッセージのブロードキャスト

これが私がやろうとしていることです。子供たちはUbuntuのボックスで映画やYouTubeなどを見ています。私はWindowsボックスで何でもしています。子供たちは耳にヘッドフォンを埋め込んでいるので、端末にログインし、何らかのメッセージをブロードキャストして、注意を引いたり、メッセージを伝えたいと思います。私はすでに、端末にリモートでログインして、遊んでいる間にボックスで作業する方法を知っています。

「壁」や「書き込み」などのオプションを見ましたが、これらは端末ログインでのみ機能するようです。ターミナルからログインしたテストアカウントにメッセージを送信できますが、モニターの前に座っているローカルユーザーには何も送信されません。

私のオプションは何ですか?ほとんどの場合、YouTubeやフルスクリーンのときに何をしているのかを妨げる、私が配信しようとしているメッセージが表示されたウィンドウがポップアップするようにします。

思考?提案?助言?

5
KC5SDY

アクセス許可

xhost +local:

またはアクセス制御を無効にすると、クライアントは任意のホストから接続できます(悪い考えですが、ネットワークでは問題ないようです)

xhost +

これで、リモート接続からこれを実行できます。

DISPLAY=:0 xmessage -center " THIS IS A TEST MESSAGE"

ベローは小さなデモです。 TTY1とGUI端末間でセッションを共有しました。ご覧のとおり、DISPLAYには環境変数が設定されていないため、この端末はTTY1で作業しているかのようです。上記のコマンドは、一時的にDISPLAY変数を設定するため、そのディスプレイのxserverインスタンスにxmessageが表示されます。

enter image description here

notify-sendでも同じことをしようとしましたが、うまくいかないようでした。

編集

xmessageは少し小さいです。私が好むのは、zenityダイアログを使用することです。例えば、

DISPLAY=:0 zenity --info --text=" THIS IS ZENITY INFO DIALOG "

1

画面にポップアップを作成したいので、次のことが最も簡単です:

1)子供がログオンしたときにプログラムを開始します(Perlスクリプトを使用します)。バックグラウンドに置きます。 Perlスクリプトは、1024の上および65536の下の未使用ポート(ポート12345など)でTCP接続をリッスンする必要があります。 (TCP port 12345を介して)メッセージを受信すると、ポップアップを生成し、次の行を待つことができます。

2)Windowsでは、PuTTYを使用してUbuntuサーバーのTCPポート12345に接続し、メッセージを入力します。

1
waltinator

必要な短い簡単なメッセージの場合は、notify-sendを使用できます。これにより、画面の右上に短命のアラートメッセージが作成されます(Thunderbirdが新しいメールのアラートに使用するのと同じスタイルで、またはFilezillaが長時間の操作が完了したことをアラートに使用する)。

notify-send "message text here"

または

notify-send "title here" "message text here"

または、本当に注目を集めたい場合、

notify-send "title here" "message text here" -i face-angry

メッセージの前に怒った顔をします(驚きです!)。使用できるさまざまなアイコンがあります。コンピューターで使用可能なリストを表示するには、ls /usr/share/icons/gnome/32x32/emotes/と入力します。

0
TRiG