Копая дальше (и исследуя ЛОТ), я понял это:
О миниатюрах изображений: кажется, что Nautilus использует libgnome-desktop
для управления миниатюрами, а последний использует libgdk-pixbuf
для обработки типов файлов, в которых нет внешнего обработчика /usr/share/thumbnailers
. Таким образом, «базовые» типы изображений в конечном итоге обрабатываются GnomeDesktopThumbnailFactory и GdkPixbuf (ссылки показаны для версий, поставляемых в Ubuntu 12.04). И форматы, которые он обрабатывает, могут быть проверены с помощью gdk-pixbuf-query-loaders
инструмента. В моей системе это означает:
The GdkPixdata format
['gdkp']
['image/x-gdkpixdata']
The Sun raster image format
['ras']
['image/x-cmu-raster', 'image/x-sun-raster']
The PNG image format
['png']
['image/png']
The WBMP image format
['wbmp']
['image/vnd.wap.wbmp']
The JPEG image format
['jpeg', 'jpe', 'jpg']
['image/jpeg']
The ANI image format
['ani']
['application/x-navi-animation']
The TIFF image format
['tiff', 'tif']
['image/tiff']
The XBM image format
['xbm']
['image/x-xbitmap']
The PCX image format
['pcx']
['image/x-pcx']
The Targa image format
['tga', 'targa']
['image/x-tga']
The PNM/PBM/PGM/PPM image format family
['pnm', 'pbm', 'pgm', 'ppm']
['image/x-portable-anymap', 'image/x-portable-bitmap',
'image/x-portable-graymap', 'image/x-portable-pixmap']
The JPEG 2000 image format
['jp2', 'jpc', 'jpx', 'j2k', 'jpf']
['image/jp2', 'image/jpeg2000', 'image/jpx']
The ICNS image format
['icns']
['image/x-icns']
The BMP image format
['bmp']
['image/bmp', 'image/x-bmp', 'image/x-MS-bmp']
Windows Metafile
['wmf', 'apm']
['image/x-wmf']
The QTIF image format
['qtif', 'qif']
['image/x-quicktime', 'image/qtif']
Scalable Vector Graphics
['svg', 'svgz', 'svg.gz']
['image/svg+xml', 'image/svg', 'image/svg-xml', 'image/vnd.adobe.svg+xml',
'text/xml-svg', 'image/svg+xml-compressed']
The ICO image format
['ico', 'cur']
['image/x-icon', 'image/x-ico', 'image/x-win-bitmap']
The XPM image format
['xpm']
['image/x-xpixmap']
The GIF image format
['gif']
['image/gif']
Так что это «внутренние» thumbnailers. И это включает в себя xpm
файлы. Так что что-то не так с моими конкретными файлами вместо этого.
И действительно, файлы не были стандартными, они имели примечание об авторских правах перед /* XPM *
заголовком:
// This file is part of BOINC.
// http://boinc.berkeley.edu
//
/* XPM */
static const char *atiicon_xpm[] = {
После того, как комментарии были удалены, миниатюры были сгенерированы просто файл.
Любопытно, что даже с «недопустимым» заголовком программа просмотра изображений по умолчанию в Gnome («Глаз Гнома» или eog
) могла отображать файлы! Так что либо файлы на самом деле не являются недействительными, либо признательны eog
за возможность открыть их! Во всяком случае, так как это можно открыть, и eog
использует gdk-pixbuf
слишком, я заполнил ошибку вlibgnome-desktop
запросе , что thumbnailers генерироваться для таких нестандартных xpm
файлов. Любая помощь в продвижении ошибки приветствуется!
Также некоторые заметки о моих исследованиях:
ThumbnailerSpec упоминается в нескольких местах как спецификация для «внешних миниатюр». Но это не имеет к этому никакого отношения! В нем говорится об использовании D-Bus для управления миниатюрами, и ничто не указывает на то, что такая спецификация действительно реализована в Gnome.
На самом деле, я не смог найти никакой официальной спецификации о реализованном поведении «сохранения .thumbnailer
файла в формате [Thumbnailer Entry]
.desktop-esque в /usr/share/thumbnailers
» . Ошибка 636819 часто цитируется как источник, но она описывает только то, что поведение было изменено при переходе Gnome2-> Gnome3, и оно больше не используется gconf
для хранения внешних миниатюр.
Похоже, что спецификаций нет вообще. Эта устаревшая документация до сих пор является единственной официальной ссылкой, например, о том, что %i %o %u %s
означает.
И единственное «официальное» место, объявляющее об изменении с gconf
на /usr/share/thumbnailers
, кроме того, что выискивает коммит исходного кода, который это сделал, - это, казалось бы, обычный отчет об ошибках .