Рейтинг:1

Как создать собственные миниатюры для Nautilus, Nemo и Caja?

флаг dk

Nautilus (файлы GNOME) и файловые менеджеры на основе Nautilus, а именно Nemo и Caja, уже создают предварительные просмотры для многих распространенных типов файлов с их миниатюрами по умолчанию. Есть также ряд другие миниатюрщики который можно установить из официальных репозиториев, чтобы создать миниатюры для еще большего количества файлов. Однако, естественно, существуют определенные типы файлов, для которых не существует эскиза. Некоторые примеры таких типов, с которыми я сталкивался, — это WebP, PSD, JP2, APK и т. д.

Что мне нужно знать или какие шаги я должен предпринять для создания пользовательских миниатюр, которые могут использоваться Nautilus, Nemo или Caja для создания миниатюр для этих типов файлов?

Рейтинг:3
флаг dk

использованная литература

В следующих разделах приведены важные сведения о процесс миниатюр а также шаги по созданию пользовательских миниатюр для Nautilus, Nemo и Caja, которые не были упомянуты в документах выше.

Необходимо отметить, что Наутилус относится к последним версиям Nautilus, которые реализуют песочница. В Ubuntu это версии Nautilus, которые используют libgnome-рабочий стол 3.28.2 или новее.

Thumbnailer и Thumbnailer Entry

Для создания эскизов файлов необходимы две основные вещи:

  • А программа для создания эскизов (или просто миниатюрист): программа, которая может тем или иным образом преобразовывать файлы в изображения PNG, желательно с возможностью изменения размера изображений. Некоторые примеры конвертировать, ffmpeg, gdk-pixbuf-thumbnailer, и т.д.
  • А запись эскиза: текстовый файл с .thumbnailer расширение, которое находится в любом ~/.local/share/thumbnailers или же /usr/доля/thumbnailers. Этот файл связывает программу создания эскизов с типами файлов, для которых программа будет создавать эскизы. Запись эскиза выглядит примерно так:
    [Эскиз записи]
    TryExec=/usr/bin/gdk-pixbuf-thumbnailer
    Exec=/usr/bin/gdk-pixbuf-thumbnailer -s %s %i %o
    MimeType=изображение/jpeg;изображение/png;изображение/gif;изображение/tiff;
    

Каждая запись эскиза находится в формат ключевого файла который поддерживает три ключа:

  • ПопробуйтеExec: (По желанию) этот ключ используется, чтобы проверить, установлена ​​ли программа thumbnailer. Его значением является путь к программе thumbnailer или имя программы, которое можно найти в $ПУТЬ переменная окружения. Если программа отсутствует или не является исполняемой, команда в Исполнитель ключ не будет выполнен. Наутилус, однако игнорирует этот ключ и всегда пытается выполнить миниатюру.

  • Исполнитель: (Необходимый) команда, которая будет выполняться для создания эскизов. Эта команда состоит из полного пути к программе эскиза или ее имени (в текущем $ПУТЬ), за которыми следуют аргументы, разделенные пробелом. Аргументом может быть один из нескольких специальных параметров, которые автоматически заменяются перед передачей в средство создания эскизов:

    • : (Обязательно, если %u не используется) полный путь к миниатюре файла, например:
      /home/calico/Изображения/image.jpg
      /home/calico/Музыка/Поп-музыка/audio.mp3
      
      Путь передается в качестве одного аргумента программе создания эскизов независимо от того, содержит ли он пробелы или другие специальные символы.
    • %u: (Обязательно, если не используется) URI миниатюрируемого файла. %u следует использовать вместо если программа эскиза может обрабатывать синтаксис URI. Локальные файлы передаются как файл://<полный путь к файлу>, например:
      файл:///home/calico/Pictures/image.jpg
      файл:///home/calico/Music/Pop%20Music/audio.mp3
      
    • : (Необходимый) полный путь к миниатюре вывода. Nautilus, Nemo и Caja соответственно записывают выходное изображение в:
      /tmp/gnome-desktop-thumbnailer-XXXXXX/gnome-desktop-thumbnailer.png
      /tmp/.gnome_desktop_thumbnail.XXXXXX
      /tmp/.mate_desktop_thumbnail.XXXXXX
      
      ХХХХХХ представляет собой 6-символьную строку, состоящую из заглавных букв и цифр. Каждому выходному файлу изображения присваивается уникальный ХХХХХХ.
    • %s: (По желанию) размер эскиза по умолчанию в пикселях.Если используется, %s заменяется либо 128 (от Caja или более старых версий Nemo) или 256 (от Nautilus или более новых версий Nemo).
  • MimeType: (Необходимый) в MIME-тип(s) файлов, для которых программа thumbnailer создаст миниатюры. Несколько типов MIME разделяются точкой с запятой. Видеть Шаги по созданию пользовательского миниатюрного изображения раздел для получения подробной информации о том, как получить MIME-тип каждого файла.

