Проблема

Сценарий знаком каждому: вы печатаете длинное сообщение, поднимаете глаза на экран, а там — ghbdtn, rfr ltkf&. Стандартное решение — удалить, переключить раскладку, напечатать заново. Продвинутое решение — использовать Punto Switcher или аналоги. Но у них есть минусы:

  1. Ложные срабатывания. (Исправляют код, пароли или специфические термины).

  2. Избыточность. Мне не нужен комбайн с дневником и звуками печатной машинки.

  3. Проблема мульти-язычности. Обычно это работает как триггер RU↔EN. А если у меня стоит еще, например, и Немецкий?

Я хотел инструмент, который работает постфактум и только по моему приказу. Выделил кракозябры → нажал Ctrl+Home → получил текст.

Реализация на AutoHotkey v2

Почему AHK? Это нативный для Windows инструмент автоматизации, который идеально работает с хуками клавиатуры и WinAPI. Версия v2 была выбрана как более современная и строгая.

Логика работы

  1. Захват. По хоткею скрипт отправляет Ctrl+C.

  2. Определение. Смотрим на символы в выделенном тексте.

  3. Конвертация. Скрипт берет текущую раскладку текста и переводит символы в «следующую» по списку активных в системе раскладок.

  4. Вставка. Отправляет Ctrl+V.

Главная фишка: Циклическая смена раскладок

Самое интересное — это работа с массивом языков. Программа сканирует установленные в системе раскладки (через реестр и API), фильтрует ненужные (эргономические) и позволяет пользователю в настройках выбрать активные.

Если вы выделили текст Rjvwth, программа понимает: «Ага, это похоже на QWERTY». Следующая по списку у нас ЙЦУКЕН. Меняем символы по маппингу клавиш.

Интерфейс

Я сторонник минимализма. Утилита висит в трее.

  • Иконка: показывает статус (включено/выключено).

  • Меню: настройки и выход.

  • Окно настроек: Простой GUI, где можно задать хоткей (по умолчанию Ctrl+Home) и выбрать галочками языки, которые будут участвовать в “карусели” исправлений.

Окно настроек
Окно настроек

Что в итоге?

Получилась Fliper — утилита весом в пару мегабайт (в скомпилированном виде), которая не следит за вашим вводом постоянно, а включается в работу только когда вы сами этого захотите. А, да, и ее не нужно устанавливать.

Фичи:

  • ✅ Не ломает буфер обмена (восстанавливает данные после вставки).

  • ✅ Поддерживает цепочки: EN → RU → DE → EN.

  • ✅ Автозагрузка и портативность.

  • ✅ Open Source.

Где скачать

Код открыт, можно забрать .ahk скрипт или готовый .exe. Буду рад фидбеку и пулл-реквестам, особенно если кто-то захочет добавить поддержку специфических раскладок.

https://github.com/beatlejute/Fliper

https://github.com/beatlejute/Fliper/releases