Написал приложение, которое добавляет в macOS две функции:

  1. Открытие приложений сочетанием клавиш, например ⌥-1 для Chrome, ⌥-2 для Slack;

  2. Открытие проектов сочетанием клавиш, например ⌥-3 откроет Option1.xcodeproj в Xcode. Работает с любым приложением.

В статье покажу принцип работы и возможности macOS о которых вы могли не знать.

Текст и код подготовлены без использования технологий искусственного интеллекта.


Исходный код — https://github.com/Medvedev91/Option1

В чем проблема?

Я работаю над несколькими проектами. Когда открыто 3 проекта VS Code или несколько окон Finder, то переключаться между окнами одного приложения крайне неудобно.

Год назад начал разработку идеального для себя способа работать с окнами. В итоге, кроме переключения между окнами, реализовал ряд других функций.

Текущая версия покрывает все мои потребности. Пора это отпускать в народ. Подготовил интерфейс, написал документацию, держите!

Ниже делюсь своим опытом от простого к сложному. Не нужно ничему переучиваться, смотрите на это как на дополнительные возможности macOS.

1. Встроенный ⌘‑Tab

Для переключения между окнами чаще всего использую встроенный ⌘-Tab. Ничего нового, все как обычно.

2. Сочетания клавиш для часто используемых приложений

Для открытия приложений которые использую чаще всего, например веб‑браузер или мессенджер я задаю сочетания клавиш. Например, так:

⌥-1 для Chrome, ⌥-2 для Slack
⌥-1 для Chrome, ⌥-2 для Slack

Если приложение закрыто — оно откроется, иначе просто получит фокус.

3. Сочетания клавиш для проектов, файлов, сайтов...

Для меня это главная функция!

Пример: как разработчик Option1, я часто открываю проект Option1.xcodeproj в Xcode. Вот что я сделал:

⌥-8 откроет Option1.xcodeproj в Xcode
⌥-8 откроет Option1.xcodeproj в Xcode

Теперь я не думаю, открыт проект или нет. Я просто нажимаю ⌥-8. Если проект закрыт — он откроется, иначе просто получит фокус.

Особенно удобно когда открыто несколько Xcode проектов. Ибо встроенный ⌘-Tab переключает приложения, а не проекты или окна.

Работает с любым приложением. Несколько примеров:

Примеры открытия проектов, папок, файлов или сайтов в разных приложениях
Примеры открытия проектов, папок, файлов или сайтов в разных приложениях

Прошу заметить, ⌥-0 не только открывает Google Chrome как ⌥-1, но еще в новой вкладке открывает habr.com.

4. Полноэкранный режим

Теперь, когда есть быстрый доступ к окнам и проектам, многие окна открываю в полноэкранном режиме. Особенно актуально в профессиональном ПО.

Дополнительно, в полноэкранном режиме настроил скрытие строки меню (Menu Bar):

Системные настройки для скрытия строки меню
Системные настройки для скрытия строки меню

5. Рабочие столы и «Assign To This Desktop»

Был удивлен узнав что в macOS есть такая функция. Отлично сочетается с моей программой!

Пример: я использую отдельный рабочий стол для рабочих окон: Slack и Firefox — Desktop 2:

Desktop 2 - Рабочий стол для рабочих окон
Desktop 2 — Рабочий стол для рабочих окон

Поскольку ⌥-2 открывает Slack, я еще хочу чтобы он всегда открывался на втором рабочем столе. Для этого перехожу на второй рабочий стол (Desktop 2) и делаю это:

Закрепить приложение на рабочем столе
Закрепить приложение на рабочем столе

Теперь я не думаю открыт Slack или нет. Я просто нажимаю ⌥-2. Я всегда буду перемещен на второй рабочий стол где Slack будет запущен и получит фокус.

Поскольку у меня заданы комбинации для всех часто используемых приложений, я предпочитаю скрывать Dock:

Системные настройки для автоматического скрытия Dock
Системные настройки для автоматического скрытия Dock

6. Рабочие пространства

Я работаю над двумя проектами: Option1 и timeto.me. Я не хочу задавать разные сочетания клавиш для разных проектов, я хочу чтобы ⌥-8 всегда открывал проект над которым сейчас работаю.

Для этого создал два рабочих пространства (workspaces): Option1 и timeto.me:

Рабочие пространства для разных проектов
Рабочие пространства для разных проектов

Обратите внимание, что ⌥-1 и ⌥-2 из Shared по‑прежнему работают!

Для смены рабочих пространств использую строку меню:

Смена рабочих пространств из строки меню
Смена рабочих пространств из строки меню

One more thing. ⌥‑Tab.

Удобно для переключения между окнами одного приложения так как встроенный ⌘-Tab переключает приложения, а не окна или проекты.

