Tout d'abord, vous devez installer homebrew sur votre système. Si vous ne l'avez pas, visitez http://brew.sh pour obtenir des instructions, ou faites-moi signe et j'essaierai de vous guider.
Ensuite, vous devez installer arp-scan
. Pour ce faire, ouvrez un Terminal et tapez brew install arp-scan
.
Prochaine étape. Enregistrez le script suivant, que j'ai appelé check-iphone-available.scpt
mais vous pouvez les renommer si vous le souhaitez.
set IPHONE to do shell script "if /usr/local/bin/arp-scan -l | grep your-iphone-mac; then echo 1; else echo 0; fi" user name "your-username" password "your-password" with administrator privileges
tell application "System Events"
tell process "Messages"
tell menu bar 1
tell menu bar item "Messages"
tell menu "Messages"
tell menu item "My Status"
tell menu "My Status"
if IPHONE is not equal to "0" then
click menu item "Available"
else
click menu item "Away"
end if
end tell
end tell
end tell
end tell
end tell
end tell
end tell
Remplacer your-username
, your-password
y your-iphone-mac
.
-
your-username
doit être un utilisateur administrateur qui peut sudo sur votre ordinateur.
-
your-password
mot de passe pour cet utilisateur.
-
your-iphone-mac
peut être obtenu sur votre iphone, allez sur Settings
-> General
-> About
et copier Wi-Fi Address
.
Donnez des autorisations : chmod 775 check-iphone-available.scpt
.
Le script exécute comme administrateur la commande arp-scan
. Cette commande envoie des paquets ARP aux hôtes du réseau local et affiche les réponses reçues. Le site grep
commande rechercher votre iphone sur la réponse recevoir par arp-scan
. Si l'iphone est trouvé, alors retourner 1, sinon, retourner 0. Sur 1, le script fait cliquer sur l'élément de menu Disponible dans Messages, sur 0, la même chose sur Away (peut être changé par Offline
, On the phone
etc).
Alors, faisons-le automatiquement.
Aller au dossier /Users/your-username/Library/LaunchAgents
et enregistrez-y le fichier plist suivant. Je l'ai nommé com.username.checkiphone.plist
mais, là encore, n'hésitez pas à le modifier.
<?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>com.your-username.checkiphone</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/osascript</string>
<string>/Users/your-username/bin/check-iphone-available.scpt</string>
</array>
<key>Nice</key>
<integer>1</integer>
<key>StartInterval</key>
<integer>60</integer>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/tmp/com.your-username.checkiphone-available.err</string>
<key>StandardOutPath</key>
<string>/tmp/com.your-username.checkiphone-available.out</string>
</dict>
</plist>
Le fichier est assez explicite. Nous allons lancer la commande /usr/bin/osascript /Users/your-username/bin/check-iphone-available.scpt
toutes les 60 secondes, sera lancé au chargement, sauvegardera les erreurs sur /tmp/com.username.checkiphone-available.err
et se connecte /tmp/com.username.checkiphone-available.out
.
Encore une fois, remplacez your-username
de manière appropriée.
Dernière étape, dire au démon Mac launchd de le charger.
launchctl load com.your-username.checkiphone.plist
Pour arrêter le script, il suffit de remplacer le mot load
avec unload
dans la phrase ci-dessus. Lorsque vous redémarrez votre ordinateur, le script sera à nouveau chargé. Pour l'éviter, déplacez-le dans un autre dossier.