За компьютером я сижу в наушниках. Наушники подключены к внешней звуковой карте "Sound Blaster Omni" и в этом конфиге громкость наушников в 20% является достаточной, а громкость выше 40% процентов уже слишком громкой.
Изначально я решил этот вопрос простым скриптом login.sh
который выполняется при входе в систему:
#!/bin/bash
osascript -e 'set volume 1'
При входе звук сбрасывается в минимальное значение, а его делаю громче когда мне нужно. Жил я с такой системой много лет, пока не начал использвать iPad в качестве второго монитора. Для подключения iPad у меня стоит программа Duet и либо с ней проблемы, либо с системой из-за переодического подключения/отключения мониторов, но, временами, громкость звука стала подниматься до 90%-100%.
90% громкость в моей системе это можно наушники бросить под стол и прекрасно слышать все происходящее, абсолютно без проблем.
Так вот, дабы не оглохнуть раньше времени, пришлось добавить "бота" в систему который каждые несколько секунд проверяет громкость звука и если она выше положенной, то возвращает её на допустимый уровень.
~/Library/LaunchAgents/com.local.volumelevel.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.local.volumelevel</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/osascript</string>
<string>-e</string>
<string>if (output volume of (get volume settings)) > 25 then set volume output volume 25</string>
</array>
<key>StartInterval</key>
<integer>10</integer>
</dict>
</plist>
Нативный обработчик Apple Script, запускается каждые 10 секунд и выполняет команду
if (output volume of (get volume settings)) > 25 then set volume output volume 25
Все. Теперь не оглохну.