Skip to content

Releases

WaySwitch v1.1.1

Choose a tag to compare

@github-actions github-actions released this 05 Nov 03:06

Изменения в 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

Choose a tag to compare

@github-actions github-actions released this 04 Nov 16:38

Изменения в 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

Choose a tag to compare

@github-actions github-actions released this 31 Oct 15:41

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

WaySwitch v2.0.0a4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Oct 07:28

Что нового в 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

WaySwitch v2.0.0a3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Oct 06:31

Установка и обновление

Откройте терминал (клавиша с логотипом 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 v2.0.0a2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Oct 02:58

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

Choose a tag to compare

@github-actions github-actions released this 23 Sep 02:37

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-version 46–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. Прежде чем полагаться на автоисправление
в бою:

  1. Выполните wayswitch doctor и убедитесь, что все обязательные проверки
    зелёные.
  2. Проверьте гипотезу про IBus (открытый вопрос спецификации 13.1):
    ibus engine xkb:ru::rus может не переключать саму раскладку GNOME
    Shell — источник истины для Wayland на этот счёт сам Shell. Если
    индикатор раскладки в панели не меняется, авторежим заработает только
    с расширением (gnome-extensions enable wayswitch@siberia.ru,
    [backend] prefer = "shell" в конфиге).
  3. Пройдите чек-лист первого запуска целиком — 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 evdev without 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-version 46–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/version subcommands;
    wayswitch doctor checks the environment before the first run
    (Wayland session, modules, layouts, IBus, /dev/uinput, the udev
    rule); dry-run shows 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, plus packaging/install.sh/uninstall.sh for 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_*.deb

Important 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:

  1. Run wayswitch doctor and make sure every required check is green.
  2. Check the IBus hypothesis (open question 13.1 in the design spec):
    ibus engine xkb:ru::rus may 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).
  3. 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 uaccess udev 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.