Advertisement
Guest User

Untitled

a guest
Feb 12th, 2019
526
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.43 KB | None | 0 0
  1. # требуются xsel, xvkbd и xbindkeys.
  2.  
  3. if [[ "$(xsel)" = "" || "$(xsel)" = " " ]]; then exit 1; fi # прервет выполнение скрипта, если ничего не выделено или выделен пробел.
  4.  
  5. BOOFER=$(xsel -b) # заносит в переменную «BOOFER» результат работы команды xsel -b.
  6.  
  7. xsel | sed "y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':",./<>?@#$^&`~фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбюБЮ№ёЁ/фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбю.БЮ,"№;:?ёЁabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':",.<>#`~/" | xsel -b -i
  8.  
  9. # xsel берет выделенный текст и передает его по конвейеру потоковому текстовому редактору sed. Именно он и производит замену символов.
  10. # Команда y (sed "y/abcdef...) заменяет символ из первого шаблона на соответствующий ему символ из
  11. # второго шаблона(sed «y/abcdefg.../фисвуап...; sed „y/abcdefg.../фисвуап...). Результат работы sed'а передается все той же утилите xsel, но теперь с опциями -b и -i.
  12. # Мы уже знаем что опция -b указывает, что работать надо с буфером клавиатуры, а вот опция -i говорит утилите, что этот буфер нужно переписать.
  13. # Таким образом наш исправленный текст попадает в буфер обмена.
  14. #Теперь исправленный текст нам нужно вставить вместо исходного варианта, в этом нам поможет xvkbd. Это виртуальная клавиатура
  15. # для X Window System, xvkbd также может отправлять символы, переданные в качестве аргумента командной строки, в другие приложения.
  16.  
  17. xvkbd -xsendevent -text "[Control_L][v]"
  18.  
  19. # Этой командой мы имитируем нажатие Ctrl+V, то есть вставляем содержимое буфера обмена вместо выделенного текста.
  20. # И теперь остается только вернуть в буфер обмена то, что было там до нашего вмешательства.
  21.  
  22. echo -n "$BOOFER" | xsel -b -i
  23.  
  24. # Теперь нужно назначить для скрипта хоткей. Я выбрал сочетание клавиш Alt+Z, вы можете назначить любое другое. Хоткей я назначал с помощью xbindkeys.
  25. # Открываем в домашней директории файл .xbindkeysrc и добавляем в него следующие строки:
  26. # "/путь/к/скрипту.sh"
  27. # alt + z
  28. # Сохраняем, выполняем в консоли:
  29. # xbindkeys
  30. # Все, теперь можно исправлять раскладку текста выделив его и нажав Alt+z.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement