Набираешь ghbdtn, а имел в виду привет. Keytide ловит такое слово после пробела, исправляет его и переключает системную раскладку, чтобы дальше печаталось уже на нужном языке. Не понравилось исправление - одиночный Option возвращает слово и прежнюю раскладку.
Хотелось бесплатной открытой замены основным функциям KeyRay - без подписки и без лишнего. Так появился Keytide: нативное приложение в строке меню, лицензия MIT, исходники на GitHub.
Что умеет
- Исправляет неверную раскладку в обе стороны, от двух букв:
lf→да,руддщ→hello. Регистр сохраняется. - Понимает английские сокращения из русской раскладки:
дуеэы→let's. - Правит очевидные опечатки от трёх букв - и только когда исправление отличается на одну правку.
- Option отменяет последнее исправление, Control+D защищает слово от исправлений. Оба сочетания настраиваются.
- Защищённое слово работает и как цель: защитил
локи-kjrbстанетлоки. - Учится по желанию: после двух отмен одного слова перестаёт его трогать. Выученное видно в настройках, его можно забыть.
- Исключения приложений (по умолчанию терминалы и редакторы кода), пауза, автозапуск, экспорт и импорт профиля.
- Обновляется в один клик из меню, интерфейс на русском и английском.
Как устроен
Внутри - словарь RU/EN примерно на 1,5 млн словоформ в индексе на 1,4 МБ, всё остальное проверяет системный корректор macOS. Swift и AppKit, без сторонних зависимостей. Работает по событиям клавиатуры: пока ничего не печатаешь, он ничего не делает.
Для работы нужно разрешение «Универсальный доступ». В TextEdit, Safari, Chrome, Helium и Codex Keytide читает поле, сверяет слово с курсором и заменяет его проверяемой транзакцией. В остальных приложениях он помнит только набираемое слово (до 64 символов, сброс на каждом пробеле), после пробела стирает его и набирает исправленное. Enter исправление не запускает: сообщение уходит ровно как набрано.
Приватность
- Никакой истории текста, буфера обмена и телеметрии.
- Ничего не исправляется при защищённом вводе, в полях паролей, в исключённых приложениях и при выделенном тексте.
- В сеть ходит только за обновлениями: раз в сутки спрашивает у api.github.com последний релиз (отключается в настройках), а скачивает его только по кнопке «Обновить».
- Обновление ставится, только если и dmg, и приложение подписаны тем же сертификатом, что и установленная версия.
- Подробная диагностика включается только вручную и сама выключается через 30 минут. Она живёт в памяти и записывает лишь пронумерованные шаги решений: без набранного текста, без названий приложений (они идут как app1, app2) и без времени.
Установка
- Скачай dmg из Releases и перетащи Keytide в «Программы».
- Приложение не нотаризовано. Если macOS не даёт его открыть: Системные настройки > Конфиденциальность и безопасность > «Всё равно открыть».
- Там же, в разделе «Универсальный доступ», включи Keytide.
Дальше обновления приходят из меню и разрешение сохраняют.
