J'ai mis en place un certain nombre de scripts qui doivent se produire lorsque je connecte mon dock thunderbolt à la maison (désactiver le wifi, activer le bluetooth, ...).
Pour détecter la station d'accueil Thunderbolt, j'utilise les éléments suivants launchctl
service :
<?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>
Ce service écoute launchd
pour qu'un changement de réseau se produise (détection du réseau câblé connecté à la station d'accueil). Cette configuration semble fonctionner, mais elle est vraiment lente à détecter et à agir lorsque la station d'accueil est connectée.
Il faut déjà beaucoup de temps pour que le réseau de docks soit mis en place, mais après cela, il faut encore 5 secondes avant que le script ne soit effectivement appelé.
Existe-t-il un moyen de faire en sorte que le service détecte les changements de réseau plus rapidement (sans mettre en place un service d'interrogation) ?