1 votes

Bash script ou AppleScript pour connecter et déconnecter un écran Airplay dans Monterey+.

Dans Préférences système > Affichages, en bas à gauche se trouve "Ajouter un affichage". Je peux choisir un autre Mac (Monterey+), une Apple TV, un iPad, voire d'autres choses, pour qu'ils deviennent effectivement un écran supplémentaire pour mon Mac. C'est plutôt cool.

Je veux automatiser la connexion et la déconnexion à l'un d'eux. AppleScript ou bash, c'est bien. Je préférerais vraiment ne pas utiliser les scripts de l'interface graphique si possible, mais si c'est le seul moyen, je préfère ça à aucune solution.

Quelqu'un peut-il dire définitivement si c'est possible, et/ou comment le faire ?

Merci !

-1voto

Matt Points 83

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.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X