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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

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

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

Оффлайн просто Евгений

  • Активист
  • *
  • Сообщений: 433
  • Мы уже идем к вам...
    • Просмотр профиля
Если не трудно, объясните нубу, как этими скриптами пользоваться, плиз. :-[
Вот включил комп и дальше......? :idiot2:
Поговори, хоть ты со мной, гитара, семиструнная...

Оффлайн qpdb

  • Забанен
  • Активист
  • *
  • Сообщений: 628
  • xUbuntu 22.04
    • Просмотр профиля
Если не трудно
Для начала Вам нужно определиться есть ли у Вас задачи требующие автоматизации ошибочно применённой раскладки.
Если Вам редко приходится, к примеру, вставлять английской (немецкое, турецкое и т.п) слово в оригинале в, скажем текст на русском языке, то Вам ни к чему эти скрипты.
Принцип здесь простой: Вы русский текст напечатали на английской раскладке и наоборот. Скрипты это могут преобразовать. В зависимости от желаемого можно преобразовывать последнее слово, всю строку или отдельное слово.
Еру иуые шы нуе ещ сщьую Kexitt to` dgthtlb/
EE=$(echo 'Еру иуые шы нуе ещ сщьую Kexitt to` dgthtlb/');\
echo -n $EE | sed "y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};\
':\",.\/<>?@#\$^&\`~фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбюБЮ№ёЁ/фисвуапршолдьтщз\
йкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбю.БЮ,\"№;:?ёЁabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRST\
UVWXYZ[]{};':\",.<>#\`~/"
Получится, во всяком случае должно😇:„The best is yet to come. Лучшее ещё впереди.

Я применяю в франко-английских и англо-французских текстах. Традиционно у нас в английских текстах французские слова пишутся в оригинале ну и наоборот…

2022 Nov 20; 01:14 PM

Оффлайн просто Евгений

  • Активист
  • *
  • Сообщений: 433
  • Мы уже идем к вам...
    • Просмотр профиля
То есть, каждый раз, как я набрал слова не в той раскладке, мне надо запускать скрипт в терминале и он мне переведёт в правильную форму?
То бишь, включил комп, поколбасил в фоторедакторе, затем зашёл на форум, начал набирать текст и, как всегда в англ. раскладке, беру скрипт запускаю его в терминале и он мне исправляет введёный текст. Затем, выхожу с форума, врубаю CAD рисую в нём, хочй сделать надпись на детале, а она опять по-англ. Я опять захожу в терминал, запускаю скрипт и он мне исправляет текст, ну и так далее. Я всё правильно понял?
Поговори, хоть ты со мной, гитара, семиструнная...

Оффлайн qpdb

  • Забанен
  • Активист
  • *
  • Сообщений: 628
  • xUbuntu 22.04
    • Просмотр профиля
То есть, каждый раз, как я набрал слова не в той раскладке, мне надо запускать скрипт в терминале и он мне переведёт в правильную форму?
Естественно нет😇!
Первое что нужно сделать это более внимательно ознакомиться с темой т.е. прочитать выборочно часть сообщений…
Скрипты запускаются hotkey’ями. У меня их четыре, один просто меняет регистр выделенного текста:

⟶ <Primary>KP_Subtract — т.е. Ctrl✚„-” на цифровой клавиатуре;
раскладка последнего слова
⟶ Pause — ❰наиболее часто применяется потому одна клавиша❱;
⟶ <Alt>KP_Subtract — раскладка выделенного текста в любой его части;
⟶ <Super>KP_Subtract — раскладка всей строки без выделения независимо от положения курсора в строке.

Простор для творчества необъятный, можно добавить переключение раскладки, можно добавить звуковое сопровождение, но эквивалента xNeur такой самодеятельностью не добиться😞…

2022 Nov 20; 03:10 PM

Оффлайн просто Евгений

  • Активист
  • *
  • Сообщений: 433
  • Мы уже идем к вам...
    • Просмотр профиля
Спасибо. Гляну потом. 8)
Поговори, хоть ты со мной, гитара, семиструнная...

