LINUX.ORG.RU

TextCorrection


0

1

Исправление текста набранного в неправильной раскладке клавиатуры, и не только.

Скачать
github

видео как это работает.

Необходимо в DE добавить горячие клавиши
-r раскладка (Ctrl+).
-i раскладка инвертирование (Ctrl+").
-a аббревиатуры (Ctrl+P).
-k красная строка (Ctrl+.).
-n нижний регистр (Ctrl+]).
-v верхний регистр (Ctrl+[).
-t транслитерация (Ctrl+K).
-m вызов окна-меню для выбора действий.
-s вторым параметром, чтобы вместо слова выделить строку.

Приходится добавлять два хоткея для русской и английской раскладки. Скопировать конфиг в папку /.config/text-correction. Зависимости, нужен xdotool и можно xsel если в конфиге он будет использоваться.

Недавно обновил, добавив задержки в ini-файл.

Работает в любом месте где есть возможность выделить и вставить текст, прога эмулирует хоткеи, чтобы выделить слово, скопировать, обработать и вставить. Автовыделение не всегда надёжно, зависит от скорости процессора, обработки событий выделения редактором, в котором это происходит (Callback-функции), поэтому если выделить вручную (ctrl+shift+стрелка влево), то сработает надёжно.

Конфиг содержит исправление раскладки для русского языка, можно перенастроить для любого языка.

В комплекте более подробная справка.

Если кому интересен, вариант для Windows - вот



Последнее исправление: AZJIO (всего исправлений: 2)

Описания нет, лицензии нет, в репе каша из файлов.

и не только

А что ещё?

нужен xdotool и можно xsel

Получается, что программа - эталонное «ненужно».

Недавно обновил

Один коммит 3 месяца назад.

Radjah ★★★★★
()
Ответ на: комментарий от Radjah

Описания нет, лицензии нет, в репе каша из файлов.

Есть в справке при вызове меню с ключом -m в диалоговом окне пункт «Справка», там этот текст:

Лицензия

Программа бесплатна. Также вы можете изучать исходник, изменять код программы и компилировать, с явной пометкой об изменении. Вы можете указать себя в качестве автора, если количество весомых изменений программы превысит 50% и программа останется бесплатной.

А программеры могут ещё раздербанить deb-архив и вытащить оттуда справку не устанавливая. Ой ой, она же в архиве есть без раздербанивания.

Получается, что программа - эталонное «ненужно».

Из каких смыслов это получается, К примеру прога Parcellite использует xdotool для вставки буфера обмена. И мне эта прога нужна. Здесь ваше «ненужна» конфликтует с моим «нужна».

Один коммит 3 месяца назад.

Я и забыл что нужно и там обновлять. Эх навязали мне этот чемоданчик, теперь таскайся с ним.

AZJIO
() автор топика
Последнее исправление: AZJIO (всего исправлений: 1)
Ответ на: комментарий от kaldeon

Это можно сделать юниксовой программой

Только инвертирование? Кстати, функционал инвертирование имеет необходимость 10%, приведение к одной раскладке 90%.

AZJIO
() автор топика
Ответ на: комментарий от kaldeon

Я однажды написал полную версию. Самому не пригодилось, а вот один чел периодически отправляет в чат сообщения на другой раскладке. Сделали бота для него.

kaldeon
()
Ответ на: комментарий от AZJIO

Вы реально за каждым чихом хотите онлайн что-то открывать?

Редко, в основном просто перенабираю текст, так это быстрее.

Попробуйте в ya.ru произвести набор русского слова на английской раскладке.

anonymous
()
Ответ на: комментарий от anonymous

https://www.bolshoyvopros.ru/questions/3940062-kak-ispravit-tekst-esli-nepravilno-byla-vybrana-raskladka-klaviatury.html

Стеминг я сделал скрипт в AkelPad, конечно же посмотрев чужие исходники. JavaScript поддерживает регвыры нативно, в PureBasic мне придётся увеличить файл на 200 кб (движок PCRE) и я решил попробовать написать посимвольный анализатор, но сдулся, понимаю что могу, но очень много усилий придётся приложить. Стеминг я хотел добавить для аббревиатур и сленга, например пишем «для линукса», стеминг откидывает букву «а», находит замену и подставляет «для Linux». Этот функционал был бы мне очень полезен, но я его пока добавил в планы, в бесконечные планы.

AZJIO
() автор топика
Последнее исправление: AZJIO (всего исправлений: 1)
Ответ на: комментарий от anonymous

Редко, в основном просто перенабираю текст, так это быстрее.

ну да, пока онлайн нагуглишь, пока страницу откроешь, пока развернёшь окно, пока скопируешь, пока развернёшь яндекс, пока вставишь, пока назад скопируешь, вставишь, да, проще перепечатать. Вот поэтому я и предлагаю, нажать хоткей Ctrl+\ и получить прямо по месту готовое. Я вообще без этой проги не могу, так как переключаю раскладку часто. И уже не боишься писать, потому что знаешь, что перевернёшь текст, даже если понимаешь что в неправильной печатаешь. Гугл вроде предлагает исправленные варианты, но когда их выбираешь он там вставляет ещё одно слово, стираешь возвращает старый текст, плюнешь, хоткеем перевернёшь и пишешь дальше.

AZJIO
() автор топика
Последнее исправление: AZJIO (всего исправлений: 1)
Ответ на: комментарий от AZJIO

Этот функционал был бы мне очень полезен, но я его пока добавил в планы, в бесконечные планы.

Это конечно хорошо, что имеется стремление помочь другим людям.
Советовать ничего не буду, так как маркентолог с меня никакой.

anonymous
()
Ответ на: комментарий от anonymous

Ну понимаешь, процент с функционала маленький, а затраты весомые. Например я могу написать «для линукс» вместо «для линукса» и тогда функционал аббревиатур и сленга сработает.

AZJIO
() автор топика

Единственный кейс, когда нужны какие-то автоматически преобразователи: это неумение печатать вслепую, потому что владея слепой печатью сразу видишь, что набрал что-то не то. КМК, владение слепой печатью - первое, чему нужно научиться при работе с компьютером, это экономит не столько время (неосиляторы сейчас в очередной раз набегут с криками, что им не нужно 600 знаков в секунду печатать, и что это лишний скилл), сколько на порядок повышает комфорт работы.

Даже если не получается осилить слепую печать (я не знаю, что там у людей, которые не смогли, может по два пальца на каждой руке осталось), проще использовать разные сочетания для включения конкретных раскладок, чтобы всегда при нажатии клавиши смены включалась конкретная раскладка, а не переключалась по кругу.

Всё это в разы эффективнее всевозможных костылей. Которые, к тому же, не будут работать под Wayland.

Chiffchaff
()
Ответ на: комментарий от AZJIO

А можно узнать почему они не будут работать по Wayland? Там что копировать/вставить отменили?

Я не в курсе всех ограничений Wayland, потому что давно не разрабатываю GUI, но как минимум, в нём не работают xdotool и xsel, а их аналоги значительно скромнее по функциональности.

В целом, идеология Wayland против копирования и вставки произвольными программами произвольного текста из других окон, потому что это огромная дыра в безопасности (кража паролей, key logging, возможность вставки вредоносного кода в shell).

Chiffchaff
()
Ответ на: комментарий от Chiffchaff

потому что это огромная дыра в безопасности (кража паролей, key logging, возможность вставки вредоносного кода в shell).

Пока это дыра в функционале. Мне приходится писать софт на винде даже для линукса, потому что там нет проблем с автоматизацией окон, половина инструментов для адаптации к линукс приходится жёстко выкручиваться.

в нём не работают xdotool и xsel, а их аналоги значительно скромнее по функциональности.

Может с GUI и могло быть скромнее, но имитировать хоткей GUI не нужен, его надо просто выслать.

AZJIO
() автор топика
Ответ на: комментарий от AZJIO

Я не специалист по Wayland. Но интуитивно предвижу, что будут проблемы под Wayland. У меня часть функционала, основанная, например, на попытке детектирования, является ли текущее окно активным, под Wayland не работает. И исправления очень костыльные (требуют написания скриптов на двух различных языках, парсинга текстовых логов).

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

По поводу автоматизации GUI: у меня никогда не возникало желания что-то автоматизировать в GUI, возможно, как-то связано со спецификой работы. Возможно, просто потому что я в Linux работаю с 96-го года, и предпочитаю автоматизацию задач shell скриптами, и вообще работу с текстом (что намного проще, универсальнее и надёжнее). Мне сложно придумать эффективные сценарии, где мне могла бы помочь автоматизация GUI. Но в Wayland она затруднена, это я точно знаю, т.к. пытался пофиксить некоторые свои личные болячки (невозможность из скрипта определить, выполняется он в активном окне, или нет), и во время поиска видел много обсуждений автоматизации GUI в Wayland.

Chiffchaff
()
Последнее исправление: Chiffchaff (всего исправлений: 1)
Ответ на: комментарий от AZJIO

Есть в справке при вызове меню с ключом -m в диалоговом окне пункт «Справка», там этот текст:

Качать непонятное нечто, чтобы запускать у себя?

раздербанить deb-архив и вытащить оттуда справку не устанавливая

Насмешил.

Из каких смыслов это получается

X.Org

Я и забыл что нужно и там обновлять

Тогда и архивам никаким доверия нет, если исходников актуальных нет. Тем более, что ссылки на скачивание ведут не на раздел релизов Github, а на файлообменник.

Извини, но при таком наплевательском отношении копаться в этом мусоре нет никакого желания.

Radjah ★★★★★
()
Ответ на: комментарий от Chiffchaff

Идеология вайланда - присовывать юзерам кактус под фейковыми предлогами. По факту в нём просто ничего не работает.

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

Это преувеличение. Я перешёл на wl полгода назад, почти всё уже работает. Перед этим делал попытку где-то три года назад, всё было значительно хуже.

Потом, мне по большому счёту, всё равно, x11 или wayland. За исключением того, что тиринг в x11 я так и не смог побороть, несмотря на все рецепты.

Но очевидно уже, что более влиятельные силы решили, что дальше будет только wayland. Цепляться за x11 можно будет ещё 2-3 года, затем это станет невозможно.

Chiffchaff
()

Пару пожеланий.

Почему вам?

Потому, что ведёте разработку и есть много планов.

  1. Освойте Си (он не сложен).
  2. Затем C++ (но не лезьте в дебри стандартов, то «Горе от ума» ).

Далее вам виднее, что вам «ближе» - бабло, помощь другим, …

Мне так ближе решение тех задач о которых все знают, но лишь ждут халявы.

Пошучу

Это «ждуны» в области разработки.

Видите ли, жизнь нам даётся один раз и нужно, чтобы не было стыдно за то, что мог сделать многое для других бескорыстно, но не сделал.

Те кто совесть потеряли не поймут почему это важно.

anonymous
()
Ответ на: комментарий от Radjah

если исходников актуальных нет.

Они есть, но в первоисточнике, в архиве на яндекс. Но их никто не смотрит, это уже стабильность, кроме пурибейсиковцев. Обновление для для гиков, для фанатов, которым нравится и готовы ковырять тайминги.

Качать непонятное нечто, чтобы запускать у себя?

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

X.Org

Есть отзывы что только на нём работает? Или гипотетический вброс?

этом мусоре нет никакого желания

А есть пословица, типа еда за человеком не ходит? У меня также нет желания кого-то уговаривать, я из этого вырос, у нас свобода, не делай добра не получишь зла. Я в первом посте описал возможности, а брать или не брать не надо мне об этом докладывать.

AZJIO
() автор топика
Последнее исправление: AZJIO (всего исправлений: 5)

Словно на двадцать пять лет назад вернулся.

Писать подлобную программу вместо того, чтобы раз и на всю оставшуюся жизнь научиться печатать не глядя на клавиатуру. Это так по-советски, даже по-комсомольски. Ручной труд на плечи машин!

Бессмысленно и беспощадно. И не приватно. А судя по привязкам к яндексу еще и зловредно.

Пожалейте то время, которое отвела вам жизнь. Не тратьте на то,что умерло двадцать лет назад. Труп не ождивить. Оно никому не нужно. Жалко и смешно.

anonymous
()
Ответ на: комментарий от anonymous

Пожалейте то время, которое отвела вам жизнь. Не тратьте на то,что умерло двадцать лет назад. Труп не ождивить. Оно никому не нужно. Жалко и смешно.

В фильме Гараж весельчак сказал «не надо ничего нам говорить, мы сами тебе все скажем». Вот это как раз тот случай.

AZJIO
() автор топика
Ответ на: комментарий от AZJIO

а как твой костыль будет работать на другой раскладке? Люди не только на QWERTY живут.

ну и по старинке, будет менять на Юля! ))

