Je ne pense pas qu'une solution purement en bash soit possible, puisque nous essayons de nous interfacer avec les événements internes des applications MacOS. De plus, je n'ai pas pu trouver de référence directe à AirPlay, Displays, ou Mirroring dans le Dictionnaire de script Editor.app (ouvrir script Editor.app, Fichier Ouvrir Dictionnaire...). Mais cela laisse encore l'option de scriptage de l'interface graphique via AppleScript, que je vous propose ci-dessous.
Dans MacOS 11+, cet ancien exemple de syntaxe exemplifiée aquí ne fonctionnera pas à cause des modifications de l'interface utilisateur qui ont été apportées depuis MacOS 11. C'est mai Il serait possible de le modifier pour le nouvel élément de la barre de menu du centre de contrôle, comme cela a été fait avec succès pour un type de sélection de case à cocher dans le deuxième exemple. aquí mais je n'ai pas réussi à l'adapter à la fonction Screen Mirroring. Autres ont également tenté de le faire.
En attendant, il est toujours possible de le faire avec des scripts AppleScript GUI via les Préférences Système, plutôt qu'en passant par le Centre de Contrôle de la Barre de Menu du système :
tell application "System Preferences"
quit
end tell
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.displays"
end tell
tell application "System Events"
tell application process "System Preferences"
repeat until exists window "Displays"
end repeat
tell pop up button 1 of window 1
click
click menu item "Apple TV" of menu 1
delay 1
end tell
end tell
end tell
tell application "System Preferences"
quit
end tell
Veillez à coder en dur le nom de votre appareil à la place de "Apple TV". En outre, vous pourriez passer un argument pour activer la mise en miroir AirPlay pour les périphériques à la volée avec une automatisation Automator appropriée, ou si vous enveloppez ce script dans un script shell ou un alias bash.