Wie kann ich zu einem anderen Mac „sagen“?

19

Ich habe zwei Macs in unserem Haus (iMac und MacBook Pro).

Ich möchte das sayBefehlszeilendienstprogramm verwenden, um etwas auf meinem MBP einzugeben und es auf dem iMac sprechen zu lassen, ähnlich einem Intercom-System.

Außerdem könnte es komisch sein, meiner Frau Nachrichten zu senden, während sie den iMac verwendet.

Kann das gemacht werden?

cbmeeks
quelle
2
Siehe auch: XKCD 530 xkcd.com/530
Andrew Grimm

Antworten:

26

Da sich die beiden Macs im selben Haus befinden, gehe ich davon aus, dass sie beide im selben Netzwerk sind.

Zunächst müssen Sie Remote Loginauf dem Mac aktivieren, auf dem der Sound ausgegeben werden soll.

Gehen Sie zu System Preferences > Sharingund aktivieren Sie das Remote LoginKontrollkästchen. Öffnen Sie dann auf Ihrem Computer das Terminal und geben Sie dies ein

ssh <user>@<computer name.local>

Wo <user>ist Ihre Frau einloggen und <computer name>ist der Name des anderen Computers.

Jetzt ist es so, als hätten Sie das Terminal auf dem Computer Ihrer Frau geöffnet und können, saywas immer Sie möchten.

Loïc Wolff
quelle
Es heißt Ereignis nicht gefunden
cbmeeks
@cbmeeks wann? Was war der letzte Befehl, den du getan hast?
Loïc Wolff
keine Ursache. Ich habe es falsch gemacht. funktioniert super! lol danke
cbmeeks
2
Ich habe das schon mal gemacht, als ich mit einem Freund zusammen programmiert habe, tolle Antwort!
Moshe
2
Sie können die Befehle in einer einzigen Zeile kombinieren:ssh user@hostname 'say hello'
willWorkForCookies
20

Neben der Verwendung von sshBefehlen auf dem Remote - Host ausführen, können Sie von Remote Apple Events, benutzen , die auch einen haben sayBefehl, wie auch andere, die Ihnen nützlich sein können, wie display alert.

Aktivieren Sie auf dem Zielcomputer Folgendes:

Systemeinstellungen> Freigabe> Apple Remote-Ereignisse

Führen Sie dann auf Ihrem Computer das folgende Skript aus (im AppleScript-Editor oder über osascriptTerminal):

tell application "Finder" of machine "eppc://machine-name.local"
    say "Hello"
end tell

Sie werden aufgefordert, sich zu authentifizieren, wenn Sie dies kompilieren oder ausführen. Wenn Sie dies im AppleScript Editor tun, wird die Authentifizierung gespeichert, solange Sie den AppleScript Editor geöffnet lassen, sodass Sie sich nicht jedes Mal authentifizieren müssen, wenn Sie diesen ausführen. (Das Authentifizierungsdialogfeld bietet auch die Option, Ihre Anmeldeinformationen im Schlüsselbund zu speichern, um zu vermeiden, dass Sie wiederholt belästigt werden.)

Sie können dies von der Kommandozeile in Terminal aus tun mit:

osascript -e 'tell application "Finder" of machine "eppc://machine-name.local" to say "Hello"'

Anzeigen einer Nachricht auf einem Remote-Computer

Sie können eine Meldung auch anzeigen, indem Sie sich mit ssh† auf dem Remote-Computer anmelden und diesen Befehl in der Remote-Shell ausführen (dies nutzt keine Remote-Apple-Ereignisse, sondern nur die Remote-Anmeldung für ssh):

osascript -e 'say "Hello" without waiting until completion' -e 'tell application "System Events"' -e 'activate' -e 'display alert "Hello!"' -e 'end'

Der sayBefehl startet die Sprache asynchron. Dadurch werden Systemereignisse in den Vordergrund gerückt, um die Nachricht anzuzeigen, während die Sprache abgespielt wird.

† Befehle, die die Benutzeroberfläche anzeigen, wie display alertund display dialog, sind über Remote-Apple-Ereignisse nicht zulässig. Um sie an einen Prozess auf einem Remotecomputer zu senden, müssen Sie zunächst die folgenden Schritte ausführen ssh.

Chris Page
quelle
1

Alternativ hindert nichts Sie daran, den in OSX integrierten Remotedesktop oder die Bildschirmfreigabe zu verwenden und sich nur als normaler Benutzer anzumelden, und überspringt das Terminal.

Dann kannst du normal sagen. Oder es gibt viele Apps, die Text in Sprache umwandeln.

Alex
quelle