Estoy ejecutando Mac OS X 10.7.2. ¿Hay alguna manera de ejecutar un AppleScript o un comando de terminal que active o desactive rápidamente la función de "teclas del mouse" en la pestaña Acceso universal? Idealmente, estoy buscando una solución que no involucre secuencias de comandos de GUI para la aplicación de Preferencias del sistema, aunque eso sería un poco mejor que nada.
He explorado defaults write com.apple.universalaccess useMouseKeysShortcutKeys 1
y varias otras formas de esa declaración, pero fue en vano.
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
Si es necesario, iniciará las Preferencias del sistema , pero no muestra la ventana y la cierra después, por lo que desde un punto de vista de la interfaz de usuario, al menos no muestra la ventana.
Puede cambiar la configuración persistente en la que se basa la configuración de Preferencias del Sistema utilizando los siguientes comandos:
defaults write ~/Library/Preferences/com.apple.universalaccess mouseDriver -bool YES
defaults write ~/Library/Preferences/com.apple.universalaccess mouseDriver -bool NO
Desafortunadamente, esto solo cambia el archivo de configuración y no aplica los cambios al sistema en ejecución.
Si bien puede presionar las teclas de opción mediante programación usando AppleScript, como lo siguiente:
tell application "System Events"
key down option
key up option
end tell
La opción de prensa cinco veces para alternar la configuración está en un nivel superior y no se activa por esto. Si bien todas Option
las pulsaciones regulares de teclas se ignoran después de ejecutar solo key down option
, aún puede alternar las teclas del mouse.
La depuración de las preferencias del sistema mientras se cambia la configuración muestra las llamadas hacia LaunchUAServerIfNeeded
y UAMouseKeysSetEnabled
en el UniversalAccessCore
marco privado. A menos que apliquemos ingeniería inversa a ese marco y escribamos nuestros propios binarios, no creo que obtengamos una forma programática adecuada de hacer esto.
¿No puedes usar secuencias de comandos de pulsaciones de teclas en AppleScript para esto?
Algo del estilo de:
tell application "System Events"
repeat 5 times
//any of these should work
key option
key code 58
key code option
//I do not know if this works
keystroke option
end tell
key down option
y key up option
, pero no funcionan, incluso delay 0.1
entre cada uno.key up
.
Daniel
usuario54823