1 May 2009

Автоматизируем переключение звука на хакинтоше

Lumber room
У маков есть особенность, логичная и осмысленная на родном железе, но раздражающая при использовании нестандартных конфигураций: звук идет или в колонки или в наушники.
Разъем 3.5 только один: воткнул наушники — смолкли колонки, выдернул — звук вернулся.
Это правильно и удобно. Если только системник не стоит под столом и у звуковой карты не гораздо больше выходов.
Чтобы каждый раз не запускать вручную «Системные настройки» и копаться в них, я написал небольшой эппл-скрипт:

tell application "System Preferences"
activate
set current pane to pane "com.apple.preference.sound"
end tell

tell application "System Events"
tell application process "System Preferences"
tell tab group 1 of window "Звук"
click radio button "Выход"
if (selected of row 2 of table 1 of scroll area 1) then
set selected of row 1 of table 1 of scroll area 1 to true
else
set selected of row 2 of table 1 of scroll area 1 to true
end if
end tell
end tell
end tell

tell application "System Preferences" to quit


Готовый скрипт, упакованный в формате программы (удобно держать в доке) можно скачать здесь.

Вероятнее всего, выходы аудиокарты, к которым у вас подключены колонки и наушники, будут отличаться от моих.
Эту проблему легко решить так:
  1. Правой кнопкой мыши на иконке программы → Показать содержимое пакета
  2. Открыть файл Contents/Resources/Scripts/main.scrt
  3. Поменять строки «row 2» и «row 1» на те, которые нужны. (Можно открыть «Системные настройки» и посмотреть, в каких по счету строках находятся нужные пункты меню)
  4. Сохранить получившийся файл и начать пользоваться

настройка свитчера
Как видно из названий пунктов меню, он работает в русской локализации Леопарда. Если вы хотите его научить любому другому языку — перепишите слова «Звук» и «Выход» на те, что используются в локализации.

Штука примитивная, но неплохо экономит нервы и время.
Tags:mac os ххакинтошзвукappleleopardapplescript
Hubs: Lumber room
+4
548 6
Comments 5
Popular right now
Vue.js Frontend разработчик (Middle)
from 80,000 to 130,000 ₽Teleport LtdRemote job
Java разработчик (regular/senior)
from 130,000 to 220,000 ₽i-SysСамараRemote job
PHP-разработчик (backend-программист)
from 51,200 to 102,400 ₽CARDPRЕкатеринбургRemote job