При работе с несколькими мониторами в Mac OS достаточно неудобно при переходе на другой монитор каждый раз кликать на окно для перемещения фокуса (Click to focus). Вероятно, люди, привыкшие к Mac OS X или Windows не задумывались о такой проблеме, но выходцы из классических Unix задаются этим вопросом. Рекомендую почитать интересную дискуссию ”Settling the OS X focus-follows-mouse debate”.
В оконных менеджерах применяется три различных подхода:
- Click to focus. Фокус перемещается при клике мышью на окне. Фокус продолжает оставаться в активном окне при уходе с него указателя мыши. Применяется в “mainstream”-интерфейсах типа Mac OS и Windows. Одна из причин - это сделано для того, чтобы не озадачивать неподготовленного пользователя.
- Focus follows mouse. Фокус следует за указателем мыши. Применяется обычно в различных Unix/X Window. Я сталкивался с этим поведением как со стандартным от Irix (Silicon Graphics) до Ubuntu (правда в последний раз пришлось покопаться в настройках, чтобы изменить “Click to focus” на “Focus follows mouse”). Одно неудобство подхода - если указатель мыши уходит на desktop, то фокус теряется.
- Sloppy focus. Это вариация “Focus follow mouse”, в ней фокус не уходит с окна, если указатель переместился на desktop, menubar или taskbar.
Задавшись вопросом найти удобное решение для изменения стандартного поведения Mac OS X, я нашёл несколько программ.
MondoMouse
MondoMouse (платная, стоит $14.95, есть 30-ти дневный триал) представляет собой панель настроек (prefPane), но пока работает в Snow Leopard только в 32-битном режиме.
MondoMouse позволяет при нажатии настраиваемых клавиатурных модификаторов:
- Перемещать окна при нажатии в любом месте окна (не только в menubar).
- Изменять размеры окна.
- И, что самое ценное, реализовывать “Focus follows mouse”.
Я включил только последнюю функцию и выставил нулевую задержку срабатывания. Теперь при нажатии Shift+Ctrl фокус следует за мышью.
Настройки программы:
Заметил несколько странностей:
- Почему-то не производится переключение фокуса при перемещение указателя мыши на область редактирования TextMate - нужно провести мышью поверх окна.
- Периодически MondoMouse перестаёт переключать фокус.
Эти странности можно списать на проблемы работы со Snow Leopard, поэтому стоит подождать обновление.
Zooom/2
Zooom/2 также платная, стоит $14.95, есть 30 дней триала.
Функции почти те же, что и у MondoMouse - перемещение, изменение размера и переход фокуса. Выглядит гораздо лучше, и работает, как отдельная программа с возможностью показа в Menubar и скрытия иконки в Dock.
На первый взгляд Zooom/2 и работает гораздо лучше, чем MondoMouse, и проблемы с переключением на TextMate нет. Настройки:
Программа мне понравилась, я с удовольствием удалил MondoMouse и сейчас пользуюсь Zooom/2. Особенность - если нажать модификатор, то для активизации окна нужно сдвинуть мышь, на неподвижной мыши окно не активизируется.
“Focus follows mouse” для Terminal.app и X11
Для включения “Focus follow mouse” только для окон Terminal.app можно изменить переменную:
defaults write com.apple.Terminal FocusFollowsMouse -string YES
а для программ X11:
defaults write com.apple.x11 wm_ffm true