¿Qué miniaturas adicionales están disponibles y cómo las instalo?

9

Pregunta :

El administrador de archivos de Ubuntu Nautilus, viene con un amplio soporte para previsualizaciones de archivos. Estas miniaturas son manejadas por programas auxiliares llamados miniaturas.

La cantidad de miniaturas que vienen preinstaladas con Ubuntu son limitadas y, por lo tanto, algunos tipos de archivos más exóticos no se representan por defecto.

¿Qué miniaturas adicionales puedo instalar para activar las vistas previas en estos casos?


Preguntas y respuestas relacionadas :

¿Cómo puedo instruir a Nautilus para que pregenere las miniaturas?


Nota :

Siéntase libre de contribuir a esta lista editando la respuesta wiki de la comunidad. Si lo hace, siga las pautas en esta Meta discusión y use el patrón preexistente para mantener la respuesta consistente.

Glutanimato
fuente

Respuestas:

11

Instrucciones generales de instalación


Miniaturas en repositorios y PPA

Una serie de miniaturas están preempaquetadas y se pueden instalar fácilmente desde el centro de software o la línea de comandos. Estas miniaturas no requieren ninguna configuración adicional y deberían funcionar inmediatamente después de reiniciar nautilus. Puedes hacerlo con:

nautilus -q 

Considere leer estas preguntas y respuestas antes de instalar cualquier cosa desde un PPA:

¿Qué son los PPA y cómo los uso?

¿Es seguro agregar PPA a mi sistema y cuáles son algunas de las "señales de alerta" a tener en cuenta?

Scripts de miniaturas personalizados en Ubuntu 11.04 y superior

Las miniaturas personalizadas que no están disponibles en los repositorios deben instalarse manualmente. Estos son los pasos que deberá seguir para instalarlos:

Compruebe si el script tiene alguna dependencia enumerada. Si es así, instálelos primero.

Descargue el script y hágalo ejecutable con chmod a+x filethumbnailero a través de Nautilus

Designe una carpeta en su sistema de archivos para todas las miniaturas futuras y mueva el script a ella, por ejemplo

mkdir $HOME/.scripts/thumbnailers && mv filethumbnailer $HOME/.scripts/thumbnailers

A continuación, deberá registrar su script con Nautilus . Para hacerlo, cree una entrada en miniatura en /usr/share/thumbnailers. La entrada debe seguir el esquema de nomenclatura foo.thumbnailerdonde fooes una expresión de su elección (aquí file):

gksudo gedit /usr/share/thumbnailers/file.thumbnailer

Las especificaciones de la miniatura siguen este esquema:

[Thumbnailer Entry]
Exec=$HOME/.scripts/thumbnailers/file.thumbnailer %i %o %s
MimeType=application/file;

La Execentrada apunta a la secuencia de comandos de su miniatura, mientras que el MimeTypecampo designa los MimeTypes relacionados. Las posibles variables son:

%i Input file path
%u Input file URI
%o Output file path
%s Thumbnail size (vertical)

Las especificaciones y variables variarán con cada script. Simplemente copie y pegue el contenido del cuadro de texto respectivo en el archivo y guárdelo.

Las miniaturas deberían estar en funcionamiento después de reiniciar nautilus ( nautilus -q).

Scripts de miniaturas personalizados en Ubuntu 11.04 y versiones inferiores

Las versiones anteriores de Ubuntu se basan en GConf para las asociaciones de miniaturas. Ver aquí para más información.


Fuentes :

https://live.gnome.org/ThumbnailerSpec

https://bugzilla.redhat.com/show_bug.cgi?id=636819#c29

https://bugs.launchpad.net/ubuntu/+source/gnome-exe-thumbnailer/+bug/752578

http://ubuntuforums.org/showthread.php?t=1881360



Miniaturas por tipo de archivo


Archivos CHM

Visión general

Descripción : con este script obtendrá miniaturas de sus archivos chm en el administrador de archivos nautilus. El script usa la imagen más grande de la página de inicio del archivo chm para generar la miniatura, generalmente esta será una imagen de la portada.

