Ecco la soluzione di scripting della 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
Avvierà Preferenze di Sistema se necessario, ma non mostrerà la finestra e la interromperà successivamente, quindi da un POV dell'interfaccia utente, almeno non mostra la finestra.
Puoi cambiare l'impostazione persistente su cui si basa la configurazione delle Preferenze di Sistema usando i seguenti comandi:
defaults write ~/Library/Preferences/com.apple.universalaccess mouseDriver -bool YES
defaults write ~/Library/Preferences/com.apple.universalaccess mouseDriver -bool NO
Purtroppo, questo modifica solo il file di configurazione e non applica le modifiche al sistema in esecuzione.
Mentre puoi premere a mano i tasti Opzione usando AppleScript, come segue:
tell application "System Events"
key down option
key up option
end tell
L'opzione premi Opzione cinque volte per passare da è a un livello più alto e non viene attivata da questo. Mentre tutte le normali pressioni di tasto Option
vengono ignorate dopo aver eseguito solo key down option
, puoi comunque attivare i tasti del mouse.
Il debug delle Preferenze di Sistema durante la modifica delle impostazioni mostra le chiamate a LaunchUAServerIfNeeded
e UAMouseKeysSetEnabled
nel private UniversalAccessCore
framework. A meno che non eseguiamo il reverse engineering di questo framework e scriviamo i nostri binari, non penso che avremo un modo programmatico corretto per farlo.