KeySticker — панель сочетаний клавиш для macOS
Плавающая панель для Mac, которая показывает сочетания клавиш того приложения, которым вы пользуетесь, на одиннадцати языках.

KeySticker — небольшая утилита для Mac: одна горячая клавиша открывает плавающую панель с сочетаниями клавиш того приложения, которое перед вами. Я проектирую и пишу её один с 2024 года.
KeySticker — утилита для Mac, которая помнит сочетания клавиш за вас. Нажмите одну горячую клавишу, и появляется плавающая стеклянная панель с сочетаниями клавиш того приложения, которым вы пользуетесь: переключились в Figma — она показывает Figma. В комплекте около 2 790 сочетаний для 75 приложений, она говорит на одиннадцати языках и сделана без единой сторонней библиотеки.
- Роль
- Один — дизайн и код
- Сроки
- 2024 — по настоящее время
- Стек
- Swift 5.9 · AppKit (lifecycle) · SwiftUI (UI) · Carbon (hotkeys) · Combine · Supabase PostgREST · XcodeGen · Fastlane · XCTest · MetricKit



Замысел
Плавающая панель, которая помнит сочетание, которое вы забыли.
Проблема.
В любом серьёзном приложении для Mac сотни сочетаний клавиш. Никто не помнит сотню. Два варианта — копаться в меню или переключаться на сайт-шпаргалку — оба отрывают от того, чем вы занимались. Справочник полезен, только если он уже на экране.
Продукт.
KeySticker — плавающая панель, которая показывает сочетания клавиш того приложения, которым вы пользуетесь прямо сейчас. Переключились на Xcode — получили Xcode. Переключились на Figma — получили Figma. Одна горячая клавиша показывает или скрывает панель, клик по любой строке копирует сочетание, а искать можно всё по названию: встроено 75 приложений и около 2 790 сочетаний, и есть место для новых.
Нативно, намеренно
Чистые технологии Apple, ноль сторонних библиотек.
Сделано классическим способом.
Приложение целиком написано на собственных инструментах Apple — ни одной строки стороннего кода. Это сделано намеренно: сторонние библиотеки склонны ломаться при обновлении системы, а детали от Apple — нет. Даже подключение к облаку — это обычная системная работа с сетью.
Стеклянная панель, слой за слоем.
- Настоящее системное размытие — Эффект матового стекла — это собственный материал системы, а не картинка с размытием.
- Мягкая тёмная тонировка — Поверх размытия лежит лёгкий тёмный слой, чтобы текст оставался читаемым на любом фоне.
- По-настоящему прозрачная — Небольшой собственный слой убирает все сплошные фоны, которые пытается добавить интерфейс, и стекло просвечивает чисто.
- Никогда не отнимает фокус — Панель плавает над вашей работой, следует за вами по рабочим столам и никогда не забирает клавиатуру у приложения, которым вы пользуетесь.
Содержимое
Три источника сочетаний, одна полка.
Сочетания — это данные, а не код.
Приложению всё равно, откуда взялось сочетание. В комплекте идёт встроенная база примерно из 2 790 записей, она может обновляться из облака в фоне и принимает наборы сочетаний, которые вы импортируете сами. Все три источника попадают на одну полку.
Сначала офлайн, в четыре шага.
- Мгновенный старт — Приложение открывается со встроенной базой. При первом запуске интернет не нужен.
- Чтение сохранённой копии — Если предыдущее обновление из облака сохранено на диске, оно загружается следующим.
- Тихое обновление — В фоне приложение проверяет облако на новые сочетания и сохраняет их. Если не получилось, ничего не ломается — остаются текущие данные.
- Ваши наборы — Импортированные файлы с сочетаниями безопасно запоминаются между запусками, как этого требует песочница безопасности Mac.
Контекст
Панель знает, в каком вы приложении.
Она следит за приложением на переднем плане.
Крошечный наблюдатель замечает каждое переключение приложений, находит сочетания клавиш этого приложения и перерисовывает панель на месте — без вспышки и перезагрузки. Переход из Xcode в Figma просто меняет содержимое.
Настоящие значки приложений.
Каждая категория показывает настоящий значок приложения, если оно установлено на вашем Mac, а если нет — аккуратный запасной символ.
Ваши сочетания
Создавайте свои — заметки или настоящие горячие клавиши.
Два вида своих сочетаний.
Кнопка «+» открывает небольшой редактор. Своё сочетание может быть карточкой-напоминанием, просто тем, что вы хотите запомнить, или настоящей системной горячей клавишей, которая что-то делает в момент нажатия.
Четыре действия, все безопасные для App Store.
- Открыть приложение — Одна комбинация клавиш запускает любое выбранное вами приложение.
- Открыть ссылку — Открывает браузер по умолчанию с сохранённым адресом.
- Запустить Apple Shortcut — Любая автоматизация, которую вы собрали в приложении Apple «Команды», запускается одной горячей клавишей.
- Скопировать текст — Кладёт ваш сохранённый текст в буфер обмена, готовый для вставки куда угодно.
Одна аккуратная деталь.
Горячие клавиши регистрируются в системе Mac на уровне всей системы, поэтому работают в любом приложении. А само приложение вежливо не даёт занять комбинацию, которая нужна ему самому, — ту, что открывает панель.
Одиннадцать языков
Переведено, зеркально отражено и переключается на месте.
Никакого жёстко заданного текста.
Каждая надпись в приложении берётся из каталога переводов на одиннадцать языков, включая арабский, иврит и урду, для которых весь интерфейс автоматически зеркально отражается справа налево. Смена языка обновляет приложение мгновенно, без перезапуска.
Что остаётся на месте.
Символы клавиш (⌘ ⇧ ⌥ ⌃) и названия приложений вроде Finder, Safari и Xcode на всех языках остаются английскими, потому что так их выпускает Apple.
Сборка
Один файл описывает весь проект.
Один источник истины.
Вся настройка сборки — номера версий, данные подписи, каждая часть проекта — лежит в одном файле настроек. Каждый инструмент конвейера читает один и тот же файл. Измените его один раз, и всё дальше подстроится.
Выпуск
Проверено, подписано и выпущено одним git-тегом.
От пуша до App Store.
- Более 85 автоматических тестов — Логика покрыта тестами с чистыми, заменяемыми частями, поэтому изменение не сломает функцию втихую.
- Настоящие запуски UI-тестов — Скриптовые запуски открывают приложение, показывают панель, ищут и даже измеряют, как быстро оно запускается.
- Встроенные отчёты о состоянии — Сбои и замедления у реальных пользователей автоматически появляются в панели разработчика Apple.
- Выпуск одним тегом — Отправьте тег версии, и конвейер сам соберёт, подпишет, нотаризует и загрузит приложение в App Store.
Следующий проект: DepoDart — Subsurface Intelligence