Bash-скрипт для исправления текста, набранного в неправильной русской или английской раскладке.
Направление определяется автоматически, если текст содержит русские буквы: RU -> EN иначе: EN -> RU.
Поддерживаются строчные и заглавные буквы, ё, Ё
и знаки препинания стандартных раскладок US/Russian.
Для самого преобразования нужен только bash и sed c локалью UTF-8.
Для хоткея в X11:
apt install xclip xdotool xbindkeysСохранить скрипт как layout-switch в каталог из PATH:
install -Dm755 layout-switch ~/.local/bin/layout-switch
command -v layout-switchEN -> RU:
layout-switch <<< '~;br d ;jgt yj;br!'
# Ёжик в жопе ножик!RU -> EN:
layout-switch <<< 'Рувпурщп цшер ф лтшау шт фыы!'
# Hedgehog with a knife in ass!Сценарий работы:
- Выделить неправильно набранный текст
- Нажать хоткей (дефолт в примере
Ctrl+CapsLock) - Скрипт читает X11 PRIMARY selection
- Исправленный текст попадет в clipboard
xdotoolвыполнитCtrl+Vзаменив выделенный текст
Добавить в ~/.xbindkeysrc:
"bash -o pipefail -c 'xclip -o -selection primary | layout-switch | xclip -i -selection clipboard && xdotool key --clearmodifiers ctrl+v'"
Control + Caps_Lock
Перезапустить xbindkeys:
killall xbindkeys 2>/dev/null
xbindkeysЕсли Caps Lock настроен как переключатель раскладки,
X11 может видеть его не как Caps_Lock,
а как ISO_Next_Group или другой keysym.
Запустить:
xbindkeys --keyНажать нужную комбинацию, например Ctrl+CapsLock
и использовать строку, которую выведет xbindkeys.
Пример возможного результата:
Control + Caps_Lock
или:
Control + ISO_Next_Group
Добавить xbindkeys в Settings -> Session and Startup -> Application Autostart: