Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # требуются xsel, xvkbd и xbindkeys.
- if [[ "$(xsel)" = "" || "$(xsel)" = " " ]]; then exit 1; fi # прервет выполнение скрипта, если ничего не выделено или выделен пробел.
- BOOFER=$(xsel -b) # заносит в переменную «BOOFER» результат работы команды xsel -b.
- xsel | sed "y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':",./<>?@#$^&`~фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбюБЮ№ёЁ/фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбю.БЮ,"№;:?ёЁabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':",.<>#`~/" | xsel -b -i
- # xsel берет выделенный текст и передает его по конвейеру потоковому текстовому редактору sed. Именно он и производит замену символов.
- # Команда y (sed "y/abcdef...) заменяет символ из первого шаблона на соответствующий ему символ из
- # второго шаблона(sed «y/abcdefg.../фисвуап...; sed „y/abcdefg.../фисвуап...). Результат работы sed'а передается все той же утилите xsel, но теперь с опциями -b и -i.
- # Мы уже знаем что опция -b указывает, что работать надо с буфером клавиатуры, а вот опция -i говорит утилите, что этот буфер нужно переписать.
- # Таким образом наш исправленный текст попадает в буфер обмена.
- #Теперь исправленный текст нам нужно вставить вместо исходного варианта, в этом нам поможет xvkbd. Это виртуальная клавиатура
- # для X Window System, xvkbd также может отправлять символы, переданные в качестве аргумента командной строки, в другие приложения.
- xvkbd -xsendevent -text "[Control_L][v]"
- # Этой командой мы имитируем нажатие Ctrl+V, то есть вставляем содержимое буфера обмена вместо выделенного текста.
- # И теперь остается только вернуть в буфер обмена то, что было там до нашего вмешательства.
- echo -n "$BOOFER" | xsel -b -i
- # Теперь нужно назначить для скрипта хоткей. Я выбрал сочетание клавиш Alt+Z, вы можете назначить любое другое. Хоткей я назначал с помощью xbindkeys.
- # Открываем в домашней директории файл .xbindkeysrc и добавляем в него следующие строки:
- # "/путь/к/скрипту.sh"
- # alt + z
- # Сохраняем, выполняем в консоли:
- # xbindkeys
- # Все, теперь можно исправлять раскладку текста выделив его и нажав Alt+z.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement