Repository navigation
Releases
WaySwitch v1.1.1
Изменения в 1.1.1
- Исправлено распознавание поля ввода в больших деревьях доступности KDE:
в Kate и KWrite снова работает автоматическое исправление раскладки.
Видимые ветки проверяются раньше скрытых меню, соседние поля — раньше
потомков больших панелей. Лимиты обхода и защита ввода сохранены. - Диагностика и начальная настройка больше не называют систему полностью
готовой при неизвестном фокусе: показывают, что защищённое автоисправление
ждёт подтверждённого поля. Подсказки о расширении GNOME остаются в GNOME. - На Plasma 6.6.6 Wayland проверены обе стороны исправления и отмена
в Kate/KWrite, парольные поля Qt/GTK и ручной жест в защищённом Konsole.
Исправляет issue #18.
Установка и обновление
Откройте терминал (клавиша с логотипом Windows → наберите «Терминал»),
вставьте команду сочетанием Ctrl+Shift+V и нажмите Enter:
curl -fsSL https://raw.githubusercontent.com/Wetoshkin/WaySwitch/main/packaging/get.sh | shСкрипт сам определит дистрибутив, покажет план и спросит подтверждение.
Для обновления — та же команда; настройки сохраняются. После установки
перезагрузите компьютер.
Вручную: скачайте файл ниже — .deb для Ubuntu 24.04+ и Debian 13+,
.rpm для Fedora и openSUSE — и выполните в терминале:
sudo apt install "$(xdg-user-dir DOWNLOAD)"/wayswitch_*.deb (Ubuntu, Debian),
sudo dnf install "$(xdg-user-dir DOWNLOAD)"/wayswitch-*.rpm (Fedora) или
sudo zypper install --allow-unsigned-rpm "$(xdg-user-dir DOWNLOAD)"/wayswitch-*.rpm (openSUSE).
.flatpak и .AppImage содержат только окно настроек и трей.
Для исправления раскладки нужна также нативная служба WaySwitch,
установленная через .deb, .rpm или пакет дистрибутива.
AppImage предназначен для x86_64 с glibc 2.39+ (Ubuntu 24.04+).
Файл SHA256SUMS содержит контрольные суммы всех четырёх форматов.
В COSMIC после запуска службы или блокировки разблокируйте экран
и явно включите исправление в окне/трее либо командой wayswitch resume.
Автоматического возобновления нет.
Возможности
- Автоматическое исправление русско-английской раскладки.
- Ручные жесты, отмена исправления и обучение на исключениях.
- Окно настроек, значок панели и интеграции с рабочими столами Wayland.
Поддержка окружений и ограничения описаны в README.
WaySwitch v1.1.0
Изменения в 1.1.0
- Добавлена поддержка COSMIC: фактическая карта клавиатуры и подтверждение
переключения раскладки перед перепечаткой. Проверено на COSMIC 1.11. - Подготовлены Flatpak и AppImage окна настроек для нативной службы хоста.
- Установщик проверяет SHA256 и размер пакета до установки.
- Набранный текст исключён из журналов, включая DEBUG, dry-run и ошибки.
Буфер и отмена привязаны к полю ввода; смена поля сбрасывает старый текст. - При защите паролей терминалы исключены из автокоррекции целиком:
ручной жест доступен, история и обучение не получают ввод терминала. - Исправлены исключения JetBrains IDEA через WM_CLASS и разбор AT-SPI,
проверка libadwaita при русской локали и установка RPM на Bazzite.
Обновите также расширение GNOME и перезайдите в сеанс. В COSMIC после
запуска службы и разблокировки требуется явное возобновление работы.
Flatpak/AppImage содержат интерфейс; нативная служба устанавливается отдельно.
Публикация в каталоге Flathub ещё не выполнена.
Установка и обновление
Откройте терминал (клавиша с логотипом Windows → наберите «Терминал»),
вставьте команду сочетанием Ctrl+Shift+V и нажмите Enter:
curl -fsSL https://raw.githubusercontent.com/Wetoshkin/WaySwitch/main/packaging/get.sh | shСкрипт сам определит дистрибутив, покажет план и спросит подтверждение.
Для обновления — та же команда; настройки сохраняются. После установки
перезагрузите компьютер.
Вручную: скачайте файл ниже — .deb для Ubuntu 24.04+ и Debian 13+,
.rpm для Fedora и openSUSE — и выполните в терминале:
sudo apt install "$(xdg-user-dir DOWNLOAD)"/wayswitch_*.deb (Ubuntu, Debian),
sudo dnf install "$(xdg-user-dir DOWNLOAD)"/wayswitch-*.rpm (Fedora) или
sudo zypper install --allow-unsigned-rpm "$(xdg-user-dir DOWNLOAD)"/wayswitch-*.rpm (openSUSE).
.flatpak и .AppImage содержат только окно настроек и трей.
Для исправления раскладки нужна также нативная служба WaySwitch,
установленная через .deb, .rpm или пакет дистрибутива.
AppImage предназначен для x86_64 с glibc 2.39+ (Ubuntu 24.04+).
Файл SHA256SUMS содержит контрольные суммы всех четырёх форматов.
В COSMIC после запуска службы или блокировки разблокируйте экран
и явно включите исправление в окне/трее либо командой wayswitch resume.
Автоматического возобновления нет.
Возможности
- Автоматическое исправление русско-английской раскладки.
- Ручные жесты, отмена исправления и обучение на исключениях.
- Окно настроек, значок панели и интеграции с рабочими столами Wayland.
Поддержка окружений и ограничения описаны в README.
WaySwitch 1.0.0
WaySwitch 1.0.0
Первая стабильная публичная версия WaySwitch — автоматическое исправление
русско-английской раскладки для Linux на Wayland.
Возможности
- Исправление слова на пробеле и переключение по началу слова.
- Двойной Shift для последнего слова, тройной — для фразы; настраиваемые жесты.
- Отмена с обучением, исключения по словам и приложениям.
- Исправление Caps Lock, двух заглавных и других распространённых опечаток.
- GTK4-интерфейс, значок панели, виджет KDE и модуль Waybar.
- Исправление выделенного текста, транслитерация и числа прописью в GNOME.
Проверено на CachyOS с GNOME 51. Статус остальных окружений и ограничения:
README.
Установка и обновление
curl -fsSL https://raw.githubusercontent.com/Wetoshkin/WaySwitch/main/packaging/get.sh | shСкрипт проверит систему, покажет план и запросит подтверждение. После первой
установки перезагрузите компьютер. Настройки при обновлении сохраняются.
Если установлена прежняя тестовая сборка, запустите эту команду вручную.
Пакеты ниже: .deb для Ubuntu 24.04+/Debian 13+, .rpm для Fedora/openSUSE.
Для Arch доступен PKGBUILD.
English
The first stable public release of WaySwitch: automatic Russian–English
keyboard layout correction for Linux on Wayland, manual gestures, undo with
learning, application exceptions, a GTK4 interface and desktop integrations.
Use the command above to install or update. See the
English README
for requirements and desktop testing status.
WaySwitch v2.0.0a4
Что нового в 2.0.0a4
- Переключение раскладки по началу слова теперь выключается в осторожном
режиме чувствительности (в 2.0.0a3 не выключалось). - README: как WaySwitch выглядит в KDE Plasma, Xfce, MATE, LXQt и Hyprland.
Если уже стоит WaySwitch 2.0.0a3 — нажмите «Обновить» в окне WaySwitch.
Установка и обновление
Откройте терминал (клавиша с логотипом Windows → наберите «Терминал»),
вставьте команду сочетанием Ctrl+Shift+V и нажмите Enter:
curl -fsSL https://raw.githubusercontent.com/Wetoshkin/WaySwitch/main/packaging/get.sh | shСкрипт сам определит дистрибутив, покажет план и спросит подтверждение.
Для обновления — та же команда; настройки сохраняются. После установки
перезагрузите компьютер.
Вручную: скачайте файл ниже — .deb для Ubuntu 24.04+ и Debian 13+,
.rpm для Fedora и openSUSE — и выполните в терминале:
sudo apt install "$(xdg-user-dir DOWNLOAD)"/wayswitch_*.deb (Ubuntu, Debian),
sudo dnf install "$(xdg-user-dir DOWNLOAD)"/wayswitch-*.rpm (Fedora) или
sudo zypper install --allow-unsigned-rpm "$(xdg-user-dir DOWNLOAD)"/wayswitch-*.rpm (openSUSE).
Для разработчиков: список изменений
What's Changed
- chore: пакет AUR для 2.0.0a3 by @Wetoshkin in #8
- fix: осторожный режим и README для 2.0.0a3 by @Wetoshkin in #9
- WaySwitch 2.0.0a4: снимки других окружений by @Wetoshkin in #10
Full Changelog: v2.0.0a3...v2.0.0a4
WaySwitch v2.0.0a3
Установка и обновление
Откройте терминал (клавиша с логотипом Windows → наберите «Терминал»),
вставьте команду сочетанием Ctrl+Shift+V и нажмите Enter:
curl -fsSL https://raw.githubusercontent.com/Wetoshkin/WaySwitch/main/packaging/get.sh | shСкрипт сам определит дистрибутив, покажет план и спросит подтверждение.
Для обновления — та же команда; настройки сохраняются. После установки
перезагрузите компьютер.
Вручную: скачайте файл ниже — .deb для Ubuntu 24.04+ и Debian 13+,
.rpm для Fedora и openSUSE — и выполните в терминале:
sudo apt install "$(xdg-user-dir DOWNLOAD)"/wayswitch_*.deb (Ubuntu, Debian),
sudo dnf install "$(xdg-user-dir DOWNLOAD)"/wayswitch-*.rpm (Fedora) или
sudo zypper install --allow-unsigned-rpm "$(xdg-user-dir DOWNLOAD)"/wayswitch-*.rpm (openSUSE).
Для разработчиков: список изменений
What's Changed
- chore: пакет AUR для 2.0.0a2 by @Wetoshkin in #2
- fix: CI Arch — без суммы тега для архива ветки by @Wetoshkin in #3
- docs: понятные тексты для новичков by @Wetoshkin in #4
- docs: прогресс — живые проверки и что осталось на железо by @Wetoshkin in #5
- WaySwitch 2.0.0a3: функции Punto Switcher, обновление и удаление кнопкой by @Wetoshkin in #7
Full Changelog: v2.0.0a2...v2.0.0a3
WaySwitch v2.0.0a2
WaySwitch сам исправляет слова, набранные не в той раскладке (ghbdtn → «привет»), прямо на пробеле. Работает под Wayland в GNOME (Ubuntu, Fedora), KDE Plasma, Sway, Hyprland, Xfce, MATE, Budgie и LXQt. Linux Mint (Cinnamon) пока не поддерживается.
Установка и обновление
Откройте терминал (клавиша с логотипом Windows → наберите «Терминал»), вставьте команду сочетанием Ctrl+Shift+V и нажмите Enter:
curl -fsSL https://raw.githubusercontent.com/Wetoshkin/WaySwitch/main/packaging/get.sh | shЕсли в ответ написано «curl: команда не найдена» (так бывает в Ubuntu), сначала выполните sudo apt install -y curl.
Скрипт сам определит дистрибутив, покажет план и спросит подтверждение. Для обновления — та же команда; настройки сохраняются. После установки перезагрузите компьютер.
Вручную: скачайте файл ниже — .deb для Ubuntu 24.04+ и Debian 13+, .rpm для Fedora и openSUSE — и выполните в терминале:
sudo apt install "$(xdg-user-dir DOWNLOAD)"/wayswitch_*.deb (Ubuntu, Debian),
sudo dnf install "$(xdg-user-dir DOWNLOAD)"/wayswitch-*.rpm (Fedora) или
sudo zypper install --allow-unsigned-rpm "$(xdg-user-dir DOWNLOAD)"/wayswitch-*.rpm (openSUSE).
Что нового
- Все графические среды Wayland: KDE Plasma 6, Sway, Hyprland, Xfce, MATE, Budgie, LXQt — в дополнение к GNOME.
- Новое окно: состояние, поле для проверки, история исправлений, первый запуск с проверкой системы.
- «Исправить выделенное» — своя клавиша переводит выделенную фразу в другую раскладку (GNOME).
- Мелкие опечатки: «ПРивет» → «Привет», «пирогб» → «пирог,», «чтото» → «что-то», «кембы» → «кем бы», «сонатуБаха» → «сонату Баха».
- Исключения по программам и защита полей паролей.
- Установка одной командой, пакеты .deb и .rpm, значок в панели и виджет KDE, проверка обновлений.
Для разработчиков: список изменений
- Wayland-only: KDE Plasma, экранная клавиатура, правила Punto Switcher, исключения по программам by @Wetoshkin in #1
Full Changelog: v2.0.0a1...v2.0.0a2
WaySwitch 2.0.0a1 — первая альфа переписанной версии / first alpha of the rewrite
WaySwitch v2.0.0a1
Русский
Что это за релиз
Первая альфа-версия WaySwitch v2 — полного переписывания проекта с нуля.
Прототип v1 (демон и установщик в корне репозитория, без пакетирования и
без юнит-тестов) выброшен целиком; текущая кодовая база не разделяет с
ним ни строки кода. Это первый публичный релиз новой архитектуры: демон
на evdev/uinput, детектор на словаре и символьных триграммах, два
бэкенда переключения раскладки, GTK4-интерфейс, .deb-пакет.
Что внутри
- Ядро демона — чтение клавиатуры через
evdevбез захвата
устройства, буфер слова/фразы с учётом Shift/CapsLock, оркестрация
решения и исполнения без привязки к GLib main loop (тестируется без
живого GNOME), охрана сессии (пауза на заблокированном экране). - Детектор — решение «оставить/исправить» по словарю и модели
символьных триграмм, с стоп-правилами для цифр, смешанных алфавитов,
camelCase, путей и URL, коротких слов вне словаря; ранний триггер URL
(http://,https://,ftp://) без ожидания пробела. Качество на
отложенной части словаря: ru — полнота 96,5 %, ложные срабатывания
0,07 %; en — полнота 96,8 %, ложные срабатывания 0,07 %. - Бэкенды переключения раскладки — IBus (
IBus.Bus, работает всегда),
собственное расширение GNOME Shell (точное состояние, синхронное
переключение, печать keysym без ожидания сигнала), резервный
хоткей-эмулятор. Выбор бэкенда — автоматический либо задаётся в
конфиге (prefer). - GUI и трей — окно настроек на GTK4/libadwaita (статус, настройки,
исключения, автозапуск, тест-поле) и значок в трее
(StatusNotifierItem + dbusmenu) с переключателем автоисправления,
паузой, «исправить последнее слово» и выходом. - Расширение GNOME Shell — ESM-модуль (
wayswitch@siberia.ru),
shell-version46–49, устанавливается пакетом системно и включается
отдельно. - CLI, doctor, dry-run — подкоманды
run/dry-run/doctor/
devices/pause/resume/fix/status/gui/version;
wayswitch doctorпроверяет окружение перед первым запуском (сессия
Wayland, модули, раскладки, IBus,/dev/uinput, правило udev);
dry-runпоказывает решения детектора без каких-либо действий на
экране. - Упаковка — архитектурно-независимый
.deb(tools/build_deb.sh,
без debhelper) с постинстall-подсказкой и корректным удалением, плюс
packaging/install.sh/uninstall.shдля Fedora и сборки из
исходников. - Сквозной тест —
tests/e2e_vm.py, отдельный скрипт для ручного
прогона на живой VM с открытым текстовым полем в фокусе (не часть
pytest).
Установка
url=$(curl -s https://api.github.com/repos/Wetoshkin/WaySwitch/releases/latest | grep -o 'https://[^"]*\.deb' | head -1)
wget "$url"
sudo apt install ./wayswitch_*.debВажная оговорка
Ничего из этого пока не запускалось на живом GNOME. Вся проверка —
юнит-тесты на Windows и в CI (ubuntu-latest); сборка и установка
.deb проверены тоже только в CI. Прежде чем полагаться на автоисправление
в бою:
- Выполните
wayswitch doctorи убедитесь, что все обязательные проверки
зелёные. - Проверьте гипотезу про IBus (открытый вопрос спецификации 13.1):
ibus engine xkb:ru::rusможет не переключать саму раскладку GNOME
Shell — источник истины для Wayland на этот счёт сам Shell. Если
индикатор раскладки в панели не меняется, авторежим заработает только
с расширением (gnome-extensions enable wayswitch@siberia.ru,
[backend] prefer = "shell"в конфиге). - Пройдите чек-лист первого запуска целиком —
docs/testing-vm.md.
Известные ограничения
- Демон не видит текст в полях паролей — на время ввода пароля используйте
паузу. - Поля с автодополнением (адресная строка браузера) могут вести себя
неожиданно при перепечатке. - Прерванное исправление (физическое нажатие во время перепечатки) не
откатывается. - Правило udev
uaccessдаёт чтение событий клавиатуры любой программе
текущего пользователя, не только WaySwitch. - Только GNOME на Wayland; KDE и Sway/Hyprland — в планах.
Требования
- GNOME 46–49 на Wayland.
- Ровно две раскладки ввода: одна
ru*, одна латинская. - Ubuntu 24.04+ или Fedora 40+.
- Python 3.11+.
Как сообщить о проблеме
Заводите issue на GitHub и прикладывайте вывод wayswitch doctor и
последние строки journalctl --user -u wayswitch — без них разобраться
в проблеме на конкретном окружении почти невозможно.
Тесты и CI
150+ тестов (pytest), чистый ruff. На Windows пропускаются (skipif)
только два теста keymap.py, завязанных на настоящий libxkbcommon. CI
на ubuntu-latest дополнительно собирает .deb и устанавливает его
(apt install ./...), проверяя пакет целиком, а не только код.
English
What this release is
The first alpha of WaySwitch v2 — a complete rewrite from scratch. The v1
prototype (a daemon and installer that lived at the repository root, with
no packaging and no unit tests) has been discarded entirely; the current
codebase shares no code with it. This is the first public release of the
new architecture: an evdev/uinput daemon, a dictionary-and-trigram
detector, two layout-switching backends, a GTK4 UI, and a .deb package.
What's inside
- Daemon core — reads the keyboard through
evdevwithout grabbing
the device, buffers the current word/phrase while tracking
Shift/CapsLock, and orchestrates decision-making and execution
independently of the GLib main loop (so it's testable without a live
GNOME session), plus session guarding (nothing fires while the screen
is locked). - Detector — a keep/fix decision from a dictionary lookup and a
character-trigram language model, with stop rules for digits, mixed
alphabets, camelCase, paths and URLs, and short out-of-dictionary
words; an early URL trigger (http://,https://,ftp://) that
fires without waiting for a space. Measured quality on a held-out slice
of the dictionary: ru — 96.5% recall, 0.07% false-positive rate; en —
96.8% recall, 0.07% false-positive rate. - Layout-switching backends — IBus (
IBus.Bus, always available), a
dedicated GNOME Shell extension (exact state, synchronous switching,
keysym typing with no wait for a signal), and a hotkey-emulation
fallback. The backend is picked automatically or forced via config
(prefer). - GUI and tray — a GTK4/libadwaita settings window (status, settings,
exceptions, autostart, a test field) and a tray icon
(StatusNotifierItem + dbusmenu) with an autocorrect toggle, pause,
"fix last word", and quit. - GNOME Shell extension — an ESM module (
wayswitch@siberia.ru),
shell-version46–49, installed system-wide by the package and enabled
separately. - CLI, doctor, dry-run — the
run/dry-run/doctor/devices/
pause/resume/fix/status/gui/versionsubcommands;
wayswitch doctorchecks the environment before the first run
(Wayland session, modules, layouts, IBus,/dev/uinput, the udev
rule);dry-runshows the detector's decisions without touching the
screen. - Packaging — an architecture-independent
.deb
(tools/build_deb.sh, no debhelper) with a postinst hint and clean
removal, pluspackaging/install.sh/uninstall.shfor Fedora and
building from source. - End-to-end test —
tests/e2e_vm.py, a standalone script for a
manual run on a live VM with a text field focused (not part of
pytest).
Install
url=$(curl -s https://api.github.com/repos/Wetoshkin/WaySwitch/releases/latest | grep -o 'https://[^"]*\.deb' | head -1)
wget "$url"
sudo apt install ./wayswitch_*.debImportant caveat
None of this has run on a live GNOME session yet. Everything has been
verified through unit tests on Windows and in CI (ubuntu-latest); the
.deb build and install have likewise only been exercised in CI. Before
relying on autocorrect for real work:
- Run
wayswitch doctorand make sure every required check is green. - Check the IBus hypothesis (open question 13.1 in the design spec):
ibus engine xkb:ru::rusmay not actually switch GNOME Shell's own
layout — on Wayland, Shell itself is the source of truth for that. If
the layout indicator in the panel doesn't change, autocorrect will
only work with the extension enabled
(gnome-extensions enable wayswitch@siberia.ru,
[backend] prefer = "shell"in the config). - Work through the full first-run checklist —
docs/testing-vm.md.
Known limitations
- The daemon can't see text in password fields — pause it while typing a
password. - Autocompletion fields (a browser address bar) may behave unexpectedly
while WaySwitch is retyping into them. - An interrupted correction (a physical keypress during retyping) is not
rolled back. - The
uaccessudev rule lets any program running as the current user
read keystroke events, not just WaySwitch. - GNOME on Wayland only for now; KDE and Sway/Hyprland are on the
roadmap.
Requirements
- GNOME 46–49 on Wayland.
- Exactly two input layouts: one
ru*, one Latin. - Ubuntu 24.04+ or Fedora 40+.
- Python 3.11+.
Reporting problems
Please file a GitHub issue with the output of wayswitch doctor and the
tail of journalctl --user -u wayswitch attached — without them it's
nearly impossible to diagnose an issue on a specific environment.
Tests and CI
150+ tests (pytest), clean ruff. On Windows only two keymap.py tests
that need a real libxkbcommon are skipped. CI on ubuntu-latest
additionally builds the .deb and installs it (apt install ./...),
exercising the whole package, not just the code.