Está bien, primero he leído mal tu pregunta, por lo que he reescrito mi respuesta y, en segundo lugar, porque la configuración de preferencia "Scroll direction: natural" es global , he reescrito el código también.
Como están codificados, hay dos subrutinas , una para el mouse y el trackpad (interno o externo) que se llama en función de la existencia de los dispositivos definidos. Eso se define como en el valor para mouse
, externalTrackpad
y internalTrackpad
tal como se devuelve de los comandos do shell script
configurados para buscar Apple Magic Mouse, Apple Wireless Trackpad y un Internal Trackpad. Estos comandos se pueden cambiar según sea necesario / deseado.
Básicamente, lo que sucede es que las variables se inicializan y luego se prueban mediante las declaraciones if
y se ejecutan en consecuencia según lo codificado.
-
Si no existe un mouse y un trackpad externo y no existe un trackpad interno, se muestra un mensaje y el script termina.
-
Si no existe un mouse y un trackpad externo y sí existe un trackpad interno, entonces se ejecuta la subrutina TrackpadIsAttached
, la casilla de verificación "Scroll direction: natural" no está marcado (si está marcado) y luego script termina, ya que la configuración es global y no hay necesidad de continuar con el proceso.
-
Si existe un mouse o un trackpad (interno o externo), entonces subrutina se ejecuta con la codificación adecuada, la casilla de verificación "Desplazamiento en dirección: natural" casilla de verificación no está marcada (si está marcado) y luego script finaliza, ya que la configuración es global y no es necesario seguir procesando.
on MouseIsAttached()
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"
tell radio button 1 of tab group 1 of window 1 to if value is 0 then click
tell checkbox 1 of tab group 1 of window 1 to if value is 1 then click
end tell
tell application "System Preferences" to quit
end MouseIsAttached
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"
tell radio button 2 of tab group 1 of window 1 to if value is 0 then click
tell checkbox 1 of tab group 1 of window 1 to if value is 1 then click
end tell
tell application "System Preferences" to quit
end TrackpadIsAttached
tell current application
set mouse to (do shell script "system_profiler SPBluetoothDataType | awk '{ FS = \": \" } ; /Apple Magic Mouse/ { print $2 }'")
set externalTrackpad to (do shell script "system_profiler SPBluetoothDataType | awk '{ FS = \": \" } ; /Apple Wireless Trackpad/ { print $2 }'")
set internalTrackpad to (do shell script "system_profiler SPUSBDataType | awk '/Trackpad:/ { print \"Internal Trackpad\" }'")
if mouse is equal to "" and externalTrackpad is equal to "" then
if internalTrackpad is equal to "Internal Trackpad" then
my TrackpadIsAttached()
return
else
display dialog "The Mouse and Trackpad are not connected." buttons {"OK"} default button 1
return
end if
end if
if mouse is equal to "Apple Magic Mouse" then
my MouseIsAttached()
return
end if
if externalTrackpad is equal to "Apple Wireless Trackpad" then
my TrackpadIsAttached()
return
end if
end tell
Obviamente, utilicé mi Apple Magic Mouse y el Wireless Trackpad de Apple como ejemplos y lo probé para garantizar que funcionó como estaba codificado en mi MacBook Pro. Puede usar cualquier fabricación, marca, modelo para un mouse externo y un trackpad, y solo tendrá que editar el script de manera adecuada. Si necesita ayuda adicional con eso solo pregunte. También probé esto bajo OS X 10.8.5 y funcionó para mí como está escrito.