Skip to content

Repository files navigation

kblswitch

Keyboard Layout Switcher

kblswitch ⌨️

kblswitch — это сверхлегкая утилита для Windows, предназначенная для переключения раскладки клавиатуры одной клавишей с визуальным уведомлением (OSD).

Программа служит "мостом": она перехватывает нажатие удобной для вас клавиши (например, Right Alt) и эмулирует стандартную системную комбинацию (например, Ctrl+Shift), выводя при этом текущий язык ввода по центру экрана.


✨ Возможности

  • Переключение одной клавишей: Используйте любую клавишу (по умолчанию Правый Alt) вместо неудобных сочетаний.
  • Визуальное уведомление (OSD): Полупрозрачное окно в центре экрана показывает текущий язык (EN, RU и т.д.).
  • Исправление последнего слова с переключением раскладки: F8 исправляет RU→EN и переводит ввод на английский, F9 исправляет EN→RU и переводит ввод на русский.
  • Новый режим "Всегда на экране": Закрепите OSD-окно, чтобы оно всегда было видимо. Его можно перемещать по экрану, а его прозрачность настраивается. Управляется через меню в трее.
  • Современный вид: Поддержка скругленных углов окна (native rounding) для Windows 11.
  • Анимация: Плавное затухание (fade-out) уведомления.
  • Системный трей: Иконка в трее для быстрого доступа и выхода.
  • Полная настройка: Все параметры (клавиша, комбинация, цвет, режим OSD) хранятся в kblswitch.ini.
  • Минимализм: Написано на чистом C (WinAPI), потребляет минимум ресурсов, не требует установки.

🚀 Установка и использование

  1. Скачайте последний релиз или скомпилируйте программу самостоятельно.
  2. Разместите файл kblswitch.exe в любой удобной папке.
  3. (Опционально) Создайте файл kblswitch.ini рядом с программой для настройки (см. ниже).
  4. Запустите kblswitch.exe.
  5. Для автозагрузки просто добавьте ярлык программы в папку shell:startup.

⚙️ Настройка (kblswitch.ini)

При запуске программа ищет файл kblswitch.ini в текущей директории. Если файл отсутствует, используются настройки по умолчанию (Right Alt -> Ctrl+Shift).

Пример конфигурации:

[Settings]
; Код клавиши, которая будет переключать язык.
; 165 = VK_RMENU (Правый Alt)
; 91  = VK_LWIN (Левая Win)
; 20  = VK_CAPITAL (Caps Lock)
Key=165

; Горячие клавиши исправления последнего слова.
; 119 = VK_F8: исправить русские символы в английское слово и переключить ввод на EN (руддщ -> hello)
; 120 = VK_F9: исправить латинские символы в русское слово и переключить ввод на RU (ghbdtn -> привет)
; 0 отключает соответствующую функцию.
FixRuToEnKey=119
FixEnToRuKey=120

; Системная комбинация, настроенная в Windows для смены языка.
; Программа будет "нажимать" её за вас.
; Возможные значения: Ctrl, Shift, Alt (можно комбинировать через +)
Modifiers=Ctrl+Shift

; Цвет фона OSD окна в формате HEX (RRGGBB).
; По умолчанию серый (7E7E7E).
Color=7E7E7E

; Постоянное отображение OSD окна (1 - да, 0 - нет).
; Если включено, окно будет всегда видимо, его можно перемещать.
; Также можно переключить через меню в трее.
always_show_osd=0

; Прозрачность OSD окна в режиме постоянного отображения (от 0 до 255).
; 0 - полностью прозрачное, 255 - непрозрачное.
osd_alpha=220

🔤 Исправление последнего слова

По умолчанию доступны две горячие клавиши:

  • F8 — исправить последнее слово из русской раскладки в английскую и переключить ввод на английский: руддщhello.
  • F9 — исправить последнее слово из английской раскладки в русскую и переключить ввод на русский: ghbdtnпривет.

Функция работает с текущим словом под курсором, а также с последним словом после пробела или знака препинания. После успешного исправления программа переключает активное поле ввода в язык результата: F8 — EN, F9 — RU. Для надежности лучше нажимать горячую клавишу сразу после ошибочно набранного слова.

🛠️ Сборка из исходного кода

Способ 1: Использование CMake (рекомендуется)

Проект поддерживает сборку через CMake, что обеспечивает кроссплатформенность и удобство.

Требования:

  • CMake 3.10 или выше
  • Компилятор C (MSVC для Windows, MinGW или другой совместимый)

Быстрая сборка (Windows):

# Создать директорию для сборки
mkdir build
cd build

# Сгенерировать проект
cmake .. -G "Visual Studio 17 2022"

# Собрать проект
cmake --build . --config Release

Исполняемый файл будет создан в build/bin/Release/kblswitch.exe

Или используйте готовый скрипт:

build_cmake.bat

Подробные инструкции по сборке с CMake см. в README_CMAKE.md.

Способ 2: Прямая компиляция (оригинальный метод)

Используйте build.bat для сборки с помощью Microsoft C/C++ компилятора:

build.bat

Этот метод требует установленных инструментов Visual Studio Build Tools.

📁 Структура проекта

  • kblswitch.c - основной исходный код
  • resource.h, resource.rc - файлы ресурсов
  • app.ico - иконка приложения
  • kblswitch.ini - файл конфигурации
  • CMakeLists.txt - конфигурация CMake
  • build.bat - скрипт сборки (оригинальный)
  • build_cmake.bat - скрипт сборки через CMake
  • README_CMAKE.md - документация по сборке с CMake

🤝 Вклад в проект

  1. Форкните репозиторий
  2. Создайте ветку для вашей функции (git checkout -b feature/amazing-feature)
  3. Зафиксируйте изменения (git commit -m 'Add amazing feature')
  4. Отправьте в ветку (git push origin feature/amazing-feature)
  5. Откройте Pull Request

📄 Лицензия

Распространяется под лицензией MIT. Подробности см. в файле LICENSE.

🙏 Благодарности

  • Сообществу разработчиков Windows
  • Всем тестерам и пользователям, предоставившим обратную связь

About

Keyboard Layout Switcher

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages