Jak mogę „powiedzieć” innemu komputerowi Mac?

19

Mam dwa komputery Mac w naszym domu (iMac i MacBook Pro).

Chciałbym użyć saynarzędzia wiersza polecenia, aby wpisać coś na moim MBP i pozwolić mu mówić na komputerze iMac, a nie jak w systemie domofonowym.

Ponadto wysyłanie wiadomości do mojej żony podczas korzystania z komputera iMac może być zabawne.

Czy można to zrobić?

cbmeeks
źródło
2
Powiązane: XKCD 530 xkcd.com/530
Andrew Grimm,

Odpowiedzi:

26

Ponieważ dwa komputery Mac są w tym samym domu, zakładam, że oba są w tej samej sieci.

Przede wszystkim musisz aktywować Remote Loginna komputerze Mac, w którym chcesz, aby dźwięk był słyszalny.

Przejdź do System Preferences > Sharingi zaznacz pole Remote Loginwyboru. Następnie za pomocą komputera otwórz Terminal i wpisz to

ssh <user>@<computer name.local>

Gdzie <user>jest login twojej żony i <computer name>nazwa drugiego komputera.

Teraz wygląda to tak, jakbyś miał terminal otwarty na komputerze swojej żony i możesz sayrobić, co chcesz.

Loïc Wolff
źródło
napisano: Nie znaleziono wydarzenia
cbmeeks,
@cbmeeks kiedy? jakie jest twoje ostatnie polecenie?
Loïc Wolff
nieważne. Zrobiłem to źle. działa świetnie! lol dzięki
cbmeeks
2
Robiłem to już wcześniej, kiedy kodowałem razem z przyjacielem, świetna odpowiedź!
Moshe
2
Możesz łączyć polecenia w jedną linię:ssh user@hostname 'say hello'
willWorkForCookies
20

Oprócz używania sshdo uruchamiania poleceń na zdalnym hoście, możesz używać Zdalnych zdarzeń Apple, które również mają saypolecenie, a także inne, które mogą być dla Ciebie przydatne, np display alert.

Na komputerze docelowym włącz:

Preferencje systemowe> Udostępnianie> Zdalne zdarzenia Apple

Następnie z poziomu komputera uruchom następujący skrypt (w AppleScript Editor lub przez osascriptTerminal):

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

Poprosi Cię o uwierzytelnienie podczas kompilacji lub uruchomienia. Jeśli zrobisz to w programie AppleScript Editor, zapamięta uwierzytelnianie, dopóki program AppleScript Editor pozostanie otwarty, więc nie będziesz musiał uwierzytelniać się przy każdym uruchomieniu. (Okno dialogowe uwierzytelniania ma również opcję zapisania poświadczeń w pęku kluczy, aby uniknąć wielokrotnego atakowania).

Możesz to zrobić z wiersza polecenia w terminalu za pomocą:

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

Jak wyświetlić wiadomość na zdalnym komputerze

Możesz także wyświetlić komunikat, logując się na zdalnym komputerze za pomocą ssh† i uruchamiając to polecenie w zdalnej powłoce (nie używa to Zdalnych zdarzeń Apple, tylko Zdalne logowanie dla ssh):

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

sayKomenda rozpoczyna mowę asynchronicznie, to przynosi Zdarzenia systemowe do przodu, aby wyświetlić wiadomość, gdy mowa jest odtwarzany.

† Polecenia wyświetlające interfejs użytkownika, takie jak display alerti display dialog, nie są dozwolone przez Zdalne zdarzenia Apple. Aby wysłać je do procesu na zdalnym komputerze, musisz najpierw przejść ssh.

Chris Page
źródło
1

Alternatywnie, nic nie stoi na przeszkodzie, abyś używał Pulpitu zdalnego lub ekranu, który jest wbudowany w OSX, i logował się jako zwykły użytkownik, pomijając terminal.

Następnie możesz użyć powiedzieć normalnie. Lub istnieje wiele aplikacji przetwarzających tekst na mowę.

Alex
źródło