Руководство по допиливанию для новичка- от новичка

Автор el guahiro, июля 26, 2015, 17:02:01

« предыдущая - следующая »

el guahiro

По причине грядущей тёплой погоды решил сквозануть на дачу. Модем-флешка зимует на даче и неизвестно, заработает ли, да и не помню где её на даче оставил. Интернет нужен - у младшего учёба, у меня работа, у жены - Whatsapp и иже с ними. Надо настраивать связь.
Нашёл где-то старый Мегафоновский свисток ZTE, котрый традиционно сразу не заработал.
Делаю в терминале:
lsusbВыхлоп, среди прочего:
Bus 001 Device 007: ID 19d2:1403 ZTE WCDMA Technologies MSM Далее, редактирую конфиг подключения:
sudo mousepad /etc/usb_modeswitch.confСтрочку, где DisableSwitching приводим к виду:
DisableSwitching=1Потом в терминале:
lsusbВыхлоп, среди прочего:
Bus 001 Device 007: ID 19d2:1405 ZTE WCDMA Technologies MSM Исправляею через web интерфейс (предварительно отключив другие интернет-соединения на компьютере) настройки модема:
exo-open --launch WebBrowser http://192.168.0.1/goform/goform_set_cmd_process?goformId=SET_CONNECTION_MODE&ConnectionMode=auto_dialВытаскиваю модем, по новой вставляю. Всё подключается -  как проводное соединение или автоматический ethernet.
---
На одном из ноутов у меня было настроено pppoe соединение, ноут не коннектлся к USB модему. Удалил это соединение через Network-manager - всё соединилось.
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

el guahiro

мая 04, 2020, 17:06:21 #1471 Последнее редактирование: июля 03, 2020, 22:53:01 от el guahiro
Марка ноутбука одной строчкой:
sudo dmidecode | less |grep "Product Name" | sort -r | head -1Производителя прочитаете на крышке ноутбука.
 Нужда в определении этого возникла для регулировки скорости вентиляторов. На Dell - это хоррор. Но об этом - позднее.
Думаю, что разумно сделать desktop файл для вывода марки устройства и закинуть в ~/local/share/applications в качестве идиотской кнопки-приложения, показывающей марку ноута. Приложуху лучше разместить в системных приложениях. Очень полезно. У меня ноутов уже расплодилось как блох, аппараты старые, без шильдов, - такая кнопка будет весьма полезна в каждом устройстве по умолчанию. ...когда нибудь это запилю.
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

el guahiro

мая 04, 2020, 19:04:42 #1472 Последнее редактирование: мая 05, 2020, 19:57:18 от el guahiro
Автовыравнивание криво отсканированных и многостраничных PDF в Linux.
Пригодится для фрилансеров на обработке сканов, студентам, инженерам, юристам и т.п. - всем, кто массово работает с документами в формате PDF.
Всплывающее окно выбора между двумя способами основано на скрипте (все скрипты у меня в ~./local/bin). Скрипт correct_screw_PDF_2_methods.sh такого содержания:
#!/bin/bash
IFS=$'\#'
OPTION1=$(zenity --list --radiolist  --width 700 --height 300\
       --title="Исправляем поворот страниц PDF" \
       --text="Выберите способ" \
       --column="Отметка выбора" --column="способ" \
       TRUE "Python" FALSE "Unpaper")
if [ "$OPTION1" = "Python"  ] ; then OPTION=correct_skew_pdf.sh ;
 else  OPTION=rovny_pdf2.sh ; fi
myArray=( "$@" )
for i in "$@"; do
 "$OPTION"  "$i" ; done
 exit
                 fi)
