Cómo detener al agente de inicio de lanzar repetidamente un AppleScript determinado

Intento crear un agente de lanzamiento, que lanza un AppleScript cada vez que se conecta un mouse. Similar a estas dos preguntas:

https://stackoverflow.com/questions/15397304/launchevents-key-unrecognized-in-launchdplist-detecting-usb-device

https://stackoverflow.com/questions/7240117/execute-an-application-on-mac-os-x-when-a-particular-type-of-usb-device-is-conne

Sin embargo, una vez que launchctl load mi agente de inicio (a través de la launchctl load ), sigue comenzando cada 5 segundos o así. ¿Cómo me aseguro de que el agente se ejecute solo una vez cuando el mouse está conectado?

Aquí está mi agente (plist):

 <?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>KeepAlive</key> <false/> <key>Label</key> <string>com.automations.switchscrolldirection</string> <key>ProgramArguments</key> <array> <string>osascript</string> <string>/Users/lirik/Documents/Automation/SwitchScrollDirectionOnMouseEvent.scpt</string> </array> <key>LaunchEvents</key> <dict> <key>com.apple.iokit.matching</key> <dict> <key>com.apple.device-attach</key> <dict> <key>idProduct</key> <integer>49277</integer> <key>idVendor</key> <integer>1133</integer> <key>IOProviderClass</key> <string>IOUSBDevice</string> <key>IOMatchStream</key> <true/> <key>IOMatchLaunchStream</key> <true/> </dict> </dict> </dict> </dict> </plist> 

El AppleScript en cuestión:

 on gamingMouseIsAttached() tell application "System Preferences" activate set current pane to pane "com.apple.preference.mouse" end tell tell application "System Events" to tell process "System Preferences" repeat until exists checkbox 1 of window "Mouse" end repeat tell checkbox 1 of window "Mouse" to if value is 1 then click end tell tell application "System Preferences" to quit end gamingMouseIsAttached on TrackpadIsAttached() tell application "System Preferences" activate set current pane to pane "com.apple.preference.trackpad" end tell tell application "System Events" to tell application process "System Preferences" repeat until exists checkbox 1 of tab group 1 of window "Trackpad" end repeat tell checkbox 1 of tab group 1 of window 1 to if value is 0 then click end tell tell application "System Preferences" to quit end TrackpadIsAttached tell current application delay 15 set internalTrackpad to (do shell script "system_profiler SPUSBDataType | awk '/Trackpad:/ { print \"Internal Trackpad\" }'") set gamingMouse to (do shell script "system_profiler SPUSBDataType | awk '/Gaming Mouse G502:/ { print \"Gaming Mouse\" }'") if gamingMouse is equal to "" then if internalTrackpad is equal to "Internal Trackpad" then my TrackpadIsAttached() return end if end if if gamingMouse is equal to "Gaming Mouse" then my gamingMouseIsAttached() return end if end tell 

Loving Apple Products like poisoning (iPhone, iPad, iMac, Macbook, iWatch).