Проблема
Работая в Leopard'e я столкнулся с тем, что состояние языка ввода едино для всех приложений. На первый взгляд это не большая проблема, но она буквально сводит с ума. Если вы работали в xCode в английской расскладке, а потом переключились в iChat и сменили язык на русский — каково же удивление, когда возвращаясь в xCode, язык ввода остается русским. В Windows состояние языка ввода хранится отдельно для каждого приложения и к этому уже сильно привык мой мозг. Ситуация плоха еще тем что в Tiger это можно было контролировать в настройках, а в Leopard такой возможности нет.
Решение проблемы
Загуглив я нашел, как частично решить такую несправедливость и в этом нам поможет InputSwitcher.
Установка InputSwitcher
InputSwitcher позволяет нам для большей части приложений сделать свое состояние языка ввода. Установка этого приложения немного не тривиальна, но не проблемна. Для этого нам необходимо выполнить такие шаги.
- Скачать и установить из образа приложение SIMBL, которое нам нужно для корректной работы InputSwitcher'а.
- Скачать InputSwitcher.
- Скопировать InputSwitcher.app в /Applications и InputSwitcherClient.bundle в ~/Library/Application Support/SIMBL/Plugins
- Теперь, что бы у каждого приложения было свое состояние языка ввода, необходимо запустить InputSwitcher.app и перезапустить все приложения
Как это работает
Тут все просто, InputSwitcher запоминает состояние ввода для всех приложений. Если переходите в другое приложение, то активируется его предыдущее состояние. Но при этом есть один недостаток, это работает только для Cocoa приложений, так что для некоторых приложений такой трюк не будет работать, например:
- Finder
- Firefox
- Thunderbird
- iTunes
Но апликуха не падает, просто используется глобальное состояние языка ввода.
Выводы
Проблема частично решена. Я использую данное решение уже больше недели и глюков не замечено. Но самое главное — это баг репорт в apple, потому что чем больше будет таких репортов, тем быстрее исправят такую багу. Сделать это можно bugreport.apple.com.
ps Блога про Mac Os X нет, по этому я его создал, так что всех welcome.