Что умеет RuSwitcher
Набрали ghbdtn вместо привет? Просто нажмите Option ⌥ - и RuSwitcher сконвертирует последнее слово в правильную раскладку, печатая его напрямую, без копипасты. Работает с любой парой установленных раскладок - русская, украинская, белорусская, немецкая, французская и другие. Триггер настраивается (одна клавиша или комбо из двух), есть автоматическая конверсия по ходу набора, и всё это работает даже через Apple Screen Sharing.
Всё под рукой
Быстрые переключатели живут в меню в строке меню, остальное в окне настроек. Вкладки окна можно полистать.

Исправление раскладки
Умное определение слова
Конвертирует последнее набранное слово, включая знаки препинания.
ghbdtn,→привет,Выделенный текст
Выделите любой текст и нажмите триггер для конвертации на месте.
Ghbdtn vbh→Привет мирПовторное нажатие - отмена
Обратная конвертация, если передумали.
⌥ исправить⌥ ещё раз вернутьСмена регистра
Отдельный хоткей по кругу меняет регистр последнего слова, выделения или всей строки, как в Punto. По умолчанию выключен (Настройки → Основные).
привет→ПРИВЕТ→ПриветЛюбая пара раскладок
Настраивается любая пара из установленных в системе. Без захардкоженных таблиц.
Русская ⇄ ABCУкраїнська ⇄ ABCDeutsch ⇄ РусскаяИврит - справа налево (экспериментально)
Первая RTL-раскладка; конверсия в/из иврита с любой второй раскладкой. Авто-конверсия консервативна by design; ручной триггер работает в обе стороны.
akuo→שלום
Хоткеи и переключение
Настраиваемый триггер
Option, Command, Control или Shift (левый/правый, одиночный/двойной тап), либо комбо из двух клавиш вроде ⌘+⇧.
⌥⌥ ⌥⌘ + ⇧⌃ + ⇧Хоткей переключения раскладки
Отдельный хоткей только для смены раскладки (без конверсии), включая Ctrl+Shift и другие комбо модификаторов, недоступные системным настройкам; опции "только правая" и "двойной тап". По умолчанию выключен.
⌃ + ⇧⇧ ⇧Переключение раскладки из меню
Выберите любую установленную раскладку прямо в меню-баре (флаг, имя, галочка на текущей) и кликните для переключения.
🇷🇺 Русская ✓🇺🇸 ABCПамять раскладки по приложению
Запоминает активную раскладку для каждой программы и восстанавливает при возврате.
Telegram: RUXcode: EN
Автоматика
Автоматическая конверсия (бета)
Опционально исправляет раскладку по ходу набора, с проверкой по системному словарю. По умолчанию выключено.
ghbdtn␣→привет␣Списки исключений
Список приложений плюс словари never-convert и always-convert.
Терминал1PasswordiPhoneРежим удалённого стола (бета)
Исправление раскладки через Apple Screen Sharing, на управляемой машине.
Screen Sharing
Вид и звук
Флаг у курсора (бета)
Ненадолго показывает флаг раскладки у текстового курсора сразу после переключения.
🇷🇺 у курсораЗвук раскладки (опционально)
Короткий звук на первой букве после смены раскладки, чтобы на слух понимать раскладку.
♪ первая буква после сменыМонохромная иконка в меню-баре (опционально)
Системная плашка
РУENРУ/ENвместо цветного флага, сама подстраивается под светлую/тёмную тему. По умолчанию выключена.16 языков интерфейса
English, Русский, Українська, Беларуская, Deutsch, Français, Español, Português, Polski, 中文, 日本語, 한국어, Ελληνικά, Български, Հայերեն, ქართული.
РусскийEnglishDeutsch日本語+12
Под капотом
Без буфера обмена
Конвертированное слово печатается напрямую через синтез Unicode, поэтому работает даже в Electron / VS Code / Atom. Буфер обмена не трогается (только как запасной вариант для нестандартных приложений).
без ⌘C и ⌘VБез телеметрии
Ваши нажатия остаются на вашем Mac.
в сеть только за обновлениямиМинимальное потребление
Без Electron и веб-вьюх, чистый Swift + AppKit.
1,3 МБUniversal-сборка
Нативно на Apple Silicon и Intel.
Apple SiliconIntelАвтозапуск при входе
Настроил и забыл.
Как это устроено
CGEventTap(пассивный, только чтение) для мониторинга клавиатуры.UCKeyTranslate(Carbon) для динамического маппинга символов между любой парой раскладок.CGEvent.keyboardSetUnicodeStringдля прямой печати конвертированного текста - без буфера обмена и побочных эффектов с pasteboard.- Маркер
CGEventSource.userDataдля фильтрации собственных симулированных событий. AXUIElementAPI для определения сфокусированного элемента.SMAppServiceдля управления автозапуском.- Без захардкоженных таблиц - работает с любыми установленными раскладками.