Примечания для Исполнитель ключ:

  • Как правило, только один из или же %u используется в команде.
  • Символы буквального процента экранируются как %% (например, использовать 50%% за 50 процентов).
  • Видеть Спецификация входа на рабочий стол — ключ Exec Больше подробностей.

В качестве примера возьмем приведенную выше запись миниатюры: gdk-pixbuf-thumbnailer используется в качестве программы создания миниатюр для изображений JPEG, PNG, GIF и TIFF. Если мы откроем папку, скажем, /home/ситцевый/Картины, который содержит изображение.gif:

  • Nemo (в Ubuntu 20.04 или новее) выполнит эту команду:
    /usr/bin/gdk-pixbuf-thumbnailer -s 256 /home/calico/Pictures/image.gif /tmp/.gnome_desktop_thumbnail.1ABC20
    
  • Caja выполнит эту команду:
    /usr/bin/gdk-pixbuf-thumbnailer -s 128 /home/calico/Pictures/image.gif /tmp/.mate_desktop_thumbnail.DE3450
    
  • Наутилус (с libgnome-рабочий стол 3.37.2 или новее) сделает следующее:
    • Создайте временный каталог: /tmp/gnome-desktop-thumbnailer-67FG80.
    • Установите этот каталог на /tmp в песочнице.
    • Устанавливать изображение.gif на /tmp/image.gif в песочнице.
    • Выполните эту команду (внутри песочницы):
      /usr/bin/gdk-pixbuf-thumbnailer -s 256 /tmp/image.gif /tmp/gnome-desktop-thumbnailer.png
      

Скрипт миниатюры

Из записи эскиза выполняется только одна команда: первая строка (отделенная от других пробелом) после Исполнитель= считается именем или путем выполнения программы и все после этого считаются аргументами для передачи в программу. Однако во многих случаях для создания правильной миниатюры требуется несколько команд. Например, dwebp может преобразовать изображение WebP в формат PNG одной командой, но для этого требуется помощь других программ, таких как вебмультиплекс и До нашей эры, чтобы вычислить соответствующую ширину и высоту выходного изображения. В таких случаях сценарий эскиза используется.

  • А сценарий эскиза: скрипт, содержащий команды для создания миниатюр. Это может быть сценарий оболочки, сценарий Python и т. д., в зависимости от типов задействованных файлов и программ. Сценарии оболочки очень часто используются, и они выглядят примерно так:
    #!/бин/баш
    
     in_file="$1"
        размер = "$2"
    out_file="$3"
    
    <команда>
    <другая-команда>
    
    <thumbnailer-program> -i "$in_file" -s "$size" -o "$out_file"
    

Скрипт можно использовать непосредственно как исполняемую программу или как текстовый файл, содержащий команды. Например:

# скрипт, используемый как программа
Exec=/home/calico/Documents/example-thumbnailer-script %i %s %o
# скрипт, используемый как файл, содержащий команды
Exec=bash /home/calico/Documents/example-thumbnailer-script %i %s %o

Если используется сценарий оболочки, аргументы после пути к сценарию (например, , %s, и ) присваиваются позиционным параметрам ($1, $2, $3и т. д.) в сценарии.

Посмотри это отвечать и это статья для примеров сценариев оболочки, которые создают миниатюры для изображений WebP и файлов APK соответственно или это статья для примера скрипта Python, который создает миниатюры для изображений MRC.

