Comment «dire» à un autre Mac?

19

J'ai deux Mac dans notre maison (iMac et MacBook Pro).

Je voudrais utiliser l' sayutilitaire de ligne de commande pour taper quelque chose sur mon MBP et le faire parler sur l'iMac, plutôt comme un système d'interphone.

De plus, il pourrait être hilarant d'envoyer des messages à ma femme pendant qu'elle utilise l'iMac.

Cela peut-il être fait?

cbmeeks
la source
2
Connexes: XKCD 530 xkcd.com/530
Andrew Grimm

Réponses:

26

Étant donné que les deux Mac sont dans la même maison, je suppose qu'ils sont tous les deux sur le même réseau.

Tout d'abord, vous devez activer Remote Loginsur le Mac où vous voulez que le son soit sorti.

Accédez à System Preferences > Sharinget cochez la Remote Logincase. Ensuite, à l'aide de votre ordinateur, ouvrez Terminal et saisissez ceci

ssh <user>@<computer name.local>

<user>est votre connexion femme et <computer name>est le nom de l'autre ordinateur.

Maintenant, c'est comme si vous ouvrez Terminal sur l'ordinateur de votre femme et que vous pouvez sayce que vous voulez.

Loïc Wolff
la source
il dit que l'événement n'a pas été trouvé
cbmeeks
@cbmeeks quand? quelle est la dernière commande que vous avez faite?
Loïc Wolff
ça ne fait rien. Je l'ai mal fait. fonctionne très bien! lol merci
cbmeeks
2
Je l'ai déjà fait auparavant, lors du codage aux côtés d'un ami, excellente réponse!
Moshe
2
Vous pouvez combiner les commandes sur une seule ligne:ssh user@hostname 'say hello'
willWorkForCookies
20

En plus d'utiliser sshpour exécuter des commandes sur l'hôte distant, vous pouvez utiliser Remote Apple Events, qui ont également une saycommande, ainsi que d'autres qui peuvent vous être utiles, comme display alert.

Sur la machine cible, activez:

Préférences Système> Partage> Événements Apple distants

Ensuite, à partir de votre machine, exécutez le script suivant (dans AppleScript Editor ou via osascriptdans Terminal):

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

Il vous demandera de vous authentifier lorsque vous compilerez ou exécuterez ceci. Si vous le faites dans AppleScript Editor, il se souviendra de l'authentification tant que vous laissez AppleScript Editor ouvert, vous n'aurez donc pas à vous authentifier chaque fois que vous l'exécuterez. (La boîte de dialogue d'authentification a également une option pour enregistrer vos informations d'identification sur le trousseau pour éviter d'être harcelé à plusieurs reprises.)

Vous pouvez le faire à partir de la ligne de commande dans Terminal avec:

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

Comment afficher un message sur une machine distante

Vous pouvez également afficher un message en vous connectant à la machine distante avec ssh† et en exécutant cette commande dans le shell distant (cela n'utilise pas les événements Apple distants, juste la connexion à distance pour ssh):

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

La saycommande démarre le discours de manière asynchrone, puis cela amène les événements système au premier plan pour afficher le message pendant la lecture du discours.

† Les commandes qui affichent l'interface utilisateur, comme display alertet display dialog, ne sont pas autorisées via les événements Apple distants. Pour les envoyer à un processus sur une machine distante, vous devez d'abord passer par ssh.

Chris Page
la source
1

Encore une fois, rien ne vous empêche d'utiliser le Bureau à distance ou le Partage d'écran, qui est intégré à OSX, et juste de vous connecter en tant qu'utilisateur normal, en ignorant le terminal.

Ensuite, vous pouvez utiliser say normalement. Ou il existe de nombreuses applications qui font de la synthèse vocale.

Alex
la source