Изменение разрешения экрана для AppleTV (4×3 и прочая экзотика)
Saturday, November 24th, 2007Вчера купил яблотв. Подключил к монитору на кухне (sony 20”) и с радостью обнаружил, что формат 4х3 через DVI не поддерживается.
Найдя plist в котором сохраняется разрешение, я было обрадовался. Но после перезагрузки, увидел, что plist вернулся на место. А finder как бы и не смотрит на этот plist - устанавливает разрешение на свое усмотрение (16×9).
Немного покопавшись в инете, нашел решение : программа displaytool, которая может изменять разрешение в рантайме. Для изменения предлагается следующий сценарий :
найти finder.app, послать ему kill -9, вызвать Displaytool, пока Finder перезапускается.
Очень оригинально, однако работает.
Решил прописать этот хак в стартап-скрипты. Но не тут-то было. НИ В ОДНОМ СКРИПТЕ ОН НЕ РАБОТАЕТ.
перепробовал :
rc, rc.local, System/Library/StartupItems
проблема в том, что для поиска Finder используется конструкция : ps aux | grep “Finder” | grep -v “grep” | awk ‘{print $4}’
Вроде ничего криминального. НО grep и awk отказываются работать из инит-скриптов. Промучавшись целый день с этим, обнаружил perl.
За сим написал красивый и эффективный скрипт для установки разрешения.
Скрипт при работе, в качестве побочного эффекта, ускоряет загрузку яблотв - он прибивает файндер первый раз когда он крутит дурацкий яблоспам с теле-стеной.
Если кто еще испытывает потребность в установке нестандартного разрешения на яблотв - качайте.
screenrestar.gz
2 ньюанса.
1) Установите правильные права на каталог и файлы, в соответствии с требованиями к установке StartupItems
2) у Watchdog есть особенность - если файндер умер слишком быстро (меньше секунды), то он может не перезапустить его. Если у вас при загрузке машины в течении долгого времени только яблоко и нет UI, то увеличьте паузу между вызовами killfinder.


