Je utilise un agent launchd
pour exécuter un script shell chaque fois que je connecte mon dock Thunderbolt. J'ai pu utiliser les notifications IOKit
pour détecter quand le dock est connecté, mais je veux également exécuter un script shell lorsque le dock est déconnecté.
Pour détecter la connexion du dock, j'utilise l'événement device-attach
de com.apple.iokit.matching
:
LaunchEvents
com.apple.iokit.matching
com.apple.device-attach
IOProviderClass
IOPCIDevice
idVendor
21
idProduct
4
IOMatchStream
IOMatchLaunchStream
Il devrait y avoir un événement déclenché également lors de la déconnexion, bien que je ne l'ai pas encore trouvé. La documentation d'Apple sur ce sujet est déplorable.
Je veux vraiment éviter d'utiliser une méthode de sondage qui vérifie constamment si le périphérique est toujours connecté. Il doit y avoir de meilleures solutions.
Aussi, Growl, ControlPlane et d'autres applications similaires sont exclus.
Éditer:
Pour être clair. Je veux exécuter un script shell chaque fois que ce dock spécifique est connecté ou déconnecté, pas chaque fois qu'un périphérique est connecté/déconnecté.