Оффлайн ffcrus

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
объясните нубу, как этими скриптами пользоваться, плиз
Всё подробно написано на Github (https://github.com/ffcrus/garlic). Примерно так же Вы можете установить любые другие скрипты из данной темы. Если будут вопросы - пишите здесь.

Пользователь добавил сообщение 21 Ноября 2022, 05:24:46:
Выкатил новую версию (0.3): https://github.com/ffcrus/garlic
  • Скорость работы: мгновенно.
  • Буфер обмена теперь не портится.
  • Звук по-умолчанию выключен. Пользователь может включить, раскомментировав две последних строки.
  • Идея с капсом не прижилась: портит аббревиатуры. (кРАСНЫЙ -> Красный; СССР -> ссср).
  • С другими раскладками можно реализовать, если научиться понимать какие есть, какая выбрана сейчас и в какую из нескольких надо перекодировать. Я не смог пока придумать как это выбирать автоматически, чтобы всех устроило. Поэтому сейчас у меня две раскладки: русская и английская. Каждый пользователь может добавить свою любую прямо в скрипт. Для этого нужно поменять всего одну строку. По-хорошему, надо вынести символы для перекодирования в отдельную переменную(ые), но это уже в следующей версии. Если она будет  ::)
  • Есть идея сделать из двух скриптов один, но надо считать сколько символов выделено прямо сейчас пользователем. И либо перекодировать выделенное, либо перекодировать всю строку (если выделено 0 символов). Это несложно, но пока нет времени на эту доработку.
« Последнее редактирование: 21 Ноября 2022, 05:27:07 от ffcrus »

Оффлайн qpdb

  • Забанен
  • Активист
  • *
  • Сообщений: 628
  • xUbuntu 22.04
    • Просмотр профиля
Приветствую, ffcrus, по-моему из bash’a Вы выжали уже почти всё возможное 😇!

А вот про этот параметр xdotool ❰--clearmodifiers
xdotool key --clearmodifiers Control_L+Insert я пропустил, не дочитал man😞…

Когда в других скриптах что-то не получалось применял xmacro, работает надёжно но медленно😕.

2022 Nov 20; 10:18 PM

Оффлайн ffcrus

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
qpdb, спасибо, я старался.
xmacro, работает надёжно но медленно
Да, чем меня и не устроил. Я долго отлаживал, но нашёл последовательность команд и параметров, которые у меня работают максимально быстро и абсолютно без сбоев. Удалось избавиться от всех делеев, к тому же.

Оффлайн KOT040188

  • Активист
  • *
  • Сообщений: 334
    • Просмотр профиля
Выкатил новую версию (0.3)
Буфер всё равно портится, но хотя бы восстанавливается :)
Хто ты гэткі?

Оффлайн ffcrus

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
Он хоть и медленнее зато буфер не портит
Кстати да! Вы говорили, что Ваш скрипт буфер именно не портит. Покажете? Я не знаю как заставить BASH вставлять обратно исправленную строку не через буфер обмена.

P.S.  Ещё не нашёл как узнать выделена ли прямо сейчас часть строки. Надеялся через str=$(xsel -op)
text_len=${#str}
получать нулевую строку, но не вышло. Эта команда отдаёт последнюю выделенную когда-то. Если кто-то знает как получить информацию  о длине выделенной строки, буду благодарен. Без этого не получится всё сделать единым скриптом, к сожалению.

Оффлайн qpdb

  • Забанен
  • Активист
  • *
  • Сообщений: 628
  • xUbuntu 22.04
    • Просмотр профиля
По поводу буфера обмена.

Если используется какой-либо менеджер буфера, то его настройки могут влиять в xfce именно так…

Вот например у меня первоначальный буфер из-за применения менеджера сохраняется. Т.е. то что было в буфере до применения скрипта там и остаётся.

2022 Nov 21; 11:44 AM

Оффлайн ffcrus

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
qpdb, это то понятно. Я к тому, что чтобы вставить исправленную раскладку в браузер (например) обратно, мне нужно сначала загнать его в буфер обмена, а потом сэмулировать нажатие клавиш Shift+Insert. Понятно, что потом я в буфер загоняю то, что в нём было до этого. Вопрос: каким образом можно вставить уже сконвертированный текст обратно в какой-нибудь блокнот (или строку браузера), не задействуя буфер обмена? Как забрать выделенное минуя буфер обмена - понятно, тут вопросов не возникает. Вот как выглядит мой буфер:

Т.е. скопированное до работы скрипта перемещается обратно наверх буфера (как видно на скриншоте). В буфере даже не остаётся фразы в кривой кодировке (этого нет в версии 0.3, но уже есть в неопубликованной ещё 0.4). Но исправленная фраза всё равно проходит через буфер. Если есть решение, чтобы обойти это, я бы посмотрел и реализовал. Если оно, конечно, вообще существует))

