C'è un modo per attivare e disattivare la funzione Mouse Keys usando AppleScript o un comando di terminale?

4

Uso Mac OS X 10.7.2. Esiste un modo per eseguire un comando AppleScript o terminale che attiva o disattiva rapidamente la funzione "tasti del mouse" nella scheda Accesso universale? Idealmente, sto cercando una soluzione che non implichi la GUI per lo script dell'app System Preferences, anche se sarebbe leggermente meglio di niente.

Ho esplorato defaults write com.apple.universalaccess useMouseKeysShortcutKeys 1 e varie altre forme di questa affermazione, ma senza risultati.

    
posta Daniel 10.02.2012 - 22:54
fonte

2 risposte

4

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.

    
risposta data 10.02.2012 - 23:51
fonte
-1

Non puoi usare lo scripting keystroke in AppleScript per questo?

Qualcosa sulla falsariga di:

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
    
risposta data 10.02.2012 - 23:28
fonte

Leggi altre domande sui tag