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

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

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

xub

Наглядный пример проблемы из-за длины имени файла...
2021 Sep 09; 03:45 PM
При ответах прошу учитывать возможную существенную разницу во времени, мой часовой пояс (GMT-4) Eastern Daylight Time...

el guahiro

сентября 12, 2021, 12:37:22 #1771 Последнее редактирование: сентября 14, 2021, 11:48:36 от el guahiro
Иногда при экспорте чертежей из Autocad в PDF фрагменты текста в чертеже заключаются в поля - программа превращает текст SHX в комментарии, что не позволяет использовать функцию поиска по чертежам в стандартных программах просмотра PDF под Linux.
Посмотреть и даже скопироваить эти аннотации можно в llpp или MasterPDFEdiror, в Windows - в Acrobat Reader (под Linux у меня  Acrobat Reader не установлен, но скорее всего, и в нём можно посмотреть).
Пришла мне вчера куча размеченных таким образом чертежей. Для быстрого просмотра и рецензирования проектов я использую функцию поиска по файлам, зная где бывают основные ошибки и задавая поиск по ключевым словам. Но сейчас не тут-то было! Поиск по тексту, опирающийся на стандартные утилиты, -  аннотациями не работает. Не беда. Создаю (ПКМ>создать документ>пустой файл) файл скрипта под названием pdf_annotaion_extractor.py такого содержания:
#from https://onedev.net/post/615
import poppler
import sys
import urllib
import os

def main():
  input_filename = sys.argv[1]
  # http://blog.hartwork.org/?p=612
  document = poppler.document_new_from_file('file://%s' % \
    urllib.pathname2url(os.path.abspath(input_filename)), None)
  n_pages = document.get_n_pages()
  all_annots = 0

  for i in range(n_pages):
        page = document.get_page(i)
        annot_mappings = page.get_annot_mapping ()
        num_annots = len(annot_mappings)
        if num_annots > 0:
            for annot_mapping in annot_mappings:
                if  annot_mapping.annot.get_annot_type().value_name != 'POPPLER_ANNOT_LINK':
                    all_annots += 1
                    print 'page: {0:3}, {1:10}, type: {2:10}, content: {3}'.format(i+1, annot_mapping.annot.get_modified(), annot_mapping.annot.get_annot_type().value_nick, annot_mapping.annot.get_contents())

  if all_annots > 0:
    print str(all_annots) + " annotation(s) found"
  else:
    print "no annotations found"

if __name__ == "__main__":
    main()
Скрипт опирается на стандартные утилиты, которые, вероятно, у вас уже есть в системе. Посмотреть зависимости (что доставить) можно здесь https://onedev.net/post/615.
Вторым шагом правлю скрипт предпросмотра  файлов в терминале, с названием view3.sh, приведя его к такому виду:
#!/bin/bash
IFS=$'\#'
filename=$1

if [ "$(file -b --mime-type $1 | sed 's|.*/||')" = "html" ]; then
lynx -stdin -dump < $filename |less | sed '/\S/!d; s/  / /g;s/  / /g;s/  / /g; s/,,/ /g'
fi

if [ "${filename##*.}" = "docx" ]; then
docx2txt < $filename |less | sed '/\S/!d; s/  / /g;s/  / /g;s/  / /g; s/,,/ /g'
fi

if [ "${filename##*.}" = "odt" -o "${filename##*.}" = "ods" -o "${filename##*.}" = "odp" ]; then
odt2txt --width=80 $filename |less | sed '/\S/!d; s/  / /g;s/  / /g;s/  / /g; s/,,/ /g'
fi

if [ "${filename##*.}" = "doc" ]; then
antiword -f -w 0 $filename |less | sed '/\S/!d; s/  / /g;s/  / /g;s/  / /g; s/,,/ /g'
fi

if [ "${filename##*.}" = "rtf" -o "${filename##*.}" = "ppt" ]; then
catdoc $filename |less | sed '/\S/!d; s/  / /g;s/  / /g;s/  / /g; s/,,/ /g'
fi

if [ "${filename##*.}" = "xls" ]; then
xls2csv $filename |less | sed '/\S/!d; s/  / /g;s/  / /g;s/  / /g; s/,,/ /g'
fi

if [ "${filename##*.}" = "xlsx" ]; then
xlsx2csv $filename |less | sed '/\S/!d; s/  / /g;s/  / /g;s/  / /g; s/,,/ /g'
fi

if [ "${filename##*.}" = "png" -o "${filename##*.}" = "jpg" ]; then
w3m $filename
fi

if [ "${filename##*.}" = "html" ]; then
html2text $filename |less | sed '/\S/!d; s/  / /g;s/  / /g;s/  / /g; s/,,/ /g'
fi

if [ "$(file -b --mime-type $1 |sed 's%.*/%%' )" = "pdf" ]; then
pdftotext -q -layout $filename - |less | sed '/\S/!d; s/  / /g;s/  / /g;s/  / /g; s/,,/ /g'
fi