Eulenspiegel
()
Последнее исправление: Eulenspiegel (всего исправлений: 1)

В целом полезная вещь, Интересна, в частности, тем, что иллюстрирует, на что способен xdotool.

Огорчает, что для сборки нужен проприетарный компилятор, который не под всякую платформу доступен. Хотя если можно скачать x86_64, x86 и даже ARM под малинку, 90% пользователей этого будет более чем достаточно. :)

Программа бесплатна. Также вы можете изучать исходник, изменять код программы и компилировать, с явной пометкой об изменении. Вы можете указать себя в качестве автора, если количество весомых изменений программы превысит 50% и программа останется бесплатной.

То есть ты изобрёл новую лицензию. Нууу… я не говорю, что это прямо всегда и совсем плохо, но обычно если ты хочешь дальше писать код, а не объяснять всю оставшуюся жизнь, чем тебя не устроили существующие лицензии – наверное, лучше выбрать одну из существующих. Это чисто эмпирическое наблюдение, лично меня для моего проекта вполне устроила GPL2+ (потом пришлось проапгрейдиться до GPL3+, поскольку заимствовал структуры данных из GPL3-ного проекта).

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

и программа останется бесплатной.

а не объяснять всю оставшуюся жизнь, чем тебя не устроили существующие лицензии