Оффлайн Rootdiv

  • Любитель
  • *
  • Сообщений: 77
    • Просмотр профиля
    • Web-разработчик
Но исправленная фраза всё равно проходит через буфер. Если есть решение, чтобы обойти это, я бы посмотрел и реализовал. Если оно, конечно, вообще существует))
В теории можно использовать xdotool type 'Конвертируемый текст', но на практике это работает очень медленно и не сохраняет пробелы.

Я решил у себя проверить скрипты ffcrus и у меня они не заработали, конвертация текста не происходит. Система Ubuntu Mate 22.04
У меня работают скрпиты из этого поста https://forum.ubuntu.ru/index.php?topic=271377.msg2447597#msg2447597
Ubuntu Mate 24.04.2 64 bit

Оффлайн ffcrus

  • Новичок
  • *
  • Сообщений: 19
    • Просмотр профиля
xdotool type 'Конвертируемый текст'
У меня это очень плохо работало. Но спасибо, я забыл уже об этом варианте, попробую ещё с этим покопаться.
Я решил у себя проверить скрипты ffcrus и у меня они не заработали
1. Что выдаст в ответ на это (две строчки, две разных команды)?
echo $XDG_SESSION_TYPE
loginctl show-session $(loginctl | grep $(whoami) | awk '{print $1}') -p Type
Если выдаст x11, то должно работать.
2. Понимаю, что вопрос глупый, но если в предыдущем пункте получили x11 и не работают скрипты... Точно установили все зависимости? Попробуйте (на всякий случай) ещё раз запустить:sudo apt install xdotool xsel sed
Пользователь добавил сообщение 22 Ноября 2022, 00:31:57:
Скорее всего у Вас выдаст и x11 и все зависимости установлены. Попробуйте добавить такое:
sleep 0.3sв строки 8,11,14,21,24 (на примере layout_changing_selected.sh v0.3). Скрипт layout_changing_previous.sh пока трогать не будем, там то же самое. Скорее всего будет медленно, но работать. Попробуйте уменьшать их с шагом 0.1 вплоть до полного обнуления (удаления). Если я прав, то очень интересно в каком месте не хватает таймаута у Вас.
« Последнее редактирование: 22 Ноября 2022, 00:33:20 от ffcrus »

Оффлайн Rootdiv

  • Любитель
  • *
  • Сообщений: 77
    • Просмотр профиля
    • Web-разработчик
Скорее всего у Вас выдаст и x11 и все зависимости установлены.
Именно так.
Попробуйте добавить такое:
sleep 0.3sв строки 8,11,14,21,24 (на примере layout_changing_selected.sh v0.3).
Так заработало.
Я проверил вариант с одной задержкой и её достаточно в строке 11

Пользователь добавил сообщение 22 Ноября 2022, 00:48:14:
Попробуйте уменьшать их с шагом 0.1 вплоть до полного обнуления (удаления).
Если удалить не работает, если поставить 0.1s работает.

Пользователь добавил сообщение 22 Ноября 2022, 00:58:09:
Кстати заметил, что у меня при срабатывание скрипта не всегда в менеджере буфера обмена Parcellite сохраняется конвертированное слово, что хорошо как раз искал такой вариант.
« Последнее редактирование: 22 Ноября 2022, 00:58:56 от Rootdiv »
Ubuntu Mate 24.04.2 64 bit

 

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