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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

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

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

Оффлайн UltraMax

  • Любитель
  • *
  • Сообщений: 90
    • Просмотр профиля
Скажите, кто-то использовал данный скрипт?
Не совсем понимаю, как его использовать. Скачал из bin файл, положил как описано, дал права, запускаю и смотрю, что он в stdout пишет

keyboard: Power Button
keyboard: Sleep Button
keyboard: ELAN0515:00 04F3:3142 Touchpad
mouse: ELAN0515:00 04F3:3142 Touchpad
keyboard: Logitech USB Optical Mouse
mouse: Logitech USB Optical Mouse
keyboard: Power Button
keyboard: AT Translated Set 2 keyboard
keyboard: HD User Facing: HD User Facing
keyboard: ELAN0515:00 04F3:3142 Mouse
mouse: ELAN0515:00 04F3:3142 Mouse
keyboard: Acer Wireless Radio Control
keyboard: Acer WMI hotkeys
* gnome-terminal-server
= notepadqq-bin
* gnome-terminal-server

Как я понимаю, он должен сам анализировать набираемый текст и переключать его, но в моем Linux Mint этого не происходит
Никто его не тестировал?

Оффлайн qpdb

  • Активист
  • *
  • Сообщений: 475
  • xUbuntu 20.04
    • Просмотр профиля
UltraMax, меня смущает момент: „Gnome is the pain”,- в описании, помимо всего прочего ничего не говорится про поддержки словарей… Без поддержки словарей такая программа вряд ли будет корректно работать.😞

Для меня главное англо-французское переключение и наоборот, на форумах с английским языком, ясное дело, этот вопрос не главный, а на французских форумах я ничего не нашёл😞

Вот ещё статья на русском языке но особой ясности не добавляет тоже😞…
https://habr.com/ru/post/495748/

2022 Dec 02; 01:19 PM

Рекомендую ознакомиться с современной трактовкой темы „collective responsibility and the state”, а также темами сопряжёнными с этой… В современных реалиях это может оказаться полезным…

Оффлайн ffcrus

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

P.S.  Возможно, использование xdotool было ошибкой. Мне так и не удалось в 100% случаев после строки xdotool key Shift+Home получать выделенное командой xsel -op. Такое ощущение, что куда-то уходит фокус в определённый момент. Надо попробовать xmacro, может будет стабильнее.

Перидически вместо конвертации текста вставляется содержимое буфера. Закономерности не выявил
Виноват в этом механизм иксов, если запустить скрипт конвертации слишком быстро, система может не успеть увидеть что же было выделено. А при пустом праймери-буфере (а скрипт именно туда сохраняет выделенное), xsel использует буфер обмена. Попробуйте увеличивать значение в 10 строке версии 0.5 Возможно, это поможет. Но это не точно))
так вот скрипт это дело подчищает.
Эту мысль не понял...
Какая-то тревожная тишина.
Была сложная неделя, было много работы, хотелось спать))
« Последнее редактирование: 04 Декабря 2022, 01:08:39 от ffcrus »

Оффлайн KOT040188

  • Активист
  • *
  • Сообщений: 288
    • Просмотр профиля
Выложил версию 0.5: https://github.com/ffcrus/garlic

Как её получить? Архивом скачивается версия 0.3
Вы думаете у котов лёгкая жизнь? А вы попробуйте целый день лизать меховую шапку!
Как бы хотелось однажды проснуться, а тебе 8 лет и вся эта херня просто приснилась…

Оффлайн Rootdiv

  • Любитель
  • *
  • Сообщений: 63
    • Просмотр профиля
    • Web-разработчик
KOT040188, у меня версия 0.5 скачивается.

Я оставлю версию 0.3 с моими модификациями так как у меня версия 0.5 сохраняет в менеджере буфера обмена конвертированный текст.
(Нажмите, чтобы показать/скрыть)
Ubuntu Mate 22.04.1 64 bit

Оффлайн qpdb

  • Активист
  • *
  • Сообщений: 475
  • xUbuntu 20.04
    • Просмотр профиля
у меня версия 0.5 скачивается
Да, действительно у меня тоже скачивается…

2022 Dec 04; 07:31 AM
Рекомендую ознакомиться с современной трактовкой темы „collective responsibility and the state”, а также темами сопряжёнными с этой… В современных реалиях это может оказаться полезным…

Оффлайн ffcrus

  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Архивом скачивается версия 0.3
