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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Скрипты частично заменяющие или дополняющие функционал программы xNeur.  (Прочитано 687258 раз)

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

Оффлайн KOT040188

  • Активист
  • *
  • Сообщений: 326
    • Просмотр профиля
В буфере даже не остаётся фразы в кривой кодировке (этого нет в версии 0.3, но уже есть в неопубликованной ещё 0.4)
Дайте пощупать 0.4! В 0.3 в истории буфера остаётся мусор.
« Последнее редактирование: 22 Ноября 2022, 01:48:53 от KOT040188 »
Хто ты гэткі?

Оффлайн ffcrus

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Я проверил вариант с одной задержкой и её достаточно в строке 11
Это САМЫЙ неожиданный результат. Значит скрипт не успевает скопировать во временную переменную то, что уже было в буфере обмена.
не всегда в менеджере буфера обмена Parcellite сохраняется конвертированное слово
Ещё одна странность... Не сохраняется слово в ещё неправильной кодировке или в уже правильной?

Пользователь добавил сообщение 22 Ноября 2022, 02:25:05:
если поставить 0.1s работает.
0.3 я предложил с ОЧЕНЬ большим запасом, чтобы было от чего уменьшать. Что ГАРАНТИРОВАННО решит проблему.
Дайте пощупать 0.4!
Она ещё в процессе тестирования и отладки)) Покажите скрипт, который не портит буфер и я с этим апдейтом дотестирую, отлажу и выложу новую версию. Пока недостаточно изменений на целую версию, имхо))
« Последнее редактирование: 22 Ноября 2022, 02:25:05 от ffcrus »

Оффлайн Rootdiv

  • Любитель
  • *
  • Сообщений: 71
    • Просмотр профиля
    • Web-разработчик
Ещё одна странность... Не сохраняется слово в ещё неправильной кодировке или в уже правильной?
Вообще ни в какой и для меня это хорошо, тут бага нет. То сообщение больше для информации, что такое поведение возможно. Уточню, что при этом скрипт отрабатывает как надо слово конвертируется в нужную раскладку.
Ubuntu Mate 22.04.3 64 bit

Оффлайн KOT040188

  • Активист
  • *
  • Сообщений: 326
    • Просмотр профиля
Не сохраняется слово в ещё неправильной кодировке или в уже правильной?
У меня в обоих сохраняется, этим и мусорит.

Пользователь добавил сообщение 22 Ноября 2022, 03:33:55:
Покажите скрипт, который не портит буфер
Тут выкладывали, но я уже не помню какой, завтра гляну какой у меня сохранён, я его слегка подпиливать как мог.
« Последнее редактирование: 22 Ноября 2022, 03:35:41 от KOT040188 »
Хто ты гэткі?

Оффлайн qpdb

  • Забанен
  • Активист
  • *
  • Сообщений: 628
  • xUbuntu 22.04
    • Просмотр профиля
Тут выкладывали, но я уже не помню какой, завтра гляну какой у меня сохранён, я его слегка подпиливать как мог.
Выкладывать скорее всего мог и я😕…
Решения там  мягко сказать неострые😇 ( не хочется о себе совсем плохо):
xsel -b > /tmp/fileZ.txt; XF=$(cat /tmp/fileZ.txt) ⟶ в начале скрипта…
xsel --clear; echo -n $XF | xsel -b -i;sleep 0.2;echo -n $XF | xsel -p -i; sleep 0.2 ⟶ в конце…
Избыточность здесь очевидна, и сейчас оно так. Но как говорится:„If it ain’t broke, don’t fix it.”

Очевидность ситуации в том, что у каждого скрипты работают после подгонки😞, что не есть хорошо. А хотелось бы универсальности решений…

2022 Nov 21; 09:52 PM


Оффлайн Rootdiv

  • Любитель
  • *
  • Сообщений: 71
    • Просмотр профиля
    • Web-разработчик
Сейчас ещё раз перепроверил сохранение истории и выяснил: в истории менеджера буфера обмена текст не сохраняется совсем, но если выполнить xsel в консоли то там будет конвертируемый текст. По этому в конце скрипта добавил xsel --clear теперь нигде не сохраняется.