Шаги по созданию пользовательского миниатюрного изображения

  1. Найдите и установите программа для создания эскизов

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

    • gdk-pixbuf-thumbnailer: миниатюра по умолчанию для изображений на GNOME и рабочих столах на базе GNOME.
    • Тотем-видео-миниатюрист и ffmpegthumbnailer: миниатюры по умолчанию для видео на рабочих столах GNOME и Cinnamon/MATE соответственно.
    • evince-thumbnailer, xreader-thumbnailer, и atril-thumbnailer: миниатюры по умолчанию для PDF-файлов и других файлов документов на рабочих столах GNOME, Cinnamon и MATE соответственно.
    • гном-миниатюрный шрифт и mate-thumbnail-шрифт: миниатюры по умолчанию для шрифтов на рабочих столах GNOME/Cinnamon и MATE соответственно.

    Попробуйте вызвать их вручную в терминале, чтобы создать изображение PNG из входного файла. Например:

    компакт-диск ~/Изображения
    gdk-pixbuf-thumbnailer -s 256 пример.webp out.png
    ffmpegthumbnailer -s 256 -i example.webp -o out.png
    

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

    sudo apt установить imagemagick
    sudo apt установить ffmpeg
    

    Вы также можете использовать программу, которая специализируется на обработке определенных типов файлов. Например, dwebp и opj_decompress специально разработаны для декодирования изображений WebP и изображений JPEG-2000 соответственно.

  2. Получить MIME-тип файлов для эскизов

    • Щелкните правой кнопкой мыши файл того типа, который вы хотите создать миниатюру, выберите Характеристики.
    • На Базовый вкладку, обратите внимание на Тип поле. Тип MIME указан в скобках.

    В качестве альтернативы вы можете использовать xdg-мим. Например, чтобы получить mime-тип пример.pdf в ~/Документы, введите эту команду:

    Тип файла запроса xdg-mime ~/Documents/example.pdf
    
  3. Создать сценарий эскиза (если необходимо)

    • Если для создания эскизов файлов требуется более одной команды или программы, используйте текстовый редактор, например нано или же гэдит чтобы создать сценарий эскиза, содержащий эти команды.
    • Если вы используете Nemo или Caja, вы можете поместить скрипт куда-нибудь в свой домашний каталог. Однако, если вы используете Nautilus, вы можете размещать скрипт только в каталогах, смонтированных на песочница (видеть Проблемы с миниатюрамиНеудачные миниатюры из-за изолированных миниатюр ниже). Если вы не уверены, /USR/местные/бен является рекомендуемые.
    • Если скрипт будет использоваться как программа, вы должны сделать его исполняемым. Например:
      chmod +x /home/calico/Документы/webp-thumbnailer-скрипт
      sudo chmod +x /usr/local/bin/psd-thumbnailer-скрипт
      
  1. Создать запись эскиза
    • Используйте текстовый редактор, чтобы создать запись эскиза (текстовый файл с .thumbnailer расширение). Дайте ему описательное имя, например webp.thumbnailer или же psd.thumbnailer.

    • Поместите запись эскиза в ~/.local/share/thumbnailers или же /usr/доля/thumbnailers чтобы он был доступен текущему пользователю или всем пользователям соответственно. Если вы планируете поставить его /usr/доля/thumbnailers, с использованием нано для создания и редактирования записи настоятельно рекомендуется. Например:

      sudo nano /usr/share/thumbnailers/webp.thumbnailer
      
    • Что касается содержания записи (см. Thumbnailer и Thumbnailer Entry подробности выше):

      • Первая строка файла должна быть: [Эскиз записи]
      • Использовать ПопробуйтеExec ключ, если вы хотите проверить, присутствует ли программа или скрипт и является ли она исполняемой.
      • Укажите имя или путь исполняемой программы и передаваемые ей аргументы в Исполнитель ключ. Если используется сценарий эскиза, это должна быть либо программа, либо аргумент (см. Скрипт миниатюры подробности выше).
      • Поместите MIME-тип, найденный на шаге 2, в MimeType ключ. Если этот ключ должен содержать несколько MIME-типов, разделите их точкой с запятой (;) и, необязательно, заканчивайте значение ключа точкой с запятой.
  1. Очистите старые кешированные миниатюры и перезапустите файловый менеджер.
    • После создания новой записи эскиза файловый менеджер должен быть полностью закрыт, чтобы он мог правильно отсканировать и зарегистрировать запись. Вы можете сделать это, введя одну из следующих команд:
      наутилус -q
      немо -q
      каха -q
      
    • Затем удалите кеш неудачных эскизов, чтобы заставить файловый менеджер регенерировать эскизы для файлов, для которых предыдущие программы эскизов не смогли создать эскизы:
      rm -r ~/.cache/thumbnails/сбой
      
    • При необходимости удалите все кешированные миниатюры, если ранее использовались неоптимизированные записи миниатюр или скрипты:
      rm -r ~/.кэш/миниатюры/*
      
    • Наконец, снова откройте файловый менеджер. Файлы, MIME-тип которых находится в MimeType теперь у ключа должны быть миниатюры. Если нет, значит, что-то пошло не так, но не бойтесь, для этого и предназначены следующие разделы.

Устранение неполадок с миниатюрами

Один из лучших способов выяснить, что пошло не так с миниатюрами, — запустить файловый менеджер с включенными отладочными сообщениями:

  • Сначала полностью закройте файловый менеджер с помощью одной из этих команд:
    наутилус -q
    немо -q
    каха -q
    
  • Очистить все кешированные эскизы:
    rm -r ~/.кэш/миниатюры/*
    
  • Запустите файловый менеджер из терминала с включенным кодом отладки:
    • Наутилус (из это):
      G_MESSAGES_DEBUG=все NAUTILUS_DEBUG=окно наутилус
      
    • Немо:
      немо --отладка
      
    • Каха (из это): выполните следующую команду, затем введите бег и нажмите Войти
      гдб каха
      
  • Перейти к ~/.кэш/миниатюры, который уже должен быть пуст.
  • Откройте папку, содержащую файлы того типа, миниатюры которых вы хотите создать, в новой вкладке. Отсюда могут произойти три вещи:
    • А большой или же нормальный каталог создается в ~/.кэш/миниатюры. Это означает, что создание эскизов выполнено успешно, и для ваших файлов созданы эскизы.
    • Каталог не создается в ~/.кэш/миниатюры (т.е. каталог остается пустым). Это означает, что команда в Исполнитель ключ не был выполнен и, как следствие, Нет уменьшенного изображения был создан. См. следующий раздел для возможных причин этой ситуации.
    • А потерпеть поражение каталог создается в ~/.кэш/миниатюры. Это означает, что файловый менеджер пытался выполнить команду в Исполнитель ключ, но было что-то, что мешало созданию эскизов, в результате чего неудачные эскизы. Сообщения об ошибках терминала могут подсказать, что пошло не так. Вы также можете найти некоторые распространенные причины в следующем разделе.
  • Выйти из режима отладки:
    • Nautilus & Nemo: закройте файловый менеджер и нажмите Ctrl+С в терминале.
    • Caja: закройте файловый менеджер, нажмите Войти в терминале, затем введите уволиться и нажмите Войти.

Примечания:

  • В более старых версиях Nemo, которые не предоставляют --отлаживать вариант, использовать gdb вместо:

    гдб немо
    
  • Если вы используете Caja в сеансе MATE (например, в Ubuntu MATE), вы должны запустить gdb как корень (см. это Больше подробностей):

    sudo gdb caja
    

    В этом случае вы можете устранять неполадки с записями эскизов только в /usr/доля/thumbnailers и сценарии эскизов за пределами домашнего каталога.

    В качестве альтернативы вы можете использовать Затмение для отладки Caja и миниатюр.

Проблемы с миниатюрами

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

Нет миниатюр для больших файлов

Nautilus, Nemo и Caja устанавливают ограничение на размер файлов с миниатюрами. Файл, размер которого превышает этот предел, получит только общий значок, независимо от того, существует ли действительная программа для создания эскизов для его типа.

Чтобы изменить это ограничение размера:

  • Откройте файловый менеджер, перейдите в НастройкиПредварительный просмотр (Немо, Каха) или Поиск и предварительный просмотр (Наутилус) вкладка.
  • Выберите размер файла из Только для файлов меньше.

Нет миниатюр для удаленных файлов

Когда вы просматриваете файлы на других компьютерах по сети, Nautilus, Nemo и Caja по умолчанию не создают для них эскизы.

Чтобы включить предварительный просмотр миниатюр для этих файлов:

  • Откройте файловый менеджер, перейдите в НастройкиПредварительный просмотр (Немо, Каха) или Поиск и предварительный просмотр (Наутилус) вкладка.
  • Установлен Показать миниатюры к Все файлы (Наутилус), Да (Немо) или Всегда (Каха).

Нет миниатюр для файлов в определенных папках

Немо может отключить миниатюры для файлов в определенных папках:

  • Откройте папку, затем нажмите Вид в строке меню.
  • Если Показать миниатюры не установлен, то миниатюры для файлов в этой папке отключены.
  • Нажмите Редактировать в строке меню - НастройкиПредварительный просмотр вкладка
  • Если Наследовать видимость эскизов от родителя установлен флажок, то миниатюры для файлов во вложенных папках этой папки также могут быть отключены.

Чтобы снова включить предварительный просмотр миниатюр для файлов в папке:

  • Откройте папку, затем нажмите Вид в строке меню.
  • Убедиться Показать миниатюры проверено.

Нет миниатюр для определенных типов файлов

Файловый менеджер может отключать миниатюры для определенных типов MIME. Чтобы проверить, так ли это, введите одну из следующих команд для Nautilus, Nemo и Caja соответственно:

gsettings отключить org.gnome.desktop.thumbnailers
gsettings отключить org.cinnamon.desktop.thumbnailers
gsettings отключить org.mate.thumbnailers

Если результат [] или же [''], то файловый менеджер не отключает миниатюры для любых типов файлов. Однако, если в скобках есть mime-типы, например ['изображение/jp2'], ['изображение/jp2', 'приложение/x-ms-dos-executable']и т. д., то миниатюры для файлов этих типов создаваться не будут.

Чтобы включить предварительный просмотр эскизов для всех типов файлов, введите одну из следующих команд (для Nautilus, Nemo и Caja соответственно):

gsettings установить org.gnome.desktop.thumbnailers отключить "[]"
gsettings установить org.cinnamon.desktop.thumbnailers отключить "[]"
gsettings установить org.mate.thumbnailers отключить "[]"

В качестве альтернативы вы можете использовать Редактор dconf:

  • Сначала установите dconf-редактор:
    sudo apt установить редактор dconf
    
  • Открытым Редактор dconf, затем перейдите в одно из этих мест (для Nautilus, Nemo и Caja соответственно):
    • организациягномрабочий столминиатюрщикизапрещать.
    • организациякорицарабочий столминиатюрщикизапрещать.
    • организацияприятельрабочий столминиатюрщикизапрещать.
  • Выключить Использовать значение по умолчанию.
  • Измените значение в Пользовательское значение коробка либо [] или же [''] чтобы включить миниатюры для всех типов файлов или выборочно удалить определенные типы MIME из списка, чтобы снова включить предварительный просмотр только для этих типов.
  • Нажмите Применять в правом нижнем углу окна.

Нет миниатюр для всех файлов

Предварительный просмотр миниатюр может быть отключен для всех файлов. Есть два места, которые вы должны проверить:

  • Настройки файлового менеджера:

    • Откройте файловый менеджер, перейдите в НастройкиПредварительный просмотр (Немо, Каха) или Поиск и предварительный просмотр (Наутилус) вкладка.
    • Если Показать миниатюры установлен на Нет (Немо) или Никогда (Nautilus, Caja) файловый менеджер не будет создавать или отображать эскизы файлов.
    • Чтобы снова включить предварительный просмотр, установите Показать миниатюры к Только локальные файлы (Немо, Каха) или Файлы только на этом компьютере (Наутилус). Кроме того, вы можете установить эту функцию на Все файлы (Наутилус), Да (Немо) или Всегда (Caja) для предварительного просмотра удаленных файлов.
  • Параметры среды рабочего стола:

    Выполните одну из этих команд для Nautilus, Nemo и Caja соответственно:

    gsettings получить org.gnome.desktop.thumbnailers отключить все
    gsettings получить org.cinnamon.desktop.thumbnailers отключить все
    gsettings получить org.mate.thumbnailers отключить-все
    

    Результат должен быть ЛОЖЬ, что по умолчанию, но если это истинный, то все миниатюры отключены, и в результате миниатюры создаваться не будут.

    Чтобы снова включить миниатюры, введите одну из следующих команд (для Nautilus, Nemo и Caja соответственно):

    gsettings установить org.gnome.desktop.thumbnailers отключить все false
    gsettings установить org.cinnamon.desktop.thumbnailers отключить-все ложь
    gsettings установить org.mate.thumbnailers отключить-все ложь
    

    В качестве альтернативы вы можете использовать Редактор dconf:

    • Сначала установите dconf-редактор:
      sudo apt установить редактор dconf
      
    • Открытым Редактор dconf, затем перейдите в одно из этих мест (для Nautilus, Nemo и Caja соответственно):
      • организациягномрабочий столминиатюрщики
      • организациякорицарабочий столминиатюрщики
      • организацияприятельрабочий столминиатюрщики
    • Выключить Отключить все внешние миниатюры.
    • Нажмите Перезагрузить в правом верхнем углу окна.

Неудачные эскизы из-за отсутствия кодеков

Кодеки, необходимые программе создания миниатюр для создания миниатюр определенных типов файлов, могут быть недоступны, поскольку они не входят в состав программы или не предоставляются одной из ее зависимостей. Например, Тотем-видео-миниатюрист потребности gstreamer1.0-libav для миниатюр MP4 и других видеофайлов, но gstreamer1.0-libav это всего лишь предложенный пакет и поэтому не устанавливается вместе с Тотем-видео-миниатюрист.

Чтобы отследить отсутствующие кодеки, попробуйте создать изображение в формате PNG из файла того типа, который нужно создать в виде миниатюры, с помощью программы миниатюры в терминале. Сообщения об ошибках терминала могут дать подсказки о том, какие библиотеки кодеков необходимы для преобразования. Если в программе есть подробный вариант, вы можете использовать его для получения дополнительной информации об отладке. Например:

totem-video-thumbnailer --size 256 --verbose in.webp out.png

Другой способ - попробовать предложенный пакеты и посмотрите, предоставляет ли какой-либо из них требуемые кодеки:

  • Использовать apt-кэш зависит чтобы получить список предлагаемых пакетов. Например:
    apt-cache зависит от тотема | grep Предложить
    apt-cache зависит от ffmpegthumbnailer | grep Предложить
    
  • Использовать apt-кеш-шоу чтобы получить информацию о каждом предлагаемом пакете. Например:
    apt-cache показать gstreamer1.0-libav
    apt-cache показать gstreamer1.0-плагины-плохо
    
  • Если информация не может помочь вам определить, какой пакет содержит кодеки, вы можете попробовать установить предложенные пакеты один за другим.

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

Неудачные миниатюры из-за неправильных расширений имен файлов

Файлы, которые вы пытаетесь просмотреть, могут иметь неправильные расширения имен файлов, что приводит к тому, что для их миниатюр вызываются неподходящие средства эскизов. Например, у меня были файлы с .jpg расширение, но на самом деле это были изображения WebP. Файловый менеджер все равно видел их как изображения в формате JPEG и передал их в gdk-pixbuf-thumbnailer. Поскольку программа не могла обрабатывать изображения в формате WebP, создание миниатюр не удалось.

Чтобы решить эту проблему, вам нужно получить истинные типы этих файлов, используя файл инструмент и переименовать их соответствующим образом. Например, для проверки типа изображение.png в ~/Картинки, введите эту команду:

файл ~/Pictures/image.png

Если файл действительно является изображением PNG, вывод будет примерно таким:

/home/calico/Pictures/image.png: Данные изображения PNG, 1024 x 640, 8 бит/цвет RGB, без чересстрочной развертки

Как файл сканирует содержимое файла, чтобы определить его тип, даже если вы попытаетесь присвоить файлу другое расширение, результат будет тем же:

/home/calico/Pictures/image.png.gif: данные изображения PNG, 1024 x 640, 8 бит/цвет RGB, без чересстрочной развертки

Интересно, что если вы проверите mime-тип файла, используя xdg-мим до и после смены расширения будет два разных результата:

$ xdg-mime тип файла запроса ~/Pictures/image.png
изображение/png
$ mv ~/Pictures/image.png ~/Pictures/image.png.gif
$ xdg-mime тип файла запроса ~/Pictures/image.png.gif
изображение/гиф

Неудачные эскизы из-за нераспознанного формата файла изображения

Как видно в Thumbnailer и Thumbnailer Entry раздел, Nemo и Caja (а также более старые версии Nautilus) дают каждой выходной миниатюре случайный .XXXXXX суффикс вместо расширения изображения. Если программа создания эскизов по умолчанию не записывает файлы в формате PNG (или в формате, поддерживаемом gdk-pixbuf-thumbnailer), он не сможет создавать миниатюры для этих файловых менеджеров.

К счастью, программы, предназначенные для создания эскизов, такие как ffmpegthumbnailer и Тотем-видео-миниатюрист, обычно по умолчанию создаются миниатюры PNG. В других программах, которые не используют это значение по умолчанию, необходимо явно указать формат выходного файла, чтобы гарантировать создание действительного эскиза.

Лучше всего, если в программе есть удобная опция для указания формата. Например, конвертировать имеет png:, и ffmpeg имеет -f апнг:

Exec=/usr/bin/конвертировать %i png:%o
Exec=/usr/bin/ffmpeg -i %i -f apng %o

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

#!/бин/баш

файл = "$1"
выходной файл = "$2"

/usr/bin/opj_decompress -i "$infile" -o "$outfile".png
mv "$outfile".png "$outfile"

Несмотря на то, что файл выходного изображения может быть в любом формате, поддерживаемом gdk-pixbuf-thumbnailer (JPEG, PNG, BMP, GIF, TGA и т. д.), для причины безопасности.

Неудачные миниатюры из-за изолированных миниатюр

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

Чтобы получить список каталогов, смонтированных в песочнице, выполните следующие действия:

  • Полностью закрыть Наутилус с помощью:
    наутилус -q
    
  • Очистить все кешированные эскизы:
    rm -r ~/.кэш/миниатюры/*
    
  • Запустите Nautilus из терминала с включенным кодом отладки:
    G_MESSAGES_DEBUG=все NAUTILUS_DEBUG=окно наутилус
    
  • Перейдите в папку, содержащую файлы с миниатюрами (изображения, видео и т. д.).
  • Найдите в терминале сообщение, похожее на это:
    О запуске скрипта: bwrap --ro-bind /usr /usr --ro-bind /etc/ld.so.cache /etc/ld.so.cache --symlink
    /usr//bin /bin --symlink /usr//lib64 /lib64 --symlink /usr//lib /lib --symlink /usr//sbin /sbin --ro-bind-try
    /var/cache/fontconfig /var/cache/fontconfig --ro-bind-try /etc/alternatives /etc/alternatives --proc /proc --dev
    /dev --chdir / --setenv GIO_USE_VFS local --unshare-all --die-with-parent --setenv G_MESSAGES_DEBUG all --bind 
    /tmp/gnome-desktop-thumbnailer-90H120 /tmp --ro-bind /home/calico/Pictures/image.webp /tmp/image.webp --seccomp
    36 /usr/bin/gdk-pixbuf-thumbnailer -s 256 file:///tmp/image.webp /tmp/gnome-desktop-thumbnailer.png
    
  • Обратите внимание на --связывать, --ro-связать, --ro-связать-попробовать, и --симлинк параметры. Аргумент сразу после каждого из них — это файл или каталог, смонтированный в песочнице.

Чтобы избежать неудачных эскизов при использовании Nautilus:

  • Если вы используете сценарии эскизов, убедитесь, что они размещены в каталоге, смонтированном в песочнице (например, /USR/местные/бен).
  • Если программе эскизов действительно нужны файлы в каталогах за пределами песочницы, скрипт, такой как Вот этот к Николас Бернартс можно использовать для добавления этих каталогов в песочницу. Однако это может привести к поражению цель песочницы thumbnailers, поэтому, возможно, лучше использовать другую программу для создания эскизов, у которой нет проблем с песочницей.

Для получения более подробной информации о программе песочницы (пузырчатая пленка) и его параметры, запустите эту команду:

человек

Ответить или комментировать

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