В архиве bin/layout_changing_selected.sh v0.5 (2022.12.03) и  layout_changing_previous.sh v0.3 (2022.11.21). Как я и написал в описании, обновлять скрипт, который исправляет раскладку во всей предыдущей строке, я не стал (оставил 0.3). Обновил только перевод раскладки уже выделенного текста. Тесты показали существенно более низкую надёжность решения v0.5 для перевода раскладки всей строки перед курсором. То, что выделяется при помощи xdotool, потом не всегда попадает в xsel (слишком часто возникает этот глюк). Это написано в описании к релизу, кстати. Я потратил на тестирование не один час (и не два  :laugh: ). Большинство решений было забраковано. В итоге я разочаровался в связке xdotool+xsel. Осталась всего одна идея, которую я не попробовал, но там надо очень сильно всё переделывать для тестирования гипотезы. А у меня моральные силы вчера закончились отлавливать глюки в этом максимально простом скрипте  ;D Может быть, когда-нибудь я вернусь к доработке этого скрипта. Но, скорее всего, буду пробовать xmacro+xsel. Если вообще останусь на иксах к тому времени. То, что сейчас лежит на гитхабе, у меня работает максимально стабильно. Не уверен, что хочу что-то менять. По крайней мере, в ближайшее время  ;)

P.S.  Идеи, которые так и остались в бэклоге. Вдруг, кто-то захочет их использовать:
  • Использовать несколько раскладок (больше двух) или другой набор (не как в скрипте: только русско-английская). Для этого надо выносить перекодировки в отдельные текстовые переменные (сейчас это хардкод в 15 строке). Реализовать переключение на следующую раскладку несложно и скучно (поэтому не сделал). А вот как понять автоматически в какую из заложенных раскладок надо перекодировать, я придумать не смог. Единственная мысль - использовать secondary буфер и гонять по кругу по нажатию кнопки то, что там лежит через все раскладки. Это не так просто (быстро удалять N символов перед курсором, равное количеству символов в буфере), но и нужно очень небольшому количеству людей (на мой взгляд).
  • Слить два скрипта в один. Это усложнит скрипт и сделает выполнение более медленным (поэтому есть вопрос целесообразности). Для понимания выделен ли текст или нет, надо очищать primary и сравнивать содержимое clipboard и primary. Если они оба не пусты и не равны (если иксы снова запихивают в primary выделенное после очистки, это и есть идея, о которой я писал выше, которую надо проверять), то существует выделенный фрагмент и надо переводить раскладку выделенного фрагмента. В противном случае необходимо переводить всю строку перед курсором.

Пользователь добавил сообщение 04 Декабря 2022, 15:49:33:
версия 0.5 сохраняет в менеджере буфера обмена конвертированный текст.
Интересненько... Я не понимаю почему у Вас это работает. Вы очищаете буфер уже ПОСЛЕ того, как восстанавливаете в него старое содержимое. Попробуйте в версии 0.5 заменить это:
## Очищаем из буфера обмена исправленную фразу (не у всех работает эта функция)
xsel -cp && xsel -cs && xsel -cb
на это:
## Очищаем из буфера обмена исправленную фразу (не у всех работает эта функция)
xsel --clear
У меня это не влечёт за собой абсолютно никакого эффекта. Что-то по-другому работает в kUbuntu, очевидно))
« Последнее редактирование: 04 Декабря 2022, 15:52:50 от ffcrus »

Оффлайн KOT040188

  • Активист
  • *
  • Сообщений: 288
    • Просмотр профиля
Погонял версию 0.3 -- через раз вместо конвертации вставляет содержимое буфера.

Пользователь добавил сообщение 04 Декабря 2022, 16:11:06:
А вот версия с выделением 0.5 работает норм.

Пользователь добавил сообщение 04 Декабря 2022, 16:23:10:
Может версию исправляющую всю раскладку подтянуть до версии 0.5?

Пользователь добавил сообщение 04 Декабря 2022, 21:36:08:
А ещё лучше объеденить два скрипта в один, если выделен текст конвертировать его, если нет, конвертировать всю строку.
« Последнее редактирование: 04 Декабря 2022, 21:36:08 от KOT040188 »
Вы думаете у котов лёгкая жизнь? А вы попробуйте целый день лизать меховую шапку!
Как бы хотелось однажды проснуться, а тебе 8 лет и вся эта херня просто приснилась…

Оффлайн Rootdiv

  • Любитель
  • *
  • Сообщений: 63
    • Просмотр профиля
    • Web-разработчик
ffcrus, сделал указанную замену в версии 0.5 и всё работает как надо.
Ubuntu Mate 22.04.1 64 bit

Оффлайн UltraMax

  • Любитель
  • *
  • Сообщений: 90
    • Просмотр профиля
Вот ещё статья на русском языке но особой ясности не добавляет тоже😞…
https://habr.com/ru/post/495748/

Так оттуда потом и идет ссылка на последнюю репу

Выложил версию 0.5: https://github.com/ffcrus/garlic

Скачал (Linux Mint 21 Cinnamon). Начал проверять
В общем-то вроде как нормально, только один раз набранный текст Z gjitk uekznm d ktce (Я пошел гулять в лесу) вернуло два раза. Но в принципе, пользоваться можно, спасибо
Эх, если бы еще как в Punto Switcher оно могло автоматически переключать, цены бы не было )

