Исправляет текст, набранный не в той раскладке. Забыли переключить раскладку и написали ghbdtn вместо привет? Выделите текст и нажмите Ctrl+Alt+→: текст заменится на правильный, а раскладка переключится на нужную.
Работает в Fedora с KDE Plasma 6 в сессии Wayland.
ghbdtn → привет
rfr ltkf& → как дела?
Ghbdtn? rfr ltkf/ → Привет, как дела.
руддщ цщкдв → hello world
руддщб цщкдв, → hello, world?
Ntcn 123 ,erd → Тест 123 букв
Конвертация идёт по положению клавиш (раскладки us и ru ЙЦУКЕН), поэтому знаки препинания тоже исправляются: ? в английской раскладке стоит там же, где , в русской, а & там же, где ?.
cd /path/to/FunLinux/fixMistake
./install.shСкрипт установки:
- Проверит зависимости и предложит поставить недостающие:
ydotool,wl-clipboard,libnotify,python3. - Проверит доступ к
/dev/uinput. Если его нет, предложит добавить пользователя в группуinput(после этого нужен повторный вход). - Скопирует скрипт в
~/.local/bin/fixmistake. - Включит пользовательскую службу
fixmistake-ydotoold.service: виртуальную клавиатуру, через которую нажимаются Ctrl+C и Ctrl+V. - Зарегистрирует сочетание Ctrl+Alt+→ в KDE. Перезаход не нужен.
- Запустит
fixmistake --check.
Сочетание можно поменять в «Параметры системы → Комбинации клавиш → fixMistake».
- Выделите текст, набранный не в той раскладке.
- Нажмите Ctrl+Alt+→.
Если ничего не выделено или исправлять нечего, придёт уведомление.
Команды для отладки:
fixmistake --check # зависимости, доступ к /dev/uinput, ydotoold
echo ghbdtn | fixmistake --convert # только конвертация, без буфера и клавиш- KDE запускает
~/.local/bin/fixmistakeпо сочетанию клавиш. - Скрипт ждёт, пока вы отпустите Ctrl и Alt, иначе приложение получило бы Ctrl+Alt+C вместо Ctrl+C. Состояние клавиш читается из
/dev/input(группаinput). - Текущий буфер обмена сохраняется (текст или картинка).
- Через ydotool нажимается Ctrl+C, выделенный текст забирается через
wl-paste. - Направление выбирается по преобладающему алфавиту. Слова, в которых уже есть буквы целевого алфавита, не меняются.
- Исправленный текст кладётся в буфер и вставляется через Ctrl+V поверх выделения.
- Старый буфер обмена возвращается, раскладка переключается на язык исправленного текста.
cd /path/to/FunLinux/fixMistake
./uninstall.shСнимает сочетание в KDE, останавливает и удаляет службу, удаляет ~/.local/bin/fixmistake. Пакеты не удаляются: ydotool и wl-clipboard могут использовать другие программы.
- Не работает в терминалах: там Ctrl+C прерывает команду, а Ctrl+V не вставляет текст.
- Исправленный текст и метка, через которую скрипт определяет копирование, на время попадают в буфер обмена, поэтому видны в истории Klipper.
- Сочетание регистрируется автоматически только в KDE Plasma. В другом Wayland-окружении назначьте команду
~/.local/bin/fixmistakeвручную; нужна поддержка протокола data-control дляwl-paste. - X11 больше не поддерживается: прошлая версия на xdotool и xbindkeys в Wayland не работала.
fixmistake --check
systemctl --user status fixmistake-ydotoold.service
journalctl --user -u fixmistake-ydotoold.serviceЕсли ydotoold не запускается из-за /dev/uinput, проверьте группу: id | grep input. После usermod -aG input нужно выйти из сессии и войти снова.
fixmistake.sh: конвертация, работа с буфером и клавишамиinstall.sh: установкаuninstall.sh: удаление
DXVSI
Free to use