Также на основе скрипта изменения регистра переделал скрипт изменения регистра (взятый из этой темы) выделенного текста, история также не сохраняется.
Ubuntu Mate 22.04.3 64 bit

Оффлайн KOT040188

  • Активист
  • *
  • Сообщений: 326
    • Просмотр профиля
Вот, работает медленнее, чем хотелось бы. Но в буфере не мусорит.
#!/bin/bash
#setxkbmap -layout "us,ru"  #может понадобиться…
xsel -b > /tmp/fileZ.txt; XF=$(cat /tmp/fileZ.txt)
echo "KeyStrPress Control_L KeyStrPress Control_R KeyStrRelease Control_R KeyStrRelease Control_L"|xmacroplay -d 150 ":0.0"
xsel --clear
xdotool key --delay 150 End
xdotool key --delay 150 Home
xdotool key --delay 150 End
xdotool key --delay 150 Shift_R+Home
xsel -o > /tmp/fileX.txt; cat /tmp/fileX.txt | xsel
EE=$(xsel)
xdotool key --delay 150 Home;xdotool keydown --delay 150 Shift_R key --delay 150 \
End key --delay 150 Delete keyup  --delay 250 Shift_R
QZ=$(echo -n $EE | sed "y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};\
':\",.\/<>?@#\$^&\`~фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбюБЮ№ёЁ/фисвуапршолдьтщз\
йкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбю.БЮ,\"№;:?ёЁabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRST\
UVWXYZ[]{};':\",.<>#\`~/")
echo -n $QZ | xsel -b -i;sleep 0.2
xdotool key --delay 150 Shift_R+Insert
xsel --clear; echo -n $XF | xsel -b -i;sleep 0.2;echo -n $XF | xsel -p -i; sleep 0.2
xkb-switch -n|--next
Хто ты гэткі?

Оффлайн ffcrus

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Выкладывать скорее всего мог и я
Да, Вы складываете в файл. Пусть решение и не оптимальное, но работает же)) Я сделал похожее решение в 0.4, но без использования файла.
xdotool key --delay 150 Shift_R+Insert
Он всё равно в буфер кладёт уже сконвертированное перед тем, как вернуть исправленное же.
xsel --clear
Пробовал, у меня в буфере всё равно остаётся после этого сконвертированное(( Выложите полностью свой скрипт, пожалуйста. Я сделаю в своём так же. Пусть у меня это и не будет работать, но у других, может, будет хоть))
А хотелось бы универсальности решений…
Полностью согласен с этой мыслью. И я работаю над этим))

