Dictation settings with AppleScript

136 views Asked by At

I'm trying to create an an AppleScript to turn dictation on or off (not just make it start listening). My goal is to be able to disable dictation when I am on battery power. I am new to AppleScript and don't know how to do this. I need this to work on macOS Sierra.

1

There are 1 answers

0
asportnoy On BEST ANSWER

I found my answer!

Here is my code if somebody wants it:

set quitting to 0
delay 1
repeat until quitting is 1
    set PowerSource to (do shell script "pmset -g ps")
    repeat until PowerSource does not contain "AC Power" or quitting is 1
        set PowerSource to (do shell script "pmset -g ps")
    end repeat
    --START
    tell application "System Events"
        set ProcessList to name of every process
        if "System Prefrences" is in ProcessList then
            set ThePID to unix id of process "System Prefrences"
            do shell script "kill -KILL " & ThePID
        end if
    end tell

    tell application "System Preferences"
        activate
        set the current pane to pane id "com.apple.preference.keyboard"
    end tell
    tell application "System Events"
        --Part 1:
        tell process "System Preferences"
            --Part 2:
            delay 1
            --Part 3:
            tell application "System Events" to tell radio button "Dictation" of tab group 1 of window "Keyboard" of application process "System Preferences" of application "System Events" to if exists then click
            tell application "System Events" to tell radio button "Off" of radio group 1 of tab group 1 of window "Keyboard" of application process "System Preferences" of application "System Events" to if exists then click
        end tell
    end tell
    tell application "System Preferences" to quit
    display notification "Hey siri is now off."
    --END
    repeat until PowerSource contains "AC Power" or quitting is 1
        set PowerSource to (do shell script "pmset -g ps")
    end repeat
    --START
    tell application "System Events"
        set ProcessList to name of every process
        if "System Prefrences" is in ProcessList then
            set ThePID to unix id of process "System Prefrences"
            do shell script "kill -KILL " & ThePID
        end if
    end tell

    tell application "System Preferences"
        activate
        set the current pane to pane id "com.apple.preference.keyboard"
    end tell
    tell application "System Events"
        --Part 1:
        tell process "System Preferences"
            --Part 2:
            delay 1
            --Part 3:
            tell application "System Events" to tell radio button "Dictation" of tab group 1 of window "Keyboard" of application process "System Preferences" of application "System Events" to if exists then click
            tell application "System Events" to tell radio button "On" of radio group 1 of tab group 1 of window "Keyboard" of application process "System Preferences" of application "System Events" to if exists then click
        end tell
    end tell
    tell application "System Preferences" to quit
    display notification "Hey siri is now on."
    --END
end repeat
on quit
    set quitting to 1
    continue quit
end quit

Just open it in script editor and compile it into an application. Then launch the application. Hope this helps!