Да, помнится, на ЛОРе один анонимус критиковал GPL за то, что она не запрещает делать платные сборки (оригинальное, между прочим, мнение, большинство критиков бомбит, наоборот, от того, что на GPL тяжеловато делать деньги из воздуха).

hobbit ★★★★★
()
Ответ на: комментарий от hobbit

Эти лицензии я улучшаю и иду на уступки, я только против, если кто-то не применяя усилий выдаст чужой труд за своё, мит-лицензия это позволяет, а GPL наоборот не дает делать прогу платной, если чел действительно вложился в неё.

не под всякую платформу доступен.

Компилятор вроде под все, но конкретно проге вместо xdotool в конфиг придётся указать другую утилиту эмулятор хоткеев. А на андроиде и айфоне бакенд джаваскрипт, там не реально, там даже обычное приложение приходится адаптировать.

AZJIO
() автор топика
Ответ на: комментарий от hobbit

Интересна, в частности, тем, что иллюстрирует, на что способен xdotool

Я бы сказал еле-еле способен, через раз и при особых условиях. На винде обычные апи-функции на порядок стабильнее.

AZJIO
() автор топика
Ответ на: комментарий от Chiffchaff

Мне сложно придумать эффективные сценарии, где мне могла бы помочь автоматизация

Запросто могу накидать вариантов.

  1. Пишу видос в «OBS Studio», добавляю фильтр кадрирование и там надо указать координаты окна и пол-часа угадываешь отступы от краёв экрана, сначала грубо, по том по пикселам, потом запишешь видос и видишь что промахнулся. Написал прогу, которая выдаёт список окон, кликаешь окно, оно выдаёт координаты для фильтра всё!
  2. Надо перевести с английского на русский справку 2000 страниц в формате txt. Пишу скрипт, который работает с окном переводчика QTranslate. Сразу скажу, когда я писал аналог проги выяснилось что доступ к апи платный, бесплатно можно только вставить в веб-страницу и крупными буквами написать «Яндекс переводчик». И бесплатные движки могут иметь уровень кривости перевода. DeepSeek бесплатный только для Европы.
  3. Множество IDE особо не даёт встраиваться в свой интерфейс, приходится писать внешний GUI, который через внешний доступ по дескриптору, например к Scintilla получает возможность высылать команды, как если бы документ принадлежал этому внешнему GUI. Например этот. Из непримечательного инструмента в начальной фазе получился мощный функционал, которым я пользуюсь очень часто. На линукс я не могу получить доступ к Scintilla, может и мог бы если бы знал GTK, поэтому пришлось использовать костыли, сначала вызывал хоткей, чтобы в IDE открыть диалог прыжка к строке по номеру, потом мне подсказали вариант выслать строку через ком-строку IDE, в данном случает IDE заново запускается (копируется в память начинает исполняться), видит что одна копия запущена и передает ей команду открыть файл (переоткрыть с установкой позиции), то есть перезапуск IDE, чтобы только переместиться к позиции (на самолёте в магазин).
  4. Писал утилиту, которая сохраняла открытые папки/каталоги, чтобы восстановить рабочую среду, опять же доступ к окнам, к адресной строке, до кучи добавлял хоткеи создание папки, чтобы не через длинное меню проходить, а F9 нажал и в активном окне проводника создалось, также для текстового файла F10 с открытым редактированием имени.
AZJIO
() автор топика
Ответ на: комментарий от hobbit

а не объяснять всю оставшуюся жизнь, чем тебя не устроили существующие лицензии

Для платной программы можно и объяснить, если время на объяснения менее цены программы. Для бесплатных по настроению и если не тролинг.

Огорчает, что для сборки нужен проприетарный компилятор

Кстати, вспомнил что компилятор позволяет выдать Си и ASM, то есть бакенды (я даже GUI писал для упрощения). Но скомпилировать их не получится, так как внутренние функции переданы объектами, только мой код транслируется. И думаю он не будет удобным для чтения.

AZJIO
() автор топика