P.S.  Спасибо, я понял что у вас делает буфер не испорченным. Я сделаю так в своей следующей версии (0.4). Хоть на kUbuntu это и не будет работать((

Оффлайн Rootdiv

  • Любитель
  • *
  • Сообщений: 71
    • Просмотр профиля
    • Web-разработчик
Выложите полностью свой скрипт, пожалуйста.
Я использовал Ваш скрипт 3-й версии только на 11-й строке добавил sleep 0.1s и на 32-й строке добавил xsel --clear

Хоть на kUbuntu это и не будет работать((
Можно добавить условие по которому делать то или иное действие
Ubuntu Mate 22.04.3 64 bit

Оффлайн KOT040188

  • Активист
  • *
  • Сообщений: 326
    • Просмотр профиля
Хоть на kUbuntu это и не будет работать((
Это ка-то связано с кедами?
Хто ты гэткі?

Оффлайн ffcrus

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Это ка-то связано с кедами?
Не знаю, мне не удалось это победить. Должно очищать буфер, но не очищает.

Переписал скрипт. Буфер обмена больше не используется совсем. Соответственно, не портится. Но работает у меня недостаточно стабильно и очень медленно (12мс на каждый символ). Версию считаю сырой, на гитхаб выкладывать стыдно)) Делюсь сырой версией (на примере скрипта, меняющего раскладку у выделенного текста). Потестируйте у себя, пожалуйста. Нужна обратная связь:
(Нажмите, чтобы показать/скрыть)

Оффлайн KOT040188

  • Активист
  • *
  • Сообщений: 326
    • Просмотр профиля
очень медленно
Ну медленный скрипт у нас уже есть и работает. Но так уж и быть протестирую, завтра.
Хто ты гэткі?

Оффлайн qpdb

  • Забанен
  • Активист
  • *
  • Сообщений: 628
  • xUbuntu 22.04
    • Просмотр профиля
Я Вас, ffcrus, категорически приветствую!😇
Тестировал я так:
Вариант #1 из терминала запускал, потом выделял быстро  строку в текстовом редакторе или в строке адреса browser’a…
sleep 5; ./22Nov22garlic.shЗдесь sleep, понятное дело, чтобы успеть перейти из терминала до введенного текста.
Результат положительный символов было до 50, я бы не сказал что это медленно, да не „мгновенно”, но и не медленно. И вообще это оценочно, в смысле „мгновенно” или медленно😕… Меня бы устроило.
Вариант #2 на hotkey, потребовалось лёгкое усыпление😇 скрипта в целом:
… … … …
sleep 0.5
str=$(xsel -op | sed… … … …
… … … …
Сказать, что прям так сильно изменилась скорость не могу, „0.5” чисто с потолка, наверное можно уменьшать…
Вариант #3 тоже на hotkey
sh -c 'xfce4-terminal --geometry 10x3+33+790 -T TR -e /home/fjf/Webcam/22Nov22garlic.sh'Идея была в том, чтобы запустить в маленьком терминальчике, посчитал что мол раз в большом срабатывает без задержек и снов то и здесь должно, есть отличие но при длинном тексте успевает перекодировать только часть фразы.

В целом рабочая версия, полагаю, а „отладка”, во всяком случае у меня, всего одной строкой. Да, если оставить два языка то переключение работает без нареканий.

2022 Nov 22; 07:51 PM


Оффлайн ffcrus

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Да, если оставить два языка то переключение работает без нареканий.
Спасибо, это очень приятно слышать, мотивирует не бросить на текущем этапе)) Я хочу ещё вынести разные раскладки в разные переменные и таким образом сделать возможность использовать скрипт людям с альтернативными раскладками. Если руки дойдут, конечно))
Вариант #3
Интересное решение. Не вижу как эффективно использовать в данном проекте, но когда-нибудь я точно вспомню Вас и использую ;-)
я бы не сказал что это медленно, да не „мгновенно”, но и не медленно.
Ну, у меня 1187 символов за 13 секунд сделал:
https://gifyu.com/image/ShmCW
Без каких-либо делеев. Экспериментировал с переводом целой статьи, состоящей из 5 абзацев и 1700+ символов. Меня не устроила ни стабильность, ни качество, ни скорость работы. Да, я никогда не буду делать перевод раскладки на таких объёмах. Да, из ~10 попыток он один раз выплюнул около 20 первых символов и на этом остановился. Да, он странно работает с переводом строк (хоть я и разобрался с пробеламии, у меня склеивает абзацы). Но работает и не использует буфер обмена вообще. Подойдёт для тех, кто готов платить такую цену, лишь бы буфер не портило)) Я, наверное, не буду выкладывать эту версию на гитхаб, оставлю её только в этой ветке, чисто для истории. Ну и вдруг кому-нибудь понадобится идею почерпнуть)) А я откачусь к версии, где всё работает быстро, но в буфере на предпоследнем месте будет переведённый в нужную раскладку текст (на последнее место я верну то, что было в буфере до этого). Плюс добавлю очистку буфера и опциональный таймаут. Назову 0.5 и выложу на гитхаб  :coolsmiley:

Оффлайн KOT040188

  • Активист
  • *
  • Сообщений: 326
    • Просмотр профиля
Нужна обратная связь:
Докладываю. Перидически вместо конвертации текста вставляется содержимое буфера. Закономерности не выявил, но где-то 1 раз из 5.

Пользователь добавил сообщение 23 Ноября 2022, 23:14:02:
А сейчас реже стало 1 раз из 20. И заметил особенность, это же скрипт меняющий выделенный текст, а при выделении он попадает в буфер, так вот скрипт это дело подчищает.
« Последнее редактирование: 23 Ноября 2022, 23:14:02 от KOT040188 »
Хто ты гэткі?

 

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