Пример ⌥-Tab
Пример ⌥-Tab

Дополнительные возможности ⌥-Tab:

  • Закрепленные приложения вверху списка;

  • Двойное нажатие Option отображает список окон. Удобно для просмотра уведомлений приложений;

  • ⌥-` и ⌘-` «прыгает» только по приложениям с уведомлениями;

  • Сортировка окон по приложению, истории или специальный JK‑режим;

  • Вдохновленный Vim‑ом JK‑режим это комбинация сортировок по приложению и истории. При нажатии ⌥-Tab — по приложению, ⌥-J — по истории;

  • ⌥-(A-Z) для окон. Для каждого окна автоматически задается комбинация клавиш. Например на снимке выше для Recent задан ⌥-R. ВНИМАНИЕ Если вы используете эти комбинации в других приложения — отключите это в настройках;

  • Избранное (Favourites).

Честно говоря, я нечасто использую ⌥-Tab, но иногда это просто незаменимо.

Post Scriptum

Создавая приложение я фокусировался на функциях которых мне не хватало. Это не замена, а дополнение к встроенным возможностям macOS:

  • поддержка нескольких дисплеев,

  • поддержка встроенных рабочих столов macOS,

  • поддержка полноэкранного режима.

Готов добавлять функционал по вашему заказу.

Исходный код — https://github.com/Medvedev91/Option1, веб‑сайт — https://option1.io.

Благодарен за ваши звезды на GitHub ;)

Комментарии (5)


  1. achekalin
    28.10.2026 22:23

    Как быть со вкладками. В одной вкладке браузера один сайт, во второй - другой. Если работать часть с ними двумя, хотелось бы всегда иметь комбинацию их открыть - сайты или вкладки, но с сайтами.

    И... под brew нет?


  1. Greenback
    28.10.2026 22:23

    Это замечательно!

    Я делал то же самое с помощью скриптов Autohotkey, но это было лет пятнадцать назад, когда я ещё пользовался Windows.

    В итоге отказался от явной привязки проектов/окон к сочетаниям клавиш. Намного гибче оказался такой подход:

    • Передо мной открыто некое окно (терминал, редактор, браузер, etc)

    • Нажимаю Win+Shift+<буква> и таким образом происходит привязка сочетания Win+<буква> к данному конкретному окну, даже если это окно внутри приложения (работало не везде).

    • То есть чтобы, скажем, привязать Win+S к терминалу, я нажимал Win+Shift+S

    Между перезагрузками компа настройка не сохранялось, но я не страдал. Перегружаю комп редко, а привязать было быстро. Пользовался этим несколько лет, полный восторг. Никакого UI для настройки не нужно было в принципе.

    Осталось мечтой сделать следующее: не одновременное нажатие, а последовательное: чтобы можно было нажать Win (или Cmd) и тут же отпустить, и после этого было бы 1-2 секунды на нажатие собственно горячей клавиши. При этом экран мог бы визуально подсказать что находится в режиме ожидания горячей клавиши, моргнуть как-то в уголке.

    Это избавило бы от конфликтов с существующими сочетаниями, и к тому же последовательно давить кнопки удобнее чем одновременно.


    1. Medvedev91 Автор
      28.10.2026 22:23

      Нажимаю Win+Shift+<буква> и таким образом происходит привязка сочетания Win+<буква> к данному конкретному окну

      Изначальная задумка и первая версия были точно такими, но меня не устраивало:

      • после закрытия приложения привязка переставала существовать,

      • после перезагрузки ОС привязка переставала существовать.

      Т.е. не было эффекта что я не думая нажимаю комбинацию и попадаю куда нужно. В итоге пришел куда пришел. Но если вам так удобнее, можете попробовать первые версии на странице релизов.


  1. AppCrafter
    28.10.2026 22:23

    One more thing. ⌥‑Tab.

    Удобно для переключения между окнами одного приложения так как встроенный ⌘-Tab переключает приложения, а не окна или проекты.

    Возможно вы не обратили внимание, что есть ещё Comand + ~, который переключает как раз между окнами одного приложения.


    1. Medvedev91 Автор
      28.10.2026 22:23

      Да, но Command ~:

      • работает только в рамках одного рабочего стола,

      • не дает возможности посмотреть список всех окон и выбрать нужный. Т.е. чтобы найти нужное окно я должен нажать Cmd ~, понять оно или нет, нажать снова и т.д. В некоторых случаях, конечно, например с двумя окнами на одном рабочем столе, этого хватает.

      Если что, то в настройках моей программы Option-Tab можно отключить.

      который переключает как раз между окнами одного приложения.

      Есть еще вариант: ПКМ по приложению в Dock, там будет список всех окон на всех рабочих столах.