LINUX.ORG.RU

Simple File Info

 , , ,


0

1

В рамках работы над SDE реализовал следующий скрипт.

Simple File Info — программа для отображения расширенной информации о файле. Реализована как переносимый POSIX sh-скрипт.

О программе Simple File Info

Программа отображает диалоговое окно с различной информацией о файле, получаемой из инструментов mimetype, file, exiftool, mediainfo, gio info.

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

К программе прилагается desktop-файл, чтобы все ФМ, поддерживающие обработку привязки приложений и файлов, могли отображать пункт вызова программы в меню «Открыть с помощью».

Более подробно об отображаемой информации:

В типичной Unix-like системе присутствует два механизма идентификации типа файла: первый на основе базы данных MimeInfo, второй на основе базы данных для утилиты file.

Большинство приложений с графическим интерфейсом используют идентификацию типа файла через MimeInfo.
Многие скрипты для терминала используют идентификацию через file.

Если у вас в системе установлены команды mimetype и file, Simple File Info включит информацию о типе файла в отчёт.

  • exiftool - мощная программа для отображения метаинформации о файле. В первую очередь она предназначена для отображения данных EXIF в изображениях, но кроме этого поддерживает множество других типов файлов.

  • mediainfo - программа для отображения метаинформации об аудио- и видео-файлах, кроме того, она умеет извлекать метаданные из изображений.

  • gio - модульный фреймфорк для виртуализованной файловой системы, используемый многими графическими программами.

Если у вас в системе установлены команды exiftool, mediainfo, gio, информация из этих программ будет включена в отчёт.

Отображение информации

Для отображения информации используется один из следующих инструментов:

  GXMESSAGE YAD XDIALOG ZENITY XMESSAGE

Simple File Info пытается использовать инструменты в указанном порядке, пока не найдёт установленный и рабочий инструмент.

Чтобы переопределить порядок поиска инструментов, задайте переменную окружения SIMPLE_FILE_INFO_DIALOG_TOOLS. Например:

  export SIMPLE_FILE_INFO_DIALOG_TOOLS='YAD ZENITY GXMESSAGE'

Проблемы/недоработки инструментов отображения диалогов:

  yad
  Не выставляет разумные размер окна и положение окна.

  zenity
  Не выставляет разумные размер окна и положение окна.
  Нет возможности менять иконку в заголовке окна.
  Look & feel в стиле GNOME не соответствует задумке данной программы.

  Xdialog
  Опция --fixed-font не работает на моей машине. Требуется дальнейшее изучение проблемы.
  Отображает себя на "основном" мониторе, а не на мониторе с активным окном.
  Нет возможности менять иконку в заголовке окна.

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

  gxmessage
  Нет возможности менять иконку в заголовке окна.

Вызов программы

Использование:

  simple-file-info [команда] файлы...

Команды:
  --show-report   - Открыть окно с отчётом по указанным файлам.
                    Если файлов перечислено больше одного, для каждого будет
                    открыто отдельное окно.
  --print-report  - Вывести отчёт по файлам в stdout.
  --show-help     - Открыть окно с данной справкой.
  --help          - Вывести в stdout данную справку и выйти.
  --version       - Вывести в stdout версию программы и выйти.
  --license       - Вывести в stdout информацию о лицензии прогарммы и выйти.
  --desktop-entry - Вывести в stdout содержимое desktop-файла.
  --check-tools   - Вывести в stdout отладочный отчёт о работе внешних утилит.

Если команда не указана, по умолчанию выполняется команда --show-report.

TODO

  • Добавить поддержку определяемых пользователем действий-кнопок
  • Добавить поддержку определяемых пользователем обработчиков внутри generate_report
  • Добавить умный рассчёт размера и позиции окна для yad и zenity
★★★

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

А чего не в новости?

dataman ★★★★★
()

фреймфорк

к логопеду!

static_lab ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.