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


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

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

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

Оффлайн ozim

  • Активист
  • *
  • Сообщений: 350
  • Kubuntu 14.04 x64
    • Просмотр профиля
Берём вот этот скрипт (последняя так сказать редакция)
#!/bin/bash
sleep 0.1; xdotool sleep 0.3 key Ctrl+c
xsel | sed "y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.\/<>?@#\$^&\`~фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбюБЮ№ёЁ/фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбю.БЮ,\"№;:?ёЁabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.<>#\`~/" | xsel -b -i
sleep 0.1; xdotool sleep 0.1 key Shift+Insert
sleep 0.1; xsel --clear
Скрипт работал на 18.04, а на 20.04 стал добавлять при переводе с английский после отлично переведенного на русский еще и "оригинал" на английском.
Подскажите пожалуста, что изменить?
у меня вообще перестал работать

Оффлайн Registratorvin

  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
у меня вообще перестал работать
а xsel и xdotool установлены?

Оффлайн ozim

  • Активист
  • *
  • Сообщений: 350
  • Kubuntu 14.04 x64
    • Просмотр профиля

Оффлайн KOT040188

  • Активист
  • *
  • Сообщений: 325
    • Просмотр профиля
Добавил параметры, задержки.
В браузере уже нормально работает, но одна проблема осталась: не обновляется содержимое буфера выделеного текста после снятия выделения с текста.
Т.е после выделения какого-то текста, снятия выделения, xsel -o и xclip -o -selection clipboard
продолжают выводить этот текст.
Что-то глючит,  если запустить с параметром auto, то выдаёт какую-то жуткую дичь и кашу с текстом из истории буфера обмена (а если выделить текст, то нормально переводит). Может кто-то поправить?
« Последнее редактирование: 07 Ноября 2020, 17:42:33 от KOT040188 »
Хто ты гэткі?

Оффлайн emvaized

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
У меня почему-то на последней KDE Neon ни один из предложенных выше скриптов не работает нормально

Оффлайн KOT040188

  • Активист
  • *
  • Сообщений: 325
    • Просмотр профиля
emvaized, да всё оно протухло.
Хто ты гэткі?

Оффлайн qpdb

  • Активист
  • *
  • Сообщений: 624
  • xUbuntu 22.04
    • Просмотр профиля
У меня почему-то на последней KDE Neon ни один из предложенных выше скриптов не работает нормально

Да дело в том, что предлагалось действительно давно и много всего и разного :( … У меня для адресной строки браузеров (вроде негде больше особо применять), работает положим это:

Код: (sh) [Выделить]
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"

Т.е. заменяет всю строку, оформлено скриптом на горячую клавишу. Но дело в том что работает не мгновенно. Не получилось у меня с xdotool во всяком случае быстро и я почитав тут на форуме и в других местах применил
Код: (ыр) [Выделить]
sudo apt install xmacro
Нужно попытаться переделать под xdotool. Да, тут есть свежая тема про буферы обмена, так вот исходя из сообщений можно сделать вывод, что поведение буферов обмена может отличаться в X11 и Wayland :( , что может тоже влиять…

Да, время идёт, а мы за ним не поспеваем…





Пользователь добавил сообщение 29 Марта 2021, 02:28:51:
В общем предыдущий вариант не очень удачный :'(
Вот новый:
Код: (sh) [Выделить]
xdotool click 1;sleep 0.2
xdotool key --delay 250 Home
xdotool key --delay 250 Shift_R+End
QQ=`xdotool key --delay 250 Control_L+c|xsel -b -p`
xdotool key --delay 250 Control_L+x
echo -n $QQ | sed "y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.\/<>?@#\$^&\`~фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбюБЮ№ёЁ/фисвуапршолдьтщзйкыегмцчняФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯхъХЪжэЖЭбю.БЮ,\"№;:?ёЁabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{};':\",.<>#\`~/" | xsel -b -p
xdotool key --delay 250 Control_L+v

1.)Предупреждаю, я в этом деле абсолютнейший любитель! Осмотр специалиста не повредил бы  :idiot2:

2.)В свете того, что есть ещё и Wayland это нужно учесть, у меня x11 проверял на текстовом редакторе mousepad и в адресной строке браузеров. Система xubuntu 20.04.

3.)На базе этого «творения :-\» можно попробовать сделать скрипты для замены последнего слова и произвольного выделения. Больше по-моему ничего и не нужно особо… Ну не целые же абзацы менять!
« Последнее редактирование: 29 Марта 2021, 02:54:09 от qpdb »
Рекомендую ознакомиться с современной трактовкой темы „collective responsibility and the state”, а также темами сопряжёнными с этой… В современных реалиях это может оказаться полезным…

