Discovered Apple and Tim Cook are Lying to us… As per usual… The Micro phone, although it may say it’s set to 0 via Sound/Input is actually set to 50% EVERYTIME you reboot your computer - Presumably for 3rd parties to SPY on you while you think the Mic is off.
Heres a scrip to run to set input values to 0 after every reboot. They hide the input via “Dictation” and Siri.
My personal setup uses multiple Displays each with it’s own Mic Input - you may need modify the script for your personal use.
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.keyboard"
reveal anchor "Dictation" of pane id "com.apple.preference.Keyboard"
## Delay required for GUI to load other wise Index Error
delay 0.8
set current pane to pane "com.apple.preference.sound"
reveal anchor "input" of pane id "com.apple.preference.sound"
##set current pane to pane "com.apple.preference.sound"
##reveal anchor "input" of pane id "com.apple.preference.sound
## Delay required for GUI to load other wise Index Error
delay 0.8
tell application "System Events" to tell process "System Preferences"
##tell tab group 1 of window "Sound" to click radio button "Input"
## Internal Input
tell table 1 of scroll area 1 of tab group 1 of window "Sound"
select (row 1 where value of text field 1 is "Internal Microphone")
##select (row 1 where value of text field 1 is "Display Audio")
end tell
tell tab group 1 of window "Sound"
##click radio button "Input"
set value of slider 1 of group 2 to 0.5
delay 0.1
set value of slider 1 of group 2 to 0
end tell
## USB INPUT - Thunderbolt Display
tell table 1 of scroll area 1 of tab group 1 of window "Sound"
##select (row 1 where value of text field 1 is "Internal microphone")
select (row 1 where value of text field 1 is "Display Audio")
end tell
tell tab group 1 of window "Sound"
##click radio button "Input"
set value of slider 1 of group 2 to 0.5
delay 0.1
set value of slider 1 of group 2 to 0
end tell
end tell
end tell
Model: iMac Pro 2017
Browser: Safari 604.4.7
Operating System: Mac OS X (10.12.5)
Where there’s only one input source, this is simpler:
set volume input volume 0
I don’t know if or how it affects multiple inputs.
I use the following script, saved as an application, as a Login Item on my computers (the ‘set volume’ values depending on the machine):
on main()
-- Launch System Events and set it never to quit.
using terms from application "System Events"
tell application ((path to "csrv" as text) & "System Events.app")
launch
set quit delay to 0
end tell
end using terms from
-- Set preferred sound volume.
set volume output volume 35 input volume 50 alert volume 100 without output muted
-- Make sure the User Library folder's not hidden.
do shell script ("chflags nohidden " & quoted form of POSIX path of (path to library folder from user domain))
end main
main()
Thanks Nigel - Agree, with only 1 input your solution is more simple.
Question - I’ve tried to export my solution as an application and run into “Access Errors” where High Seirra refuses access to the sound levels from the app with out me having to manually override with an Admin approval.
If you are logging in as a user, NOT ADMIN - are you able to get the app to work on start up? Am I missing a step?
I’ve cleaned up the script a bit, there are a few seemingly unrelated “clicks” - but have found those steps are required in order to access the REAL mic input level and not just the “fake” one Apple wants you to believe…
tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.keyboard"
reveal anchor "Dictation" of pane id "com.apple.preference.Keyboard"
delay 0.8 ## Delay required for GUI to load other wise Index Error
set current pane to pane "com.apple.preference.sound"
reveal anchor "Output" of pane id "com.apple.preference.sound"
delay 0.8 ## Delay required for GUI to load other wise Index Error
tell application "System Events" to tell process "System Preferences"
tell tab group 1 of window "Sound" to click radio button "Input"
set focus to tab group 1 of window "Sound"
## Internal Input
tell table 1 of scroll area 1 of tab group 1 of window "Sound"
select (row 1 where value of text field 1 is "Internal Microphone")
end tell
tell tab group 1 of window "Sound"
set value of slider 1 of group 2 to 0.5
delay 0.1
set value of slider 1 of group 2 to 0
end tell
## USB INPUT - Thunderbolt Display
tell table 1 of scroll area 1 of tab group 1 of window "Sound"
select (row 1 where value of text field 1 is "Display Audio")
end tell
tell tab group 1 of window "Sound"
set value of slider 1 of group 2 to 0.5
delay 0.1
set value of slider 1 of group 2 to 0
end tell
end tell
##quit
end tell