Bagaimana saya bisa “mengatakan” ke Mac lain?

19

Saya memiliki dua Mac di rumah kami (iMac dan MacBook Pro).

Saya ingin menggunakan sayutilitas baris perintah untuk mengetikkan sesuatu pada MBP saya dan membuatnya berbicara di iMac, lebih seperti sistem interkom.

Plus, bisa jadi lucu untuk mengirim pesan ke istri saya saat dia menggunakan iMac.

Bisakah ini dilakukan?

cbmeeks
sumber
2
Terkait: XKCD
Andrew Grimm

Jawaban:

26

Karena kedua Mac berada di rumah yang sama, saya berasumsi mereka berdua berada di jaringan yang sama.

Pertama-tama, Anda harus mengaktifkan Remote Logindi Mac di mana Anda ingin mengeluarkan suara.

Pergi ke System Preferences > Sharingdan centang Remote Loginkotak centang. Kemudian, menggunakan komputer Anda, buka Terminal dan ketik ini

ssh <user>@<computer name.local>

Di mana <user>istri Anda masuk dan <computer name>merupakan nama komputer lain.

Sekarang, seolah-olah Anda memiliki Terminal terbuka di komputer istri Anda dan Anda dapat melakukan sayapa pun yang Anda suka.

Loïc Wolff
sumber
katanya Event tidak ditemukan
cbmeeks
@ cbmeeks kapan? apa perintah terakhir yang kamu lakukan?
Loïc Wolff
tidak apa-apa. Saya salah melakukannya. bekerja hebat! lol terima kasih
cbmeeks
2
Saya telah melakukan ini sebelumnya, ketika menulis kode bersama seorang teman, jawaban yang bagus!
Moshe
2
Anda dapat menggabungkan perintah menjadi satu baris:ssh user@hostname 'say hello'
willWorkForCookies
20

Selain menggunakan sshuntuk menjalankan perintah pada host jarak jauh, Anda dapat menggunakan Acara Apple Jarak Jauh, yang juga memiliki sayperintah, serta yang lain yang mungkin berguna bagi Anda, seperti display alert.

Pada mesin target, aktifkan:

Preferensi Sistem> Berbagi> Acara Apple Jarak Jauh

Kemudian dari mesin Anda jalankan skrip berikut (di AppleScript Editor, atau via osascriptdi Terminal):

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

Ini akan meminta Anda untuk mengotentikasi saat Anda menyusun atau menjalankan ini. Jika Anda melakukannya di AppleScript Editor, itu akan mengingat otentikasi selama Anda membiarkan AppleScript Editor terbuka, jadi Anda tidak perlu mengotentikasi setiap kali Anda menjalankan ini. (Dialog otentikasi juga memiliki opsi untuk menyimpan kredensial Anda di Gantungan Kunci untuk menghindari berulang kali direcoki.)

Anda dapat melakukan ini dari baris perintah di Terminal dengan:

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

Cara Menampilkan Pesan di Mesin Jarak Jauh

Anda juga dapat menampilkan pesan dengan masuk ke mesin jarak jauh dengan ssh† dan menjalankan perintah ini di shell jarak jauh (ini tidak menggunakan Acara Apple Jarak Jauh, hanya Login Jauh untuk ssh):

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

The sayperintah dimulai pidato asynchronous, maka ini membawa Sistem Events ke depan untuk menampilkan pesan saat pidato diputar.

† Perintah yang menampilkan UI, seperti display alertdan display dialog, tidak diizinkan melalui Remote Apple Events. Untuk mengirim mereka ke suatu proses pada mesin jarak jauh, Anda harus terlebih dahulu melewati ssh.

Chris Page
sumber
1

Atau lagi, tidak ada yang menghentikan Anda dari menggunakan Remote Desktop atau Berbagi Layar, yang dibangun ke dalam OSX, dan hanya masuk sebagai pengguna biasa, melewatkan terminal.

Maka Anda dapat menggunakan katakan secara normal. Atau ada banyak aplikasi yang melakukan text to speech.

Alex
sumber