#search in annotations
if [ "$(file -b --mime-type $1 |sed 's%.*/%%' )" = "pdf" ]; then
python ~/.local/bin/pdf_annotaion_extractor.py $filename| sed '/\S/!d; s/  / /g;s/  / /g;s/  / /g; s/,,/ /g'
fi

if [ "$(file -b --mime-type $1 | sed 's|/.*||')" = "text" ]; then
cat $filename |less | sed '/\S/!d; s/  / /g;s/  / /g;s/  / /g; s/,,/ /g'
fi

if [ "${filename##*.}" = "djvu" ]; then
djvutxt $filename|less | sed '/\S/!d; s/  / /g;s/  / /g;s/  / /g; s/,,/ /g'
fi

Про этот скрипт я уже писал на этом форуме здесь, и здесь,сейчас только добавил поиск по аннотациям в PDF  и автоматическое определение mime типа файла для PDF, независимо от регистра расширения файла, большого или маленького.

После этого действия ПКМ просмотра и поиска в файлах, ранее описанные здесь, заработали.

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

xub

Приветствую!
Цитата: el guahiro от сентября 12, 2021, 12:37:22if [ "${filename##*.}" = "djvu" ]; then

А djvu это на всякий случай чтобы и для него работало? Я правильно понял?

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

qqq

Цитата: xub от сентября 09, 2021, 22:45:36Наглядный пример проблемы из-за длины имени файла...

Вариант, который есть  в видео, которое прикрепил выше el guahiro, вполне рабочий. Я почему-то про него не знал, линукс видать отучает от пользования граф. инерфейсом)))

xub

Приветствую!
Цитата: qqq от сентября 12, 2021, 21:00:06отучает от пользования граф. инерфейсом

Если Вы про rofi, то по-моему это тоже не совсем CLI 😇...

Это запуск с параметром :
rofi -combi-modi window,drun -show combi -modi combi

Если в самом верху после combi: ввести положим draw то можно будет либо перейти к открытом файлу draw либо запустить эту программу.

После столов с программами идут последний раз открываемые программы что-то типа favorit получается.

Главное избежать фанатизма только GUI или только CLI! Действовать по обстоятельствам используя одно не забывать про другое! 😃

2021 Sep 12; 03:29 PM
При ответах прошу учитывать возможную существенную разницу во времени, мой часовой пояс (GMT-4) Eastern Daylight Time...

el guahiro

Есть такой просмотрщик для PDF, называется Zathura.
С помощью набора плагинов Zathura поддерживает форматы PostScript, PDF, DjVu, Comic Book Archive и EPUB. Отлично подходит для слабых компов, можно запустить на планшете, есть даже порты под macOS i ios, для Android.
Поскольку Zathura работает на mupdf, то PDF он рендерит очень быстро и, на удивление, лучше (чётче) самого mupdf. Попались мне тут слепые чертежи, конвертировать их, чтоб сделать почётче, не хотелось. Открыл файл в Zathura - он хорошо рендерит именно слепые чертежи.
Но листать файл в Zathura для человека, который любит GUI, а не хоткеи - боль, т.к. двигать мышкой огромные чертежи 2хA0, склеенные в многостраничный файл - то ещё удовольствие... Не беда.
Настраиваю боковой скроллбар в Zathura. В терминале:
mkdir ~/.config/zathura/
touch zathurarc
Открываю этот файл например так:
mousepad  ~/.config/zathura/zathurarcЗаписываю туда:
set show-scrollbars trueЗакрываю с сохранением. Всё! в Zathura появился боковой скроллбар, листать PDF файлы стало удобней.
Для интересующихся можно поэкспериментировать с видом и поведением Zathura, записав в zathurarc что-нибудь типа:
# zathurarc

# settings
set window-height 1024
set window-width 768
set adjust-open width
set show-scrollbars true
set first-page-column 2
set window-title-basename true
# set database sqlite
set recolor-keephue
set selection-clipboard clipboard


# key bindings
# map <C-[> abort # Still doesn't work :(
map [normal]     <F11> toggle_fullscreen
map [fullscreen] <F11> toggle_fullscreen
map [normal]     <C-l> reload
map [fullscreen] <C-l> reload

map [normal]     e scroll down
map [fullscreen] e scroll down
map [normal]     <C-e> scroll down
map [fullscreen] <C-e> scroll down
map [normal]     y scroll up
map [fullscreen] y scroll up
map [normal]     <C-y> scroll up
map [fullscreen] <C-y> scroll up
map [normal]     R rotate rotate-ccw
map [fullscreen] R rotate rotate-ccw

map [normal]     <PageUp>   navigate previous
map [fullscreen] <PageUp>   navigate previous
map [normal]     <PageDown> navigate next
map [fullscreen] <PageDown> navigate next

map [normal]     <A-1> set "first-page-column 1:1"
map [fullscreen] <A-1> set "first-page-column 1:1"
map [normal]     <A-2> set "first-page-column 1:2"
map [fullscreen] <A-2> set "first-page-column 1:2"

