Estoy usando un agente launchd
para ejecutar un script de shell cada vez que conecto mi base Thunderbolt. He podido usar IOKit
notificaciones para detectar cuándo se está conectando el dock, pero también quiero ejecutar un script de shell cada vez que se desconecta el dock.
Para detectar el archivo adjunto del dock, uso el evento com.apple.iokit.matching
's device-attach
:
<key>LaunchEvents</key>
<dict>
<key>com.apple.iokit.matching</key>
<dict>
<key>com.apple.device-attach</key>
<dict>
<key>IOProviderClass</key>
<string>IOPCIDevice</string>
<key>idVendor</key>
<integer>21</integer>
<key>idProduct</key>
<integer>4</integer>
<key>IOMatchStream</key>
<true/>
<key>IOMatchLaunchStream</key>
<true/>
</dict>
</dict>
</dict>
También debería haber un evento que se dispare al separarse, aunque todavía no lo he aceptado. La documentación de Apple sobre este tema es deplorable.
Realmente quiero evitar el uso de un método de sondeo que verifique si el dispositivo aún está conectado. Algunas soluciones mejores deben
También el gruñido, ControlPlane y otras aplicaciones similares están fuera de cuestión.
Editar:
Para ser claros. Quiero ejecutar un script de shell cada vez que este dock específico esté conectado o desconectado, no siempre que cualquier dispositivo esté conectado / desconectado.