Aquí está la solución de secuencias de comandos GUI:
tell application "System Preferences"
reveal anchor "Mouse" of pane id "com.apple.preference.universalaccess"
tell application "System Events"
tell process "System Preferences"
tell first window
tell first tab group
tell radio group 1
if value of radio button 1 is 1 then
# enabled, so disable
click radio button 2
else
# disabled, so enable
click radio button 1
end if
end tell
end tell
end tell
end tell
end tell
quit
end tell
Se iniciará Preferencias del sistema si es necesario, pero no muestra la ventana y se cierra después, por lo que desde una UI POV, al menos no muestra la ventana.
Puede cambiar la configuración persistente en la que se basa la configuración de Preferencias del Sistema mediante los siguientes comandos:
defaults write ~/Library/Preferences/com.apple.universalaccess mouseDriver -bool YES
defaults write ~/Library/Preferences/com.apple.universalaccess mouseDriver -bool NO
Lamentablemente, esto solo cambia el archivo de configuración y no aplica los cambios al sistema en ejecución.
Si bien puede presionar mediante programación las teclas Opción usando AppleScript, como las siguientes:
tell application "System Events"
key down option
key up option
end tell
El presione la opción Opción cinco veces para alternar está en un nivel más alto y esto no se activa. Si bien todas las pulsaciones normales de Option
se ignoran después de que solo ejecute key down option
, aún puede alternar las teclas del mouse.
Depurando Preferencias del sistema mientras se cambia la configuración, se muestran las llamadas a LaunchUAServerIfNeeded
y UAMouseKeysSetEnabled
en el marco privado UniversalAccessCore
. A menos que realicemos ingeniería inversa de ese marco y escribamos nuestros propios binarios, no creo que tengamos una forma programática adecuada para hacer esto.