# Why are these only defined for normal mode by default?
map [fullscreen] a adjust_window best-fit
map [fullscreen] s adjust_window width
map [fullscreen] f follow
map [fullscreen] d toggle_page_mode 2
map [fullscreen] <Tab> toggle_index
map [fullscreen] j scroll down
map [fullscreen] k scroll up
map [fullscreen] <C-d> scroll half-down
map [fullscreen] <C-u> scroll half-up
map [fullscreen] <C-o> jumplist backward
map [fullscreen] <C-i> jumplist forward

map [index] q quit

# colors
set recolor-darkcolor  "#FFFFFF"
set recolor-lightcolor "#333333"
set statusbar-fg "#000000"
set statusbar-bg "#C2BFA5"
set inputbar-fg "#FFFFFF"
set inputbar-bg "#333333"
set completion-highlight-fg "#F0E68C"
set completion-highlight-bg "#6B8E23"
# set highlight-color "#CD853F"
# set highlight-active-color "#F0E68C"
set notification-fg "#FFFFFF"
set notification-bg "#333333"
Цветовая схема настраивается на раз-два, поведение тоже. Можно запилить вполне себе гламурный вьювер.

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

el guahiro

сентября 19, 2021, 14:34:41 #1776 Последнее редактирование: сентября 20, 2021, 08:27:51 от el guahiro
Лайфхак, как набрать спецсимвол в текстовом редакторе Libreoffice.
Пишу описание к проекту. Уклон сейчас в строительстве в РФ стали считать не в процентах, а в промилле. Окуда его взять, если не помнишь символ Юникода и не умеешь его вводить?
Решений два:
1. Набираешь в Гугле или Яндексе : "значок промилле", потом копируешь его из всплывающего ответа. Годится как быстрое решение, когда это надо сделать один раз.
2. Чтобы иметь возможность вставлять значок в дальнейшем,
2.1. Набираешь в Гугле или Яндексе : "промилле по английски", копируешь  "per mill"
2.2. Открываешь Libreoffice>меню Вставка>вкладка Специальные символы>в окно Поиск вставляешь per mill>снизу справа жмешь Добавить в избранное>значок добавляется в иконостас избранных значков снизу слева.
Таким образом можно добавить &, Ø, ≈, Ω и т. д., в сумме избранных 16 штук, чтобы добавить значок, надо удалить что-то из предустановленных.
В дальнейшем ты этот значок всегда найдёшь.

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

denkin

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

el guahiro

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

denkin

ПКМ на любой панели инструментов в LO -> Настроить панель инструментов -> Вкладка Клавиатура
Найти команду, ввести хоткей, присвоить его команде

xub

Приветствую всех!

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

Речь идёт о дополнительной раскладке или как там её называют «третий ряд»...



# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL="pc105"
XKBLAYOUT="fr,us,tr,gr,ua,ru"
XKBVARIANT=""
XKBOPTIONS="misc:typo,lv3:menu_switch,grp:ctrls_toggle,grp_led:scroll,terminate:ctrl_alt_bksp,numpad:microsoft"

BACKSPACE="guess"

Все настройки в этом файле, так мне тоже проще показалось...

При таких настройках будут доступны следующие символы при удержании клавиши MENU & Shift MENU из специально составленного файла.


Обычно используется только два языка. В данном случае:
setxkbmap -layout 'us,ru' -option 'grp:ctrls_toggle'
А переключает языки стронний низкоуновневый переключатель Shift'ами на каждом отдельный язык.

Файлы typo для третьтего ряда можно сделать разные у меня тоже несколько, помещаются они в
/usr/share/X11/xkb/symbols инструкций в интернете и готовых файлов более чем достаточно...

Промилле ‰ там где и % только через MENU...

2021 Sep 19; 01:43 PM; Oakville, ON, Canada.
При ответах прошу учитывать возможную существенную разницу во времени, мой часовой пояс (GMT-4) Eastern Daylight Time...

el guahiro

Цитата: xub от сентября 19, 2021, 20:43:52Я склонился, как мне кажется, к более глобальному решению
Анонс. Придумал, как сделать кнопку с выпадающим списком символов, типа плагина к xfce4-panel 4.12.2. Пилить час-полтора, посвободней буду, напишу и здесь опубликую. Это будет более GUI-шно и для тех, кто набирает много спецсимволов, наверное, более удобно.
Искренне ваш
См. скрипты для ПКМ Thunar здесь https://github.com/el-guahiro/thunar_custom_actions

el guahiro

сентября 26, 2021, 09:39:02 #1782 Последнее редактирование: сентября 26, 2021, 09:48:14 от el guahiro
Для дизайнеров
ПКМ Thunar "Присвоить файлу шрифта родовое имя", на команду:
exiftool -m -s '-filename<${PostScriptFontName}.ttf' %NУсловие появления: Другие
Маска: *.ttf;*.TTF
Должен быть установлен exiftool:
sudo apt install exiftoolДля файлов otf аналогично
Не в качестве рекламы, а себе в заметки - здесь хорошие кириллические рукописные шрифты. Купил бы у них пару-тройку, но хочется сказать админам hfont :"Ребята, запилите демонстрационную возможность набрать свой фрагмент текста предлагаемым к продаже шифтом, т.к. иногда буквы не отличить от рукописных, но цифры смотрятся неорганично и наоборот".

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