Ubuntu – Is it possible to preview arbitrary formats in Nautilus

file formatnautiluspreviewsthumbnails

I recently found out that Nautilus (Ubuntu 12.04 at least) can show thumbnails of files of non-image formats, for example (data grapher) grace files (.agr) shows a small version of the graph contained in its data. Obviously, there some library or script that is processing the file, making the image, and allowing nautilus to show a small version of it.

This made me think that in principle any file that potentially can be processed into an image can serve as a Nautilus thumbnail.

For example, a .tex file (which can be converted to .pdf) or a gnuplot script can be displayed as a thumbnail when possible.

In the case of .tex file, the correspoding .pdf can be created by the command pdflatex file.tex.

The question is, how can I tell Nautilus to create a thumbnail for an arbitrary format and how do I specify the commands to do so within Nautilus?

Update 2014,

I still didn't manage to preview anything with the answer posted, I created this script in /usr/bin/tex-thumbnailer:

pdflatex $1
convert -density 300 ${1%.*}.pdf -resize 25% $2

and a file /usr/share/thumbnailers/tex.thumbnailer:

[Thumbnailer Entry]
Exec=tex-thumbnailer %u %o

I can't make nautilus to generate/show the preview even for simple TeX files. I don't know what I am doing wrong.

Best Answer

Here's the documentation on how to add a new thumbnailer.

You need to add two keys on gconf:

  • /desktop/gnome/thumbnailers/application@x-foo/enable (boolean)
  • /desktop/gnome/thumbnailers/application@x-foo/command (string)

Where application@x-foo is the MimeType for the kind of file you want to generate the thumbnails. Set enable to True and command to the command to create the thumbnail.

To add one with gconftool-2:

gconftool-2 --set /desktop/gnome/thumbnailers/application@x-foo/enable --type bool true
gconftool-2 --set /desktop/gnome/thumbnailers/application@x-foo/command --type string "application-x-foo-thumbnailer %i %o %s"

The folders are created automatically. %i is the input file, %o where to write the output file (png) and %s the size of the thumbnail.

And here's how to add a MimeType for custom files.

I found another way which seems easier, you can create a file in /usr/share/thumbnailers/ for example foo.thumbnailer:

[Thumbnailer Entry]
Exec=/usr/bin/application-x-foo-thumbnailer %i %o %s

You can separate several MimeTypes with ;.