Убираем из дока иконки незапущенных приложений

Если вы любите минимализм, то вот вам один трюк, который позволяет отображать в доке только иконки запущенных приложений. Откройте терминал и выполните там команды:

defaults write com.apple.dock static-only -bool TRUE
killall Dock

Лично для меня это весьма удобно, т.к. для запуска программ я использую Spotlight, который открывается по нажатию Control-Пробел.

Для того, чтобы вернуть всё обратно нужны такие команды:

defaults write com.apple.dock static-only -bool FALSE
killall Dock

Как отключить уведомление об «упавшем» приложении

Для того, чтобы никогда не видеть окно, сообщающее о том, что какая-то программа завершилась некорректно с предложением отправить отчёт об этом знаменательном событии, нужно выполнить всего одну команду:

defaults write com.apple.CrashReporter DialogType none

После этого вероятно придётся перезагрузить компьютер. Глючные программы падать от этого конечно не перестанут, но и глаза «мозолиться» будут меньше.

Для того, чтобы вернуть всё как было, команда будет такой:

defaults write com.apple.CrashReporter DialogType prompt

Быстрое восстановление файлов из корзины

Для того, чтобы быстро восстановить файл из корзины, его нужно удалить ещё раз. Да, именно так. Выделить и нажать, например, Cmd-Delete. Это выглядит странновато, но логично, если вдуматься.

Как отключить выход ноутбука из сна при открытии крышки

Если ноутбук находится в режиме сна с закрытой крышкой и крышка открывается, ноутбук просыпается. Отключить такое поведение можно одной командой:

sudo pmset lidwake 0

Потребуется ввод пароля. Изменения вступают в силу немедленно. Вернуть всё обратно можно так:

sudo pmset lidwake 1

Посмотреть все параметры управления питанием можно следующей командой:

pmset -g profiles

С помощью этой же утилиты можно сделать много всего интересного. Например, для того, чтобы временно отключить переход ноутбука в режим сна, можно запустить в терминале команду `pmset noidle`. Ноутбук не заснёт до тех пор, пока вы не нажмете Control-C.

Остальные возможности можно изучить в документации: `man pmset`.

Фокус следует за мышью

Если выполнить такую команду:

defaults write com.apple.terminal FocusFollowsMouse -string YES

, то мы вернёмся в старые добрые времена XFree, xterm’а и олдскульных оконных менеджеров, когда фокус следовал за курсором мыши. Если открыть несколько окон терминала и переводить мышку от одного к другому, активным будет становиться то, над которым на данный момент курсор. Особой практической ценности это не несёт, но вспомнить молодость можно.

Да, для того, чтобы отменить такое поведение, нужна чуть видоизменённая команда:

defaults write com.apple.terminal FocusFollowsMouse -string NO

Естественно, что после этого Terminal.app нужно перезапустить.

Как узнать серийный номер компьютера из командной строки

Для того, чтобы узнать серийный номер компьютера из командной строки, нужно выполнить всего одну команду:

$ system_profiler |grep «r (system)»

Собственно, сама программа `system_profiler` выдаёт полную информацию по всему «железу», которое установлено в компьютере и является консольным аналогом System Profiler.app

Zsh и ошибки при обновлении

При обновлении системы до девелоперской сборки 10.7 zsh в консоли начал выдавать ошибку `_path_files:17: command not found: _have_glob_qual` при дополнении пути по клавише Tab.

Причина проблемы в том, что в 10.7 сменилась версия zsh с 4.3.9 на 4.3.11. Вероятно, сменился и формат служебных файлов, которые zsh создаёт во время работы. Для того, чтобы избавиться от ошибки, нужно удалить файл ~/.zcompdump и перезагрузить zsh.

iTunes входящие соединения

После покупки SSD-диска и переустановки системы, я заметил, что при первом после перезагрузки запуске iTunes всегда появляется окно с запросом на разрешение этой программе принимать входящие соединения.

![iTunes Incoming Connection](http://mactrick.com/wp-content/uploads/2011/04/itunes_incomin_connection.jpg)

Поразбиравшись в проблеме, я выяснил, что это происходит от того, что в бандл программы были внесены изменения. Из-за этого она не проходит проверку электронной подписи.

Проверить, подписана ли программа или нет можно такой командой в терминале:

codesign -vvv /Applications/iTunes.app/

При удачной проверке вывод будет таким:

/Applications/iTunes.app/: valid on disk
/Applications/iTunes.app/: satisfies its Designated Requirement

При неудачной примерно таким (могут отличаться имена файлов):

/Applications/iTunes.app/: a sealed resource is missing or invalid
/Applications/iTunes.app/Contents/Resources/English.lproj/AutofillSettings.nib/objects.xib: resource added
/Applications/iTunes.app/Contents/Resources/English.lproj/iTunesDJSettings.nib/objects.xib: resource added
/Applications/iTunes.app/Contents/Resources/English.lproj/MobilePhonePrefs.nib/objects.xib: resource added
/Applications/iTunes.app/Contents/Resources/English.lproj/MobilePhoneSetup.nib/objects.xib: resource added
/Applications/iTunes.app/Contents/Resources/English.lproj/UniversalAccess.nib/objects.xib: resource added

Как видно, в бандл добавились лишние файлы. Подозреваю, что изменение содержимого бандла произошло после какого-то из обновлений или после установки каких-то программ для айфона (сам-то я уж точно ничего не менял).

Для того, чтобы избавиться от надоедливого окошка можно пойти двумя путями. Первый — скачать с сайта Apple установочный файл и переустановить iTunes.

Второй сложнее. Можно удалить лишние файлы. Я написал простенький однострочный шелл-скрипт, который удаляет лишние файлы.

codesign -vvv /Applications/iTunes.app/ 2>/dev/null| awk ‘{print $1}’ | tr -d ‘:’ | xargs sudo rm

Для его работы понадобится ввести пароль. И обязательно сделайте резервную копию iTunes. Можно просто скопировать его из папки Applications.

Рапрос на разрешение соединений пропал после применения обоих способов.

Переходник Serial-USB и Mac OS X

По долгу службы мне иногда приходится настраивать сетевое оборудование используя его последовательный порт. Для этого я купил соответствующий переходник на базе чипа Profilic. Вот как заставить его работать под Mac OS X.

* [Скачайте](http://osx-pl2303.sourceforge.net/) и установите драйвер. Существует ещё и [официальная](http://www.prolific.com.tw/eng/downloads.asp?ID=31) версия драйверов, но говорят, что она сильно хуже. Сам я не проверял. После установки компьютер придётся перезагрузить.

* Для того, чтобы получить доступ к консоли настраиваемого оборудования, я использую программу screen. Устанавливать её не нужно, она уже есть в операционной системе.

* Перед тем, как запускать screen, нужно выяснить, какой файл устройства отвечает за переходник. Сделать это можно командой `ls /dev/*tty*`. В её выводе будет что-то наподобие `/dev/tty.PL2303-00001004`.

* Теперь можно запустить screen.

screen /dev/tty.PL2303-00001004

Для того, чтобы задать скорость порта, её можно указать вторым аргументом при запуске:

screen /dev/tty.PL2303-00001004 9600