При работе с несколькими мониторами в Mac OS достаточно неудобно при переходе на другой монитор каждый раз кликать на окно для перемещения фокуса (Click to focus). Вероятно, люди, привыкшие к Mac OS X или Windows не задумывались о такой проблеме, но выходцы из классических Unix задаются этим вопросом. Рекомендую почитать интересную дискуссию “Settling the OS X focus-follows-mouse debate“.

В оконных менеджерах применяется три различных подхода:

  1. Click to focus. Фокус перемещается при клике мышью на окне. Фокус продолжает оставаться в активном окне при уходе с него указателя мыши. Применяется в “mainstream”-интерфейсах типа Mac OS и Windows. Одна из причин – это сделано для того, чтобы не озадачивать неподготовленного пользователя.
  2. Focus follows mouse. Фокус следует за указателем мыши. Применяется обычно в различных Unix/X Window. Я сталкивался с этим поведением как со стандартным от Irix (Silicon Graphics) до Ubuntu (правда в последний раз пришлось покопаться в настройках, чтобы изменить “Click to focus” на “Focus follows mouse”). Одно неудобство подхода – если указатель мыши уходит на desktop, то фокус теряется.
  3. 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