При работе с несколькими мониторами в 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". </ul>

    Я включил только последнюю функцию и выставил нулевую задержку срабатывания. Теперь при нажатии 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