Descobrindo mais (e pesquisando muito), eu descobri:
Sobre miniaturizadores de imagens: parece que o Nautilus usa libgnome-desktop
para o gerenciamento de miniaturas, e o último usa libgdk-pixbuf
para manipular tipos de arquivos que não possuem manipulador externo em /usr/share/thumbnailers
. Assim, os tipos de imagem "básicos" são tratados por GnomeDesktopThumbnailFactory e GdkPixbuf (referências mostradas para versões enviadas no Ubuntu 12.04). E os formatos que ele manipula podem ser inspecionados usando a ferramenta gdk-pixbuf-query-loaders
. No meu sistema isso significa:
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']
Então estes são os thumbnailers "internos". E isso inclui xpm
arquivos. Então, algo estava errado com meus arquivos particulares.
E, de fato, os arquivos não eram padrão, eles tinham uma nota de direitos autorais antes do cabeçalho /* XPM *
:
// This file is part of BOINC.
// http://boinc.berkeley.edu
//
/* XPM */
static const char *atiicon_xpm[] = {
Uma vez que os comentários foram removidos, as miniaturas foram geradas apenas no arquivo.
É curioso que, mesmo com o cabeçalho "inválido", o Image Viewer padrão no Gnome ("Eye of The Gnome", ou eog
) foi capaz de exibir os arquivos! Portanto, ou os arquivos não são realmente inválidos ou os parabéns para eog
para poder abri-los! De qualquer forma, já que é possível abrir, e eog
usa gdk-pixbuf
também, eu tenho preencheu um bug em libgnome-desktop
solicitando que os thumbnailers fossem gerados para esses arquivos xpm
não-padrão. Qualquer ajuda que promova o bug é apreciada!
Além disso, algumas notas sobre minha pesquisa:
ThumbnailerSpec é mencionado em vários lugares como a especificação para "thumbnailers externos". Mas não tem nada a ver com isso! Ele fala sobre o uso do D-Bus para gerenciamento de thumbnailers, e nada indica que tal especificação seja realmente implementada no Gnome.
Na verdade, não consegui encontrar nenhuma especificação oficial sobre o comportamento implementado de "salvar um arquivo .thumbnailer
com formato [Thumbnailer Entry]
e .desktop-esque em /usr/share/thumbnailers
" . O bug 636819 é muito citado como fonte, mas descreve apenas que o comportamento foi alterado no Gnome2 - Transição do > Gnome3 e não usa mais gconf
para armazenar miniaturizadores externos.
Parece que não há nenhuma especificação . Esta documentação obsoleta ainda é a única referência , por exemplo, em que %i %o %u %s
significa.
E o único lugar "oficial" anunciando a mudança de gconf
para /usr/share/thumbnailers
, além de procurar o confirmação de código-fonte que o fez, é este relatório de bug aparentemente comum .