May. 7th, 2017

smugastyi_kit: (Default)
Меня очень напрягало, что начиная с OS X 10.6.8, терминал открывался иногда мгновенно, а иногда тормозил по 2-3 секунды.

Сегодня таки переборол лень и разобрался.

Терминал (любой, хоть Terminal.app, хоть iTerm) — по умолчанию инициируют сессию через /usr/bin/login, который в свою очередь вызывает /usr/libexec/path_helper.

path_helper это крохотная утилитка, которая на основе /etc/paths генерирует переменную PATH.
Казалось бы, тормозить там нечему, но оно все таки иногда (в среднем — один раз из десяти) тормозит. Я не стал дизассамблировать и разбираться, но у меня подозрение, что тормозит из за проверок SIP (System Integrity Protection), которое проверяет, а не хитрый ли сплоет запускается подпись.

В общем, проблема решается просто. В любимый терминал прописывается запуск не дефолтного системного login, а напрямую — сам шелл. /bin/zsh в моем случае.
Ну и PATH полностью прописывается в дотфайл шелла или .profile, если шелл умеет его подхватывать.

Притормаживания пропадают полностью.
Терминал с zsh (который, в свою очередь с zim), открывается за 0.07с.
smugastyi_kit: (Default)
С свежей OSX я обычно сразу делаю следующие вещи:
(пробовал убрать под кат, но он окончательно перестал работать)

Ставится homebrew
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Устанавливается karabiner-elements
$ brew cask install karabiner-elements

В karabiner-elements Caps-Lock переопределяется на F19, затем в Keyboard Preferences оси, переключение раскладок lat/rus/что_угодно переопределяется с cmd-space на F19. Теперь раскладки будут переключаться капс-локом.

Ищется шрифт Pragmata Pro. Лучше всего купить (он того стоит), но и гуглится он элементарно. При желании — сразу патчится для Powerline.

Устанавливается zsh (так как системный — не самый новый)
$ brew install zsh --without-etcdir
Для zsh ставится zim
$ git clone --recursive https://github.com/Eriner/zim.git ${ZDOTDIR:-${HOME}}/.zim
$ setopt EXTENDED_GLOB
for template_file ( ${ZDOTDIR:-${HOME}}/.zim/templates/* ); do
user_file="${ZDOTDIR:-${HOME}}/.${template_file:t}"
touch ${user_file}
( print -rn "$(<${template_file})$(<${user_file})" >! ${user_file} ) 2>/dev/null
done
$ chsh -s =zsh
Прописывается PATH в ~/.zshrc
(в моем случае) PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:.composer/vendor/bin/:/opt/X11/bin:/usr/local/share/dotnet" 
export PATH

Ставится iTerm2
$ brew cask install iterm2
В настройках сразу ставится шрифт Pragmata, с кеглем 24 и меняется инициатор сессии с login на /usr/local/bin/zsh

Ищется/Покупается Alfred 2
Первым делом, в Alfred Preferences вызов альфреда меняется с alt-space на cmd-f19 (f19 ведь уже переназначен на tab), затем делается Workflow для вызова/закрытия iTerm по cmd-` . (Triggers->Hotkey => Actions->Launch Apps / Files с галочкой Toggle Visibility for Apps).

Ищется/Покупается Sublime Text 3, но в свете того, что он стал притормаживать — я подумываю над тем, чтобы вернуться в Vim.

Это — самое необходимое (для меня). Потом, ставится Opera, IDEA, Lastpass, Evernote, Airmail, Google Disk и прочий прикладной stuff.