Creador : monraaf ( http://ubuntuforums.org/showthread.php?t=1159569 )

Dependencias :sudo apt-get install python-beautifulsoup python-chm imagemagick

Entrada de miniaturas

[Thumbnailer Entry]
Exec=$HOME/.scripts/thumbnailers/chmthumbnailer %i %o %s
MimeType=application/vnd.ms-htmlhelp;application/x-chm;

Guión

#!/usr/bin/env python

import sys, os
from chm import chm
from BeautifulSoup import BeautifulSoup

class ChmThumbNailer(object):
    def __init__(self):
        self.chm = chm.CHMFile()

    def thumbnail(self, ifile, ofile, sz):

        if self.chm.LoadCHM(ifile) == 0:
            return 1

        bestname    = None
        bestsize    = 0
        base        = self.chm.home.rpartition('/')[0] + '/'
        size, data  = self.getfile(self.chm.home)

        if size > 0:
            if self.chm.home.endswith(('jpg','gif','bmp')):
                self.write(ofile, sz, data)
            else:
                soup = BeautifulSoup(data)
                imgs = soup.findAll('img')
                for img in imgs:
                    name = base + img.get("src","")
                    size, data = self.getfile(name)
                    if size > bestsize:
                        bestsize = size
                        bestname = name
                if bestname != None:
                    size, data = self.getfile(bestname)
                    if size > 0:
                        self.write(ofile, sz, data)
        self.chm.CloseCHM()

    def write(self, ofile, sz, data):
        fd = os.popen('convert - -resize %sx%s "%s"' % (sz, sz, ofile), "w")
        fd.write(data)
        fd.close()

    def getfile(self,name):
        (ret, ui) = self.chm.ResolveObject(name)
        if ret == 1:
            return (0, '')
        return self.chm.RetrieveObject(ui)

if len(sys.argv) > 3:
    chm = ChmThumbNailer()
    chm.thumbnail(sys.argv[1], sys.argv[2], sys.argv[3])

Archivos EPUB

Visión general

Descripción : epub-thumbnailer es un script simple que intenta encontrar una portada en un archivo epub y crea una miniatura para él.

Creador : Mariano Simone ( https://github.com/marianosimone/epub-thumbnailer )

Dependencias : ninguna lista, funcionó bien de inmediato

Entrada de Miniaturas

[Thumbnailer Entry]
Exec=$HOME/.scripts/thumbnailers/epubthumbnailer %i %o %s
MimeType=application/epub+zip;

Guión

#!/usr/bin/python

#  This program is free software: you can redistribute it and/or modify
#  it under the terms of the GNU General Public License as published by
#  the Free Software Foundation, either version 3 of the License, or
#  (at your option) any later version.
#
#  This program is distributed in the hope that it will be useful,
#  but WITHOUT ANY WARRANTY; without even the implied warranty of
#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU General Public License for more details.
#
#  You should have received a copy of the GNU General Public License
#  along with this program.  If not, see <http://www.gnu.org/licenses/>.

# Author: Mariano Simone ([email protected])
# Version: 1.0
# Name: epub-thumbnailer
# Description: An implementation of a cover thumbnailer for epub files
# Installation: see README

import zipfile
import sys
import Image
import os
import re
from xml.dom import minidom
from StringIO import StringIO

def get_cover_from_manifest(epub):
    img_ext_regex = re.compile("^.*\.(jpg|jpeg|png)$")

    # open the main container
    container = epub.open("META-INF/container.xml")
    container_root = minidom.parseString(container.read())

    # locate the rootfile
    elem = container_root.getElementsByTagName("rootfile")[0]
    rootfile_path = elem.getAttribute("full-path")

    # open the rootfile
    rootfile = epub.open(rootfile_path)
    rootfile_root = minidom.parseString(rootfile.read())

    # find the manifest element
    manifest = rootfile_root.getElementsByTagName("manifest")[0]
    for item in manifest.getElementsByTagName("item"):
        item_id = item.getAttribute("id")
        item_href = item.getAttribute("href")
        if "cover" in item_id and img_ext_regex.match(item_href.lower()):
            cover_path = os.path.join(os.path.dirname(rootfile_path), 
                                      item_href)
            return cover_path

    return None

def get_cover_by_filename(epub):
    cover_regex = re.compile(".*cover.*\.(jpg|jpeg|png)")

    for fileinfo in epub.filelist:
        if cover_regex.match(os.path.basename(fileinfo.filename).lower()):
            return fileinfo.filename

    return None

def extract_cover(cover_path):
    if cover_path:
        cover = epub.open(cover_path)
        im = Image.open(StringIO(cover.read()))
        im.thumbnail((size, size), Image.ANTIALIAS)
        im.save(output_file, "PNG")
        return True
    return False

# Which file are we working with?
input_file = sys.argv[1]
# Where do does the file have to be saved?
output_file = sys.argv[2]
# Required size?
size = int(sys.argv[3])

# An epub is just a zip
epub = zipfile.ZipFile(input_file, "r")

extraction_strategies = [get_cover_from_manifest, get_cover_by_filename]

for strategy in extraction_strategies:
    try:
        cover_path = strategy(epub)
        if extract_cover(cover_path):
            exit(0)
    except Exception as ex:
        print "Error getting cover using %s: " % strategy.__name__, ex

exit(1)

Archivos EXE

Visión general

Descripción : gnome-exe-thumbnailer es un thumbnailer para Gnome que le dará a los archivos .exe de Windows un ícono basado en su ícono incrustado y un ícono genérico de "programa Wine". Si el programa tiene permisos de ejecución normales, se mostrará el ícono incrustado estándar. Este thumbnailer también le dará un icono en miniatura para .jar, .py y programas ejecutables similares.

Disponibilidad : repositorios oficiales

Instalación

sudo apt-get install gnome-exe-thumbnailer

ODP / ODS / ODT y otros archivos de LibreOffice y Open Office

Visión general

Descripción: ooo-thumbnailer es un thumbnailer de documentos de LibreOffice, OpenOffice.org y Microsoft Office que Nautilus puede utilizar para crear miniaturas para sus documentos, hojas de cálculo, presentaciones y dibujos.

Disponibilidad : PPA del desarrollador (la versión más reciente que es compatible con LibreOffice en Ubuntu 12.04 y posteriores)

Instalación

sudo add-apt-repository ppa:flimm/ooo-thumbnailer && apt-get update && apt-get install ooo-thumbnailer
revs Glutanimate
fuente
¿Qué hay de las .xpmimágenes? Asumí que eran tan "estándar" como png, jpgy bmp, pero Nautilus no genera vistas previas para ellos.
MestreLion
Los archivos de imagen XPM me funcionan bien en Nautilus 3.4: i.imgur.com/XYUZonV.png
Glutanimate
1
no importa, descubrí que no puede manejar archivos con comentarios antes del /* XPM */encabezado, incluso si los eogmuestra bien
MestreLion
Creo que puedes encontrar el tipo MIME del archivo usandofile -i FILE
Wilf
1

Archivos ICNS (iconos de Mac OSX)

Visión general

Nautilus no genera miniaturas para los íconos de Mac OSX debido a algunos errores , pero el soporte está incorporado GdkPixbuf.

Guión

Este es un script básico para generar miniaturas de .icnsarchivos. Se puede encontrar una versión más robusta en https://github.com/MestreLion/icns-thumbnailer

#!/usr/bin/env python
import sys
from gi.repository import GdkPixbuf
inputname, outputname, size = sys.argv[1:]
pixbuf = GdkPixbuf.Pixbuf.new_from_file(inputname)
scaled = GdkPixbuf.Pixbuf.scale_simple(pixbuf, int(size), int(size),
                                       GdkPixbuf.InterpType.BILINEAR)
scaled.savev(outputname, 'png', [], [])

Instalar en pc

Un script de instalación, junto con el .thumbnailerarchivo para Nautilus, están disponibles en el repositorio de proyectos icns-thumbnailer

MestreLion
fuente