Оффлайн ffcrus

  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
Погонял версию 0.3 -- через раз вместо конвертации вставляет содержимое буфера.
Которая для всей строки перед курсором? Такое бывает если несколько раз быстро переключать туда-обратно. Или если очень быстро (менее, чем через секунду) после набора текста нажать кнопку, запускающую скрипт. Если над скриптом так не издеваться, а просто использовать в повседневной жизни, у меня работает без сбоев вообще. На самом деле, эта болезнь есть и у скрипта, работающего с выделением. Но там полка выделишь, секунда эта и проходит))
Может версию исправляющую всю раскладку подтянуть до версии 0.5?
Нет смысла. Я делал, слишком часто глючит. Решил откатиться, не смог победить все глюки.
А ещё лучше объеденить два скрипта в один, если выделен текст конвертировать его, если нет, конвертировать всю строку.
Эта мысль у меня была (и есть). Подробно я описал её в пункте 2 (в PS) в своём предыдущем сообщении. Не уверен, что это имеет смысл. Это совершенно точно скажется на скорости. А я очень ценю скорость получившихся вариантов))
сделал указанную замену в версии 0.5 и всё работает как надо.
Отлично, спасибо за обратную связь. Значит сейчас поправлю в гите эту строчку. Раз она хоть у кого-то корректно работает))
только один раз набранный текст Z gjitk uekznm d ktce (Я пошел гулять в лесу) вернуло два раза
Странно, такого у себя не наблюдал. Возможно такое произошло при быстром неоднократном вызове скрипта? Какой из скриптов себя так повёл? Выделенная строка или вся строка перед курсором?

P.S. Было бы здорово, если бы вы тут или в гите отписались бы на какой версии Линукса скрипты работают, а на какой нет. Мне для статистики интересно. Да и в документацию добавлю...
« Последнее редактирование: 06 Декабря 2022, 20:00:11 от ffcrus »

Оффлайн UltraMax

  • Любитель
  • *
  • Сообщений: 90
    • Просмотр профиля
Странно, такого у себя не наблюдал. Возможно такое произошло при быстром неоднократном вызове скрипта? Какой из скриптов себя так повёл? Выделенная строка или вся строка перед курсором?

P.S. Было бы здорово, если бы вы тут или в гите отписались бы на какой версии Линукса скрипты работают, а на какой нет. Мне для статистики интересно. Да и в документацию добавлю...

Честно говоря, уже не очень помню. И было это один раз, так что спишем на залетевший протон из космоса ))

О системе:
Цитировать
Linux Mint 21 Cinnamon
Cinnamon version: 5.4.12
Linux Kernel: 5.15.0-56-generic

Если еще какие-то данные нужны, скажите

Оффлайн KOT040188

  • Активист
  • *
  • Сообщений: 288
    • Просмотр профиля
ffcrus, в принципе сейчас норм всё работает, но если использовать скрипт для выделения и ничего не выделять он начинает вставлять содержимое буфера в разных раскладках. Можно это убрать? При этом оставить переключение раскладки. Так можно повесить на одно сочетание переключение раскладки и конвертацию выделенного текста.
Вы думаете у котов лёгкая жизнь? А вы попробуйте целый день лизать меховую шапку!
Как бы хотелось однажды проснуться, а тебе 8 лет и вся эта херня просто приснилась…

Оффлайн ffcrus

  • Новичок
  • *
  • Сообщений: 18
    • Просмотр профиля
О системе
Спасибо! Ваши данные я уже внёс. Хотелось чуть больше статистики от остальных участников  :coolsmiley:
если использовать скрипт для выделения и ничего не выделять он начинает вставлять содержимое буфера
Всё правильно. Как я писал выше, при отсутствии данных в Primary буфере, при обращении в Primary буфер, будет отдано значение из Clipboard. Так работает xsel  ;)  Но можно не вызывать скрипт конвертации выделенного фрагмента, если ничего не выделено. Это решит проблему  ;D

P.S.  Это одна из ключевых проблем. Мне не удалось найти или нагуглить способ узнать что выделено в момент выполнения скрипта. Если знать это, сильно упрощается вся логика работы, становится не нужен второй скрипт и можно было бы не дёргать буфер лишний раз.
« Последнее редактирование: 07 Декабря 2022, 22:03:05 от ffcrus »

Оффлайн Rootdiv

  • Любитель
  • *
  • Сообщений: 63
    • Просмотр профиля
    • Web-разработчик
P.S. Было бы здорово, если бы вы тут или в гите отписались бы на какой версии Линукса скрипты работают, а на какой нет. Мне для статистики интересно. Да и в документацию добавлю...
У меня:
Ubuntu Mate 22.04.1
Версия Mate: 1.26.0
Linux Kernel: 5.15.0-56-generic
Ubuntu Mate 22.04.1 64 bit

 

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