Me he puesto un montón de secuencias de comandos que necesita suceder cuando conecto mi dock thunderbolt en casa (desactivar el wifi, activar bluetooth, ...).
Para detectar el dock thunderbolt puedo hacer uso de los siguientes launchctl
el servicio de:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>romeovs.dock.agent</string>
<key>ProgramArguments</key>
<array>
<string>/Users/romeovs/.bin/dock/run.sh</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>LaunchEvents</key>
<dict>
<key>com.apple.notifyd.matching</key>
<dict>
<key>com.apple.system.config.network_change</key>
<dict>
<key>Notification</key>
<string>com.apple.system.config.network_change</string>
</dict>
</dict>
</dict>
</dict>
</plist>
Este servicio escucha a launchd
para un cambio de la red a suceder (detección de la conexión de red que está conectado a la base dock). Esta configuración parece que funciona, pero es muy lento para detectar y actuar cuando la base está conectada.
Ya toma un largo tiempo para que el muelle de la red, pero después de eso también lleva otros 5 segundos antes de que el script se llama.
Hay una manera para hacer que el servicio detectar los cambios en la red más rápido (sin establecimiento de un centro de votación de servicio)?