9

Nautilus was not generating thumbnails for some xpm files I had, so I tried to investigate who was responsible for generating thumbnails for xpm files (if any), or any image for that matter. And I stumbled into a wall of misinformation, obsolete specs and frustrated searches.

So, where is the thumbnailer for such "basic" images defined? I've checked /usr/share/thumbnailers and it only mentions pdf, exe, and video files. No mention of png, jpg bmp, etc. Where are thumbnails of images defined? Wat are the official references about it?

1
  • It is weird, mine sure shows them. Can you add a screenshot? and what Nautilus version are you using?, have you tried with the settings in Nautilus? (Edit>Preferences>Preview)?. Apr 29, 2013 at 6:35

1 Answer 1

15

Digging up further (and researching a LOT), I figured it out:

About image thumbnailers: It seems that Nautilus uses libgnome-desktop for thumbnail management, and the latter uses libgdk-pixbuf to handle file types that have no external handler in /usr/share/thumbnailers. So the "basic" image types are ultimately handled by GnomeDesktopThumbnailFactory and GdkPixbuf (references shown for versions shipped in Ubuntu 12.04). And the formats it handles can be inspected using the gdk-pixbuf-query-loaders tool. In my system this means:

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']

So these are the "internal" thumbnailers. And it does include xpm files. So something was wrong with my particular files instead.

And indeed the files were not standard, they had a copyright note prior to the /* XPM * header:

// This file is part of BOINC.
// http://boinc.berkeley.edu
//

/* XPM */
static const char *atiicon_xpm[] = {

Once comments were removed, thumbnails were generated just file.

It is curious that even with the "invalid" header the default Image Viewer in Gnome ("Eye of The Gnome", or eog) was able to display the files! So either files are not actually invalid, or kudos to eog for being able to open them! Anyway, since it is possible to open, and eog uses gdk-pixbuf too, I've filled a bug in libgnome-desktop requesting that thumbnailers be generated for such non-standard xpm files. Any help promoting the bug is appreciated!

Also, some notes about my research:

ThumbnailerSpec is mentioned in several places as the specification for "external thumbnailers". But it has nothing to do with this! It talks about using D-Bus for thumbnailers management, and nothing indicates that such spec is actually implemented in Gnome.

Actually, I was unable to find any official spec on the implemented behavior of "saving a .thumbnailer file with [Thumbnailer Entry] and .desktop-esque format to /usr/share/thumbnailers". Bug 636819 is cited a lot as a source, but it only describes that behavior was changed in Gnome2->Gnome3 transition, and it no longer uses gconf to store external thumbnailers.

It looks like there is no spec at all. This obsolete documentation is still the only official reference, for example, on what %i %o %u %s means.

And the only "official" place announcing the change from gconf to /usr/share/thumbnailers, other than hunting down the source code commit that did it, is this seemingly ordinary bug report.

2
  • 3
    I wish I could upvote this more for your thorough analysis and follow-through! I'll likely refer others to this in the future as an exemplary self answer.
    – ændrük
    Apr 29, 2013 at 22:54
  • Thanks @ændrük ! I've spent like 12+ hours investigating this and gathering all the relevant info scattered all over the web. This answer was meant as a self-note of my findings, and I'm glad if it can spare others of wasting time on this like I did. Upvotes are appreciated, thanks.
    – MestreLion
    Apr 29, 2013 at 23:48

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .