— В связи с тем, что вопрос абсолютно идентичный решил что лучше продолжить старую тему чем начинать новую.
Вопрос возник в другой теме и выходит за её рамки. [https://forum.ubuntu.ru/index.php?topic=297247.msg2334006#msg2334006]
— Помимо перечисленных в данной теме программ можно ещё установить:
sudo apt-get install xmacro
Об этой программе желательно также почитать…
#!/bin/bash
# Скрипт предназначен для изменения раскладки всей строки без предварительного выделения…
echo "KeyStrPress Shift_L KeyStrPress Home KeyStrRelease Home KeyStrRelease Shift_L KeyStrPress Control_L KeyStrPress Insert KeyStrRelease Insert KeyStrRelease Control_L"| xmacroplay -d 500 ":0.0"
xsel | sed "y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.\/<>?@#\$^&\`~фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбюБЮ№ёЁ/фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбю.БЮ,\"№;:?ёЁabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.<>#\`~/" | xsel -b -i
echo "KeyStrPress Shift_R KeyStrPress Insert KeyStrRelease Insert KeyStrRelease Shift_R"|xmacroplay -d 250 ":0.0"
xsel --clear
— Можно использовать и xdotool, но в результате применения на нескольких компьютерах и системах несмотря на громоздкость конструкций, xmacro, во всяком случае у меня, работал стабильнее. Параметны задержки „-d 500“ и „-d 250“ можно менять для выбора наибольшего быстродействия, 500 может и многовато.
— Я назначал клавиши Ctrl+Alt+PauseBreak.
— Такая „двуручная комбинация“ по той причине, что скрипт применяется редко.Обычно не в той раскладке печатается слово или часть слова, а не целая строка.
— Скрипты для других языков английский-французский, например, составляются аналогично.
#!/bin/bash
# Скпирт предназначен для замены части слова или слова до пробела без выделения…
echo "KeyStrPress Shift_L KeyStrPress Home KeyStrRelease Home KeyStrRelease Shift_L KeyStrPress Control_L KeyStrPress Insert KeyStrRelease Insert KeyStrRelease Control_L"|xmacroplay -d 300 ":0.0"
DONOTCHANGE=$(xsel -op | sed -e 's/[^ ]*$//')
TOMODIFY=$(xsel -op | grep -o '\S\+\s*$' | sed "y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.\/<>?@#\$^&\`~фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбюБЮ№ёЁ/фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбю.БЮ,\"№;:?ёЁabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.<>#\`~/")
echo -n "${DONOTCHANGE}${TOMODIFY}" | xsel -ib
echo "KeyStrPress Shift_R KeyStrPress Insert KeyStrRelease Insert KeyStrRelease Shift_R"|xmacroplay -d 250 ":0.0"
xsel --clear
— Назначал на клавишу
PauseBreak она обычно ни для чего не используется…
— Есть ещё два скрипта замена раскладки выделенного текста и инверсия регистра текста, если кому-то интересно…