Автовыравнивание на базе утилиты Unpaper основано на скрипте rovny_pdf2.sh такого содержания:
#!/bin/bash
IFS=$'\#'
for a in "$@" ; do
cp  "$a" /tmp/"$a"
cd /tmp
pdftoppm -jpeg "$a"  1 | zenity --progress --width=400 --height=100 --title="Выравниваю PDF" --text "работаю." --auto-close --pulsate;
done
convert  1-*.jpg  %02d.pnm
rm 1-*.jpg
for i in *.pnm ; do unpaper -v --deskew-scan-deviation 3.0  -dd 1.0 --dpi 600 "$i"  "$i".pnm; mv -v "$i".pnm "$i"
done
img2pdf -o $OLDPWD/rovny.pdf  -S A4 --auto-orient *.pnm
mv $OLDPWD/rovny.pdf "$a"
rm  /tmp/*.pnm
Для работы этого скрипта надо установить утилиту pdftoppm и zenity, которые есть в репозитории xUbuntu 18.04. Утилита Imagemagick (команда convert) в xUbuntu 18.04 предустановлена.
Можно использовать скрипт rovny_pdf.sh, т.к. он основан на более стандартных утилитах:
#!/bin/bash
IFS=$'\#'
for a in "$@" ; do
cp  "$a" /tmp/"$a"
cd /tmp
pdftoppm -jpeg "$a"  1 | zenity --progress --width=400 --height=100 --title="Выравниваю PDF" --text "работаю." --auto-close --pulsate;
done
convert  1-*.jpg  %02d.pnm
rm 1-*.jpg
for i in *.pnm ; do unpaper -v --deskew-scan-deviation 3.0  -dd 1.0 "$i"  "$i".pnm; mv -v "$i".pnm "$i"
done
convert  *.pnm $OLDPWD/rovny.pdf
mv $OLDPWD/rovny.pdf "$a"
rm  /tmp/*.pnm
-------------
Чтобы сделать автоповорот на Python (OpenCV) надо два скрипта.
Сводный correct_skew_pdf.sh имеет содержание:
#!/bin/bash
IFS=$'\#'
for f in $@; do  pdftoppm -png "$f" /tmp/1 ;
done
for i in /tmp/1*.png ; do python /home/user/.local/bin/correct_skew.py -i "$i" ; mv rotated.png "$i"
done
 convert  /tmp/1*.png  "$f"
 rm /tmp/1*.png
Скрипт correct_skew.py,  который я, подсмотрев здесь, чуть доработал, можно скачать или посмотреть по ссылке https://cloud.mail.ru/public/Hqrs/57KN599yT, имеет такое содержание:
# import the necessary packages
import numpy as np
import argparse
import cv2
# construct the argument parse and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required=True,
help="path to input image file")
args = vars(ap.parse_args())
# load the image from disk
image = cv2.imread(args["image"])
# convert the image to grayscale and flip the foreground
# and background to ensure foreground is now "white" and
# the background is "black"
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
gray = cv2.bitwise_not(gray)
# threshold the image, setting all foreground pixels to
# 255 and all background pixels to 0
thresh = cv2.threshold(gray, 0, 255,
cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]
# grab the (x, y) coordinates of all pixel values that
# are greater than zero, then use these coordinates to
# compute a rotated bounding box that contains all
# coordinates
coords = np.column_stack(np.where(thresh > 0))
angle = cv2.minAreaRect(coords)[-1]
# the `cv2.minAreaRect` function returns values in the
# range [-90, 0); as the rectangle rotates clockwise the
# returned angle trends to 0 -- in this special case we
# need to add 90 degrees to the angle
if angle < -45:
angle = -(90 + angle)
# otherwise, just take the inverse of the angle to make
# it positive
else:
angle = -angle
# rotate the image to deskew it
(h, w) = image.shape[:2]
center = (w // 2, h // 2)
M = cv2.getRotationMatrix2D(center, angle, 1.0)
rotated = cv2.warpAffine(image, M, (w, h),
flags=cv2.INTER_CUBIC, borderMode=cv2.BORDER_REPLICATE)
# show the output image
cv2.imwrite("rotated.png", rotated)
cv2.waitKey(0)
----------
Видео, как это работает:
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

xub

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

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

Жаль но на сегодняшний день качественно произвести OCR особенно не английского текста можно только по схеме Виртуальная машина с Windows+FineReader😞...
При ответах прошу учитывать возможную существенную разницу во времени, мой часовой пояс (GMT-4) Eastern Daylight Time...

el guahiro

мая 06, 2020, 12:18:25 #1474 Последнее редактирование: мая 06, 2020, 12:27:52 от el guahiro
Цитата: xub от мая 06, 2020, 02:14:31Жаль но на сегодняшний день качественно произвести OCR особенно не английского текста только Windows+FineReader
Распознавание можно сделать с помощью программы MasterPDFEditor, российского разработчика с  г. Воронеж.
Эта функция в MasterPDFEditor платная*. Перед распознаванием страницы файла PDF можно подровнять в MasterPDFEditor или с помощью действия ПКМ, о котором я писал постом выше - если документ сильно многостраничный, то лучше через ПКМ. Качество распознавания (попадание в символ) отличное. Распознаёт отлично и русский и английский язык. Есть украинский, татраский и казахский.
Программа работает на QT. Есть у разработчиков версии на GTK, но почему-то их нет на оф. сайте.
Бесплатный MasterPDFEditor бесплатный с очень богатым функционалом.
* Не забываем, что FineReader тоже платный.
Видео, как это работает
----
Можно запилить скрипт по разбору на картинки >OCR на Python-tesseract>склейке PDF назад. Но работу скрипта надо отлаживать, распознавалку обучать. Это время. Поэтому, если сделаю что-то такое, то позже.
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

xub

Приветствую!
Цитата: el guahiro от мая 06, 2020, 12:18:25* Не забываем, что FineReader тоже платный
Такое сложно забыть даже если очень хочется😇!

Когда я ещё работал, начальство (которое как известно мыслит другими категориями😈)скомандовало оцифровывать старые архивы в DJVU!А перед этим, за полгода, это же начальство организовало переход на Linux!

Вариантов получить за раз оцифровку в djvu в Linux по-моему нет, за ненадобностью скорее всего... DJVU на сегодняшний день, по-моему, уже экзотика😞, развития особого нет, вытеснен pdf'ом.

Я как раз изучаю ваши скрипты (за скрипты отдельное спасибо😈), хотя практически не пользуюсь Thunar'ом, хочу для своего Ranger'a (есть такой файловый менеджер RANGER я его люблю😇) сделать скрипт оптимизации pdf т.е чтобы быстро уменьшать, оптимизировать размер.

2020 May 06; 06:24 AM
При ответах прошу учитывать возможную существенную разницу во времени, мой часовой пояс (GMT-4) Eastern Daylight Time...

el guahiro

мая 06, 2020, 19:09:18 #1476 Последнее редактирование: мая 19, 2020, 16:52:54 от el guahiro
Цитата: xub от мая 06, 2020, 13:24:43чтобы быстро уменьшать, оптимизировать размер.
У меня есть скрипт, который объединяет аж 5 способов сжатия PDF.
Сжатие меньше, чем в 7 раз, меня обычно не удовлетворяет. Причина - ограничение на вес почтового вложения 10 mb.
Попробуйте перегнать альбом чертежей при таком ограничении! Только сжатие и выручает.
Такое экстремальное сжатие возможно так:
- Распаковываешь PDF на картинки (или на webp).
- Жмёшь картинки, возможно убираешь лишние пиксели - по ситуации.
- Собираешь назад.
- Прогоняешь результирующий gs'ом (а точнее его питоновской версией)
всё это запаковано в скрипт, т.к. я ленив и люблю, чтоб всё делалось одним нажатием.
---
Напишу в ближайшее время.
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

el guahiro

мая 11, 2020, 11:48:51 #1477 Последнее редактирование: мая 11, 2020, 14:35:42 от el guahiro
Простенький календарик на панели задач в Xubuntu, позволяющий скопировать любую дату в буфер обмена
Создаю текстовый файл с названием True calendar.desktop. Содержание файла True calendar.desktop:
[Desktop Entry]
Version=1.0
Type=Application
Name=True calendar
Comment=копирует дату в буфер обмена
Exec=bash -c 'date=$(zenity  --width 500 --height 200 --calendar --text "                          Выберите указателем мыши в нужную дату" --title "выбираем дату"); echo "$date"|tr -d "\r\n"|xclip -selection clipboard'
Icon=/usr/share/icons/el_guahiro/google-calendar-icon.png
Path=
Terminal=false
StartupNotify=false
Значку даю в GUI права на выполнение:ПКМ на файл> Ствойства>Разрешить как программу
Отправляю его на панель следующим методом:
Из меню Whisker на любую программу>Отправить на панель
Потом на панели на эту программу:Свойства>в открытое окно перетягиваю этот desktop файл>удаляю ярлык первоначальной программы.
Значение
Icon=/usr/share/icons/el_guahiro/google-calendar-icon.pngнадо поправить, прописав ваш путь до иконки значка.
Иконку прикрепляю (видно зарегистрированным пользователям)
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

el guahiro

Хоткей для поиска выделенного текста
Whisker Menu>Все настройки (в самом низу)>Клавиатура>вкладка Комбинации клавиш>+Добавить (в самом низу)>пришем команду:
bash -c 'x-www-browser https://yandex.ru/search/?text="$(xclip -o)"' и жмём выбранную нами комбинацию клавиш. Я пока назначил Alt+Ctrl.
Важно, чтоб комбинация клавиш не дублировалась в хоткеях какой-нибудь команды (Gimp. Vim и т.п.)
Теперь, выделив текст, например в Libreoffice, я нажимаю Alt+Ctrl, открывается поиск Яндекса в браузере по умолчанию и выдаёт результаты по выделенному фрагменту текста.
У кого Яндекс не работает, команда:
bash -c 'x-www-browser http://www.google.com/search?q="$(xclip -o)"'
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

xub

Приветствую всех! И персонально автора темы, особенно, несмотря на то, что ситуация в Мире по-моему безнадёжно испортилась!😞

Хочу обратить внимание, что на клавиши в Xubuntu можно назначать самые монструозные команды!
<property name="<Primary><Super>apostrophe" type="string" value="sh -c "echo -n 'find . -maxdepth 1 -type d,f -regex "\""^\.\/.*"\""|sed '\''s:\.\/::'\''|rename -n '\''s:^:sprintf("\""./%03d_"\"", $^R+=1):e'\''|nl'|xsel -pi;sleep 0.4;xdotool mousemove 960 540;xdotool click 2""/>Вид в файле ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
Безусловно легче через скрипт, но тут просто вопрос принципа, демонстрация так сказать возможностей (уточняю, не моих возможностей😇, а системы)!

Вот эта вот ,,композиция😇" добавляемая по hothey'ю в терминал позволит переименовать файлы и директории с добавлением номера в начало.

Вообще с клавиатурными комбинациями  возможности ,,атомные😇" в том числе можно назначить нажатие одних клавишей другими:

<property name="<Primary><Super>ISO_Level3_Shift" type="string" value="sh -c "echo 'KeyStrPress Alt_L KeyStrPress F7 KeyStrRelease Alt_L KeyStrRelease F7'|xmacroplay -d 150 $DISPLAY""/>
Это развернуть во весь экран Alt+F7 в действие приводится тремя клавишами внизу справа (у меня мышь слева я жёстко левша)❰<Primary><Super>ISO_Level3_Shift❱.

Здесь лучше работает xmacro чем xdotool.

2020 May 15; 07:10 AM
При ответах прошу учитывать возможную существенную разницу во времени, мой часовой пояс (GMT-4) Eastern Daylight Time...

el guahiro

мая 15, 2020, 22:28:30 #1480 Последнее редактирование: мая 15, 2020, 22:35:26 от el guahiro
Цитата: xub от мая 15, 2020, 14:10:25<property name="<Primary><Super>apostrophe" type="string" value="sh -c "echo -n 'find . -maxdepth 1 -type d,f -regex "\""^\.\/.*"\""|sed '\''s:\.\/::'\''|rename -n '\''s:^:sprintf("\""./%03d_"\"", $^R+=1):e'\''|nl'|xsel -pi;sleep 0.4;xdotool mousemove 960 540;xdotool click 2""/>Вид в файле ~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xml
позволит переименовать файлы и директории с добавлением номера в начало.
2020 May 15; 07:10 AM
Это реально круто! Только куда добавлять эту строку? В xfce4-keyboard-shortcuts.xml?

Насчёт ситуации в мире: для тех, у кого руки и голова на месте, будет всё нормально. Говорю, как человек, переживший 90-е. Надо прогнозировать только на базе участия в движухе (а не по советам в  газетах/интернетах), быть осторожным, но не бояться, держать язык за зубами, но уметь сказать слово, держать нос по ветру, но не совать его куда не следует. И всегда помнить: если кто-то затирает тебе персонально о чём-то дольше минуты, и это не дружеская беседа - то это развод.
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

xub

Я Вас приветствую, el guahiro!

Я тут ничего не изобрёл😇 графический интерфейс есть от рождения в самой системе.

Незадолго до моего выхода на пенсию наш проект перевели на Linux, пришли программисты и стали нас обучать. Назначать собственные команды на клавиши входило так сказать в ,,базовый курс😇", там была Unity, в xfce это, кстати, гораздо легче!

Я этот файл xfce4-keyboard-shortcuts.xml пробовал переносить на другой компьютер. ,,Подхватывается" работает!

Вообще из ,,облегчения жизни😈" у нас что в ассортименте? Ваша ПКМ, alias'ы, скрипты, клавиатурные комбинации и easystroke (жесты мыши), ну это так сказать базовый набор Linux-gentleman'а😇.

Ну ещё wmctrl, xdotool, devilspie2, xmacro ну это для управления окнами в основном, если не хватает и так вполне шикарного набора для управления окнами в самой Xubuntu.

Я не собирался переходить на  Xubuntu просто Unity впало в кому😈, я понял, что оттуда оно уже не выйдет. Ну ничего освоился, жаль что раньше этого не сделал.

О ситуации в Мире, это у меня в основном про вирус😞, пенсия у меня чуть выше средней по Канаде, я в высоких широтах на вот таких корытах как на аватаре почти всю жизнь проработал и в СССР и в Канаде, земснаряд называется. Я был обычно там самым главным😇, образование у меня соответствующее, техникум когда-то закончил... Жена оформила досрочную пенсию, ну думаю ,,гастрольнём", ага, голым задом по печи😞... В позитивный исход этой вирусной истории что-то не верится, а уже 68 годков😕...

2020 May 15; 06:25 PM
При ответах прошу учитывать возможную существенную разницу во времени, мой часовой пояс (GMT-4) Eastern Daylight Time...

el guahiro

мая 18, 2020, 19:05:08 #1482 Последнее редактирование: июля 14, 2020, 19:08:20 от el guahiro
Извлечь страницы из файла PDF. Помогает, когда файл огромный и в редакторах не открывается или тормозит.
Сейчас с таким столкнулся....
ПКМ Thunar на команду
str=`zenity --entry --title="Картинки в PDF" --text="Введите номер страницы или несколько - через тире или запятую" --entry-text="10-15"`; qpdf %n --pages %n $str -- %nстр."$str".pdf ; rename 's/[.]pdfстр/ стр/gi' %f*; notify-send "извлекли страницы"Условия: галка на "Другие", *.pdf;*PDF
Надо доустановить qpdf, которая есть в оф. репозитории xUbuntu:
sudo apt install qpdfРезультатом действия ПКМ является файл с названием, как у исходного и перечислением извлечённых страниц в конце названия типа : название файла стр. 1-5,23.pdf

Искренне ваш, el
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

xub

Приветствую всех, el guahiro, Вас персонально!😇

Вот есть у меня на hotkey вот такая длинная строка:
sh -c 'mv "$(xfce4-screenshooter -ro ls)" /tmp/0CR.png;mogrify -modulate 100,0 -resize 400% /tmp/0CR.png;tesseract /tmp/0CR.png /tmp/0CR -psm 10 -l jpn;cat /tmp/0CR.txt|xsel; cat /tmp/0CR.txt|xsel -bi|xsel'
У меня это  Super+H ❰All Settings ⟶ Keyboard ⟶ Application Shortcuts❱.

Эта ,,композиция😈" позволяет получить в буфер обмена распознанную фразу ❨тестировал только английский и французский❩.

Т.е. xfce4-screenshooter'ом захватывается часть экрана с текстом, а tesseract'ом распознаётся. Через xsel направляется в буфер. Сами файлы распознавания находятся в /tmp (ясное дело может быть любая другая директория).

Это в терминале Kitty картинка(есть такой картинки там отображаются, прямоугольное выделение есть, интересная штука поиграться😇). Заодно перевод. Тоже по hotkey'ю, что-то плохо на русский переводит. Но я обычно наоборот с русского чаще перевожу (я не носитель русского языка, родной другой язык).

Не знаю может пригодится для вашей фирменной ПКМ...

2020 May 22; 10:07 PM
При ответах прошу учитывать возможную существенную разницу во времени, мой часовой пояс (GMT-4) Eastern Daylight Time...

el guahiro

Привет всем!
Долго отсутствовал, т.к. был на даче в самоизоляции. Плодотворно рубил мачете кусты на участке. Участок большой, кусты (точнее лианы/вьюны) были толщиной в мизинец. Потом выдирал домкратом старые столбы забора, ставил новые, варил электросваркой каркас забора под сетку и т.д. После такой пахоты к вечеру писать ничего уже не хотелось и не моглось.
В ноутбуке успешно копилась служебная переписка, справки, прОтоколы, докУменты...  Сегодня обнаружил, что место на жестком диске катастрофически уменьшилось. Причина - дублирование всех сообщений  по нескольку раз, от разных адресатов (специфика работы в крупной корпорации). Итог : на глаз около 15 Gb лишних данных за период самоизоляции.
Все сообщения от всех адресатов сохраняю. Так надо. Но для очистки места на диске использую трюк:
Превращаю дубликаты файлов в хардлинки (спасибо, Linux, за эту функцию!)
# Turn duplicate files into hardlinks to free up space on your computer's hard drive
Устанавливаю утилиту hardlink, в терминале:
sudo apt install hardlinkПотом:
hardlink -v /Директория/которую/чистим/
Освободилось 15 Gb. И это хорошо.

На этом пока прощаюсь. Наше вам с кисточкой! Искренне ваш, el
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions