Je suis en train de créer un agent de lancement, qui lance un AppleScript chaque fois qu'une souris est connectée. Similaire à ces deux questions :
- La clé LaunchEvents non reconnue dans le plist de launchd (détection de périphérique USB)
- Exécuter une application sur Mac OS X lorsqu'un type particulier de périphérique USB est connecté ?
Cependant, une fois que je charge mon agent de lancement (via launchctl load
), il continue de se lancer toutes les 5 secondes environ. Comment m'assurer que l'agent s'exécute une seule fois, lorsque la souris est connectée ?
Voici mon agent (plist) :
KeepAlive
Label
com.automations.switchscrolldirection
ProgramArguments
osascript
/Users/lirik/Documents/Automation/SwitchScrollDirectionOnMouseEvent.scpt
LaunchEvents
com.apple.iokit.matching
com.apple.device-attach
idProduct
49277
idVendor
1133
IOProviderClass
IOUSBDevice
IOMatchStream
IOMatchLaunchStream
L'AppleScript en question :
on gamingMouseIsAttached()
tell application "Préférences Système"
activate
set current pane to pane "com.apple.preference.mouse"
end tell
tell application "Événements Système" to tell process "Préférences Système"
repeat until exists checkbox 1 of window "Souris"
end repeat
tell checkbox 1 of window "Souris" to if value is 1 then click