Оффлайн qpdb

  • Активист
  • *
  • Сообщений: 624
  • xUbuntu 22.04
    • Просмотр профиля
Весна продолжается, господа, с чем Вас всех и поздравляю по случаю 1-го апреля! :D

Перечитал снова всю тему. И попробовал переделать. Я правда не  готов оценить практическую ценность; xNeur в рабочем состоянии заменить, конечно тяжело :'( … Но как говорится «раз звёзды зажигают…»

Испытывал только в xUbuntu 20.04, что будет в Wayland’е не знаю. Пробовал в текстовом редакторе mousepad, в LO в адресной строке браузеров и в поле для сообщения на форумах. Вроде работает, во всяком случае у меня :)!

Задержки ставил минимальные, скорости хотел, ну можно добавить, раздражающего торможения нет. Наверное можно сделать лучше, но я не знаю как :idiot2:

Если кому-то это вдруг нужно можете протестировать. Если не работает через клавиши, убедитесь в работоспособности в терминале.
По типу sleep 10; sh -c  /путь/ABCD.sh и выбирайте пока идёт задержка место где собираетесь применить.

1.)Смена регистра выделенного текста (Маша Ела Кашу → мАША еЛА кАШУ) т.е инвертирование.
(Нажмите, чтобы показать/скрыть)
2.)Смена раскладки выделенного текста (пришёл dnjhjq vtczw весТны → пришёл второй месяц весТны)
(Нажмите, чтобы показать/скрыть)
3.)Смена раскладки последнего слова( т.е. до пробела), выделение не нужно (два триллиона ljkkfhjd → два триллиона долларов)
(Нажмите, чтобы показать/скрыть)
4.)Смена раскладки всей строки выделение не нужно. (Cvtyf hfcrkflrb dctq cnhjrb → Смена раскладки всей строки)
(Нажмите, чтобы показать/скрыть)
Рекомендую ознакомиться с современной трактовкой темы „collective responsibility and the state”, а также темами сопряжёнными с этой… В современных реалиях это может оказаться полезным…

Оффлайн emvaized

  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Вот новый:
Попробовал только что - возвращает какой-то бессвязный набор русских символов, в 10 раз длиннее изначального слова :D

можете протестировать
У меня - выделяет текст, но не меняет раскладку... Возможно, всему виной какие-то особенности KDE Neon (слышал они много переделали под капотом).

Я, впрочем, таки нашел для себя работающее решение (правда, использует Python вместо линуксовых инструментов):
https://mikhailvinakov.blogspot.com/2019/08/layout-switcher-ru.html

На данный момент, единственный скрипт который работает корректно у меня :)
« Последнее редактирование: 05 Апреля 2021, 23:07:21 от emvaized »

Оффлайн qpdb

  • Активист
  • *
  • Сообщений: 624
  • xUbuntu 22.04
    • Просмотр профиля
какие-то особенности KDE Neon

Тут что первое, нужно глянуть это:

Код: (sh) [Выделить]
echo $XDG_SESSION_TYPE
x11 🢀

Или
Код: (sh) [Выделить]
loginctl show-session $(loginctl | grep $(whoami) | awk '{print $1}') -p Type
Type=x11 🢀
А вдруг там Wayland?

Цитировать
На данный момент, единственный скрипт который работает корректно у меня

Да, безусловно штука продуманная. Если не полениться и разобраться в скрипте, то возможно есть вариант изготовления скриптов по всем указанным мной выше « Ответ #67 : 02 Апрель 2021, 00:26:18 » случаям.

Хочется что иметь, выделил, нажал hotkeys получил результат :), а ещё лучше глянул, моргнул глазом и получил результат, но до этого пока далеко :) !

