использованная литература
В следующих разделах приведены важные сведения о процесс миниатюр а также шаги по созданию пользовательских миниатюр для Nautilus, Nemo и Caja, которые не были упомянуты в документах выше.
Необходимо отметить, что Наутилус относится к последним версиям Nautilus, которые реализуют песочница. В Ubuntu это версии Nautilus, которые используют libgnome-рабочий стол
3.28.2 или новее.
Thumbnailer и Thumbnailer Entry
Для создания эскизов файлов необходимы две основные вещи:
Каждая запись эскиза находится в формат ключевого файла который поддерживает три ключа:
Попробуйте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 или новее) сделает следующее:
Скрипт миниатюры
Из записи эскиза выполняется только одна команда: первая строка (отделенная от других пробелом) после Исполнитель=
считается именем или путем выполнения программы и все после этого считаются аргументами для передачи в программу. Однако во многих случаях для создания правильной миниатюры требуется несколько команд. Например, dwebp
может преобразовать изображение WebP в формат PNG одной командой, но для этого требуется помощь других программ, таких как вебмультиплекс
и До нашей эры
, чтобы вычислить соответствующую ширину и высоту выходного изображения. В таких случаях сценарий эскиза используется.
Скрипт можно использовать непосредственно как исполняемую программу или как текстовый файл, содержащий команды. Например:
# скрипт, используемый как программа
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.
Шаги по созданию пользовательского миниатюрного изображения
Найдите и установите программа для создания эскизов
Найдите программу, которая может преобразовать тип файлов, которые вы хотите создать в виде миниатюр, в формат 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 соответственно.
Получить MIME-тип файлов для эскизов
- Щелкните правой кнопкой мыши файл того типа, который вы хотите создать миниатюру, выберите Характеристики.
- На Базовый вкладку, обратите внимание на Тип поле. Тип MIME указан в скобках.
В качестве альтернативы вы можете использовать xdg-мим
. Например, чтобы получить mime-тип пример.pdf
в ~/Документы
, введите эту команду:
Тип файла запроса xdg-mime ~/Documents/example.pdf
Создать сценарий эскиза (если необходимо)
- Создать запись эскиза
Используйте текстовый редактор, чтобы создать запись эскиза (текстовый файл с .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-типов, разделите их точкой с запятой (;
) и, необязательно, заканчивайте значение ключа точкой с запятой.
- Очистите старые кешированные миниатюры и перезапустите файловый менеджер.
Устранение неполадок с миниатюрами
Один из лучших способов выяснить, что пошло не так с миниатюрами, — запустить файловый менеджер с включенными отладочными сообщениями:
Примечания:
В более старых версиях 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:
Нет миниатюр для всех файлов
Предварительный просмотр миниатюр может быть отключен для всех файлов. Есть два места, которые вы должны проверить:
Настройки файлового менеджера:
- Откройте файловый менеджер, перейдите в Настройки ✓ Предварительный просмотр (Немо, Каха) или Поиск и предварительный просмотр (Наутилус) вкладка.
- Если Показать миниатюры установлен на Нет (Немо) или Никогда (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:
Неудачные эскизы из-за отсутствия кодеков
Кодеки, необходимые программе создания миниатюр для создания миниатюр определенных типов файлов, могут быть недоступны, поскольку они не входят в состав программы или не предоставляются одной из ее зависимостей. Например, Тотем-видео-миниатюрист
потребности gstreamer1.0-libav
для миниатюр MP4 и других видеофайлов, но gstreamer1.0-libav
это всего лишь предложенный пакет и поэтому не устанавливается вместе с Тотем-видео-миниатюрист
.
Чтобы отследить отсутствующие кодеки, попробуйте создать изображение в формате PNG из файла того типа, который нужно создать в виде миниатюры, с помощью программы миниатюры в терминале. Сообщения об ошибках терминала могут дать подсказки о том, какие библиотеки кодеков необходимы для преобразования. Если в программе есть подробный
вариант, вы можете использовать его для получения дополнительной информации об отладке. Например:
totem-video-thumbnailer --size 256 --verbose in.webp out.png
Другой способ - попробовать предложенный пакеты и посмотрите, предоставляет ли какой-либо из них требуемые кодеки:
Следует отметить, что также возможно, что кодек недоступен в официальных репозиториях или рассматриваемая программа вообще не поддерживает тип файлов, которые вы пытаетесь преобразовать. В таких случаях рекомендуется посетить официальный сайт программы, чтобы получить больше информации о поддерживаемых форматах, или просто использовать другой превьюшник.
Неудачные миниатюры из-за неправильных расширений имен файлов
Файлы, которые вы пытаетесь просмотреть, могут иметь неправильные расширения имен файлов, что приводит к тому, что для их миниатюр вызываются неподходящие средства эскизов. Например, у меня были файлы с .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, поэтому, возможно, лучше использовать другую программу для создания эскизов, у которой нет проблем с песочницей.
Для получения более подробной информации о программе песочницы (пузырчатая пленка
) и его параметры, запустите эту команду:
человек