私の妻は、Ubuntuの最新バージョンを実行している自宅のデスクトップalpha
に座っています。私はG1電話でConnectBotを使用してバスに乗っており、どこからでもalpha
にSSHで接続できます。
複雑な理由で、私は彼女に連絡するためにIM、電子メール、または電話を使用できません。 (たとえば、赤ちゃんを起こしたくない、IMクライアントが壊れている、メールサーバーがダウンしている)唯一のオプションは、リモートでalpha
にsshで接続し、何かを画面に表示させることです。彼女はKDEを使用しています。彼女の注意を引くために何かをポップアップさせて、私が彼女と通信しようとしていることを彼女に知らせるにはどうすればよいですか?私のSSHセッションにはXディスプレイがありませんが、リモートで何か(xmessageなど)をトリガーして彼女の画面に表示することは可能だと思いました。
編集:明確にするために、私の電話はXのフレーバーを実行していないので、X-over-sshは不可能です。以下はうまくいくでしょうか?
$ export DISPLAY=:0
$ xmessage "test"
現在どのディスプレイDISPLAY
が表示されているかがわかっていれば、alpha
環境変数で使用するディスプレイをXプログラムに指示できます。ほぼ間違いなく唯一の表示は:0
、手動でいじっていない限り、実行すると:
$ export DISPLAY=:0
次に、実行するXアプリケーションがalpha
のモニターに表示されます。 xmessage
はメッセージを表示するのに適しています。 xdialog
もあります。 libnotify
がインストールされている場合は、notify-send
画面の隅にメッセージをポップアップするには:
Michael Mrozekが説明 のように、妻のデスクトップに表示されるXアプリケーションを実行できます。必要なのは、DISPLAY
環境変数を適切な値(ほとんどの場合、:0
)に設定して、認証を受けるだけです。
このソリューションでは、妻のファイルを読み取る権限が必要です。 Xサーバーへのアクセスには認証 “ cookie” が必要です。これは、Xの起動時にランダムに生成され、ファイルに保存されるパスワードです。ファイルはしばしば~/.Xauthority
です。そうでない場合は、XAUTHORITY
環境変数で指定する必要があります。 Ubuntuのデフォルト設定(Gdmを使用)では、妻のセッションCookieは~wife/.Xauthority
ではなく、自動的に生成された名前のファイルにあります。 ssh DISPLAY変数 を参照してください。参照 rootとしてグラフィカルプログラムを別のユーザーのデスクトップで起動できますか? 、 Linux:wmctrlはセッションがssh + screenを介して開始されるとディスプレイを開くことができません 。
妻がテキストターミナルを開いている場合は、write
ser7440の提案どおり を使用して、ターミナルにテキストを書き込むことができます。そのためには、端末がそのような通知を受け入れる必要があります。これはmesg y
またはmesg n
でオンとオフを切り替えることができますが、最新のターミナルエミュレータのデフォルトの状態はわかりません。
write
より高度なメカニズムは talk
です。トークプロトコルはチャットプログラムの祖先です。トークサーバーを実行していて、UDPポート517または518(2つのプロトコルバリエーションがあります)がフィルターされていないマシン上の誰とでも話すことができます。したがって、インストール talkdInstall talkd http://bit.ly/software-small 、 ytalkInstall ytalk httpなどのクライアント://bit.ly/software-small 、およびytalk wife
。 Xクライアントもあります xtalkInstall xtalk http://bit.ly/software-small 。私の知る限り、話はレーダーから外れているだけで(気にするすべての人が最新のチャットプロトコルを使用しています)、話の要求のKDE通知を生成するシステムコンポーネントはありません。
IMクライアントを実行できないとおっしゃっていますが、SSH経由でアクセスするホームマシン上で実行されているコマンドラインIMクライアントは大丈夫でしょうか?たとえば、 weechatInstall weechat http://bit.ly/software-small などがあります。あなたはまだあなたの妻とあなたを接続するためにいくつかのサーバーに依存していますが、それはあなたの電話からではなく、あなたの家庭のマシンからのみアクセスされます。
彼女が端末ウィンドウを開いている場合(「who」を使用して調べる)、「write」を使用してその端末に書き込むことができます。 KDEが非表示にしているため、これはメインターミナルでは機能しませんが、すべてのターミナルウィンドウは機能します(現在のデスクトップ上にあり、最小化されていない場合、彼女はそれを確認しています...)。
DISPLAY=:0.0
の設定が機能するかどうかは100%わかりません。私はあなたの妻のPCのXサーバーに接続するための認証を受ける方法が必要だと思います。それを行うためのツールはxhost
とxauth
ですが、Xサーバーへのアクセス権がすでに必要であるため、妻だけが実行できると思われます。 (鶏と卵の問題。)
これに失敗すると、2番目のXサーバーを起動できる場合があります。 X :1
またはchvt
の使用が役立つ場合があります。
たとえば、次のようなもの
# X :1
# export DISPLAY=:1.0
# xmessage 'hello'
rootで実行すると、システムで動作するようです。
X :1
は私のシステムのvt7で開始されたため、次のコマンドを実行することもできます
# chvt 7
そのXディスプレイが現在表示されているものであることを確認してください。