回答:
2台のMacは同じ家にあるので、どちらも同じネットワーク上にあると思います。
まずRemote Login
、Macでサウンドを出力したい場所でアクティベートする必要があります。
チェックボックスに移動しSystem Preferences > Sharing
てチェックしRemote Login
ます。次に、コンピューターを使用して、ターミナルを開き、これを入力します
ssh <user>@<computer name.local>
<user>
あなたの妻はどこにログインし<computer name>
、他のコンピューターの名前です。
これで、まるであなたの妻のコンピューターでターミナルを開いているsay
ようになり、好きなようにできます。
ssh user@hostname 'say hello'
ssh
リモートホスト上でコマンドを実行するために使用することに加えて、リモートアップルイベントも使用できます。これにはsay
コマンドもありますdisplay alert
。
ターゲットマシンで、以下を有効にします。
システム環境設定>共有>リモートAppleイベント
次に、マシンから次のスクリプトを実行します(AppleScript Editorで、またはosascript
ターミナルで):
tell application "Finder" of machine "eppc://machine-name.local"
say "Hello"
end tell
これをコンパイルまたは実行するときに認証するように求められます。AppleScript Editorでこれを行うと、AppleScript Editorを開いたままにする限り認証が記憶されるため、これを実行するたびに認証する必要はありません。(認証ダイアログには、キーチェーンに資格情報を保存して、繰り返し悩まされることを避けるオプションもあります。)
これは、ターミナルのコマンドラインから次のように実行できます。
osascript -e 'tell application "Finder" of machine "eppc://machine-name.local" to say "Hello"'
リモートマシンでメッセージを表示する方法
ssh
†でリモートマシンにログインし、リモートシェルでこのコマンドを実行することでメッセージを表示することもできます(これは、リモートAppleイベントを使用せず、単にRemote Login forを使用しますssh
)。
osascript -e 'say "Hello" without waiting until completion' -e 'tell application "System Events"' -e 'activate' -e 'display alert "Hello!"' -e 'end'
このsay
コマンドはスピーチを非同期に開始し、これによりシステムイベントが前面に表示され、スピーチの再生中にメッセージが表示されます。
† display alert
やなどのUIを表示するコマンドは、display dialog
リモートAppleイベント経由では許可されません。それらをリモートマシン上のプロセスに送信するには、最初にを実行する必要がありますssh
。