Переключатель раскладки RU/EN
Набрали ghbdtn вместо «привет» — программа сама заменит слово и переключит раскладку. Работает в фоне, живёт в трее, не обращается к сети.
- Windows
- Windows 11 (проверено)
- Один файл, установки нет
- Права администратора не нужны
- Без сети и без телеметрии
- Исходный язык: чистый C
Что она делает
Бывает, что печатаешь целое слово и только потом замечаешь, что раскладка была не та. Программа следит за набором, и когда слово закончено (пробел, Enter, знак препинания), решает: набрано оно в нужной раскладке или в чужой. Если в чужой — стирает слово, печатает правильное и переключает раскладку, так что дальше можно писать как обычно.
| Набрано | Получится | Почему | |
|---|---|---|---|
ghbdtn | → | привет | обычное слово на русской раскладке |
vfibyf | → | машина | обычное слово на русской раскладке |
руддщ | → | hello | английское слово на русской раскладке |
УЫЗ32 | → | ESP32 | термин из технического словаря, цифры входят в слово |
hello | → | hello | слово набрано верно, ничего не меняется |
Как выглядит
Возможности
- Исправление «на лету». Слово заменяется, как только вы поставили пробел или знак, раскладка переключается сама.
- Нейросеть вместо правил. Две небольшие сети (для русского и для английского языка) оценивают, похожа ли строка на настоящее слово. Это работает и на словах, которых нет ни в каком словаре.
- Словари настоящих слов. По 50 000 самых частых слов русского и английского языков: частые слова не портятся ложными срабатываниями.
- Технический словарь. 334 термина из электроники, инженерии и программирования:
ESP32,esp8266,arduino,uart,mosfet,git,dockerи другие. Цифры внутри слова учитываются. - Учится на ваших исправлениях. Нажмите Backspace или Ctrl+Z сразу после замены — слово запомнится как исключение и больше не тронется.
- Значок в трее. Текущая раскладка, включение и выключение, автозапуск при входе в Windows, список исключений.
- Лёгкая и автономная. Один файл около 3 МБ, обычная программа без драйверов и служб, не требует прав администратора.
- Без сети. В программе нет сетевого кода, никакие данные никуда не отправляются.
Как это работает
Программа ставит в Windows обычный перехват клавиатуры и копит слово: для каждой клавиши запоминается, какой символ она дала в текущей раскладке и какой дала бы в другой. Когда слово закончено, решение принимается в таком порядке:
- Исключения. Слово в вашем списке исключений — не трогаем.
- Настоящее слово своей раскладки. Слово из трёх и более букв есть в словаре языка текущей раскладки — не трогаем.
- Перевод есть в словаре. То же нажатие в другой раскладке даёт слово из словаря другого языка, и нейросеть не против — заменяем.
- Технический словарь. Перевод — известный термин (от двух символов) — заменяем.
- Нейросеть. Если перевод правдоподобнее исходного слова заметно (порог в одну единицу логарифма правдоподобия), заменяем.
Нейросеть
Это два небольших многослойных перцептрона (по одному на язык): на входе первые 20 букв слова в «горячем» кодировании, два скрытых слоя на 128 и 32 нейрона, на выходе — оценка «это слово языка». Обучались на частотных списках слов и на «трудных» примерах: слова другого языка, переведённые через раскладку, и случайные строки. Прямой проход встроен прямо в программу на C, внешних библиотек машинного обучения нет.
Замена без искажений
Если стереть слово и напечатать новое, пока пробел ещё физически нажат, Windows склеивает ввод с пробелом и получается мусор вроде «лkgтттттт». Поэтому программа задерживает клавишу-разделитель, ждёт её отпускания (не дольше секунды), печатает слово и переключает раскладку, и только потом отдаёт разделитель приложению.
Установка и использование
- Скачайте ZIP (или только exe) и распакуйте в любую постоянную папку, например
C:\Tools\LayoutSwitcher. - Запустите
LayoutSwitcher.exeдвойным щелчком. Окна нет — рядом с часами появится значок (он может быть под стрелкой «^»; его можно перетащить на панель). - Печатайте как обычно. Правый или левый клик по значку открывает меню.
- Чтобы программа стартовала вместе с Windows, включите «Запускать при входе в Windows». Путь к файлу запоминается, поэтому после этого не переносите exe в другую папку.
Требуются стандартные раскладки: «Русская» и «Английская (США)». Программа работает с этими двумя раскладками.
Если замена не нужна
Нажмите Backspace или Ctrl+Z сразу после замены (в пределах трёх следующих клавиш): исходное слово попадёт в список исключений. Список лежит в %APPDATA%\layout-switcher\exceptions.txt — это обычный текстовый файл в UTF-8, по одному слову в строке, в нижнем регистре. Его можно править вручную через пункт «Список исключений...». В списке помещается до 512 слов.
Удаление
Выберите «Выход» в меню значка и удалите файл. Если хотите убрать и следы в системе: значение LayoutSwitcher в разделе реестра HKCU\Software\Microsoft\Windows\CurrentVersion\Run (если включали автозапуск), раздел HKCU\Software\layout-switcher и папку %APPDATA%\layout-switcher.
Точность: цифры без прикрас
Проверяли на словах, которых не было ни в обучении, ни при подборе порога.
| Проверка | Слов | Слово в чужой раскладке исправлено | Слово в верной раскладке не тронуто |
|---|---|---|---|
| Офлайн, по 20 000 слов на язык, порог 1,0 | 40 000 | 98,4 % | 99,2 % |
| Офлайн, редкие слова (частотные ранги 50 000+), через реальный код программы | 10 000 | 97,4 % | 98,5 % |
| Вживую на Windows 11, частые слова, пауза после слова 0,8 с | 160 | 160 из 160 слов в итоговом тексте верные | |
| Вживую на Windows 11, редкие слова, быстрый набор (пауза 0,15 с) | 160 | 157 из 160 слов в итоговом тексте верные | |
Живая проверка шла в Блокноте на виртуальной машине: слова печатались нажатиями клавиш виртуальной клавиатуры, то есть программа видела обычный ввод. Это небольшая выборка (320 слов), её нельзя считать равной по точности офлайн-проверке на десятках тысяч слов.
Где программа ошибается
В живой проверке из 160 редких слов не справилась с тремя: два не исправлены (cfds на русской раскладке, аргх на английской) и одно исправлено зря (frf стало «ака»). Во всех трёх случаях слова редкие и без контекста неотличимы от настоящих слов другой раскладки. Сразу после лишней замены достаточно нажать Backspace — и слово больше не тронется.
Ограничения
- Поддерживаются только русская и английская (США) раскладки.
- Слова короче трёх букв не исправляются; исключение — термины из технического словаря (от двух символов).
- Слова длиннее 20 символов оцениваются по первым 20.
- Не работает там, где Windows не отдаёт ввод перехвату клавиатуры: например, в полях ввода пароля. В играх и приложениях, читающих ввод напрямую (Raw Input), поведение может отличаться.
- Обычная программа не получает ввод в окнах, запущенных от имени администратора (ограничение Windows). Проверялось только в обычных окнах.
- Замена выполняется вводом символов, как будто их напечатал пользователь; в некоторых терминалах и играх это может не сработать.
- Смена раскладки отправляется окну асинхронно: если сразу после замены продолжить печатать очень быстро, первые символы могут уйти в прежнюю раскладку.
- Точка, запятая и другие знаки, стоящие на месте русских букв (ж, э, х, ъ, б, ю), участвуют в слове как буквы.
Проверялось на Windows 11. На Windows 10 версии 1607 и новее программа должна работать (используются только документированные функции этой версии), но отдельно это не проверялось.
Приватность
Программа перехватывает нажатия клавиш — иначе она не смогла бы работать, — поэтому честно о том, что она делает с данными:
- Текущее слово хранится только в оперативной памяти и сбрасывается при каждом знаке, горячей клавише и щелчке мышью.
- На диск попадают только слова, которые вы сами отметили как исключения (Backspace или Ctrl+Z после замены), и настройки (включено ли, автозапуск).
- Сетевого кода в программе нет: она подключает только системные библиотеки Windows (user32, gdi32, shell32, advapi32, kernel32).
- Файл исключений содержит слова, которые вы набирали, — не публикуйте его и не пересылайте.
Вопросы и ответы
Windows пишет «Система Windows защитила ваш компьютер» (SmartScreen)
Файл не подписан цифровой подписью издателя, поэтому SmartScreen показывает предупреждение при первом запуске. Сверьте контрольную сумму файла с таблицей ниже, затем нажмите «Подробнее» → «Выполнить в любом случае».
Антивирус ругается на файл
Программа ставит глобальный перехват клавиатуры, а такой механизм используют и вредоносные программы, поэтому эвристики некоторых антивирусов могут срабатывать на любой подобный файл. Сверьте контрольную сумму; при необходимости добавьте файл в исключения антивируса.
Значка в трее не видно
Windows может прятать новые значки под стрелкой «^» рядом с часами. Откройте её и перетащите значок на панель, либо включите его в Параметры → Персонализация → Панель задач → Другие значки панели задач.
Слово заменилось, а мне нужно было исходное
Сразу нажмите Backspace или Ctrl+Z (в пределах трёх следующих клавиш) — слово запишется в исключения. Если нужно вернуть слово, но исключение не нужно, просто перепечатайте его, переключив раскладку вручную.
Слово не заменилось
Скорее всего, слово редкое или короткое: нейросеть и словари не уверены, что это слово другой раскладки, и программа не рискует. Такие случаи есть и в проверке на точность выше. Слова короче трёх букв не исправляются, кроме терминов из технического словаря.
Как отключить программу ненадолго
Уберите галочку «Включено» в меню значка. Состояние запоминается и сохраняется между запусками.
Можно запустить две копии?
Нет, запускается один экземпляр. Повторный запуск покажет сообщение, что программа уже работает.
История версий
1.0 — 2 ноября 2026
- Первая публичная версия: приложение с иконкой в трее, без консольного окна.
- Исправление слов в неверной раскладке нейросетью, словарями настоящих слов и техническим словарём.
- Список исключений, который пополняется Backspace или Ctrl+Z после замены.
- Меню: включение, автозапуск, список исключений, о программе, выход; один экземпляр.
Контрольные суммы
SHA-256 файлов. Проверить в PowerShell: Get-FileHash .\имя_файла, в Linux: sha256sum имя_файла.
| Файл | Размер | SHA-256 |
|---|---|---|
| LayoutSwitcher-1.0.zip | 1 131 354 байт | 95fc5df3cacfbefc7b910a08c4185ace90dfe22cd70e2d3cb33e2656f4cb2add |
| LayoutSwitcher.exe | 3 032 458 байт | 866ed110ba5e745cb611f299d7cfd779e12c2501b26c4e58f21935ab1831c69c |