Вроде бы всего две программы xdotool и xsel у обоих минимум ключей. Просто очень тяжело идёт сопряжение gui and cli :( … Там ещё много от задержек зависит sleep и --delay

Самоделка она и в Новой Гвинее самоделка :idiot2:  :'(
« Последнее редактирование: 06 Апреля 2021, 02:48:17 от qpdb »
Рекомендую ознакомиться с современной трактовкой темы „collective responsibility and the state”, а также темами сопряжёнными с этой… В современных реалиях это может оказаться полезным…

Оффлайн KOT040188

  • Активист
  • *
  • Сообщений: 325
    • Просмотр профиля
Я, впрочем, таки нашел для себя работающее решение (правда, использует Python вместо линуксовых инструментов):
Неужели действительно работает??? А что насчёт буфера?
Хто ты гэткі?

Оффлайн qpdb

  • Активист
  • *
  • Сообщений: 624
  • xUbuntu 22.04
    • Просмотр профиля
Неужели действительно работает??? А что насчёт буфера?
А что Вы имеете в виду там же всё через буфер работает так как xsel главная программа. Это касательно моих поделок…

А предложенный emvaized скрипт я попробовал быстро запустить, получил ошибку
SyntaxError: Non-ASCII character '\xd0' in file abcd.py on line 5, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

Нужно будет таки его  настроить, хотя у меня то всё работает то, что я для себя делал… « Ответ #67 : 02 Апрель 2021, 00:26:18 » , правда были странности с вопросительным знаком, но это нужно ту длинную строку …hijklmnopqrstuvw… для sed просмотреть внимательно, я её не сочинял, а позаимствовал :)

Питоновский скрипт явно перспективнее!
« Последнее редактирование: 09 Апреля 2021, 22:48:32 от qpdb »
Рекомендую ознакомиться с современной трактовкой темы „collective responsibility and the state”, а также темами сопряжёнными с этой… В современных реалиях это может оказаться полезным…

Оффлайн KOT040188

  • Активист
  • *
  • Сообщений: 325
    • Просмотр профиля

Пользователь добавил сообщение 09 Апреля 2021, 23:31:44:
А что Вы имеете в виду там же всё через буфер работает так как xsel главная программа
Я про порчу буфера. Допустим в буфере есть текст, который я хочу вставить после набранного вручную текста, набрал в неправильной раскладке, конвертировал, а теперь в буфере у меня не тот текст, который я хотел вставить, а тот что я набирал вручную.

Пользователь добавил сообщение 09 Апреля 2021, 23:37:37:
4.)Смена раскладки всей строки выделение не нужно. (Cvtyf hfcrkflrb dctq cnhjrb → Смена раскладки всей строки)
Работает, но почему раскладку не переключает?
« Последнее редактирование: 09 Апреля 2021, 23:40:43 от KOT040188 »
Хто ты гэткі?

Оффлайн qpdb

  • Активист
  • *
  • Сообщений: 624
  • xUbuntu 22.04
    • Просмотр профиля
Я понял, KOT040188!
Объясняю почему мои корявые самоделки этого не делают:
1.)
Я про порчу буфера.
Я об этом даже не подумал, я этим xNeur практически никогда не пользовался, потому даже подзабыл что оно делать должно было… :( .
С буферами я приблизительно знаю как сделать на выходных попробую переделать. Задачу я понял так: Сохранить для последующей вставки те данные в обоих буферах обмена, которые были до применения скрипта который исправил неправильную раскладку.
2.)
Работает, но почему раскладку не переключает?
Тоже самое :( я даже над этим не задумывался :idiot2:, а ведь это одна из главных частей задачи имитации xNeur. Надо что-то дописать…
Мыслей на этот счёт две и я как обезьянка из мультфильма буду их думать «у меня есть мысль и я её думаю :)»:
1.)Для внутреннего (т.е. для себя любимого, употребления можно через xdotool нажать клавиши переключения раскладки. У меня это
 левый Shift включает английский, правый по необходимости какой-либо другой язык , например русский.
2.) setxkbmap что более правильно других инструментов переключения из терминала раскладки я не знаю, может и есть…
Это хорошо KOT040188 что Вы написали, мотивация появилась, глядишь  может кто из хорошо знающих тему людей подскажет что-либо дельное. А тем временем свои полуфабрикаты буду пробовать доводить до «75% ;) фабрикатов»
« Последнее редактирование: 10 Апреля 2021, 03:32:35 от qpdb »
Рекомендую ознакомиться с современной трактовкой темы „collective responsibility and the state”, а также темами сопряжёнными с этой… В современных реалиях это может оказаться полезным…

Оффлайн KOT040188

  • Активист
  • *
  • Сообщений: 325
    • Просмотр профиля
Сохранить для последующей вставки те данные в обоих буферах обмена, которые были до применения скрипта который исправил неправильную раскладку.
Да, именно так.
Это хорошо KOT040188 что Вы написали, мотивация появилась, глядишь  может кто из хорошо знающих тему людей подскажет что-либо дельное. А тем временем свои полуфабрикаты буду пробовать доводить до «75%  фабрикатов»
Всегда пожалуйста. Коллективный разум  это хорошо. Я вообще люблю что-нибудь тестировать, находить баги, отправлять багрепорты, обсуждать с авторами их приложения ;)
Хто ты гэткі?

 

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