Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Скрипты для замены некоторой функциональности Xneur.  (Прочитано 941 раз)

0 Пользователей и 1 Гость просматривают эту тему.

adawdp

  • Автор темы
  • Гость
2015 Sep 02; 10:00 PM; Oakville, ON, Canada.

(Нажмите, чтобы показать/скрыть)
— Но главной всё же является задача правки фразы напечатанной в неправильной раскладке…
— Нашёл в интернете вот такой скрипт, он у меня не заработал.
http://www.linux.org.ru/forum/general/8951300
Код: (bash) [Выделить]
#!/bin/bash
BOOFER=$(xsel -b)
xdotool key Shift+Home
STRING=$(xsel | sed 's|.* ||')
len=$STRING
if [ ${#len} = 0 ];
then
xdotool key Right
exit 1;
else
xdotool key Right
for i in `seq 1 ${#len}`;
do
  xdotool key Shift+Left
done
fi
xsel | sed "y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.\/<>?@#\$^&\`~фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбюБЮ№ёЁ/фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбю.БЮ,\"№;:?ёЁabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.<>#\`~/" | xsel -b -i
xvkbd -xsendevent -text "\[Control_L]\[v]"
echo -n "$BOOFER" | xsel -b -i

— Имея некоторый опыт использования xdotool „подправил“ :)
Код: (bash) [Выделить]
#!/bin/bash
xdotool key Shift+Home
sleep 0.2s
STRING=$(xsel | sed 's|.* ||')
len=$STRING
if [ ${#len} = 0 ];
then
xdotool key Right
sleep 0.2s
exit 1;
else
xdotool key Right
sleep 0.2s
for i in `seq 1 ${#len}`;
do
xdotool key Shift+Left
done
fi
xsel | sed "y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.\/<>?@#\$^&\`~фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбюБЮ№ёЁ/фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбю.БЮ,\"№;:?ёЁabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.<>#\`~/" | xsel -b -i
sleep 0.2s
xdotool key Caps_Lock
— Кстати, xdotool key Caps_Lock переключение раскладки ( у меня Caps_Lock для переключения раскладки), да переключает отлично…
— Далее по той же схеме в сочетании с autokey-gtk 0.90.4.
— Работает этот скрипт корректно только в одну сторону, заменяя латиницу… А вот в обратной последовательности кириллицу и греческий заменяет не последнюю фразу, а чуть больше, что не нужно.
— Если упростить скрипт и менять раскладку только выделенного текста, всё отлично работает. Но весь то смысл в том, чтобы по нажатию одной кнопки изменить „hfcgkflrf“ на „раскладка“.
— И ещё есть маленькая проблеммка может быть  если фраза которую нужно заменить содержит впереди пробел
„hfcgkflrf “, но тут по-моему сложно что-то сделать так как пробел есть сигнал об окончании слова, если смотреть справа-на-лево…
— На форуме есть тема многолетней давности. Но там весьма сложное решение. И будет ли оно сейчас работать неизвестно.
https://forum.ubuntu.ru/index.php?topic=23987.0

— Если кто-то вдруг занимался подобной темой и имеются наработки прошу поделиться добытыми решениями.
— Мои решения хоть и работают но я человек очень далёкий от программирования и хотелось бы пользоваться решениями от профессионалов :)

Пользователь решил продолжить мысль 03 Сентября 2015, 21:30:40:
2015 Sep 03; 02:30 PM; Oakville, ON, Canada.

— Autokey-gtk 0.90.4 может и хорошая программа, но xdotool можно заставить работать… Т.е. можно считать избыточным в данной ситуации…

— А по части назначения „горячих клавишей“ я пришёл к выводу что xbindkeys наверное лучше, старый проверенный временем инструмент…
« Последнее редактирование: 03 Сентября 2015, 21:30:41 от adawdp »

 

Страница сгенерирована за 0.05 секунд. Запросов: 22.